From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DA7831581B9 for ; Wed, 01 Oct 2025 13:31:39 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id BFD4C341083 for ; Wed, 01 Oct 2025 13:31:39 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 8A8971103E2; Wed, 01 Oct 2025 13:31:36 +0000 (UTC) Received: from smtp.gentoo.org (dev.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) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 7CDD81103E2 for ; Wed, 01 Oct 2025 13:31:36 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (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 C5860340F2B for ; Wed, 01 Oct 2025 13:31:35 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E84023A61 for ; Wed, 01 Oct 2025 13:31:33 +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: <1759325430.cbdeb3e7eb85b9e1068ce3f27440cc933e98f641.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-143.0.3.ebuild X-VCS-Directories: www-client/firefox/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: cbdeb3e7eb85b9e1068ce3f27440cc933e98f641 X-VCS-Branch: master Date: Wed, 01 Oct 2025 13:31:33 +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: 0c600c1a-ab62-46e2-9df6-d871193dd4c4 X-Archives-Hash: b5fb9397554a739a0cee7647770b7389 commit: cbdeb3e7eb85b9e1068ce3f27440cc933e98f641 Author: Joonas Niilola gentoo org> AuthorDate: Wed Oct 1 13:30:30 2025 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Wed Oct 1 13:30:30 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cbdeb3e7 www-client/firefox: add 143.0.3 Signed-off-by: Joonas Niilola gentoo.org> www-client/firefox/Manifest | 101 +++ www-client/firefox/firefox-143.0.3.ebuild | 1395 +++++++++++++++++++++++++++++ 2 files changed, 1496 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index f5ebf4862c91..d7703d24f182 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -710,6 +710,107 @@ DIST firefox-143.0-vi.xpi 478406 BLAKE2B 2117baec24d82515afec1af9a7c11965306c965 DIST firefox-143.0-xh.xpi 273327 BLAKE2B 08a3dc2ed9b779776efe9436ece3d2309964837da5afd025403f1fc8f82906d49e548a960dbb405de211f37477487d547edf7c316e7d4403ec13cf0acf81054e SHA512 df573009b96ebd673da3061971875c6ebd0f981ce0f78f974bd784ef22a12cbf0890d6709c06424021d7020463daa623c86e219a367f1f27c521ac08221f37f6 DIST firefox-143.0-zh-CN.xpi 469380 BLAKE2B 04e88ee20bce063915df950d490c42ab7a7c6040e6525906836ba08b5c38321c4c933dfad2f75945c5b85c33a8fd300af9a24d8f28114493f1c6eda915108cba SHA512 8b807a6ff9772519471136ddebe005e85ce8094bf87bb59991782eb956c704dd929fc8279dd730cc6a4a6454e54ce7013698bbaa8b030eb82dcb889204676bf2 DIST firefox-143.0-zh-TW.xpi 472965 BLAKE2B e13d54d2d8d6f268b0cf1c0fdcbd5b40822d625e80b6446eaaa506ed6aaf18d2b000b80ae2e8faf855cd2ca2ede3a4fb3b378575af83b6439619c73bd646a698 SHA512 24854174222872b3f4631eecfcfcf26402949b9eb483a5b7baa3c73e34f7ebb95e6082b2c6cea020a8fb079c5903b12a2a2c9703e581988c3860738e5a21694f +DIST firefox-143.0.3-ach.xpi 293879 BLAKE2B 215f1044b44862a0d86a3ea338e28ba64e3fe2c9c58ed752f00702176a6c647eed4e091fe343f1aad4cd7dd91a57a88c49e682073ef72d85abf5d3a589d8e659 SHA512 d3f434b3f29a16beec9318acd9c919cb5f69cea681ec408dfac447a9a024084c2395836538d9d9de5e3f8c10abdea90bbb346ae3b2763ec276665bed1d496c73 +DIST firefox-143.0.3-af.xpi 267162 BLAKE2B e4df393f7bcf57227cae67290310578912cb57b09766817d5a7c3e35f3167ab76ed0c1f50fb49bbb632e08c8a2bc42af28499176bb63379bbc1a70c9a47d955e SHA512 d488a34aad67a8c8de3d628941f298ac8e7f09076e6322b8b4286dfa649b1b952a6170d58cf2e0ff122293e444cec3cc4644d226c0a10bf014dd16de3c03707f +DIST firefox-143.0.3-an.xpi 331549 BLAKE2B a1fdeb2556898357e3216f18ae7f961a54e9fc691e3740922bc14a7ed8c29519b953299e2bce9af63d81a16ac6e3780f5faf4293c9d09eb343ec901fbac716f8 SHA512 329b11ccb676a87b3254dec93ec03ed7c5249542338b844379ebb8ec22ac8cf3381b0b2a370a417606437686ad9755147ce77ba256dc03d256f223839f4c38f0 +DIST firefox-143.0.3-ar.xpi 444527 BLAKE2B 10f94c345aa21ee77e0f8d8f4692f48c64ac6b6ea5a4661ad507f9130a0f0bc7d19f4c67ccb77163760bcdc25542eeb0e44ac8c7373de0d1f625b8f7ea416097 SHA512 54a569049144e73eb309461d408744c5f65b35a42ea30510fec0f6cf1a322891730a3d5c08e58c8659c3af9977928fedc1dff8570877ecdbdcbf28f2c93f85c7 +DIST firefox-143.0.3-ast.xpi 311756 BLAKE2B 8698dad7f860bb8094ae0b2bfe16fd4628777120a0ffb1817dbd148cfa6a7cd869ee33e9f5858ef2879178869874cd2f9258b2c23f1e533bdebc5b64a90c0dc7 SHA512 88dc83d1cdd04b4df8c9418f00ffa971dcdde134daabbde43d40e0937dc029e57405606df7447e379938dc27ae88f7652458e90222e542e91ae87687fbb7bef7 +DIST firefox-143.0.3-az.xpi 318194 BLAKE2B 43e36ecd4d8d1dbf3c180d57cc5d0ab526397efef9068f2c34b2ba1c4181c40b781fbaa1021517fed00017346b4641cba1f5bb331ec7501774bfb87018d54bf1 SHA512 33534bc8c45b1442147a9223e80098c43729fa2106ae4ed4a9f7d6f45bef90deecab7b3bf506783764c8ec433bc77260d553fb166f4ec58b7518d874c48a6e29 +DIST firefox-143.0.3-be.xpi 532288 BLAKE2B 11c487bb287483e47344b335a86620ae48199b6b2f1bbfa868b68aab34f2ccf2eed4af33347d1daa8f5ec2e9b04656ee3b6cbc9355e47c67bb78fdc398b9f072 SHA512 679b315d01319dd6ea2366f394db47fefb9063774e726b3f0c8eb551580b654e454d40343f04b54ea88b6a46b16adc38bfc29e1d9c087ec808c83b9977c7ab3b +DIST firefox-143.0.3-bg.xpi 456341 BLAKE2B c45c49288fc348786ed812c4426011d402d43e7513ab51a2775ce4b1958ae9c06f72afac393c82d061fb666bd977c6850144096a4b91071508d5f7254f731cbe SHA512 5077fb2bf6da851f9e4f69f88a8eca0a98c9bceaf0aa3bf90945e4279460f64edafca1e3c1e8d3a8614d9a7b0925274f713d7f89d1dfbaeb50a20114920fbbe3 +DIST firefox-143.0.3-bn.xpi 412924 BLAKE2B 49356aee7d0ba3d38b9891c76ce5b1d937a2e4971b5ec2895ad46927bd2376cd32945d4cfdff1df56ad8a9e2ac8112a71f36ea00f5b2723ad45e3b154c8deecd SHA512 ef439979828fd2f50bbef8c1bb56f95529565be61816a4df366d9fd3e69b1d630c48933e2c5a1eaf6bd302ea86f6e259f6fba4e43bfa8ff399e9618b5b0b8ff2 +DIST firefox-143.0.3-br.xpi 394556 BLAKE2B 4ae73d75837d8fe912f168d4b34a43bab4bc3dfaf85fbf065d826c90345b951c1095b97a5e383454dc5fd2a5f2f8b8a4f84ebed966804f7579447323f84a25c3 SHA512 bf8613abf61a2e7ad8321e0e8c2cf60f54ae7e8badc9e00875a92ab04ba604b93411fe393068f028868610788b5b655b901e9abc32d4df41d63a37404a7ba0d9 +DIST firefox-143.0.3-bs.xpi 451269 BLAKE2B 3a67caebf67d1f8fd8e7dab3b2fa977e809188e67b1b285d7c7254157333236788e7ebf59c387ce6bd8f12d1c6059b9f42e4d55c3290224124ebd1c0134e170d SHA512 f8070d25a8175799a80bf48ad46eed4e9c792f2ed8c19a1383f9dfb66019ef897e5850139afbaff24885037a458da5cf2c71121e65cd941ee089214ad9c9d8c6 +DIST firefox-143.0.3-ca-valencia.xpi 357396 BLAKE2B 30ba742ae372eb90b29fd5791e4329f22f37ba9700e87723c13036e437f8d989edc4480a6b99ea71857786ddbeda4d268334f6b13856ed2c690aba2a1c740352 SHA512 342babbe16b2242558f662536134b74eaf1c05492d295a453c804f347c0b50d56e231149608551ee8bfad24bced8429724e9a03056b131fa96370f1bd9522fa8 +DIST firefox-143.0.3-ca.xpi 403380 BLAKE2B aebe71d835bf187be7bba8c52a4b4e20bf2745c9ea9503d94eb5ac3946659f15a13e9315dce3bb488180ecc712a2871fd2282c676bb09f1cc15f74d634199227 SHA512 9282fe92b24ffe9e76851ddd29dde1731a76212e1a377d533b1cae212f36fafb28824a1a521fcafaabf4859e8abda3646565402658c31df14dbc039188c5c1b6 +DIST firefox-143.0.3-cak.xpi 389891 BLAKE2B 4841f036be6257953ab2a199b4000ba3405cf4a7d11caf14094a87170654576e3c6ffd4eacfc28dd7ae656544d26a795cf85b145d1842611b8c10b1c9f1b4b5e SHA512 7e8f38e69777d8c947acc3052fc9fcc08575e93502dcd51606d41a29b0cdb51ac9e67f2728aa56d31988401272f963751020ebd49eb59ee4eef7a80e44487068 +DIST firefox-143.0.3-cs.xpi 486475 BLAKE2B a779c7105081a7d5dd966e7726ec18316dc852d49ca28c0a19e9585f7c5c05985aa6f6444c0bcaf7a44bfc6dc51748cca0cdd1a51d3d3942e7a1aa56950d272a SHA512 dfeb61e36de0881edc62d1a280b3022d12b922e93f3d758bbf30c27d47f09e07c8307803882e1b11a38b14da4a84d47c3465240d2fa9839a6592f2547e29b977 +DIST firefox-143.0.3-cy.xpi 451594 BLAKE2B 655494ae94e04bbacd386ef25c6b2cf5f4c120e18a5940729ed03aaa1ff81927f0dbf419684732c3b39587ab6f15e5296bc14366208e679158f811769c6323dd SHA512 24b2844fc038e05cd399e0e1e6035491e83b2d2af708daa4326227c200c6b14e6e998bcf1d90330d4388adc00ec7097da63c3a7d9c33c9088eb3292bb632dbf6 +DIST firefox-143.0.3-da.xpi 439950 BLAKE2B 6d6057bac11b730a7144fb5e56c9f24f37b92e8a13e666f453fce3dff8d6c210bdefea44866f760db62b4bc1458f81d33980c333efcb11955665a57131f954b5 SHA512 a49b068c8be8390690c638a03af414e93655b67885d56bc06949ddeff1f096a809029412c38b2c65a3b9436c112593f1f713521ba85bb10007844b476cf35852 +DIST firefox-143.0.3-de.xpi 462265 BLAKE2B 51ab7daff919402285dc6326868a52d7b72fa3b3e2e4a9a28a6fdc4001943f34c8b23ed1e905b311bb417f54e42bae5dd87309094fc75aeb416d63c28cddc950 SHA512 475c7b84bf54e31d665bd9d10def0683cdee5a75a91931727f8eac89c719830db70fbb8a66685179a76eef96bbb28ccf870c2c7f72dce3f549839aa1cf4d3cad +DIST firefox-143.0.3-dsb.xpi 475815 BLAKE2B 05da69040df023bbfe5f64fa7d86440b7569e33546ffa40b10936b4edd8acd3305f06048d9ec1c19b15bf1dede041bc2483456a2d7f5447c58591c3e08af4bb4 SHA512 0ce746c6622020ff7341cd795a991f59d7b869f260a61de0c857750d5d7a52c761c8aafa5b0378dd84a320dfff8d35992e1fa308f28022c6ec7d32f33febf50f +DIST firefox-143.0.3-el.xpi 547852 BLAKE2B 4a65d0e9c858c7cb34d4a0f37360ed22fe38e6e57bdc8b65c276965adbccfb55fe2c9a14c6c74a3909f26aa9d2335497c1b092585eb01251828bad80a5f2d0d0 SHA512 0c27ad45f8e3fe248ef040764fe55c30440fec2e7ea9cd5bf438b3edf1e7c32c6bce0bfa31709fd5c2b72c2d4f68687022c0874a24e1726d2b1641f1d8978ba5 +DIST firefox-143.0.3-en-CA.xpi 416228 BLAKE2B 3b8e05419505e1190b6aad4dc8b741cdac8f0e1c756662c02d797a31db6d08e8a694be0152004a42e50fd9da6520551c898c7f2af13695207b78cfd8e279942a SHA512 22949495d5d399a4565d6747ebc95cab0551f12eb77635fb7c6d1b6b52c5c6410fcb74b11d288230dc02e46bd9623efe8af4f4002039e19fb65eaa9a5f028d4f +DIST firefox-143.0.3-en-GB.xpi 419558 BLAKE2B 43366f9579427a85aad296d5fc0a6923cf2561c696db3baab9ce695257e0ed205c30c9466ef61af1b9308891434f4acd07bd568f7d4902ae4bfc6a1c178d8638 SHA512 05392f8621538b5111f988668405d8639641cf0f2e1df8905446ec94dd82da54fcba13ebbe52ed7f92eba47a580722f3c2386033dfc148b857e0048145d17272 +DIST firefox-143.0.3-eo.xpi 442400 BLAKE2B 57b117fa4e107f45969700679167b52fd50fc1f04e743fa0827c68587ef7c852d0e24f1f95e15dc55ab27b8c63c215e5262fa90520e00ad90bc063a24877f0b9 SHA512 9373a1227c2db1047f82b65bda3fbeb607514b9fcd062477c7e7f141345c7e748519d77e577a423c077340d3bfcb1e5ad7ee991bc842b55eb9e1ca59cb821ad5 +DIST firefox-143.0.3-es-AR.xpi 454529 BLAKE2B 97283ba0f48e4ba889c6b544d33d9a4755a07569941404ff90c6fc530b6e5b4f60978ad89a400194adca3b3a46848328b42645ed388405a9aa1f0ec685aa92d8 SHA512 09664a6d9b37bbc949c84344f8c9de1f7e56f4e4d31ecb4a0e8b325d45ca56173235e2387b3996b558b39f945442f37869fbf01d4b41161781ecdc736a5f101e +DIST firefox-143.0.3-es-CL.xpi 455552 BLAKE2B 83024ab08e8bd50dd9959ac7bfc9fecc018f23b6dba2e4948a2929282a5bb70c364d9c169b53fe07bcc58b321d52e2deb01c7bac5f674980cd133140207db19d SHA512 7d3da90bfddf31d30c36982c277d383c9d5271cf8c212691ec503eae7c2b60dc87c3ecd4a32a826399d05f993a5d488ef45f8016e305f0ad41e383bcc51bf7e6 +DIST firefox-143.0.3-es-ES.xpi 450218 BLAKE2B 686b5fecb8f45f9a4ccd8423582882333a27fd4393dfbbcba32238ab70cc402432a385114ac8ee9b5bf55916c0cac7cb2d1f92bd5837a79dfa8638294f8e10bc SHA512 4dfa0801abf0b93dc783831a32532a6e9cece063ad8be0b74eaa3b26b90e83ec3e83af3c08deb72f5980524d74e8d071364e9ca87f23230062334fb47e5d83c8 +DIST firefox-143.0.3-es-MX.xpi 436514 BLAKE2B 74ab31d89f84094e4315874083e0f83073a612f5a332bf82e68239483607a5473305b46266df9ce0d2f0f9c5c14d4bb86cc70095ca994a00219aaea87eaff38a SHA512 fa5457d7ee96c1e4fe1408530efe4003167b94cee047e666bebfdba581bb656f0febf48f9202af8823f7f3c6f3c0243502502c8d73fa8d0ac353a9383fe4cadc +DIST firefox-143.0.3-et.xpi 358419 BLAKE2B c6b4bc3b0279e4153e38ca5d17024e71779069f0ad70570ac1ee860cb8b5b5b478b79d4e706dc37b9c60a9d098d0fe29545ee9ce6be78d9d1e7f0082c05efa5c SHA512 14a514237f60a9618221b8ba53c4ca1ed40bf2447e01f442ce9aeda8f7632406b615682188e6d6f7593e38014edda064dd0b9b3862da5fdba7560792c07f7594 +DIST firefox-143.0.3-eu.xpi 417834 BLAKE2B 60963328c04897bf40f0389257b799cf0ae3b18f4ab46ec559d68c16475ef0c497535838be143400c95816283ad829544d27783051446ec9a556533cfad57f54 SHA512 2388cb15c15b88a209074d1b58715630dbedd08d2d043c65e9366ae6f87d0a58105223d348bc18c39a5320806c83dfc86b82a989420375125f82af0d71fca023 +DIST firefox-143.0.3-fa.xpi 419536 BLAKE2B cce2dc7f4f803d0d9ef8798d531fc7c83b83502d886f9c075ab9e836ca99add9c217ce2f4a2cfb676cf849fa66e1f224fbb1e398b58e14e321d716cc36b02cc6 SHA512 f251e16de3a5d68db06ff7ddd468365ef1ede9d70c9f20eaec4ab1e1c37f3c02908767e536e20b5e5161ed599433ba4ba6d53f757aa94f08eeb6fed8dc2165e3 +DIST firefox-143.0.3-ff.xpi 309705 BLAKE2B aa7bb9c97926b8f5e3e7423d5130ee25691c9659f465e71ca223349ac19869db481b67b33c2956151021dc1c568dff8ff963c61e7a648d2cb845f19b94621fb2 SHA512 e0fa4b21a228a42cb1144db56592189e465f333fb3f7fc26a76f341b55fc5c776d8c96d01147c1ca9d7e1268d3eab3d2b3654fbbd072922c6fd1c348c31f2d2b +DIST firefox-143.0.3-fi.xpi 439045 BLAKE2B a0968ed7fbdad2b85909c620df7f1702a95fd11d1889729fbc8b61687e418811fa3cfac745be381ac90ba317dcf3d51cdba7ec9b43fb6bae69e3b9ebcbe8748e SHA512 ed402336b394790ef6e645f59923623798f243baae978261c567ef8fddeb2d093500190d2444c4d7b5fa41df517656540381e460b666904b646e6fe03f074b39 +DIST firefox-143.0.3-fr.xpi 468133 BLAKE2B 7d984c4bbd1b00cf4c2b32cb9f1a044974c9d94d8e719b44e94fdd8725c1eff1a4717470fa41f6582aa092de28ad1a1af67e77be9620e94ad43dcf5c145fe7a5 SHA512 7716006f8efdef8a6ac6de6b54013bb9059c5aaae646ea88d7605482f3447775a4804faf1e9288ec0fdf12940ff8e45867293ddb15b7025a4ee678f9b2d3cf71 +DIST firefox-143.0.3-fur.xpi 453033 BLAKE2B 12e97f245b7f797011b6177c98efd9990d41f6ba7de5507af38ed4b8c2a9af2e0630cc556cb08375ee815d23ab59fc62a67badcdf8616a4449bbab9dd13ca4e2 SHA512 3f15394aca1032d7ae80c54d829e95c8c7cbfc472d87b80df4f5852e3eda499e3c7494a80fbb9829da4d8a556eef9948dfcd6cfc5618bae66f3417cf31991e8d +DIST firefox-143.0.3-fy-NL.xpi 450110 BLAKE2B 9cc59367242a528b90ca58952721831adbecd67bb452caf6330d438d30609be4a915e9b630817b8d43d1398cee4c7872963886bc30af68f5cb4dee7965ba9598 SHA512 8368afd4f070279274031e217d5f6101ca98b1435630865c0e1cd29e70d40b71bb41a59b10482403e26d723ead277666ceb41e9b7274b8a9e34be3dc546867d0 +DIST firefox-143.0.3-ga-IE.xpi 315232 BLAKE2B f7200996f0810029d7e4fdcac833541242abd1f6aeacede10b2a9e7f26ee529df8e7ea0e07e5a663f7ca63950456e628ffe1fe669f4bf278eeacaf9cb420172a SHA512 e52f7472b92492b887746fc2b5dc2fe281f9c95248556eae74520ebe555f80085dfe8d288723f74ed70d2e18a32094fa520d1836c796cf0891a0e16d4aca6a57 +DIST firefox-143.0.3-gd.xpi 398246 BLAKE2B 01c0a02ef7958c819dd86afa5fd30daf05f1ca3a71c53f339307d8867f1d0b9359694e3632dfc4f5af4eaf0c67a113fa692418a1152c1e341bd99884304232c1 SHA512 62ed16a7335912c6a636e4f867f940bafa1e81af6aef92e4331385074daedd589c10a8249f8fa7f55ea38c65b3f42e81ba606eaf01f81a99bfc95bcb443e56bc +DIST firefox-143.0.3-gl.xpi 446926 BLAKE2B 9d4c912a3c2323fc963acd9d0181972e5b6f0c5e462c80019d50166e51dcdb8535493cdd7ead5f1fd8721168410da67804c2011e957876bbe22527ebd3295530 SHA512 96c41e41634c93e93027fda68d4a8fbc94dc7fbdb357084ec5bdcd97b9b2d3fcff176c65f0399b6d2229e7352de9ef9f7c30e088067e784760c8ca680597e8ec +DIST firefox-143.0.3-gn.xpi 457465 BLAKE2B 026c32dc46460ffb4f1dc2fa46df5a432c6c9a1d283e9a133193aa56cd3f5adb218f329a161605a7803ae0617466893b4fa521aba9362b1c9af1c9067e257c05 SHA512 2852024d361fb680c891978a9364a4f9686be263548af0260d9625903706117194417b4445466fcdb294680ed50eaef9b26bc2596ad3534a1102cc01631e3925 +DIST firefox-143.0.3-gu-IN.xpi 358193 BLAKE2B d6a4176f6e2367937eca35c8cbb279118516f729f7f1fe017ae89c86b4fdaf21ebd3a6f278f918fbe5b3e84ea903c797d3738c652539224975df4b8d600ed3bc SHA512 edd993d56e7a783633330ad28bf012e7fc970b2e31b838b0b69ee1ed6eb80a2b3fa4a82a8dd50b147229f59da356a33bd9259afcc5da88866d3e434e2c77402e +DIST firefox-143.0.3-he.xpi 454161 BLAKE2B a35e30e96fc0d863f94e256a9c7ed5f2d3876f95c12bead42cffded849219c0e96fdf8743a76ba570899fedfa8362097836a4474eb9a9e6746981998b411be6d SHA512 5d4851be59f3719b527332bf7685942b8bbb1a25b2069d10a8fbac976ba8939f27894b0ebc49076fa2d78acbb0234ff00bf6ce01196680a7f72e89646702dbd7 +DIST firefox-143.0.3-hi-IN.xpi 376971 BLAKE2B 1e66f556f4b057d9c4317059723881bc88f807b08b36ac2c3a36a968a42d9a88c8ef5318a0e6cdc35f1bcec75eb502766a370b15aabfb431c992b2dcd586587c SHA512 1e03a27e6a8a219855618180cfe490685a369fa37bd63df1fa4bc3f993018069b8cfb8aeeb6e9c298a6278087a672286e5cc8174a11bdab847e047f77fb5ea9a +DIST firefox-143.0.3-hr.xpi 440970 BLAKE2B 54e62002e3f6a56a8134651ffa3f5024aaf5a69b50cbb985b5554c9244666810d10bdc055b5486cc8cf4d02ade8603db3f1d44c11cc66ca562abc207b15cc4b2 SHA512 7deb4a3feafdfe03ae4e95843021a0435f7db5cd3f1549cf0a282a93661467ab74c02d5b925bd1cb8dd6e002d7b0b1583798e9c222cfc38308be5f06b8f51481 +DIST firefox-143.0.3-hsb.xpi 472365 BLAKE2B 5e79aef383dc40b01ea2583c325064b9c66b1f40a7942a975e4ffde9b107e8116a6249ed70957164a8c83fa788187784e1bd634233571c4970cf4fb8bf3aafa4 SHA512 f6be9f786f5d4ac34619d094e2e1ce5bef7c1b43cbf8b7568343e770672b637a432a8f16c772a3cf2d91f2c8f9c6ee756af5cd5871f0eaefdcfa48116a78d4ee +DIST firefox-143.0.3-hu.xpi 474775 BLAKE2B e0a97b0dc5cfeed49c96ab13f8fa1f13a9ddfa12f8a33cd3f954650e783cc418437bd4986726f04748bc932fa0364074142c823371f019cd6e437a13c22d06d5 SHA512 3eefb887f973d6030a57cd9d74ff2d5b74e02aeb6ecca477bc193074d9fe82419018a0a525219a391bba5ca29664404fe7a12cdd7b621032f528cb2d393c1c25 +DIST firefox-143.0.3-hy-AM.xpi 460122 BLAKE2B cd7a1cdf8aafd7a764962bb9ae52b846e8e3deb2cbb738ab347631ea61fd1a2b7682520bcf0117b18037f4f80a4e1728403a2527d042ec200220588beda311b0 SHA512 dfc129526ae2f69340387ec5431632599e4a5d1db805c03f3316f6f945b2f0868deeffef8de25f2d69537d55a76b0c0be8fe477943b9d8199b2f9934a180dcb3 +DIST firefox-143.0.3-ia.xpi 438873 BLAKE2B 9d0103a385eda75db99d39737ca981b84c616bd451ddf7e92d268e0cb5ed4baed04cfcb0f7e6ad0a1feaa41803c6a2d2edf42b51f4b716850ea682f5b0841851 SHA512 e331f255f033ce1747dfd37176ae9fb7b7492bf2c210e45652658fa5d3f02bb28a26e741feb03a967df43c26b5f147ce4aef3b45dc71278f4cefedb77627df8e +DIST firefox-143.0.3-id.xpi 420220 BLAKE2B 1f52e09f4868a0f4d2c80795a997441f9da24375745656ea6823b42a50eb520c4eea6173f20ab83c366882260f49b10c86b999dcbac22d685887ae41cacafdad SHA512 8e47f0bd3df4e22fa7fb99f2c8ff118b2f227d1eb1f233e0b5bd69cc291b553b33434b71fa14353ba65cfcfc72d5fc15cb04ec982dcf357aafdcfe17c7717954 +DIST firefox-143.0.3-is.xpi 437566 BLAKE2B 651e262f7b9afed7109c4561081af1a6f9719d6f3a5faf640650856c3b7e342ce1807601ee7b8e50a2998fec9036c4b98fd1692aeb77003679c2b78b254c29cc SHA512 cb56cda076e934d124e3184bfb2948d386a497158758e8d6fe67e58cfdee2ecb63453fda987eab4f274dee79d0fe926ab46f75da4e8cc5760be89865d272a955 +DIST firefox-143.0.3-it.xpi 449934 BLAKE2B c9de26a8478c24341765ffb29dc5f04a413a2ad056eb79872459b8f44e08b9ae618186409ec9ecde960ae3a9b1cb97f620287696c2d22982d223b496d77a0833 SHA512 d132efc9474940b38021ebab28b8784c373516e0a86a2839c50f994be0859635c3c9ebea41a6b718208ed7f6df363f88d826c7b5e34e4925e2028a680a6d713e +DIST firefox-143.0.3-ja.xpi 490520 BLAKE2B e90db8ce06baede8b1602f0bb82fad8d701ac95192dcd0e922930067ea9cf1520045c0bf22b578a5dea70cd89671cf171f4c174c6d87da44ba62cfcdab7492ed SHA512 20f99026545614edfe5ff5c9fe182c45908ab30a3277c0a2a3d80488162c275c0e8dd342c12544c53d73c5baccda75bd6420e37c8c2f31472cec678fed58e95e +DIST firefox-143.0.3-ka.xpi 505915 BLAKE2B 592654ef71e5ad139b4c887ed8f9cc1b85d8eee9cb14d25f7b59ef4b5b4da677fba11cd24b2b80ad61981f277fa99c497d49e5400f798a5870cfdae74eca5c76 SHA512 6710ad6313290a12ac7723e2aa92de77edd4892bcdb1482549082d02acef37d0896059b18f9c2fe4c81e8d9320a4be3eca84e286c700fc999c8778cf2a8d8ccb +DIST firefox-143.0.3-kab.xpi 421882 BLAKE2B 9fda0659320a8bb6b7e3bc478dfdc93987fd3dcadac724c1b4309ff66d98afe05f5aa10ee6ad079c7acf4e8654da8e21347417ac50746d4a3daaf50b8c60d3d8 SHA512 b74760d64bd3fe546ee6b3acc4f542f434f023860abee693f8773411b27df788c72d071fa0d46a37c47bd21f40b5f4e984acaac0b3f8b787e4e8d996d57861a6 +DIST firefox-143.0.3-kk.xpi 511551 BLAKE2B a69c9be4aba3707eb3b32fba11796e9199cb3ef553cfebbfdba0be63f050714743495ee54ba6a4add0ca1908932579cfa003baacc2793e2839ccf50dabeb52f7 SHA512 a2b4c8ce68c8a560658dd4edafda1c253aeec14dcbbadd28627807325357daad8ef5c5fb4d20ccdb87352b3dca44cecbe67c7854aeec34a34bb0bcb6bcb3359a +DIST firefox-143.0.3-km.xpi 347494 BLAKE2B c68280ad6f42ec1588b5e5a73be3c14be4a3dd47ad0fdaecc4c26175694b242be8b158fa728d8254cf25769402efd309f5620d1ab8a238597d919bbcf6daba89 SHA512 997463f7fcd1da67bce033fce9922cfab6bb4f73e9021feff6fd42f0a57025e2bd336324f3ba0629aa22658b7d2747c843f6cb542363763db86afa089510c85b +DIST firefox-143.0.3-kn.xpi 331738 BLAKE2B cec7212f49eaa7fe48eaee3206291f08b37054cc1f9b99e7e6be1d612d448da39a4677314755c67a2ea7e9f621db09ee4688d171d1fecb8320ce1111d070f110 SHA512 dba728a5507cbc59cf4059212e911044a8ec480494587a0a1c30837958b6c6dd919c20a44cc7f9f1792ab06476689897db0ce234a4874b04e4935114ecddaf6f +DIST firefox-143.0.3-ko.xpi 476763 BLAKE2B c1e374b9b7359fc39ea45d8bd63fe76f429575a0e90c36cd682c5f3a7527eede7cd46754dc0f286c36e08b9d0218bb840b8fb172027e969c55649c43369d1312 SHA512 ad861537458e2e15036e1a2e92a5cd23e47084b3fb6bb42e4b98642dbf48d4dcc97029c5edde7b3210e34aff26198d9ba57cc37a2d08b52d9bb5d42c8bffb659 +DIST firefox-143.0.3-lij.xpi 318952 BLAKE2B 0f6d455e4eb509bee577392d27c3e7d43f979b73b5e32ecf9651d1069ecbc184059430a0c9e766e155d45ee8185fd822c4cbf91a06a188016d1cf5ee047b2942 SHA512 e0218152ded43bf5be66f4a683dba1a06b278e4c250a991831461ca5421d524bd7b8bb74ae314ffc79c530e7cd41ca1cd732e5699eecd3a36392e367718d66a2 +DIST firefox-143.0.3-lt.xpi 378952 BLAKE2B ba84d05c34ac0953982f3d5eaf603364f00942b72d379349c904319e84009028cff13683cd38f3d0f2754ca868ed7d5e1a840225f86a1e0d91e471745d6a1822 SHA512 79d717752d9edeecaedc2220e2eb3c2fc647d2a0ddcb2138d19fd33de4e53deb32cafd45986c2160b730054f112915e75549902656e6b3a2a84f5aa349131217 +DIST firefox-143.0.3-lv.xpi 385388 BLAKE2B 9937acd800e3eaddc3b958a059ad816ab2f7aea5491c18b17d83bd613a174511f2c4563d4a77c4a5df6f2a6393522a4df6b2543297197dcee03aac59dc3a8bc0 SHA512 67ea578950207b8ad97c65c4f1aba098d0705551a87c64c7891d68f0767ad6caacfb32b47606ac897f02cef55059d6d2aa5c906c463fdf05162fd34d42ddab16 +DIST firefox-143.0.3-mk.xpi 316223 BLAKE2B 9a2935aefa9d2721377506f43d881b09bf1f32ff096a6488445347ee25e8402feed8526e7b0f799eb95a07cc7f8d8e2dba5f42a8140ede69a862c6fff32022d7 SHA512 df40f93a9f9e0e6b489b80cf7682b0061d32a412eb0d0e4743d9b2bd6ecbc92e6c897ab29c20fcaa81ea68fe01ab4c72fd0d1f3e1a801bc3d90d28a8bb6a22f4 +DIST firefox-143.0.3-mr.xpi 355943 BLAKE2B 2868937c1cd06e4a7db502ae7e00755141b4a180d828120e4bf3785aa86ec9c660a09c077428372765ebd85dcbd212c9b4e830c8be628023f755b4b2b627a888 SHA512 65a462567717107cc7f031908e194b77c5834ecd18ad00659c88693af1c34dd21e3177df9cecaa9c3f0cc5302766e2190284fcbb5ef0837e96b14c11318e84ff +DIST firefox-143.0.3-ms.xpi 295318 BLAKE2B baba1ddc09a58a7127435de968d5082bbda120639bc65dcb9a9f7ac7d44ad6bc439083e1928f7b2214fd7e95ab242924af520807061f3a7b53d3cf333d383bf3 SHA512 002d0b7ae36a2f5b66055da6c4659d69872d244c1d871979519ac544b3b4ddd9b892e00242c9d8ac217f9b52aa7e70f893f109be85ddcb9a6346a3ac9efb31ce +DIST firefox-143.0.3-my.xpi 342629 BLAKE2B f8f82a9ae7798c68a3f3e8408113e41b0138b3a565dc5ee86a21c166a30ac44157790b465ec56a2236fb7a48ecf6dd6b74fc13a7e0429c3678db82aa32cc5f01 SHA512 6798b4f958eed3048932c603f8014065a7109ca13cbcf888a3aea3f03049ba8b4a1e76cfe24580b22ee13985977cfc65868160ec472949027435715f43d423df +DIST firefox-143.0.3-nb-NO.xpi 438217 BLAKE2B d755e2f4be798cd1a99719fd134944b043d4086d379637f0b8784798df469cc5d5f3cf7e5b9b1eabcfaff24316e4b3ce741444e050ae5a1d86ac5d81c977e92c SHA512 2e8d6d263c08c37d69adee867b9bb887296c07157baad1cc817fae5ccc91a75507683879c863533385abd8fdb654ada266bf53f8f74947d7d042abc78f819ac5 +DIST firefox-143.0.3-ne-NP.xpi 348038 BLAKE2B c0f89aec0460caaf7ed3e62b763a48aaef6b8acd4d65b5e86415a2ea092a0bab6650eb38cdea817708842c2cfea26cc40412b7bf7f48a4554113c51f4435f95d SHA512 8bddd8679e8d2482c2883cfc7cf75fc27bb2401d9fcdc117b68c41f6bc1b7dfbb79b7b9cd4c64c8928d06f59d20f6ea29f479b5456c8ada4dc8f75edcff02d29 +DIST firefox-143.0.3-nl.xpi 445047 BLAKE2B 9ab45c92e75e495435fca5c2e29aa01a4b6536eb015b03ca95ca8a5a30dc2dd45fbe6efda1c2d91a23cd3e190abe7094f48d71015abd39e49913403979464647 SHA512 6b7af5cc69253e37876d04ef81f67e53d124fc0c35cc87874c3c5fda72102624e493c1b10c428ba868fe8e83c6a510d80e7607b108a263e78d3c7c6362ae8df4 +DIST firefox-143.0.3-nn-NO.xpi 441296 BLAKE2B 89e5f748d70e8e7b342d035e8aca7da0c591ef5216719cee2f7a05e0049167f5ad98c99e29a91aabf51ad7433758b7cf88df7396cb6a3dac05e9e7620532c802 SHA512 2c1a736a3c12e8bb6081fdf2867e606641c6280ed87c94c266901d2099a945abfb15b54870b77109dbdb56db7eeca3ee490c3a231a8e29b68e68449512ca867d +DIST firefox-143.0.3-oc.xpi 409866 BLAKE2B 028cdcd513fc5c591331bad5941fc00db92b494118e12f5e1405a661ac50b0f7f5c5e33404dccc161b1cbc65fb0c952670812cd8d4dbe787fed0b1d346e95c3c SHA512 e7bbffd1a56f675d97489f75c65e51ed89f271bca9ffa45ba4a527f8cf3adc75176c7f440a2f6d7f72e899c11107c5e15b54d67e727847d6b74a02c29dcf8ff2 +DIST firefox-143.0.3-pa-IN.xpi 501826 BLAKE2B acde1efe9e4aba038968ec8de37b7e54655e6064e47002e7143b90f9f591ae0b2c7cff52f2344e401eebe10f0d90c2e0fd2d84e4532211bdaa87ba82eb2cbe2f SHA512 3a86445deff5bb0700665e48d098296c2cee34e67e4eac0a845de0c214d0be8802763f80fad809f3907abcc4fe4837aac6487f2d8d1694cdc7fc971863f84878 +DIST firefox-143.0.3-pl.xpi 469321 BLAKE2B 825245590dd13ccd2f9134e2f5cb4166a74e4c7015294049b0dcc19368b5271c9bec59458e746489430f6ec4a14eaf1c63cc63f5c0668f21a8970383ebfa993e SHA512 979aa50720003a10e3c635461389579b48e67edf0b84cbf9bf40b928b232fb66476a331589583bc5d1c967e2a49fac72c5e1327d13f7ee6ab3393755d4ba8503 +DIST firefox-143.0.3-pt-BR.xpi 449665 BLAKE2B 3523ba0bfed39bf66cb6e7a1dbd8e4309cfa69e06cced64e79c9f944652aa04440ccc4d4a8aaeef327e0a2a6444e88209de890330ea739ae9b24e2216943ff66 SHA512 a79a0d65437a2a336654a1a826d37f3e0aad6be4648a6cbbb70d61be0323fc7f872d139eb536903c31d60a0429cecae123628790e39a91fcf4c8585c0b8a30d1 +DIST firefox-143.0.3-pt-PT.xpi 447694 BLAKE2B 096d539aa2ccc66ac14d54deb5ea6d02d62364f4c38aed79171f402c919a07a912fd3b3645d1172e4a1a1918ca8155b7c3f369c6763f9d67b433e6d86008a277 SHA512 e03edc9f433d4d89e169923e405e35822f1798b10dce1f125faf4c58a2d2f2d7327df0cc888400667200f0f1d28216ff3842f0181584e84a441f40f505982995 +DIST firefox-143.0.3-rm.xpi 439784 BLAKE2B b11058a0f26391ad324e833473b0ea74082579e1dbf0914e658855873280aeba2d20a1d5295be114ceefe55634ba659cb2270c4dc7e4ac218c168411e668a21a SHA512 7881e6ed565afeba42c32acdd7b23d745ede292e8d04a116880c5ce2bc213160400a1cdde56ed8407c14ac30d13eba59c895e01f30e8bbec755a9a45ad53637f +DIST firefox-143.0.3-ro.xpi 462110 BLAKE2B 859379fd2eabe98e52ce44d3715a78ad79306f39ac3653e62861777469c212abb75dd6ab3736a90e94b86e8b8bb22ff1034f899b83aebbe6077cf06ed31584cf SHA512 de68ac672d768b57e401cd33132088626711b6b9da863a5ac9a9a395d89965aee87bd9fb4e264dfecfc9fc5ebb03b4a9066d0c583bca3cfe2e6d5cee7782260b +DIST firefox-143.0.3-ru.xpi 536220 BLAKE2B 73d35c03f90edea1b05a3b92ec9a89b3374adfc6d98b6c4af9d29a0be54ba7240a8f60c07151be50602decd53f5ff2716d13abf2bdd6a7a5d15fed714777ace3 SHA512 a0ae18058a48464819a37326985e57b7b9c9c7224609b0b2bf094dd3938c61b674c32a630b48b3a7456fbb122426f37924aa2a210a5f3ca75e88413d94dc09ba +DIST firefox-143.0.3-sc.xpi 412120 BLAKE2B ca4e63f79b55fe447983727635cbf1c3e78ab69fc491ff5bf1bfaac839388878b9cb75b68241a35cff5c92696072cd153a979da983378a25915eab5fcda3698e SHA512 10b3a69fb3596c81f185a4e27eb31ef7c00b8cdf6a56bf13a80fb61d3e53d14d181159cdd691a9740a6c7c4a321e575538a258079051ae345807d490cc660406 +DIST firefox-143.0.3-sco.xpi 321933 BLAKE2B 1993de29312157b626dbf6804ec85dcb64c73992ed4263933a823511fb5da49a4084c691a98a6a08031544511d8eb22a1ef7c84a1a96c747f6010dcbf0210efd SHA512 d1b63aeb049e8e5f1bd6d6d4acb5518f40cde8cd1de5391d7d6a6357b4e6c961357ed819d15ffb7c6955b0cc8fdbcdad9801e7e5d73c9a285af44632364cca5a +DIST firefox-143.0.3-si.xpi 410411 BLAKE2B c1c804ad49e38d476efc159cc0b917b40dd18186016bcac250e7d3e2d8e3ad3562af6a09d74f93826f645bf649d1725f9ac286b61c2a6930ce96947bbe14a968 SHA512 38cef8b806f9541eacb6f64e26c5924dd9185758b7c0aa0d81e308a1ba18406a603146e60fd7ddd9f5fd9c0675212d218091236d15367592097ee9cee602773e +DIST firefox-143.0.3-sk.xpi 478168 BLAKE2B 2849684be6d229fcb4c5a40835250042b4ba0c86b6544e3a36f8057e5a8edcdb11b2d1dd41a77de3ee8d4ffba675069b48480356fd9354e95ff85ff3586d1653 SHA512 160458e7c0a8a18bf9f4e676f3bcfbd8f5d1dfe8b161b2cbc8db7cf4c086414cf2b1ead6b93477e047d50d5b4242728e335767500fe632123e6d8d5f5f20993d +DIST firefox-143.0.3-skr.xpi 484380 BLAKE2B 29840ac7c4f0f2a0bc8edaeb957c2960b0b14216c53c8b024db10e55fdcdad12c0cb77dd92f82b53edd3560d492bd0f8a8c68963d5bd7c78a1bbe3671f5dc745 SHA512 c4183442b2f7f83c690c9b4a1188a61c735a8204937302b1d048e447fdc59ad893b78d7ba73b9f22a4139c02a1ec261dbcae7498531be162f1a75f981687fd84 +DIST firefox-143.0.3-sl.xpi 449561 BLAKE2B e20fe10c110f93f6507d3653efb0c107ac1e2ce8446ec8640e9b068bd2c9e36e012ed145fbda54a723695acd40b6fbdae3b4d6ff97682043139a72c93986016b SHA512 ba834989906a5eecc3625c16a42087a69f4aabd6153d4e651d9df5ebb7805f1a87a9bf8993146795156cdf13d814b51fe30bcdb882ebeac34e3392a91d1b3423 +DIST firefox-143.0.3-son.xpi 273704 BLAKE2B 6e940dc08faa9e86c60488975585b215ad6c58c1aed4ff1e050cd25a7c3a1fd0be0d815efc0a69e1bb194ba6ac5ee6b000b93ee80107458f0a263df920022ecd SHA512 a41ce80422572d52e931e54fed9b80459b546c7ee6163f84f47e373b869126258ec8da9f530a1ba73cffdfb4ad50ac7d5f59b93d48ddc86fa74df4788e8b9bf8 +DIST firefox-143.0.3-sq.xpi 451510 BLAKE2B 2e415441af9ed9560d64b0e1aa94939dc1e93b213914862ea9e048284cec65ed86f87c600f3a9b3dff89f0b8a3eaca888e7ebb1c2e69d8ba200e359de405cbaf SHA512 dc83b99e195d9eeb8db7fa538a8f0251bb3746cc424e92b26194c039a798fecb5dd0c325d20553bbfc5dbd42deca9cc16e316cddd3d5b564dd033eb9fdcfcaa7 +DIST firefox-143.0.3-sr.xpi 452195 BLAKE2B 6dfc08e5f25096bc0830bea9689922fdbf9a392348500ca48f1f953d0b69a59d7c6fababa91d0dfdc483b64adfdeb9df0ce308dbc415ae4c2da7e35dd838b689 SHA512 573b8b95106cca6c6be97805250d694af14aca617cabc969842c9b5e22909aeb74be599835ae268130b075f54a440e7402a2a09df212d4423aad8cf22fd4ee7d +DIST firefox-143.0.3-sv-SE.xpi 444945 BLAKE2B 31185574294eda1518fc6b8be888b5b3a50c4655c31140f8be23bba794c30017f954a015fa380944ee394ddf32a88b12822c4eb0d1d3a8e86972e12dd826323c SHA512 c1ee974d739e49ca527ced2b9c2a5e80d90e0cbae762435c40b45d92a7daf44e7281a162a217aedb88df0aa34e96da0c3e4e6393c1fb18fd3b1a8b291634dd5d +DIST firefox-143.0.3-szl.xpi 340488 BLAKE2B 2c14fb1edf0a0ba414ca44dfb1f13c5a0e25848a72df83065d9c035f82e6633356bc9df2412103fa9dd8d74fb73fe677455cdf24e497ef6b720f96ae01f50cad SHA512 e4b756e476a820f1eb032f42011b978800aef3cc9c73dc0d650240233a3177a41d4b9c72519289e7dd50c268e0ce8ddb7b7ff631afbf9f5b654496f3b9a29e98 +DIST firefox-143.0.3-ta.xpi 337905 BLAKE2B 5a4b9b25b643ac708ab0da4a782eb631eb3a5361379e5b3dfdf474c459c39e261fc728ddfe6c6f0a375f6ce1ac44474d57b30bf689c7b7d0f9e2ef0cd61c58d6 SHA512 06ad3e36170157df8309118619e2013e3fcc620af69ed343c4e14e696f7e4695797b5f9b21b682b0e669c7f09ad98e602843f42b7d9a3dd219d8e687ae6c540d +DIST firefox-143.0.3-te.xpi 381293 BLAKE2B f69a7d918e98109415766d9052e5177f0e13139c94fcb301b94f4a74a2dbd0649b306c298ec05c661ee2294b9d70054b7e84005f167e9fb17f5b1ecb73e8d891 SHA512 3b4eccde03413a086310654bc1c5a759b37cea465a4c44e544c178df898efb4bbdc66c1842548c2c251fbce7f5c329ed8268a2fe8b761ab9206e5927d0a81ec9 +DIST firefox-143.0.3-th.xpi 515813 BLAKE2B b3290914c8c07b46bdd951eab3f92e4e695859cb7ac87d2e268200eb27307bb3bec5714707d222abba0ae284d0a290e8211799f4a680a75216598cfd63842b8c SHA512 5bdaf1d604ac2120abee1fcb1b08f9dc1f979b4ff40d8b7bb24eac5fe2cbaab7add52591446accc0af2d22ed766fd028db70aa1c7cede6091b7bcddb01f1377a +DIST firefox-143.0.3-tl.xpi 355794 BLAKE2B 7898727fb9df5f2e788f3228042d0092b9a75a99f3105a6dd51656e8dbd7e872dcf2a706978b0bd648c86f8ea9b9ce29291d587acc68b5483b82acd31594fe4b SHA512 dfd62d29e5616ac61a836498f204211b6a89a403f98c3cf1906fbe872cce06ffb716ed5f86107be775dced0c9f2c9358311142514c98710edb0b7e4b48934475 +DIST firefox-143.0.3-tr.xpi 458334 BLAKE2B ac827a1fd337de06fa707819e8936d93641b9ac19e84c4ed2dd5f0d2d4f816c0099f0ff4095705dbb7601073b2314c8d5ff6fc37fb00622e3181b9cf6e716ef7 SHA512 f697361c63e50695e442e77c80e902fb3002d715c17ce4a021a9a115e77e92b73221689800532464d10917c23e6c2422ed56e78d663b43242c5b923395dd4ebe +DIST firefox-143.0.3-trs.xpi 323374 BLAKE2B d9fe61bcaefb751ffc07b7268baf1dccfa0f493cf624285eb8c8bea0742a4674d3ed0407b3cbd41a3785bfdd823a0b18ae295027a719e6c3e567e8028a0470c9 SHA512 59675c092df9e6fd4920eadf5965101aa15373f1987f0282f3a34ce125271bca73b7c9360a6e44b5c42f1bc20f397c6e43e8c51fc229f67feb1a1ef5bba52c09 +DIST firefox-143.0.3-uk.xpi 520592 BLAKE2B fdb1fc0eba7d0f518a2b931963b20b45571cf777a808f96ec3c395542686406b4aa6785e9aa46a7ba356b640021ea203e5d4e1e044a6934354083902553a7d70 SHA512 4c14fb6d51ba52a26b9ef435ce766218090732f5629843428160ef6aba63c2451c8bf12b9d4871115c374379ba7f76efefff081bd169d3520be046846fb039ff +DIST firefox-143.0.3-ur.xpi 369802 BLAKE2B 96bc5c5995af214e39760683aac5ce8706ee44d409d3838bd4a3d206785c2b9e933bccd9f6f60250c064abe7a87466331ab613119f3eab41314173d60aba344b SHA512 e5dfa381bf646cf3dd647ab4fcca2e8a3931f75b85096a3aaa9882ac24208dd207e58525b002d2880222b0f79dfe4c99ea2f4a33a20ab37a12f2a846dff62994 +DIST firefox-143.0.3-uz.xpi 303392 BLAKE2B 78f0dc8e04e795f4cbeb90e4b6f4b857d4e903126ac6489056321af23ddd0576d6782c6954dc98e7c9d8434cbfdc0037fdf2d6d34aef5c11a27aa8b62c48253d SHA512 d59fa492de646b568cb1b76f161059bf6ebde6fd15cc305b1f7cbfef58517cd948316abf7e7af0f4cd6f08673433cf59ac3c381fde993b535ede22da270b7623 +DIST firefox-143.0.3-vi.xpi 478447 BLAKE2B 35dcffcc498e623668a458d91df87028e652c5210361bfaa824a5a303483b4ee3bc171135501e7795b5074cafb774b026793863f9c4c38f7d9368f0c8721a43a SHA512 68e6d069c48d4bbcc58c1bab6698c57fe72454cf8ff9f967b06a66553dcbeee647e75b9d0e82bbcd4c760c6ffb0f39c6e10850a91eb54c045324206ceae13e24 +DIST firefox-143.0.3-xh.xpi 273370 BLAKE2B 786ca5402e05ce37efb29c15aaa2603942959e3a73182c557660b54cead522bd86a88adbeba194dcc786418e6fb752a39396ad46e25bfef01fb76e1ac65cae27 SHA512 101e915bb64494e3285b1a008c826edd02e8def5b04b4e9f6d038a6636fa9d1dbaaf98da59321abf3471001c0b6021fe3f2b43857deafff0b300004ae1c262a5 +DIST firefox-143.0.3-zh-CN.xpi 469414 BLAKE2B 219d65bcfefe34c94358e6da7fa2cdacd534870f6c01ffafce03b3307246537b98d4a4f8d9c486cc899913d8b2d4d8ddce3f2a36e1e86058f0dad112f02abadf SHA512 9191de6a5f604424c863eb5fb70ad8698c66a9fe54e1e07fdd0b0f9301f865ce21f5eb75bbbc7daa297b8ee551db76d967a32b02d79dfcefe6c3c63853de665c +DIST firefox-143.0.3-zh-TW.xpi 473018 BLAKE2B 27097eefd694e72c3c6061029aa802195ee7e5d58e6c138a870938b6c1ab0d81305b330d501fb4a8f121ecc110463043b82c5aa9e54c310d811a20049b5f6490 SHA512 3cb79077a9520e9b012b0da8b9ca6bb53b397a71389362770736c08274c5a113dead439ad5193972f5633849fb71ed70f0ee9bbe7572872b7cf4332c46020253 +DIST firefox-143.0.3.source.tar.xz 647600856 BLAKE2B 85cbf8bc58ebfe0432b55a86bc4dd15773a2e1c5cb6aefd15418a20725c3fd12f22a06483ae0003e2f8aa41fefb8a4724d1b5fa6e260a5a56ea612d3f053373b SHA512 c092bd3aac79f856a804c908b76d40409ce052b00176269ea3029b5a3a6885d4d21ce26bd76c9ea13827ff75459b6b4b0566f5aa49035ac234ae5890c67845b0 DIST firefox-143.0.source.tar.xz 645597188 BLAKE2B 3e71ba1d711c2f48efb693738efac3dbede6625c2c3a038c777128635ea39e39836569c205540561e5f65a26eb460f3aa84a60d70df4ff728add043e10d62fde SHA512 49fe5e5dbb7539be3e4c517d3cac453ea9b739e61040c4ac1abcf3d6665732fba5ff91fb040f3c0294af0f8c2824235a94e60ac9c26e25cb14d89d4b50c8a911 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b SHA512 ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95 SHA512 716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766 diff --git a/www-client/firefox/firefox-143.0.3.ebuild b/www-client/firefox/firefox-143.0.3.ebuild new file mode 100644 index 000000000000..85e78cd79631 --- /dev/null +++ b/www-client/firefox/firefox-143.0.3.ebuild @@ -0,0 +1,1395 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-143-patches-02.tar.xz" + +LLVM_COMPAT=( 19 20 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.82.0 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=27.0 +WASI_SDK_LLVM_VER=20 + +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" + HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.firefox.com" + SLOT="rapid" +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 check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 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} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.27.0 + net-libs/nodejs + virtual/pkgconfig + 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-wm/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.115.1 + >=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:2 + x11-libs/libdrm + 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 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-76.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[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/libXrandr + 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 + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# 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 "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + 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+=( skr ) +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}" +} + +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' + + 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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + 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 + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + 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 + + export use_lto + + 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} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # 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 + + # 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-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || 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 + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + 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-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-pipewire + 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 + + 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 + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + 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 + + 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 + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=tar + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + 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*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + 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 + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + 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 + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + 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 + + mozconfig_use_enable test tests + + # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; 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_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +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 llvm-core/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 (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # 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 + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + 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 icons + local icon_srcdir="${S}/browser/branding/official" + + # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date. + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + 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 + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +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 + + # 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 + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + 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 +}