From 46de1a2f454a1465026d681f5dfe8db7dde5b126 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 21 Nov 2023 17:12:48 +0000 Subject: gentoo auto-resync : 21:11:2023 - 17:12:48 --- www-client/firefox/Manifest | 101 +++ www-client/firefox/firefox-120.0.ebuild | 1438 +++++++++++++++++++++++++++++++ 2 files changed, 1539 insertions(+) create mode 100644 www-client/firefox/firefox-120.0.ebuild (limited to 'www-client/firefox') diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index d8aae52ab654..0913748bdbf7 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -412,8 +412,109 @@ DIST firefox-119.0.1-zh-CN.xpi 609155 BLAKE2B 2e7358f866834f6991d54b40872234baac DIST firefox-119.0.1-zh-TW.xpi 612610 BLAKE2B 1b98a3492e14867a8ee8bc3449465af7f365c3be6b092857bdc83045540b1b28d3c9bb864d395bfd50f273ee9a21a7acc583361939b5d6a3a233529ff3d5536d SHA512 a510a590bc457d1ea70392bfdb3e7bc36ba43b379361d547ca55eadd9d44a6ce59c24cf01667df6e014bb164f0333ae728a1ecf9939065be71923cc22fb83c52 DIST firefox-119.0.1.source.tar.xz 524717896 BLAKE2B b5a2ceadf05692d482dc8114634902d33c32c908e60394bf2e6b38afd8d83830d40c83afec28f7257e269595196140c0a8a1f345232f29c649a202d51ca39c68 SHA512 4f3201aee10e7b831cc384b2c7430a24f4de81f703115a917f9eb7acecb2ae1725f11af56c41257a056bb9d7a4d749d590cc9baffcd6e13852be45aaecf8163a DIST firefox-119.0.source.tar.xz 523093112 BLAKE2B 4fc9852839a65b05c0861eea1d3c99aa9ef8eef02ba02dab15720d0da62b219f0fc2c4bdda1741dcf0eed316b88f032580c7cf433c4d09170b5c8e19e8ad4e1d SHA512 4b555c444add36567fd538752b122f227cf78bb70b72c79e6d8ae8d9c2e61c3cdacfae79c37970753b8b5c7716b28c686071eb7b551773c30a76852f3550676c +DIST firefox-120.0-ach.xpi 452406 BLAKE2B c7d90c68f9533e0dde831575026061301a0359ae1b07dcc09d836216e75f42c485bb82a67376e2ed910ea46091efdacf8adb6fcb1d5a0dd1f7a85a140496bbc6 SHA512 ae6035a73d48e7f42627f180825765e7194e6afc1dd1d6ca1b626e472e6ac570d0dcffb19e69623a9dc4639a2969270b91b75948cc62308dfdc2b455a828b443 +DIST firefox-120.0-af.xpi 408350 BLAKE2B e841d6e1e11d2aa0747d6d1bab06eed8fd64942fa72e9661e47847c4f78d882ac3b07c497b14a0ca334742e07ff79278fd98b49cb38db06e8d91ff9971a320bf SHA512 721f33a479c528551bb8dcb9dea3cd5f6bf9be7be1c5851b3b6e7814104ab66aaa5e1103d25787eae4c94a846ab2d13da5f6b3d3b880e5d5b2cae4ed590adb6a +DIST firefox-120.0-an.xpi 493113 BLAKE2B 438187930e8687fe7d90bde56112a7512b57292b224f3784a8a715fe28ccf2a29e2bc800fe252ccd180b6c1e0e2eb114cac2dfc091314134e9ba3f32c2fcb2a7 SHA512 4bf1bf696315bb39b0e0eb0325df1e55ec7bfc6ebc32671c30807e10b71f10405fae6e64a5b60f5ceba234c9fe3cdb4411080c0da6d63f8888f9e0b53c7a2ac0 +DIST firefox-120.0-ar.xpi 583117 BLAKE2B cb9a2aa3343a902f971a777d8f86ff8439025217b269a564d7858ea8342bc13decf1203329b26d528f0fb2b15d6ab30df9ff412faaa15bb96f23748a73702e44 SHA512 d4f639551959dc56e014f4d83b24b521eebd78cdd2151292091af38a69d83527b2a15a8d46ce3f05ee23ec035b3e00ada1955b81d8eb25c83e4c6d1cb9da9a08 +DIST firefox-120.0-ast.xpi 485205 BLAKE2B 9bac8cd48b0e7e6862a96a50ddf8aea0aec61451c1dd6fe17dd411b1ec32f56ca33462d20d8c0e8b239fff99508b2fe61ae37402ae7c01d9b5823e6f5378ff48 SHA512 a8e015911a8e627f1ad14513292b133cbf81f08abbf09630eb98d7adacfd649fea0872405858e34d22efd629c5132b09dadd4ed408f1edf3557c1cfba6ab4fa7 +DIST firefox-120.0-az.xpi 478982 BLAKE2B e8f587cd8803f1c799ec2005da19bf1ab987ba5e9af322ee8ad99a848332fa214e1acb19002e680bc387461f848d765e5f13fdf6916cf01cbc8f3c8119b66ddb SHA512 9978735bb2ae30d361c6af39eaad52cf158fb5f488974aa7df60815c31b4fe176fce9b761f8209fb933a3ec8afa4223a3f7736ddd079e796bc71b6a0873befd8 +DIST firefox-120.0-be.xpi 672593 BLAKE2B 2e9175a98a94ef61254d693e4a19f02116788f195ac33d271191b888d420e53100812b43b3aab154fbb77c8343474185ff1883b517ca8639d094526593945c4c SHA512 2e8c27425fd916da6b45c297ca2d2ff7b741e0abbce09476ab354eef403ff7230cf7bf52f03c086af4a19755bcc937f029ef5ab9d4eeaf55e4e57770b9aaff5f +DIST firefox-120.0-bg.xpi 574997 BLAKE2B 21e758cd76b9a3d8614256cb86e542cd74634baf43623e9127adeccdca065965ac5ac872f62da8c0ab7710bf0c898b43b1a8419db4e233649852874fdf54929b SHA512 b774f3660fc7e31bf03d69cd79be7df3bc940cde74ee1683df11d18ac2c4c27ffac1fc64b706f952ed19e6e3f436e1cb7c3fd1e06744491bc38b8b585bc40e11 +DIST firefox-120.0-bn.xpi 569024 BLAKE2B 1d11fdf20d9eaf0e29953da0e038f9e11da8a508fff895bbab2b3578aa443b7b1aece1b6796befd4a110836e385f93b67bfb48c16c6e4de47b7e3d0b8844519f SHA512 b8c2580a6ee4a28d1205bac4b6897fcfecb1162769f0c41364494f20112aed0ba38e10ac756650a0d7429959a7aeece31e9ffd35cf4c2e5f99b29cb4e31a72df +DIST firefox-120.0-br.xpi 554037 BLAKE2B e5c5118e057ec4e157e968b749dad23b1d8cd40f1a0d34006f3fddf44a2b9f370a32892894b44dd9f791757d3a3c70f4a317b6faff0014917fc6c6670fe20ee6 SHA512 61c6d1743d2ffeb180e8f1044a2b4f5213008c2e2a6a0897326fa5447ee196c11d590ae9f5ddb1457cf5b6b3fbbc33bef1bcbf7fee6ee9bcb51b3bb25a914e12 +DIST firefox-120.0-bs.xpi 448503 BLAKE2B f035af7ebf978f684f969d74324a53f6869ef1f1477dfc86d2bf7e5e521a79469a30d406861a5c5dacdb915c190a165a9891594b527455604596d5e982667dd9 SHA512 5c91bc974ce6c1524840b3128f506c96c24752831d7a593d602f9bd91ab106d86386751586177e655b68b8460f00ba784d44b05d14a678c1a3ca4dc239aba1d5 +DIST firefox-120.0-ca-valencia.xpi 532971 BLAKE2B 556d3f3002f1037b12792a217793e91440e936887b0a3f0fb41110654c310bb376ba88081455fc46ba542690236fcc5667e88a7299c6ced4c21e5dbaae2181c3 SHA512 7a9ec7e27bbfe1c8d08033590b193cc3311bc17e9cf9ec1bb8ea47a402d95429ef51552cc5d3a3a80f54a5fa8ffab2618327aa44b2d8799f883ce6b9f13761f7 +DIST firefox-120.0-ca.xpi 565169 BLAKE2B c72f458d04ca239b2d28f25f87c545dfaef7ef76a060d66f6e46bc5746563cbf653bb73e66a5ff8e265349da9340368125b06047585ad05065395cadb26793b4 SHA512 4d104c9f63bbfbf926a2577a21ad99597f3e72e2bf23d20c1693b54d4a9e25a445b8173758fc264901a4662e664e1b5dc21db6be0ae6bbd810992dfa4bffb989 +DIST firefox-120.0-cak.xpi 577836 BLAKE2B 867707f7a350fc1da4a2475fc5219ba96ff128a216adb961bedbe967b45a56e6a9e9bccdc55def824d6aaad33da5973b259e0756790eb9be0adf2357fe9ec762 SHA512 0775579984919c65236339092c97508b2694792194f1bbdc5bac1ae146be96ed9620eab588d54470ccffef1d60dd9290217e00d5c4d8a954b4cae339067445d8 +DIST firefox-120.0-cs.xpi 619090 BLAKE2B e7e1e73a75e80cba12da570018b93c85cd78ce7ef4238e3c93531b709e24892c87ddb4333c6a8d7054583cebeb296022b62abaead5027de0761b2d8bf6d9eb9c SHA512 bd1a10ef5517ac910c2b0180b231d386bc4392355440b2907e547f166413d6a1fdc4ee1ceee8a8570c978514e5c0db7beebbcedebc9216c1c393afe0e8c6d8b4 +DIST firefox-120.0-cy.xpi 586540 BLAKE2B 974da65434258e2f928a5f7682a3e2e8e06fc79cd432c375d8f58a616125a04f8346afe3fcb67d47aa88f104b0838068dfd3eea42ac565c3be7a0721672dfc5c SHA512 d8f25c76b0feb05cd23f6f536fadd851d9d812e4251d92bc8c183e92a7bc24e1880178f80e0d82988a0f4d7f432bf940ad607199b5b10461e7c5466b5f3359c2 +DIST firefox-120.0-da.xpi 575578 BLAKE2B 2ef7f4debd36c8b9e813bdff27cb3305c29ea62873ae8192f63e86adacce9aed1a5541fab29f5e6698371c298f6d6e003a562c334f125f1397d5118ef0f6d43e SHA512 a5e52283efe130b4b0326a30179858131945cfa8ad56d36d82e2e4c8979c0b6e23b87ea39ce340d0fc2fe33f684ed11b31a21ea6d68a7158e5f02eb6b0e2f9cd +DIST firefox-120.0-de.xpi 596555 BLAKE2B 75da932d7072cfd2c8b1e6719b2bbb13b55e64024f14ed115c841576ece8fecb2abbfb5995855329e1bdf269888f06f154121228aa5168eb65bfc2b8ad170414 SHA512 6ecef5dc1f4146ce029c2b63419f9eebc09dcca2b4f0cc2815eb6a1cf126c266a5693eb7bd94165e2000f82a68429339d49d1bf588df386b28d52a94aa02c39f +DIST firefox-120.0-dsb.xpi 611850 BLAKE2B fd4051a3c388ecef450150caa0af53c09ba5fbd5ff366ba31e270dee2f121081c6ef2d05efb3b34d393a5d5de6e81bb50e8ad197d64e6fa86b3d6ec952812b91 SHA512 91567ab56029076636440126baf1278bc8b25c7046f975e2964a8deb4a212d4c6062253d43d7f3b000c1c11d53f1298e5ebdcb17c63857ea90c9bc82b59c4926 +DIST firefox-120.0-el.xpi 689496 BLAKE2B 8f600525bd1c0742529156fd97abe23ff1e20dcc4aaab9e5b30ea9ad246364ffd67cb568db431446fe9ba18be9ba5c920ecdc01b3ea32fd6a734f12b2d8c6399 SHA512 faa148fc1b561bc20d7b52f3eec4ffd45dc2513abde2e5743eb2421a46a7699373ca7527974949c9c57d866c974739865fe2dd06d24810cde973d1bcdbec9bca +DIST firefox-120.0-en-CA.xpi 546882 BLAKE2B 13c393a6adeee961a2e66d8afd49f400e169115e6bcb0a86956efe6b7e17fe5d3c6fd8be3c456032acb1883cd36193cb66abb02813a5692989ddc3d927eab231 SHA512 0e205047fcfc66842abf1043b2d54b39ab91a27df1a4074154f7190d3937cf83510291a033e5b504599b8c185c8862b50c1bed4d74583e9518315c39feb99078 +DIST firefox-120.0-en-GB.xpi 550564 BLAKE2B 8aa3287d99b2de81b0e2dfc37beb74c501cbf6d36802736af904b0cf1852ce00ac6e9ed7dd7edf920c0ef2848e4dcdfa7adf097734bcf23a854abf1811a6c384 SHA512 a7af406e68161f42aaea0fdb4132c5f9ec626dbd1f4f3331f812ab294035e1445ec7c6f06f3f41c3cdbebd836a9035d45a6d71613d90eaa684e48b33f2e2e4c9 +DIST firefox-120.0-eo.xpi 579374 BLAKE2B d90e97b10fa77c5f344fc65e9606308c834c92f15bbadfefb427a928ebd6b9b34fe669e6b55afb0056623497d991851d7cebdfb10050878dd370db61bf6e0808 SHA512 9efdbee1ed0dd128049b1497a43e66efefb987d6bbe5ea325a1a59150c7380f697962e71affbce0d0ef6ee3b51128c0eb3a1a8362c00e0ab9f97bb6c561fc46f +DIST firefox-120.0-es-AR.xpi 590606 BLAKE2B 7bb9675f35150314b75a77efdc77842f097d9e2eef025475b68ef75e8c6e8d3d41f4f839beee0f6a0884fa2eaa5200dc0cd312a3843070c737f1d37ed9d42695 SHA512 1584f188eb6d35540a9a441dfca8abf0445a0f1bdc6ecd590378a49e2642fcfb2814131b8984ee643310a89aa358a180802c4b93f042ce0361a09b656a1d0392 +DIST firefox-120.0-es-CL.xpi 589730 BLAKE2B de129f9f700fd7d77679165ea9b668c4f909589d81f9bf492fd8c8c3b97b95318a00973c4e6e4c9984e19d8224634823ad462da66cdc7a627d2ab7dddf6b1729 SHA512 018d44f89b19f5237add5ace7fff4bffb7c6f8bd224a71f4a3ea2a18e4cf0d60512d390998aea242c52fe224a65c09c0a126110bd6df5ad9bf5a5851788766eb +DIST firefox-120.0-es-ES.xpi 584305 BLAKE2B 26d829d75e75d595eff9656c5d9031de476c8e9c6e3b9dc870d72515db69bb9e048c942cc7a93587eeaf78fd8a8fa1984d3f50b54b75a41f34b07205f20f7631 SHA512 0c9faadc9301e55b29070021eec919e3b331410fb39a4650aea389d12a7d3820e6701cd206619ba6da0791ac934e3863b3948ce710e1df24421aa5aabaaa4f20 +DIST firefox-120.0-es-MX.xpi 576742 BLAKE2B 5235a82d8104358e5b4dc9d05f1067dcd5ffbea12e3bf3f59614185a350de3176575c91dbabe04659915dea17f513742fa9f0956c44ad023967bf6c33e3ffc1e SHA512 63942bffbb3aba206330f74e4488df79b18eca24edbc9b145389f7a792d07a9062024390707b504bf7d94856f24544cea42cc2c0cf3ff5945e3cf061d715c7d4 +DIST firefox-120.0-et.xpi 526678 BLAKE2B 12065765efeaf3f4710677190134e3dac241a8c5c60e3d027cbc4481602803410aa85fc2c708084f950002c43b41095c80ae094b208e4e2d6f98bf783b6624ab SHA512 7ac3781877c58b7ac71aab8818277924274c2244b37db21827a194ef354e5bb440e9b0574776dc951d185e3f0c580962e54cb681d12b841190d291ba7cc41343 +DIST firefox-120.0-eu.xpi 574217 BLAKE2B 66c85ddcc4ba01068b48ec00112da9399493fb25bc021ca15673332fba6737392070ed7d2275607c25ccbf7ff04e656eeddd2fb25aff30664230e073f0953c88 SHA512 466e8d81e156bccee90e1cfdd73040fde61d10508ea5e258d0427baa0a4ca27cb82f0786b1c505253e151660ac015446dd787e73005e72f697572fa2918a1867 +DIST firefox-120.0-fa.xpi 577067 BLAKE2B 6ee1fa5bdc550cc58b7ee8d2d804c4856773c64a06ac9fbd13dd0c02dbec9c7a6b3e1bee6237bcc26e43b4d0a7d145255ecb7d659c30d19b93dd4fa5aecebecb SHA512 0cb985e113487d41409c3b503a7670566194a8396c60271fb9f196396a7bef2f37118da62a6ea5f25e3fde220a9f319bf407bb11efcf005dd227bb3ceb1b1756 +DIST firefox-120.0-ff.xpi 464034 BLAKE2B e190a7c6074628bb68a75d28155de8391e9746351f04abc3866db41bfc20a1dd722444d0a8b4a5d24dd48c247a400794aaac15e1a8e09f6ab0f49969769feca6 SHA512 de31e863389c8d3d5b22b5883aab139dfcd67529f332c61e37dfae905c18da3c72865e2cc8229d41105e790e956b1f4cf0a5cb6e8a1fe0a6994c012e8f34fed3 +DIST firefox-120.0-fi.xpi 573136 BLAKE2B 23782e9e36cf0f371fc12259b17d338097d09b9e6a2323f4c3cf5b78af9b93c8d771c55621738fbd0d3823ed011b4addd5370fb4c0cae27f8e4df819cba86af0 SHA512 0325e13ae4f30da13659f43b5e575606e72cf1fba4415c1db8882c225b7740d54da1e05ed61591080221958f4a181e4ec80c393b8d1cb1ee242ee4d1de4ec259 +DIST firefox-120.0-fr.xpi 602900 BLAKE2B a24fb56a6c23509cf4444e7d3edb74dea097bf4fa1831fe23e419f44477fc3493111b0683ee30acad4e62754c4e9e8dcfabaa91226b6ba3549dacf0b1ebb5511 SHA512 f3e40acd388d0b6eb6b446cbd7cacab7d55a4cff253d4d7af601dccefcd0256c430647769747f42e0b695cc635ef8c3668545828abd9b862250b84ea73e25d6e +DIST firefox-120.0-fur.xpi 595583 BLAKE2B 2f2f01c7e9d4eb48724f8db37677dda6e4c8124f8d5031bbbfea9f49d02b4196fa75baa715619a39290749e0716060ab85d1deef4354e83fa9eaa069405d4b14 SHA512 b2c108c242ce6b89ade036f4ff741762285a70f1e3d4074e5c874af2ac96db3cc4387d50a012a52df5bf724198a498de36a8b6457c5f3f036379c4a6075c74c6 +DIST firefox-120.0-fy-NL.xpi 586202 BLAKE2B a59cf047bdf690e41481d60660d4aa26c4a2e3f26c423045e2f32d50cf9f26c54efc92c938d204b06aa55b6931465562268ca923a67b1aa953e1f29e2f3b6e57 SHA512 b71bb34a14a6bfe50d0417ce69af5559e46dd6197242b1b5384eb57c525a58bde77bea644035c16f31862a39e22b3079bdff228c685184e5cee8879cd35206b6 +DIST firefox-120.0-ga-IE.xpi 461297 BLAKE2B 74c69afd8dd33b907494e545bb6a8a72ec47792a48908c4cdbf610cc1d0ded7ad07b19ab419bbbf3c9b56ec29de01cec85c02e1af40dea9ad06e6d68f82dcd14 SHA512 427e7e8dadbc37b09889b28542603aee5930935c57f065e3adaa7d51bc529344f94386c876f44b688b6568bc615731b4d588558d828c65b22eca772fc0af5439 +DIST firefox-120.0-gd.xpi 578544 BLAKE2B e07b05b79025eeaba3a531366b18d5f25618820688ff19e3f428cf07989df056007c28859b6f9c8a3a5a6d137337fb69073bc691dc9f76bf6157c097fc0f4a06 SHA512 ab147ecc3852e2b9590813e137b0490a2e79573f3473a47e141e6b767df74ee7de4274b7cc2b20c971d7cf63a32ede2acddef82ceb185c9ac49b01406a2fe79b +DIST firefox-120.0-gl.xpi 584964 BLAKE2B e14155602ab9a7dc229f4ca8749e75d7d8644d294d9797771e9c275285dba8faeaa23d665bde0591e8136aef7a258dba9b1fbe79a546a815ae98565f4e888bcc SHA512 7b3a38f897e37d732bfafaacffd1906cfdb4e722788b7a4a025eb016abedb3c8d6516b6d75c38b2f389851f119d9ecc019062f95b88d2e7a1cbe33bbcf75328d +DIST firefox-120.0-gn.xpi 601450 BLAKE2B 5d651a4b2bc78de402aca1b5275814c1705d230cfc3e4a928200d1f96c450eb90514a229b20683a7b5a017625ab1409a763d268766e983cb1a0fcea5f3937eb4 SHA512 c8d3f90be4d57dc8f066f7f2eb054ac236908cbfbe95c668aefe72fc10975086f68bdca56cd3cb8eeca84f16b02965845e8b2035c437e65dbd39341efb40628b +DIST firefox-120.0-gu-IN.xpi 514874 BLAKE2B 1ee76d006772886652b6e9a77a425c7b82189b0d98b2e6f784aa36c5544abb25c5d89476120fefdddd0b8c26683bed7ef2acc968f4e16b87ce0cf03bcafcbb14 SHA512 2077658d3d9ab888672815043aa922bb39299b6c556de64dcbdc1e1dcca50c673ec8d71f41467f6ea03b9cf3c1ed404e4b2a111985542d6e7f02847bb679fd04 +DIST firefox-120.0-he.xpi 595912 BLAKE2B 79a1a6b529e4ebec5ae3dbc0e25a48afa9629273c3f7fe276c85e972164d5229d0e1f6c9bc203366580672c09a5354786d69852e9238fe005b92208ed9c22a46 SHA512 c6295d2fb053b74a63447a894743151c03a4e1267a5a1a9de97e00ba5db4d4de69ea95d493e345ab6943ee0fd0f8bc9d4fecb1ab32574d25f8845aa1dbbbac31 +DIST firefox-120.0-hi-IN.xpi 552908 BLAKE2B 7757e050c0d83c14097138ede489dfbe56a3e4c42d68d674faa48e1208497339500d1aca749dd8e29bfa260f1c5b74ff20889a9b87f6b5fa0f9669e6bdbf5163 SHA512 6770d8c035b33b1424ea52fff5ec29a1fe87b79962dd50c1784aa294bcecefc3091b7335fbad45ce2083456163e8e6aa79f94d53f00f256f59f43d4b84a1ae14 +DIST firefox-120.0-hr.xpi 543691 BLAKE2B df09a13e528a81a2d7a4e214b9d9c99ab8cf30260d9c71ac03bcf97b30491e4c2f79b68ae2bcf96e18f9a1b2ed7e227b33d3e90e11358f5ee1437a66d1330bec SHA512 d4a3fda12f23b14add1aa5ed1c955ebfd731a668d38e4c31ac81fc3d6df1f56b2cecee1bcc4ab56e454e9ee5867869e097b07901fdd19b8cd8c0a1aea91c180a +DIST firefox-120.0-hsb.xpi 607813 BLAKE2B 920ef6fdfdad523846fe4065f683ebdecc0b0aa4b9878df6aea4a3f008ace88ec606b46d416549155338a2dc50f98254d9249c43b6b58d1bc7ca05577bd85a28 SHA512 6b8946f5ea59daae91970b3deecdc6f0c5f52de97c0c6972fd029a2f9a4da822793a1504c9119f21e993876f2acfbc36e1b4e0d860f417c16aee2060db657809 +DIST firefox-120.0-hu.xpi 612038 BLAKE2B eb791e1f8bf7994151733c682d3a2c47add61d68672721b4ea013b0da6df594d6f3eba162edad5b1190b6e6b8bcf0ece8435f5af14afcadd0b2cb3a80420ce3f SHA512 6fc7e311bdbb7da2cc26bcb6cea1cd2732cb60f881b6a6e65063b3158d23c6cc927fb735dba1e3ad55fa27fb8b83f959fedb6b243000a78c1da8b5b1eaa20f1e +DIST firefox-120.0-hy-AM.xpi 592649 BLAKE2B 25a72eb1db6c7a72f50bae3e5f873040c15742b41c3c715a2d00a19535c57692b850d8438c27f0310a719e6253f36d9383e1767bce37d882eea8d844e46f374e SHA512 ca053c7b0bf9b62ca51310c71b731734a1015d08680aae926a6031d81ddb00e5543de663fe5d766ad2d641d921f099d8c06d9af6009397abea619ad513788e48 +DIST firefox-120.0-ia.xpi 574393 BLAKE2B 3779b0164bc3edb11c2ffb920c15bdefc63babe3ce15c5c8f2c372d9471ecba87c39adca4ee5aa51580637796419b085fe8157d1885db866cf58d50fda1fe5ab SHA512 7003d64e172757550006646aed2c3e6bd0706ce39fdc35b8fcdbbba15c782f57ec6136e34d70fd27fcef25590efaecec3d261ee18f2e3f71ec841cda9f46dd2b +DIST firefox-120.0-id.xpi 550921 BLAKE2B b3658e27e9ecab242bf1ecf8116110cd6163317e8f545ae0b71cab1b55c435b837552b008e156a23a22e485c97ff28d25681f270f96efc22771acff6528d227e SHA512 46adf7e0ab75dd736b1b6816b543b0ce9ddfc1e9fcf08081ff3efc21388a699a02cb7b1a9d4e539a75d153608d8f1cdbd93e7b0b3c462a788872c94de46ff48d +DIST firefox-120.0-is.xpi 582920 BLAKE2B 4f3c5f7a297e6398d068fbce6b0e028ee9bbd050c8fd9c6bf3840d805a00c81c5382c0db2010fb04456f46759c69edfe0f46ee4cd138ac4827a2efa0dacd6f5c SHA512 6ef53b652d5acf79a36cfe6c78e402f2331903e12adbdc8f619aeb2bebccb60030d808885822fda67bf076ee7e7c0c22126a15a184c91c68f227468522ec2032 +DIST firefox-120.0-it.xpi 533821 BLAKE2B 21350b9147e0d970712b40550a2c24ae6554cae1ce48ee2b13fb983344afb9a2f6b1b55db57e5f663ef66a2e2bd94f94611790eefbcde0c311b6f6056c4b1954 SHA512 d45b0b0186b0ead9bb2a2b1255fd544facdd004a3d60f228e7e9cf9d60aa20ed59ae533a39fada0cb63e2c6e376823878fb7c5c823377e8ac9325d3efa6e5329 +DIST firefox-120.0-ja.xpi 639939 BLAKE2B e05e7a42bb8e5a87a98823d809262694648ab332a06f7aec8b42aaa6edf3c1c167e2620f9d5c83c3b9de836c4c6612e732af6cbb934e855fa11331228771867d SHA512 77bfc480ee2ebaa1c46114d0f43284b18556dd6fb376b70f53a368f36674fefa16ac823f54ab8cbc01e6fae3770166c34e0a04683a8643f5940ceedae3324937 +DIST firefox-120.0-ka.xpi 641105 BLAKE2B 9241b8edc78c0a937b559e6fd0e2969068e95ace143e41c7af539c7a19563234847be596783a73dcf1676e8069554c512ef53bdc133a58ee0fdb1d5c2354ad4e SHA512 9d95769e553909b857b8a5598ab4ac199aa8a4db29f4b1fed59d7ba60580efea4cca47a92455360851fb33a1e3dca0f2e20ff2ceef9037865174dcbc2da1905a +DIST firefox-120.0-kab.xpi 581406 BLAKE2B ae4a446ce7bf468fdcc34da52a5372cd05af2e001dfd9ccc0618a97a8bbb9b5dc7e3ba9657b2dfd8589f7cfd422417bf22124ea576306fb3125ce6ce5f2903b5 SHA512 94356f55eab6a67bb567236243a4e942fd56374374dc16f8edd7d4abd2006b53d6dbbc8e10bd176b68a5cc3a857876fdfd96d3487944fa919f8dbcd36610d9ed +DIST firefox-120.0-kk.xpi 665639 BLAKE2B fdb9b5490573b50a84dd50a9406853dbd02c49f4992e0bd83126e50f6c115b4a440adbe449cb7b0b97378b813459c5301b81d43291f60605a8d592cea357f10d SHA512 de66a5a1a9440d91a0118e4b26115673f129bb87735ae21d8b8ec057430af6254d8dce3b2eb1ebfc0cb2d9f7cfccf5b5dd82a2669969b1b5f05af23d11ede19e +DIST firefox-120.0-km.xpi 515273 BLAKE2B 03d6f2dfd56794e6f4aeab098e5c3b9c04722b4d7e1693631f52d4157c9db3476dc2b72e2068d5606d6e8619584356d3463266b088c81c94db19e8a3be26d932 SHA512 70bee02117d1cd0ea2374b6d8aa363c020f897dfe76e0a973800ba19c5d10a3fa2cbc2f4e332e743e2a2391c9097ccec3495628e440277e3825e36b2596f35eb +DIST firefox-120.0-kn.xpi 480481 BLAKE2B 34415aa151df6535611f550fa0c3304eead1e8c1bb16ccd1a6f6dd0afb46bf72298f6cf5bc804fce6621f50738bf7c41ce5fe258b18ce50e145fc67ee76af24b SHA512 2a4789c9563ead4c6f96c6d6cd07c3bc6907ab9e2298ffa3cdf42eff12d83db4ea598462411803f40a8dfb0625fbfb8af0606ba02eb0d76801a19a21379eb2bd +DIST firefox-120.0-ko.xpi 622307 BLAKE2B 5102d9208a62e3e63f43f76e814b832ffbeb6f4f1b9996d5df0fc29b1f3e834690efde59bc0aa3b10f67298657aecd3961d2999c4fd1a12da239c5b5005c366c SHA512 3d2f4420c82cc250f14385b9ec3e82c287bda88903e858a485228e29199223f2277033ee1a8b99d0873b1d2adadaf4e409f5ba2c316184739f7dad08679aa8e4 +DIST firefox-120.0-lij.xpi 472229 BLAKE2B 540b767c0faa48159de53e700db45879cd515b77cb6cbf35928a042ac729e4281629790f85f68dfb2faac4b563c409249fa70bfe1600c35133348524ba6b2246 SHA512 d17451cab5d999ee98eb0044d4a872d1e5ec72aa06a2cc1da44d6903114c1b90a9c036d2a6b0bf2b4c3757ac4bed8e1d1ae63a0057c5fd68b09e7a8d8f0c29ca +DIST firefox-120.0-lt.xpi 559266 BLAKE2B 67368d131ceb6fae03990099e9bda66204eaa3bfd5d25db4dfc379a77ee06bae9f3299b605e5e31afd501d21410d156f5862d682cdec8357b4e9305a73cda66e SHA512 1b3654e49ec4e46aabe41ea12587d2faa272e127e08f2caf64ac2081c2e023e38e7732c80612ce9fc48a6cc270f78d77d8cb19c7fbe7486fcaf328573e5677f5 +DIST firefox-120.0-lv.xpi 457815 BLAKE2B 7783d74c10d9012b298a05623704c4ccfcc87185e10b272ac682cf9e307af629b8bb4f82045627116efe4d059bbe08a08c038d109ba672a3b4bc389aa9721ee7 SHA512 9eeb93c867ca5ed249bb6e79c3910d53149fbc80c9e24390367e530c4f208d7f16812442d59a75056348d56f0dc59a99486c304dcd1344933b5df5b39dc91b30 +DIST firefox-120.0-mk.xpi 483133 BLAKE2B 66f5efccfff5960ac6e04e0434e1a9b83e4f4f7360720e7c826d48bb1c460f12e22c81a2058e5403a0400a156084a67f5edda7db436bc550cfca889414bc2ae8 SHA512 84dd686364887921b1d564f0f3f8ddbeae41a85af6c70fb142edef59f9879fc60a0fea5f45bf6369ce54061e62b9c58165202094c089c56a32096dd84d84d5e8 +DIST firefox-120.0-mr.xpi 520053 BLAKE2B ec5991a961d0273664ab2741aa1a903e70028002bcabefc3b2dccf5cf1ce56eae642fab358308842723afdeb917ae2cb96b2997da3a4a89b33a1356633b1f997 SHA512 e3368fec58bd1c5a251cc218838db32285996fe1519d2773976cf995ea594c22596d9d3d725250622f29bb178c6e958c7161b384bbf86bb6eae67e3a597e6d5e +DIST firefox-120.0-ms.xpi 438040 BLAKE2B 9ee96ff6f57d9b033928687f24501c0ee7907017d92c67f56fa180f37d3c002bfe5ed8b19f33e2f208607f73e06032bc967f54fdf9efd7f98de85ab542791119 SHA512 6200202d97f6cfc14fe0e9f182350da48eeb348d4cbb0c191b8527fdb42ffc4ebd8974bf322712459c9cb693e9cb68d68305f7e6f536f8c048a146f1512d1c3f +DIST firefox-120.0-my.xpi 501457 BLAKE2B b36a9201462c34ca1714d70a95334f9c9c6eb97d7a2d11e63d13a1efdb19db95f489ee640acb8ed13379c5274fee0c7dd839d575f738d71d830cbe1312f2ee5a SHA512 6a0db0b8eef99b59588c8e789ba23874a92ecd6c870b4c3e93c13cb840dda0da33c8c6a2cb62ba72e23ce9582befafed2f5331273997b83c804388e936f3d204 +DIST firefox-120.0-nb-NO.xpi 569538 BLAKE2B 3824178b5448fb834b8af56037e0e81ab379e0e3afd8926728275c34c8a70765c1b06e05aad722a2bfbeb880409869f8d1abcc4291c92b478c4ff057f246d019 SHA512 07321aeba2a5fb1a0530879c3bbe0aef0f26658bbf9e9c9578313387db8b90d9e985a5bf34c3476f47e58eba3518b1b547c8861feaa0d38734c34814df1c23e5 +DIST firefox-120.0-ne-NP.xpi 476899 BLAKE2B 3fd540a501dff26bb57df8daa6ef2e5ceb03628eeca61c44d48ef9cbcf4d16ef0745b5bd9f867689f28ed97f3967adc7c11e69b002ddd3f63f0c759e450159bf SHA512 fc6bcbb7b4c69f638ab27c58bc0927c74a35f016df7ae0f08e6c6578a622a16cfdc56c3dc212d33b552dab677e9eed8be9a306aeb72ca546ad5681a3c373766c +DIST firefox-120.0-nl.xpi 580272 BLAKE2B 8eeef36b53652ac776702414e853465a1343a76a53b8d7dba2c74702f877b75fecb17a1ea5a622889ef5c92bebb6188b0f504838577225234bb95e33c9a99652 SHA512 c06d2ddb364cfea3c959e0878959799bc4637a68cb809fc69badbe5c1036658e4d529439f935fb9dd72d259d21e6fb02e0af0154be98bb288d0e0ed8205df338 +DIST firefox-120.0-nn-NO.xpi 573630 BLAKE2B e679c107e158199afd2898a134f7d25c92b828d696688c157fc3bd2be29d61f946f86def436a6272c3179424b68b0e2feccbadd2b0c72b4daa276dd8485fde20 SHA512 047b7d79610de0c3edca01e9520e38c6eb4c27be60e09ac3822f6c7f61328ce41f9137106e2e9e74cb56adb50d9e384ab7e99c4f6213f5b918e7480fafba35c7 +DIST firefox-120.0-oc.xpi 590380 BLAKE2B a19229e45060a86b94bd79d3522c3b8a152b2099fd66c14ae6e76a6c8f854a3549302502493fd5cc6daba4f3a0949ac149f011ceadd28ce4dbd6a647864c78dc SHA512 42d396904377862e6faa693f7ad61ff1969fc2173b103b5e1eb916230aabafea1e1a54751fa587dc16003befb833e50f5541f2b141d5d50c215441adaf03c594 +DIST firefox-120.0-pa-IN.xpi 655485 BLAKE2B e5eaf112a79c532bf1469eed6e7b0680694971b8e83a10921ab85f04d5e99a044b0793b9f511a5cbfeb1080d7279acbecb9780986633097e7092df46702e1ac7 SHA512 6e33afb5fc1cd24545dc1a22ce86f13b8eb63b1998bd1ee4acef52489a75f69bb15d14ea59c8b3eac67343c333d2b63c360eca034e3fe63b0140104b4ca48502 +DIST firefox-120.0-pl.xpi 600032 BLAKE2B 27249db13bd9aaf94e3f827852a1764676f8721c795719f2eca986a379f5a9db755290abe6739adecfcbaa2819f5d7b2ae475f0fc660cae38c9be51b68810fc2 SHA512 5411258618ddb00c03935233956e5514c019a88b0e8eb0a7256baa2ff0b6427673c867fe036c17292cf795d097660e64cc3348af24da4e03b8891063c5d8f0e7 +DIST firefox-120.0-pt-BR.xpi 585130 BLAKE2B 0b6f9f63cafeca626c894b9a4608788294561c946169dc62236c9a5680ad270b8c6e0065a9c3147ce32aa019f1ae7d85198bc8327bee722c4f1820f66dae76b1 SHA512 84bebb83d7a0ac3a921ec26503f06f63a5a96a021e0c63ac185fd9bb39834f96a0f9c4c34ae748af2e9079e9865f1aaec3b40bd3f6ee6b3aded8cb2e96de1860 +DIST firefox-120.0-pt-PT.xpi 590786 BLAKE2B 0e78f63c585359bc54e8d7f44ef9e4354820dd317468a8397f25159dce1c80eb586e70356bdd54c26dfebb3fee6865fa2e38e81a154e4b19377dc32511e7ce9b SHA512 04971edbe41f5c7b14b3eba48b843dde1436d87449a7b05e64de77e8e3013398b49bb242db53795f08b28a81b2d1028a1b29fa5dbdee7ecf00102fb95bd228c8 +DIST firefox-120.0-rm.xpi 580730 BLAKE2B f2077586f497cb131ac0f638b4de648cc0e9efc9d230f205fb26f8bc1bf77aacabcc2ede200441fdecc2b5dd72117e787916e277c15b9216bb24e1376abfc4fa SHA512 d7c38b2a7e4a07d473785222b360979bbbfd812b67731b68140a35e584a5dbab20dac6df67366b3eb26155a23b193a0abfa3e186f9375d1abdbe92f75d72dfd4 +DIST firefox-120.0-ro.xpi 536119 BLAKE2B 0f4e68de0026c0c2af668bfb446379a0d8cefbd5f052d96a5f4a93202cf6745341167c03029b24d948b413a0228adea3f25f9aadb3bc2fa56f55e0a4f4d296a8 SHA512 5c655d6a1b4e75bbaec19e98a0e04d036d0e44311cd2b4161da733c4aa11a17da691d8c71b71740ecd74a0a7412ca47e8a8c31d961b818669f6bfd895f7c501d +DIST firefox-120.0-ru.xpi 677185 BLAKE2B b81621dfdcca4b15a1946b35b291b8ea67d814d85464839009ef784517b60bb7fd0966c6b966d29892548d589758211e82b32b4cd3ae115dd36cdb7efa2fa06f SHA512 93ee1371453f49c1287eadaf947f35f16671e3c4d5f15a87e7f1b90c22948b4307de764f4540198c50b453ae84c853b84e1f009e1850b88b6b0e132b1f656bb8 +DIST firefox-120.0-sc.xpi 552168 BLAKE2B edcebe1626835df919c88860e6a3384e53aa023cf1a8571ba29515e17eb287f9a6451e06f7814a7da1427da7a8a24d1b617cb3b822273cc285fa7bc71af35e7a SHA512 cf64cc211827d646338d379b5ae6904b775f2f1e15cb3ee7e722ccff5e35814ec25653e34c4bb3951fc3f058d3470f2ea6f2149543e2a0b422074b12b320bc29 +DIST firefox-120.0-sco.xpi 499305 BLAKE2B e52f23621b1c28033994ca9909d5f96a3dcc27e5959af7e5c6bb5a945576b5e26a8dccb78dcb3218ccaa20d09426e04486d5b5027e2ed603561780c085bae001 SHA512 758dba289ae617169c2c4176c903372ec74a86add361089f2552ad8aafcfc70db3493a4c015084468e81a548fe700855e36bbc2bcb0c10d6436c1a6693ee99b4 +DIST firefox-120.0-si.xpi 592555 BLAKE2B b2ccb130054ed461efba6097a7e56070365fd0b307209b66b20830a1f8fe2463131509385afb5c40fcc3e421f6768fce4d651cafddbf987966024d7e0fda2b40 SHA512 edcb6aac348aed2f31329ef9b459057cf22653c45108ef189d43213fe1daccd3f140ae7f1ec8afa7a3102497db5d45348b4eb97747751cb84062d4b51b15b208 +DIST firefox-120.0-sk.xpi 612768 BLAKE2B d2bfcc0b9087abd97ff949117c6e85cc5c2c97d5b5d37e8c7c7bff922163809b5bf1944d16d24b90ccd922585d2920049b28d0d65cae9fee87ab01c2b443886d SHA512 269aae4b8e74a28cf9ceb4a2fecf97b8c5c902f42f0aa76361b4e5eac0aca4c877a751b46a3cf4dcebd308a1897ba02e8d67b2aa95151eab2d04dc6cdf327f2d +DIST firefox-120.0-sl.xpi 585679 BLAKE2B 31fe727be302d26706f7bd308f85da54a86054cfff750ba3bb49f70fc907d88f5e3f113ef186fad3f852fb2a5fdb1c9c1566353b6f4d8c4847e39eed5d6d2e8b SHA512 debaeaed957daea13fd006049afa214ff8655de8e372b38eccdf2f15c37f2b38939f474381b7d9b2e2dc6b4f3272836fa7da8010ee0b954e5b1da53c18b4fb1a +DIST firefox-120.0-son.xpi 407006 BLAKE2B 7e03ddaa76b4c83ce64dea7fdc822d50f3a17ac7321258e9a456f103dbde67fcccea1600c7e00242985d8361274bb90027883eaa0fd412c51a91b90e256a29fb SHA512 23c2ebd11456a5f025734cb2daf3da01390183a9bab1451a17a9c8c861db8165f753669cecf1d4aaa4467a21ff8a1d7b6fc0bf315a895765e136a6fe24291127 +DIST firefox-120.0-sq.xpi 599916 BLAKE2B 570da175a93da274150c260c67f5c0e5c1649a5504a743ac5e91368ee2e1a1b6a712275260f28fe2c4dcc85af045cc72f072a8aa79cc65d4829c030bf559815c SHA512 89e1f258131aae40f3bcfe4c5ca7c545a28598984be1310c5d45e7bc32c1c2f59d4b7731444c4725e526a452b7b03a326c58e9cffb61a7cc1399e80316611abf +DIST firefox-120.0-sr.xpi 626285 BLAKE2B 572412b8254516181a4c0dd0b5baa05b63db1d3297bbec9232bacfb4052ff80383332ca638db94b15ce82c1e084a42f1866515afb319effb80e3ead392d394ff SHA512 fbb8871d1dca5fe26d934adfffa11c0aa9460cf634c976a0b0435be16a9fa8d5651c0e76b94c1f47a231c99d21dc0319d708239481289b594eb1e6b3f4824d6d +DIST firefox-120.0-sv-SE.xpi 582173 BLAKE2B c7069fc2f0accc179eb0f27ca0c81db65c46f0e1da2cbbd6991ea045703ecc431fff020ca79758d2d041da936111154a42913fbd044cd6747d69db04b8f89678 SHA512 e614141e02a20e13f392fc8eab07f58979c5c06f14982f047db9202e6fd77df9e4226213e3bf4e89ae4b7894049652f5c48a1b086aab9f19b493c3468709649d +DIST firefox-120.0-szl.xpi 514307 BLAKE2B cf532f15623fc96f57f436de320fe695b46eb18d7e16ac0d55a0dc551b3f727c722c5dec0d14dddd9dad756ad4e1be2bef1a7ff51ecbef51a4edf3a8e48b706c SHA512 3d654516756fe262577a80efa592ea5aaaa2f4598f761f63314fe71273ad14be314740eb7945f0100e0383e4ab11b78fe1841f1c62911eac28c85f275ec34373 +DIST firefox-120.0-ta.xpi 496508 BLAKE2B 1b31ce8d31c51c6695f21c4e0848add1e0172ef2c0118719eb6a482f8587fa6470fa0d8935d16a348c6aa9fdb5280a9c6d76dbe11e3c8fcbb26a54dd7492668f SHA512 5a686b5c4881afa6ed5a7a1d3b66ff130333648df7fe28ec80da737099cd08ef854afc67a73a0768c6877f19481709f2ba8f810b35d63504a3d0ec12d633d0c7 +DIST firefox-120.0-te.xpi 547380 BLAKE2B 98d42f0152acc07758bc02a86197d280f6011ae5b353dccb64a87ad350720248344ffdb133410cb51b7a76abac5abc18af894c1b80cdcbc8502e52a457fcdce3 SHA512 47c79c449888773269539155d395e336c15faca3635d7f54835de637698b0637c7ad789af4be2a22018b2302ac6ba1b6c49a196fec35d6533ccc6ba60f278903 +DIST firefox-120.0-th.xpi 652902 BLAKE2B 8858036d324e0f73be94a67916a8e128f22c46fd7541f2d3b939aa849e785c4ee21a54e50b12a49a0becb662ab294131b14c27640111bf4a046215cf4b69e7d6 SHA512 ffc7f5a920eeea18e5e6c16c422800621faf673176eb0e94c19635bd749640813d3250499f8cab781ed24c7ab9fea66fc3fe87e1c35123cb367e51e3cf2b92e0 +DIST firefox-120.0-tl.xpi 521853 BLAKE2B e45f70147abd9a760ba6338f8495b551d793038a6f22b5485203ae147f474bcbd30da93a7ecfa5c219155e4f5055dd184f5ea5cb27f6d59cbef5a8c735dbb2c3 SHA512 5d9e6e324815eaf162c05c8e9a625b60e2c8c54979553ab16afc04ff7b8eedc0c99c899b5ffd8403054f2c46c3daa3b52d582d3df9358791577c79d318e36983 +DIST firefox-120.0-tr.xpi 594042 BLAKE2B c089915acdfd1339ba636399bed85104f67a1350be3ded63a520dd86931f4272e0bb30fc9e586c03b0e575fea4a10d89faaf098d5c63050bea07c0a01f50dc0b SHA512 a1be2f460377cc5b28b519ae986f519c8273e15f1f72275d06f2d686fd07266b4785b1fe505dd480ec9684c93845cf2ac88dd7c91cc3bb868f0e8caca3237fb0 +DIST firefox-120.0-trs.xpi 492013 BLAKE2B 8e5aa0960619fe34d54a7060c265921f14dd773fdc051d6038bbb7127e3c35b26b4e8791ab0ffcccf20d082e8f12c6ac71f1c92bc515455c6199bb0979fc4358 SHA512 0a8662d804457c699d504a52ec2f44c1c6e6f22c5f23887aed96e842b084c1f8de32465ecc68e5fff00daaa8d94c02609380853c027a2d8ca6cd5722eb38b0a5 +DIST firefox-120.0-uk.xpi 670139 BLAKE2B fb3fe7074b21ea9f2b00a3b9d443f288e7804b05db347e7fb8b6d7e9ba759a95a725648aac6f7338fad01f180026b352a76e55bfec740da6281a2f5acfdcc5c3 SHA512 7f7aa75cf698447ea4fc74a2fcc51c6a5fe592ee9435ebafa735748b502d9dab563550fb4a48afd5f720423b952b4cda40397985bbfda8067e43ae213600bdf1 +DIST firefox-120.0-ur.xpi 548354 BLAKE2B 28e4360e6a81742e28f4dc984bf38af00efc9e2c292eda732f608d95baed5a9b61ed85339375ac2c7a641d60fdb2b276998c0ef61bf485f5defac775a1445ee8 SHA512 69e7b169ae9cd2c51bddf2bf192648b2ebd0bafb5a471351722a4673b629123f6b720a16405e924277dd75b7dbfc4b6ee366d28b22ec460744a37d5a9a1bbea8 +DIST firefox-120.0-uz.xpi 468509 BLAKE2B 4a6d550f3f2aa2c1c39b88064038d47328061291c74797b8ce1e027c57935dc696aed79752446841bea3ba79349704fdb1dc8b00e2d225a844e0e943511c0f76 SHA512 e09f5a854d3fa4fb6d805cde752713a1360bad3f1aee5e407d72b011b6e15ef8e9728e86293d6933f58a6fe31d6a89b38d3e0d72066cb23011773f947f0486fd +DIST firefox-120.0-vi.xpi 619247 BLAKE2B d240d1103a57f3394b43e8555fe9ad619f8901b2584cf4a1a10d12ace6a50e52eba33c0ff9827f824fc71540fd8d1c8d2d8b3727d7aea1104a2a173f33893c5a SHA512 cf4c74ccf11aaca3ca93949a542d5016fd7f9356139d3b8ea4fa95e82c78e18f97dcb2c3e6b48f1daad3fde8c6e15ffccb8dd2072310e4c7368b965f2e54266c +DIST firefox-120.0-xh.xpi 407994 BLAKE2B 6706bdad139958af05c1ce43cd195d3403aec23662192565f4fcc8ba39df6b82076f1e040d52d3f6184a2932775c2e7462e49a77f5ad00c08f38f6834a56215b SHA512 9474ad515a3e1df95faf5dd63f54b31fb4954aa4604f0e037f0efb15bb114707aa017999719814d24c3932ef5c0d4d34c602c4cfa2e267423185f883dd239cc9 +DIST firefox-120.0-zh-CN.xpi 618138 BLAKE2B a274aa8f386061edacf4ae4334fbb87830aefee17f39dde83b0ad609ec82ebe82a8ad401b4459e5da8005d8d5a28c452fb81804d1cc70a9691a7fefca3df0a3a SHA512 ef58d34db483705eb92d2b6b0c8b36003d2223c33ad809c7c51167e92abc864fc8e15638773a35a071898150254e1498e8b3efb60434ac95ca92796a056b9793 +DIST firefox-120.0-zh-TW.xpi 620086 BLAKE2B 212b97f85a45dfb937c4908d49966d4209aed7670c4500e9a543b1e362b03b28a39cb95114be096d2e7ca7087d0747d0f6d1a77ec284a53dbce0b676791011fc SHA512 5288468095d200085c73947da40e6ff3518e1cef6779fbad514a71c7905c406844153e6e1dfa695c401bede0ad6120acf7a302e91562eb2aa579a13dc8c9dee8 +DIST firefox-120.0.source.tar.xz 534394880 BLAKE2B 06f11d9d6f705c13c3288f1757d68c7c910e258b3efa643f0f0168fba0d585f758082af3905c951e227894df0c092965663f52196ee1fc3477195748e0049767 SHA512 31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c EBUILD firefox-115.4.0.ebuild 39480 BLAKE2B 0ef1ada0c7f524918634bc3d542f7fed773af909d8fd9cf7f91afdc4c46fba47ba78f04bd82427b0ebd801bacdfba430652ea39bb1bec3cc8c80309cba7bfee1 SHA512 e10853614b2dcdf2ef448af99463ed21d70a808e4acf889c857f2d098719973dac991a9ec0d409f7baabaca9b72697dc6ad13e956212e73d068a1988db4051e2 EBUILD firefox-118.0.2.ebuild 41915 BLAKE2B 1325c101c8a1bf7f3a39a731d4a0624e2210ca3d8a8cdf10b0a011cb0e69ce08d532c79d5bda014b8de0901323fde94bba0b8e76654c068d23596ade7e3f4d6f SHA512 99ee8834fe2ed43abb502455bbd6123b0836b1ba61995150c735415b2886c0251426c29fdf7c25a6e62de6643ee3983ae8520c09418bbd8f4f7f2e0e235f73bc EBUILD firefox-119.0.1.ebuild 41818 BLAKE2B bc857ad7cc6e8ebd006d3af29004124e8c059e0650f233fe8cf00836dabe376953c17a6e3a43aa67e500fff4701362ab12692863c236d32723d315f912d642d4 SHA512 30d50c65d787bf318c8d23d3896ce0b3f286c6e9f7a151ad70fa1c0f8cada174d3df7760ea32e9590f1b4deba351917740f4b6610c260549cd3277cbdaf504bc EBUILD firefox-119.0.ebuild 41577 BLAKE2B 1aff3763db9eeca4a8fd47c89e33e78dde9751ef239a1c9990811db54eb34620e97207bc96077b09ef807613ad967cd8fc1d2b555367252b12fc60498f461cb2 SHA512 edd2b34450982c57580d156285c1bf70fcc77e9dff2fb9812a31fe22f52d2c820d18144bd2ddaf55b6ddd53070754db0fa03128012c248cb0ca54054e1a3c0e7 +EBUILD firefox-120.0.ebuild 41970 BLAKE2B 2214d7e791241001d56f40fac527de94d6737b9162b0b88dc0237c6fcaece31f8cb7764fb13e5d54e284ac9ff43401c7013ab5d28dba2d9b4b13dc38663012a6 SHA512 c6ae61f94c59af6035d3c8fc3ec604d4a83eb89b8282a78134144a33c7069b37df2ba08eaf4bc6c21d57ef5894924caa2ea6baaac52d95ee63c8f71ff7facd76 MISC metadata.xml 2658 BLAKE2B 4e52ee338d13627658328468081959897f9ffba3d0729a03975f756ed95e2649e21a40de4933c0a2bdd9c1d4dc6cea973f503a3d448f49f73ec3eafb933f6845 SHA512 1062c2e2a49757a8e3b027db5d425113ce6e7bdba630786109caedbb3717c7600094c7bb3fbc83e1887d96e464f0dc48bdbcff16d396ea5481f36040e0e4c70d diff --git a/www-client/firefox/firefox-120.0.ebuild b/www-client/firefox/firefox-120.0.ebuild new file mode 100644 index 000000000000..c7fbedecf97e --- /dev/null +++ b/www-client/firefox/firefox-120.0.ebuild @@ -0,0 +1,1438 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-119-patches-01.tar.xz" + +LLVM_MAX_SLOT=17 + +PYTHON_COMPAT=( python3_{10..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 readme.gentoo-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 valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +# "-jumbo-build +system-icu": build failure on firefox-120: +# firefox-120.0/intl/components/src/TimeZone.cpp:345:3: error: use of undeclared identifier 'MOZ_TRY' +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + !jumbo-build? ( !system-icu ) + 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:17 + sys-devel/llvm:17 + clang? ( + sys-devel/lld:17 + virtual/rust:0/llvm-17 + pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] ) + ) + ) + ( + sys-devel/clang:16 + sys-devel/llvm:16 + clang? ( + sys-devel/lld:16 + virtual/rust:0/llvm-16 + pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) + ) + ) + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + sys-devel/lld:15 + 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.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.70 ) + 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 + ) + !X? ( + >=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.94 + >=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? ( + 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-73.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= ) + valgrind? ( dev-util/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + 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} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + 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-mold ; 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() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + if ! use ppc64; then + rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${FILESDIR}"/firefox-115.4.0-icu-74.patch + fi + + # 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 + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + moz_clear_vendor_checksums proc-macro2 + + # 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 ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_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" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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-disk-remnant-avoidance \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wasm-function-references \ + --disable-wasm-gc \ + --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 + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --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 + mozconfig_use_enable valgrind + + 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" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + 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-x11-only + 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-lto + + 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 + + # elf-hack + if use amd64 || use x86 ; then + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + if use clang ; then + mozconfig_add_options_ac 'relr elf-hack with clang' --enable-elf-hack=relr + else + mozconfig_add_options_ac 'legacy elf-hack with gcc' --enable-elf-hack=legacy + fi + fi + elif use ppc64 ; then + # '--disable-elf-hack' is not recognized on ppc64, bgo#917049 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --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 + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --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 + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + 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 + + # Install the vaapitest binary on supported arches (+arm when keyworded) + if use amd64 || use arm64 || use x86 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + fi + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + 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 + + readme.gentoo_create_doc +} + +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 + + # 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 + + readme.gentoo_print_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 + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} -- cgit v1.2.3