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 4BE191584AD for ; Fri, 02 May 2025 14:30:27 +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 1CB7034306C for ; Fri, 02 May 2025 14:30:27 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 4075111036F; Fri, 02 May 2025 14:30:22 +0000 (UTC) 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) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 259E611036B for ; Fri, 02 May 2025 14:30:22 +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 79170342FB5 for ; Fri, 02 May 2025 14:30:21 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BA8531E87 for ; Fri, 02 May 2025 14:30:19 +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: <1746196216.0b6d2cd931618d0f074e5762113c64c9d88ddaf9.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.1.ebuild X-VCS-Directories: www-client/firefox/ X-VCS-Committer: juippis X-VCS-Committer-Name: Joonas Niilola X-VCS-Revision: 0b6d2cd931618d0f074e5762113c64c9d88ddaf9 X-VCS-Branch: master Date: Fri, 02 May 2025 14:30:19 +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: 73c4f04e-9bdc-49b8-86b3-8a79f9bfa584 X-Archives-Hash: 61f438245d123528ffd6060f2245f0a5 commit: 0b6d2cd931618d0f074e5762113c64c9d88ddaf9 Author: Joonas Niilola gentoo org> AuthorDate: Fri May 2 14:25:08 2025 +0000 Commit: Joonas Niilola gentoo org> CommitDate: Fri May 2 14:30:16 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b6d2cd9 www-client/firefox: add 138.0.1 Signed-off-by: Joonas Niilola gentoo.org> www-client/firefox/Manifest | 101 +++ www-client/firefox/firefox-138.0.1.ebuild | 1397 +++++++++++++++++++++++++++++ 2 files changed, 1498 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 3ef79d97497f..50d516f4ac1c 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -507,6 +507,107 @@ DIST firefox-138.0-vi.xpi 468818 BLAKE2B d074a9fb83b7980ce3ca6f15ba8dc30bdb804ff DIST firefox-138.0-xh.xpi 273647 BLAKE2B 75496944efbd543bb8ff0058369ea6db6164ccd27b367e314f75de568fb4cb03cec693c7ea391064c8665bca695ba07cf721cc5c0bcb9bd4f704c7c48257f7e9 SHA512 5d0ba0227411539445fd31dab33da2b5e350e9948b45f6923c26fc1d965b1f5d2815209b968bc776c42fd58c7ecdc058f51d7a7e32b73a68fa730231d44b43a6 DIST firefox-138.0-zh-CN.xpi 460404 BLAKE2B f0bced01ac27047772d4cde93e8490f4e0c2e85511944897ad3dc0c81f3dfa253b52bd09621bf0a4065b531adb1e38c2f0c9b6122035ce88f07dcf2d9314191e SHA512 10957afd36382b7ea56623d637dba6edc9010bec07de4869eb03165455c1819bfa13ed7110aaacdf595b9fd28a2fe1433980ccea860ecc562497ae05ddb92696 DIST firefox-138.0-zh-TW.xpi 463431 BLAKE2B 779daecf3269e6389a0f9fe5ed70fd7d95a6f358996a06925ab2d5e2097a081ea4f3a5e7d01d534315fb2c1133eda6391b836f5d1d32d7098f43831e8a2a7744 SHA512 d6903b2c014f6c50a0d7eeb1f04160bf349f885fc89932d49cf0128fe3d1a3eb14cb7e75870718b50b8e719230ae7c9040eab887852507dda698f419e427fffe +DIST firefox-138.0.1-ach.xpi 295291 BLAKE2B 7a12e500450a15928054bbc53c2aac856b29661db78700e5597156e45da0b699b0fec68e4af1a05f72c0a59d948d5ec73e45772b78f34d60220dc334780dd4db SHA512 c271944fc08713026b95b0558adb9a0837bab4cf821bad9f09fbc93345fb1f2f191bbbd3d1c48950ee6bb3a270ed456923c9beacb2ba0a61776334097b8524b4 +DIST firefox-138.0.1-af.xpi 267275 BLAKE2B 13431a876fdf30bf2cb4cdc1655003446268530c62106fe2a0a61d13999bd324c118db69265e0974b90ec6870f04ee0dc8619ce7e537e1f6588f86409a7189e1 SHA512 205c07273eb17048e8bdddbf030e679479e2eb8f9f7d1012537c98b937d81ca587f9bb95c2ab5d4a3e1675e39a794f3c6ba59ef9ff15d00e39997bb71ba4e300 +DIST firefox-138.0.1-an.xpi 333076 BLAKE2B 577afda49a8f8701d985d8a9dfc2aa5fe11faf9cbbba5e0b1c6af5d2a3083dcc4d8e317119a33591ec63179fed65a0b8ccee52a1c6706ae943d9555ed2c52e62 SHA512 beacf8025ec60fc634b13e71fc24a3cb72008e0f63d017461ee96cfaad23f99b494f2fba362d22cbfeb30426daead0ff439f8e2a83e7d6ed7e0f13ffc426324d +DIST firefox-138.0.1-ar.xpi 437200 BLAKE2B 82d985a283731695e403a9a60f1a70117e373ccdec8593f6ea325ce89a56715cdf55a9ff501513ada1a508c2abca19e70cff24847233485b42c639f51ab52c3a SHA512 14104e9095530a8b494a92d3288146c16be7615d93a3cd6f587c5e432d5c9b51080d9cbf313033e70be8f151e216127853eb0e5fe0f0d377b22d4c569bc201bf +DIST firefox-138.0.1-ast.xpi 313966 BLAKE2B 79293d0e1bbe674f308cbca57bba5464bca6dc2971f0cd8ee69d77224cd30f6eb2c4f0e67ff4ffcac4d551a27b6714ff89098a0d6c04d9772eefdf386217b6f4 SHA512 1e70fdb20ce0f9d6e8073395193a7dca9ad2047aca2ba98abdba2563551a57304c9eed8e9c77f7e6ab3bf2bad86e794253bd913b3947a5fa01511bbddb07007b +DIST firefox-138.0.1-az.xpi 319121 BLAKE2B 9881195de229e556e9b962b3cbb0ba9ab3088bb1b294603bb34b0f1dc1775f801dbc9217f37ff92fe61bbc6668f670c836ee478d9e502710a4c1c7faf94f758f SHA512 bf06eddc5d53bc0909c2f2405571f3464745c2b9389678621c800dd83fc0cb27e995ab6b62a63a176575b9633da95040228d185aac012773807b0d30205fe93b +DIST firefox-138.0.1-be.xpi 515962 BLAKE2B 8f6f608bd51a615ceae02eeca169e02f898f8c5260f53cd9da5cd534b8f494461fe7aafa1cf684610a37a92fefa28dad176eae2f0553dc6d696cc3a987ea609b SHA512 5b6d446f7884c18ac9ffead10b861ae4550612636275d90ded8147ea30d1784923119743fca5418f1406e4b3dc8749a6a48d0f16cf67c9703b5364a2ae6766dd +DIST firefox-138.0.1-bg.xpi 448972 BLAKE2B ed743b5a299142963c19ff5d89a93a8540125b210555cd9dd006951bee7b47f341d6e2b278854257b08bcbb20d2a734e1b1aa62b91062b150bd0b2de54139d34 SHA512 ae3dd2d9432ef1390eb0955012f67fac0943d6646d17a9f102c9381f18246f6ebd1d25b1dd555e1de7cd14847030264656db11eabc40bcdb0922c0789f43c0c8 +DIST firefox-138.0.1-bn.xpi 413605 BLAKE2B c7b2f4a92d95dac75591b8cf2329894eb8a2c499efd2c45c24d590e3f62d25665252769a211a943bc1a64d6a9f83320a03fff09ab8dd296bb5f8309c039fd3be SHA512 2a104e81d88be365f1bc094db549c1d1a0a67995004977525392550edb42acb610a6a969aa656d0977883ee38c9e0b84f2ec020abb8cc998056b24387bb0c529 +DIST firefox-138.0.1-br.xpi 394176 BLAKE2B 318006edf2d6f4b3b96ab332cad090d58af84d7dc63083a99fe7a6d1281dcf7f326bc90e37cbae7e3f78aa81b22085161d59eab8fbce77506d45fb8e23f9a8af SHA512 fb6b543d53db9789dda8fe20daf792c8fcc59befccda6eadfa55ba3ab9c73cbe580d8deaf62be528639d49c669233284e4241d1499aa3ebfe9c11235f7e48075 +DIST firefox-138.0.1-bs.xpi 364816 BLAKE2B cc7a7c5f2243b6db691a4b6db0ea47e6aaa2abece5a3bb81934f3f8f9632d2492c8ea60d71fd1f0c1eaad21525cf29235d0418ba59ec35fc9adf9646b2560498 SHA512 3c26247dd12325079003f1b5dd93fc12503fbb94bbc512377eb9dc333d4077d061c00c04026440c2daa2ae27c94bcd5054c712192d545485f8d71ff3ea07bd28 +DIST firefox-138.0.1-ca-valencia.xpi 359059 BLAKE2B 69fcec8d329921fb3c7abd2444dcda02a5e80be1fe38d2b75021b295b971b8c97e10400beb4517eaa18110c41b3ea6091f6c5c3a32f1b31664daa608bcbdf482 SHA512 e09a7aebcffce38f52c5c54f3f6cbff4b16d142f61bf0e24c9b73e92275e5e99c5ceacc2065b18a99ded81b7a6b685c6194160e8674d1757cfcd12b59a09b7f7 +DIST firefox-138.0.1-ca.xpi 402159 BLAKE2B 0a915e1c614cc362ab97497946fa30b95346cd48250d0ab98c844ec3fc3ed85626b56366a58c123443680515bdabab804f390d6ef8d1f34900a692cdab5d5c33 SHA512 32a47ab4d56344f77c0d106ef3a7b955377b5158101f7c343ef4fd65af5fce807652cf3498d4b1429b88b9b8d6617119783990b482764ce4971f2e7a79871c86 +DIST firefox-138.0.1-cak.xpi 392708 BLAKE2B 82deb6c140b93096264e031e1bc295c45cba0a182594a569ee7f6ed7c7b6b2abea3c47273ac722ebd1df1620a614e99f4258b863dfdd7ae25f0e6a9eadc3bd03 SHA512 9c1e8f3c57bf96acc5cd49343a76f3a3ca001ebabbc12d82e9d8363f060b33dd8644ee7f0422f0418052b9bcc4a3313975b39354e017b7fb7292e654ebc7a8e5 +DIST firefox-138.0.1-cs.xpi 475087 BLAKE2B ad183874235009cf9e165f1c41181f3c58be6d9154cba16906f2213654120420bc89c07df84bff5a2ce192e8faece20811d535996fc96f9c5ba74874646f6b0a SHA512 70641c71f2ff1aba7f8ede364f3c8e9f09f431e62f1bc9e3c66c04315d38b0cb7c6c62a4314ea3c5751886ff5793a0524e23a9c9dacfdd8f3e25ae2d8b8bab8d +DIST firefox-138.0.1-cy.xpi 441396 BLAKE2B c72768d22dee7a7ecc3af4e93a8fcd2b4038c75b91980f41fd35a0f12781237797c2aff5534e28d74c2350f07ed4e3b0068f77378109f1074e77a24109879f63 SHA512 002814ca8b7ea5efc30dd21cf9d3e1a66e69b375849959bc6be79604a456e89787fb8f606b8a0c211ce3baf90d71f06c7e6d2fc4b98a0f9766f107733f69b790 +DIST firefox-138.0.1-da.xpi 430739 BLAKE2B 165d6568fccf661fd764dfea32bbf9e6962357bbafb65dce672a188b4719c92dd3d3bf557c8c77554397fac7c0b11aaec2e87300581afb7c48eb101216ece54d SHA512 98ea9a3f4ec6be0bd884c6b72689e0414a3f9550126218ef4397458adc92eb4d7ea91387626316ec5004108501bb45311a7db81ed34faa2813d437fe7e1cc5f0 +DIST firefox-138.0.1-de.xpi 452226 BLAKE2B 4c70883e67c04fd77a39263e043c60141c342d0ecec92763650df1967cea779f05aa359984c703364aaadd0591966f03fde6405d605cfcf3f2f6484032a8d842 SHA512 b5e7f4aed9364f90a2eaa31bc7a6422dab108ddaef292b18cf7bc96f513ba5dc0501ec1c039581ed73a2303ab528c164d71276b8c3883f7f25f83a297da0b778 +DIST firefox-138.0.1-dsb.xpi 465482 BLAKE2B 655ff804da39186cacaf39cdb808ac0cb72af8c0cef482ddc80ddf521dd955441d6b326edeb820ec5ce81593f857013cde12bea2e15b800d754195fb1e394993 SHA512 d97d8506b8d876376f0d2f39dd13d14ae37227287c42b3c16b960f2cc403a34f48a8683e7f546f6adafa659e72af3884f3f55a949213c952b31ee0ceae7ab464 +DIST firefox-138.0.1-el.xpi 536314 BLAKE2B 1b0ac2b767f0e8a7390783c45326cab492ff89faf967defa1f9e3b5e3c3161a919e113828c57ffc1419ed191b46f29f4bbf5f8d1e719c87efcee03657ea3e447 SHA512 8f3cdff42e154ded10bbf6dfb967c929b5c4178a94d42942f2437e8705b8b8ad435aa2eda3bd1f05812dbc7e71a3c75c3b86eefcaf0811c8fb17a0f59682d9e1 +DIST firefox-138.0.1-en-CA.xpi 407813 BLAKE2B 09b85fd90aae99629467a6a1107a43b94def7712c94fe84b9367ce0f5905f020525ef276711b1ae7a25df9b71eeed497645518e085650a6be49ee39dc26e1241 SHA512 fd5c5ebba55c580d259b8b7f740697bf82cffb31aad6c4d2e49282790995a5cc096a22ebe4a059eb9d1f13bdfa31da8076fd725ef58c3574230fda67e408ae86 +DIST firefox-138.0.1-en-GB.xpi 411217 BLAKE2B 753665cdd9ac83436d67461158855c25b172b72ed8770aa8161849693d355f68911c34f2df0e8a984932c6e8614ba3436cc52cd55b6195d260f9d3fda9327cb0 SHA512 c7f337acd6fb89487201c152f6dcbdc5dd30554832ce0c86ddd7fca9ad7aa690b571b10e28796175a8679a0676f9cff547f8284c2a5c87711d736e2c45279fc1 +DIST firefox-138.0.1-eo.xpi 433082 BLAKE2B 9f1e7ba0e9d18bf1455313ab9c0d356ea66c16d8c1273d8434c94439366f8cd4aa58662b81b0c300eecef20e75ec0c42cde7b67556326a3eaa3ebbda518fe597 SHA512 ca4e21620b3b6d6dc5c4a6c7e6fea9951af9e5261a8c53076b92243892a40eb12b6efbb583483b2cae42f5c7a35d8072e627c02605e839e1ea7ae31e04a92508 +DIST firefox-138.0.1-es-AR.xpi 445143 BLAKE2B 6d538fb35aee5f20c8d1209a2081eb20a84b5fae19b7ea655d490321e046b1d026de01562b7b996ae828f8c4ef6067ab3eecd8283e2a772bfdecaeb8765c4bf0 SHA512 3a5d8c1ab237ab084a7e621002dbf384cc75fd6dda71f5dd19922db4890774aa50bde0774cba9f56fe5518664007b467ef2496be493918366cb022ba4b40c7f7 +DIST firefox-138.0.1-es-CL.xpi 445862 BLAKE2B 19d509560fc252dc4bd77960ecbea9e4bada41d2cc97b508d7ba16e1fed68af36cab683a9984c89c84bc45df0e654d6a7803bcada123bc07764650920faec0a6 SHA512 15b53440e5ee7fa4f2af164f355e80fe7173ad656e64da77f84a370cb8cdee5f897cf7812ff23e5fe6dacbef37b607d5d91ead2b423346cfea3f399270f5b591 +DIST firefox-138.0.1-es-ES.xpi 446609 BLAKE2B 8408b567f775bc62c6fe81c38015ddfbbf08f9063cf4bd4d1ea5344fd8818780bca948e3950da65335793469784d33bcde69e2497601625fef3b1549592c237c SHA512 44bf8548cfee1ce9a7168c30bafa8b51ece70632420b418d9cae6cc7c6a42b7f9a785925e08d4b7a550d15118fd8f0b333aceee6f179c31ebb6e12a9df30196f +DIST firefox-138.0.1-es-MX.xpi 442564 BLAKE2B ede65b1460cb333d90d858b47f3e64686cd7016e366df81b9eba3c072dcdb02c28f475a712f1fa3656f7fae16fc64a698bca532957d003d1589d3eff8ac1c14d SHA512 f79d5573b1fa2ac7dae503502189a07d9f24f222cdc239d85215a0bc3b852672c4c83c6cbb7c9547a241f22c9672ce851c2704f2c21963f7e9c8c603b63e0b5f +DIST firefox-138.0.1-et.xpi 359638 BLAKE2B a5215b8a4a6540e1ea1e8b277defcfd1f07b28f3e455068dba968e762a0c6d58f91bcaa220ca9c7fcb80bb048a4cdfcd825acd807d91e7c1db8f6d88d56c063e SHA512 6221afa5e974d61600d0929f946a6ea7516e837f62f30f5689fd6f3d08abae1463243ae21024b03f1aa3050807097f075c5e34b7ea9dc3b722095b427458ce67 +DIST firefox-138.0.1-eu.xpi 413930 BLAKE2B 29ce80dc6928e222cc4f2a08b9131b3578e8b94fe0dafe9425318e54aba330c949c64a072ea4ab3b6d85fa8eacaf1db7a79b80aea36f61016421a226609c3ae8 SHA512 a9e3b9fd57d1c5648dc21ea4ef4b08333874d2d9d6d252f7e9c5471f41ff3344041106a9aecf94cd77936d9fb9c9d18a67e804a0e7b900ad6911ededf7875a33 +DIST firefox-138.0.1-fa.xpi 412993 BLAKE2B c17a762fb9b5140847c0777169ba932a026678319f3b37fcd9ad91189e38244cc25bef00066a462e0be1ee54c8f33c6855ec8af8cd71272a49781c0d90b05200 SHA512 386a43ef1718695055f227c194b1a5e774508e888e30c77a35e11b43b400bd710819d44fc1fc51cb799475038a0e61debf6699ef6563b51e5a514930c408e8b7 +DIST firefox-138.0.1-ff.xpi 311289 BLAKE2B 4b9d00ae302bf19660ff05475015c4440c1fcc2bff084f4000ab067a1357a52a856f3766696c49ad90d8bbdbc58a935672995dcb5558229cfbf1119498b6cc28 SHA512 67c8937ffe8e19f8c45ad27f75eb55b2a2e13ff7cd96232a53f96ee58882734bfe3bdf51ff3adf1ef0cf24f4f65f304513cb2a99f634f6c4ea04f97a9be8b35a +DIST firefox-138.0.1-fi.xpi 427752 BLAKE2B ea9f62134be069475fc549efe7e98e5b94371f29af2479d6be0fff94a3ba62c81b65e39631459c4ba518730024f254bd3f47683990c926dda233eabd568e780e SHA512 e05eb135c281f77e30fadc80efe6e4513773fe1e718241af5eabde5d39164d35a18672b8c27b7835bd8ecae07993eb67e7e5e3c3645be2ad8422042557e0083e +DIST firefox-138.0.1-fr.xpi 457851 BLAKE2B 9ee817812dee23f71a983f250b8c54761e9a0835153588b91c075a7930fcd68e631090706a4ad038d28d1acd8d7c9f098d4a97bd890a84b40c857507797d9e91 SHA512 8e1261017c24879166e7ff7bcca8180f40387f721e72276b3dcffbf6f497e3309509bd8689e44b259bc46a0390384c4a9ff9057ce538846314dd11252ebde557 +DIST firefox-138.0.1-fur.xpi 451298 BLAKE2B 2f6c4ffd06310d8969dddc2beca1ca84dde7c348739c902e768a023fdb79460c3f2ced6d893dbf955919d73c950f2ca8120b6d692a60cd07c4cee9e32c5a16da SHA512 8985d641fe746e38574231964f977d208025d431a054f48c1d1fdbfaa33cc2f472b336c4e4709bb7bc1742050c2986e8c569b12ba14d31e0f31a3e792f653568 +DIST firefox-138.0.1-fy-NL.xpi 441756 BLAKE2B 87a30a9e84bf80e5c307d7552119738584e1cf927a9d2d781bfae2a572d32f6026dfc200fcd31803b73a988136c089ad0405197d12c4fb08637aaae41074f628 SHA512 40e02d53bfc445ed01ae04c33c80a83d7f362da2655af4f07876492443483301bc07ef53b6dfe819b2e8c2590b1e74bdd0941e52cc213fea4bcccd560027a5e4 +DIST firefox-138.0.1-ga-IE.xpi 316392 BLAKE2B 7c6248f5dd2f15b924a4cf236545e5fa6ee72f27406fc80e03f815b1dc343c7c0b7b561667ca69c7796e9607f8a3a3aa4e2b0df16eb7ed69fb5ca50e0189ac6f SHA512 76083d26feb7d9191c071f0e5a85124a540f3abf4c8ca6a28d81c34d65c6a3c2dec1b8821ddd833f05dbe2ec0818d397668d8e64cf41466fdd17503e5c620a82 +DIST firefox-138.0.1-gd.xpi 401177 BLAKE2B b9b45da654e007608dbb705e093c186e07f7ef770eaa10dedcd59b64ba2995f862bb4c033f583159af8e2297d343e9a59aa77336f1489f4e02aebf4a0c9ec146 SHA512 5bcba76bd5d41a3afd5f56fa0d255e33a0c3278d2c0214d9d585327596c6e56bf5e22c2921c505c8c5b019972cd5cfc818eaa0c1a137dd9123b090d839590052 +DIST firefox-138.0.1-gl.xpi 405204 BLAKE2B 1728decfa09c7bdd7906e9482cbd47b0faa0182ee0aef5e1bae6e62a5028440de801c36d1328472d8e11e6b27ec1678317cdcba938f494976db5bf688e020992 SHA512 406a32347447f59b04a98d410e03a79fe8c9726e55dea347680f5a3cdb1fbb344fbdfae63a78e454b22071aab5e1e0fbc83e01257ab76c72c5c1defb5ddb2058 +DIST firefox-138.0.1-gn.xpi 448237 BLAKE2B 22d835b280cbb55b9382922fe5f2795066fbca1055794fbff6932c4cfd1ef2a09886c8d6b55d111f69b9840226be78ee0c4ccac74dc5e344a00c3915f93b15dc SHA512 f04881c4dc07adf76eab0a68d4526f7ea3ae74b240a8517e8cac8bdfe8824dee36dfd911ba031eb9dc7f47c01df42562daef4eb76a0ed0e074cc12670e9755d9 +DIST firefox-138.0.1-gu-IN.xpi 359740 BLAKE2B 0540f484b6b23b5818280a9b03e82ac5398f97e864f66e168ed12d8b0985c3e1428af0619fffc17e0ebafc369574f9e123764c787204bafea87f5bf0ad4f24b9 SHA512 6ab9541a048b1cb3076e9656bc0952c0633acfdadaab6168909a03e0a608a20e7ac53de605c3a158c74170cda3e4ce7ee6ec147f1b373e42b94c7de9f1ddea5e +DIST firefox-138.0.1-he.xpi 443175 BLAKE2B e62ff4fc6bd4fc1d5c6befc491764664fbdb452afcdf1f363ccbfeccc34d36bdc31495f65ba0c9c6ffe2433401231c846c149866fc235ab35db8ec0ddca0dc99 SHA512 898e20d198638012200847836ea4bf0c419e939c947658984b4c564ce910bd588040d53018e8c9c8a7644b5f2140c99943015e823f60ada781e17429fb764a70 +DIST firefox-138.0.1-hi-IN.xpi 378243 BLAKE2B 28e01051b0e2f7545d6523b49d2b07161e1db3ea84eb181f0f4297a7ee18b6734b829883f91d32edf44966b4f99d0bf2fba2eeb95304bee818a3cf8af67881ec SHA512 4f9120e21bd084b3abb9387303ccb32a68b3fe3ccab599b6af3610d7890902f2fb648e6f1fdcada337b58fc360aa7ae87c1a415bea4ae462af92dbc8fcf52e47 +DIST firefox-138.0.1-hr.xpi 429593 BLAKE2B 630decbac6a99bec339be35ac9ed834d10b527fb38ae09ae808300e344ea599f3714e5410b7a13e7f62395e5c2bfd3a658c9642ae75e43b45859f75f6e13dcb4 SHA512 058d76a18e185dabc318a860b9f037171b43f07d0a1fc221a7260d4dcb68fb99ec6215a7a59f89da6ea6173309f914f11093998c8a1ae73f67f15506c95b6583 +DIST firefox-138.0.1-hsb.xpi 462124 BLAKE2B 0dc953d7e2ec8b0803507d17e1bfaf70d5194874ab31dad879e14f83d49f64cc18ec426ec7167db90e61f65c1b21f1cffa9ed005038235843c8874379c7f0013 SHA512 008be105f2bc5e3ea6d23878409e7ecb6524a7f46b79c286aa5672c5ecb165300d59cbec2d2b3901334518a2ff2b9436f324cf8ec1705c46ccda724978ef0eeb +DIST firefox-138.0.1-hu.xpi 465929 BLAKE2B a889e0ce32255f43277bf3d053971e7147183803a9864b3cda8b02d5b65bd2286334f30cb9ab7ececac1f8e7624985fa3e47395c56bf2d6de1868f2cd7936b06 SHA512 731c39ba92eaa9c8f8372aa7ef56065eda3a05268f8abda83abba0ccc5e198bc52f0bc0bfcd4c653c46b38b0e1dee08338e006ff34f7782b7e254749138a840c +DIST firefox-138.0.1-hy-AM.xpi 453834 BLAKE2B 3bda99830b448fb02288d8692eab9707a04d99a399eff15db77d9dea43b9fb7620d194264647326e0cfcc2f397ddc5cbcce1a506ce4b69f5d9237228bc426f81 SHA512 1b9b4b78147b96cbcfef3579e4767d72a627623be6c24935f1c090872382ac16180da95e5948d472e1fdf96a25815f0527c729914e36b2ec8d0017205489e2a2 +DIST firefox-138.0.1-ia.xpi 429678 BLAKE2B ac28478a86445e12bde8dada793e8c74f51ba20d6c0e0deb06268b246e8846c07950f695a1b5310a45b4f74e44493a0ec222681a34b580f9a1eb87894a51b506 SHA512 840798da6e76c9c7c4e42d253e0152ae444c3ad4f37ac0f88ebe1ab546734562108b94e019d2067846b7f806fdc4fb715e493418593bb028bb5f5bbc07221009 +DIST firefox-138.0.1-id.xpi 424273 BLAKE2B a35e91f87779c2158a7ae2f5c284782bbfc8d7f73f09df2f4181b69271fe48a8264231f117cedd967e86edeb7624eb20ed3c06545e6ee0465ba3ba6e19a85f31 SHA512 39468467308c566676e1a6f2919cc437921268dfba7167a496dd008fc159d0176423c2b71853f9a28feb72a51baa81b644f9639e9bcfd8d6f90e3743ca764fe6 +DIST firefox-138.0.1-is.xpi 431992 BLAKE2B 1976666c3cd07aec2156286b52dc70f82ee8905b3b60ae5dd0e557d3d83c1fbb8222a702e0dbbc85465b06efbbcaa6d691e6c1faff6fb2f64d298243faf7e0e9 SHA512 888966df28b64844bf710988cd180737afca75f5c8450fcbe3a423c6aa9eae12515140100dfdb52e5de47b78feeaaf2b613581153f4be75e5d57166ca87304bb +DIST firefox-138.0.1-it.xpi 440395 BLAKE2B d4c69f749572f7e4d248ab79cc576da7b26702f5d0cad0a9355db8cf99fa37dbd91edfff8acc076de62cb415b235b1997cccbd7a8c6bb4834c9267b8c74f0c22 SHA512 e9015cc383beacad425cae1e79119764c5359fc8796580e6bc6561c0de2ff43982af57664617b270b6e36a8dbe8d17e8b424ab910846102b5642d7db89c86561 +DIST firefox-138.0.1-ja.xpi 480865 BLAKE2B 46d358047273a38ca0bdb84db10076ec6e8da7ad5db82bc30af886a1be287e299b0eb5f9dfec645fc8e965e316c08d0e861a4d58f706665ad4db3dd0533de34e SHA512 53a59b122ed3426aa51335b8958c6d8b8782a5d1acd34b06e93d5ed60309286a9291e74e2485f6a986950337a00bf4a12e2c456cef7a36e5a6028bf1bb5fa45a +DIST firefox-138.0.1-ka.xpi 494232 BLAKE2B 48890cf2d25f2cd98822f9bf1292e9306abe3c94c69eb89162a07bc502d1215721e8c2f1e8e303ddcf368cb3240c0c0a2b49c4200326e1cf2b1a954fb4952aa2 SHA512 8360c8a760a81c788bf4c95f9220fbce534ab8f44839c40aa87d3a518e7f48f4997a3edf4cd8142ded45385032363a57a2eb8218f304a8972d52d313b89fe627 +DIST firefox-138.0.1-kab.xpi 413553 BLAKE2B 943e3eaa49c2fb4c42572d2ebe4dfc703f5cedd12a0d0800432a4222be38aab2f8c11d944cf431144cba21d50a8af20e11e47f482e30ca025f59f44c8e32afde SHA512 0b7a82565c08ee33907000a57d8a05b8d27d20b5531430cbca10248e0b506890d1babb2f59d7b2021c5dba0505f7877f108c2757ae3f3b0b1ab35a82f8755d00 +DIST firefox-138.0.1-kk.xpi 501961 BLAKE2B 7e8996669fe794b6975b7e96945cfc1630d1820998b55cc8af5c28974b34e0114a96fd6b1a0a4aecc976b984387db6b00bf45796cedb5f34c7d3142013030b10 SHA512 e622d6dd1fbfdf46e4ccfed97d013651384d1bd5a1b4572f1cd910bca88bf6152210601194746f291131029a7482a9ff7ec2bd5b3fe0ce999f2773f93b6f0e45 +DIST firefox-138.0.1-km.xpi 349523 BLAKE2B 8ec4ecbc248b08af0def464da3a1b612cc4f3680773d258240b5fae4d76536f712d6ba38961300b37f8f9823e1d274072fbc9fe6ee282e471d2c24ece506e56c SHA512 4788fa02e032b8a53924045356d9a7f7e6172ecaa70dcb62b3ec46d27daea1acd932cd71a31ec13c0ff90123eb7b05a57250cdde60832e27dc6ef7b30357b1d6 +DIST firefox-138.0.1-kn.xpi 332434 BLAKE2B 37756a3e07af0d1b81a408f963b1720f9661b978b4b585b55485a51f9d10570acbd1d27e83880739579e842b560bfe6df743506675c45880c99449f89ba6ae95 SHA512 4254171ededc5ea3506c7f501c32eb3d70f7bfbef0f223be9b75596405c37cf18fa1b80d33bd93bd35416426f00f2488209e8f9f7dcfa6a298f464530b949a9c +DIST firefox-138.0.1-ko.xpi 467018 BLAKE2B ebd496637ffb36cb25a09c9192c4d7070fe9009ac0392f4f9687a7820b156cbe725ac5f5d88c050c96ee9aff55f71617438950c857f096f099ddce01f61c9236 SHA512 34f3bca4acc9004e6c92be73a68093b949ca89b05b221e8ad09e2d29be5adcdb02e1eec23dec8bc3649f5a144f06f59a2f98576363b470b8f161cf9ccef34aed +DIST firefox-138.0.1-lij.xpi 319047 BLAKE2B 678aca5211e2554b7b67c155031e3d50b9625ae930c881ef5eb7cadc071e818700870823729f78e67845600aa50468629744241a18818cd55f7ceebea15850e2 SHA512 1085a6c451f39a3331609928be5f7d0e05dcfe9bc2a162bf9e2bce43e0d53392292bdad463bffdc1f53b15980a8127e32f43a04abf3373f0f2b5af100a2f4df1 +DIST firefox-138.0.1-lt.xpi 380931 BLAKE2B aab88e2cb1df6cfc80b046e08f8052d4bf35e0449a8acd51d519705c9e2d423facb73d7ddee7acf7a2b7aa6ac60232389f65cb4a0cc6487952a105798375553b SHA512 087b2d59f358ea7f9152b07255b5dd878a2097063ab0996c36cc503e32ca16c6a2a03b70d888d3fe662d9d7fc3d2f26f71799a10f2f1a7d1dce989808cf008b9 +DIST firefox-138.0.1-lv.xpi 389497 BLAKE2B 35234b718e5906fa93ef56ee7d3dab8c415ad502ac634fada73a6dc917e4f1013529c611d0d1510770e6ef02839a6bee6922d8f763cc2809e82e9c843cc3c10c SHA512 87de4655a020a642c6bf943f6a164363bccd44185c003d6b22c2e273a11f8821e7e1228457411a8e9fba3801e3c850fc6c749fbb0e35921771ea2555bdd0f5d7 +DIST firefox-138.0.1-mk.xpi 317492 BLAKE2B e8e711d3fc76f4cbe3deb42224765608c5e8cd3ea57c6475e23459d6b6116fb4aa667887cb681c356b3bf18c557a03d61ecc86e9eb0f590fbd53e0398ff95474 SHA512 f28152f5a7bb9a077d9488dbdc8e1c9a3ab63eeb07b26f779c099fd8659029ea2d98759a031a624a29f744853016f16aacf3956989bca545d08016602266610b +DIST firefox-138.0.1-mr.xpi 356928 BLAKE2B 0f0770dd62b2949bf892f30a2cd46e67432467c89c47650bbd717b3e25c6565420b6a0d64c1e7b88f6f9274606e96f7f680a8a42aed1ceebef58e7f81e9e3974 SHA512 ae929164d4cff68d5e2a12e1eb3838fce962f6eb8ee83935998ea01b528211bd9a806181e70ff61c54cf798c4387f9201e8169317284e5f55183193a70470c69 +DIST firefox-138.0.1-ms.xpi 296045 BLAKE2B 6a71c780a49b9719a207b035704013d6f98683c1144031f4e887be903645e352b53de83224e7c9d39c1a79501f6150cc73d6c053882bc697f5315b63d3d08150 SHA512 6e1b2a75e64d29dc3e51ed9235e0eecc73afd541a5f1018df3ad85040c1a5f416c7f48c01510b891cb23af972daf301c57890453655ea12598525b4658eba08e +DIST firefox-138.0.1-my.xpi 343225 BLAKE2B 76e825d38ac10a79b14a531c4cf50e7b2ebce4999790000f8d1af743269439aa1e21947ede19161beb9caf95f92f61b44a4f0b785b349fa60e9b163a47ecd49a SHA512 2f3fffed57ca544b6140ae6ab6034f3d236d6c61b9b5ee77edef9b33d02e86832d2037c1bea5e2c8663110a7535ab30a0b97cab3e82d2843cb5bc1fe497e6af2 +DIST firefox-138.0.1-nb-NO.xpi 422062 BLAKE2B 85a626f230159ae46368e413f50d203ab1ad95a27523be96457dbd2e91b5351622361c0dd80f0504e58bcb823cf90abc8ca5ad0c2a8826fa979c51b1b65a94ee SHA512 6b8f64329af693126a1d4c7690b9a87c4c0370c2e54e417ebd4746937692a15b2ff1a09e32f32291440094841245eb00101fda6a7b07191b13a18de779e746d0 +DIST firefox-138.0.1-ne-NP.xpi 350319 BLAKE2B 7fc920063759c9b3296f00609a420ea7e042ae8aea22d8653f4f49842a78927a2173f204c9e4393ee80a79fae3ecf33275c0d735dd1f1205e78b2409dc455a97 SHA512 87d52ce43fba274557fcfe06315a9f9d37f3c3d2f69e356339c2aab0571f1728270b65c721ec7f784d24bf1e123f15f73dfc79c8c6730b794e96531bad89ac21 +DIST firefox-138.0.1-nl.xpi 435799 BLAKE2B fc829c3d3585096c22d5868399feb1ec3d14674b7514215da3fd5c222eb343b53663d0433c3bafd9355db981b6ea9c51569a50564d000c217fa83fc0f23f8443 SHA512 b5b51f4d39a97624c6f31d4f17e78b211a34d7b22ccc407c5f4ba5e34ecf19849b6581ced5dd04db33566df08d86a3f02ae16f46cd5062482fb8e6c50e9dfa5a +DIST firefox-138.0.1-nn-NO.xpi 428377 BLAKE2B 79b81c953df0d35ed1e68666a9dbeed9a4b52a51bab7e8929cf55e26cc8aeb27ad6ceafea9e63c7ac3064817cc3bd661df4c238a67c9b6c9e60a8e2acbf7dc1a SHA512 61b3917f5627cd3cf0df9c4535aaaa46b340d40bb458dc8da4f948fdd12a38736fada979941eea0b4c49a67e73ae138f216cf4d6b5e908316911ee55c832e3e6 +DIST firefox-138.0.1-oc.xpi 414217 BLAKE2B 31da010f982953c754f416b753e6380cb92cc6b97f9dedd644735cd6d5810865d551cc01ddd4d432ff5a79fe09423b25009035eddc799f7bc47f50af0bb68aa8 SHA512 91a086f052cbe140dc7d3503452eb335be0296836087831f0b7fa4472092430594225e21f3b2fc4f9a2fd84ca6917a2bed60aeb5d868e5204988497fed5a2f98 +DIST firefox-138.0.1-pa-IN.xpi 493692 BLAKE2B 9fbb1ee9301433ef573cfbbbbbefaa65edc2ebf46085504b71934db9e6e0f93752a6841fce378e2df14c50fc9a6f1ab7bdb7a6037522bb2d9b946dd8e8eedc87 SHA512 ba63e0457ac8ff1ca06c8d67bc46c0887b5a95eb1253897df8fa524d6e8637516097a0d9d3a655ace7dbd862bae360475c9ecac1fc7c87c21d629fba1bc0c72b +DIST firefox-138.0.1-pl.xpi 452923 BLAKE2B 057c756b9bf98d5b63503eab4f030ea57c4402f298a945cbffc53d77f419c51d88b70bec56af7d10c59f821f588b3e86c61c6edffc8efa5245ceee3a32cd60d9 SHA512 f0ce7188b982be104e878bd82d15d494f612584b77413743dcd170ab5d8448adb03ad6f02e769ecccf1dabc76df7d2695ceb81e495c62242b514362d65cef0ea +DIST firefox-138.0.1-pt-BR.xpi 440317 BLAKE2B 8431ea0ed9f20bcddcaaa033d2520db2a08520ed60068c00a2eb897fbe422c96259680a51b981420e08be19509e6e00d539ec6f8674051e403735b8123725d2b SHA512 1c85d41e13dfc96b10b677debaf7d5890ac27fc76951f47bfd1aa65d24a884d1245a734afc110d654556706dc9eea427f2a528ba947f7d962dddd45eda0a232b +DIST firefox-138.0.1-pt-PT.xpi 446047 BLAKE2B 5883bb532ecd9df09eaf2517b64c0ce91fbd54b078a7f585ced493e626ce778d7f40e18f1c0c578ba480aa3c150da950a74ae105a41b791d4d8cb92e80a5b6c8 SHA512 f7dbe40feb64ea5717065abedad5b1e6c7a106f98ed9a02310747c77ebfcb53b09e9c4bc45773ec7e9d367a17966b65ca29f9956dc98882e2d7d55f434a818f5 +DIST firefox-138.0.1-rm.xpi 439697 BLAKE2B b9020d1dba6faadd54ea818621ce505ae5415e62b91130a0188d8b181acee33ddf779bc63e950fcf05587a2591e680024e7b9e94885b975a5f1bc72b03848313 SHA512 3125ea61adf18d39d9bc9a610180dd1327061410c3e70428fc8d472e777a44ab91a1f772cbd0f3f0107a0e3ec465b9bc2acdeb458cc6198edbc1ec891de91e1a +DIST firefox-138.0.1-ro.xpi 366329 BLAKE2B 55fc8c979bd280d10b3a3642103146e000eba5107362cf3326eb49f1cf6dd0fda3f8ab3fcc268cd4ce73a4d8b8c4e7bb2715f1dbf2b4e0d10f61cabc33143004 SHA512 e19201b7a1d2c169aa50a7b2f25b81c93e61c31c8cc2f360aaf087e85bcd1ee3d40ff95a4ceed765e6878ea32c8f41380f3546dcbcdc00a49a6b4b25b6fe2196 +DIST firefox-138.0.1-ru.xpi 524411 BLAKE2B dbecfd38d012e91287663a9568a01a77acb093399e0ba0e3b4b891e9752c52aabe427f44675bdfd7b3deeb5b48e5079cdc03ad96015052851abda4b252208816 SHA512 5c4c5baf71a9e12de676fdf64665aafde7c9c43918599cf46d8592bfeaf4f8f9248fd857cbebc422a2281c8a1ca54d8068876549165b7885bb57c00f2eda98eb +DIST firefox-138.0.1-sc.xpi 406153 BLAKE2B 43b734a198c4542912d0e75baf629c5f7a23e29d0dd9e178e0f463c9e5e3837d9ee53545f9f18317de452a19d5631d39b8b50c934a1111ec328ed75bf0e3a3f5 SHA512 2b86d5d2c2fe754cc2ece4a8ad37aef1ddd2bec18ef3d8597377be4096467fdd64c5c5ab94a6010b54dce64670c5643035fa950532d2c93057496fa0ac7ce4de +DIST firefox-138.0.1-sco.xpi 324599 BLAKE2B 56b05d9d47b99a3d2690647c6c15018585961314f8414f524555e9553b23ed64fe3fce89d4eac74819489e372db96f56c3020bc6511b382e78143f99ffd2b1f3 SHA512 eebb5f74158f2e048b8f41e68a6e281abe179d7b4e28fd4b4ca54661b59847997fdcaff792c561e2b6b9028d6c82847c45592f0ef527362e9dd21eb19694ec7a +DIST firefox-138.0.1-si.xpi 414467 BLAKE2B c7fa3d4a588983bb460602a17ee6f9ef0f851a26074a7aacdda17ed3d9b4fe9b03873004d142101c1ca414a58cd28a2a2207bb5b9343ec3bf5b128edcb874ef2 SHA512 0531e45bf19e1174f3d4bf2ea837de7f0dcfc768de456d987780da025e2eb96fa9d72e5892483a2b00a3c799100b5e2e336594fd8442a617334da01105fef2df +DIST firefox-138.0.1-sk.xpi 467401 BLAKE2B b6186fc5605dd08418ac1bf3295b2222a3a8034280d5ee28b0775ef2c31029ee9fa5317609d1599f898435c173107e1ce68db11ff61e9f1bf76de1fc2658f65e SHA512 fbbc735648f9b580c5e83d4ff44a543fcaee98db68b08688a6deecd94efde310b305df5052560d75205499065f0cab9eb340170d95a0ab15a461759dee4090b1 +DIST firefox-138.0.1-skr.xpi 492071 BLAKE2B fcc5eae876121222271f5622e029fc411331ce878bc5452c8a19e7bca69cd1af15917e45a62c081216cacfd34a2d7c02b1a55af568db18725ce9523d17665bab SHA512 6e089c4103c4f62800e98d7630031580f5d12c1a175cf5015bb47c24fe94ffa173d8feea27e9ed48c5c3d7833233690ba000b0d2886d104f7437ad6a8d9e7179 +DIST firefox-138.0.1-sl.xpi 439515 BLAKE2B dcbe785659639b17d74245a2c9af6f2b843285ea80ecc02eff1d492403b54f792ea127a0ab6487555e9cd447e67adbcddc2db72fcb5c54c8d46d393c702a76e5 SHA512 2d256ef95b40f2af4616e6b60181594b684e7fda2dc8aadcee636e9b2072106bc6e9c5d9143ac75d8aaf266e0a516c4104c29c7afe16c84eb685d48b9eb32536 +DIST firefox-138.0.1-son.xpi 273753 BLAKE2B a64aa8ae2e17b8234be68fbf45be966b53634381f02974a588d9cb2544a465ac9acf5bd664edce7da17e39562959c186cc15c1ab762e8be48e852d1a91401df7 SHA512 61e78e71637e0ff75e053afa297d1b43208b80da6a8fa5aeb1d8a9f1f5287e52128b9ecc6a6e23ea3caeeec8460c48dcda14d934787aa2e6b7d71054ea520972 +DIST firefox-138.0.1-sq.xpi 454753 BLAKE2B 823222855acd4d808bffd0a2ac15fe82d4fea834d77da7224a576bf4b489d80e7eee6c6078e14e97839248cb5a9a478ca6184466621d80f4c52cc9473fbc03ae SHA512 b9b1ccbea8eb040e15995edcda76cd1ab6f4c219163aa316a0546efaae13908114ac8f6d52527cadab3f0cd2cf1fc96e164a94e6eced4994e0ba7528d7fab67a +DIST firefox-138.0.1-sr.xpi 454251 BLAKE2B a319019d29ab3c28468bccd9ac999ff2e3d13e1aec0549be3772c1711ba1f5e57225222776150f491960fdc9fa50a136b3236b324110fde9bd1a68cf26683d00 SHA512 72b32f7f0390bc43aa8569ffac8a313aacd23570eee01d9bcdb5eb49f0de8f01ec05fa4042e26e1d3b16defb90155c1345c8f68598815f4d75e5d3d10a50a67f +DIST firefox-138.0.1-sv-SE.xpi 435748 BLAKE2B b307254354b911aca2ce68c5ecceaf9753584c796a7e84ecc0e43bfad54a5217cfecefd051ef742c300c5e9ae562a75d1ce8e3a3f6da75c7d3be0bd292f899bb SHA512 7cc7ac3a1b84894b824021a21b78dbd479bb666702d37ccc025140fc4aa7267f48f5a467bfa9d8de5d924d36e8b05b0124069a3df02ee31ca60e366da4911519 +DIST firefox-138.0.1-szl.xpi 343643 BLAKE2B aca304947e15d646bc24cbed6ff8f281ef9fde65128ad4df4c65075f14aed5383a47629d7212717af7a8a5cde202ed7151e7dc8c4c416e256bdb19c40f7288f0 SHA512 42571728778df372e91917aada595ec3455b4869dbe09a1bcea75b12a230ab2412ce4d341d2360ee66c506e58bdeca98f63345e3c165e681a9fd6b5c10c46f68 +DIST firefox-138.0.1-ta.xpi 338599 BLAKE2B 56490aa54dd2b3a17ac5936e91128eace518b12c6335524087ffa12d4e4cb78283ac398e67d66b386b01101f5a4c3d54fbe751f116e1ada837e477ab90fe9f64 SHA512 84d2a93065a3328bfc1a701964fbdbdf343f0f0f25a88e491d2613053cf90c5108c0b145e6dd0106e7bd8677324a00470f0005b9f4b69c8893018d6efd7a32af +DIST firefox-138.0.1-te.xpi 383675 BLAKE2B 2b6c54e991e4516c0491ed8ea4f5024143b958339a16722eb22dace6d65b08101ba902dbb77d61f1cee53d8ae4fa442b15ac23af2670eab0cd4bb1cb57245244 SHA512 a0a5a1544d5f0142772427772f60ad16fc584b02a0a98f8ea0bc4f05984d0e8dcd7d869aea3fe9c1340ddd5b552acdc513a73c7535fccf1ad84c45a0b074e59f +DIST firefox-138.0.1-th.xpi 501182 BLAKE2B f950cb127d0a74f3f3a33ee95b302825f45c76563bf5bc6d9dcb0b23c04b8ed2b03a88de26997fd278fb723fe22ac4036f24a5d06da0931dc276adbe9a031d3c SHA512 66b68b77648c39c4cc991a370c4b4d8f30517c99fabbe1bb4a1dbd2add94502451a5fad2959115b1e607d0e44d2aabadb340d2f85c0eb7752f39228e035431bf +DIST firefox-138.0.1-tl.xpi 352249 BLAKE2B 2e6f248f20d843351803c83470494a05135ecf2ec666bc9e957f4099ce9b9de38764ead84e922c59cd108a25df726a7d968eb40ec76446ac88e0ff4cb4bc7ae3 SHA512 d8ca6a60db448047477b750202bb385d2e4f2304e342636062d67d83502a91d4f85c98ccdf2f4a912bf52ce2622f663596b1d428ba25e7cf8f4031c91ed585a0 +DIST firefox-138.0.1-tr.xpi 448022 BLAKE2B 26b4322350f605ea5348b81494e6fc6b114f31f38a17bbcb98d747c710d855549f99c30b25e22e279134aacd2488de3e0201c55b27d62e259bb491104d9411ed SHA512 a832432d2f70c3eb0e76b12d8d4a560c8f0410ab834314cc594eb89c1dfa4b00f13f65e665fcff22b80145b62b80c95fa7c0cdff31c97dbb26ae700ed90d3a11 +DIST firefox-138.0.1-trs.xpi 324158 BLAKE2B be5134e0729903c563851173f33f4619813cedefe1635dce269a10e816864e3a1463a144dd689d9ea267c3a31082db3a1d115bde9df2f3e0ce364c9b6dbdaead SHA512 0717d5328763d07ed3c5dbb349d6fd35371d60798a6615ae99d4cecfc68be46c141a9fb59c3d6895881c174afd8e01ff8351326a172fa75cc82d83967b952056 +DIST firefox-138.0.1-uk.xpi 515443 BLAKE2B 2653f593bdb0f3e3bc86b47f04560f9e7413acb2a2206d049bd3a56a80c9afcfd06d655c2eba3c1b3d11fd209487e4208abd0f4e02b4fdb611d4ee6329280a67 SHA512 2ab84db8d77b6a83e3c0edbbaf06b74bd1d538a97b9943d4591b9ce962e4b87a91ac462627f131ea2061f3542e00bb8ddaea49e488ab0e4a8ab2db333b416027 +DIST firefox-138.0.1-ur.xpi 371102 BLAKE2B feac0904380bea4e8b8a249d8e49480c1abc984d36aaf1d23d1a9d3995f6b96e2a2fb9d1e14c8c6dc15d5e3be7ffa223c01e1896a8e3e890ee904845ae8e35f7 SHA512 50010409a06265c99e3c84af123cd03666908e41bcbc523e3867e2a8f8e9049c2911adceda09e2ada60f81273b92e73603104d0228cba4c8fb6a82c7becfcc27 +DIST firefox-138.0.1-uz.xpi 304272 BLAKE2B aa7737185b6282bf68eed168c17ccc505435d4228698200edcd3f5c2d95b8845e6a93b547e1fb03ae36462150d4ff0b0577ca23e494969cf14a9c200a66c0d31 SHA512 b0fe76b26b1f12af69a0e96d4828b9a666810b9989def7c92e76a4e102e55a4b8b8f3e8d8f90c59e6a22eaf212782e9ecf5c476cc3c37101b0e9bdc00237a867 +DIST firefox-138.0.1-vi.xpi 468825 BLAKE2B 200d44dea1fed595f9c9f36e53d1fa4ba67a502cdb2683cb10a183740129515424cac476d2b079828aa3b2d7baab9432669c86e2db2d1bfaf881900b907a700a SHA512 493988d6f3288418333ca26a190b25a55196a8e9c5bdb24005235d45b10669324f85df2ba6f306cb4ad32c5614e61e1b4930b5b0331624d7409c2f0c363f1e07 +DIST firefox-138.0.1-xh.xpi 273654 BLAKE2B e5575b30cf37b716fc672de506acd177b25f3911bf68f64eb8ca8672c571591d4f094cb7d8e3ee975a3e223c97db11f6f46bd91a5ab45d41611d44e7c8b8e39a SHA512 eddcd85978790f81da7cd4163b827d55d8bae2aba5cbcdc49adffd75ec6ebaebd778f5c314da69c3ab7ed6aa4bc4c6376204485fab9b239dd752eca31a433ec9 +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.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.1.ebuild b/www-client/firefox/firefox-138.0.1.ebuild new file mode 100644 index 000000000000..a54722c6bc83 --- /dev/null +++ b/www-client/firefox/firefox-138.0.1.ebuild @@ -0,0 +1,1397 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-138-patches-01.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-137-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 +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 + + 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 +}