diff options
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 198 | ||||
-rw-r--r-- | www-client/firefox/firefox-78.15.0.ebuild | 1187 | ||||
-rw-r--r-- | www-client/firefox/firefox-93.0.ebuild | 1148 |
3 files changed, 2533 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 5c4f3a2b6b3e..eff086466bdd 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -201,8 +201,105 @@ DIST firefox-78.14.0esr-xh.xpi 427840 BLAKE2B 98a6203db8dad8b0eedaca0fe618cad0ec DIST firefox-78.14.0esr-zh-CN.xpi 564767 BLAKE2B 79af107fc6eed1b264c84d4694d1a88406de80e28d211bd1ddb276be043987f29d69bce0047a3b5fcea36ba1683679b60f979b80618aabd4f239dacd69333ab7 SHA512 682073787d31141414b41ff8a579d917bcade5cc8752eab205e8911a2cf51546fb5a77872c8ba13711b665f4f31716586660c308da9ddcfb4adf4342488a8a3c DIST firefox-78.14.0esr-zh-TW.xpi 564732 BLAKE2B eaf9c564862a9235ebbdcfdb0ca594f88876082e7078e1d80e418f28e9af495d9e1932a6e569e8ce6f0bad948e833d4c99341c8cd4ec55f09eb0355bdfe6b984 SHA512 5e39158d4821aa9424fa3b66b2c050bb5d093147ffd40786c93561fcc58bad933d6342384ce2bf5fc8c78eb010d4058fbde9da9e843fd7751b253ffdef589a4f DIST firefox-78.14.0esr.source.tar.xz 340771180 BLAKE2B 7b83bf081138fbf2367116099839c6d05ec5ade58f183ba033c5167d503a2a1f40976f88bdba680a7a8df7c66ac32449004e58a5211f16086b792a2b41e27c67 SHA512 5d5e4b1197f87b458a8ab14a62701fa0f3071e9facbb4fba71a64ef69abf31edbb4c5efa6c20198de573216543b5289270b5929c6e917f01bb165ce8c139c1ac +DIST firefox-78.15.0esr-ach.xpi 460291 BLAKE2B b22cff8020124356f56a542d0b027321fa6a6d3538239498150c036eb7619df2dfdfc5a04145ea7755a533c560c67dc4098b4a6cea77b333be5d23713b879aed SHA512 658884e108ad3d1b71353742dffc2e4b205ef1212d12dccec75a9f014f151237a34052f78a797975fedb33ab530bd78aea5d1f0276d00fc3177015743b76d17e +DIST firefox-78.15.0esr-af.xpi 428349 BLAKE2B 1cc33d264817e7aeaf6b532a5fb65901e6b8f3253a6be78fda026cb97b417c52b62952ba5db247bd7370fa7631b9d94a6b3e2ead3f016e85562cdfd3b3021200 SHA512 5a6558244c174d9d225c3cf3f6f74b9c4c418bae41ef2b7b3d804dbc92ebcd1b2191082909a000bf6f544771c2d04ade7003c16e58fd96272233168d1f6d82f5 +DIST firefox-78.15.0esr-an.xpi 508374 BLAKE2B 73854cc9f9a1b7ff4d9a70ec10bab04cae18cff5e23875590b6e08f5f571b44ee6aa1259638e658102c78e41e60dfb27ed86ad8f11b7b2f5322997a0ab7549cb SHA512 1ab2d37cc19377234d82cd5d85ad963ce0f14875ab94f5e093d7546375b09873c22cf9ba8c7df23cc42baa8075e060e773d7de1a9e730361d9f77c9ca6d326be +DIST firefox-78.15.0esr-ar.xpi 560963 BLAKE2B 62a002c0fc28b9ee8834c332b10484fefab0643b8d826c5c7ac59742ed3ede2caf1316807f5eab5c7ad6e55ef774f13b1162227cf9a09af1b39ceb0072c21932 SHA512 bd8dd8d5f9e83d61a2c9f7a2e2ad08c4b7f9cf7b901505a02839269e43254e7bd23a6f31e3b5153626956d162eac0c90a75b1612314c2b00b39514f54c1955de +DIST firefox-78.15.0esr-ast.xpi 456393 BLAKE2B eb844e09af8e67a3049203d8002d238096023c0187eee86533dbb4e4471fcacb8e2af11bc48f25b0f7408b6e7fc5ba3d509078f591bd2988b8ea6919d28bd46c SHA512 98e1da4d1698eeeb09ab8f5d84985c58ab07b284a243bdcbf059e26a000b350877a95643c000675e7e727930387f6fe56a9f6075f0fd21355e54fcb180d60527 +DIST firefox-78.15.0esr-az.xpi 497435 BLAKE2B 02695cf092bd1a9a69b33ac828591c45ced91ab2a414233ecb728df169fc31fcea26debb4898b9cad1a8f8398741757c4bba6791e0a4548e2de6c7ebead38f49 SHA512 be57170b0ecc5570c590583e67f0da1dde294782156e02ffec7327eec8880d5209e5e275aa50d8196736831f7b8661bd10883af3500a120b51f31132ee24347b +DIST firefox-78.15.0esr-be.xpi 608650 BLAKE2B f94c5ad27e9927da88198175d485621ccc72fbf49efcdf4ac3ece47e79fa869080b3aa9543e6e67e819d041420097bec4d29d18e40aa851398328a5e9a02d3e7 SHA512 40cf8dc45ede54953d479b87984c4896f8b7a0858358ea20622eba730d630703077b79cb6ef29b12bf3dcb16ffdec28a4e15e9a97a60a22ca54976fdcabf8b62 +DIST firefox-78.15.0esr-bg.xpi 553981 BLAKE2B 85657f7e8f38cb34525c13624ffaa7ff031489e636a39547118d594eab5052029579f6a5f5abe172cd4a988d9ec090108ab6bf8ae1560fa23f38e9b34789e7d6 SHA512 892acbbf4798472de19c1dc73afa298fde43d04a4d2f2d7aaf402dcad5d13613ff73a31b1846e62913c384548bd11b02cf8af377c3990646f0b118186f3c0e1a +DIST firefox-78.15.0esr-bn.xpi 572624 BLAKE2B c3ab78c525e8f3a2cd47406c67a52ddc83d32fc89d265bf2d947d43b975f5cfed057f273ab6c2337bae2131213babf5dcad9d502710c00cb0c9fb9500dbff70a SHA512 1dc4049e28c889cf125b1afb875cd3de5bd1566e7232fdc70d45fc4ce8f16f7038ba26e83217373c43370b532be10a5849b7936dcfa0eed90c04595454fbcf38 +DIST firefox-78.15.0esr-br.xpi 507132 BLAKE2B 82073c3bd78400d6d1d68ff43613c223f5a79f5da9338e96a2f5a126fcac3a15acf6bbbaa0712ce5402bbf793537a4caf20ce6f3de0292b7cfc73c2d33e26038 SHA512 996926e66df562b7b0f90be6f3ade8016c3e251ac551ecd261d65838b5d8d1b45f5f1db95fb900f95b7de694ee583d6c1715891e40efb4dd7ef5ca4e30dd284f +DIST firefox-78.15.0esr-bs.xpi 463812 BLAKE2B 582287aaf33d5dc586f913861eadfd977a0dc70a25f7a5d7104e494bb981a42e65a86deb8d53e7825757924b6f7e6df17504194dd03a454e285932d717a9c552 SHA512 8e3addb3d54cf5f80152743071486987b51cd1b7b6a63d972cb4a1f54611c453911ac1879ce1ba9d17e651c6917c2f136aae7e13f7eb06965fce69d6787d664b +DIST firefox-78.15.0esr-ca-valencia.xpi 517185 BLAKE2B db2abcb6a113476004076df8b878b533055601d2e3b8f5f5207025e2b473c58cd9b4446d2dcf77fd032a2f2a17c22e555dbc5df29641379feec45faa8096529c SHA512 bbf6bc4f4ce02de4972b20f04e4280fd882a873a4c8020584d790105c8ecd6133ee3d9e8c2839b7b742a668da684be46b3fb9e37d50c2333c370d4d728b9627b +DIST firefox-78.15.0esr-ca.xpi 514173 BLAKE2B 34723ad5fec6f8092671a6746dad73bb1403de1453aab9a71bf54b24ed53f5bf9fd7cb058b2c8975fe48c042a964fc2d4322d02f96699515f267e71605016a2c SHA512 6c59dd2ae1bb8f7752f5622c7bd1878401ed9a9e77fe951a574d794ed4b8850b0e4372770865ae7b58272e18eca5e5b60a0c1bd65297eb6188ea2dcdbd588c6b +DIST firefox-78.15.0esr-cak.xpi 551549 BLAKE2B 33d6874d9b119ced7915042c277f76e7ae146dcc3fa408e1135fce9d713e1d8857b8b4b08ac8fe723542f23b97f313e59a066bfc4de0c0d324df4ef150484af8 SHA512 63278d57ef78c2ee9ec582915ec7cb21419d32d27b074c56685f1d9475fca4826ad5ec8ebe2077d52d38723bdffd621a989cbceaacaeb9d83fa203a255310c12 +DIST firefox-78.15.0esr-cs.xpi 540318 BLAKE2B eeb57c8c65ce58020377ae20aaa039bd3a8f38acbfe0cc14b4b73527cc2162f3a32d27e8a32fcd976c0cb2691561e9f7749f4e3076d37044f06ef8f76b1a633d SHA512 fcc01a943acf149abd36267338e0262d79627207e5198038c65e6b207f538961ef2b4bacb3df14d6e1dee62431ac36165d559026c22634d13b7cbaa250825b64 +DIST firefox-78.15.0esr-cy.xpi 530705 BLAKE2B 21b542f34f06e9b108bb427a23aae6571c69c9dcb39670a65429288b6f5803ddd00a270f80b9c1ba814b10beb0b9779523b5085b753b688780521c3c2a7164c5 SHA512 f0a78ac4feec0406017bb73681dd1a2da3d1492f518717ee5eb4e1762b986f229e2a3ca8d2a3377b620efe1b99189d556a15833728c5bd9d53b840f76469e43f +DIST firefox-78.15.0esr-da.xpi 520287 BLAKE2B 3481852194d0c8c40780b8c8a00f1cbd7abb0ff25e3579d6be2bfff1c8337ee27658a66b4908d042ed130d630d2569b52f598760da419f7a73ddf4e6c53edb1c SHA512 c51a7107fc7af4ed366502a397d4e895a97ab74527eb0d686997652b643bd19935771a2023196122abb9e399a328bff2963fa18cf656f809811985d85d25c2a0 +DIST firefox-78.15.0esr-de.xpi 542857 BLAKE2B 6f091beffaf801f9b65903ea25e8886e7d3f01b55427074b74066eed6d9a03f2be439c4aea49e1cd44a1b1c8e1be8ff08c8a5e1ca239245e2bd90b369b76ce2a SHA512 bc4dbf02d1dd9a67b12d541208ce4cd8d69728cd21dc86a969293866f463dafef45acdb081b45438c71b972c1c07f3e21300e25e2052b826d5a58faebb3287ae +DIST firefox-78.15.0esr-dsb.xpi 554277 BLAKE2B fece2d4ca91ad5f113e5b8a443b31b974617a3ab2ed8dc15c8654fd0dcb7191c5df4cacc0aa17d7843d64bb4945663f653f1e74b64595be48553566cdcf4de95 SHA512 7bcd4216ac903618e863b1278e774a4275298c33ddfab753983c0b41f4d5c994c53c8a2107cc64f0e0feeb8917affd1ea56f72084c311e06f4b1c500cce04dc6 +DIST firefox-78.15.0esr-el.xpi 626574 BLAKE2B 774b78231fc33d87d911a18429e9a032e62b3201caddfb14f24c9f3d1ae6ebc12f67b56eafda6677ef6b95913404f0c76e231d338857d275d359ce8e52a8d2f6 SHA512 80764ac9a87487d0cefc8e930964c0818adc920a64e294b11390f3e0ffb4474b4e10bd8829687b8abff69e7b4d8b07bf26f39523fd441817e75b9620b37b60e9 +DIST firefox-78.15.0esr-en-CA.xpi 497736 BLAKE2B 89d0340141f9b8e52880575fbce19d2998b50f3e3bd219697d01f120f5cf6a357f52e744e863b9b3de71616f236c05549d1a6be9af91bef4b1354cfa795fc9a9 SHA512 f271f32cfcf895396c754d701a8468a23bf87c3d7915b491e0c737ae6e4b1b4b0695359d8501e1fc912b23e9f810537dc59fc98725538ea380313ba8a022fa22 +DIST firefox-78.15.0esr-en-GB.xpi 497581 BLAKE2B 53e5e97931cbb3e30df20aa6359736df555325f5b11c4749ca5157edee671c667dca92a2ea402cff45f062ce39cac7b845efcaca9341d5b5aaba52f1712be65e SHA512 e81b811424724bd984c8a3e1e353a711f01532704e938cb659075f28e4784e353626ec13b8d90c5747dcde2b01cd9114d66e89ddc0612fb68dd4a0af62cbe547 +DIST firefox-78.15.0esr-eo.xpi 525738 BLAKE2B 8c3f5d8a0bd29555167851634ca94d6afe5cf2296aa8e695dd427190d6be33cdb0f7b2a5eff3badc5f99fb52cc4b3659a1d743cab0c7514d7a0e920382bc2d68 SHA512 7c01141a2c727e6d19ba26de71146413f2a05c876979e769a8f7cd1f8881d509897baf51f987399cefe9f1f8d5289fe817801e161f088c3417ebf12484e2330d +DIST firefox-78.15.0esr-es-AR.xpi 535802 BLAKE2B a4844a705c648f469f427488c095f1fc83f98e8fe7e173364cfad462231b64db4b0cde87304bfa009dd98c7b1107de27d3532c8b02e5c57d459852a04147438b SHA512 5e75693a71f1d72becd4b7cd90ff5dc69ff99b4f5a56df8488b5f6eb97f1087fc605fc41f58500f77a8f6e31a569f9ff6e7187e9b1aa7429bd3e819648044aa6 +DIST firefox-78.15.0esr-es-CL.xpi 535355 BLAKE2B 0ca3f9d6847004acde9f732a10970a258bfd02cd1b6531296d64e74244d91e722a84c3611917574e2c6632bb737f7f26a8ff81110387d8f76da92f2c4bab86f4 SHA512 7cc4cce94ff113d4506fdf520c2627ab5940d3f7e5aa1436b2fa115edcf067b3b43a6b327d57d9fb15046f02bd77588d5bdc2cffff91d3aecc27bb9bbaab943e +DIST firefox-78.15.0esr-es-ES.xpi 522704 BLAKE2B be2122e883391db262b8efee525c8def1f2bca77dcd51bbe52ba6c1869420ab371645c3e8b971a45774124e464d86187aa3ce3b3eb6dc3a3ac3cd7bafb54e624 SHA512 cff7f515acb3bb8f16782450a99559da5280eee1fe494da56e411d543264c21d5f53201a192433b70ec73b9c1fca48273723658232a3c484efc6ed585553b4de +DIST firefox-78.15.0esr-es-MX.xpi 532291 BLAKE2B ec683876d01e7281748c81624dd0305a269455f4155d5b0892f8e56185b1ed1e16a39399a07ba85832454fd760ad3c158d3c2c1eacc1a92de3112f77cb650230 SHA512 0f2ac40ababa097775c01952df46500c91e829a2e2949f8a21ef0d7e1a1dd86db2135119ff27b625ca580b75e72f1de4fc7f204496d73bd848b77c6b281fea19 +DIST firefox-78.15.0esr-et.xpi 485228 BLAKE2B 990e012dc536dbd0e78c963fc298e17f4f759d67eb39489f0a3164a58a0fa34ffd4d573bfb179fb4a81a17a8776e764f40b8cc9cec6772c3045f7bfba3f49da7 SHA512 caf242a5db8d0da82f4cecc0247b4b8b41e4802ed3a1961859076e980c8fa82adc228b63ba8c6513a3a558c6f516351170ac087838838baf7501993c0cfd3585 +DIST firefox-78.15.0esr-eu.xpi 505889 BLAKE2B 93f9de34cb9c920cd0f6933783a3ebc8ffd669d0d76b7980dcc9b2359787b8a6b8f047cd85f437c57434c91203c714e8db2beab51ee818afc668027500ccc159 SHA512 09ad22e3d90be142451aa5299a532099164c5900cd8999569597f2c74d7a2dc811c35cdc3f4e5d1ee4d31422f1968134bef272f72579fce73ddf7438718cbdf0 +DIST firefox-78.15.0esr-fa.xpi 538914 BLAKE2B ffe10c7781d3d0b3910f2137892ed5da4057a2bb73afe53e84f267c72377b6eff9f22eb9aceaf66e0890d5fa19d700b6c016c41b7ef0c7a869adf631e57179ce SHA512 bb7586c02c8f57d9268ae343cff895cc5144048dec50a35e8fdf62bae3d2f6984de7bd933bb1d63bc5c25af4d985b0ec39ce30e5f4e0c41ca6263ba9735462d7 +DIST firefox-78.15.0esr-ff.xpi 481609 BLAKE2B 7a73905c8e68485d62057b3215cc9e8131f0f826d728fbc8d4eafdcff08d2dd66d642b9487d02e615b13f0a28a7672b5db82d04710dc7130ec9f02f02ec5f9e6 SHA512 da9c1232db5d8e8c49df94e63e5a4d2ecddc531270b707c9cd469684db716ef541aecc9cce06bdbb231a67d941b941e18836de69df273b57470e5648caea9963 +DIST firefox-78.15.0esr-fi.xpi 517920 BLAKE2B 10575e724c283d41c6aa39a5aaa1ef557f28ac280d287cf25355a12afe7b36af4500f8c07326afa1a0b0003c811b766256631c9e23fc2455c5acc5c0dd691f2c SHA512 40558949723d9f9b14b7af74a3a32b205ae864994ceac7d5b00793e54392989d21621997e2377995fb55d7e9e298acf13b4623c22553555caed639826c868b9a +DIST firefox-78.15.0esr-fr.xpi 545891 BLAKE2B 64810a757000ed3891c797345f88d8351f31cae6926c1ffd06ba71e3714ffbb35a041c05ef8ef4216f0d0b6b5292cfda2a371ad8456fdc2256b5a4fa5546c19c SHA512 accafe3c065ad24ea4ede7f4fd5d1c90a65332de9607cf27a2f5c5b7c8117072cf9eb8ae2f54ca4733f1d9718f0ef6e4ab700ed016a871390b47756ad43578fb +DIST firefox-78.15.0esr-fy-NL.xpi 532480 BLAKE2B 6ecd3af9604083c6f5155cb79b6b240b67ac38afbcf3a3163ebb7eecd388b053cd821921ebf25cc738b1b82b46aa541725a2db6cd9835d7c641cbbd0d6eb9b64 SHA512 1c9eb0d408fc6331cf7f1567b10f3421852066c7e034488416e1bf40c886c4803c9de8ab447d8fa9e8dd07dcc46f1fd910b96d3932ede58de1e3d7832766153a +DIST firefox-78.15.0esr-ga-IE.xpi 466882 BLAKE2B b9e02e962050adcdede212cb38308139034c8829d9d16a06e5e89a640f88383434922f21a0f9231c5459930cb3170d2f7cb7872d30c1ea4b2af7b64ad7353627 SHA512 c164f7eab1b1f02829fb4b673003a445aea22040be4e0fdf1ae831e1097e4fb397baa243e6f4f90b6d4013ef8e77414021f8e13a36be9bc4fa03a5d483aa29f4 +DIST firefox-78.15.0esr-gd.xpi 491886 BLAKE2B 9159bf4ccd889a36324307f80621a432d924d218e0c655683d4f50e1eca2c8bace451555ad53a0d7bb3558babcc2bce1251f00b31a500fd4e42c8e530fdd06c3 SHA512 0c7d9500936f717b9ce0d5f686edf2ee3f7a10bf47adb584ff3bd510e96b8e9a35a8000cbb0681d78737100f736778cfe08614a870badfcd8d1562106cd1c4e6 +DIST firefox-78.15.0esr-gl.xpi 528413 BLAKE2B 30e40fd7c1d9d174dc356d2c0861ac813f1bfebc19f57b5a3ce3189040db9ea13e13d1bd492afae5a3066678eb5de34ceac1de3c84d71cd43d55da77a1dac079 SHA512 ce917952b0cf121e9ecdf61bc843424412cc67dab4ce629e16a7ec521fbba8913e1c0eadc0a2e4726409f7b30ef597956c5d9c75a206069ba997860a2ff341b4 +DIST firefox-78.15.0esr-gn.xpi 546462 BLAKE2B 1528eaafba2c0d4d14f5d0044624669207882b7b4fc46fb544217c4a8992f4e2cfc550442c04af5c0fb88146870dac82021f5eac9211a8805f832d21e925902f SHA512 67b98272b497a6f19c62fce2685a7d9a3bdca7676b3300a31df827f6b6965f94ddd3a74082a88f5b3811099349bc1e5e196ca1be076f3f0816615af592b269e6 +DIST firefox-78.15.0esr-gu-IN.xpi 541439 BLAKE2B 58ffa7c4e9887d3224e1d065f02bbd53cce1a180b93be13c82a762aefa7817b17e8db3ffa54938fa8b5dc495b90048793eff56b7c4338f56f7f93572a07320ed SHA512 b2ece43e4a9f1de9546659bd4b7c2585e3dd6dee9dc6eacd254dc575ae654ec9a98b6ce2d69df3a4cb6324dd356c79aa1295a8ed84d0dac6001710b76dab262d +DIST firefox-78.15.0esr-he.xpi 545596 BLAKE2B 93da1546b9df298b2c8bba16848a196598ceebc501c8ddb242dc753ce551766cc7be53cc90f00aab5f16b3303dc82d64276251b2fb730f109eea2a1438e3c859 SHA512 84469a220e80ce2c07d2d1405bb4a2e0ebb1525f66986faa5c248c23cfdd1752501302db872cc0df3646818993f0d5f7532012b9b84ae5728601ff86be84bcfc +DIST firefox-78.15.0esr-hi-IN.xpi 567856 BLAKE2B a43ea1140f3b86605ba5e3d3b7a0aae2211bf1b900162c1ce2b96f53fa32874cfa88826cd8f42b3af752878b99385dd2891cfb36f6ed90d253e0058b128365ea SHA512 4003a2dee98feeb7918fb79a0ef3a520ab0390f855ab79c849caa903f98f386fe12d304c9b9cbdc6f82ccd04ee56248b3fa6fb749bfe3f05158d4d5726dd9483 +DIST firefox-78.15.0esr-hr.xpi 522685 BLAKE2B 155c249c810395c4e043aae6e5c2dacee4e15944db08dc3d7e06b6df2f6ae6b9f6a48094ef5562a26a89f7bda95e7eba519a3f5cd58186cdb1800ede51fc3254 SHA512 e0786b89d64544d7d3a7a8fd046136975bff31fb2bcaa8cd0c6f5b92a74242ebaf82dd0b3c2d98f65d1a6977dea27cadc8d2fe74c135b4aa0d7d65254d10523b +DIST firefox-78.15.0esr-hsb.xpi 550658 BLAKE2B 5fbf3715b6fa7336f84316f19cfedc9a9a49d347102f0d3b1a8118abda66ec95d19ce9fa534591e6b2329edfd91d57876dd805c5f7d0018ca29dd14483419753 SHA512 e55dabbf2349e21960306f4af29b8f3f6b04f3cdc47f186a152345549ee55f5c89b4936bdcc4e3197f9ac80db034998abb88debb6ffb56956fdf59dfb9b722a1 +DIST firefox-78.15.0esr-hu.xpi 554889 BLAKE2B 9f19abbbb184d6db229f4d6dd024a343e67af5f7447bc9f5db925e3ab6b02272bfb5de5b4ffcf0ca71b6558eb0230a454217ffe26eb9d8c1d3ac2f7082b39495 SHA512 85a386684c7d839604d0bdb5ed8f29a23e844abe02646c8baf5335213bb518cca50b355e6c05e688de45370d419df2186ea823ac62a0f1b25839e93094e8a7c2 +DIST firefox-78.15.0esr-hy-AM.xpi 588989 BLAKE2B c617102c0ce3cb342b33ae486d8cb37f83217a03cba1d80ac70d429ba87f7525c21dba36f732da20739d5253b0c831f2707124b0b309900a83287d73f604eab8 SHA512 3140fc1edd3ed2d896b8cda791ecef01b478461137ad24cbba76eac7dcc25eddefdcae54ca9d343fbd21ebdab02b6eb99267ed344ac76ee6ee77ea0182f75fd5 +DIST firefox-78.15.0esr-ia.xpi 518827 BLAKE2B ffa9be35b6cd820feaaee6349219d494ac9008a1fa1391ebb5d5fe510db150303ad25968781dda20c4c91e6e175db784ce790894607fa4d08201d2b0df38623a SHA512 f22c9fa17e5824687b43c706b4ceecf3d0a045fbbbef64473a940b83af7478d6d82259f37eeb7eb4bf31fae3e2949e40ffecb2621b1df1a48879156c379b7518 +DIST firefox-78.15.0esr-id.xpi 509567 BLAKE2B e6739653ecde009edc8396a2e44131b8513f8e257bf9bb345e8df681853c672950bf4646a96a97d0a5c1c1bee6737321ca396df49b42d2eb7939537471a056f4 SHA512 2ccc502b0add7aec35d7c57646e77a45e9c1706722cd3efa6d25f7900a6825f0ca9275b0dab44505a753cc9699b6db084a245f93ae0b99360cb17394caab0d2e +DIST firefox-78.15.0esr-is.xpi 477027 BLAKE2B 8070c2da1ead30ba4c175082ef25103f140e9a2c8d82f221c73da6b40571abdf343623e1f0f419b866f6578de8835b0c77cdb5b20291f8b87ce1417548c74faf SHA512 23b8525a38e041014319b963bd53b14931875f262337400e15b82cb4474eae4e780777477050cd2c47397289d6a8de6d68f84d101dc8291a2c3cd7bbd2762109 +DIST firefox-78.15.0esr-it.xpi 449809 BLAKE2B 94c5d07adba62fb651064b78c14ee3e0206a396e23da7f81163acb8d1e505973ef74cb552de10453b29d3e3ac4005d186cc74f263dfe496a364a4dbf66cac75d SHA512 3d022d1a8f4a03ce6d09e75add139d06688b3bd2fd85dda7baf3c2777b21ed7df23e9c8abdac88fe5ef8d8428079ff92f95f2479712c4f29d03e7a08142159b1 +DIST firefox-78.15.0esr-ja.xpi 578195 BLAKE2B 4868f089f72dd6c0eab560d0bcd45f0b3228e429fe43e23a7c7fdb08af0bff9a38f07729316477239a49886f67f4e21e4caf282fc0d4ae43a7d87a97ffeb022b SHA512 639c8d4fca6ae1c9c7f9ae2c23572036f5806d9061209ab6069c8a42af5a4d9d2866a32b8b8efe0ab337de9c881058a751832d461d21f64d2d1b9cfb57cef031 +DIST firefox-78.15.0esr-ka.xpi 579100 BLAKE2B 4c95a3cd86ec5dcb568b53721599b6a024c7980c403d5cbd60392de3a1facd0975dfc2aafd04e8b57a2a88bea59ab8a4ba03bbcb7cd5350bf8791eff0693ba8d SHA512 08dff752c5e01e5890e51be005290dc6c4c529313bf3130a7176b80257c55800c5b65958d511ee12f1445f66f05e18d801182ddd6c62d3273c48168c604620cd +DIST firefox-78.15.0esr-kab.xpi 539736 BLAKE2B 00327629a7b4f945f0c6d457fbf8ab8a60cf3e1c3b5d84f307aa14a91481bc998c442b75279d92667cb9f76be750cb6afd214c3c2cdc9fbdc6d543f1340ef770 SHA512 1403fe0ae46b0897d9fd3b404a55198b7fe82b833b84302aff7c4e6387ca835a9e2ed38503654a23bc3346d740f052c7f3466ff6bf01e0f5a7ad21f24a0a4511 +DIST firefox-78.15.0esr-kk.xpi 593258 BLAKE2B d8fdd7f55ce19c770204aa70668127e8d9b48a639ad624d380b7e3d44c06c024b6ea1670abc96734fb189859f9a3a77e14960dc7ebba8c963dd5287bdbc47cbc SHA512 eadb53c8c20c1f7e6daf38cdad08304811fc84672918a0f523578230df143663c93558da2e6d537c07ce695dd684f5056b7be267d2b8c932548c14da398b916f +DIST firefox-78.15.0esr-km.xpi 527376 BLAKE2B fd6791acfa83a2af33dd7cd85c529b4cad1ca25ea2b6b56600aae4ac1bc02159ba920137b73a54029a32ff93c12d8f9c09c9490a83494186eedf0316e51c4686 SHA512 af132c88305a329ea97c6300fe7e2a47cea880a13603153237e4aafef9aaf1d08ddeae650e81ddd4ecfadd3e679ae6eae6a5ca4d67cabc404ae98ebe1ba786f1 +DIST firefox-78.15.0esr-kn.xpi 506751 BLAKE2B 4713bc40126d7c660f63832c4a9e6d4fd1de1eaa424e7b9126e859c5e153319b2e17d705cceb650f8e6076a11cb924bd2cc2a707c54d54c4bf28293fbf75fdf3 SHA512 80d4663f71223bd820a3f881dc6f3cc50df3845442d05923bfd6f55d105907f67f6402ed051dea6ee1aa89d2ac615f9108b0a9b4c0915dfff3171594b5137bae +DIST firefox-78.15.0esr-ko.xpi 567521 BLAKE2B 4179a3d67f696e6268c890ac9640b5df75c791444f63f12cd7b4078a15e1f4818cdb2d3ecdf756ba215b48afbc677e2827a5a6033ae7b50bad6214f3862f3644 SHA512 db9ed3ebc3b5460582c0e2d7f4084b262064573a8e696e63477f64b91c64a29b0d8f992a663e92f0fd750f4d6417d27c7521478bab12767400b64a9f542c9999 +DIST firefox-78.15.0esr-lij.xpi 475234 BLAKE2B d650e12c3d5154850f288444f22cc97331142e82991393329048144ee94a140b87a4c7468b50a61d04b434355f54cfc7341c02f942532013ec32317e63a8eea1 SHA512 d9b21f5092bcf5aa42343ca066bce186dd4e6177738ed43abe361f455eefbf9caa03260fcc420900bb7070e330d8cae7ed6d570b4ddba204d987c2bb4951c1b5 +DIST firefox-78.15.0esr-lt.xpi 540698 BLAKE2B 2abd89a98f1ac7d498468f5be1e80a994f58665696fb9d29c66ff3754ca63b82e9bd511577f5a32c786e5adc9e63b4952c01f59357821880a2290fc05707019f SHA512 d4cbada50d2c23ec2a59757c147881d2bbb037a7af430c78ba7624e3305c0a660e23630ce5eb1288f1104001060279b35c563556d08a011bb4b79e94532bfc2e +DIST firefox-78.15.0esr-lv.xpi 467457 BLAKE2B 7b033b55c9e0dc8cc90c72f2de2a42e6bb8e7b2e276cc9476df1337f0c4fa1faddea53c697fbcdda363e324f77617ea400288e3857e234065e54933fa0bab50b SHA512 17c8fb8e2e8f73a8be2fb716ac6f0d212dcd3c429396814bd9e5d1068b9d762e25e23e687d0c29a4d08e8a869105eb93c8eba7607dcac0ff66d0b0ef20615c59 +DIST firefox-78.15.0esr-mk.xpi 460030 BLAKE2B 9a28c63bb02ff0401c7608d505e96a072680e36e9def266b22f1d09986961c47d832accbf623cb168a9f6e423ea2fbb38b709f8b01540b5ada79868a88f7279d SHA512 998ad4800a3b3f1a8e6172ffef72889cc0d7568fdbfe1d7cfa4c7c1e07a61185216efd4b67975d8426f9c2e9aa1cdc08c5157b47484830cd559fd64663d4cb56 +DIST firefox-78.15.0esr-mr.xpi 541585 BLAKE2B 5d45b0465e4e5f53018b2f67720a90442220967a65acc86ab8cae6fe2787205bba9f1a04ee5900cb433afb5e4b6f3b03178af23573cbedbd2b5711f81ca14cff SHA512 af7e3b74f719994c80cdd8040b0f99ce89b50bff1c16f0669dd8a20b6bed258c94364d6c7d4da1e84bd61ef549baae4a9ed468cca455114487b7bcbed8fedf72 +DIST firefox-78.15.0esr-ms.xpi 453055 BLAKE2B 471968b8112f32519ccddc3911925ccc99534fa1dfc4fff03b341391f55e5a232561c06d254b75ffb4232fd828f81faabb2a85552b417284d36e91888c0c66c2 SHA512 b4b66bf61e3a328edb7639cc2ac6c96657812519258fe17e5cf7aa15ffc6022da63100267ff2d6fcd4ce4b42217de5909446a5f332a23e18bbdefec2cdfd69a5 +DIST firefox-78.15.0esr-my.xpi 526328 BLAKE2B adf6ffe2a90dcbb8920ad92d5a90d49af1e0457aecdc170bf314a603a423516e49327dcc21af0a21e845006f045149d4759aa707270b01f6acfca07e762df537 SHA512 2393ecbe357dda4f259efcd12621cd83a51fb940d804a3c9147b0ce6544b0287803f15ec7db4cccaa51b9437c629532100bcecb13da3edec1c760d8707500cc5 +DIST firefox-78.15.0esr-nb-NO.xpi 518524 BLAKE2B 87bceae886a1495d37820ef5cf333906b562587a9e27857bf4256dcd06c8da0dcb4854f4764888fd12fd6abf4a71f5ce05e9be51fd5b68e123079131b05e27a4 SHA512 18ec77573b16a5f77c23979ed4aad58ca8f14d6446a118ab43b9ef9fd28cd1b7a2ac5b91804cf480ee9b6a7e6b76f2cdc25d4986bba2823228f8f8bcc7a39817 +DIST firefox-78.15.0esr-ne-NP.xpi 483408 BLAKE2B cbf3d8f38efe59834d1630bf705aaa4aebc697fcf91ddc55745d6fa44933a340e74dcc0f1aacd192da33a4a24856f9186c3d6b1b208316464239ff81f3361a10 SHA512 33895cd35b1c3109345d65e3fd0850206c6ab073e2b92a59ac187724e875d58e85b7ef82cdb76389413b6dd143422e44a4be192cd6762f8f51628a00ea610e31 +DIST firefox-78.15.0esr-nl.xpi 526200 BLAKE2B 3a5e926913cbc296fe5e8ea186eb7f2e315240157cfb94fddef29f44c93282b819423cb3b8a97c96a9e77e95b8d33151da96b803880779da440cd414f42dc99b SHA512 5583088332667fe3e9445660e53a4f36b3f18a5a81641a5321dc3229c27858861dee096898b7a474b270d6f3896d13ae6ad3910360a17331a76106919b29842b +DIST firefox-78.15.0esr-nn-NO.xpi 520162 BLAKE2B 86e1f1d7699d299848417ec96fe944b86205aae2c2e6e7f8ad1b74f1093a0d83d8abbece7dad1771ec8019dc8ba8e531474f1231663a603f76e6c263c659de1e SHA512 0da81d10367b4e3352c2297fbebeac174802edcd4018ef53adc2f364e7a18fd4c30ad9bc1dbd7e585c73bd88575fd8f7c17267ed4d044df62b78b6c280be324f +DIST firefox-78.15.0esr-oc.xpi 542155 BLAKE2B 72085cac9e8c4a94a4f700213648b5f21cfc93a49c240b1ad48385e87d4ff6f36e9caca9735db416a4feddbc43e050cf26146a4166cc165e52ca8924d6ea689f SHA512 90b1ccdf59f2c92f5e69fe61f41ecc2a1431a1d356b9cd845e05a82f7b7d37ef399312178bb9e858f34a9108baceb75d932ccb93573ec2a28b6f2a922e2893b8 +DIST firefox-78.15.0esr-pa-IN.xpi 580372 BLAKE2B 8ec540a19313b64e45b622e743f6618507d46db6b02d848a9e8417d8fa9a22cf03f0761b15c29c1926b5d31800db460e1e60bb9a99f2873aef85d7e361fc9aff SHA512 071dbd1f82772747971833494359c0b478c7b6a7601a26281bbfa4e430b033e321ed3f0a47545aa526f59e55af7b9fe4baaf3c30ef7c5953c20a0e5a05a9c107 +DIST firefox-78.15.0esr-pl.xpi 545617 BLAKE2B 705eba5a8d05809b813d81205f900d03f044d4212f78bdfb3c60795d315a0ab00026fcc92e8ee8708f344db275e70e12e0f860200308e74e40e5f457aaaded90 SHA512 0c15fbb10f7eab46cd3d18f78e1e874d3e73a648ab83706c605d0b8857a6a33054c70a29c387e58a24b71f04a35ed3fd0d908d13e0992dd1faf3b01e83d4488c +DIST firefox-78.15.0esr-pt-BR.xpi 527583 BLAKE2B 317ecd85ae7cc04ed53e1515f1db4a07dc95914a27a68933ede759d24ee977fcac79fd9ca9c151490c92ff06b6a44614e2deab3b96fe91c3af6683e863bdafe6 SHA512 b6a540fef44917f1da550ac0b96eb949bd967032c0e6d1f0902daeff28cf3eb4bddab17f465b59e7b8702627165a5ae296b7a9afd7d2dcfc1e1ebb7abb11e986 +DIST firefox-78.15.0esr-pt-PT.xpi 532050 BLAKE2B 3ce7a26f45376056b90f94d4a80b6e254928c0a097e8a2a21c2052d5441c615ab079c06e475740eab795edfc1af246da427c8aebad4669779d127af2f3fcbf5e SHA512 a298e772f7bf19ac66e759f5cf1149f04ceea4b7ddf3f67c92dd895f729bb3a4135ebaf9cf3f8972773b7b0e08acddac346349e29ba44d43cb59b079f776026a +DIST firefox-78.15.0esr-rm.xpi 526709 BLAKE2B ce725cce4a04ea11b236bf7d41227a2c66553e059fce1b4dd23aad2bbc5c57b5acee5cfc6f90139c500c3f910671f4fd9c86bc16e30d123a8e85781a441635d1 SHA512 87425b615e63904924c2ac43b818f430650b0cdc3f48a52532d36e3b0e27ef8262269bafbacff68a7e7dd23e082e942debac1a6d6ee240a7ccd02834d76a2a3b +DIST firefox-78.15.0esr-ro.xpi 535573 BLAKE2B 44a0beb084d6588cfc59e36d10d26158ca618a41d4f40902295a1c8e4fb23f390884e3acab3cbc4668caec40d95218e2169060694f07643ee941e98733275b35 SHA512 12ef7f7af876d3d469a7b37ef4131c4a56aea78c9492b0939cdb1c9a97b7997363fa823be83a7a68fc618b18fe295f06827cf2d8ed33aba80befe634e41cc10f +DIST firefox-78.15.0esr-ru.xpi 614599 BLAKE2B f7746af3eb21e641399ecab4a9f7dec3cb4e7893de367081ab205c261a276cbd699dc384cd8a51afb4f69dc0bd5e2412140743012a7cdab2ad16854086e9ad24 SHA512 247ed566c5f34ad772ad4aa7251b7f6697f2ec53aa21d9e403e4318f3defcf8a07ea198a45ad6db417fec3d1a04f04d24763652d381e88d8a2eb61a4ab5c718b +DIST firefox-78.15.0esr-si.xpi 492529 BLAKE2B 94dba994b92f7bf510bf0760c2e93298d9775e29394cf7dafc90f7ae3cdd2194a40ea0de3d95258f6901fbc2a9a3e12d625615485bb25b52f0704c2761e43974 SHA512 1cc56d372a356b4084d213d36741fcc9a8f171d7110f04fc04e070f5137d7d00275d9a3602140c78bded5c3f949a3a83bc78383705d13f4105e6928370060c05 +DIST firefox-78.15.0esr-sk.xpi 534231 BLAKE2B 5cd293726fc33e9275f0c37ea9fadd33940d0d78679a93c68a04aef43968804ad480155d2cec4916f60c0bc38d623bfda4ced67f4dc44da42461b336b3106ad4 SHA512 3f23bfa5e10ce7e163d56873efcbb1f330dbb25ed5b06673c98573065646fb2f7738665ef99d3e475f28364179ddb9abc23b15a17d435695a05cce3844e60862 +DIST firefox-78.15.0esr-sl.xpi 520932 BLAKE2B 1cd7f6b318a887b5dcaa586dd478e23f9091804e75d60e99da8e6d6156a7f24ed7a9a1000ffd985f8116428e94a646f23fd58272030bb13d847c029c8321902e SHA512 a38a657f759386d23a0bc33370e53fdc802fb9016c95184944e2fa04e578d1554077495e9f979329e0ce0b20eef6c9c7726277bc6e00f217557c42cc6d88df0e +DIST firefox-78.15.0esr-son.xpi 424571 BLAKE2B b9ab6816777c7c56e5db9ee1f310e9567452c22396f1bf38a83592c7194b3a1e8079398dc106a58929d1b1e9ff27c7c2d4523babf0a6fdceb65920fd7f166a70 SHA512 aac4ae52e750d2f14e155d19cfc1a7b65842d8fa39cb0b44e011a60a42e34187a1ec54afa11242c447d78db01706418afda74d53ae1ed38e1a5b2b0a71bdeb10 +DIST firefox-78.15.0esr-sq.xpi 544901 BLAKE2B 18abd13713b94c3a33c9a1752ed537f87d847f6fed32f922b4156b1ac433d9c752ed3944e7c3ec58b72413730a3c9f94be8a99dfc4ad7b83f9b060bf0c5fa3b4 SHA512 9127e70d9896fb6933a0951d96e54266cfc7e5fbe5b2f153bb0f96aa6fe4df4e0c7c96bc0e39b14327b982cad27e8e581e443f2115a8bca4c350061857ac8f30 +DIST firefox-78.15.0esr-sr.xpi 561395 BLAKE2B f6275f02185a863f787327249162220851ca0e460269c524277e8641271dd0557bcc5b6ab513337ae3dea75004d34bab4ac9d2cfc392489d49a8c1d7d2570c48 SHA512 13e9c302e7f5697e65b010b8ebbde9a84b78074e5c8974385b8b6e5cac64a378ebcbcfa881d03050dfc3164c9ad60b1e443de65ae89451b9fed585485b617e80 +DIST firefox-78.15.0esr-sv-SE.xpi 529699 BLAKE2B f87da847332a7f457da4bf9a9b79c6c5d1bc711ac0b7481b1d4c496a77bb973d3c376dfdd79d291827b7070985a54d5eea4108ce58540d73a8906ebb8ef68a50 SHA512 e53099a7508c6f85f99618799a4fb44ad78934893bffb07104212776fc97b2730b73f198a82187d9c482868fa72e9e5f7994486c7d7059e71aa5ae4585c829b4 +DIST firefox-78.15.0esr-ta.xpi 521539 BLAKE2B 4fbdc3e26ea618a61c9e9245ee921e5859d100bf11668125bf09813c3bc59999da46b7ca0b2fc1a1d0741172a7cc538e939ce32d0b7ec7c34921910fcf176f39 SHA512 d8c31ecf89cf3f67d9e2dd26d61a4eb8e6bac7f633d3eadc29f1e90168185d656a644a22f0d79d3edcc90c07b024b01e97325d20f5bdc2caf87df1dbf18d8e91 +DIST firefox-78.15.0esr-te.xpi 558412 BLAKE2B 9fd17e7ff7b3d1322fc885c4b0232db75cfac9911991fb454af88431fb71f29b1543d5803bfb7770df1f92ebc4246907800f7165557b5e9ea24db1e619c87900 SHA512 8a495463ac2910327078cc97115fdb203106f2a1ab39ad374d65f5ccd1ea9caf48676ac27b15a693aa4f9579e91d3c81f3707a2e726a73e23b700bd9731e6daf +DIST firefox-78.15.0esr-th.xpi 592225 BLAKE2B bf16b77fe4d49822da01bd48248140e98c47ee91d3011ffe0e9fac4a8db6fc5f4e3f39668574bb5e323d966b15f1bbd92b57ea4f79c6b7e92f00e1b7080b2824 SHA512 46a7a3e360e4923214df4b69b8dc6784914f4e33c39ec82bf5080bc0850b9923b2d27bcd60bf74166151c406b8337d72a057be6b4125972249f0424243748f77 +DIST firefox-78.15.0esr-tl.xpi 521126 BLAKE2B d8d4bf1cca0c180509cfb855453857d75ec563360d9499cdacdabd8bc5cdbd94a21b8a3061d96eddc81c181352831fead707b761abdb368823408660153af54b SHA512 f61dff2dffc9222a67022f9e9fe7fcbf928f7b82c4688402e747f473e2f37380676e4176c470df21a3e5d0c0353225c809d8008b8d40d127f3bc43d4e637f639 +DIST firefox-78.15.0esr-tr.xpi 539866 BLAKE2B 5afb36c42908695d4e46e9fc21344ff5dc2e38b9dcc7c6bb8e9db24091debbe60a117213293df32a76f7820a1448e1b4854e87d47e263c539291d365f7d7de28 SHA512 7576ac3d797dfbf6c8e2ae7c18afa6f42f61b5615ca7324d928a4c9e3707a692b84663ceb6673675f4cc6b05cd6577667263d4eaa4bb8706fca04be51b320414 +DIST firefox-78.15.0esr-trs.xpi 501217 BLAKE2B 05d2b14a7090c04311e03427f8123aedcb344b04a5dc983350a5a5c8db5fbde19d2bab0cddc3fa98c63291ad1e092e808c5e54f195651298964468310adfb6b7 SHA512 a6107ebf9221f8aec9f877721e2286f292c953373010ad49bd1b02a653b3793f1ed3d96f052d8961b8732e3c5c615636b2231c4cd6a0df18155ff07863821271 +DIST firefox-78.15.0esr-uk.xpi 608606 BLAKE2B 723affe1a3630425ec50089ffa04d409d9aa1059c3dd11a2adc48e880421aa0037fe073146f8ad402191f763640af2ccf2aeadabc1b2d6f6fd8d59641b36e589 SHA512 66ddb012265e49fb55edcf9cf40d8a510579743086dac2e6138c07a172e869e66c9b33b88b35c0cb959374bff97c9450a075343f67d01e2e4bd25e4df817b8ff +DIST firefox-78.15.0esr-ur.xpi 557952 BLAKE2B 10294c85abda193e8ef03c38269fb427f5557cd078d53cac0e453ed79c70ba9e7f94a84f31b4e9dd417cde1b88f4d5eed3c8c03569f473d3c14d0d1eaebbb5ca SHA512 290d8539e19e16586adb9a438b641e9fda6b8c88608d5b48e2a4c9ce308b258c2794f362b3c260ef58ec687dd229576ec86fd651c56fd20f00d14647ea7b1afa +DIST firefox-78.15.0esr-uz.xpi 477547 BLAKE2B e5d5379c1f4f49dbbbeb86cfc2b987f18cad92122c6b70a9e47d02b977f326da1cb9eb03d9f0b101d0625efbd768064f0615156939750f36922f43db5504b6cd SHA512 9dbf7b968abe45a80bbc6888f7dc94bdcd9912f6392cce2fc43bd71a0d85a23b9c7501f123a7329faa72cf2fc91ea45c7a2486840c71a9fca9edb2bbbdf7993c +DIST firefox-78.15.0esr-vi.xpi 562848 BLAKE2B 7dadd051a61597f548a45f47f8a2b085cea2bc6a6e927eb94b07e138dc169ed45ffa2110d832d55bb511998527fc97341c5381f1be1fc8f424da9b9672137277 SHA512 77da2ce3ff51776139c40ab60c51be90db93d73cc9fe2f321d24afc0b27cc9fabb1a35b58c404003ac1e5ed3e15dbb03e3c5447d1996699ac06b087e6c40b5ec +DIST firefox-78.15.0esr-xh.xpi 427847 BLAKE2B aaf667de15953c99c580766047afe082e414eb38cc8c048121aad026db6ba5b45b4c97a1d5f85bb8813108bf3e69e8a4e4ab67d320d32e2d1fd6f9b175dd90c5 SHA512 8689c86b30e229c96014e1c930bd4d7eb1d6ef7e6e18f3e757d553923edf0cd5923dd83e8f20f4608b691cecbb1df2035dbb45ce1ffe2202562784acf000f1f3 +DIST firefox-78.15.0esr-zh-CN.xpi 564764 BLAKE2B df0b207411e7731c9238dd069fd42e47c7ecd0477089e0673a98fc879e76db566dc6f92c60a515938a831c0e0ef116f4f75f9a0b37350ce2f04be4fd72e53677 SHA512 072aba4d663091121118ecf6978129ad3cad28ae16eea7e1f680831ae0326d8ad5e0f853cac25827719229d7eb51635d1d8ed33e6fec01a48ce05875e15db2f3 +DIST firefox-78.15.0esr-zh-TW.xpi 564733 BLAKE2B dfcc1df31227d62486a8a36428c413523e2b6a81f96fc91481fc35fa65744bdb06f92ec1b259a1b79d1e5b43f1cb16c6fefb0a74fe2d4b33538783755b165453 SHA512 b5b9c3c6a4d717fef8ca250e6ccc636be2de0b22988f3f1da634266622ee0304b59a10a194f424d2b6693ce3262658172fe2a015474de600e1686950f8b90370 +DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378 DIST firefox-78esr-patches-16.tar.xz 55964 BLAKE2B 79d3a465c69656bb55ee7c1e9060606464b6404435b92f534db275521ac2343e045feae1fff6166fde9e2599a82cd982b0b2395271b1033f0f784e745e2c6965 SHA512 3aa971c726646cbf37a14a0dba6c4ac966b88db655cd8b730c5572543bfbf682991ee7c139889541e4f6936c13f27233dc1837fbdb9ee340b33ebb2cec59b01f DIST firefox-78esr-patches-17.tar.xz 56004 BLAKE2B 01d2ded2658c24176a3d13d0267d1c4df4ef0113c5c40b1002acd39a0f04db35b773bc617afed1c681df3ec38120621a5c3753ba2d36688d7d5926233bfb8501 SHA512 43b372b848c1f30e02505d06bbb11f5b80d976fe7ee39c0d2aacf60d48bc1d3e378c325f4e2fd4730b971e88c3bd902539a7b81874f53b8b92369f876e05be5e +DIST firefox-78esr-patches-18.tar.xz 55968 BLAKE2B f32fe8e0086e4bf74fd43127b9fe136a0e0ad6e51cb8a2398f6e8f9fe585de1574c745dd3f50440cf62b626f9fa24d368284c563fb75acbacc5238f9bc8d099f SHA512 99a51a241d91aa00c64550f2a521528f6134c8812e379eaf95cd1287fd51d00346de8d41f2d2f55a83332580531b31c4e814a47d7f69da6e3512613e8e98bb31 DIST firefox-91-patches-02.tar.xz 22332 BLAKE2B d323054441c9383ccc88b0522cd2a8732df19af670aab6e57689a69f299ed97fe8cfeda0aff8dc7353d591705ce2c42957b21da1f449a58145d9343474d35f2d SHA512 f70665c4dcf19b67ee7305fc3d683c03817e7089188a5033a6fe9ee32074820876b52e0bd32f585e1e5cb14e2fa4bcd1cf9928dab6f74f6753b4bf18919537c5 DIST firefox-91-patches-03.tar.xz 22948 BLAKE2B b65585a1c84000872ce675cd531033522cd7ec7e3d3c4bb660269709f02944e8d88cc76c3b9b0059cf3ca85a3caad22168cf607aa1f4f2426eb0dd161b5ea249 SHA512 e970f8fda3257b871f3d8f1e185724ebdf5b4d91bfba6061a777242b7aee5a613fa4450af4f758c0f440d09483e65ca48ae79c91e040ba9c5e63d32d329a7187 DIST firefox-91.0.1-ach.xpi 465287 BLAKE2B 2d45551393247fda1a64aa05e8491c52e476c033a457cdd8872b3cab88028692f360b2310174116b93437e6523d86c19150045187f1392fa2973cab0f9141a8f SHA512 560cf7a68510d55909a15524af17b3e49c3c6acd84d61c509545ca0661733779b563699952f07d8efd6becd569b204f7114aa7434ff8889184f5c2f0a71d4d07 @@ -598,10 +695,111 @@ DIST firefox-92.0.1-zh-CN.xpi 584481 BLAKE2B ad036c8632b6179c13a68c0984af1c556e8 DIST firefox-92.0.1-zh-TW.xpi 584667 BLAKE2B 5358642e7088f384fbf68ad3117bd7ea85a8abdc421bed792c13515654286024870cc756e8832176652727d321a4f85ec1af72ea5804c477909c4d9bd121b37d SHA512 ee7625608c6ac0c56791697c3dcd1c5998f719fa1636717b8b8d001748020f874a16214499595d07e69ab8fb736dbf045a0ef2830478e99366beeba942ef798f DIST firefox-92.0.1.source.tar.xz 383567460 BLAKE2B 021aaed695994145f4dec0a6d251bc57c3bcaa7a0772be060f1b2167d330ce70b14ef2867ecce24d8b833b814506196d290c2e1984db593d2cc1e4029ff0b8d8 SHA512 53361c231a4ac93a1808c9ccb29893d85b5e516fe939a770aac7f178abb4f43cbe3571097e5c5bf91b11fd95fc62b61f2aa215a45048357bfc9dad9eabdee9ef DIST firefox-92.0.source.tar.xz 385055824 BLAKE2B 782fa226c11d793383a577b1c355933ce83d153596574e864e1a357ab19ac18ff5489aaccc18a326a76af9f51bbfeb3fc5834503c7923b86f7490685588d767a SHA512 1a73cc275ea1790120845f579a7d21713ea78db0867ced767f393dfc25b132292dfbb673290fccdb9dcde86684e0300d56565841985fa3f0115376c91154ba8e +DIST firefox-93-patches-01.tar.xz 21604 BLAKE2B fa9b993f7a5c95fc8a72c81c65c3167e896e4ab6517f5e3c4f543b6fc15714105d8486680557d82482f2ee5a99be23c831564e38ad8fb06f9a1c95d164d1dfb0 SHA512 ef982215b720ae9484229140a2bbfc5d2c606b888203a82113e566409b34451b7edd184e46f3ac500d2f371ecc1ec58f28610395d90f17db30fa58cb638d19fd +DIST firefox-93.0-ach.xpi 452270 BLAKE2B c7fd81469026d99e21553ec59d0d005e906915483b3765898beba694cf31c02aef3c15789a5c2e2e2d1ee242aef323ca7fa1c142912917ec2ca02a8cb9c604fa SHA512 9a4c7f880801eb1c4391a57107e88e3d43e6ce0a1bd617ba4d11951957e2d62116f102e55bb62db22378460c68d2ecb3a9b9b0285951c46846920ae02360749b +DIST firefox-93.0-af.xpi 425657 BLAKE2B 8f0f1df2ddc330f386d831696dbbbd15f639b0d95ae4d85b268924116f93f1bce22adc10b6053873f0ed6d69f9067515774b7904f7595c89a25edffde2e25e97 SHA512 f8c122c624c139c0afea5920f063b981665771ae107d32b654206dc0d00a8173230a357ca72649bc636d02825f1af90d291b5e09f9b7044d05b4af1ce39f6e6f +DIST firefox-93.0-an.xpi 498005 BLAKE2B d0830dfa4f7a0ea4c85a5a3a7a1e90714e2e476024b77d0b8b44ce4ad241f0df1f0090eb4263caca3d05a66c8885c3c75bf167ccb7055716d7efc01ba4554515 SHA512 df7853f86853cc457eb85b8130f7b2ebf7be97ce28f23f963eb9b05b16dae605c5d3f3b925c98a0aa252dcd84e172e42f87256feac042af57294f8cdd3e69383 +DIST firefox-93.0-ar.xpi 557147 BLAKE2B ea77d1d057ff08c0cdcfabdda3b0a3a3bb25113eb7d1e9f6ecc7a5ab48cff2ea36b25c7726dcfc3e0004726719e11f6190137eb76e7acdb02215b4c667f3e229 SHA512 4b00894fbdd9e80a5bb343af95afeba2858c83c75880f3d97829b8161c75e65f21cc73d9f65edee2a9327391e6a98f7b124ca8aa98d9f8bf4000358841b47590 +DIST firefox-93.0-ast.xpi 496648 BLAKE2B fbbfd0cc005c5b47cec28506b432dea9ec48c4e0fd7c441913ecee5db42e77462782f6b1b95001b70bb7740aa100d5eb298e8ec81134822a43dba25060522670 SHA512 1744a00ed7794c3f86fa4f389d9a7a51a17ed946d8c4fd65ec29bdf0ae13379418ebbb49f6eba05894d660e5892b67df14745882bdaea3d0a50b89ecb08ea563 +DIST firefox-93.0-az.xpi 487307 BLAKE2B 0de51fc5c479d006525b9e334a0822f36d5656b116102109aba8f9e461d0c48510b4790bafa1a60ccb62f369d2754287fed4bfeb70762642d50b3784f9a4ba68 SHA512 e21ac77f4f5ebb90a0ad8929013594615308167a28f8e6c61cb8e5210ef3c6924f3173cf0c2b3956e587846a0613d7d66bbc66ff23876fee0e73165aaafd8109 +DIST firefox-93.0-be.xpi 613444 BLAKE2B 047730f1734f67f465ce605cb5a313d63d93cde70006768e1f18f1a93ab2dc7928f4ebcc09d748057e3fd666ccac03ec9ddaf97f82bde45cb7a5709bbe34cb4d SHA512 12b31e93f3296cfff2bb4856fc3562aea0e52d948d49ad811e534f9717b3f6ffba6e451650a99a5c2887197e0d7f2e4a257982dedfcee14d252f8842ca781963 +DIST firefox-93.0-bg.xpi 565256 BLAKE2B 8a2a0816d76c15b9f67fa1a67ef914e4842c295a6d740e4346b33aab46c8c4aec3a52351c01835341ee735240721d32f4d128f72d14ff2d90a6d5e3e3e40d90a SHA512 0ca4b8073699735f8c67df5c2b63885ecb37dee17da38fd53408ec8346c6be3871b28b407e160f083f270160118d3d2b37a9f79c1027975556c95d65982f268a +DIST firefox-93.0-bn.xpi 554301 BLAKE2B e03eb3160508c211e005d6af97fc80f8607dad65f922fc5453c3b6239ee8adf49065fe6e89a206f3856a9c1dc79fbedf81971705ba8b5c9d795f63d95bcfbee4 SHA512 faa070bbce5d0c7c2bcea77c9b8e7c7bc04873a9a50edccc8c4c041e146ee64d6ebf73af963a19253668bbd7a7c59472e54ae39e359f8a29ff3a0c1b298cf24e +DIST firefox-93.0-br.xpi 517750 BLAKE2B 076b4a311087e3bd948becad180a4cd5ed04609609383d48fbe8730397d2a51fdd45a93bfbd6014d207b8750e05320f63e8aefbe63b06edc74c092f0d195a945 SHA512 8ebe3075c605e63cf8b53190c230426574342bd3d8e49a9040134bc94399c5f68725227065499d453faa8391291937c2e0ba4acf306aa33b84a7fac4cca0fbf5 +DIST firefox-93.0-bs.xpi 461680 BLAKE2B a98752ea3481e7c8362d16947e53f0088edde22bcdb5a30bb2a38186796da10b023999c6b19362268b41c93b45d7c163b88242e529fd36ff66383effe4706c33 SHA512 fd7c291303f99f10841ac2e2335f624a4327ee442f7618f36775efb426ce1e49ed14b2665070cf06959860422df90a0a1d7e82ef334b5f13461a6f1a8c9a2cef +DIST firefox-93.0-ca-valencia.xpi 527450 BLAKE2B a0092f55867a114c09a9a1ce9d9167a60aa166df9b040ccc8cc3bff49c5a8bba0c61d7fe83da8913e9813854110140f4155b8ac5e07d72389ba21cc36f42d6e7 SHA512 e5a8e1523b2d52ef34bd42bddb72105c86aec0fd03f13eec0bfd891408000013c63528a283154db283e19dfdabd20bd8cc9e1f633d989215c83297dc86663c7a +DIST firefox-93.0-ca.xpi 525552 BLAKE2B 65c3af1b458794f706a645a98a7606be239d23c161f416085455a5367e67d6c52fd762b3c9470c3b81494f4aa0085efad9e9efa92c8bb9019ad4114ac7fb689c SHA512 232911ecc13b5c834a03dae1e830098a3b9861a904a6dd62e6f68648dc1a9df430ef948e562653bd0e911ea917e255e864d65720130b244eead6cece68cfd31c +DIST firefox-93.0-cak.xpi 551030 BLAKE2B ecca1b2610a4e5c7014b2db980f9d7d21e7432e0671cb3c1dc16b9939da9dec29285df52a70abadbb1b508660715be5d0585dedd1978a445dd258e10998bf7ec SHA512 474da0dc340527e6818e7a6f62a4f921ec138d6a5dc17d9cce5b263c5ad49aa7d85c2ced296488330f469718095e73e33dc5b902f099b483d65a63104f40ec28 +DIST firefox-93.0-cs.xpi 557282 BLAKE2B 565822311bbfad5c487c92a6524c748e4cb2a6a684e44e51232a204df1d02a27f550ae4c6450f730225de3ff0fe19799adbce12e45980f22d8d820b83121b162 SHA512 030cdfeb274164c5a99d2f2be57223c0c40222bbb8953260239ad5e55362fc166e2a22fa8c9d09cf9b0fdf22dc0e637e8018a011c2ab9137111612d6cdb42fca +DIST firefox-93.0-cy.xpi 534842 BLAKE2B 35b29d657df20409ed74d01c07e6a5e272bd5988e57211fa2bb86d473af4acfda7f424c24da83d32d929800571faac656ea06cdf24e9340442cff5cf6a6ae46c SHA512 79ddfd89af6e4017655967c2baa41a9ab2507c9c21c7c037ba19022eebb28bad18a71d6345a3cf2db271fc69633d7913d6f5542ac2720d4014b071b8e881ca84 +DIST firefox-93.0-da.xpi 526877 BLAKE2B de3c3b1672d84d4d8a49590c1b9a07fed9c02a5ab536cf866e7d88b68b3e80afa86189a61df265aef2a84ca6f9d38a2586356e4484d7e032bd29bed2ca58e0a3 SHA512 c1c768d4ab282f40f743522174a01959746b090d57efa752f38f781042082929240192a8941e1c4a958e808d0dc913bd36ae2b02cb7cf50f38d65fa38cdaeb69 +DIST firefox-93.0-de.xpi 545833 BLAKE2B 577f4d449fa486cde9da6e112d1bde94ca665a49f730e39583a1a94e89c960be5d47dad51fbedd961bae27cf540bb18fc6334a45103f992077c7af26b7883d9b SHA512 d801da177531921d3768823ab37ba337435c118db836a0576dfb0e9d3edcc05c4cc38c188a79ec671f0dc99b3f9c7e6c7a2ff5d2e4eddbf1b990d83321f3df72 +DIST firefox-93.0-dsb.xpi 558727 BLAKE2B b8885e8895e358e1a4046716b14d5811e9baa4580b63e7efdf342cf5595079cecb821dc25be3e0f6ebb6bfc097d4f631d5c399f3a4fbe1b33706fc00fbfa572e SHA512 181f72e86d1a3094db48ae7268b20da8078deb557cc886f553e956f5d7ca39648c0587a0fac696c8269e36dde893a9b40a54f393614055b6b7bd7338a741dfe2 +DIST firefox-93.0-el.xpi 630033 BLAKE2B 2ed10eafa7adeecfc53e359472852253f6858eb59ba2b7cca387c7a1e92b92a49fb6099307dc4f6dbd6bb7b464ae5d80f6e56956d5b5ef062dcea4c0e99c8f20 SHA512 0069e3c0da0ed812550fec496105c0b5f1c4b8b7410cb4ab645f8980a91c29bd7ea76ccc44fd65673ea0ff069cab78052dd23152ef92c28a301f99abb338d50d +DIST firefox-93.0-en-CA.xpi 503488 BLAKE2B ab3857c80479b957bbc6f65c919053bc0c1af8555471574788a07a27f1c8e479c3d5545b57485ac9662449fbf2129660c9ad6b1a9a5eb743964842f85a37e3b5 SHA512 e750a08ebe9330cd9dc03d68d17a3c5b3265b27df073dfed84b23b234b21d472b371df36919356198863dee528e18e30c7fbf6f597a4e8f569a7598f111965e4 +DIST firefox-93.0-en-GB.xpi 503980 BLAKE2B 7da7105dfa6cff94421be9b40ac5da37aa2630e4f52a027edb9fe5c30b8979fe05c8e41aa35f416d41937c562b3bb2a5d2393357b78a7f3c4fedf3a9fa23a470 SHA512 a8b1ed440065476adf7a5338438a41cad528dda2b51003f3aa4b7535d04ae2a48552ed79de944dbbd795fdf66f85a9967fbd212001ffb1c183b29bc72775a763 +DIST firefox-93.0-eo.xpi 526735 BLAKE2B 355bcb2771e997fabc9279b714cbc2e8faec3f904ba55f3962d0299e402dc21102549a4aeb9332a03d2e15885b6f89ce05f7a5eba375a0c687a5f0491b568562 SHA512 5d5dfc4e4eeeeb9ecd3c0e57b88f9257994e7c7764c28013fb74ce2e98e2af8b253e49e6c6dafcafdbf9eb7598cee5bea9225aa6d659b5f23a16d4913c4241ab +DIST firefox-93.0-es-AR.xpi 539030 BLAKE2B 95057e78119f8dd0bd2617a930c48fdb2cb4d4602496ccdb1169183d9a2f59c1b45b65cf055e270a33fe8b6e2b503349617fb96d776a7ffe406d1cc24c3463a1 SHA512 480ff3a54aa0bd0368f99ebb880ee3970ccbfc1a1ce4c53b48856ef8324edb7c2b8d6c7ddc5e7e01c7598d44ac292ed38c2a245162bc910b94dd1bf6c3ff0fba +DIST firefox-93.0-es-CL.xpi 538966 BLAKE2B f51812b80692529fe7f2b3376d35a6162f938c27c8266f688e0c44462693cef58e00ab0306dcd2bca60ba997aebdc348de91aff7e92b355edf17e6c96b2ba11c SHA512 b18d6ee13c7d5019d810e14f5a7f23a97b58e93e9a944964e5df0b52bf2be3ea78991b057a873f649994e2d753267bbc291df5dcaebc7e331156eb2c6f92cdac +DIST firefox-93.0-es-ES.xpi 529676 BLAKE2B 3b68d6e47079bb7dca64bd9899443bfe034bf81c060eb2534e9cbbb9afdd564120abc3abca6765f984d23c2a8acb616fbbb9b34e16eaa513c0b0940e371ff037 SHA512 f37dc89bb7f40efad1bcba3817bac35a32469f149d0850383f1c4fa47caa6bfdb6e9f8edabc20d6b7068e61b8a02669ec17de19fa82786c233bd843ed3d6aa8b +DIST firefox-93.0-es-MX.xpi 540268 BLAKE2B f29f38b5246ca22d9f3316a39988fe147d07d21c0923506e3972547a38278e911e981fb94c29e1988d05b44a2ed3b9a3823c3caae31ccf7f86864e44201383ca SHA512 5774c6a90629617b5b2e51f6c70b0a2b6b91b8bbd46ebf3a7a093799a989ee47f31f2eadd066e7791be20674ce6d3cc51013b11962ada30629a4107774de9721 +DIST firefox-93.0-et.xpi 477768 BLAKE2B 0dd35da520283f256a1d9653fc38ed50b1753a48db2d69916c8d6b3f3a45b746623ca577b5dd204b1f6361cc1f3dd9947a8def7c180245232e493ffb9bf44548 SHA512 1b39cce04fd5b063ef5c644f5de55d20189261f0160927d75f46c510894fe7086e6d9f94a1272b5ff01a7eec013fc8f8438a396188d5d787a7eee8c651698f51 +DIST firefox-93.0-eu.xpi 522929 BLAKE2B 199e480c481885df802d08bb920d602941e95c7d498cb190c440aa11b6384c8883f5b4d839c06ab30fbc10d7efcd2f2bce115950e4af42d085e034a5303f6fa9 SHA512 73ad278a0f15c6cfb1e93b253737bf64783e4d4bfe9995de6e6c9161719bf21f7e04916903d3a3c69c28dbbfb06155a29da1cd9d518c912a97ae859888f5faf4 +DIST firefox-93.0-fa.xpi 552085 BLAKE2B a58384af72aae4827392740d1238efa64b5835677ae89f99ca37eef54a13daea41db40b571a5b7814ceee1c0be0b46e78ae27eb3cb3a10bc5a36ce489038cab1 SHA512 a3c5eddb4d4ed91d5d0d5d5d852106da7f54c3e8b8f0cbb58eac94d777c39af8f663509666d1943980060d1b758c9cd7818c82591f67e4617fc4c5f32896e6ef +DIST firefox-93.0-ff.xpi 470218 BLAKE2B 714426024d36c04e2568b7c9173f7b854ea78c87e1e13c169b1ae8d5399b0e91640e2d8a03609c47154ab162e194a60ffdb91f8ff74e35eb2c51b28d36aa7abf SHA512 da371faff62778981c4fbee3d93eecf3b79af67d7b11d87be23a332c69beaf11f5c7c80253e3e9825673bf6d0bd60eacb5deec4c26347301c9cc9ec84f6c774f +DIST firefox-93.0-fi.xpi 525147 BLAKE2B c4b59bc0977544dd77572c319eda6d53ef2844f6cb9b6d3a1990bd6ee2018c0d0ad73e120fe03205f6ecfd57835967890708dfdb6033cd9ca52ad685197d86b7 SHA512 a85321398dbcaf566cb4a861f75e5df94b9b3488dd3b45b57679c76daa92674b3327c8dbe4b8986509593acba1ef55dc8bc9252d994bebdfc2ded0d070c347e7 +DIST firefox-93.0-fr.xpi 549922 BLAKE2B d42a269770af5a1af3c2ff58a4c511d3a7bbfe24f787c043bf0d16df3e16e51904f55ebd9bfd720c6de673fe54278c9362bf4f601008c695db4c27253cf77095 SHA512 5d3bdfb41e5dbbcd738b2dc4d75dd6aa7933678cb5a475017b1c159b85e1851ff64055d6584ba90cf826ca2dbf48ca5db00453df4c0942df913687a012d96467 +DIST firefox-93.0-fy-NL.xpi 535454 BLAKE2B a1e907e62e2a782f269c715e9f8e7edda6830db14af0e0edc94b2cf8775bf61eea84d2c599bfc8b0dba4b59cacd4e644c8ff24c2c3e67f49544f397173bcf11d SHA512 6c7fe63d4dc3647d66d74730abe074395cfefa274a31f2a31cf6fb8cd221e583cb56a1a2cdfcf17d2b244e92493c28f52f3bfe4919fc3bcf810796d4088a6ea0 +DIST firefox-93.0-ga-IE.xpi 458183 BLAKE2B fa205f205bd42841a012afe5dbe3f68e0c5e8a7334f6f7b8a44b3b067626961aeb4813c885b4b960511b810bf1d62f7921a90cf3dd3878230ceeb6520be3726a SHA512 989c3ab26eb9e0389e99a853388d593fa6f8a7d669f01a37166239e5fe438336cb4c41c9d3a14c17c38ec1f29211afdc940b3c64d1cc49ec37f774c0d241bcf4 +DIST firefox-93.0-gd.xpi 528654 BLAKE2B 7d4c74ab6c332b29033d6cba8f45644df404f07a52ddbd86a8ff4eaa66caa4563290bc2bb528592ead96754949461834b8809a457e913ced2fca2623ac983986 SHA512 af28980a0e534cb60dec1222932b0dfff1c5ec73bf375a484fbf630d3550c4d7f6765863d178caf51b534156b398b1bf448512a1f8730743df1861362db09347 +DIST firefox-93.0-gl.xpi 534915 BLAKE2B 5c3195212cb4e796bdb442634fd7987a2e6973706520d2e3cf5277e98a03030ee69de2d43cf9b72623b42e706f278bf6ce02292879703c14aaa289c0288edf7d SHA512 ee9cd718421cc84ad4024f72db1183ca92f31160901a7f0264355d27b7c3e63d278faacf1c5ae88ca22bfc0a0db634c3fe2637a0475db86f4aad31abda509b37 +DIST firefox-93.0-gn.xpi 550607 BLAKE2B 57eddebebd573bd34866935bbb41ee15aa124a23f5a9d3c8c260cf099bb1e3f29a9d16460337a5cfc4bf3a33ec904ea104a9cfdb3e2d60e3995de8a1e713ab18 SHA512 5b8188db95e0d3df48e6d50c517fe81d107e94d00ec079d9a7d701d670e582c79bd671c09c5e0ce0e610662518cfd085373106db775c87a505601c2c087cc420 +DIST firefox-93.0-gu-IN.xpi 527341 BLAKE2B 223381de9a212da37fd5b342998e84ca24dc9ba69ae87775083c70523bc27d1182d99a4f01ac08c694eb621fecaf37cd585c6715cffaa0c5c927959bcb8a6aac SHA512 de6a0906ae8060201b0a8c883f926450ea4756152c2d5726474f11fb4d9cf2c5fbdbcfc195cbf7615c0d70e0219e43c8d81f728a0e2d4d54774bc087a0ad207e +DIST firefox-93.0-he.xpi 549613 BLAKE2B 24d9fb31f2a23c841df8f1f0738e19f4bea02a5644e6c6f21420168550b5506cb9a6327437c206c51ae1b78827e6ae26e4568927ea3e7595d67cceb702261c7e SHA512 cf675f27876a96772f17ae27f2912af24841a027ef01b0b6a1c0a4bc81da46cd16b28a1d0a25687d950876faed7df7b6eec5bf9b04b6183dd4657b30964a61f1 +DIST firefox-93.0-hi-IN.xpi 554524 BLAKE2B 123da6e3c1bca53e0dde4ffc8c7f3513a63b8522e39a4ce220727e8c7201b4242e83736887816731e6992704757542ee1a3313c13a25257bc1b02adcaf27ffd6 SHA512 90e95dc999c2fd27375589ae9b012751e2cd0ad853a815f697311112d3389b62eac02a0a6dd6e87f14636d829ae4d2c0f7e24b7af63f2265d1544bf96ea0fd6e +DIST firefox-93.0-hr.xpi 528156 BLAKE2B 73080b79a8911b0af1d7d75e48eb084b8be81496ba834907c43e991bbb33b385a5dcbc4600d20f0c79a65f87b3a9467bb619b0db6f173031a2f807b17f1e3a76 SHA512 30b5f3e7628c5a4ab367490bfdf284d5001b6b383cb53722d6397a034c9f3eed635c8bdd035a4e9f0a55271887ed0e3fb18d52d977022dc95f73283bef68e592 +DIST firefox-93.0-hsb.xpi 554891 BLAKE2B 91462fad31ea5d07c08e859786f029a4239ae9af21aa951e8b05350f787501e3f1f2aec3f13590c01df82af4a2c9b4f1cf4001a7a71c6634d012e6dfddd6bae0 SHA512 3def75136859638c2dc69ab67c2fbd06543d921c9320919c34fc695363653d45da56e5069c933aa74152de4f1f023f993cd14370c09c6f5c2f51d1e426326e36 +DIST firefox-93.0-hu.xpi 558326 BLAKE2B 4df499fdad41dca45020e3a3167f88fbe239742e84f8a2e52d90337c59d0b8eb5716f685b623e297bdcd571e58d219d1f8365cd941f5c8c6604ab3f5da05cc4a SHA512 03df975bbfc026f0f01dd6237ce2c0f72d8db3046410d908b36aae1124ca88bc3499f2b5ca662fedbaf34b98180621d15d9642edb7565a5b46ccafc5c43048c5 +DIST firefox-93.0-hy-AM.xpi 575210 BLAKE2B 1c0fb2997f887bf1f659275a46fbde7eca73626675dc347063e19574c25897848d0b90b941d1b001593858df50ab6d6e16dff140b135272fe0beb9d9fb390bcf SHA512 656ca50a8a52e7c763a3b38303a69ebb1189491962214e5887dbd9c8509935388364b7a631eceef381e01500c816245085b1f4f987dea101353be9e729a70be3 +DIST firefox-93.0-ia.xpi 524923 BLAKE2B 6bf88594d5703ee818541c9d02560c1b3c9d7a5834827d2625e8abc1e65768342caafff8bf148c912b447d03b12a3b28d756e8d7dca26d1811be81b5c3ab526c SHA512 a4c2f084868b4b074acd2abf9ea69b0fecaad625d11cc0ecb2aafd3e8180846c23fb3a1a17a4945a9e70fbd568bb38fafe2e2fcdf48b1483a254c4deb65ad9d5 +DIST firefox-93.0-id.xpi 517762 BLAKE2B ea73a70438e115e11272b9d9c3fd528b0e3524847cfe0694f7bdf237d8bf33a48f8ebb5bd0fa5339eca912f6cc6f1f0acb52804b032750b265d6a66b6025d478 SHA512 69cdf57bd044726a56691a993d3f33102466244e822f7a7887c267c7d4cbdd6854f86c6f22f22c40b679921a4ef207e899362aded8c1fdd21cc4602ab9d2cd17 +DIST firefox-93.0-is.xpi 468226 BLAKE2B f852ce4196a04ebaa91990b5a40dad2327c61ec279b95c0c6dff25069e0ebd346871700e0295eec1fade0e66a1f464bd7f6b9028684fdb93053adc28265ca7b0 SHA512 2e1bee32f261c8a5f00f62b19f20f492ceda6ba18587051fadc81a6573298762959ce797f13d843be18ac09cd2a2f2d9ac6d4eba62724fbd732da9cb916daa0a +DIST firefox-93.0-it.xpi 452319 BLAKE2B 9d6e7eba5d54ebafa857ac88e00bc9ec2ee0b832d94926bf26af9b02c87e47cbc9652108a681ea12c29e840fc63f8c517d0e56c539f9849bf36f13a8d2f0a1e8 SHA512 32f9acd81418fe0b3881c7c102e698111c43174036e0b7526d330989c317eb7fdbbd514609664995aaa7aad11ee208b0831053ce5d8bd5a40eeb025f30057ab6 +DIST firefox-93.0-ja.xpi 583621 BLAKE2B dd86533ac2d7e5180a5131dec45d4dbc9651649de6cdb2c4c7f34514b3c1026f95b4fb216fdda8e1b8fd201ebb6d7c62a4bd7907905411f7a65d95ee1ba2ae07 SHA512 d4faa04fadeefab71add8d66fd8f50079f3b76327c4331b661627d67e7ced9c578b1b7fad2b3b78ad1fe03d9cb10706a32025aa2e9578d95e6cf6e5922701525 +DIST firefox-93.0-ka.xpi 581609 BLAKE2B 9947af1af189779d89286559afa02b72107a8897f378b6406d19596afab04ced557e15fc644a93a2a7ce95455d158932796b8e165a5422c9498506529156d838 SHA512 df262327b06d40e98fae990235578f83095a242d5ad97ee0206205efe0b2ce66ba1a1cc76de6c6fbcf7cdba95d588942c8a53ccdc15ae9e9520a9a4a876d3b7b +DIST firefox-93.0-kab.xpi 541415 BLAKE2B f92f62f00140dc18dc1de859a8c5e35b2fb3951f41fcd662bd545a724059d6b53698bdff6c3d173dfb6a1d0cc01e86ddfa19e33692cfb2af290fc767074cb355 SHA512 ef7c2fc29b8ef883a83c1f1ac3f24b2d41c38dd2b0d67161e794c4c5bb93105a9afa1f6f4fe7d69118839551f2a421b66e23c2654a3d9a4718ea593a6e36fbc4 +DIST firefox-93.0-kk.xpi 599181 BLAKE2B d9864b0122cfa821ebaacf217d225a8c5dcfa4245474ee77fc98460e3fd541b49692edf0fb42fad6f9399d4ad37145d4deb62593b84ab967ce219644aa58f124 SHA512 3100cf22fc23f05a30bd1bd5ea1b8854a351a127179b0dc4b484468d06f2105038be17e19a34ce2f9319ad08ad88ae5808df26f6a69ab3af73fdd1a276982c3a +DIST firefox-93.0-km.xpi 530641 BLAKE2B d7351d9d7af507dc22b61a3e21090c4ff0ccb2ca6879e7592f8559a70f75e8c886c341dbec2500594085b3ee5e1eb5720cad8ab83756694bbcf9533cded6524c SHA512 936f611550132cb743a5829fb6325b0eeff61cc0bd4f6d907d050fb95a5fc6832c196e14480e48279de9f780fb03e64ab847a2e769e288991a752d49ce0ad860 +DIST firefox-93.0-kn.xpi 496875 BLAKE2B 2e74a4a33cbd0d5ce2b00dc3693ea3e5438bfceb350e227b8930ecbc661c2551051998e4f3bbfdab5dc8dd4b074e46768d96851c1cf3bb678a1a23b987b6fdb2 SHA512 90040c35f88b05f5860e7550723bfbe1c2672a7332e86b004f90d72ef6a9c526f23185cbc9cc78b3eec88735bd0929e48b520f65802f7fff578a1fe352355575 +DIST firefox-93.0-ko.xpi 571057 BLAKE2B d8b59bd876fc9bc6a08008b8cc8c1299f50692d74188797aad627296cb46ffd2962ee272552422e5c6e4e7455272bbe9a1da44ac7dfbf770a9fc8b83a6d65327 SHA512 03dc08c54aac12ea858c7c8f6c7877d7119b0a2c22da28632b1dc4576c4f83a832058d9e06109cf5cf9fc769c8bb306a7784178464bdda33d4bc21e0cd71bf01 +DIST firefox-93.0-lij.xpi 468289 BLAKE2B ddbca123abcb93e4aff6f7208639331330f14b09f4a3edacf311465db317a0cb65860bc14cf1f35254ea898fc91606fe2da47f6572c9b1473dbf4fa3ca84cb6f SHA512 539a0b3a7e1a7095218c24294ccc1723238ed15bc56bc819f1afbd31d66a861bbf8a007f9267ef434bed71532fce0623a6d6e3939dfc09365af212175d4056fd +DIST firefox-93.0-lt.xpi 550004 BLAKE2B 99365a5dbd5b625c778c9888fa248db79d7d9bd645aea1704e1dbe899281521bf3d52b4eb9e3c39435db62fd644984b752c96bb826ab562f92674be63d2a6281 SHA512 64a52afd833f3022aa74c4c140147e19ebb5210d3f5ef7e22cf2c9cd8e652bf5a188d621f5cf020776b6cb51216d83fe9699238339d74c966d07a06f1d283598 +DIST firefox-93.0-lv.xpi 461090 BLAKE2B 59eabd920ee7d674360b8862aa3cb0c031cc19cd734ae872a7ea73d3a536eb69770ecd3212e32702845660405962da9b5b379e785575c974338f6a99c5e2d14c SHA512 16cc26e29374eb9fb39465865c8195e06901ba4573c60df0ebb093192c03e79369d9f51c45c997afb047549885bf9b4432e080669ea426723e86ee98cfeacad9 +DIST firefox-93.0-mk.xpi 464336 BLAKE2B 51f140eb30a594e918e8f901834fb6da77d002cef96d9487d87d7e69850cc3f9b59b9167408c36d4125bc3c24a26be95d310af657c041ee150c9d872886e60e3 SHA512 31d45f42758b4756480130432593c229de16b652e9eb4477f1121892d1513fd74485841f5ebf776da7f221aac3ef65550579cd5e8d09df5b77c0df18ca11a4e7 +DIST firefox-93.0-mr.xpi 529936 BLAKE2B d1c69e0d490044633eeee96da718350fa5596c883817aaa364262b1edbfa6a61a6379bec48aeecd13e84e670d05540223f1eb7fbb78de45bd5dc29f9c8cea9ae SHA512 881d81d66334f6095f109d2d92a50a36f76632a0d9a8fe19c89464a0b60996a81d3aa896557048a1793fe093ea6fb83f6a9b781d4ac1cfd7795f02e60beab093 +DIST firefox-93.0-ms.xpi 446072 BLAKE2B fd1571966a6a747572090c1341666e7a19bae86735f7d26e6058b9ddc81ec06dfac1bdaa119e96f98ef88daf7bc7e85ed2bb3b7d8c4b79db5b4362d7c1fec9fb SHA512 7645167f753020f638fbf22cafd2310a51f29ec27880124261a022c7e2c3bb6e3e3036b99ab150e14d4f909325b7c40699202da029e4a979eba44d4c392d1781 +DIST firefox-93.0-my.xpi 514638 BLAKE2B 262503dbbc49c47768beea3652867bc6a68f316be079c9905c62f860921c7c3e6a00d02f5ae62fc827175b79b43b928efc23a35579765d4e84f601680cba1847 SHA512 0847b88b0d1fc2c2c7ca5d8dff340ee8ac47861187db8ca56a96e9de35bb0adf5773c69e8a6d1ff3c782f340cbe172005a6c60c62da056ef8fb636b44fcb4dc0 +DIST firefox-93.0-nb-NO.xpi 522229 BLAKE2B db2ce8320b0eda8ade862577a0100f02148d18475240b706b208ff7e1a4bf973b05b83483e6225c63dd4567a0581e9a5edb144d9774e31cd5c29015b9d3e2e90 SHA512 b4492e5b9779eac4b7157b3d684a024217deb64000139a1f8c0b06cab477297130d052245ecaaca732179538da263fb60992882b2522ea01de0d9dca0a6575ea +DIST firefox-93.0-ne-NP.xpi 474848 BLAKE2B 9d03ade44120fa7d450189200947c595d3e20da480e5b45778f09c9278fe2f774d25ab5affdf16e6bbed56777280f828e81670487eef69b4e194133a6abea294 SHA512 16788ff4a8f23bacd46a73c1d05e11f717754fad5ed7ce8767f10a758d9e647c030e2349cccd654aef33e94fa916c58f0dcdbe1eddec13f76d9e878085737387 +DIST firefox-93.0-nl.xpi 529551 BLAKE2B ba0276f4906eca7d50b317f5529f5536456689ee2bc9ac30548097835e71d5ae49545860b35f74b55f42a79133196a2b3b7b683f430965ae5a331e55eacf7147 SHA512 7396dfc5c6562bf4494cc86a057afd1100eb79907fbab69be62ec33bc97fde9f3bef2f051c45b1c55e7d2cbf0ece2b221280cf591e5e7b36945851a455b8b18a +DIST firefox-93.0-nn-NO.xpi 524294 BLAKE2B 6373add7a034771a2b2e6f9b895c4382ee94ae75be4140fd6cd7ec6b1a6dc0a0f759838a93607bc70c68807eb0e1f440ecf44e336efe12e2037a17fa04ae0d4f SHA512 dc5476979c0ae4f093e225198d05decd76bb41502e3e1bea3404a6d88c5c9d26103a160b203ef86419b8edd078fdfb4ccd627e6f2d810c3eda4fdc539abc2002 +DIST firefox-93.0-oc.xpi 544355 BLAKE2B 51d8cf6cf916bd679b2695b2d0fa21a72efb8671d0cb28b4c96e6e6eb669203c91ec19c14888a426cf1485166ba3e44751d347c61ee71f8f7c9aeadcbf2b9646 SHA512 56072754032b9690a0a337fa35cd1925af2ba2cf60184efd5ed979ccfa4773a9215d26c4a8f0a67a3d2dc2397791b5a264fcdc08e6247ecd17dfa1dcaf72f130 +DIST firefox-93.0-pa-IN.xpi 586575 BLAKE2B d60215e010abd498da22b14037f95da09a8bc1d12a7c4cabf259c8f0b6671dfc603cb57ae07d655ee7212a03d3425fd9c5ced3020faff299fd51e496a1a018f7 SHA512 3065ae62e12e66d22a31ae3159ae8307b9e18968a0c7c34f69bbf44f14f902b4774625eee82249c2281ce5bc055616781d5cd0841f6b660be0bdcfa0437da59b +DIST firefox-93.0-pl.xpi 549021 BLAKE2B bfd96bb9ca4ae4a43be400452df5e7dbca4c2211658c678e69f54e5020d592bb9f06b503510c3c07b588eb1ed3078219dafa040e7f3aeb60ea4443e4c3420d69 SHA512 878529ee2d98b8a4c62fffaa6d2f76fa8868f58645b1f4fba12aa5cf68fbe19ab092958f291f1a7b293727205a1410ca9f17c6fb8e1481d69cf446d921d8142c +DIST firefox-93.0-pt-BR.xpi 535191 BLAKE2B be35833fc41ce7ac5e2b258ebb53746fdb62796a2c378a575f9361e6764896424ba3c5166eb9878dcab15425a7b88883626a5f3fbf222865922a5da9c8f81dca SHA512 e373aa08db92d743d7d3ce108398a4aa3cec1f51cc3f85d3df4284133c667bfd01379d47c04889a6e0fe047c13002f41816c7e09fecd5378e64e929837654095 +DIST firefox-93.0-pt-PT.xpi 538927 BLAKE2B cf8e5ca3d217cbaadc5c6f2745368b474371655754241f504a52bf93a251ce3822c5627bd6819170822b06ab3b70d75c674bad3ece46599c2b82d709f619ad0f SHA512 0e75179a27125971899fe0a0c62c96c2349b86dc66ee2e24b8d709fb75a25593b8a568d05d860869a8374149be0e52f68efa6b432bb2292363d24357c7b4b371 +DIST firefox-93.0-rm.xpi 528896 BLAKE2B 0ea2a69eef7deda6de93f8d4e76bdfcb97f1458997352f983dd6e4c4f22ab09e6fa3e84fc746167d655a5c7ab758fed50366957ce715012850aa90d4284eaf16 SHA512 398d2220d3ce7d9f69a7aea91729770ceb9d70d542dedc8bbc6784503ca7ea4ace1ed541b3e607d3ef3cfc84068217ee83b21584881dae890496b938b4020335 +DIST firefox-93.0-ro.xpi 526992 BLAKE2B d721f68a55f6fbd0feb0195dd084a815ee0ed8cdbd6280bf88d2f0832bf79902b95457a743d0fb92082588a2c0abe898fff701c2d7662794ff9aa621977d0af6 SHA512 cb2f042ea206941eafdf1ba6bc22a9ce7d6deeed35b76bdafb7de6020a04e6e15750f738a13330a6dc1b4d35849eca74cd2d2c8eefdbf73b4c68eb0ebfb7a2cf +DIST firefox-93.0-ru.xpi 618075 BLAKE2B 6542b59f44b8bc6590845ff09eca8ce24590cc2997f4bf8e1234efbc99811fca905e5ad167887a4412229dbcd7fe527ea4442a8883d25cd0a77f080baa9516cd SHA512 aebf1fdd8bdb18d7f87a706f9d9628f5a9c6bf7ef5c85a3b28646a7279ffd892b28f9544f4a7e00dd23be661c24a27881ac25b913f0e9208ab374ce967f3dcd5 +DIST firefox-93.0-sco.xpi 503139 BLAKE2B 462ee81c451ec26feeb3289ec9a937714fa5846e4a8378f2aaae6f78b5d2c26ec06d0556fc178f570f4a5be240167533cc7a463aced13165f2de70591b4fa4a5 SHA512 3ff18a4a37b80a6366f0d76d4cf4d4b615a562694df46684958f4058079067d11c449ece6dbd14e6464b4af0a7c3f3ed665c21158a5d30cbe4b72be549c4dd7d +DIST firefox-93.0-si.xpi 486409 BLAKE2B 7b960aa0220c2871b346d6fc75439aae4ab764070828f9591d1b26405cca9a832ecbea6c4109882265a4588035259812780ec917c47a139130c35ae90baaba53 SHA512 1597c2ed60e3b5c5275de7241d8af5411bf72fa42d838ee621fea92689dd3faeb5a5445d4544ac717458963260373eefd39f923144e16b4bcb12f1e7e9ac0064 +DIST firefox-93.0-sk.xpi 558314 BLAKE2B bee73e1012d0ce1ea390707664c88fb9ef84accec155e12fb020b532c6e4273192077364277ce54a1927364eb3ceaff9300f77b4dcb17532ca94eb8260d970bb SHA512 6952c26447dc2d28a24f4dbd195892b8e4fea2bd4c993a614629fee6b8cd28e1df21e1944fc8630800368d4b53d20f42e5934c6258b46871015469f4ea615ddb +DIST firefox-93.0-sl.xpi 527809 BLAKE2B 97c3cb43710254eab580d14dcbeb2b7ee108c8237fbaa5e34f629fdf367c67324f9b30be0cf418c1de992b603f0528139dc2cbf3091d484e52eb9678c739c8b3 SHA512 d4cd13f6dd828d2970603d7aa096b83b625451a6add92f9e7e8cc52bec0d902624214ddf388249c1172cb113a33aec0419086b1b9bf9b40b227e08307aaa0a45 +DIST firefox-93.0-son.xpi 424994 BLAKE2B 0dec247770f571c4ff5eda11db7a188677345137d8d02cb79372183c2fd42fe75e7f1ceebb0b034bce54e4cfa0968d8ced69d5b6c1d2f5c62a4d6cc4682187f0 SHA512 afe4f468ca23ff13afc4b3d4ed8f8cad4f9e35cefc6dc8577cca4b747aaa8f2d07664cdae7ac068296e3f5d396502027ad3208519eb930c4cc25f552b667b876 +DIST firefox-93.0-sq.xpi 544713 BLAKE2B 70d3a4fb2067eda7d578c39edec23e874faf733aa95ae5271ddfa666f5a5fcc9e3d07bf95f02478a8c607b392180842803878a258782df0df491b6379e7214ab SHA512 533936bbcb3e1ab19d76cc3bf26b2b49ecabf8713bd5b295992d02fbd6d1ac4d03291878561bd7e5baedf1224aaf59464df3e176a985a61af9475722fd4cf2e4 +DIST firefox-93.0-sr.xpi 581599 BLAKE2B f6171ab3392e7bf74ddb674f190c8be1e84fdc2f36a055827e84378e9220205dd321c84465f81d51ada7e6af526077d356a5029a820b27e254a1654430296aea SHA512 e5c9228f663049fe92703e82976ef4b2d8744aa22316879e5fd9cca9e7622d86ce4ea64c040356a51fd34926eec55839647a0b349822930086f2f1e6dd582a78 +DIST firefox-93.0-sv-SE.xpi 532713 BLAKE2B 3f6cc21955fd1f4e4e56b739d1a27bb1bf01ebc17d28004315c0081aa1d8e66343d43d11ff60486a83d93ba209cddd4abd151b2f6aef687d9c63f3cfe52cd71e SHA512 90fc2071185a465dead28face28489ebe72ee3731946b44cdfc489b7c05b7294a1267e1713dd461bec958dfd6470d7049e15a94e40fd9e565075a0d76e4f543b +DIST firefox-93.0-szl.xpi 508056 BLAKE2B 7673472d8695fae4a7418eb928988f48d504eba61ff3752b12cee6ac85521340abb3079502dcd42bb07979e09fca0f3ea57c532852f5238ce2fb662b1a7971bc SHA512 0e504f62f26630ba0dcdd3c88886f5156b3c7025d9d8b63e21cdd2835b53be098e19e350548f10e04006ac590e643f7be957c611a7802134f6954db825e77ac4 +DIST firefox-93.0-ta.xpi 510560 BLAKE2B 8392e897e5ae9a99a8f15c0f6316c8be466c2eb6f3369f9400480a22eabec4d5c011a848363e896c484c9a828a3ecc94abdb792e692f404ded1ae552de801329 SHA512 4312a73a25e910b99eaccb2b64fc942800d0c7e4ad66f9148d15da18ec7b6112ce7c341604d1951f9aa7335989acba695e00fdf6161b043f5e2d9d76879b0c47 +DIST firefox-93.0-te.xpi 547897 BLAKE2B ac902e4af11cf435fecfa424abfc9a33fa1ef3734e1cefe6fa36376c1120ffee42e8fd9c838e2d63dd8626715249789770fe6940254b517f38b7ef0f8aefe076 SHA512 68c5d02acfa87c062794750569bcc07b0db98c91d3c52ef0a80294044391080319227179777e1a46fb49489e17760999069484923b34cf3c0c29456749c7458b +DIST firefox-93.0-th.xpi 597398 BLAKE2B 5166d6d93c71ba0716ca01c062daba8e610ca7fcb9a1d3af291835f67f492c578e91e4bafd3a333e43f1526ad7c27dfd98aad0f752bac92c28e689b989b36603 SHA512 d2a05e5b8605b272f72981f406ef239430e9162b721e3a00528cd4a2b3ed9fe0ece62183025507376c38755525f5f19e3a35eed6a9402f49449aba3f0e0bab8a +DIST firefox-93.0-tl.xpi 513530 BLAKE2B e0322b3c4b887f986befd9fc1598c847dbb0acce56cd4184936504dfd3e031dbdc0a9c01c60763fce20a737fef927631e274df8e76fbe0e92f275eca24597958 SHA512 1da76aeafc4855f61df0de8fa70bcfb026d6e0509d65f75621f09b50223cc010283a57f45650225b8f89cb8f856af84e380e37787beae0a89a24d84387ab24d9 +DIST firefox-93.0-tr.xpi 544983 BLAKE2B 0fc66e736ba92b41838fd46a939585c00d298a0c952c129e08287ecebf3b6a4d90111e8a94ff97517e2812df4857c14a249fd021eee3147793fdb4a6ff24390c SHA512 acb038e18d2e262fda299a3aab404fd72f56e2461287b4f5bca3ddcbd8e23ce99b125c9f5587d218a22085bc580542c3864aa938ffe9e56b35b631d33897a5e0 +DIST firefox-93.0-trs.xpi 488632 BLAKE2B 5f48b970964ac000279400a2a3eb623604584568a8488ca493cb90dc0da68fe9a84275cbeedc88a809e2cfb0e130a2d444c13e86873a08b8b4be31dea4858a29 SHA512 d41f8b05d2c4bf24c58a9a332fcb8bc5f8c6402a0b5d9ddf05ad7f18ec3f315023f6bd834bfb55acca06fa2ac097b760e1fdd1d2eac51ba79ce2e142c569a063 +DIST firefox-93.0-uk.xpi 611847 BLAKE2B 9e1f4c0b1deee75e803872f17a35f054315bf94c62c88891d2e5cdea95a4b875e2b6fddd5f587f958d552625d78125901c83e95ae57858d184b938b577c18f2e SHA512 785e81dc5d7a8843451f238737d01d9ee7b3776570d704583a361ac3970ea883ae235f48591cf1932d114ace46b3dc1d1759e492ebca774a6a2306d5b9f6214b +DIST firefox-93.0-ur.xpi 554097 BLAKE2B 77c80cd3f2de590e780cccd31f0d9f0cd90f4960e11a5a4816b99354953b99d9e59c474e876199f0ad85eb3ac5867ca567582018f0c0fc696f89ad0696ba71aa SHA512 d8dc575bcb139b04d27a64128575d55c144520e9945dfbc1a73decdf793fbe7bab95e578de3171a5f51073db7562656dfd42cd8fd5856df882331bf67ef590da +DIST firefox-93.0-uz.xpi 465860 BLAKE2B aa7c572828667e4bcd82671280786af79e87a3974deee658c65f5553579809e23bde863ac480e3f194f6d7bdfc5b9a6c003bc4db083e591435a2ad7a978ae926 SHA512 b39f94193170cb3ed0a6180a348d56fe1b1c7160b9ee101c9faac397be7c3235b4de1ce9e2a7e8fb7380194e08a8b8204841409c0048e59c13eb47fe157621e9 +DIST firefox-93.0-vi.xpi 566298 BLAKE2B bb823f537d52dc6ee414c366095396299e47a7798b36f69961378c79745692af256f7d8ca3b4820289582c068bd4bdec8bdcde4eb00e24bb1d0c98d37009df96 SHA512 a74c2326ab12577e2019d86edd17c7cde2ebb48be62a16b26c19f0a930505134da55bbd25bf3c3fd7c377745bfb72e207709d88588500c84f2036243030ca002 +DIST firefox-93.0-xh.xpi 426899 BLAKE2B d089a23aa56a881db5a5092bf6da2133c001802c269a1e99ce7b187eb428c54cfd5642dcf3ecc9362f5f1f8eafaccf5e6b3ff5633f4b908ae72582bf86e0e26a SHA512 3ed06b3dd1d86cc10b4323b441fabd926999a0fcc6aff15c661c91c150fc0a6f9384e310fb1be4d97bd1770a98062d030205033e81d0a674af74f986afca9fcf +DIST firefox-93.0-zh-CN.xpi 567752 BLAKE2B f21d32140357de5cb98da2c75f5d8511c4d98e8405178b7c54553bfeb043aa372c796a79ac6b33704a64427edafa511ce40f69d8b7267d72f4c2037199972f20 SHA512 17c1f6cb48fec384a61ad60b0da4a93648bbd6da9a752be8db1f076dab13efaf5c22fbf539b89b4106427cb310e26aa0f708164f8eb13e045cfeba4e30d048cd +DIST firefox-93.0-zh-TW.xpi 568218 BLAKE2B 4d842b6492967fa0a4e5cfd2fd46091e5f683df3b0cbc4dd13b4693023e79652a21eda449690acbced52df9e302e50ea32533420929baf76ca70cad416fc1a13 SHA512 11baeb65242512faccb1f4e813b62de681647e246268af1c0763e5a801e8d73dd741eb58b30a0a368f354f4a708dac88f7a1ad32a0497e98b67eb57ab0ef654d +DIST firefox-93.0.source.tar.xz 382181136 BLAKE2B f4315a81ea5709fbf622ea39a4b259e44e8bafad95468d3f41fa8413dd1d5d92e260f549aacafe8b6af04f0c036fb9d59fe8531f0e2fa8de5dffcc403b33f2e1 SHA512 b29890e331819d47201b599b9feaaa7eaa0b02088fcbf980efc4f289d43da4f73970bf35ba2f763a2a892fd5318deb68cb9a66e71e9bc0c603642434c7e32e91 EBUILD firefox-78.13.0.ebuild 34230 BLAKE2B 0edb04cf5df6ab00f88e7007638864ebc2a7dd6367298dacfd91fd127c86f83e55c56c191d6b6d72bf2dfcf7864e752ffdc61b460881fffc581ef74e4c427493 SHA512 30b0440297c041a0cfeab994a82fc893ed386d4ee25aa838acb22d8926de7f65446d79fe9eae728686484c3c4f255d0c67f2ca84bb75915feeae72c229b1296e EBUILD firefox-78.14.0.ebuild 34231 BLAKE2B 7d5aa4e93e5cc74aad9a67f82d5ae7340905a0c3da73cd7bb7736118177604b0d34e812e5c935335ccd0fedb1f083757d06e4cfaec7f97b069687c74a4122eb8 SHA512 03f95af9560d1132bc687d8fa880f07e6ff4dbd0c97a1a9d42ee8847cff67d94cd098cc0afb2fa5afe9bfe5e85523efefc1f17249b0182f2000134f8991623f5 +EBUILD firefox-78.15.0.ebuild 34230 BLAKE2B 6109618c8154dd2a2e92655b5d410c48c94a554a191cf3f4a38b8de68670081643addb2be3e3ff51eaf42725a6d28fdfa5fa63b39a27232bf8d65f7ff65163a9 SHA512 2ab103310bf4b729ba53198c7395ba53fe64d7118120b07f0b0ea44e9450eab1944fbfd147f9abcd7d821f6ea1b8a9a13963b43feb5ae8cc503cb6a6803797b9 EBUILD firefox-91.0.1.ebuild 33580 BLAKE2B 8760dfb1afa842d7ea346dc77a931793e094747d4a13575a6d488f0d0d2f5a1f9da188f7ed4957119596f4a216763458f7c6d979548d82817bcb26e87bd7444a SHA512 871c85b85851361e1f4c989a222b995c26753d1f6dddf8cea6460e49b743af8e513588cc06f7c8a86dfe99c647ba86f78256d3e078e37649bd0bf2ea3096177e EBUILD firefox-91.0.2.ebuild 33584 BLAKE2B 93142a8e54ea4ae6d9cd3a071fb1d1b67a8a7dc7f09ba396cea793632da64c070aac1086be00b7de77eeaf16959b89744e9f2f2708df6f669a74f18fafa93547 SHA512 153e7cbdb260a3127d7e86c9e998b3afe9a0e2bd9b8b0f4f333df2a11690bd018e07166e5eedcdb3abfee8a308156bf9cc75cf54032ee79fca84714ec5478482 EBUILD firefox-92.0.1.ebuild 33568 BLAKE2B d2e75e19a8c09fc7c5631c24fe835bd208b27545661ba3cd1b3a007600e41c7282ac6e57e62e182f3be913a80599c5cea80616e5da6852cd3c580bae924d216a SHA512 0de38bd1a00b677c4acbe3285aaeab483fb8ff00038517d03d7bea7260100d34c81875f56904cc3e158dc7d7eedd3e95116ecf70071f50599eec5bfb6cd35bd8 EBUILD firefox-92.0.ebuild 33568 BLAKE2B 2ac9abb6fcd2db741a7c580ade9df72c2ed9dba69aba475f0de9b89928747a8644504361a5f536ea23429294853786d5192a499b3aba6548cc8d5820b7aacba5 SHA512 9965e215fe523b0c3d3a2c49eca3a2e0acebf1942740f80c0c7513e41a9c3221caea058833f8f57aa3ae329feb84fb98c28f08f10b7e079a764ebdb7291f131d +EBUILD firefox-93.0.ebuild 33568 BLAKE2B 2e42c59f1615fab2dd1e75ce0dc00a37b4b6e463b4f22916883f69a357a9dd125c294666b362a4029f43ee57656b3fcfdae1ce460ed1e037c36436f1ce78287d SHA512 b5a200d16b3ded0d19d87e266947fe96771a701790f08ed84c7369bec3200509782f1fd02d401fa4cd533739334b67f2a0f79ccc7c1c748ae1e59c097e2a1619 MISC metadata.xml 2151 BLAKE2B 0dd5df0e78dee99abb7d7fc5a384126ac9920f8f39e886932c894328ab4c235aabf0e7fe401c6859973bb8c55f29bb64ec8cc571b58aa427325cd4b98a89fbf4 SHA512 14e367bb16402e3c3efbed5ed6cf2acd776fd725f4f29f5cbf20f4351ddbb59c89103b9d051fb56912bea461f994fe47741afb6da3b072710eaead0004da2c58 diff --git a/www-client/firefox/firefox-78.15.0.ebuild b/www-client/firefox/firefox-78.15.0.ebuild new file mode 100644 index 000000000000..17c94954432f --- /dev/null +++ b/www-client/firefox/firefox-78.15.0.ebuild @@ -0,0 +1,1187 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-78esr-patches-18.tar.xz" + +LLVM_MAX_SLOT=12 + +PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="amd64 arm64 ~ppc64 x86" + +SLOT="0/esr$(ver_cut 1)" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate + hardened hwaccel jack lto +openh264 pgo pulseaudio screencast selinux + +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent + +system-libvpx +system-webp wayland wifi" + +REQUIRED_USE="debug? ( !system-av1 ) + screencast? ( wayland ) + wifi? ( dbus )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.14.3 + >=net-libs/nodejs-10.21.0 + virtual/pkgconfig + >=virtual/rust-1.41.0 + || ( + ( + sys-devel/clang:12 + sys-devel/llvm:12 + clang? ( + =sys-devel/lld-12* + pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] ) + ) + ) + ( + sys-devel/clang:11 + sys-devel/llvm:11 + clang? ( + =sys-devel/lld-11* + pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) + ) + ) + ( + sys-devel/clang:10 + sys-devel/llvm:10 + clang? ( + =sys-devel/lld-10* + pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) + ) + ) + ) + lto? ( + !clang? ( sys-devel/binutils[gold] ) + ) + amd64? ( >=dev-lang/yasm-1.1 ) + x86? ( >=dev-lang/yasm-1.1 ) + !system-av1? ( + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 ) + )" + +CDEPEND=" + >=dev-libs/nss-3.53.1 + >=dev-libs/nspr-4.25 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-2.18:2 + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.35:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/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:0/0.3 ) + system-av1? ( + >=media-libs/dav1d-0.3.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.6.8:0= + >=media-gfx/graphite2-1.3.13 + ) + system-icu? ( >=dev-libs/icu-67.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla )" + +RDEPEND="${CDEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${CDEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru + si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + fi + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums target-lexicon-0.9.0 + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_src_prepare +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-install-strip \ + --disable-strip \ + --disable-updater \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-png \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ + --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + mozconfig_use_enable jack + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_add_options_ac '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable screencast pipewire + + 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 + # Linking only works when using ld.gold when LTO is enabled + mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold + + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + elif tc-ld-is-gold ; then + mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif tc-ld-is-gold || use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export MACH_USE_SYSTEM_PYTHON=1 + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Build system requires xargs but is unable to find it + mozconfig_add_options_mk 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menus + local wrapper_wayland="${PN}-wayland.sh" + local wrapper_x11="${PN}-x11.sh" + local desktop_file="${FILESDIR}/icon/${PN}-r2.desktop" + local display_protocols="auto X11" + local icon="${PN}" + local name="Mozilla ${MOZ_PN^}" + local use_wayland="false" + + if use wayland ; then + display_protocols+=" Wayland" + use_wayland="true" + fi + + local app_name desktop_filename display_protocol exec_command + for display_protocol in ${display_protocols} ; do + app_name="${name} on ${display_protocol}" + desktop_filename="${PN}-${display_protocol,,}.desktop" + + case ${display_protocol} in + Wayland) + exec_command="${PN}-wayland --name ${PN}-wayland" + newbin "${FILESDIR}/${wrapper_wayland}" ${PN}-wayland + ;; + X11) + if ! use wayland ; then + # Exit loop here because there's no choice so + # we don't need wrapper/.desktop file for X11. + continue + fi + + exec_command="${PN}-x11 --name ${PN}-x11" + newbin "${FILESDIR}/${wrapper_x11}" ${PN}-x11 + ;; + *) + app_name="${name}" + desktop_filename="${PN}.desktop" + exec_command="${PN}" + ;; + esac + + 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 + done + + # Install generic wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}.sh" ${PN} + + # Update wrapper + local wrapper + for wrapper in \ + "${ED}/usr/bin/${PN}" \ + "${ED}/usr/bin/${PN}-x11" \ + "${ED}/usr/bin/${PN}-wayland" \ + ; do + [[ ! -f "${wrapper}" ]] && continue + + 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}:" \ + "${wrapper}" \ + || die + done +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information show_normandy_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 70 ; then + # Tell user only once about our DoH default + show_doh_information=yes + fi + + if ver_test "${replacing_version}" -lt 74.0-r2 ; then + # Tell user only once about our Normandy default + show_normandy_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 +} diff --git a/www-client/firefox/firefox-93.0.ebuild b/www-client/firefox/firefox-93.0.ebuild new file mode 100644 index 000000000000..ac40ceb888da --- /dev/null +++ b/www-client/firefox/firefox-93.0.ebuild @@ -0,0 +1,1148 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-93-patches-01.tar.xz" + +LLVM_MAX_SLOT=12 + +PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{axs,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="0/$(ver_cut 1)" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free geckodriver +gmp-autoupdate + hardened hwaccel jack lto +openh264 pgo pulseaudio screencast sndio selinux + +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent + +system-libvpx +system-webp wayland wifi" + +REQUIRED_USE="debug? ( !system-av1 ) + screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.19.0 + >=net-libs/nodejs-10.23.1 + virtual/pkgconfig + >=virtual/rust-1.51.0 + || ( + ( + sys-devel/clang:12 + sys-devel/llvm:12 + clang? ( + =sys-devel/lld-12* + pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] ) + ) + ) + ( + sys-devel/clang:11 + sys-devel/llvm:11 + clang? ( + =sys-devel/lld-11* + pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) + ) + ) + ( + sys-devel/clang:10 + sys-devel/llvm:10 + clang? ( + =sys-devel/lld-10* + pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 )" + +CDEPEND=" + >=dev-libs/nss-3.70 + >=dev-libs/nspr-4.32 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.35:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrender + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:0/0.3 ) + system-av1? ( + >=media-libs/dav1d-0.8.1:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + >=media-gfx/graphite2-1.3.13 + ) + system-icu? ( >=dev-libs/icu-69.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( media-sound/sndio )" + +RDEPEND="${CDEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${CDEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk sl son sq sr sv-SE szl ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + fi + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \ + && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then + # bug 792705 + eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)." + die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}." + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums target-lexicon-0.9.0 + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_src_prepare +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-install-strip \ + --disable-strip \ + --disable-updater \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-png \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ + --x-libraries="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + mozconfig_use_enable jack + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_add_options_ac '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable sndio + + mozconfig_use_enable wifi necko-wifi + + if use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland + else + mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif tc-ld-is-gold || use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export MACH_USE_SYSTEM_PYTHON=1 + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information show_normandy_information show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since firefox-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla Firefox shortcut." + elog "If you still want to be able to select between running Mozilla Firefox" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi +} |