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 4B790158287 for ; Wed, 14 May 2025 10:10:31 +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 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 2ABB034368B for ; Wed, 14 May 2025 10:10:31 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 6A86E1103C0; Wed, 14 May 2025 10:10:28 +0000 (UTC) Received: from smtp.gentoo.org (mail.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)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 61DFC1103C0 for ; Wed, 14 May 2025 10:10:28 +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 B0BE4343099 for ; Wed, 14 May 2025 10:10:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1E9B62030 for ; Wed, 14 May 2025 10:10:26 +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: <1747217347.10fc8f8c6226c8e26c1e9e350153712ed3db03a8.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-138.0.3.ebuild X-VCS-Directories: www-client/firefox/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 10fc8f8c6226c8e26c1e9e350153712ed3db03a8 X-VCS-Branch: master Date: Wed, 14 May 2025 10:10:26 +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: 4024f9ea-bb9c-423e-8634-5ecda3e647fb X-Archives-Hash: 7a2d888becc1d3e1611ab923f507b30e commit: 10fc8f8c6226c8e26c1e9e350153712ed3db03a8 Author: Joonas Niilola gentoo org> AuthorDate: Wed May 14 09:58:00 2025 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Wed May 14 10:09:07 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10fc8f8c www-client/firefox: add 138.0.3 Add 'jpegxl' use flag. Mozilla has declared they won't officially support the current implementation, but someone is doing something keeping the bundled jxl lib updated and making it compile. The use flag will be added as package.use.masked because the support is very lackluster (no transparency, no animations) but the basic stuff works. Also, the functionality may break at any given bump so no guarantees for now. Remove "bmo-1961610" patch because it's been merged upstream to this release. Closes: https://github.com/gentoo/gentoo/pull/41740 Closes: https://bugs.gentoo.org/928126 Signed-off-by: Joonas Niilola gentoo.org> www-client/firefox/Manifest | 102 +++ www-client/firefox/firefox-138.0.3.ebuild | 1399 +++++++++++++++++++++++++++++ 2 files changed, 1501 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 29dacb9e7e5b..599f690e4978 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -408,6 +408,7 @@ DIST firefox-137.0.2-zh-TW.xpi 465652 BLAKE2B 4c26831c1e4633d7ae44b9328b4e8123e1 DIST firefox-137.0.2.source.tar.xz 599825260 BLAKE2B 2484e141ac0a3ffaace0991c126ef53adfbfa3a4c6ac70d7c54bbddb34a01146d53e457190ab67ce74662e4605ca21b531521c3a1cc7bff66e742d063a26bb33 SHA512 82140c4325233ea2e2f579088cebb98c0e8db8848b4018cff95d4ed42bf847049ed6520fc051d930ee267a5acb008908170825d381589da0d109ca04a61e1c24 DIST firefox-138-loong-patches-01.tar.xz 2948 BLAKE2B a88a68418b747206a50b3c7d90c447aaa2a3ae762d7d5d32bd03f3af59d0b9051c278de8b293275758844560f1f275461afbc07e40f449fe5060d47ccd5b0938 SHA512 cd80714cc7142edb1a3dd83a7ddcb11e65f6b3ae2c44c299a6ad6a7636514cbb0ba8bf95446553c028b3a80713825110438727c3308c810358b2483af3340a24 DIST firefox-138-patches-01.tar.xz 13492 BLAKE2B d88f9e457e549e2fa1e14dbc2d226affe723008bab29627e09b82e84262f468995f9e5821a76dedffa53eaf5c77b4dd18ef0ff3ea48e73dc752f12bed2fba890 SHA512 dc99145fefa8d4bc08627098cd068a6f4a4fa9023abe256f6cf8f60de8f9d88c9d6f981c5a87f688ec2c190015e5d06148ae49a78a0326de8d747e2309e781dd +DIST firefox-138-patches-02.tar.xz 13236 BLAKE2B cda86ec5a89d591e7a294cea611ecf84483e28ddca9ea7087f4161ac7589d2e26255a7a1e78e3690dbe97adc5a2d07eefa3b2d2e032eea82f6722f9a6089dabb SHA512 0211e40595a59db168ee6ebdcde398cd9cde6200306ad08633235d8a85bbe367c6a5cb758fc4a9a646af7c33f6bb9a6cf403c47c62be954bc35949356d1e9f6f DIST firefox-138.0-ach.xpi 295292 BLAKE2B 19257efd78bdf073783fcf4e3e12d914a6b4e7a9aa1f7d1d24b5fcc3db6194b6da5bdb4f01c5c5fa92f9d9adb141d88c7231798c78862c7e208578d114b7f3b1 SHA512 c7bab3ada86d19b9b8e7ca525a664349ece591b5d2c69b40f1bc0d2f515482e5cd0f550b9a2eb0da9e6e5d8ad9aed5bf5424f4af9cfdbf64fadf666554e75e54 DIST firefox-138.0-af.xpi 267285 BLAKE2B 9da1eee66843c0e06f59a9f4f9004ced00db0a1f544dbdf4f160e412056f10045d40028da76397a238507ee617826f34d6e72a49cdb3548fa2417228c51108c0 SHA512 a0e9dbe90a81dac2beffeb1667b0738cb4dc1298368db4db7ca4077b4546a7a8947c98ac1298e058b6d5291f5b4b4ae793e0f8ea32571113594e2f7e736f129d DIST firefox-138.0-an.xpi 333087 BLAKE2B f73f69d3f501f0d91c0a441ccd3854b3925f4392ab64062a7d29640d6a58c366b149a26ddc1f1a0e3d6c4b1cc9ddcef351d7370f567a2222573cd381bd6ee41a SHA512 8b4c34149b2b2589d524db254feaa15682af3f9486dadbaa1509b6a7fb954609b72819232ea447148cd348c36438dc550258406085295a32ab0e5f25438ac4fd @@ -609,6 +610,107 @@ DIST firefox-138.0.1-xh.xpi 273654 BLAKE2B e5575b30cf37b716fc672de506acd177b25f3 DIST firefox-138.0.1-zh-CN.xpi 460396 BLAKE2B eba0b473dac39464ca71656e7047aacaa6a064a7a4b30b244216bfc1d03707b3bcb1309816fca2ff858f368583888846fae5cf0a970705cf5a20471cee463478 SHA512 ced2e942e4721fc4f73c687b95f18cb8eda22936e97463db954835e4f9407d778e62869778153005dda0ec5b3cdc13be2d14f73d2c71c50526175eb6b2ddeb94 DIST firefox-138.0.1-zh-TW.xpi 463424 BLAKE2B 29697d2fcd318f85cdeb650fb883cc4ab184fc32f77da91e527962490bb4225f8ab99fcef25aa26bc7cfca1ef6d55ae976bf1dd98356f3d191e0ace2cef11064 SHA512 81749dac6ad0325d35e87d4197fb19c5b372c02dfdd95959544b6fb89ec08f63fa6e0eee4d07459c2a895f115692c485267fcc6eff111319ca8d87f18c2078f1 DIST firefox-138.0.1.source.tar.xz 632213452 BLAKE2B 071b266dacd3bc65c4f5353c2e508e2cced215651263715e66213a5887753a58a851dc0e4b64ba1d97e14c52c27cf0576df766e74680ea65c54dd3a285c28807 SHA512 bc5a8d658140c4c3db29d51134c97105a0225567d5ce14757f69594066bf6a44a13e0626cebde2b7a078bac128a14690ee06083d0306d7789de2a5e9d8394b23 +DIST firefox-138.0.3-ach.xpi 295293 BLAKE2B 8e97694abccc3829be411c73400cb3a76029aa651ed6ffa4fee1b78d25cd763c34872488d23cff15c0c74585a792137330f3d52d112ee43403c9b515269fa5e1 SHA512 e10f0129ac8e13f05f9efb2e7d040d46157d5fb775e91168dd2dc0daa9fe399e8a1f7573afbbf3d6bab094a2d776ed5e8783fb4a29c34fdb3fcfe7d1112cc34f +DIST firefox-138.0.3-af.xpi 267280 BLAKE2B 624ee2b5d22fb9cd56c3f00654fda0dae05b87ecb0809bd09a682780b74aee6c390c89c36381c9eab7f2c902f0ff0b0e92c19115d072d662caf927cd21a546a2 SHA512 1c695e624fda9590d4c352b491cb62dde60a856eebe20923990803b8bdc8f7a91b92bd114b7a79fc352b761a9da6031496d0414990c43f6ffd848564ce767631 +DIST firefox-138.0.3-an.xpi 333085 BLAKE2B e86040151edbcf73ecb3ed8bdafe3b93ea447c63189db9efda55a829e733482f2457669aab7c55cd7ca71b94202322218dc6cebda60d89dc6136f4aca95b91cc SHA512 f158074dd262dd5fa0b3195ddad666269b8b06ea87511adbad660d9b18c8b418ef9d55d2afeceacbdbae1d63fb7d4ea692f6ae65250b87247fa6e7a74df1141f +DIST firefox-138.0.3-ar.xpi 437182 BLAKE2B b7bdfe78d202fe1ac574f08c42f59e67b577538e89b4ea5f56cb51f8e80b526adc6553d4fb44be44df8ebfe0dc189525bc66ffb9fe8429f4f8d77b35e6c25127 SHA512 3922310f89844704118671d9a1ccf6559ae49e795a20e3d91d3519542eedf6256223f3805f555d52000275df8da15358d4314edce9904e5f6bfe8c00a2c299c0 +DIST firefox-138.0.3-ast.xpi 313964 BLAKE2B 7324ed8f6589c6de100d930295942adda7e108db4e6160348382ad48565e4fc1c8dff49effd3e369dd3b7f29cd0048c0ffe33e6991465dc660a663364e76bd65 SHA512 5f5b66bd29cac84d88f91fd38a24888b7320256bcbe592ae32a493faed78156fa038fc24c1f498983f1943a71d2596bc204add117a00b173ad6c596e350c71bf +DIST firefox-138.0.3-az.xpi 319119 BLAKE2B 10b83339675c4878c658f5244e723adea732f3cc049a35fc4eef575c66fecbcd58426a390f32e32411e6a0f38a7e24b30fe215336ded3720dc4ec5c6a7d262f4 SHA512 bbb387a0d66340fcc62bafd498af58ed008bf9e8b7c59262afc699e752068d205d36b3cc9358c2c7ee5574fa275d1c20072c5849289aa722d37442881147ed6d +DIST firefox-138.0.3-be.xpi 515960 BLAKE2B 1794a74798d41a22d8d5045764f400d35567b3eaad0fb19833fe2a64e781947611cd6c2c2248fe86e35be43cfdbb11bcc7e1f4865d9bda12e446151255d144e0 SHA512 8722be1a037876f11e65be47810c93558f66a4f877b664868ae47bd9c73e488ba8e4f7bf718cfae489f05646305dead0d0063fa7b839e6b9b8f4e0e78252f8ca +DIST firefox-138.0.3-bg.xpi 448973 BLAKE2B 809e00084568adb2bb1ac5cec960f8a61e67dce13a539dcfe2f4c4cc6b0688e1820dfa1eb5d2cc9fb3689ee74b633698325d85e51144fb7296286b89dea13bba SHA512 520e05f8a2775d46ff7b1fc526c6d69b8099952227670ec2865e1bb5b6d9d64cfe3c0f701f06b116588d0782b974e2cdf6ece7cdb24e7ebe4de408db61c9f4a5 +DIST firefox-138.0.3-bn.xpi 413608 BLAKE2B b6f897311285b05a519ec902a927d601f622c2f2aaf8daf6fb48567f2d0020786290c9a48bdfde5b3fc7199d1ed09ddeba5fec102cf86ae4fc84b853698cadb1 SHA512 c47e8aad14023173983700e1baac97e069513731cd4cbf9a86aa94e60ac3a6e31ca17798a91ffe26c521a3e35251e7a790cdc34098793d1a425b127a3b3d4e66 +DIST firefox-138.0.3-br.xpi 394161 BLAKE2B b8b7a76e1ed3332d0cfc65c0cc36e8dbc400a9dc0b274b42c823d35ca3f5cea49c32018f8d41a34465e419ce8f9b02afd2a497aac1c7e6aab453396205d271b7 SHA512 d7df45f6e7057c1c613dff8252d0a1ee3d88732606f276336a3e3260183a377376b82d3d27cbbb7d3e9b30a92366d5d5a6e7d3b010dcc6cc870f746f46104ec8 +DIST firefox-138.0.3-bs.xpi 364822 BLAKE2B ff70df2bc914e85192c524748f83ea879ed4d3777b74b7664503ca3c336b09ad63f59f8ca854afb6c2ba9f2ff6c19be2322f9cb08e2181e05177eeb8888eaadf SHA512 a663a422ff3b2df26a3c5c9947cab1a2e1b6438b8986d29ba65a598c035636728091d76dbeefd04f28ea8d9fd78bda733ea471f318552068cb013c7a5a0195d6 +DIST firefox-138.0.3-ca-valencia.xpi 359047 BLAKE2B 66b87e17912b39d3690eea3c75eaa210af379ee9455601b1a8e3737cf76b336e7e38495e4f1842ae01168df687d09c9d73b4d70b3d984eae63b446f7ebf08d5a SHA512 f2bf33275d2ba5510b34a43e70d74ec51cf022dbcf17c645b664e12ef9dfd7d2845219512f56c50f74ef3b4bcb843ec22225a744f8cf6d8e6549e26c75e6925e +DIST firefox-138.0.3-ca.xpi 402154 BLAKE2B 67c2a72950165fa70a21295f1d76d931ae3d033c12871bba974daf0c2c98a7c82f30149a922aa92d14394dfad9302a8e7bf0015051a3ee4db196525d7ecbf97a SHA512 f0ecfddb6be9e428fc043ac95d70a080684f519b6237fe3553742c2b8b04177348398c0d451b5accf1070018b436eb5f3166e6671f0b40aafb6058cf2c3a4687 +DIST firefox-138.0.3-cak.xpi 392709 BLAKE2B 3e27fd7e2ac13eeb740acec2b8b70d618dfc27067f297bccfd73c9bee4c8915e65facd383ed6b5212effc3a851be9f9d6cbba05a1b3e1c644fb8fe8f91b3ef4e SHA512 59be73236de0e354712a5581146b698e0f34b8064792834427996e7f3b0ac41646e024658a8540c39d7d9c97c766db98723806c81c2af36c13a35b8c3524b9ae +DIST firefox-138.0.3-cs.xpi 475078 BLAKE2B 111aa354568cd2044fdc254803398a50ca7452d14c220b4715122925c02aa21548ee5793f9cf4c9c67ead6ccbb2c8de55268e47d0d947be8fa3821a2075a0dae SHA512 b6e7d143c8d80f79dc6a2109969bfcf940a5de3026b0c6f7183b5492ac0baf09ad3b5660daa96fa6f5b38ede66b14e747c01c834e04c5949b443da958acff077 +DIST firefox-138.0.3-cy.xpi 441398 BLAKE2B 61168d8cbd5c8a6e076a70e9fe757d31cf2b36d67aa2dde287b4ede8b51958c42cce18f74a8c2a3a6b93bb2fa5f828cb2d46623ffdc5cdd7d91a5655d46292ed SHA512 a51f1a37ec1b6c05b27cb83ceec136e5972e70e2b508048190c58f7320e95715027604937c4abc75b1b138cfb54c6dbbbb416ecee940ed6956fc95da259f37a3 +DIST firefox-138.0.3-da.xpi 430743 BLAKE2B c76cb1e738cb8c2d7600bbbe755e535a62e2a68b20ac719b9a6785d46339a355ec2f8074ffba8dc8de55edea58699b85bae798dbc5d973fd62177658437bbc22 SHA512 965f8ce8932ed7c8e4e1aa5eb149dafc5cd4ae5f14f0a11cc3acb5c19b6b0e69fd4cef9fd1272623903eb88ce92215a58f07a0393d31cd465498f008b4b3c96c +DIST firefox-138.0.3-de.xpi 452223 BLAKE2B 0cafbfb48ac9c4f67a6bde9a8fd2f7ece830c26d670e194a50968683b99572d688edd3249950082ef972d39e5a721282959b5d2bcc99b55570d2bdff10b00241 SHA512 4e094e70ae48e0aa513966bba59ec6ab7be469baa2ad29fb609fc0b6f8601f29fc92830e8a820c2ad9dafda202e9ffb5bed41eca79f5d90b8163943502fe02ad +DIST firefox-138.0.3-dsb.xpi 465486 BLAKE2B e7ebde7c448d935571718174dd75eb1c7f58f5a64950dafcfc7d1e248cf5c5fd9a593418efeb901f2768393663fb737e8b0f4f38fb6b310edc92797939ee53de SHA512 fbc0ea2ab7d132d5d261539ace098aebe9642c1f697c9133f36339aaaa9bbd31ece00449909d738eeb03a7fd905e1a132d6a55d7746deb6882619e2773c816e9 +DIST firefox-138.0.3-el.xpi 536307 BLAKE2B c83089522746810eb2583e531c755661c5f2d16d098ee78584355487da368e85aead29635c231d1bfdabfa8f70ebd2f1cee148f94a22cae678fc074c6c396bdb SHA512 8288e608827e16e7803f97504cbe664ef3575c713cd76d9ae0345fdd0962079d2a6206acbfb69fdaeb002ef6e8c91c0dfc1e66da6f69c7eb1f100ecd325f1f6b +DIST firefox-138.0.3-en-CA.xpi 407816 BLAKE2B 7dae60f580133f7050b2e79e56503b4eb4bcf1deeedadae50a13bea60a18d1a1a79a2036072068cea32e05a329dc530c919e77095c688ec1a44ad108c08bfafe SHA512 c52aae2259a2f174f1c86733e13fb7b9dcf1b15d6a31a7924537e24ea8c2e7a36550925a932201b7955c2715930d589e448db1351414219ece22cb679e822726 +DIST firefox-138.0.3-en-GB.xpi 411222 BLAKE2B 6b7ae91b7a146e929b9627323d76086c6a1c7c28fc69dd1ca8faeae21289af924d412b148ebad462e602afac7d2f6c5ed669623ff16e088bce2ad268fbdea1e0 SHA512 cc038d16d35ab59277cc33d55d793c1929e42b0ae8d60efabdd3114f0fe5187d68824b376f7076c2e4b69acd1c9d06c102d695b4997c91fab0a1ca6fe0ce207b +DIST firefox-138.0.3-eo.xpi 433073 BLAKE2B 7a3863cff4f87287b48ffb4e8594e9425f4457f90f1b884c43a80678531c9c086a8d16fa9d0f3ffbd8725b9acfdf3598cb8957dcefd390fc1441bd07ee0a8125 SHA512 956b44d4932ac774c174636679e0cea05d94ac00a446b0f2420a1b9dd936059edfc14c850b104d7180d68a8ea78cf9d9647e9798b52390895c61c7a75fddeffb +DIST firefox-138.0.3-es-AR.xpi 445144 BLAKE2B c0e5b41efd6c25f3f9eec04999dfdeb94d0cb7d8587d12febda46d2c7b2d41b8064d5e20ba1e0823001b4f7ddbbc69d91feae2233f8589f9cab0c5247a58ca62 SHA512 ebc4e85e494d8cd096d154c32cf6296b479d6f9fbdb87275b0842a1241fa91a97faede9e9c54b856ca31e7814b7d75c08d4d74d8faa6b0a78739dabe2f721dbf +DIST firefox-138.0.3-es-CL.xpi 445850 BLAKE2B 6655df4eb4f921cf0354bf596cf0e7aead0548fd0d58a8229ad246a6b1773fcf3820e0859d080816dc91eaa84a9882552f6de4bb406ced5dc4b75566ccca8382 SHA512 ab8e003b8ca367428046260a69b38dbb576ce9df027b9ec962ae60cb3688224f0db2d0d4267b69452020ed138a60357067297910e3dfab9daf378b9bc16b952b +DIST firefox-138.0.3-es-ES.xpi 446611 BLAKE2B fd7fecedcf8e9ea2dd0348f814230e4b85c777f86b06fcb603469ec5a762f56e14a8643683c3b6f4ebf2c86d5cf7d909b69dc9d7117317c14f63adbdbee20c82 SHA512 dfa484c9c694f8f73184d3227d4f3e9a4e160d6c1f82ed35aeaff1d891b6f0962108267c48d381117bea8745d0f3f5974c72d36bd37709c283eb948c47432434 +DIST firefox-138.0.3-es-MX.xpi 442569 BLAKE2B fc032ef61f0882c14964c6210ce8ea16bc527f47292643019fd2795d1d22269160768b542a9e9fabae37ef173ed5b629cd9ad27c65b5df3d3db6444c435220ff SHA512 1ef4cc781abf1865778dcc4d76fd2d4b69c09f28cc034876c0875539779710fa3b4431fa54e82154bd8023be2fedcf75c54aa9503a66b9d85740ac7cafaeee48 +DIST firefox-138.0.3-et.xpi 359646 BLAKE2B 4c35b3d2936b90ea0ab89ea0b2b0e4bf927582111b4cc08fe82e452976aa09d98885cb4400b4efe10bac539792f8d36ba0e6540a4613ed778558291521e0a4ec SHA512 ec1b5ff32fecabaca561a1b6f1098a54c216c53ea216047460aa74117da4933dd6b944a670e9b80a24254c473f454030b457b6cd0953a030061e4cf6bd3f2193 +DIST firefox-138.0.3-eu.xpi 413925 BLAKE2B 62422e6b34a8e826b208a64ac24a5994af854aaabe894ccdb38a713e2d1e4e105660a48614c9fbc6151767c8eda90ca0e97260ca4b580b5ea153c73c25a26d1f SHA512 e21ec669666cc2c5c93f9edc5cf128877457dd496dc836af85adebd49b752cd4ecb8ef59fcd85ebe8d02bf47f00a2558eb1dd9c33705aaf4ef53a71d2db836f4 +DIST firefox-138.0.3-fa.xpi 412997 BLAKE2B d031a3fdcd8c2c70e83bf2ffd99a25b3956a6d12f3803a51420dcac78eae50e4debcb792a935153e9146024d79ca4dbc3591916251f88fc37c7b1375ce8ad226 SHA512 0206c911dfe5fdc3ac584265223c9e7ed2df5f2da1781c4330fd2e3d831147f02eec7bcf348e6598af70b89e8c291d811d56c50f79d83315bf286e8c239c8cc2 +DIST firefox-138.0.3-ff.xpi 311293 BLAKE2B ccdb478fba95a28bfbe344e604dcd1a30b6ba8e8d3ccfeb89fc2741308d18c78014c9f90948216e47d7036fffbdc63756ee5d45d5becc86525f7f352ed110dcb SHA512 2797e2a630a7ca324ef3648e4c3f3d106f651c681965993f75e89ca43a53b6b300e6db1e193f01558baf575b2e584a9aff13a417b3c7cc1b132f3cb85237a7c0 +DIST firefox-138.0.3-fi.xpi 427747 BLAKE2B 08696ad73f75f1a8f9ceca7d719e50a7b7e8336cdec7aba2f5217ee66d9a68896bfbc6a5f31b1f7c1cba4bce3f04c3013e4068bb004a42218999abdc6582939d SHA512 908cc6f5a7bf42b5a10b18353f0da822c4ee390b807d8694a17b430254549dc8ed27524df109f8e7306b2772ed867a1c03880f2fe2019041eed63ada5844bae8 +DIST firefox-138.0.3-fr.xpi 457842 BLAKE2B f32ada3c183877b415a6ae4ffb9d9b3629298a10f69cb1301864f3167d8094edf6fe2d9bec3974d423d3702660c94b7015df02d9f814459540c8e5472d3bd936 SHA512 8c661b297f31617a6623800151e1bed71e515cad2b6384e5d5d6033ebde3aa8d969a16c648f3dbc1b689f817875996bd11a7d6e35339c344b74164e176ef1196 +DIST firefox-138.0.3-fur.xpi 451289 BLAKE2B 46b18b1abe8b6e8eb7973871c2965f4332de210370963e5c8a1a0bd3997ab39dd9865f5b1dc1a39863842a40604885be9191a807b0762c6f0e7f01a483f01f6e SHA512 cbed9576563d28bbd53097a22846fe2f8b09d2c87218c2ecc068f0f6a3601286333500bfc94c7420f868734702a231027aca13d9b31fd9d69efdec661f42fcf7 +DIST firefox-138.0.3-fy-NL.xpi 441754 BLAKE2B 1e67e02cde2c20d75bdde3f81c2ba810ae3533fa9aa04a019d94c5bd474c06616b25cc10229a4d0114385e4e1b4ea8086a0a787afaf27137a91694610e59eff7 SHA512 71b2a09e2feb4e2ca0013ec5607b2350c0be7073257685a9edd31c9316da6c19ffb918d94eafff3bd6f346678b9cf26e61a6c68995162b0a867db60d543d4f50 +DIST firefox-138.0.3-ga-IE.xpi 316381 BLAKE2B 5d7c5e76dd24ba0ca2dbb396fb491a5e429aeba7763f5dd832bbad7df37b55b8d09f04ab67e2f76b2c33df5fe9273f7fcc599123b0eff9eb7b7bc15963e509f7 SHA512 2e74ee40adae42832f240058423e08b4a9ed6fa24bffc9909798b3739e60448612ba77133ae838d133dfbe3ab70ab018e73f21852468694816c1efe822811ceb +DIST firefox-138.0.3-gd.xpi 401179 BLAKE2B d0eb6d17a5ea739a2cc13e33fa4a5f2b5d8da99a4c35d692c24f572268e7e9c7b9fc9b858f474d7473a2555a2b30bd81cfd01871ce260dd8fa038c5530d908b4 SHA512 ca04d3a6702941ec529446e662960b4cf49079edd8bb44bae80d3d1593410f8b31fb43e75dfc7e543b727e32c19a4e60d672e92295b69004de15b59ba0830907 +DIST firefox-138.0.3-gl.xpi 405190 BLAKE2B 6fd64301f3b437bb349a8782fb8742b2f68adf4bd6ab7af933c5ebe02c8bd420f0480588657b4c03a54e0bdf3ca05aa2ba869f8a99645837da331c2176a6c93f SHA512 39f92bbb24daeec4c66b44e8282ccedbee3032dec620dc96c594444dd58b6b147b9ff63b1a96965cef7c37724b92fa5e1f2e2c17a642a95046dcde0051ea000c +DIST firefox-138.0.3-gn.xpi 448236 BLAKE2B 79f009e4a736163a872e433bd7fc669aec56012bc52c895565e1008b835a5d0b0d9329161a173b25da3223a126df8278eb724ab68929e04b6eb52f70a4aaa9f8 SHA512 e23d5f5a566f3b51b6979cdd7228dce300c5f8ab778ef6fd3f621487cd4136e20341366b2e607654c1651990f5e26c34fe9f75c19b96158152a8f9b3f8fe1f39 +DIST firefox-138.0.3-gu-IN.xpi 359745 BLAKE2B 458ae5c42d63ea594febe2fd0e8628631205fe1b1a5dd6fb2f14c6aa10444e76e35d08c4f6b3ac850d25e0016b5fa18f27967d17d78cac3e82c9b4cb5b2f97b5 SHA512 fa36c5a307745d558aa160537d77aaa57995bce4919680d5003aad4b5ed3dc72bd1aee8b6a06ed2177ec32ebd5ea4d72a1bbe09ff34bc629fc44c6553abcb7fc +DIST firefox-138.0.3-he.xpi 443180 BLAKE2B 79700e6bdffef9ab03e66b551f1f9a6c4f1bff2483c289e195e44edf3bd69e49ad236cffc18149c8b1392c61211b5638bb265dd94d5cfa6cab7ecf6fb19896c0 SHA512 3caf4f01663878b3933069a325aaa6b2a6f2a549bde049d70a4c2429a2917db39154cd580693859896856405e4b8a1c627ce11d57f017eab9a8510dc8539657a +DIST firefox-138.0.3-hi-IN.xpi 378228 BLAKE2B 1791f2b30cc088b80dcdd996f674cbe6eca4174f3ecd391e76910c7bf82b6d3c865878ee5def13693d6724bbfd41a0717ca6351ae4dda6e91b6c57a33c4cae79 SHA512 2462c75b6cc1c5a8a4ad98dea76ed503209ebd1fad059cb81feb6bc225c8194e2361210f920bb0d523d1b96ea88cf45d7abdd5141b36c31675fca0cb88cbeb7d +DIST firefox-138.0.3-hr.xpi 429580 BLAKE2B d531511bb4861d86591d5aead03f55edc08bedccde70d45efc55c30915533f0c17853c71f40883467fdd23da515b558dd222cfe9337cfb12059a0eca05c164f5 SHA512 8322ad492d92354154c13dfeafb4a867dda7c862cddeafea7134c82ee8c3cd223c97cb4f4986b813d8c02133e0abde172e65d953288f89112572dd8c2975c41e +DIST firefox-138.0.3-hsb.xpi 462119 BLAKE2B 52bd3c3c2c0607a64ce7a803df4e804c48383a284c83cd82c4a5f45795b04c53e95fe325b9991e0d4dcd3cec41e29855ef3c339b1f33f3199192acdc7d817a71 SHA512 8e102d6db3b1922959e2d035cc3e9a9a5bf7ee32eee76fcb3afe778e79bd986c8b4df4e035542c2bc727a61d78a5fc973d35c023e6193b1b692da662e577bbf7 +DIST firefox-138.0.3-hu.xpi 465924 BLAKE2B 02a79c87e7e22e02d479101b2c02d7a1482b660d941e91cea2a56e0db2a48424f5fc7dae11eeab8700b77ceaf94b2c296cf1dde05c242c58cd7e9ff9a407f2bc SHA512 a2792515bcc395a8c79459b8d4ddf9297fd5a702b76f05ba3c5b374181e66b1955d209a30c617f17d0df4e8a733ac0d2f5dffca6f313fcd785113f507fd78588 +DIST firefox-138.0.3-hy-AM.xpi 453819 BLAKE2B f57ba0cc7fc1cc07aa6e40d1421edd52aa1c6e5862d9f77cd1a9e356c419ee2b78ca1a8a6324bda934a1a3a228537eb98db693fbb25c6a1477c32f386322e1fb SHA512 5acfa722c719b29bc24a060f3cc62c4cdbac23201561636efa2b61a38379bc02340aab0e550cf6817637f5e54087e65eb45d62956067dda42ce289d0e36bffdf +DIST firefox-138.0.3-ia.xpi 429684 BLAKE2B cd02e0ad92fd8170b732d5d822b72225e4f7b29a43f16c5e18bca481fb139650787bd722a791a0c116664665781f3ebded212b6b8a456f48decb549b8b967376 SHA512 28771881c40d1068746dc46f4014853b10fb5968c9e38b6e6a0494f10db2ccdfaa6d6ce8c8b3954e8ca87334d4218810b060a4e3c5d7d5811de00c02c3c5a84f +DIST firefox-138.0.3-id.xpi 424279 BLAKE2B 7877de47aadd1e877bea92e35cb131aedd755ddbdd3a866fb8be2e3e9766ae41b8e58448c67fc08a094a7d2d173e439aab3dcfa057aeaa7e0d72f471fc0faf8a SHA512 2de667db7a84fb7c2c3a539eb629b2fa0180383ecd0b05023e08a0421493a3e122d389fe9c9a6a0d958d0c500940820deaf88624eb74ce1e5c8bc5cf5de70e94 +DIST firefox-138.0.3-is.xpi 431996 BLAKE2B a2571b49cd84bb591668c844ed558ef4233a247efcf60cf3a2b97d79c02fbc522a167cc2674d284854e9e73a9945c2ea1c53c408be99af642b91cd92493c7050 SHA512 119190c3e4176905b423ab8ae562e648481ca3e79215758e4a5d1998da185f5a236da5b12d15fc67d717e8cbde75f2d216ce3916cc299c7804be447d99690127 +DIST firefox-138.0.3-it.xpi 440389 BLAKE2B 31386fec8f009f2d53665a7c0649f3480b19837bdf942c8b3cf2b6906d76c38b1761776ec49555c18ff419b654ff8ffa27c473cd40f1028f988b53013891bfa5 SHA512 97823141c8caf1ef19c3a45c27ebacd8956a3c721954246c295ed011a109fc10a2db0ae59235a50b7a977e3f49142bda38f71ab12e787cfe5ab9b83c492af9fb +DIST firefox-138.0.3-ja.xpi 480876 BLAKE2B d5024cbf59f45d935a80fa5bfc8421a76c349ce099990b526f9a1a49d12124b00803aca4200878c1921d29331ea23196e0725ddad56fc98d5cc3318d264ba59e SHA512 2973a3ff92f49ce91b4bae94df55f62c93f98b7b855e604921266361df67256967d8440795ce5695b94854ecdadb2d104bd8bcb316d6944deb86470455a2f895 +DIST firefox-138.0.3-ka.xpi 494231 BLAKE2B a76e1dc06d9f3c3697f8a30a0ae8b6ffd55ab8e49c49592bbcfe4d3d27007e503c60f2d7983d04540598c85535f297447e738f9458783a4ece26982968afde25 SHA512 2e5766f8e6312b6a86133e092c8fcfb48bf5925edf94a61661bfb3e0118f573af33f770915fcfd033d9433ea2ae30e1869357d93d41e62221ed5cb3f2c1e5685 +DIST firefox-138.0.3-kab.xpi 413553 BLAKE2B 30e1594fb8dc10ebc033ea71c98b422ea8303b9c6ec6b5463119550e4ac775f60e7c79307d5a275bed9254b547d5fb95a20c7542eef029977f4cf9818c2d5b0c SHA512 23bb22fe4bafc717d3cefa9ea113dd22336070880a68899c7eb62173de68da6f4ce2ea624d736cffa0e0baf49c97e1733240c65609de83614651652309cbf1a0 +DIST firefox-138.0.3-kk.xpi 501966 BLAKE2B 081f591613f54b993c6000bda0986f47c00b5b5cc280d2f9cf0319c2795a33194936b2ae1cd7ce81048915f0e738c7492e8fe47dcb2fa9269721a964e411ca16 SHA512 e9bd1fdb6904cd5b7edb74aeb058eb1409d616da3a02051a668cb4ad5826add6cc9d4da85aa1272201896c7619e6f8e5d300f4d2c92bba8a7eda9625d77e9bb8 +DIST firefox-138.0.3-km.xpi 349519 BLAKE2B 243f36ea6b58e45a194c07dce3e21519ac254abf77bc7ada30427565f0808d9c498c4b770da086a1edd2c0058caf078d48434a574fb7d7f2d50d64b48bf631ac SHA512 2dbdc2c1234fa9961f976ef2e5b0e895ccb44c5c4c6178c5634a8d2f158249e03e5ef8f63068f59fbccc1452ad53db7e2851741c7912445e749621ca586efe70 +DIST firefox-138.0.3-kn.xpi 332439 BLAKE2B 93718bef027522a89c770bcfe50257ed7a4f35a7d7717118ba6dcf02d885f3c693b2ff9b50a75ac5055ddd91e592e7d3648d37e82af132db83f81884d52bf952 SHA512 2db6b711afea495d0e57b75369e5e2fa57d522cced0ea0ba3db56d999e484cf9bf3a7e3c0928d4f6fb44dc0c53ddc5f593dd278ca8c1a5d7c20ec9eaad12bcf8 +DIST firefox-138.0.3-ko.xpi 467007 BLAKE2B a6ecad30ad47cb5b83754d6329b82b86fdd9d492e334c5d86fcc8d8663a015e99c50af9e9ab77453898b9aafab2e90ce019031b01a88b332925948d628e073bd SHA512 5f0ab58c513a7bdca4a7ea2ff823478a5e33815f3f9fa0bbe1c049366b7ad66466b53851f19aeb8e1132520ab2bdd00d2f6ecd2238876ae2449ef495ae770950 +DIST firefox-138.0.3-lij.xpi 319041 BLAKE2B 785947bf6461bca00fb7c780fc0939883aad157fc5242ff768f41f3aceb78f1a9b7836b6c8d6b7688c7dbc44dfba0bd81e85d7fe878f83cf085e9ffbaf42b78b SHA512 ec044465dc1bdecc07e1965d6d569706fb115eae638d34ee71085059397e18b0c15143e45a8216602d59eec340fe74b52e4235b591f74923b98ed3f44228fd00 +DIST firefox-138.0.3-lt.xpi 380931 BLAKE2B 452a400c5d87b45d9e81679768991d7ec8752287f7500a48ebcc989f4e758151577414278a0fa3bcf7648a273d3703b4cebfa9af48d63501f9b27143f79380df SHA512 428baa9fbf0df87e9721a161bf58023ea7d1900ab7180fedfaa9ecef441e9d0dfe6ae046cbf73b6f5ec30642a53e58ce6b2005fad76478c98377b184a391daf5 +DIST firefox-138.0.3-lv.xpi 389503 BLAKE2B af5ef675a7aadfe4067d1bf4ede4ee59f9c6b4f8803d244697e5296f85d0ecd492e707f72860cb68679a1897f63bc3b0f28576c6ec9f0d8397c78f0d1d501eec SHA512 e600af88d1e444c7cc250027da9919ef06149781d8041c4f6b6ace1cfbaa31daa1100d2f1cc7ce90659666ab563c301fe14c46f9eb7b8b88087a4ea3a2394941 +DIST firefox-138.0.3-mk.xpi 317489 BLAKE2B 65a6a03c6697480292cd0a05fcd2beb43b32f1f5bd11eb9943e4b6c44afb7e464ff42b5fcb77256f90849f19db04ee477ce224ae2b18f4b4e3f52eda693fa8eb SHA512 86df07029bb1e074db328c73b59fdf9b09b06844996eed09408bc706ccc3918078a6de9aacb6157c0b54024fc21fc122ab8a79f013fe88ea7e03baa6d073e3a7 +DIST firefox-138.0.3-mr.xpi 356925 BLAKE2B 8f884303d1524fa6ada6a6523874ebadd09d2c402c249889066b4339ffb913231213f3ce3a582d4d7e2fe2793989b139c8223d13172a8db9eee5c9be15429e86 SHA512 0c7e8b56567bcfbdce5aaab78554f1fc0b05ca57cfc2df7a894e3686fe06b15999c537293cfda16e338b435450e843a0291d14debe1a658a8637e8b2d6c3e4db +DIST firefox-138.0.3-ms.xpi 296034 BLAKE2B ed1bf5daaf4f68a20295e85b9690200d786505cdbe59f7bc89c66c1bbabef96b907073d1d6f7fd64597d97ce02fd8291c1c2275dcab103aa7670ddb94792f151 SHA512 07c923491d7904025ffeb735da0211f8dd1a147083ce496bad57fa8ec3606b0b9a09bb924a090e7ca579fdf54474d9673f69f9a65b74b85ed8488ca9de6a41d6 +DIST firefox-138.0.3-my.xpi 343213 BLAKE2B ef7dbb1646c2b1c38fce7d33119301401903d3c3f657ac939eafcec3770412012981e7242afd2f0715b9a6f1f6123d103a73ed3e41e5183af778dd5053edc7fb SHA512 daedd853fc474c97720931261c8a1a293d43a7a1da072c8d6cf671c0ed48744fba7c423430bd3525c744a99d10980808ce626b6bc03c3a5cd54116436f0ea5c9 +DIST firefox-138.0.3-nb-NO.xpi 422062 BLAKE2B 1e235e181f84ffce71345c6573d4a96508dfc419ae55815f2c67768075482130d123c3e45a56b7e05095f9664dd35c36ef4e034d1b6e47ccaffd47e617da7f6e SHA512 9104a74c86b8742d3d0619ef01a5c8c9728691bc9363c0dd4e60aff1c23b4a3749d58d5ea472706d8d5ebbe33d158db7399a731219a73b8203d8ad1b7c1d4a96 +DIST firefox-138.0.3-ne-NP.xpi 350320 BLAKE2B e427ddc04e5901c709984d515a03dd0e071ee47d56bac3a7130de8c3af4d7557788961bb43d973084fc83726cec4d32daed2a05792b3397d4c7a48b7abb5b846 SHA512 677f41a5fce42c20891ecccaf9c509769b0e1bb4af1589be582459a52168f6b0ad04f0432208d414b3567d442a6e404ca25ca8a08dc1d03e6c8d6f1191d8a133 +DIST firefox-138.0.3-nl.xpi 435790 BLAKE2B 0b941b7b71bac4c933b7f64d5ac423a3594bf453ddd9ce9fabb20e49e0fc04fc48a4d87ea35d7a2a6916cf0a4e921437fc7b0d765d781e5e52060bc6bdc665bb SHA512 f3882c6b50e4daf90bdbcab0705110268fa5981cb37497818bb9a3f849a4367e7b0db855824973b847153349bb4a01b30b22e14db4913518fda9ce27733339b4 +DIST firefox-138.0.3-nn-NO.xpi 428375 BLAKE2B 19c575dcce36436248dfdba8c11345810c9e12f575a2ccd07d1ff37e776e3a3459e0df73b6a04c11da12921e1c57c42f6fa67a17b154448b6ea56b75d1014bc1 SHA512 052060581a5025f985ce0bb9690c15bb72a321aa743992e29176c2abbdb4820c2afa9b236ea95f646afea8a1ff5f636d2df0b7ceb44bc4765deb119b4252c525 +DIST firefox-138.0.3-oc.xpi 414224 BLAKE2B 9327b06c3d0b7020c4ee4676ed5b21b83f46f7bac1406cff4934d612353218604fb1052ada56302a94c2867abe208bf863e7c48f323bedbef867aad5521b40ad SHA512 5d4fff36da00f91989515144e1c198421a0bad1af7e594693d922a3a6cd1425fc98668755b6a90c3b4bde1903e4e6467e150e1ada01239c6765402a6f0738354 +DIST firefox-138.0.3-pa-IN.xpi 493685 BLAKE2B b95358428859001f7c009dfc4857406389908a74ca5b7f6882e143e2008b925ac08a5aa5da8031302747ab09813662a551b7116fc72aa916df66ecc30128e1ef SHA512 e69ecb003a093f0d7cb5edcd69853d91a9c33a079eb40e7e9f24efabe19a36424418fea311cb982937558de3f72adc41ec410b6abe10bc7f2a3c605d1b9c0f40 +DIST firefox-138.0.3-pl.xpi 452933 BLAKE2B 2b7c0408a459581a08452c13fe1f90b84092f57f46e3374c57f21ce987b1b2900e68f419070cf95d8402cf28c8f7c1785bba0448e96cb61a074345f3af009d90 SHA512 3b678af162afe0447eab760a8e0fb665663fae1affa88e1b7ef10c1b3a21a581d0f58a9c37259005b70422729ea819252ba39df4dfe4659a7880c5ed4e795094 +DIST firefox-138.0.3-pt-BR.xpi 440312 BLAKE2B 67e220264a6c07c6039b1ccb65c96bd0139c1433f8a210383fdf3c0db67245ebe612ebf59a8b5e9e367d65c8b8cca0b2e4e4ec97e65f612ed8c7dff386dbae74 SHA512 5c11fe553b2ab5f6c6dac0e873280cf33b7943fa15d970ef1d2fa56f4399fd934de19c2b4ad003e06a6345246330ff0b02c007f11a6cbde1af037838f95114b5 +DIST firefox-138.0.3-pt-PT.xpi 446051 BLAKE2B 19f224f08016ed06ffc5c8e72b6739f6f509ff393b6870f20c868d4be0f0ed17f40e3f106dbbcc51df081b28475926984e2c8a677b91a970a8c567dc6a132057 SHA512 8d2dea82ff8cf3a830f497b730531c44b16a3b7c56f181d23620c861dd1e5ca30fd9550c0d5415b36b905d6fe4f13750d9bbeee983fe646acb2bb9a290fcbb0f +DIST firefox-138.0.3-rm.xpi 439692 BLAKE2B d26d1825e0a07bbac222a442cd8e4394ba89ba7f4c74958a6e3620e982cda18bfd15c3b0f84aa9b06d37d9f11c571afe33ec4ee575a215e3967de7412caa86d2 SHA512 80d348fee3db42a61280c7a982682de99a7327cd13583a9910558d4794cbc46a48c8fdf3206dc788e6fb55bede702fc56b336f7002c992a32e306f10cb29dbee +DIST firefox-138.0.3-ro.xpi 366327 BLAKE2B faf83a0ca08b8ff7b1a8d9d591a93eb1e5410272932bb3a9ea150e7bb07c0a45a4017f1c8d48478cb00caf24224ba94d082292c622a81a3584a56b61be1f5296 SHA512 4065ca1f5a4576f01054748af7e7607d33198dc59c40211d384656b76e6eddf0ba7deac679d3fba34fb8acc9b53d783fe304d5c8c18cccd51532a5a89e64c606 +DIST firefox-138.0.3-ru.xpi 524408 BLAKE2B 2870e005c5cc26d80de98a1fb8ba477eea929e2799203cc2c1924991f754ef044eaa2a642ecd1cc7d4f42753f68792c094cff07a0bb176e0025594d2d7fff884 SHA512 7d126ff1ab434032ee94abd9207d79a76d34beb9bbff81d2545ef88c2336b4714f0a84569c27c8ab9e58fb8019aa83eb437be194f962f05d3b767c1e4f01a84e +DIST firefox-138.0.3-sc.xpi 406152 BLAKE2B 6cd59bf18c9d91601c5c460b82069bb73d7c0f3d7b810aed4091ae8e1587fdc042443726e54b57da563ee550af46d4af65e63a88076d6ebcbfe3aed97dff42ad SHA512 ac45e6308bc65eeaef0dc4d9770cd7d35258309a893cc424cef517461f5e6b809aa7e016d39a00a762c5b8c910ae059e7319f483e1c676c4418002f8bd114941 +DIST firefox-138.0.3-sco.xpi 324596 BLAKE2B b44232f1267188735b2a261b6bf797f4248cd2542079cbccd587b01c9273e77cb6e7a2a40384306a575cb393d6a0515e77f2ea19aedf107f60e092d35ddc96ee SHA512 8249da8d5782f031acfd5604cd64254f41126f5b561d84a8ef432b4b88e7ae896d35cdd2e7db0ada66c42e58469d3d5a0416be01bf97d1806977b5f092d980e2 +DIST firefox-138.0.3-si.xpi 414463 BLAKE2B bf039dbe71eec5ae112dba75a22981b7b4a549b406d4528fcd22ca707b4f6f9312f25d623a56aa71f395ffba590918db4278ba897bcee12d265684a2eb12c4e4 SHA512 bc6135c1110ebccf877d3d3508d8cc40b841355a0a88f47a385837cdbfb53287a725bd71d24ad2215136c9eadcfa3ffa6617fda1877eb2728d9f69639a35e802 +DIST firefox-138.0.3-sk.xpi 467394 BLAKE2B ac4f13c6ce4d584a59504ab343de2d8a77724c2cbe46e516f5a3239c0aa19786e311d2521d6f830cdecbb9100feb01fea225879051ec5290a9beec405dc49d16 SHA512 8a961788e7155324b8e396e49d73218cbcec8a09aec92e32700b40ef32b6c2c9783661cbbc3e927037bf559901ccfc4f76db2976cc806840d3ba0b873f194391 +DIST firefox-138.0.3-skr.xpi 492075 BLAKE2B 26932631c6067c45a1d50012ad83e91eb9e64cfc598099f727f2f8038b8d39a30b95b3b2c4f18e6a4730366b2160e379700993fbb46dabbf4394ec1229fb8fc7 SHA512 a376f7d4674dbc6c958a706158fc569d9dfd0d8f5a2fffe0a6a826fe9a157a511891a156e643b9a6984f29802d40d686d4673a308e8d4d9522baf37e87d9e681 +DIST firefox-138.0.3-sl.xpi 439504 BLAKE2B f53c25b67f6add547c09f1d53afd9b880b821bd8414b7cf759705ce303cf7a7c790cdabcba4828c94451935081cd3d81dc8c323d09a1a574420f07be9b019e52 SHA512 7e4d750b2b045c4d8f0b4cbcbb92007fd1d48527f6b17bf6bd3cb0077075c08c78a0796d28cc8c55bb9f24ae1c3d76bedf3b78a7dbd42f9170c8ea04e6a01eba +DIST firefox-138.0.3-son.xpi 273739 BLAKE2B 6bc40fb85d95ebee78f2c11abcf847770f4f74d66427a44b31e2f1bcfd5c6ff0d25f9f9c2e43c31f965dbd69a3b84784ab22f7bb74ccd0f8ad3babd947414f79 SHA512 a26e3e976ceba34f2dff98487c08435e29b566df71afa03ce3a36e7f818e27a11e171ae99925e492c618514b5c57a16877c7fbe09d6e42797c67ddb677f7a7eb +DIST firefox-138.0.3-sq.xpi 454745 BLAKE2B d28fc0059ea87bf5d02b0437fbf351930865087d3e662cd640a0d5e4dcf612541ee554137836e928a975aa01c47b59f94861fb53fbca45788926a6869fb67f38 SHA512 8f02a8e082005c6294cfbc7e7621fad07e4be1813d86bce040cd9f91639c1087fa80181d863091922c3e247354cf780a4e331ce88c21ab542b65016115039821 +DIST firefox-138.0.3-sr.xpi 454266 BLAKE2B aa23e9a06df9051baa5a6724e0eef5830920d56eb44ae1845975380cf62562dee4f2d0124e616faa4c644d4470c174b4381e67c216973549f3df4bdc3e324fb4 SHA512 b19e5abc1ff6a00b9975aec0f67970edfe65022b5418fe4cf7eeb0f9ad65e40d607b4f89cad3f04e0261db330bf1fcb19501d72b8e5acbf97a681ecd7016b2e1 +DIST firefox-138.0.3-sv-SE.xpi 435744 BLAKE2B e32eaaeabddcc55146790b644186553e325397eed2292e65bf98fec3773444dc442277fe4438a0f1dcf62cb09fb4990d587031d1110a3ea052724ca4eaf707c7 SHA512 7bdbfdc20efa6afe89dabf1975f5468b97c7ed05a85251b6f51a04db27d2e163bd187f61d3af997e3d3252cd9679f21c75f407452a1ef7042d59db6713e525d9 +DIST firefox-138.0.3-szl.xpi 343637 BLAKE2B ae96f45a25d8cea4454388e5a9d106080784f61c17d512a3e15f88e0fd904417daca37f063a57e4c910250a7ef527558c5982e8b055a6a520768bf359bdc5873 SHA512 2be99eb2c0cd3ccb02615a24ca6a780ac25960a957fdf8499380b95928ea85fb9dfee966c0639f3a86d465517da1fe55a595af11db2414aba14c59b33457c975 +DIST firefox-138.0.3-ta.xpi 338595 BLAKE2B 94b0f30428c057d0a6526e922c43bd2a9aa940a3b2b33fc31d48cc1664c3b1e7bdc23604d7cde0a7292ac8be78f24f8cad9f1aef5f7fc6b4965a5d7e73ba22d0 SHA512 e55aaad7450f2480a350db548afac7069868eb01422e029688a6517b122373d9bb63be974591d0238eb6463ca3ac902edc67b74ab1768894f70186b5168e1300 +DIST firefox-138.0.3-te.xpi 383672 BLAKE2B d49fbf3b5fb489fb6dd1f22e0289528a9821766d811e7678465df5cf4a59feea2ab2c48ed047797be26dda60dbdd8ddd45459d2ae165b104714b6a64a4866ebe SHA512 5d952254b418df9dcb351de4d7f927ec4aaf5098cc7bfabcb8770534fe1cc78d5d2a3d7b947764c9c1a4db1c1d61a6996779262d34daaee975224a3313ff0d15 +DIST firefox-138.0.3-th.xpi 501186 BLAKE2B 6d67d6038572816d2afd2639d0b0d0f5973036f2cce0daba5351f70dd10c9b71fd49d4b22f161f5e63790e45fa71f37db8d784c565a096403e3d21f6816d10a5 SHA512 2cb3f5323100e42474cce634ecd6f11452ef2d848b610d47b7afcf512044a854cc808e6915627959288232f2b43dd84451c0b91914883ba8ccabe5c28cd72313 +DIST firefox-138.0.3-tl.xpi 352257 BLAKE2B 8350f4cf1620ca75335573ae0e27e4b029474b51a76e64a6b348dd75f3f32e9fe4634216b250f0166e0429e7daf497ae48a44f70b89426e2e3f46964ce95c6f9 SHA512 20786bee8dcb2ab8af0f0d1253dea01699f5aaee5e56a32ee9023a89f11fdfae83639c2b8075186996ac5dccf20cc18979195faec4304172a3789553f8fc937f +DIST firefox-138.0.3-tr.xpi 448021 BLAKE2B e1ae61308009356dd1d477a881b1cbebc423cbf85745458f61c0202e9e25243ade3a3fdd3cbaeed2c249a5f0a7007173d9b6353b0f1d5063530dc48bfed5358f SHA512 0e8fec78f651034b0a05bdc5f8f7de69e54c7fb56f739058b1c19a4e04d8c0d8710dfca670550ac5e36f865a4cd4d4c9c550810d6a4e591aa748b9b16f00c75b +DIST firefox-138.0.3-trs.xpi 324163 BLAKE2B 72326721a50a119691331e0f664f75c99e57f1a0879ae57fb837fbf020617b65f6a6282f425e73838896af9af9588660531c43f345699d3dde36fb9e523b9ce1 SHA512 e47b12f9f0bbcb0751e99366f708e6beb1bd1e5aa1c939f70aaa94cace8e419af0ef43c42abe6f510746d344331465260c1cad48e33e267c9a8474a7dc3dbe1d +DIST firefox-138.0.3-uk.xpi 515442 BLAKE2B 97a0c5b32ea2d98af3d4481ea1d4cff3d2dff4169fd88e380f75150c0eb61a3c40cacc1b51b87a22c2e8f2815ffa698974f1191954c044eca4cdb2adc2257580 SHA512 219cfe8b1416cf5369dd914d02e6a2bdadf9e3e38e87dc9ee1a1a0f554ba4eca662fd697fbc89a3bad8b7ff19162ed41b5e10eaedefb534d9e9a8bdf3db0cbfb +DIST firefox-138.0.3-ur.xpi 371104 BLAKE2B fe7d78569bddeb344f4c992b35eafad3acf7ba23e73c0170652532b4c9f8108b7505c86e47238baf19603628e0350b421ff1e6d3f597f1f2e9685e72b7fb5e59 SHA512 a5fb869c2c2ace79a940a39f4dd8d522168dd18f2856546fa2a8664e5cafa3553f883cb8abff7ee313c9524d475e55a4f86ab577b154ec58e939dde5cfda2a99 +DIST firefox-138.0.3-uz.xpi 304266 BLAKE2B 923b4a8c7bbd5de2bff2e5180a6fa9841f8c11da0745579fd560532aae34be5ff98898f1e08d110801e83f2b5b9b3f868c98a8083cf5f1a879f808ae398c89aa SHA512 79829c5f0cc3fd9f82cd4ccef69f64c963c8c23200a7216b17782d790ef8cbdf6e1ba1732ad41714e4699ab0675483ed3cdf42b46b31519f6f676e9af047abb9 +DIST firefox-138.0.3-vi.xpi 468813 BLAKE2B c765ec399598f94082f5dcb28b2458fe6f61865df78144c2d093b4eb95d555a89b23fb17f10f053bafe216249428cd57363ea232168e5426d3fecdc90d41b281 SHA512 c69fb33a0c3bd437a916efe5caa0e95302274afabe341e4cc84d248ccd111a662fc9d1bd5928bf8ee0f488f1b03d8a64ccac9bc6c02e08eae975670f2e5df48f +DIST firefox-138.0.3-xh.xpi 273644 BLAKE2B f16aaf398bf34c4da1afa207b4cacbd127010c91464291c97c1f46e7b6e6d0ac37f57fd181c7f1858ea84cb4b26a2d8afdb015ff3d9e6836a58a058a017f91e7 SHA512 1193c0dc4bf086b92595200847bc4fd4030c5df973d2eb215d7f9fff93c5912acd95ba3ed8addae93a9d131332cfcfd0cdbfc11c19d2922c13ff3722239cb863 +DIST firefox-138.0.3-zh-CN.xpi 460401 BLAKE2B 39a7a7fd91fb772459f235e31f6f43a87f65c236a5f15bbe97405b9d8b587af3c0df4d746f387f43b829f60a701c7edeaf412af0d0a1056bbcc5b4e8d4fabdff SHA512 4cce498786dee0e16a559494d5196f6d9e8849b35804be82748aeba3291769a105303a34ff2ff32df82b3e0e9b6027deb4174702e85ee98ed20e3bf1ebd767c5 +DIST firefox-138.0.3-zh-TW.xpi 463417 BLAKE2B 6d59f5c8bf6d1c9dd4fe6eb01447f5afeb2f577ef4c747772aa0e4e3db2688153858e4479e66622177cdbdb30143f6e5d0a54c92f8d2d43f90d699a22378da3c SHA512 8112ebc4e5a1f146e732e8a428131f78859e4f108bc575efd377d7493d747ec76e632dacd5b9ae504ccc52d1660181502fd7b6a6fa262c12bfb38df92df9e7f6 +DIST firefox-138.0.3.source.tar.xz 632959048 BLAKE2B 3357a02fda9bd4d8cc08687ffc96b609ff6567a2892347a71b627c6aa140e653f168989a96c652b18905e414b961093bdd9e02fddf69c3cde613ac9bea6148b1 SHA512 0f1c8ee05bec465b55429c18d788856574c5b2e31d911f15f76d31c00de84d8b8681961799c4101cd1540bd228afd201a4b59fd7c9a88918695040965b9dc0f1 DIST firefox-138.0.source.tar.xz 630343992 BLAKE2B 9bd4fb552a4e853fac2c74ddfea5ffeae8ba22d3a22d0c92fbd38a44b124a1c9b3e260bee347d476c5cf5e35a88978ee6b6e66d41a05064aa50eb08b3de2488c SHA512 265eef505216f70d50ebb95a6b23983d0b70430320e7e2dcf497127890d7bbdff1c49c64790010c85b8e3fe0da5c90e95b2d44fb1adca64b1755428ccb2b91a2 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-138.0.3.ebuild b/www-client/firefox/firefox-138.0.3.ebuild new file mode 100644 index 000000000000..3fefd4b4a69b --- /dev/null +++ b/www-client/firefox/firefox-138.0.3.ebuild @@ -0,0 +1,1399 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-138-patches-02.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-138-loong-patches-01.tar.xz" + +LLVM_COMPAT=( 19 ) + +# 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_{10..13} ) +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=25.0 +WASI_SDK_LLVM_VER=19 + +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.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox" + 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 autotools 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[@]} + loong? ( + https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET} + ) + 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 sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and +# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in +# Gentoo so it should be widely adopted already - however, it might be possible to workaround +# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wasm-sandbox? ( llvm_slot_19 ) + 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.28.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 + &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" + use loong && eapply "${WORKDIR}/firefox-loong-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-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-nspr \ + --with-system-nss \ + --with-system-pixman \ + --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 '' --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 JIT for RISC-V 64' --disable-jit + 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-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 + + 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}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg 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 +}