From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 10B3D158094 for ; Tue, 23 Aug 2022 13:11:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8146AE07F9; Tue, 23 Aug 2022 13:11:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6CD4DE07F9 for ; Tue, 23 Aug 2022 13:11:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 969C1340EC2 for ; Tue, 23 Aug 2022 13:11:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D605358B for ; Tue, 23 Aug 2022 13:11:23 +0000 (UTC) From: "Joonas Niilola" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" Message-ID: <1661260279.176797fff0a75d188671dec46d93c837a7b4e28c.juippis@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/firefox/ X-VCS-Repository: repo/gentoo X-VCS-Files: www-client/firefox/Manifest www-client/firefox/firefox-104.0.ebuild X-VCS-Directories: www-client/firefox/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 176797fff0a75d188671dec46d93c837a7b4e28c X-VCS-Branch: master Date: Tue, 23 Aug 2022 13:11:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c4137922-8da6-476d-ba45-ef5b8d3b28e6 X-Archives-Hash: 018d5cedf1afe365c5c1450ca0ca5201 commit: 176797fff0a75d188671dec46d93c837a7b4e28c Author: Joonas Niilola gentoo org> AuthorDate: Tue Aug 23 13:08:13 2022 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Tue Aug 23 13:11:19 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=176797ff www-client/firefox: add 104.0 Signed-off-by: Joonas Niilola gentoo.org> www-client/firefox/Manifest | 99 +++ www-client/firefox/firefox-104.0.ebuild | 1279 +++++++++++++++++++++++++++++++ 2 files changed, 1378 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index ab289e009f5e..3ea65affcc80 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -196,6 +196,105 @@ DIST firefox-103.0.2-xh.xpi 429254 BLAKE2B ee70a4e3eb38484c15c67299d9bdce588b672 DIST firefox-103.0.2-zh-CN.xpi 577419 BLAKE2B 787347109e5f8c3c1ac6f5584f83fe5ee923d85d3c6e690e348e1a39589dcb880620f1a538e220a0fbb6a465c62fc5c04c91aa6900df713b65be17d369af4402 SHA512 cdbbc43b338b81f54ac987b3b5d1de2c0300dcc2a9f07f0a519aa4a7727f43edf3f638e58080af129e29aa9a4a5247fb0f7089c4aefc121056edc9e548a4f2e3 DIST firefox-103.0.2-zh-TW.xpi 578012 BLAKE2B ea13d0d50b919e3bcc65b95cdb7f6f1162493f6fab4ba083586b980ea737558ebebb49110b14775ee0f2fe680789edfb05dd20241e0887a62ee89cdcc307d5b4 SHA512 594ded581f530dabd461df11e1d0d5639a7da0e58f4546c1a82347b96d181dc4b2bd7a77751eb540553815443343a1e3432de7ff1175962b3c1671463ab91188 DIST firefox-103.0.2.source.tar.xz 481280156 BLAKE2B 597d5ede55d857409dd2efdd377250b8a50fceb3eb704de4a664fc2a128a09ef18d86d4c58bc18d19a395784a553ecb80eaf83c4654857ea317d2f044cd05c69 SHA512 f13984bb551039c80ef731931f08a284f070142ecb479b31a4caad026a6b535e3fc7ae506b629e933ba5f5a1676f14b6b36d031d22584170492676f8727c822a +DIST firefox-104-patches-01j.tar.xz 18388 BLAKE2B 97386c544a6ca776476e3398c621b8ab56eb39742403f73578aa09ba4c9dc015a752fa5f67f20a16afffafa6f85616e385d181b8c8110d681a95c3ef072438ee SHA512 f3ee1ad35a623874e03462840afcd3674a20f024378a0c0ee49d643bd0e39e063234cc0c4fa83d978c13349fe3cee9d8ce9b859f609912713560b1fcfa39a7ab +DIST firefox-104.0-ach.xpi 458331 BLAKE2B 94db0b3efe8d7e68696d1624fd81fa6cbf6754e419a571f9a4e7d07b8570584516da895ccc8b8d657e0aea94160f9aec40456bafdece0ba3e2d66223959f04e4 SHA512 49516fd2f7b5e6cec5c8f708c53a47e9ee4fb6197a50b80fc79d244943b56111f7dbd9cf37912299d375a51227c5a94f8ce241eb742168e393e09c439f0bb822 +DIST firefox-104.0-af.xpi 423655 BLAKE2B 13763a97729c2ab8e9512cc4317ac1f95e82dbf1adb36a3cdd9068f66bc01da66cdee8f9a708ee06d59a80bafb7391707ef31eeb59a6c532a64885610ac8e072 SHA512 dda32a490d324c50a62e4d7fd3e1ac8317f910deb6826c39eb3cc8979ec1fa9d41c53d23e96a8a9797ab043e97d37074ed15e0125b1dbe05c120615a25940d95 +DIST firefox-104.0-an.xpi 502551 BLAKE2B 4db69efe6897180263e93be24515ee0157cb9fb622b7f68b8d28902da0a12ea9d4c60b021fec348e7934e7a17620e1656c3bf52b3855fbda6bc70dc833a8590a SHA512 b12e54842696b7add05016d147026a5e9c2acf5714ab086d3b8fa9ae53640896a064971d35e026f9b7019ae7afcda05527c72eba5209e9c7c3b7e9a07fc51e8a +DIST firefox-104.0-ar.xpi 565451 BLAKE2B 520e7c8def1587c768a440d36ba8aa62328635cea13ba709371fb633210200ae092163c09ff67cf6559369f495309c5df5cb27acc944181479de774279044f34 SHA512 65723573ab141e9fefd13ded93c97c8f3bdb01a7076663cd60a3988e34a1a1d4c9f3fa388166cd51acbcccd4d7289d6499eb210ccff9495c08f1c90db43db6f1 +DIST firefox-104.0-ast.xpi 498352 BLAKE2B f220cadb69532410ff499b1ea45b68e9b465006ab802febdae4cd785add5c62055689598f9c0be25b3d4cc504d5eafe7bb8d5d9dfa6d70389ddede823be11b79 SHA512 f8c3800523d2e5b1629a771dcfe0a4c2dd0176be1b886eefd0dd3901f936c591f456b4b022d10842804859931b33bbde026f3816743df69deb9888b1b9e69b8e +DIST firefox-104.0-az.xpi 489596 BLAKE2B 40165413ba2135485d10418d44a6fc2a5f79fedf94efb7aafb44e16f079add2804ad3eba7cb76681f26fdc7a69e561476b6ed721e2a5b77bbf684983b0dfadb7 SHA512 b25a6a6e7ccc9a2ba29b9172474a0edea307fcd05efc3d4d3c11b7b586dfb5c37e33352959a3f03337bc1fd11969c53e62acdc8dd4a46a3b62095bf996aa3d22 +DIST firefox-104.0-be.xpi 637258 BLAKE2B 9afb6204fe6fc4b0fead747227a3957f607dff11f023daa11f5877035e3177d7abe563074f63327f2344cf1bd45c6fa6a3df39670084dad384a97865c2b7cdfb SHA512 b4aeedc167268bd4f769b1147ca2b968806343b0d3e7ea70475fed52a3656fd0e4d8b881e6f5c5a4d8dae06423c2cc4e91532555ea1fa8ea42b7f15971be11e0 +DIST firefox-104.0-bg.xpi 581957 BLAKE2B c74be58e377ee9e16c73252fd572ade670d1d8f850fd17ca8e4e4eabe6a56086a37fd9b4d3f630c6b93fc7bd32451fde9b313ce51c9e595624034b9a4c06db31 SHA512 e489927fa4a4ac26257b7424df543d3180ea0e20b72667bcf6fff591f2a32ea9f744c0ef0ba0b9bb544fb628cabe117dfb67e350f100a7aa9552eea5f1a32307 +DIST firefox-104.0-bn.xpi 580164 BLAKE2B aaaa821ed62c3f1eda70441bd5513364f7003558eb08703e36b654de578ba457f145170be93338a1924f6c2f33b01e4e3a0b72214422c2029e0cce2073558924 SHA512 74a28095852498379c177b8c5a4385767a716d097ec542d4ea07f76112c70bd2f18217d2490f62a3b970a4ca8916b7ab66a0624b7cde06b3a8d12ef47a582e36 +DIST firefox-104.0-br.xpi 535100 BLAKE2B a2ca33190c8ded85b82ab0c2028662e5facdb1da6ae9f4ac04a2285cd416378cfdb9a510f18df008f5e5ff3fa263422c00f8de741c0360a40c04e4aa26f8ed9a SHA512 28633560e8e2ee5b0c5ffa296a5fa7f7a5c6d04e0931cd7be598c75d9a215d18a476365a5f48ec44e0f9b93c0d7677b00102d8c956c5e148708f1a37eff59242 +DIST firefox-104.0-bs.xpi 466917 BLAKE2B d051953ce0682f4f59602b99343f7bff3d8620b3587f292dfd46a621256d5089887b12833d00ff149014b5c065af3b22901e26525eb40d4724509ce69fe0bf62 SHA512 2ba990cb2bdfc119a1fcd19c6f175961e17d9954c66dded49a34265117a87579b9d8207ac70db585c0e3f0da35405a731bcb959fa60e12d99fcd01010d22bbf9 +DIST firefox-104.0-ca-valencia.xpi 541638 BLAKE2B 97f4e798ebbfa1987d67db2edb74c87ad296cece2da0ca6ad28493f31f97a88a5f926f886a6526d5729c14b0c72d9a2a0c9169bf599855ce0d942aefb1341724 SHA512 ef3da0ef9e275fedf9f09bdb55d9c2640e6895889173f3963a03f051af581ae5c4c05889f3ec1fb56d8ecc3e42946d91cb85f6eec5e08dfc75671f7e2e40ac25 +DIST firefox-104.0-ca.xpi 538202 BLAKE2B 69f1515cd46dcd57f984b3aaf99fb68bc187bcbc614fb918d108f16e6fe26683ab450e67ef41bc92ad7f4a08f9fe108867b1ab895f8cdba9db481b43fc443a67 SHA512 91e45bfd364819ed988be36082ba093340b19f72961d64fd04d0b0050c6354de5c89217cb523c7ff526ad274215f4cc7e0bf624bd071e815d5d2307cf704f24a +DIST firefox-104.0-cak.xpi 555058 BLAKE2B 9715bbc3d7a76e803de1000d753cec6e33dbeeae0b70adfcf358aac1cf6c27ec35ef1de6b39c5481e84a5f4573e3afc0e4b4a12efbfbab3500c6a3d154f52d4a SHA512 507b65a072142277752b5a894595e2a9b6c25b1d843219a0e4f328b3050422b4e3f6a099f8d1f457c114c4635dd76d20f68d09b3d566b7e0d2d45a7f37b0c798 +DIST firefox-104.0-cs.xpi 575354 BLAKE2B 0d4e980cf270415848e3861e18861d551b0e221fd1103da111ad334c2bafb8c35f6aa948d607e8660a8f8ffb6620fc5e1fc073c38a4a506576f83b346fe4e8c5 SHA512 4767396742d3d766b834dd6918fd03cdf6613b5cd55ffbb98b7ced2aba72e9f83285b6fc445458978277403d6a4270ad5981df9d95916aad71524ce22dca1f9c +DIST firefox-104.0-cy.xpi 551508 BLAKE2B f903850a6fc34d7478c4062fed1253dc187234ea49675920f69224617fdfa4460dceb6db657589d852c423f18add36439c2a213571b91c6f52fce405694f598c SHA512 5e5b0ac86d60a2c32e5ea89dcecb8bd3f0f18b0c8e57e38efe06568f848b93be84e5564cc4b22e0218fbbdf90571e2e81c4fdd41c586679cbb861084b373d653 +DIST firefox-104.0-da.xpi 538910 BLAKE2B 93e8d2c8c9ab53d2b3317c38f4d3253e25f5585e2dde6f61227be8a10277439d3b371db5b71fba8792258b542c0a10aade70c6977c8b3dfad8e079642daecf6a SHA512 e933be4947341879f20d37faa272b14f9f04f6dfa7919a1c3f93f20c537d45edcbcf8ae739406756acc46cd425af7f08399de714b167eb2d9af61d3085b6e01b +DIST firefox-104.0-de.xpi 565788 BLAKE2B 5ae3ca6565bb484cc139d3122e1c912e62360f23f2e5e797a8feb3cf28376d0848bbf6a8f69c91cc7a62b2655517035ba08de2b9bb7fb121c3edfc360e1dae60 SHA512 df56817eba67e834e7d26641f3d3be03d4a6ed83da02b6c82254a0c53a888014eb8b936d07d57e6cf77122c40b1771b6f92b1610a6bc16c4733545cf2f7d9ba1 +DIST firefox-104.0-dsb.xpi 579604 BLAKE2B 83b5aa3ae72dafbb0f9b5ddc5d168c096df43b52a8b8e37f2ee42dbc78a38252890f17906b26314957d85fb9739f2fa9221f1728ccd938720b2a68eec7a19a99 SHA512 526f129baa549860989ea5dae89f320c4a28bc2c4bb951db79d2c60be81db24489900ae42541f653f5e58e7d24a91030bd8af4c53d1dc1e2b31d690e746337ae +DIST firefox-104.0-el.xpi 650585 BLAKE2B 1a4ab7f072563b49ecdb9fde51e6e22f581dc5094b9a7a8d32014fa32af23d7eab75d438183183d181263eb208157f456940e6d2bc1cdccd41e4adad0f6a18d5 SHA512 4319f3c8216729276b1db58e86e49a5a3af1bca282d01ed937f70ee3601b1355052f27ac8c35eb7596b53e6c00c2e99a5e5df942f4a03f31d42cced475fc05fe +DIST firefox-104.0-en-CA.xpi 517599 BLAKE2B e11742d931e613a1688bcd79eb4e52cff20ef8a982a65542ecd269bf4afb9386b9a826e20e468de8b80806f173403c646c84c5e5aa1e06327fbbea6e908a4dc9 SHA512 0983c82ccf597ca51f883dd762005a15215e693d9e4cb984b7cf7242d3078ef8ef991c79d9e8ce792db8e3ca0951ff1a4747c71f1e719714beff58901d896e4c +DIST firefox-104.0-en-GB.xpi 523093 BLAKE2B 6024918d62797d7acac22b462826327c4bae06dff247a886c2939ff0fb68dc1ac9861426812a911539ff6823256defe9ca8a0527c1d5ecfad56ec1da450e7e68 SHA512 14d7d8262e6b1a335d95d3cbfe902506a4b746680ac82bc44c585deda9567c8b2aefbdf88ef00969f69073f157e489a7d442eea99138b1fe27ada4548feeeee6 +DIST firefox-104.0-eo.xpi 549733 BLAKE2B c749fc3b91d03ee8579f7ad86ac3167e8892dc3fc124813ecb93b0640fe8d2b318e4220a5e0ecfb73c418f49a5980c31f00dd13b104cdb12846ba3aab0f5fe68 SHA512 7e2ad320367c9392d2c484fdc87620c7fd498fbe73fb4f7543ecaf578e305a5f106273fa88071f6d073d80f2f20c1c3e3124bb81f02dbec464b05f0ee8e45cf1 +DIST firefox-104.0-es-AR.xpi 560334 BLAKE2B bc349c0ec19842d4f97f18a0a4ad748116c4459cf40d41d8e0e2a8ff270020afcd0b272b4114baf3b636281c5c22fb90685c125a31665b94c801327a4b205f2b SHA512 37cbeafc705b38d6ad18c1df5ff926bf8fec66579ff6d3c8fa38db7b9157bc3ecffb489f3cb2742ebf52e085f8c22aa5ef53eb91835c9e6946aafd80d6a0b243 +DIST firefox-104.0-es-CL.xpi 558248 BLAKE2B 5dad68fde2a4713b2d318db76c2d95a8b42588d1c99f0f7705dba4ec848338912db377c49c7e42a4dca03d7dbcbc02358d6fc973c8bbc821de33671e7b717b31 SHA512 45d9371ad82f0b74991f6b24fe3296395d509af82a9e1c5f860f0e31738da0f91925a87d377776f51352c254c0efb3ce26aef02434b3effa10a5d4ce0e38c761 +DIST firefox-104.0-es-ES.xpi 544261 BLAKE2B b432f4c2cf3e5ed9332073b4584a45e9b9a4b5c0cff2ed3ed5dc7a7847a8c2d4d7235d101630ca30aa79989357939631e187ad0f76ceaafec802023c275dde79 SHA512 5eac8101614cfc165023dccc8e3f701df6827952a202b67f17e70f5112f303f7204fa158ab9a0e7262abc570ec171ad6467255261ff4b71c61c4cddd2d5ebb7f +DIST firefox-104.0-es-MX.xpi 563466 BLAKE2B e21a7fdc4f6b3911435c12aa1919ccebf58312faedcb6c68212a41ff3afb6aa9e0f9ce364688f98a55671e2838f073c0f601f8160aac0fda5cf3a232415aa816 SHA512 c9ea9af70478d4bec47b9a5b44e105b500fbed752beb52eeae399cc4be58d02b3e7b36aff2f55447a20b8b4c425e069748d79da482bcb42e24a857186ee99abe +DIST firefox-104.0-et.xpi 535019 BLAKE2B 658550be8e3f8de67795d760c4edeea97864856f6671eaa561fa8fade0c28e244a6da1af81c9e3f02b01fac4345fd05057cb22c8a643cfe0023a75054c517789 SHA512 ec3e7939e038699215875b4859c8228583bdbb4c13bc1935745e5daddcebf4afbb4319c22e9880d950e19d9f347ec2a21f4bfe96a96a4cf792a3e53a15d02249 +DIST firefox-104.0-eu.xpi 544754 BLAKE2B b9dab28948f5fdc51cb6f0b1c25a97b9764449485b7464cc5621569e4a3c8304c88cfe6bc9c7a5d0267840a8a9bb4f785b5f7e0bd23211df19de215682b6cb6b SHA512 51b67ce9b20f14c098209f0d1333751d9bb36d4e63d26902ef65b0776dbe96e7ca577f3fa4b915e32e84d48b61e70a528d84bfb65f4594835de086026aa74ec7 +DIST firefox-104.0-fa.xpi 565985 BLAKE2B 4f6bec975c25954ec89e1e69d35dfa508443b428c247f17476d33849aafc6978fa440166cd6b21563efea8ab076692d377b56da933fe05c3453a52c0840de75a SHA512 a4117a2b27d6f8da4b1606e3b119a1bb389c45b5558c05d297a28751d442cbbe68cde710a3d993719f0a0a197cc95c64f8fc4b1aacd5e11c55e8ef0ffeb7ac85 +DIST firefox-104.0-ff.xpi 476466 BLAKE2B ab36b5c3c9c400fd6e8ab8ada7870256ce4a717ecd7741e7b86bc79eb9c341677d195cf681415b4e7af4fc988822d23e29212b291c37fa78292f9b939257e512 SHA512 cb8e177ea8d422ddc4279c264a16fb76999a744bd33292f2c6d0d44d91533fc447c69435c04568cc278cd3de5c4aee291a118537c82de2528870e9fe8e9bc46e +DIST firefox-104.0-fi.xpi 542876 BLAKE2B 83803bd57bc25c6437b722e0e995ae3610bc750f11ac6f073d0e52318159962863c542a94fd5caead35a40ac5ad5493a5907175096cac269e023788d28c2f072 SHA512 604e3078513511211640e5cc00e9f9b67c03d37e77f174f1554127fe31f6bcdd1bbf290b4ce3b2092721438b9f402525b3967803ba4d30344efb36feeb0f819f +DIST firefox-104.0-fr.xpi 569007 BLAKE2B 0b0510ea59c2375eff590646914a7ac4358cae511a0cf2c0f5dc8ca8a519e8927f6aa0240751c346dc1b3744c7b28c0c60bd46bea575cfe2556e0c3ee693ee20 SHA512 f67a154c51424a1c3d7033675338b926cb82c3b63801613c4e8ce2f8ed0598ca18c84fca03a05952d83e8b3cdbedee8f2d724ace7a85683096da8181340dda46 +DIST firefox-104.0-fy-NL.xpi 550631 BLAKE2B 2d28b330616569e03fd277f9cc07d14a8ec8eb5aa46416dc4b3f4cd16c4d90883ccd598d51984cfe4d087662b3f1038f8b5469d3afcd5583c2f57e1ba24a9c7b SHA512 72004a194eb459d7bac835f586be64b91b217a8d46f131b1fc695f03850e5cd8ba4dc316ee575cf585e11b189b35f8fd644f88c5fdf2b595531ab570e0bdc653 +DIST firefox-104.0-ga-IE.xpi 475925 BLAKE2B 3e33e8bd3f060997c7ee6750d7cb8323d692b0939043e9eb0c26f7fe5d567067b54dca585b78b53be5c585a730307ddfcf359040542d5a7cc4bf62d0a3f1d44f SHA512 7a06deb71ad9c5d24815773b19da56776319adb7699ab7803a5cd5ab1111afe84c063949e4559998c58dc240988edeb5ab40afcb2b148e6efc76ed43c940f3f6 +DIST firefox-104.0-gd.xpi 547845 BLAKE2B 4b707ae862cfb440ec6db412eaf31a8135ebece868e0a4686e8493c95356a920b852ee19ad62ec7ec9b82043ce6a653aeec8d475e8c7da54ad6218201382eccd SHA512 0692a647cf07df53ad2c74ee8a9ad45567a7576b30524a5ba68286c6d99adaa2f91450401e285ccd992c69846d060b746352ebb07f9d5754cdd0d3df6bc6d9ac +DIST firefox-104.0-gl.xpi 543911 BLAKE2B d49ff519abbefc9b8f0c598a6cb76337a178f31c1ac0f45c2bd13fc1666250d0f5047c15fca8fb7581185039ed005bed19ba860c85096b4bc2a5d387a3ff6412 SHA512 04300e77036b700e49454e706d9a019872018c241d8d7ff7c235a9d5e14c0ab693004fd346de451cde02ee75d17da337fb9d355b441168d6ac4e893231a2b343 +DIST firefox-104.0-gn.xpi 570940 BLAKE2B d25c61e83ba4adf8323c3183bce7c6f05cffa068d096fcd5ed068090da3b88ac1491aa25c8b7e447f62d0d6788113848dbceb5f2c93b48b3aa1286d3f351727a SHA512 4b421c92c1490860fdacb9bf5287957331aae57b4c2d03c8506e91a83ab858c7bf5cd67fe24aee12302f0e29ae2b3ee0dfba351a81ecdf4a12b50495f19cb304 +DIST firefox-104.0-gu-IN.xpi 531091 BLAKE2B 55aea6748550c47f5071348615715869cae45c0180354f17040ebd6024105a6d34c8e51f386b81d931a47890b21d6f69bce49ece889d4a749a0eaa75d36f0a68 SHA512 7bffcd301dece01ab70d2f853d1ea5067784659ff2068f941b36ba3a2e19e1a63f0ceffdd4c9f9df4a04a26989c180ba4702408625ef191e0359774017058682 +DIST firefox-104.0-he.xpi 568688 BLAKE2B 01501040e121a13b623fcd169a0ff8c229a6a4db65aee31fd2640cfe1c44a8d5a89ba15ce8bdc2546f860ea66a3cefce76c5d1da7fe800741392faddade853f1 SHA512 b73ee331ec0dbbf6f3bf30990351cbb3131028d2fb44f6bfe86b8bba72022b86e50b65218dd7c491efcdffb4ac8664110a4264724c75a3a392a9ec50d5d5f2b2 +DIST firefox-104.0-hi-IN.xpi 561055 BLAKE2B d1a037ef7babeb48112ccca9723bfc30dc6258c44540ec1ffef35b7de8bfe16249fd616b69446aa17e73b4c2bb4cfe5508ead650e7fb5a9e0a989a89b8fff814 SHA512 956342c3771159e2b702c0300ce7e5958d634b91b723dcd0b97154567fb07f68c1ca7f381ee98d190fc8482ef18120b1799853e934fa4375de082ffd287c78c8 +DIST firefox-104.0-hr.xpi 534654 BLAKE2B 04e84fe848a65fbd9c0b96e7f73ca0904ba483f78028022cf7aea3b83b1a3ebab515e1f1b40eac40735def4a24de9211963648cab315564de98f2e8adb746eb3 SHA512 9d35261d28d6fcc655a9a58e8f3b94f07f75469f4ab2cb54fb861bf300b1cb74699b29c1e9c5a1ee140c6aedca93a6596dcb4941cb17fa9d5808f4c13d44195c +DIST firefox-104.0-hsb.xpi 575814 BLAKE2B 13697fea8a3bbbeec1d0a5357129e8280b1045f0fe6f92daed4847f5adc73aef1c310ed31afae732ac479e668b79f50f89b58fc6dbefa411cae16885434aec7b SHA512 7818620c8347de6e791abd1ba5ebe5b886ba448f3e1ef5116194f84462fd85893ef5ca2a006e61bff32b9e759b7e77b445599f89f8036aefeec96e29642450cb +DIST firefox-104.0-hu.xpi 579192 BLAKE2B 109cca0ef305c79d7b21f3a45657a2e642e42e2e70b2b78273f7ecb72417f8ed6892c7f3d32cae18f428a0f8135d8ce0cbd7bf3e79478f5fb2f52a7b131ddd2f SHA512 cbee5d64b95c738ccf04f7de20267a7d3761546320cd598ffee69393f18397a0e8f4a621d4cb09db00ff3db9503b2bf9a7b2683bc86edcb5f836655c451ade04 +DIST firefox-104.0-hy-AM.xpi 586080 BLAKE2B e1327b7dd63b46d0370681764ead503fecfd372d85608777a960c27c2e7de06a8b30c1796a49f8e2d326b862e22d6b3ba08983c8ff9bbf180e27edc09b20b25b SHA512 2bc05f0cf544242897e5825400f2aa7679d89370b57cf5a03f03de96b2ac3dfd3126e425c46ca301b22d7b69a817170413d58f99c99b1c62489c2a8007a7b0df +DIST firefox-104.0-ia.xpi 545105 BLAKE2B b8095b43c96a2e317a5f5580b677461d9a80f3444f0ede540810a5d65035bbbbed011622a697f2fdf8ee1211db1d03a53d93ed7598b1747621af010b6cc21827 SHA512 489a3334dc8956393b06191e0151199a80fb5c8c6005235c8501f659af1b7d8e3293f03b4bf019e5f9a782b8b31bc2b5d18a3316a93d368a00ce30d05f3a1de4 +DIST firefox-104.0-id.xpi 541007 BLAKE2B 6a593321f4b19084e294a6a5025d11bee525abd49f06f1966f28d713097a0798825f7e35b89af20a8b7c02ec6a927295c80c4551de1f0598b78d43b68b946795 SHA512 f8dac0cc428e62cd1debbf52e356158a695b7f7d2ecf0e31470e709a02283c63c0b2c6e13c823c0cb9b5990551d79295b507b06ef47d35a95f3835d2dfcc084e +DIST firefox-104.0-is.xpi 549340 BLAKE2B 8d049e6f5f6c9bf7da1c17b96c51223463a624d00339bd559076bc475d1170abec73eb7ef5af3d2cd3b167a9cd7c7be2ca0b09f2444bc7e18c9942f0f98710c3 SHA512 0d95fd5d8ca13986e1d5c742897fd5d4f96803275540149f587401eea2b0b6b0b20ed4607ed69ad635e52bb3698ab7e2610a62744e5e966da6b425485201789c +DIST firefox-104.0-it.xpi 462406 BLAKE2B b1b0e16f251958c1abb077cddf7f61e50143a8515dbc2d31f6e9c57de7a69bc50cdb7c5b29029aba085c88faaddb9a3042a66178c7fc682cedbaa3fff463c27c SHA512 8a796570667fc56776fa3c175f5de2e2194d9ef4b22b1d227ec5358e53bd5159e390d0f317a90e46851ee75b73a9ba5b72ede5534d6cbfe3a00996c76af9814d +DIST firefox-104.0-ja.xpi 583508 BLAKE2B ceed848320c0f2912bc6e77ea7a14a77bb7b728c761061b1ea4e307ad681d4ab9d0a68fc4ea1b83d8886039c35f2740ee0ac5ba5b3797e2cb76c11832f2c824c SHA512 9cdd40bebcae385b0e4b554861d9c5e292205b2a53738b7e3e561f1af85352809c7f6c3a6fc0f32a37a10210820386ec5c8f6649e1a88cc9d9476563adcf1a6f +DIST firefox-104.0-ka.xpi 605068 BLAKE2B 5e7dfd962487f579a9769b8c871ff6fa83aadf705112857e61275745fcb7062963bcb9ea427e6c5b92d592f7f3eefa5fc4c88edeb991707f657187b17a626df7 SHA512 ec461f54ac9aeac8e074edb534e7fee28c204bc2cd17deed927107035b1c56e5baefe7b57ddaa6cda8db67064c1a6cfd9f5c5baceb3cda0d6191090264dcd731 +DIST firefox-104.0-kab.xpi 564771 BLAKE2B 51df6490137914b1bd4141644b7eaf12698b5f75f610d1523aca662781ae7e4eb1ea02fda657ebd6baa071052e671c29807344d97b747ef917c1d913e4655eb9 SHA512 08ab8799f1ecc5ceb4a40a1469551281320a7ff651517a45b678e4cc188c3afd0ef0d79dc92568262803154a6e6a6b133c35bdcdded61fc9c602c46e909a2aaf +DIST firefox-104.0-kk.xpi 624332 BLAKE2B b1530c698f003973c3822891b06c209c04f18c49d10dfd70946aca0e33058aafc14c4e5a839129b6af232eddbcc336252d68755da2d4aa97b2945e14e02ae7d4 SHA512 ce48e2c82b9f20de27d9970d3f7657ef2cdd09886e633be0cf72a32ab13399d727a24eb611a191a20e1d935644d305b5cf9231471d93a3c6ce9434999d19ed36 +DIST firefox-104.0-km.xpi 535680 BLAKE2B 9ac973ad771501e16c1382c76d9bada8e0e629cdd9670776f7ea6b81ca88cc3f1521e8dac990ecf4589ebc3626eafb003e4a1ed8f64125a6cd0115e893a44cc0 SHA512 93318f76c0b250b16253485e720e305da672677b6b74e85e9f55869b566cd1c02961775e1a8addc6f0b6555ee7f9718a2ec3be6d602490412f6e9469af581f26 +DIST firefox-104.0-kn.xpi 501806 BLAKE2B 1adabdeff7463e10863ee0ffeadec2620d041bacccb54b1fd8367e484f8a9cc3377fa42a5b8aee6ced8c175767380cb19dbb206421485563ab4e1631667ffe3c SHA512 e700957d13adadf3699b76e5e1e0c9c8c2303529624492c298a1d4dadc5d94fc916cfe72ccae7e6349b4bdd7d40d8b248b183dd3aefd36926cfbce2b38b2d250 +DIST firefox-104.0-ko.xpi 591403 BLAKE2B 8b975a18ec10d21b4adc93e2f7d48b265d4999c5b450e0a8f92c5b75db76d618bbe5d77a43795726071a3c129dbc6f0ec0c1665d23e82acd456ed1e16647a3c1 SHA512 7392d43d023a90f9cfa822a35a641011f07f773030e0486a4c5242c76b8057fbd61123c724a3b9852a6e41aed16d95420b87f56f9fc3ade0d7df21e4280c61ff +DIST firefox-104.0-lij.xpi 474395 BLAKE2B ebae20ede959538a35b912bbc79cae94bb5cecd31e60601257ec9aca51d5eb177f65b3579b42aa55280b46bdacfd09121507c8412a83e6b98dd513a0f8e5724d SHA512 edb4d2b53c2bf5815b7cfc2d1741a438c07ebae976233ea5a884dc4012d089288a911eece01d84d7746cdd311c826cfc5135ab8652aed8fb6de9eadc5c488f28 +DIST firefox-104.0-lt.xpi 565090 BLAKE2B 79e0a40e03f0f83aabc914497052917fe07b7f6a0f5c3b5e5b7a5ee5ea3d18050a41a493fc62ff5b985d84b63da449a55523f41e3bfa7bf9a569d43eaf240658 SHA512 879f806fbd06389ed55063f742e94bf5de04d6a38937ac00ec0086d45b28f3f5453b88225049e2d0ce0958d9c9df49e86ba567852f099554d0e1243643a5a4d2 +DIST firefox-104.0-lv.xpi 467532 BLAKE2B fdea8a1cdade73784a62185555781a07af596b77e3240b5bcd572a6c40e0a2a384692308737a7a9873ec15e94aa6e893fed3d0457f417a48d8bcd7230210b4ee SHA512 dbac0c42205ed5cf6db72aa4cbb72725a81813e97851b24f7761f817591d24dc58b230a2357f425ca64ca7e3e1b720047d529cabd70cde51f91fc75abf4067da +DIST firefox-104.0-mk.xpi 479885 BLAKE2B ea00fb86cb3e7324acc357eb539e062eaf01fecbe6ee2d4acce95470ea0c1da2bbc183029e6535295b04ec6f7a50aad28b0240df5ff8bd4161519d059f48bb71 SHA512 d52f3e16263242057d943a1781908d634579fcb8364f379451a47b9a8bfdd0abddf0b56d91a4839a366559eddfacc20be1038d7709872c79523086e18d19e382 +DIST firefox-104.0-mr.xpi 534727 BLAKE2B c459ad662386a2cc1a769a59ae09a8ae42f096de5ceba9e2691a21446aa0363a25d2d31b0715b9f7a3476d03902ee9bf02970e2e6da98cb2ccc4de349242e95f SHA512 19e5efca1ba18bace860467c857096c986ac590ce2e3fc8ca1a87adb8523ba741e5bbdba5531b9b5f2316d949c27bac5d95bec7d015b20d557ea3f4c8d493214 +DIST firefox-104.0-ms.xpi 452525 BLAKE2B 312c14f4b61ca2d5f463746b5f0d76d812889d8afe73f398fb0cd784233d03ec1826a32a018f4715c2d90feb2cc0032e0ce1103243cd833c8a646ceed345972e SHA512 519619f7034e3f40068444c9fadcac7c282a40473905c1779c5675eb2182c6b916fd32a070ba89b9586b28d8a37335ca122fe7ea2a827b3f3c71f4ee0837e27e +DIST firefox-104.0-my.xpi 514692 BLAKE2B 5bdcc4f6d806f5fe8d641e5f766305a959c158ec4129f8f44101cc2415527789f309710f87c871ca506a7fcdf1c9e9f49b3db7381031985df0a4ac190b188f02 SHA512 930f0231552333969196ede4c0c88fc4d8333fa8bd1bc150e98536eaf9f375f7e791f947c325054fc8fcff8b69680a7687d112b068418f7f25ff4316130ede36 +DIST firefox-104.0-nb-NO.xpi 542653 BLAKE2B 7b4485b86d602074a661bccc379f146f733783a94b3e184011aa5a215a875f689c08fa9ab27c4cb3b30f3f88f67e596a108deb7933a44153c14f6cac0b509234 SHA512 94f5f7741d44690110b8da3f18f288d436a292d37cf0f2781c1ff75866083693172346df59afb2148344c649c7f36f5d7b3cfd941fb10ecf0961aa7d6b7aec8e +DIST firefox-104.0-ne-NP.xpi 493549 BLAKE2B 920669951d545ebc7bfb9f9301c5c551d5d1b4fcd87e9bd784a39ed17b2d51858ec2f309e92e4ea828b23c96b63a8bf49c9b567437ab82e00685485c2879e5b7 SHA512 528d103ac76bb41f93ac3c69e9d4909649a4f5deb9f797ba3232e5e7cd37a5d01a2ec5c48fbcc0593acfd70cf51703ca48f1ffe81e60902803dd1dd3b4edb681 +DIST firefox-104.0-nl.xpi 546984 BLAKE2B 26a227ca12dda2c3dbe95020e4444c371b0752f54665c6ed0876cd83bd6235533c9759c355559fe1b1323005726bd2663f5a8ade84b7517b75386b68e9090572 SHA512 28b57d43c76df781cbe0167b296aaa7292d670cdf225ab465bee5cfb6d51ec2837ffb1cba89e963857d896ad857a46ee454651a683b06fa9dee42e9573c48ec2 +DIST firefox-104.0-nn-NO.xpi 544290 BLAKE2B 2b4f7d57eda6f3b0a3c9b38760ac401ed6030dc633cc8f00bab5e3827db6d6de7490c62dbd759fc3864e79470b4d263b6278f24ecd4bf41f4979e47da06709f4 SHA512 fb6237beae6fa07f72922ed8bbb827acc76658e5db0d63673770f256b984867f88462116086b1d9993967b9161aed7983c9e886b46288d20942940f60ec1284a +DIST firefox-104.0-oc.xpi 560758 BLAKE2B 58c853a831166df3ff79517a5b468b288e9432d2566a794cff257ff97551353dcb9f672441c8e5e1fddde7f74e02b2b0e747f1c96cbfeb8768be6f4a8ed604a6 SHA512 b6bf0b335493235dec102ea54d30b315129ea8dd95b72867c5595870dd6337de20fafad17eff3ed8466ddc7c448624bccaf0f5003b5026ccfac62c6b16a62126 +DIST firefox-104.0-pa-IN.xpi 611567 BLAKE2B 57ce6ea0de4db77588987ed51ef922f7e901594417c13baf0df8ef8330e53c0b163fb0804dc965a8f93adb3a963b262dcf8317eb794f7ddeb4cbbb4e7f5b79e5 SHA512 c26380240845c6bd1334079adadd6f5a5c610253525d99694591a3acdc899814f5589b131a475f73ee18df19076a428bc891c11c0ead4e8b3f08eef49ab8e20d +DIST firefox-104.0-pl.xpi 570611 BLAKE2B 968f41f52f3fac2a26ae132142060118a2258e75360b83ae9a592924f21b88382e866c398c1e4dac8332bf8b73c86cb5f00ae2876c605dc4e15a113d479e028e SHA512 a3c336d0caf2a75a5137c1ea439f98aad02a998bdd6722aacf0cd3416da379c4d80f352251deef025954290f01d3e68c60b85a814b387735b3cad391c258342a +DIST firefox-104.0-pt-BR.xpi 555629 BLAKE2B 62333059b29022eeeb95810e5e7051598691b457b63765296dfec783d09e81a1a365d4454687f38ac00fc7026891f93f0b43037badb8412adfde98c885029bfb SHA512 3be4147fa911293afc0e2d5ba18bc7ed8b8049894ab40772caac804a9ac041712bca1dd41de031d9aea1fd94dbe9a85bd46811942bd915ac4b7b18c62f44b1da +DIST firefox-104.0-pt-PT.xpi 558700 BLAKE2B d1bcd61e0cd2c6eb1e16602d7b05cebe9a5ae82f949e237f2616d91851d3d16d223256c92dd08056b16ffb0aff5d54dcc19d520c654ebbf67ce3203bf2953b3e SHA512 b767cbcde91b42b31b47d7b6a208561aa166b8ae4e44a0b116bfe3d016df06e5486afba02d45f01c4edac3917bdc0a406a4d0d805127439820c2a29d15b28d15 +DIST firefox-104.0-rm.xpi 542665 BLAKE2B e0e671cc9033642a3c082ab842789f83499e1ea7ed5d7a066717d74d08f55eb3f2b671d4c5360f46f2078f721667e68a88f87ef10aa7536a37dcdde848f08f01 SHA512 c6af99dbc785f9d4a79102032679aaece4711ccdc6b772caafde5840f769240bb183b7a77db2b9a83907b9b3eb5530b0b8bc049e41db88e69566f5ffe79eb85f +DIST firefox-104.0-ro.xpi 532715 BLAKE2B fe35f6937c7720915205352b63b86e5515494ce59a26c7d281c9965296e64928886140a1419df36c04bba253b2a9b3cd5174a4b12934282f4809c748421c7e81 SHA512 25df5e1ffe7be6c1c46a02d93ae13320123f0bb2eadf16932149f01cacc64b9efed5719f3be6a9034c80cd21b667b5777577295efe4744e2baaf4b7791be5af8 +DIST firefox-104.0-ru.xpi 641374 BLAKE2B c32099bc077d8a499d92e93c5f14d744233ada33230c4030bf749d3e0a6a7aba69fb202c60a0f2e44e7e0731b370ca9c31f432b1a7c0acf73b3a438492c77f80 SHA512 dd5a438df1ba1d320e71aed278bac0216fbe3e4b5914ed67bb9756c294cd5999d6ab1b5ae6d893b51c247ad2dbc149696a07e494037e56a35b785f68d0da0e36 +DIST firefox-104.0-sco.xpi 500777 BLAKE2B 509f14da5b16a3d98294e498f8a18de298683261748113d075d5748e4297c5177f21b867dff9b4e4e936cbd22e60f7e98bdbc003f114033eecc40b5bb8f19a48 SHA512 f671c805c818e4c9fdee5c1852357e7c062b8ed56b0bdf7d17bd321a0eaac211e3bb6fe84a52c9beaadf78e26b1bfdd6e365669f49813212ad09164338134719 +DIST firefox-104.0-si.xpi 489434 BLAKE2B 3c4427f72b1f869095fb160217738518a92321941a3f8cfb3c1bdf511056821663eac375a45e0e5f92689210c473a64bbe98fc9420e52469a1adf25ba018417d SHA512 ab179a49625c70cadb6cd9ca2adae66bfbdfd772a35fcf478bcb1c7dca389c9a03f2d6417d47b75d10e4ca23a318562b9e579b4c4633200689285301f8ebd2b1 +DIST firefox-104.0-sk.xpi 579416 BLAKE2B 3cccd8b318fec9fecb236bea9452c14fb940dce9242d9e90f14a33d702cabaca0085dbc9d521d72743d7cfa70bdfe656869ee53fe74fd494a14fb3f71eddec2c SHA512 d8ef67f0005ded4709e2006aed4f26d4b78b8f24322838a8c2d2a2d04bac5af1afd871319ad977d55282dbd0ed7543efc469c53979fba2572a98d2293fa80e1e +DIST firefox-104.0-sl.xpi 551984 BLAKE2B 9b52cb5e081740ba63c38b1a4e331e0d603226366baa3dfa49b7dabe1700db72508f83b679c404c4e9ce78b6fad220338f45993f955acc3f5a3989e17563b546 SHA512 5bfb20254260711ac2d3ed3f86f08fdb19b4c46aeb3760268905c10dc8451b4b6457dfccfc500d781f50fe7e9905fa69af53e60d6aaa639921666f83da04d1b6 +DIST firefox-104.0-son.xpi 430375 BLAKE2B 9bf41a0305bd9ad94cf4ee00340e377079396a76e9733cbf9256064fdaf8e07b4d4dbb79062b2ab03b9cd179593fa7e93d022b904cc927bb7c8f599037064c58 SHA512 2251099532e51b0c2372a350c14876000597aa76dc43c5ad1e57330aefb99a02dc5d89a2d0ddc7ac5acd68a80c3e146cbffd0832fa907293a63627c718cd350f +DIST firefox-104.0-sq.xpi 560586 BLAKE2B 3d03a989fd29ade0d0428ee8c68d2d27232175217088cafacdc2eacc5b3baf6ef129c88f7b2ab5b49dea56b2ce9b2646b8a5d6dc49524b2fe115a8e7f84fd246 SHA512 7495b70f23174c49df83c3001152ca0b22c75a46a23c98a64200d2ce702d7376c4c5835e3a28358a9be590fa35d04ded12f80b1f045a450923e5b9ab95f7ec2e +DIST firefox-104.0-sr.xpi 586826 BLAKE2B 957ebbbce123b148bedb22b000f413ad44e0212a28a50f06a1394e4404d83286753fc15c8ace9e46391de166f8e69d6bce41773f0509bc6541764c40adbd93bb SHA512 87b0a28e372bdcc964edffdb717ea809f467b92daef17a867b3fad71a6eac42bbeef94dd61256f6b7235f5a630b0ab4dc5cb04d11ee1b86ae77558a5c69c6af7 +DIST firefox-104.0-sv-SE.xpi 552456 BLAKE2B baec0549f07b95145fc8155562860b22dc5a87624a2407f1958016805a2e54fb243deefe2be8b5d187421c7a0221ebabb0c7282a125a4e470560c93bd94e5346 SHA512 2cdcab902395e843fb229085df1e3eee5c6f8e78f158e8e0d056f771ecb7fbc9589cf58511a9e813d825123ea304f21ac683eda4a5e0f5b2393ddabd7621b9f0 +DIST firefox-104.0-szl.xpi 512573 BLAKE2B bcdab38d94823a9c6cfceaddcce73ec58bebf49d9270dcb200a5d0653d9a489dfaf802104c5a177f8dd4b9dd2bd103c2c1ddf1fdabdd237b544cf53389191430 SHA512 519baee1b2086aa2923c285b2319c4c92a18f0cb0b7fce34198680517494d97e3c04166f8d7f311eb7f5786d947626e6d6285253824a9c51d5f26620b10f66c5 +DIST firefox-104.0-ta.xpi 514636 BLAKE2B cde77ca7dda9065ec6b33a63dac37ed72edf42bc88d1f30bef962be4c3f43e90d8eb496ee4b87c4d51d39849573021eb32d5c746f4556f6c6d953e931095799a SHA512 29d3ae28a836216ab08d04499da6afc65ade4675983bfafaec9f912bf9366c6cc10e6b7148c34f23df91523e37402133fceadd213478d1e04ecb5ecfc1cfcf8e +DIST firefox-104.0-te.xpi 555343 BLAKE2B f23c40c20e0a19d8ac3fd57980f4e4af6552655d1ef38debaaf2ba292ed29c74519e009eb8271cc15409bfb542fb4b7f7a306605f9b8aa5c524eebdabdc3364a SHA512 2598c0a2d06b7c344d210c7a78b4d5498d900d2cc28b4d8b0fe7ab57903b2cec34f6e549d46d22c19cca4689f79401386c37c3eba0b713bbfe6b5fb9f7022e16 +DIST firefox-104.0-th.xpi 615064 BLAKE2B a82b853fb506f0ea48adcc7433b81f9eb4c089e2dae097caac1f072ddcd802823545cd7d26d6ac8466d2853a2326fe69e13653898843d67e260aa9164ab9f941 SHA512 85b3b48f18ca143ee8c216e20995783c892b4c6d102589d6df057638ae144c7866d1acbb788ad21b59d40ba4ff8af11176460f9886da3027101c69127de81b48 +DIST firefox-104.0-tl.xpi 522949 BLAKE2B 18bcfe8cf15dadadc3195150ba4eeffb65f6b9baccae032097235508e62503263d2a661d26aee1a81df0771ac4112d6843d02242f30b3bac14dfc7ceef26b0fa SHA512 03163c26027c1dc560217a7ae73b59eeb0166bc21e371d710dc772a9b5c50c607d7829d4d68e4c905ca068ffc57a929c2b21edc91e4421a4a2dfe64e08e93a23 +DIST firefox-104.0-tr.xpi 565829 BLAKE2B eeb8736e23b92d4b3737cbaf575b820feeadf56218c3ae68db833e48e74e1534d8b94c482250b5e57678f48cd254e36dbf34c41f5f791ef25c82b4f92c6bb745 SHA512 3a3eeeaaad4d8cb802b3e9fb9e1f7ece69b7ddbc1f18553e37a0eddae6a1965666e651845cec57adba1a483ec4df777d7fd658b2430603c8e4994939cdb83b42 +DIST firefox-104.0-trs.xpi 493320 BLAKE2B fe3ea64740001cf918d855ccc68adeaec359c7475061cfa96bb9ffcb74c7db46c0a17245656743be76ec835706f9580a8c07cacf8947342caf27df55b211e10b SHA512 3aac20f7767c97a4556998ba8e26983c55c42f4ecf04c7ac2f3524adfedd79e4387f80e486117693d4dae80702a829beec6dde1b1d57eaea5b867709ce7ae23c +DIST firefox-104.0-uk.xpi 634720 BLAKE2B 275901a26c5728e7849b5fa71a78b645dd3b27862bdbaba47ac84462fb047e3e6a52ef294ab687425be05c7c43c0028d009d4faa8a1cbeda1f61c205da604564 SHA512 bedc94183469173ee1092c862c597e10640f04e3a441141e9dde4ce839910383986327c7840c339872249470a9d06ff3edf49d3e3ea1f86d813840e158c91507 +DIST firefox-104.0-ur.xpi 561593 BLAKE2B 1dc7b04e41dc92c85c37b2628f3b094d30c092701862081a48f97a256eb95db410bdcbe1e700363d314517ff6b5d4a0689122ec274c541dc476f79f86fac7ee7 SHA512 af727ca14ea47b3bf9791d45b245cb51b8f59d8a0f9c88d358be473006616175b8cad5588d2d72f31ce57332fa4cccad97ac6d61efc4177daef6509d7e212bd1 +DIST firefox-104.0-uz.xpi 482123 BLAKE2B c9949381c88728ae4a1a0591dd9a127a51e6a224ba7e77fe1008dffbdcb1a3636da4ac375a49750f90d7e857725cfad755d1f1e86b89a7068ba8f9da4bf1130f SHA512 7b2918abeb301ceb73cb7c632eee07dec375fd0f40689a977f9b23312cceb896578f426d1111e74f16757393cd7686cdb228e0ec7780da434e69f8f1ce48c9a1 +DIST firefox-104.0-vi.xpi 586731 BLAKE2B c334569109fff41f076e3b1dd24e81fbf2eb4c23f10d1fdc667338ea17d7a1da595643d6c899080ae822a297a623a8aeef28a77efeca42d098d1b350b06054aa SHA512 65d6cf9b3dfc563a63d04bc0cdd2f95f599746a4d9e571740743722d2421f7989018eb91e07f33fb6b8e13173226e699135b403ae3a6655891f2059ec452747b +DIST firefox-104.0-xh.xpi 433345 BLAKE2B a94920e0405787bc4b63569b6ddf350f0544a92c40d23405d0cfbcef2452df42312fa413036a10785c2c8b80db343c1c7f00aa18eb993c3d989af151a85b79d6 SHA512 cf9196740c88fba30dcaa10185a6f3cb31bf1c7facafd9545867c0575d4a2c02bb95b7262c59f4441c613c5782030d907fea140955b11d42724e2acd4f94eb81 +DIST firefox-104.0-zh-CN.xpi 587666 BLAKE2B b42aceb94ab211c6a15bb94d240879df68a5170631b109445c5d7587524fa86d8011293010a41e5b6d11a81d4e95421550a76bb7fbe4af402bcf10d5e02cec4d SHA512 90f04294ee909281f7b7ef3e54c5abf9a280d58c02708fe808537abbc84e8eb18f7682545e4a191c04c4f50363aaff87064c56463104fa79358bbcebf99ab6ce +DIST firefox-104.0-zh-TW.xpi 588453 BLAKE2B 800d28e22f55ad5920788642522ad1753cc96a6e0fab0d34d49d66b09591a7c44db0c66dfb6f0d894823e865a6b15201c1111f41bbb9de8f263a36a002238583 SHA512 98978ac40a549f41cbf8a68002c0b2c2d2054515debddb102683cfda0b95851a3e943714e408ee294d7de97bacab89f9aed61a0cf06ceb3b251755c1b426a6cd +DIST firefox-104.0.source.tar.xz 486299816 BLAKE2B 9de094ced1a5cbb6a5db2ec78a9a762adecbe95295a1184a5ee018350354d67d2a861a89365cd51cc07f017cd8f7a029e727577325fa63c8925d11238b18cfa6 SHA512 8778650ffa3c2d18802c348e27789f00cff143c7ca0ae01b1bcd050b6942c149db25696b48f3c702fbde901c15fcae976ac731a456f641637cae3eb56d0077d3 DIST firefox-91.12.0esr-ach.xpi 453218 BLAKE2B 72fe82032f20ab6c58af380d52b996b1dfccbb53341483fcb787619801e707840110490e3d5d44c2e326fb15acd02b6970f70ce3cfed34a4094da0355f415a2a SHA512 e2d6200ad969b5ff1c0b5b12b5735cc2ed9e0a8d6ef3ea1152aa72b7e57c85d5cc756e304197560f9b38e6f41390ce19ab4c6613a7e3b4c48f55af7fc28b7235 DIST firefox-91.12.0esr-af.xpi 426916 BLAKE2B f73e9822680474ff2ea982184e009adb9c2cc8cb9bf357241a142c4b5e178fd1cf3b59b5f14e60d5fc76b6477574b1f1742853e292c47cdd65cb185715e4bb52 SHA512 b818e45b0245dca391503a1a75a49fc4d376df6cac6e2edd7744fe2e8b91dfd7ac31e3125a6b0df530ca67200deeb38d29269622dc1fa8b120af207346bb9418 DIST firefox-91.12.0esr-an.xpi 499897 BLAKE2B 037a56ed04712009c4b593996068a6d7b462d600d1c35aefa68c1ba6f05a0d12195a4889e8f8cdb5d3c5953a244ee0cb9da49aa48d85ec0d328c0cacdb8e1796 SHA512 6b849d10a4c567109d0cd7b8c0ce3392e25d26cc91f29136f5c83d59306ab2f5b34c101b48b11748fb6472329cd031933676618b3f1fee251457243109f47979 diff --git a/www-client/firefox/firefox-104.0.ebuild b/www-client/firefox/firefox-104.0.ebuild new file mode 100644 index 000000000000..f3576c6aa78f --- /dev/null +++ b/www-client/firefox/firefox-104.0.ebuild @@ -0,0 +1,1279 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-104-patches-01j.tar.xz" + +LLVM_MAX_SLOT=14 + +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast +X" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" || ( X wayland )" +REQUIRED_USE+=" pgo? ( X )" +REQUIRED_USE+=" screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + virtual/rust + || ( + ( + sys-devel/clang:14 + sys-devel/llvm:14 + clang? ( + =sys-devel/lld-14* + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) + ) + ) + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 )" + +COMMON_DEPEND=" + dev-libs/atk + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.81 + >=dev-libs/nspr-4.34.1 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-0.9.3:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-71.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libdrm + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" + +RDEPEND="${COMMON_DEPEND} + !www-client/firefox:0 + !www-client/firefox:esr + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + ) + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${COMMON_DEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + X? ( + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums audioipc + moz_clear_vendor_checksums audioipc-client + moz_clear_vendor_checksums audioipc-server + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + AS=llvm-as + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + if use ppc64; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + if ! use X && use wayland; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not 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 +}