commit: f17ff66bd8593efb4895ebfd84f8268dcb318116 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Sat May 13 09:00:29 2023 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Sat May 13 09:01:20 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f17ff66b
www-client/firefox: add 113.0.1 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 100 ++ www-client/firefox/firefox-113.0.1.ebuild | 1409 +++++++++++++++++++++++++++++ 2 files changed, 1509 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 36f13974ff4d..0e07de331c36 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -396,4 +396,104 @@ DIST firefox-113.0-vi.xpi 612249 BLAKE2B 5f4c3761c0c0897462488312829097bf7b84988 DIST firefox-113.0-xh.xpi 422782 BLAKE2B 1ab73e467f71bb9a569226c04b538815b9db9bc647ead603dac3ef69746508fbb5440b6c8cd018a8cd00b01994c6e3a09e3679bf54c2f1c9d60df7abd30cf373 SHA512 c590ba4ea3c06ec6bea0d2700a4ef632390f8893c37b6b0996b1212d6ed4c9a7e4cfd49a982fcedcd48518740e974f79097165be71829c545e086875cd152463 DIST firefox-113.0-zh-CN.xpi 611658 BLAKE2B cd8b24c7a8b3fe81176f2ee5e3ae39be69896bdf71f709a8ad7332bb46ee2d9c9110ba0ca681c6972eae86338906691b5c6caf94871da58cd36e0341dcf1c674 SHA512 d5a24cff452c1d97679060c5abf0b158ed1fe3f859ae47a391af0719d4a8b9c832ccfecffa1ada2e09bcdf766188d42b51bc4a3022b549bf6ce0f2923e158061 DIST firefox-113.0-zh-TW.xpi 613181 BLAKE2B 1f1d513bdc1bbee9d7500110aaabf6dd864541bb6e875b79a7067b3a393bc24aae9abb4c44e6146485192effb0a94db6d4f078174c013d9b471284e817e02eb2 SHA512 f0ecde9845601504bb2f323d5cb872c525be89b434b3cbdd2b8d013a81cba5d57a1b1b9f378d8e0705a6df0715d0612a259f1ae70d06015b2843f1c326cf6eaa +DIST firefox-113.0.1-ach.xpi 460938 BLAKE2B 9b0f52e9e7ca34054d4478f9f654a4612c8ec439aa8da00ba389f175453a78cd4fe9703fa803ce0292fe09ce7907a5ae21091d9333abc61f286b1b39369033f9 SHA512 b8dea2aca103e99e648b76e34051a89eabb3c03e206a7d7632481b32ac622a019046d94693f39d7759fd4da28e1f61544043cb0401fd9e81fac1d2313608226c +DIST firefox-113.0.1-af.xpi 424031 BLAKE2B be16167f496815fedc58ddd1817ca48f9ad5f8b97e2e5095143c160d2874c5c68791aacfc459d0a78e260970090de0ca9e05dab3619d10ebd2b470f0895b6f14 SHA512 b98c5e4c9bb8f267ef09f7c8945b30aa2d4be918d5340e67d9cefd45e72e877c651827c2972d33bfccb93b2193cd0ee951f7f2f4c4b34d0ae373b58e1a815ec3 +DIST firefox-113.0.1-an.xpi 505343 BLAKE2B 80c3b1dbec0dc5ef34e52f167576537f7bbe2e74c651b25e12620155f38747adf8c4c7fb5df072f54dc98525cf7480f2d38b7542a1dfeac01520589be31dd004 SHA512 8d6fccb70f0f760c623d57a6a7525c26c1a9dacacba902be9a853884af66426a2a152f029577ab6168812ca5e8e00179f46a9baa0bc3be28c9394732756ddbe3 +DIST firefox-113.0.1-ar.xpi 572298 BLAKE2B a433848758c1a2f1719098daacfb79409be829c833c1de0885028e607fddb4d00a4666a6689da189d2f8c33f43a7d6d9b559a996a876c74c60fbced35e82fb14 SHA512 2cb5aa02ba35c18b27a9a199f35681395d7b8375ca74ada2b46c0303dffcca4bece43ecb4c965c3da9fd45cc8e791e2167c7f171774080fac15fd957802d3103 +DIST firefox-113.0.1-ast.xpi 491647 BLAKE2B 48fde3a2def0508bf057ecfe7bd88f09594b9ffbbe8dad663c81b3ace4f246f2edf651d3089ecccca6b4a7edbf2e543da62846d242ee4c26d1525580c5394034 SHA512 c0c98a8b06e9f65f23cc8a218af5c266a3554c7f4cc1fce29bb36e510274f306a98ba69bdb5863579d93d51d97595dc6e2e4a54fad5fccbd2606fcf3068c53ed +DIST firefox-113.0.1-az.xpi 493586 BLAKE2B 84ba5888fbfb18bcdc0898afd8efdf3a7ff77cd600beda77b18fcda9823350802382b8022cd4d8dfc9ba073b5830580f10d049abe0f2f7d897489e087b08df97 SHA512 8475f8e6556ea55e26752b4bb6e533e4ebe31119de2301e172139cfe0d971a30e9ff49802a890f8524cc157612b4f8d47b93d1443c4ed27743111c45036d0fb1 +DIST firefox-113.0.1-be.xpi 665964 BLAKE2B 1ff70870519645f3d333d1709a4dd55af6415a486574607818547f5c8c4b49117c7fda743d3f78a7b8ac3d2a5f49be689f17ed413e5002f4a79458e7df788463 SHA512 31dbe806b744c529870ebeb08d788f18825e4b15084d6196cc93b332d5faeec39d7a0bd175a856914f49874bb5f3ecd820029ee7f33ae6d1ed330263a5f7ee16 +DIST firefox-113.0.1-bg.xpi 589766 BLAKE2B 5f5a9faf1059e98f5d412eed9558f8eecf969a0da0c5273b43321d7b4093d3043f3f62854706cd673245112c7ebd7672cdcb07cd8bfe03d8cb02770b6210f163 SHA512 00059857f9fd96a4a01fc0b87fcf870baa1c286bb66dc381d9ada6dfa4535318e59fcefe7bc43f856703cd044a253e7cda12aba61c958cacc538d61eb2a5aa21 +DIST firefox-113.0.1-bn.xpi 583367 BLAKE2B 2b261bc267a0cab90fdda3ecfccc7b9b9633b243f7c04341edd816bdff8ce1e21814c6c6993c11c9f53c7b8d9bac11ef78022857389aa24481f6508f79300bc6 SHA512 49fb976d232563672d25eff294e43f05017e987d75e2ff04a085ca213de5073748a40f3556b0792dd4579eceff2ddfd1f02a14cb3e43a7deee81d71ae77b3091 +DIST firefox-113.0.1-br.xpi 549628 BLAKE2B ab4928f8222fb3f84d27bc09bf60756ffcf749032ae502c755ae0a994a9876e7347630842b749bbad6c518424110f5d100ee67ced7d8751b543bf81647c85828 SHA512 9fa1930ebffcf792890facfdb0c6c8a89705aa3a3eba89b922ad991aa5ba0de70bc6520b8bff5e07aec236f9001e61f31f716e05119a8263c5c81b21bb1d7cf8 +DIST firefox-113.0.1-bs.xpi 465675 BLAKE2B f5fcd4410e2663faf67f19ee237d9477e94d26d181e5940a83dba63c4acfa01d25dec9cb4c087a16a83b103fa3e0bd8f6e0fba6d2537803dde92b99cade397f1 SHA512 1c92418048837846c71404d0df70d442b6863daa1da6c0050b7176b75fc41b82da8dc8072134be57f42498109ad8f95326c0a9a0b5ff90759847f809a2e9d5fb +DIST firefox-113.0.1-ca-valencia.xpi 544169 BLAKE2B c8f57807be8f907601e4f93c32d46a03518cac193943ff97978dd31c46c7d69588b6b0290ee01bc0c4867eb2d46ef7425d61507a2c91e8813942a96908ef36b5 SHA512 baac6e5729f826f42b6be01c02322e54b7b578d33cd7951cf70a0ac165a22c835f07b8b80d1016b6e656c310fa7cf1acc15a6853d9645f6d1f6c52bce5afbe78 +DIST firefox-113.0.1-ca.xpi 564151 BLAKE2B f4b2f4ed11174b94a7aff6124573488ce02aa8e70a89abc6fa3c0ebf227c6b351e6c5b46ba1eb00c2d4767eb354c96d7ceddeb1fda667c67e49b0e6866e77979 SHA512 ded82f8d51cce1d60e1f6a8b91cb0232645590e60b90084f735a0db5aca1ab776d2d7d7cadb48bf6873e1749392fef78a546d18482cbf0ab47498fb6fd2ad7e3 +DIST firefox-113.0.1-cak.xpi 586886 BLAKE2B 4e2e695d4c2e19443eb487a432318ed182be6e474a53c14fb2447110d4804e94769c9e9556ae72f3e1290c621518d9070bcee65c2d17d11005a7e18b65c8ffe9 SHA512 b97aa19a80466b18ea05535ebeb1c3825d6ac875a792b26b022aa822ad838a0802353e8cfe11b4797333ff1a1657df008dfbdc431b4cfacecb9670041cddaae5 +DIST firefox-113.0.1-cs.xpi 599487 BLAKE2B 585d9d32e2d29b9a332bef8e48b6cc9b25e6a71ec81e5b147d4a2cf27a6fc723ea0c3062b7291bf7ff5453c3299b66de4e8ff8641ca2cd8685ccd3b805d4938b SHA512 cafe83c31d505e1cc17f85ee17e177de6ff3369919b84a5997e3257570eeb545dd3357bbe50a9ce1f318cac570939fd3daca52b847de7409fe1d995a44b99d85 +DIST firefox-113.0.1-cy.xpi 579541 BLAKE2B 8b9a4e799647248c2dd1c4d13215688e25bd378d934faa0c2651e35f449d6fc2b5aed5de198ddaf3e05fcba2cab74d733a9f4d297490abd58f44aff9f1872c75 SHA512 1a30e75c821c688906604fd68354cb4f8f3dcedd60801b258ad5e52840599095db8697586c43ab8a56db9ad8686188346be12bcede38cf483073f8df86f06f16 +DIST firefox-113.0.1-da.xpi 568095 BLAKE2B c0733c75ce109b99a06a9032d8606b46edcf1ec8746ed185df598dabf66e57c829323f820ee640da7081cfe6d91486685bdb045b9dc5f93392e29079defabcd4 SHA512 34c0b34a18e1c84d1267b1d7f26b0bf8ecbdf01d08bd7513b3728ef26c89f22883b9d78702572b29db5c5ebcb380fece48df1cad5b0244b578dc56b0764d354e +DIST firefox-113.0.1-de.xpi 590616 BLAKE2B 47375070436a69f20ca1eabc63ae5290c27c55061eadce4f7fa4eed828754a2b9552524baf6890773826025a2c76d4a08cbca7c1a676f918046416fa3c4eecd7 SHA512 7635dea1e629720ba2548a560a56a4b815cd0627aaeaf5381e596b548c7cd4552f9835b3fe365d40e0bc8326edf6638a2f15aa6e11cb9075878b4947ce74a684 +DIST firefox-113.0.1-dsb.xpi 605165 BLAKE2B 242de6fd710fb70d8c6df69184c3c7d61d0f384d3497cdba712b0397b577d958e38b71bead14cce281a1dd22764347a73c96ae8f4e8eab77ea31ce2377487b28 SHA512 28850698286190351bc63df146da9a1845ccd4d2334169e07ac6512eb7405962441f4aff5950dcd874e24e4ddc1dec42a43b2daf90503bddbf3f84ea52b29acb +DIST firefox-113.0.1-el.xpi 678413 BLAKE2B bb79d46a10d3a7aff194f07c12b3703d2b363f4cfc441ecae2cd3c5cc52c9303e5481e945bf5f8b1c1f806bab5bbd58e37b58b6998257084f8a4df753b6263e9 SHA512 9025f7beb03d9d8c4b5f0d6312caa965b5e05ac810dd2414ad38c3957c000a3adad7b417d258e6ee22ef5ae514e0eed91cebb98d411a161d67d02042ef4e13e2 +DIST firefox-113.0.1-en-CA.xpi 539604 BLAKE2B 831d5463a6d69802849a01b0c26cd042e0bf585d27e93b3e7f961d1f030b51483b7b13bc1a6e872c73f4129772d4633259525f657efd30675ff6aa8bdedb17e6 SHA512 95db7de37e4de9af16c44255cfe46235f1fe22c89513081e447cf04b64f685b7cb438186c8b63bca5c15373b195cb5cd6752ac6afb1093ef55acd8b7c254e420 +DIST firefox-113.0.1-en-GB.xpi 544349 BLAKE2B 925cbd739c28b518b651731be28de175254e5261e72296a49fa37e203f49397eca667119ae2b824a13e6e45ad91481b9bd2946b6f937f5347c0f9f9271f1744a SHA512 51e528efece594f1ddf66b2bfb13889999caf48478b7a7987a2d2e7e3644d92dd85e0d0e405536f15cba18c97afdf8ef5fbcffc80be18a4a796321f6d6b8f87a +DIST firefox-113.0.1-eo.xpi 572716 BLAKE2B 3932d7bf1ae89e55dff93c994f264f692c2ec730830adff9dc7c2783c494fa230507e4ec333df83d5ce12c54189236c806866a71d43ce6720d19da5c3abba662 SHA512 027f9057d390cb1b6cb96448bf673186fadac3564aa0f913ef58b3dfce587ee66c3b6a33360ee70704a966ead3c0a7c91c93c539a4cccacde9d9dcf4b715aa62 +DIST firefox-113.0.1-es-AR.xpi 584477 BLAKE2B 631e4ccffb73a3261472bee60c138833e1203f15936fbc11fdef98a0f539d801dbd462d9e70b05610ff7cdefc6745e9d8fbd8342d8a28ec4f0f71e03eab8f25b SHA512 21bd880edd59cc489477c6fb60c333efa9290ba08b17f650466cbcd159ede9538126af527d75db860e52918873babba865567e9907881519add124ce2b894c22 +DIST firefox-113.0.1-es-CL.xpi 583616 BLAKE2B 35567817b9182010fb352444ccf5fecee40b427d47ef9e364ef08a13604ee57f6e4d90b7e39dc2eb564b51b4880cdb8f184741e31e1e1b1c94d11e872ebd0a65 SHA512 f6d6d273b35a6a9c346f2ad5daaac6534d444e3637e312b829936de3d8419eab1d528371f54408301a4ac02cbecb3ae117a6d423b1ef360cd3d6b91260bcde19 +DIST firefox-113.0.1-es-ES.xpi 576191 BLAKE2B a9cde3b37a4a1e83593bce78379c24df8081369c6211da4fbb667facb9488811cfd3ee1c532dc7f1f309aede83a9c3d6fe3987e56b7ee942254f5411067ffb3f SHA512 b084b3cace4e66205a7b99085bd90ddea3d4571da71fc16bf6f55a7175811a91d3a42ea6fd93fc99b94300cb4f12c6cacf0a396233543d63f2e85bcdad8213a8 +DIST firefox-113.0.1-es-MX.xpi 583070 BLAKE2B 1084c72cd5980df19ed4aa9eb498d96338964eecc4fd9bdb4e33840006c1169000c1e40970c6ab63eec1e548142b24537fe9d5bfb7e92985eeaab4cb8ce913b6 SHA512 ae05659797739953a680e5ee5d11d9534bd6b2b0949d48ec6abb6c963e53e5fb98302f6ee336a3988e56634570261def4f3fb117082b16a0843564e210f44999 +DIST firefox-113.0.1-et.xpi 538562 BLAKE2B 9941a891f0f6766b4097e1c936a854c2c33e19608bb421526b3ef065add485e07608f0559b42e2e952381017f30680e5e5009af60a599cce9287cf4b58e82bd2 SHA512 3d94eff3f7a4c53980da7fc0746cc693f3256fe171551042d89408754eceda27d577c664e3a39e1b505e13d872184b74999fca0304f325b3973394f679fc9a7c +DIST firefox-113.0.1-eu.xpi 570063 BLAKE2B 04ab7ac45bcb1dd76696061c7bcd0dc097bc1a620dcc27ade78d9e38a147c9be88fc44cdbb0424f3e85269a00167629a9e97cec897ad507f9187f383c5a1f5f4 SHA512 e4a5275333740f728cd47ad8564d71f3f9105077025fd2725864b77eefbe8552d546c71a11c64298add9f01dfbba1bd95272bc28086438cddfe651d7ad4ba446 +DIST firefox-113.0.1-fa.xpi 584244 BLAKE2B 1a6cb8b18a4ed04fb349d96b123c838758c99cfe78e13eaf94c4680f29a422602273016ae744b5928212b0612609c84d8e75f194b4adc13ae6d6cc5a60e3d648 SHA512 cf5657df9316f30a549c54f11b0871f990d9986c9123d54ab32caa4d5efee0b0493f4eca211e605ada1a697eace9abb43eef178dc211cbcb9c3919a3cd40f080 +DIST firefox-113.0.1-ff.xpi 477767 BLAKE2B 93a802b625d58992a71f69d5a0403d8eb96ffdee861b22c534e73674c73315185a2e13b81dca4b8b9758dc7dcc18ce0dab8adb1d8c1a2a90fcc715ecc5f32288 SHA512 7ff48ccd4f3a768b956996cfbf99bd513c529524e8c59902f4fb583f013c0cabfc9fab02add8af492a14a126d13ef5a95d87fff21a659fe61b6595a321fb4bba +DIST firefox-113.0.1-fi.xpi 567994 BLAKE2B 671658bd0c504bb93ec91d1da19fd167b9c1cee8a324f7919fea66b0c2b12e56a471e5c48c3d181922f11f0a52e4473ec6ed79c3c483ed0d054fea292c5ee905 SHA512 1ec1fbc3b97ec0079e44d7454e12ffadf66c7d4650233f12f80652980ebf4f64141498723901d81f4e1772062f4263f066c9456d8db974450a9412a676d20130 +DIST firefox-113.0.1-fr.xpi 595798 BLAKE2B 32e5007f539d5eef8811112752f45bb37cc34bfaca69af82e149eb0cf82c2a5f3353f38be158eba003e103556cdbdcf802b357b9827a993d0f6363cfc04e15eb SHA512 57f73e42514df246502ae4ed66f730b898da18fbc91e0e432d71dca43693fef4c99705faac50f7929d47ec439f616216f4e154ea5cc3b89adce865d36345fb8a +DIST firefox-113.0.1-fur.xpi 588905 BLAKE2B d167f615c62f5f7ec894625b84759c4efdf41519e152baac450a6938ba89459c316a56ac310bb152b35a60f0939c0ae8f42a30d5820e7ddbd13356e10d609543 SHA512 d3d82df6028316d9c8e08d62bd02de2bd318e3eceb5f6e6ec22827e7b4992bcb8ea92f4c3d70c54f177869b83270b4877f76481c1e9f69a6e3b45fe9cd7b8243 +DIST firefox-113.0.1-fy-NL.xpi 578747 BLAKE2B 334129e51621632ed24be4ef63f77a05480fc7d7246a025247e3b17cdd1274256ac11d41205980f4895268c2aafcf6485450c093088e1ecdd387b9e59bdb6454 SHA512 68dd2c2b4131c553edfb18c8f6a1ae305c5f8dd49f66f15c234886acf1dc1a11843a9809d628b8e8cef549694f96910a4ebf2dd46abd1995f449d4d8981aeab3 +DIST firefox-113.0.1-ga-IE.xpi 474591 BLAKE2B 83198a3fd4fa2f9abe31326bf212cb802d2e14fc9ee5bbcf5f07cd00cade5526cbf29bae818459c424e708a673df8a64fbef926d0ec4a7dd1d9bc9af56ebf403 SHA512 c64a53508d56f162cf73f3549bf7f34dc701168cb7dc1c151d4e5f57b7df9b9be2b9b493eca7398e329f4dac9d7843d27a2d8eff12ffb8ab1fc330685ccb021d +DIST firefox-113.0.1-gd.xpi 560381 BLAKE2B c43c76453021555a9299e0a38b0d4185628806eaf97bc075ef69b6df8218fe78fd1f6f255fd905354e21db6c4b3b0798a9c1233e51f548f6ac3f3fa762d0b70f SHA512 a7778b9dce92387c0f6bac09bb53b63323345c89bab71efc3af1b4b81d576a062236facdfd078e3bb34976e95dde30a3eb6bdd942f31020c493af5675146e723 +DIST firefox-113.0.1-gl.xpi 547681 BLAKE2B 153a5ab767a2e3a9ab8811bc48609868fe8119f2bab6f79a827594c6e25b30d3ac863552e1ae81bde6d07b5684376b10f1116eaa56bdbd22b508235710453ff1 SHA512 455947c7088db07e421bd1e6d3a96828e753d08eda77392202d887c2c7518d06509440071802ac21a7095678db9a9dce38fd7a02848eb518b9d1e4d81cbafbcd +DIST firefox-113.0.1-gn.xpi 595120 BLAKE2B 68842146bc4cd12031933aa11bf843ac24f3fca3ac0997a7182d75fcb537b3e712ab547011d8d1f84be027aa6ed2117df03701e05d4b359ee2138d569c365e82 SHA512 a83d3b6762f5c423e1646c797575c886f8a2d9abbd96483050e80c423cdff8bff61362805ae99ccdb7fa27fc46250f9983e357ba7ed809dc3291d7a19b38d643 +DIST firefox-113.0.1-gu-IN.xpi 532737 BLAKE2B 1723f59f88f335777442bee8ea52b33182c96a2117be27013d33f1be5c298625969487bd568ddb00c68c326a4cb7609fdf0fd551c8438388cd828644f29239e7 SHA512 aa74ff59c74eded395b778d207538d6b00ce1229473519f2b10ebd5ace28c2341dc088795f03085db57edb8c55352e5a10f7754d65490a7239bdcf813a043a70 +DIST firefox-113.0.1-he.xpi 589200 BLAKE2B b0d3597f75dc8c10abd5a3c1ba4aaf0606f5c51ce040400ce618063986e1d6b6a93faca8f2e7a1c65d5abd8833fc3850abf32b0f6b37cb2f8f5726f8ac051252 SHA512 87ac528739b6441f87e7148db1f19502035f0a4c06c338aeb382c4df4e8bd07c3203eb040f14e1701eb4209d3652016a259ca93084edded95e3ba21a22885baa +DIST firefox-113.0.1-hi-IN.xpi 562010 BLAKE2B a505419ef4594ae6b7a84d599612690b5411329df75efbb47493eb17718fb2be7ea77ed0c14220e335215a366c48dff3f63e5e6ac6d85a0dab1fc40bcc0240a2 SHA512 81a028e4db16fc5c92a7ad15565fa65cabc4f518a8c23672af513ccd7bd5d9ac0f64e00bd3803066b0c0e898ec11a70eb5b45a7f461e281692ef7bb38a4f8c45 +DIST firefox-113.0.1-hr.xpi 550562 BLAKE2B 9e267911702ea9661eccdf65978fa422a32f6a3857c26c6c036231a82b920a68a7c26f8fff31ddf5bb5d2160580c3d3db901bfdd217e2cf03a9a9c241b94942b SHA512 68dcf6dca97adb8853d3a3a3ef0217401c9f9b4dc48d14b3b73e015be4118f516a447f2c8c761bc468d9dadf05d48a3ba5b2f274567e4eb0b11fea73e151d8b0 +DIST firefox-113.0.1-hsb.xpi 601208 BLAKE2B 3efe62e8c0177031ab3aeb608611ff849ccf0b1f1c81edf12aa75a535eda51f7a44e773a063c2f7915fe1dad9f6b0096af848fe48ed8a993a2a84e39e22a6a1f SHA512 f64e29bdb1fe5cc50b7923e26a1cac3d86a2946e34f7183397cba37a9d57dd86a3b5f0d52b576dcff507b27b0f7892952e8cdfc270a7da9a21acaf6f76a53d5e +DIST firefox-113.0.1-hu.xpi 605471 BLAKE2B ca4c3694ea4a7663865187f55299c87eeee7976ea019c98af71509f33b036b450ec904c8d1d07922b27e0fac05523a61f907024af23b24a4487ebf049a4ba36b SHA512 c81b9a03f5113a34f074c535b1d4824f8690b8ebd172d4e3567f5bb86c207c42f8fde15e4630a5b07b8f19e119faeb4b8e6232bfd325d3b3b9168ef52d5ef32b +DIST firefox-113.0.1-hy-AM.xpi 604441 BLAKE2B fcfd8828f0d60206b4e44edbe7d2986191c60fedb5981f105361c24b2b7453af73e858a8772b21ceef5853d2cdf1c734316f28c47a1f4c05b2bed59e5f5c951e SHA512 0c3c804c0b67571f60db2eda80e3a4fd7dcd4d942babe3ca4231e55d70c0a1587e634abacb95d284a775c823480ce83355257dc2ee8489ffa8ecc77ad3db2367 +DIST firefox-113.0.1-ia.xpi 568104 BLAKE2B 231988478cdabcba7f87d1aad1cb75ef4c3c7a2fb0c8b6be2f72f1ad8999d39f2339b3d361ee231ded61047c79fb5e94b53410692e223dab793010dc65cd20ed SHA512 8b718794e1f429ee9fa65000b8cd7932197720ca9b0f597a0a7f47f5310e2af7127050f814d434ea40484175d083f2df083b4e6a9f397b1cbc98913871eb7490 +DIST firefox-113.0.1-id.xpi 559883 BLAKE2B 323b5750701b2b6f6a0cd3db1decb5f7ba57826c4b0e896254f568a203143c63ee192f9a828f391c5ece7ae4b6d1d0d5d1a3ac6d5812f97a0e829948b964a3f0 SHA512 6f1cbbbf153ac956bb085bc0585fe7859d3994ddb2b2962b2b4e7eb6faecd8b9a06fd151a093019800f3d1b228c1306a1090e127ac14ec248cef195953a8000a +DIST firefox-113.0.1-is.xpi 574435 BLAKE2B 40683c2fb3059a57e8e36f5f85462048be4a9fe4cf75a5c305e57b0e1ce499837bf257577ba0c3f7b55e95d6e28d241883610d9d4442ee2bd81469d1cf34f4f1 SHA512 fbd6f42d69e7a0ab8c8ef50fc3a964ddbecf9233fdc8ec775d6007c036c0281121f39c583970e06ce925bfe835d8bc3453d685f7db98255e6b9d974bcf744287 +DIST firefox-113.0.1-it.xpi 505904 BLAKE2B c4c36ea40248b3ebcb7edf6374a19edc8928bef4a4dff3dc09d533b9218f696dfa945a4e468d8190349538db3953bd57a89091226a130e7705d1db229e9b7a5c SHA512 a0479dd8d46700cc2af4045196c4702723d5ad26497823ca57d29cca899b8fa0e12e785e4df59d27452ac8ad7f1b8a2f09b387a948f90bb7b0063947131cd76b +DIST firefox-113.0.1-ja.xpi 629322 BLAKE2B 04da08806797f682e9d30694aa59f788ec560bdd604f32fde12d204c75969e6574f5d2b89f63725c229f9c778d3aefbb4c385f9190bbb239e6262718446444ee SHA512 7315cbcc5bfc44d20bd173fe81b01e903b4abfb28f0a229027fc6447e836416aea96837ca5795145082297eee7c2f177b26de2ff889cbc4bb3c5bd6a9f0d3158 +DIST firefox-113.0.1-ka.xpi 631109 BLAKE2B 96390cc4e72b183154ebbfb38a5d688868a2a97ce5f8c5228fbbb106f74952875c39affa210d71347bbd9a85246bd50f1d75aaef86e34ed7522390af84b0ca7d SHA512 d5737cddc064b70b02611fef6d81557393ef5a28d605be8492685cec8e72dad7f9eb50e87dcb34c82c90ecfddaee926038299c06305ae2d293dd0e9c7740683f +DIST firefox-113.0.1-kab.xpi 584694 BLAKE2B 5d7eb275a51bc20dc8e3c58a66e882422f6df895a92f13affc17dfe957552dcac07007a3f49eef4bd65c44709699faea99dcee7b36bcebca51277d4531417327 SHA512 b9f93d854c5072f4fb12f463d8482b2dcfc4ec88b1cd7d2e9dc03583e869ac9e5f4ceecf6f7d1a331a7b5bb29f0c2b3be35ec657106a4ddbea034109f45fdf9d +DIST firefox-113.0.1-kk.xpi 654256 BLAKE2B 1b56aa7e8b3b89a0554bef7e3c37ed7048a1ac4d414d789d7931a41c506cebd0f0da4949a3038e4f3a5200fde6234d06ee032af0c162b380cc3160a66efcb075 SHA512 5908fffa5f4dacc7bf7736349a7de0d964f861cd20e8b17f64285960f0363b529df88de1b38ede16c12d8b710cbb494c4133ee45b747f6056cc45fa72d91f57c +DIST firefox-113.0.1-km.xpi 534948 BLAKE2B e81cbafe7dbf5d140bfe03f00d5dde0048e2e68ab9a3fb6dbd5b89b5154c64914c18fafab2a8089d8c0c67d6d8e47010056fa7a9d344b36ffb7c86795de433bf SHA512 f70ec7641f7f3ac72c389249fd69f9908d3d1362cc8dbb12b65296de35d69b1ab94ea322ec1531d1bbcd29be4b3fc3ed4d24a63fda3724471753354c9e2b4c4a +DIST firefox-113.0.1-kn.xpi 500350 BLAKE2B 6814f8559ef391d46254a9ba0c2e5b12b0dd63b11e34054518cb09414fb8533cf21265b02d31390abfced9ea354aa40b40b8b5979b720b42815a9a464d368d0c SHA512 6366e4de65850b4f71157078ac9e223e0aee3b30b9c3eed87c60f61260809f280f3c18ada9ae12b41066c00ab590c3696125b72a408acfa6134539079105069b +DIST firefox-113.0.1-ko.xpi 615959 BLAKE2B 5b794a35d5f4f351b5193c2ebc088d1388e66ee844b637240afb1e49e9771202515d8492eb47eae55f69666c9667f36fd13e6caafea551985812b14fb58f9493 SHA512 75c99917d26ea70441bba7cd8b91e0fb12aac412343d587650677fc303a0c86d25cfe58e13cd67fa993510c9e143a8e23ac7283b9dd2370d58fca831a04094ae +DIST firefox-113.0.1-lij.xpi 474962 BLAKE2B 395dd3f6424d5db94b07d3aafc51f91e96f0d3ff3694f37dfd56774fa961a98bc04117e58279caaf4322c66c2af550c74bf33734d9efaefcd83b8e670ee6e256 SHA512 ce026adda9a53f5689f8b119407134f39a08833d99831c61da7b3474aaa99330258fa53d97e1f5d6c58f5218bd440bcc8235cbc5e1feb12eccd15aaf0cd09252 +DIST firefox-113.0.1-lt.xpi 570740 BLAKE2B 5a8901df937d622a3fc73bd2b84b6757ad607fea7e0a98ae1dc5a44025c5437032c6ea2bd6b8456a2806342d0662f7cb398af3226f83d27447f8908eaeda39b9 SHA512 46789b229250183346e7b750f82c22446eae6b796fd90fe9e70c5cd3c78868aa575bebea7a2b1300e28006b9cb88e6382d393933d58c80a1d7305a75dbd64ca1 +DIST firefox-113.0.1-lv.xpi 474353 BLAKE2B 1b83f7067856e7bc8118d3218077e989a701c410f5f669ec81ab273251b7fa0ba230fff5df55f0f445e25e698d360b310dcc66d35113fc258f6e7e5661ea697e SHA512 f4d4bd105f10cd29fb5b46be00d5f7ce7d3ba4b8f7467508757cfc69c641ca0e794a1f3d384c340164d45cc3a16d60627b5f64e8ef689406f208eee1458e3a2f +DIST firefox-113.0.1-mk.xpi 490182 BLAKE2B 6f68934b1bef44a2be5df61ec095e38ad3d0ec3afac953640e40f052f6986c3f6944cf2be4fe5f5f9ff044c65129e51c1a89fb7d7d77819e40d559b95184114a SHA512 4ac38858a7d3056a6d6aab8731c51bb7c221c95f195cef096687e1a53b18193696fb634d3da7a44a94c8929c2a0917a12115d0edc79a26dad6f74f3500c0dc1b +DIST firefox-113.0.1-mr.xpi 534959 BLAKE2B 578fc8406dc3aafa82846254192a50b0e75dd566f28b9ef3a76e6711d7021dc764ba4a676310c977962a7e3a84ea04cb082475f3bfd8e133439166a74245e3ff SHA512 2ecaca55097627834a0c2a9a1e5d5c322bdf740b2c28396e392cfd9147b1870bf33e5006642a3cc4389cdf9b49e46aac45e6a1b98c3db323d9f9879a962ba983 +DIST firefox-113.0.1-ms.xpi 454095 BLAKE2B e569c6dc5968864ddb2c17405387b70fa8005e65e5c45958f2345f75e4d7d8f79e25495a3eba5552325366ba114a3028432f1a3a2efd935b4d0d2e468cdcc85c SHA512 b3374112194f928f8ae87ed3d694e1c1c101f7d461f50286fec2624b32f01b49377b5530e7618393b3c6fa24ee2fb30e66d966e792715bd15607cf9755956008 +DIST firefox-113.0.1-my.xpi 520823 BLAKE2B 5b7e45bdb55e9cf15670eed1b55879de5bf90de97ba4bbb8f744012277667a693025adcb0a6247ae60ea8caad6b84bf973ec4fd0c6bc8c7f00bdbddb940a0ceb SHA512 8d79b93663eb5835d9435df27a6146aa26aaf7b470ddba4bacc0bb7529fc4d78e31a2d86829188a858a836047f472e95564fa2c19be4a04cd9c8cfdc3c1d9f63 +DIST firefox-113.0.1-nb-NO.xpi 563834 BLAKE2B d8b834dd95acc8f0e77ffaedca8cdfc9534c56f30d4de3fff9c7fe9aaa59a2a50bb7440bf40fd6f464cd122d0ad1e8d786dfcebce0975164f349e8f1a842dfff SHA512 e474858a4e25a4911b5da05c463cb9691817502320f1ddba844d6d020089d13e2502b18367f15fc9c585c2af09695b74439f8cf5d162f4301a1f5979ddb61d03 +DIST firefox-113.0.1-ne-NP.xpi 488594 BLAKE2B 42d39044479f2660180d112a3e51f13451a6b8c4d759d5bd5539ae460c23a529a399d5983630bb58f554460189623833ae0bd9bf9b6201defe790a2b1911d8f1 SHA512 dd5f3e4e7d58a2598a2526fcadd5acfa7a7b7368821b39fc70ad0a4e862275b2aebb8e6fcd9c3b9beddcbd545b71f3322c4ac0be17805fe53ad8253882cb9076 +DIST firefox-113.0.1-nl.xpi 572756 BLAKE2B 7d5e379251d9dfd162dcbaaebdaa4c685fdb284a84e7e9c49ef4d259b4c29394426686aef62f2dd9d94dc14b08102e397a367e71d705778a756f5f0d6cc02a8c SHA512 74e6da66d9176df5d54429e8979c1ed7f58382d4ddb916c7db2c6a6634e9eda319e245f336a5c545ec096ecdeb6aa8bc9b0003e883e6d070c371b63b400a40d5 +DIST firefox-113.0.1-nn-NO.xpi 568521 BLAKE2B 51240a7dcba8604d2d1fc7e5c283b37bec5f16aed89fcd925bfbe161c608b9cade6ceb2b46ec7a38294b08f5e1b0e67176c15e52d25d114141b20306fa44ecac SHA512 1c37edd00baf35ff5eaf2b2c6736d3499b9f2c3ee870b22f109ec4380cee609678742483fd554a00c063e3149cb39033d7ca1c6e954f54623faf72d4b9904fd3 +DIST firefox-113.0.1-oc.xpi 589366 BLAKE2B 9b568f84cb9b24aa4727098f76056d048cb1a2969b194dcd1280b1a7fdf8bc1c0e5b2e18646d48558f3d29ddcaad06d66c8775c72c44808e335b3826b3ab1e5b SHA512 7da7de7844528d4b32bfbe43c111262937591672d002dc00c4bf6d6c63d51ca1024b5b0dcbb99d6c2e82608bd6aecef8dc08691808b0d860a9716c099390712a +DIST firefox-113.0.1-pa-IN.xpi 647308 BLAKE2B 66119ec6801bd657fe965da0f77f9700a4436e57afae40ddd7f62ac248ddfd38c75930687117b6d5479298c820a973d51a1de1c8701022564452bd3fd28aae96 SHA512 491b90fc9aa5da2246f525182787a5ad9d11fce80ddf1ed64fd305ca419b7ac01c428977ede960f36b9c2d68a3feb6e591969f0654dc922017a08a6ad03bbf6b +DIST firefox-113.0.1-pl.xpi 598082 BLAKE2B 5f1506bc5a17f41ff1996fbe571f1de95949781516f64ef0d9c737a3a9d9176a165a58f047209212be361ffb758e7af76f872d99de0136bc0b5283ba8391fbca SHA512 7ec3f649680daeca92321d40f3e84d77af8114f645dbb8430be763e738d2ea303162daf59fc4d6816e0fd87bcb940bf075a77e2e1ba401b683bfe1a0bbae104c +DIST firefox-113.0.1-pt-BR.xpi 578652 BLAKE2B 15e8fa0aca166bf2ffcbc0149e3d97b82b91b4a4310a35b7cf38d390a298c93d3ab900631569f4de66b3b9c02c3e93dd0f2d937cc942bc808c60adf67f81edb5 SHA512 8d96823faa738120e953a49b2e093bf547e73f661e77bb94444009494466a7d0b333342315c89f008df85357f7840916d01ecfe26bd651b8f75a69ff038d4dd9 +DIST firefox-113.0.1-pt-PT.xpi 583005 BLAKE2B 9262f56a999414f3eff0c3173c7004d1729c27c9d24a7a1da31e3ef235b8c36dff367b49bc2e0477fff46d433cab2b7c0340b91c15e8ff06bc239fef7af51b19 SHA512 b88deeeec3ef1cb3090b92ab007c7b818f1d3d25045f02f153ca36db9ddf8564b8fa0ade699aaff5d7b75908d72cfad5d7667b6a57f7bd84015da62c90469b98 +DIST firefox-113.0.1-rm.xpi 574484 BLAKE2B 057f4d0a9e8516b749088bf85269e9668f5b7a41fbd6343ab9de7c78279f37e73cf38088a37e479b991d967c87db0e0e99cf4fdfef7c4a68b99a63a84f43cd57 SHA512 780e158e44ca5569782c6caf2c2fd7d3ca8ad573f24d4d1fa70f9d34ea7625bff668b3140b423fcc8251f7eb64f8cdb20e2ccd2f2cfd1cac3e8179b6215bfc60 +DIST firefox-113.0.1-ro.xpi 539290 BLAKE2B 48db0a5f19c9fdd22725e242b7112d81bda81a9d57497de3e4cbc08864215098be6a9abf2c2f36c73f4d39dbe7addd827112fe4360f26f4b070d85895bf5d539 SHA512 d6b4bda784aa37d330de1de8c34f011138bb0fd986529b3d44fe3cb15ad6be3342ffd2f168815f68bc387391cf9aa06668cc0dfa0e9b6678db64fa6e47d030dd +DIST firefox-113.0.1-ru.xpi 670906 BLAKE2B ad63eb91d8e8488f4c5a7845f924f56dd4350a6d96467064ed6b5656e5fab54e062e54018716668bade9f150af81da088ce60cef2016813eafcef2f86a0fb82b SHA512 9068da62aae7c29f12e4840a4f15bd90947a527f4c307b34ad39fc899ccffb273db41ef54ac8c19cd3bf04ca1268f908a897a9344c4cefc17e202c7c6901b683 +DIST firefox-113.0.1-sc.xpi 549546 BLAKE2B ce43f76f39d1c8d1c8d7ae8a7c312c5cf6833b5636ded4350fd2a36edc303b69efa492303f62506f2c1bf5fbd8d1c6fcf1553a1e6e8eed805230a80290ceda07 SHA512 bbe6b5e0ed79e5b7890bd88d601b92101163884538a47290bd76f43b9abbed4c44e59237b304b3f5a6f393ff1f6ebb1b6c4330b49ca19b5622b76f60867eaa6e +DIST firefox-113.0.1-sco.xpi 509095 BLAKE2B 3fdc251f794e347459ab8396564b27c2057446ad950f4f42bb8b2a05185221dd9b73b1812c6b1b05a37f786342aabf0a38e1a2bdcca9c8e0aa4f51caf1dde69f SHA512 82cf7efaba8dfe9807696b810b8d100736d501dba2e784ef1d472885888bc6f3b4cb6ced10ec187a2b5fc7ce0364386e4a91c72f4237f20dfcf740018cc61831 +DIST firefox-113.0.1-si.xpi 578774 BLAKE2B c72d96436830859fc4162c8c1343f9d88e5c3b681ed5eed83e2ab3ffd344e493d0c94b3ad05e459a7e38020cbbf2e082c3f3077ff7f66574b313a467cc0206fc SHA512 c39c096f1e85601fd20e7cd5cf386f77bc00b251e2204daf31218ae783201f7807541cebaf20030d3f66d9ddcca746050541fc63b1629dc4de073d2943221a47 +DIST firefox-113.0.1-sk.xpi 606291 BLAKE2B 3dbc56cf9d99cf6062a023a717e34e860b4b228978b2f840c7cd82aaa6e11e3ca8083a8521672cd0b9b60efbca7f82e7e981571595161a2b03807f0945d3225c SHA512 8cc324ced56e2b6afa4be05417bb568fc523271010e709118c0cbf6e0bcbf27859decb19d0dddedc3cdf402f8a7545afaaaa4d2a347d38939817d7dff68954e3 +DIST firefox-113.0.1-sl.xpi 575404 BLAKE2B 7858c29a2c7de9f5a0f63d8344a444f78320bdc58aa540fd8b0070dc1e09c86b9bad1e5e3642d07e7c42e071321bc5254a9c4d8cb76168b81c7e89542c50af8b SHA512 5349499e394115697407a4ec7d22e4cfd799d0e21e6dcb3362cfdd954cb1b78819199e8abca85d3e9c719e0580026c5edefeda9f6a80d7033b1755d395df3f3b +DIST firefox-113.0.1-son.xpi 425942 BLAKE2B 9a1f179b98ea700e40cab24e8af0d4e9ff5195c5197f5f7ad32b3920e1c9ad00193c6017165327e5f012c9ba1bf5996b43a068e368e821a153ac2956f527e992 SHA512 ff21e6b4a2c1db90af614b374a3220a7a47ba2cbb4e75242e222be1a9ae46ff386b407a23556db5b5cef73d7ca379ff8363ae59fedced38a36afd659049c2e63 +DIST firefox-113.0.1-sq.xpi 589367 BLAKE2B 2327fe7a6d3ea63f9ec2cc51279a54aa380a8aad96b99faecb8f880eef289b569a7684dcb0ab0883d79f617cc3cbf306bd3c6546aa13f3f87a06dc4fffc48fc6 SHA512 28e71c7970a764680c7a511b9e52280cf9d3cb829ac5d1d2e343395db5be1a7e60aa60b04b92c66d6b9c405616b1a5d2a955d4c269d4128f4baba86f3c151acb +DIST firefox-113.0.1-sr.xpi 633731 BLAKE2B 5b51b8f4ad514ae7c7e97c9e4b8b3ba1c805dcbb53f2003993147923c8033547e4fd82bfb9b779969ef3671109102ca583f8bd9db7630d8a794a43c10669b50c SHA512 c29241d4b103e65bf5e48af3b7ebd9d674a57fc2f6dbc9cc5ef75380d0dc82b51bd17b6556d8de72d97d7fb758cbccc9831ff9c476f8de258bdd1e4aa3402a3a +DIST firefox-113.0.1-sv-SE.xpi 575939 BLAKE2B 2800b8c183c6d9c1451964c64b263d2720bb997466b8032eac14bde2fbb66726c23ac9b34d419196ded53760aa736fb314b19d989c5790851d02f6b2f02967f0 SHA512 3b1a23bb0b65ab74270f72fffdd1f8d9ad37e1be3013e6800daaa0c3d22fefa6c7b7cba7918dce0b7fe7f0b505a331f547729c24eacff26b3f8d1ef2ff7fc53c +DIST firefox-113.0.1-szl.xpi 521953 BLAKE2B 72585195e70cb8d1cea90f574482fa2d617edc6727655f24e6bb49853c3fffc2fc2d545dc5bc3d20a130753d62ddcb13effb59fdee105d1cc2a97eb4c9d7a477 SHA512 0a3de025c5005ad6aa5a951e05517d20d13b32005ef997d4a996e8c43e86a7a1df5ae5b4e8af3d38d9c1eee1fd8e8b327b95556e96bd6a70033593248da6be0e +DIST firefox-113.0.1-ta.xpi 512539 BLAKE2B d74fb353d78d3a261c1939524e1c66a4df96f5d9d165511f08befad184bf15461758c8822b6fdbdbc0ffd5e94fa5604b8d399cfbe156323b58a4a68986cc4557 SHA512 91a55a3c0383dfd11d7593c29cde2575f9af3290988f317db5940252f737ae914e396de18eb84ea9d48c640245a5542743d0a41d0ff823aa0c7f439ab262ccb9 +DIST firefox-113.0.1-te.xpi 560987 BLAKE2B b6d653ee09e9aa9f9b56bd206988c71a709fd25654185bb1087d401b65a886f0b70b9820e32c8d4737e2467b7d466b56a4eb6dbeecbdb7311c5afe1058797372 SHA512 7a040c8395e9e0b59c027d094ae298d0696b2465028d1a76543262e6c4860ac19e283da6cc96f2a033874b167d80655a26a9003bec1bd2872d45430e1aae2345 +DIST firefox-113.0.1-th.xpi 644414 BLAKE2B 95e3dc7d33a24d75cbf5f1035392224f6bd2a5460d7905b96b4d4cce01685099edcc6798303aea8833ef6909f418a818f33f61551d51236457bf19c97b4adcf1 SHA512 36bdc1cacb79f98bbc579844b771b884e60f84127062db79caa8b0b9a40083210bbba52a9b8723869477574cd6152fd162b79098e4d7497bcb04d2c4bd4dff17 +DIST firefox-113.0.1-tl.xpi 531911 BLAKE2B aeb11fcf7f6e7f570bfd8b085daf5b134098f0c7dd2ee89b2e43fec5a7402dedbebfb60309410890254e07f58ee41a9ff5ec36c5c260b1b4a4a76892636cea7d SHA512 c715459d7e348ab4c377555f34322eae1c6dc8d4004f6748589a5d7e71505b70b126403b6cb7a00a88247a58adf0558ff26dbbce7aaa66825c77b14c45e59932 +DIST firefox-113.0.1-tr.xpi 589097 BLAKE2B b5055cf39204099597da7fb14d6ce4ad4720c41b59513c7607933f7a380296e89b90406f0fba7f0a642aa0ccebdf42038b3c828d0a2492f7d716355863d50e93 SHA512 27f2e010333034ccc37323a70bb9ed81bd1946629720b082c119e94fbe9013acdac7453b4fd33509d6c858c07db82daacb1d969096fe856798cb2de50f4921b9 +DIST firefox-113.0.1-trs.xpi 491612 BLAKE2B 34a331c498d8279d153f738382ac7ba0457700c9eba7457aa4fb0493a0e544e747117b4bf04b8c563b91854c11ec03e81dbeb0751a7e85c5b30a91ce5fbc1583 SHA512 831bfc6ad812777e3f2da619552910aa516e1d0e96243e3665da2afb0ab602dcc7d0aea91b2dec3623949829e1bef09e1b1048ed57579ff609c3893e176fed6e +DIST firefox-113.0.1-uk.xpi 663984 BLAKE2B 30dbf8d543c4c521cf8e8c49531ae6d9fc1be0ec5f61ef1d3e293111ce12c9587c9a51742986ea6abed58e469ecd38d2032bbc6f27b8e6910b05bca01b10f333 SHA512 93b7f45a4fcb0d8da026e18a4a8cf92ef59547f8091f47e3d7f44cb64c8d68d98b1ce830c0490d04201b03e658852743564e2cb29c7d517d413db2f048fa5d70 +DIST firefox-113.0.1-ur.xpi 562158 BLAKE2B 10ab103436ecc5967a52dc3e159f6efdf0b58f0cb058e0d9a3cb9cf51bf4cd2c9bdc1817457e3d37828aaa9f993ef2a2c68957b7d8e1364fd357241eefd9e935 SHA512 8485fa1c6e9dd5b12bdf2c7cf0062b39699701084ac2a055dc77cd2942cf1a0c6453a05b2b536ba48d91b75f0a31b23bc45cc45f8543c50a4dfe6e9d0e4bf472 +DIST firefox-113.0.1-uz.xpi 482166 BLAKE2B f562ed4ea85479d4d166115e131044ca35503b53a96dd03d966c3f5a72fd28f82c07b244820114e3af1b1e1ef6a95b7fa0e877cf64e5cb7870baa121218dc2ee SHA512 895554f48a71cd47fb7de4771e36017edb3b1b720d68177f5613117be371b1daca2cbc7691ab847db2618757f87e187397d761e84251fb5ab4e56f5139edefcf +DIST firefox-113.0.1-vi.xpi 612249 BLAKE2B 922ba4b3d6a575206e0e957fc12725d1ed5f557e376dcf993050a1f0d3c61fe6244518359a18c6a84e43745abc84db599dfb0e5bf0f19ee21a70ec7249bc146a SHA512 28f7a6eb18cb3fe2f8d08bd37f196ca871e13d149e371beb668e262efdfa3454425dfdfdabdb0c1fb7fd30f6878f33900cda3ae9ec61cea4385649ad1c597998 +DIST firefox-113.0.1-xh.xpi 422788 BLAKE2B 17750f9f0cd5f44996783f0f1b1afcb08c391543301513a918dd36d1994b5ea7657c4fbf8015ae8c9922c28e0e041b3da37bae642649cdceadfa48caa581f243 SHA512 ab10a8fbfc7638bf908572197048d68ccfa69c5f0ca0756e798dcd2db61ce884d13bdfbfc12c693b098a6a66d4a6ebbb366006ddedbdf4af1a79edbc19ebf63d +DIST firefox-113.0.1-zh-CN.xpi 611653 BLAKE2B bfd688d17409f3effdb01c904c432ca53a6cc91aa5a0f527288ca5ced8130d89b94ca1e18fca68093d62d7c8439f8b7fc8c8c539688d231e6ac2a63626254dba SHA512 a7106640cc65385a0bc5996aaf35d390ad4e1be7fb7650d0bb6b25fc73b4df899170d1872ba452f0737948419ac102d468168ff156493bad2f6a747339e7646f +DIST firefox-113.0.1-zh-TW.xpi 613183 BLAKE2B a80f74253f92c6d5213e20a419d3974928645340b3855c9f40abbe63d0be45e39537ce45ff8e2858383c4ac530176138d11d90a3ba0501b82e30e3bc17a65516 SHA512 6bb4ca9953ee36e25409667ac156f22eda6a0ec38dd0e2d7d826d3890691280562e589addf9764370430eb946cdb3ee8c58b838c464396c8e7c6592379f7501c +DIST firefox-113.0.1.source.tar.xz 502785808 BLAKE2B d87c98d29f9a29568a818bdbaf12a690ff60e16bb4b8f2a97c83280692533d04b089d015dca5b20fd0a03ca3763ef4a3b438f7105cbe877fda6044cc2c462a08 SHA512 67d6b777d138ef55dd813a15a483d0588181f3b83ba8da52bf6c1f10a58ab1d907a80afcfc1aa90b65405852b50d083f05032b32d3fdb153317f2df7f1f15db3 DIST firefox-113.0.source.tar.xz 499018844 BLAKE2B 1506901352ea84b8016080aa81a0f431b8620c64c0c54364ec56d1878b6413ad965c2d9f39a9bb06d2356c206702283400918b4fb0fa3dac380360f54e60b146 SHA512 96b0f0774083270f4fcce06085b177ced25ba05da7291d777f1da1d5bbad30721bc6363b76e06ccb64fc092778c8326a426a8bfdfa3cbaafd4f1169b924744a5 diff --git a/www-client/firefox/firefox-113.0.1.ebuild b/www-client/firefox/firefox-113.0.1.ebuild new file mode 100644 index 000000000000..00e00080656d --- /dev/null +++ b/www-client/firefox/firefox-113.0.1.ebuild @@ -0,0 +1,1409 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-113-patches-01.tar.xz" + +LLVM_MAX_SLOT=15 + +PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +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 optfeature pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/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 ~riscv ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack +jumbo-build libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" +telemetry wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:esr + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + || ( + sys-devel/lld:15 + sys-devel/mold + ) + virtual/rust:0/llvm-15 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.65 ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + wayland? ( + >=gui-libs/wlroots-0.15.1-r1[tinywl] + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.89 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-72.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libdrm + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && tc-ld-is-lld ; 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 ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${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}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work + addpredict /dev/dri + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # May need a wider addpredict when using wayland+pgo. + addpredict /dev/dri + + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + if tc-is-gcc; then + have_switched_compiler=yes + fi + 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, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + 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 + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # 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 + + if use elibc_musl && use arm64 ; then + mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --disable-elf-hack + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # 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 + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + elog + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " + elog "useragent checks. To temporarily fix this, enter about:config and modify " + elog "network.http.useragent.forceVersion preference to \"99\"." + elog "Or install an addon to change your useragent." + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" + elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas +}