commit:     70d127e82bda917f5dd540b47c29112d803bd712
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 29 11:54:57 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Oct 29 11:55:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70d127e8

www-client/firefox: add 144.0.2

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest               |  102 +++
 www-client/firefox/firefox-144.0.2.ebuild | 1396 +++++++++++++++++++++++++++++
 2 files changed, 1498 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 2f8ce99f17ed..cad114c41b52 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -406,6 +406,7 @@ DIST firefox-143.0.3-zh-TW.xpi 473018 BLAKE2B 
27097eefd694e72c3c6061029aa802195e
 DIST firefox-143.0.3.source.tar.xz 647600856 BLAKE2B 
85cbf8bc58ebfe0432b55a86bc4dd15773a2e1c5cb6aefd15418a20725c3fd12f22a06483ae0003e2f8aa41fefb8a4724d1b5fa6e260a5a56ea612d3f053373b
 SHA512 
c092bd3aac79f856a804c908b76d40409ce052b00176269ea3029b5a3a6885d4d21ce26bd76c9ea13827ff75459b6b4b0566f5aa49035ac234ae5890c67845b0
 DIST firefox-143.0.source.tar.xz 645597188 BLAKE2B 
3e71ba1d711c2f48efb693738efac3dbede6625c2c3a038c777128635ea39e39836569c205540561e5f65a26eb460f3aa84a60d70df4ff728add043e10d62fde
 SHA512 
49fe5e5dbb7539be3e4c517d3cac453ea9b739e61040c4ac1abcf3d6665732fba5ff91fb040f3c0294af0f8c2824235a94e60ac9c26e25cb14d89d4b50c8a911
 DIST firefox-144-patches-02.tar.xz 11860 BLAKE2B 
94fc2a688a938059cb4127c20d674b042418bc994714becf815780c3c775cd3bbd6ee12a267cb38ae3b5b5daba045a692600881afa2b4435031a55838ff9de48
 SHA512 
187fdf7e8d094b89a17bac55448ef4e32879573b05afc4e21b2685fe0bf266526169614ff41516bd3fb05a02406f4c7c5dad680720913a964aebba23801ab334
+DIST firefox-144-patches-03.tar.xz 11560 BLAKE2B 
3e5ee2c30431bdb50b57fb839ccab776017a501f5ebcd1616dcae7ea620a6c506eaa2872610fd23a1a84995a4966a06b2f96fc18dc2fc564684858faabc335e7
 SHA512 
352344eac51833d59ca368f98fc2c2904798a053332b5a640fb899ee5b8a22b44f1289f3b9d533e34fe4ab0036511bb02c95e2c1132c59637d13f918fcbd6ba2
 DIST firefox-144.0-ach.xpi 293719 BLAKE2B 
e645567d9bb6ee95d6f8d8e544f847cb7899cc2da77f01a7e73e19648df1bb21c144b206ff9a36b92fe3b4b58b9cd780a968065616ccf4723f69dc2a0e2cf12c
 SHA512 
51a127ab26b71665cbab11fff6763b38d886baf280a4f427c3eefe853493bf94bffbdc22ec65214b7e27f1cafe2ba603016da28ef5aae9cb3d0238cc23272f34
 DIST firefox-144.0-af.xpi 266811 BLAKE2B 
cca1f87ac2dffeb683011c7cff0112985cd7da04aa10bb2d511ef648730d9e08fa2e3ecaf2deed1d5f95c7ca9c616468ecb067fd73a5fc672bbb4a9d8f02e533
 SHA512 
867438ba596d17023f977973ff43aac1f64dd780b52d9b6d1b8edd9fec8db55672f05596a17dcba5d4654fbbd13a132eaad7b1b77e6ac314859d1acdd7c17495
 DIST firefox-144.0-an.xpi 331327 BLAKE2B 
7d3dc2f24e8509966c313185a14a69a33460d7e558c97d6fda171eb5b354bebb6b8045faa01840574852024ba38ecc596c4b016d02487c0d3b08a6fa7ec9a0f6
 SHA512 
8566bcb394ecf5165463a20981a90ba6d48497b2174199acfadf29bfedcbb2b992efd25416adbbc5aceb70abc9f2849cf0ec0975060ccb476afef352185ca690
@@ -506,6 +507,107 @@ DIST firefox-144.0-vi.xpi 480228 BLAKE2B 
6df671571f2973c79d4524b7ddb505a715322a9
 DIST firefox-144.0-xh.xpi 273008 BLAKE2B 
4ab409c987989c08bd614561dab702b1b1d30ad308244acec66aee081b5cc173a64d2d21eeb6a7cd29dbe121e0960af0668af13abbe8c77673ec1c889d6e3a8a
 SHA512 
7a3d2565152e50fbe2a2c27c2aa610ba3ad487484e6ec374cff0175d6705b0e095ec731ca323d52567256f1666fb403b63444faa8622fb86222a2c650e074daa
 DIST firefox-144.0-zh-CN.xpi 471551 BLAKE2B 
c47873a748010554f5660f5a32f085d9910d433eca145e8c7c5b899080c6f810ed2fbff4be7ff6a0e3a578ab41e7f1524306ac4de87f43a74734b556efa09577
 SHA512 
4e411c1283fa6897ee518608079c7f238e8802b7f12827d4b3dec31698ec9f434e45498787be043ef7a92b594b60b38427bdc983b43a3a50d5a36ba2e697614a
 DIST firefox-144.0-zh-TW.xpi 474785 BLAKE2B 
64b70ad77e13a6dbd36235e3275187b7b41a527f0314e2279ad960e7e6f51d9c904188dca7eab16c4f5d08b0191ed77732a80f0c7f28b3747d51175216f0e56f
 SHA512 
0a367928fb6ea3686aaf8876c694eeb2396570f01e16675036c5cfcefc25df1714f4a400a6d26eb555a2cf450dda3810765695d84c8acb84726752a074a965d1
+DIST firefox-144.0.2-ach.xpi 293721 BLAKE2B 
e8186c5b35ac1ff528d83b17f99d4089f096eef8063a41278f491d33d144ec07ddd74726a19d5a1998534ba6fc3a8ab461690c23ed10e18ecb63f109b53fc12b
 SHA512 
340154eecdf35abdb88d2ff5815940c295cbff131367ce05bf44575e0d13c9c080471e98cd3fe5ec6749b23e0eb6926d261a2a14bcde4c2441efe3b1f0bfa958
+DIST firefox-144.0.2-af.xpi 266809 BLAKE2B 
10d3108d40d5853bb811e609f3bfcbe57786c6383c0c331eec3bf602ed136042ae885ee2f2e8be136f06972f723532502fd43070dbd66e8a55f269d8b8c70ed2
 SHA512 
c886a1fb7060c5d98cacf519af293ba216802fa11c429c849a06320a1a547accbac43fb749fb40c78d19e6fbf7e34ff4fb061121ce75d537e7416ba261af1e80
+DIST firefox-144.0.2-an.xpi 331322 BLAKE2B 
b9349e1d3d809725fb3fc7bfb78f45302e987590e6c769d6771b333b0da8cb11c5e8e59febb93f411506dc324141850fa4a28dd9704ab7c8bca4cbc0353cce24
 SHA512 
c0448e35c50587b8fb82bc687c1372a1c341e11f33c0a319211a2ee0f8211b328998bebd4d7b69b13661df7d434d81f5d7282bd77b8b1e9e92baf370890b58cb
+DIST firefox-144.0.2-ar.xpi 444152 BLAKE2B 
a84b5bdd58aacfbea63f0d68e77b8fd2df16126476f42cddead144225b6e5521aa7166d36e4d91db7f79b10fc2f688d4a6d29dc2e12b8fc85d9e2d0276a97f09
 SHA512 
613786a4c7b8aeef01843bcfaa189b60c1a8229d95ecd5c2c8c6bc78d8cc36cef130d21e860b068bde53b749b36e6ad5025a8b8cae2b9dcde8503047dce5a7fe
+DIST firefox-144.0.2-ast.xpi 311547 BLAKE2B 
adb5bdd269864d1e5547518d3893ed4afcbe0592e42fb151f2398bd1a1f247b8dbfb28584a5add7afd151deabce9b78a0bd23d10e218c074589495d12ece9da8
 SHA512 
681dc80a4c6e812afc1c6ee66f2659f1c6b2fba8e987d11baa44491f6994d539091eba1af72ce11814bf821167a6a4cf047d18cde91ad1795d96b86b9cb82020
+DIST firefox-144.0.2-az.xpi 317885 BLAKE2B 
acf51abc90cbae583574d75183eae9378b42018d36013f57bf10581aeb3743822d8a5774edebb546ed4f4ec5f6746bc3d2340ac30a9140155b6acafdf47c189d
 SHA512 
4838f33c5676604682ab9a7af1a06d95143629db01ab1f5c4945a3c6564fcbe7b753c46bac7ac9f20896a11c1418def3abed2872e39eb80a9503ba1450a7e6a7
+DIST firefox-144.0.2-be.xpi 534479 BLAKE2B 
77a0f06ca5d50322126041a5faa96cef6bc3d5890c259388687e61eab3d9eefb9b94e9a7ac6318ad643a1cfd3ba8e16af3aa9fd5dc6c419c80541e8ce90aceca
 SHA512 
b24b6c00c0fc6d04082403b02698f7cb23b001deab45ecdbad6e5fb9f6355f34c7d4df43efa7160c82a8358a6e5edce90b42750c2f8561b69038f20fdb3e4e7e
+DIST firefox-144.0.2-bg.xpi 457276 BLAKE2B 
e482e481bc992d09c8e530da1a96f9ae92b16049edf96c9c8ec86cca9b2033f5534054c959fb5539f48212b0ae062db848c778edfef3fa86080a7fd952511905
 SHA512 
2c84aacfd3845c3e85c8b4dec61ae10b3f3c6ebca754c9f458888093fb24f65947f3da28bb7283352f209201dd78469ecd457fd98c852f401d452ac4639f3517
+DIST firefox-144.0.2-bn.xpi 412309 BLAKE2B 
9175558420651f41d0d64a77be3e05ccd544d2fad7357833dd0bcb0a2c3db182f899054569981a9264b5564ba05e3783128d856fa59c4699754578e0ea763c92
 SHA512 
f8ab8611a09d4d06777465cfcbffa42d354a653d865bd0533ef186db40cd5f81806d21d1fe4c46d840e4a6b92c49e33360bdbd7aef79a84da3b306bd5c76196b
+DIST firefox-144.0.2-br.xpi 393815 BLAKE2B 
115cf3edbda2dd98115bc26cd6e683a28965b6c02185e3502b8074c5ba7ce1502216ce9a006e6a0e52ca2ca91d386ce42e496c8512adc682cb9515c52a1ec91b
 SHA512 
ca890cb00d64ea69b6af88b246c9217b1a1d747ec52ea6ed7d10eb2e53fe237289b8faba6a31ecd0f15bcc9476508c2935f2f12b6633c5ac3c8281021d3f5dcd
+DIST firefox-144.0.2-bs.xpi 450756 BLAKE2B 
a73d493fae141659d4ec7f36287e5a99021900d521f6deb1da7ecf03e9c94c805afaa17443ce77c04b7cc51f45c26e6d1f5a302c380c56a379e744771d3fd447
 SHA512 
e6294e4535fdd9709ee11cb3b25e33f9fae38feec57e604fddfb6fe1056b41b2f7b5c96f268d53064f0970929a64dd5e9ae9888b590ec7a27f8de31751e4ab24
+DIST firefox-144.0.2-ca-valencia.xpi 357068 BLAKE2B 
4746817828a1b88fb6ea66d0bdc0b8dd7ed419b27705e7a43f53f49233c29690ad49c72da23b2cbe4003246c83c17fbca57309aaffe578082208eee9f1225015
 SHA512 
9ec270e1d15aff6e0092d8489d88055a18df84f1c5986a0ed92414ffe8647ee43473055ca7c39e622213883aa5820d54a7df8bf7b74fcc452af7da297dfa9140
+DIST firefox-144.0.2-ca.xpi 406765 BLAKE2B 
00d154c68462c62012934fcf41bac3e43b6f42c02a9371815c506a0fea1640bcea1e6842c70295172659bf2c7225edf3c6650e9a8921869194a0a9826d7add53
 SHA512 
9a5d8e769641448f5ee4c3e07b40b3abc2d2b2dcd84786ba471f5e18f9e911ffa3de0c392aa9d531bb2d45c1478acd73224d89b9f495a8d35063f6183f5e1bc8
+DIST firefox-144.0.2-cak.xpi 389324 BLAKE2B 
fffd26e7e7a2c8478539f3efc35e6688545de13fe1c22df44d2f30f2c892245b80134d661b39d61724f012dc00865930e0338e98db9340b22c488a20d3536cfe
 SHA512 
ebcc8e81ceff9f4330af1169413869d31b983300d1267b1ca7a40613a325f54cc190b8daeb1bb06236acd76778425ea98894346fb4866f7299365102ab0d4188
+DIST firefox-144.0.2-cs.xpi 488410 BLAKE2B 
e66df6e38c71bf7aeea38ac0c733bd076053defbdac86f76f846eb1df6004ad4a9de4c673bd245fcbd6659c4f7eae300e1357672b2bb4040325fe81f6bbf77f6
 SHA512 
aa832a720a495e5fb36910cd233668233c23a51bb7d0dfdf5813646572f58647cff23858c0dc3a3769ffd7d943509b45dbf24fad0820d7b1826e9b07421ba48f
+DIST firefox-144.0.2-cy.xpi 453314 BLAKE2B 
6842990017ebbd87b19a8491150356bb61695b70d5cc08d0ce2dbdfc22bf202a56e7e201fd636012fafc2bb99983065dee440110f169bcf3ea237967c7a63fa3
 SHA512 
21b29687508f22744c001a9f1f9f1a7743f98cdb6fac6d04eb7a461e80177797fe7eb241043ca71ffae958cf95467000b56c52542ec5469157aeb080fa93e632
+DIST firefox-144.0.2-da.xpi 441683 BLAKE2B 
bee6c1b303ea88a6725e5d4ff713507902e07bbf1334ca3af055768133df0216c6b986170ddec0502da4755a1277b8ca857fc90b9b7c212af8e91e17193364f3
 SHA512 
8b25f898d4d88ab2dcc3f7824ed1cc5920cdf7895df2e381f745ef09856d3893610f01591221fd26e415a4908435923bbe85cc17b902fcb1454f62d907915828
+DIST firefox-144.0.2-de.xpi 463989 BLAKE2B 
224208280edec45bfb1f0456889666f814e1809fe687400c717a4a3aaa219261f4e7e0ce0e97d5a9a0fc1c9f28c06a78960979213459c2712c9f89a17a7b0bc7
 SHA512 
8f711276bbc0f21ff6fd916788dc87e1cf4d20efd754ca96b4e7b4a7653e5830ff5f618733f10964451ca6c4d70f478950741f1c83873c3f1a47efbeb3add9a5
+DIST firefox-144.0.2-dsb.xpi 477862 BLAKE2B 
ab86cbede0043b4e54b6ca8e6a3d733abd5e4a7688a5fa17c670bf5eb3c4491e9797f7ea5113c08eb12096db67277942306eb6c69aa0c02d8aa0cc23d596a1a0
 SHA512 
aba86633d822a747d7cf71396e3d6a1f35530d376241e1f035548e367da6161b086159f22d96caaa2f6dfb8d97f04f36af2b45886bdd1debe1aab048ced76953
+DIST firefox-144.0.2-el.xpi 549756 BLAKE2B 
082f210753f670b0cc88ba26c104e772b5ddbc486cea9e5e2e5a503e2ecb2d01abba85f0ec63db8b0b4151cc310916e9d6553b809ae8038f1dc6f6c7328b6bae
 SHA512 
ea50d00bfeab21f05ab9e2bbd18998d72e6d777fdda1bedbf0d97c76920bf0e6fd564c4acb3a745a3139c8ed9694090c820fe04150bb5bf0ddbaee302ab351ee
+DIST firefox-144.0.2-en-CA.xpi 418885 BLAKE2B 
af8e6054078a92d98c1adf945bccf21ae83f2cfb0903d9e9d06d9d61cd23181ba1b69b0cc809e0a3877e157e94b7ffa0d9492cd6afc7b672a61ba046e319c7dc
 SHA512 
0e31ef7491b4cc638c9da9e099e293e97214f68546653fa75c2a31f01aeb4d5889914b7dafadec8872a19ac5af22a5813db46a6999db15a8fe5b2b45d4a6fd83
+DIST firefox-144.0.2-en-GB.xpi 421158 BLAKE2B 
38cc7047ff0c67f9958ba0d127ecac87f3c8146f0b523a089bf8bfe51013694cf5816a3040f8b58d7a6ad1b306b7da92992188c7619fc1d90d78d988da20e610
 SHA512 
a08dd96b1d12cceb1ee5f6a034b89e9758ea715ff8addb08902af656448532fca1c15bfb0ea950273dadada50c49faf6f72479a3cf811096806d9ce110da7649
+DIST firefox-144.0.2-eo.xpi 444083 BLAKE2B 
3ef05f2aa8b9c2b3b9eec1f23b7a8432d8c8b4f3380a522ab47016c4dd9fe31668b7a3d87fecad18a61fbefcc6b69a9a4d46dcaca9a4a6d45804cb3c0c1ad06e
 SHA512 
1e5f03550d7e0f3deb3d247909167af541148c08df374b4f02bc7978ae202bc599b2c31f58842d11d0928a65266f964fabed4200c669e53c40ccb99eb462ec42
+DIST firefox-144.0.2-es-AR.xpi 456136 BLAKE2B 
3bff67dc5e38e4209e962b8b4fa2f4039bad329c00813128540b9bcbb9a4025e34d88b5fdb6122446579e8e6ae9ba4a8fb0328d8d25ca5c4469d728039c9c8ce
 SHA512 
73e681a1cdd10b629437e85c2327170a9e8b6f3217b9c1431154fb5f02b9d70db45f0496563291863b40b1b69be38dde65ba60511cd955a870d9f710ab2c64fb
+DIST firefox-144.0.2-es-CL.xpi 457168 BLAKE2B 
4c65b7c73328b0684d0c7bf3b42a232ec32bac090b10ec8250311d383a4de4b64fb635b9debbd0042ec4c322397661965641e287e605998215289aae05fca06a
 SHA512 
70857d576e49f545ec4be310ca5c367a35ed5d5a2c68e8e7b437c7269c136cb752b73bba5917d31565e7b3a5909f37993d50495bdcd91f92479fa18a487eefbd
+DIST firefox-144.0.2-es-ES.xpi 457910 BLAKE2B 
3d9252013fb4c91c493caa88e328d9de4f17d198ca4858f7aec7f7a010b03681ff6177655fded92f4afd71dc5f50936b7a97774f9f11319e608c8bda5493d4c4
 SHA512 
ce8eb321d6670b424b150c4026efeffa0187f409d4f00c6b86d496a9dd7a74565fa3e360923d9c820f767a49e440803448b87655c8f0fc46f8b76ad4bedfb3cd
+DIST firefox-144.0.2-es-MX.xpi 450499 BLAKE2B 
00f547c37474b1f9fd285fc1c67ad135f0a1a6114c765428aba0ed8fbfee7f5b442b145762a0f16551623fe2d72db644f16cb0fb9425e8b3dee9d3589dfc7951
 SHA512 
41af123fcf41d7413938dacbdc9caf274534d4766030f4a9002a10e7c80380013c94ae0b5b280b003e21f3e2314b20e9f50102d2b376255ed7bd7888266890cf
+DIST firefox-144.0.2-et.xpi 358187 BLAKE2B 
d2f3af09d8c42f7e319c12d6fd6991af4f2a0d37964ae1dadf6f2088698250e2afc733cde6d8ccfd2f622f43a898c1bd4b2880178cb917f796c6eefb8ea01701
 SHA512 
3dee8c2f955181b8867da8fcfc5d73e3c23d008c4e53ecf83a51ab0c470ff1959dbedaca3c11af71e2b0d29cdbc881620424f1df1835596dbb88ddb030ebbf60
+DIST firefox-144.0.2-eu.xpi 419049 BLAKE2B 
c4c637fce793ce4ebec785fb92d22687b38f8000b8fdbf3d767abf03397473017228cbab0053cb6b758075537e5f9ca55a26f789ed4b3c1062c04bbe80adf1a5
 SHA512 
c79543682770c6177211e6d16fee34ac5a8d39e33230860116664037e580f054054a5b52bfab2027413f25d1fdc499450121a96fbf234f3f7b98137a939efffd
+DIST firefox-144.0.2-fa.xpi 418861 BLAKE2B 
9cdee7d6489930c846549e1d064bde57d4cd80bbc9c5aa7ac280ececc7de23796a61b89253bebd900273a0c8b1039c0a1d0dc6aeb53c2352c7cbc212968c6714
 SHA512 
15e6a2716cd9594d64d22eac669e821964a1659cf12de47d50cbe39152a40e41aff366f2a54b3d4b39cc2b6c7efaf240d723a6ffa27c0e1306f7f2d0a10c4aae
+DIST firefox-144.0.2-ff.xpi 309470 BLAKE2B 
5055d14e37b1c99e3e8706a3d7d14bb65d624408b8705e0c9660e37c983ac05b8a1955df21f7407613d83ee28f7e43452b3abf54c9278dc84ff1c2bd053c5795
 SHA512 
5c6c50024f5429ba7ee52e309677a6989fb9ae7e8cab840bfaff30fc7471502507fbc9a896358155eaa7a162f554787ae96fd860bb89c4aaf33c1ab86cdf30c0
+DIST firefox-144.0.2-fi.xpi 439670 BLAKE2B 
004727915463002a48298e8b828b7d59cd4704f74bc4f68a39249b32be267881bd99e2201986d3b2e6489b5fb460244672c97fff2b7ee85342ebab6a8a88ac40
 SHA512 
868de53f10ef5eba30e8651a8920811647dd81e342990cbe32f5d3d5ea64d603870682e699f77bbae065e1b3006a83bec5b0fcdf664c8dccf21214af8d3708c5
+DIST firefox-144.0.2-fr.xpi 469793 BLAKE2B 
981fafaf36cb133dcd09c5e0b451ce5ce082ff81925d21217995af81f14b900e64492c8d21888a35751c5734e7a4432c8c144a506b00f28e635314fe96b9bb99
 SHA512 
fb262b0e88d920f8dc3a388ec1caef763239af2cdee9274b53aee8be34ee8a7687f75ac2bb87c2c1a6c5726eff86259935dbae35102847ec2406cd1fa9096c7f
+DIST firefox-144.0.2-fur.xpi 459861 BLAKE2B 
4ae758bf2a13441a1979f3d85a53272834cfb8e8f5866bba065c579cf35baa270a5463e05790bfa502be8dd9fd913bdd31eb16e61f4052adcd2b35c41b0d38ff
 SHA512 
51687c443ef071fb769d022208a642c2f61540ee4a76af9439f822d1f87bf9d1ca37a2e8ba8ac1d99723009730869e1ea5d62ced836430dead3da37e8ee61cdf
+DIST firefox-144.0.2-fy-NL.xpi 452863 BLAKE2B 
f0e394f6c025ffb9baa7e90ddcd81326a77b7892c9757d67ea34024c0eb444bf9b9f461a366c1d7c76eda853c417ad1a5c0c34a491aa60fc01facf5eec8b2e13
 SHA512 
8277c4877c2f56dac87ccb808bc868a01555be45bd5538b66f4676f50708315f09976b433247b65ee4105cb175c496d9675bdcb16ad7f3cb3fb3702182503417
+DIST firefox-144.0.2-ga-IE.xpi 314983 BLAKE2B 
0893b3d5483c7862f0b8563ce64d73829e4f56aa5e6ba4e79bb439b15cb42102abe17d1673689dcf37f30f6771f9acab22ef385a9affaab5fbad314077799c45
 SHA512 
11534545c737af9f00661357317123ff3107b60b889ca30947620aece43604a8898ad6d5e9af4959835fbae5ce19b6d831f6d9b603022495fb222b10b3b1d217
+DIST firefox-144.0.2-gd.xpi 397931 BLAKE2B 
6357242701431238319cb57a8916f4fd3463af9b4b05c05965df7d7583a4081a8fa011f36b083daffa5b8e443d3bbdbf99dd64501721068cde864de070bff326
 SHA512 
eb32555dde870a87e75847b9ac40d2ffa018cbdc64d77cd90e19e8674ce761435a453430f574404823a7ed0c86af4d1c1202480e25b43b4968ab1cd463a5dc63
+DIST firefox-144.0.2-gl.xpi 447016 BLAKE2B 
154f2066a7e4a8d74037f07ebbbf6b7b4892b4637a995803c5668455733c1953c621d9024e0a9e5a3056d0e5da473ad177e6ce6bdb4a77473284f29890af4461
 SHA512 
b92ec6e3e78e811a345178f1f403d93b1f190604011146212550eb87f90dd1468ab4bdb7cf60351169d1a5c80fe4dd22943774cbf095dd41f693340cd85802a2
+DIST firefox-144.0.2-gn.xpi 460517 BLAKE2B 
8582c5aafadf6680818a147cd1a1856a21f85982dc270b7334c36ef633c4c5629235b06ac213b942af9214edd7cc4fdc25308245a2e0711c266b21721a1beb66
 SHA512 
85b7f85961eef0232ef21b55594d045213127355d4de48c1e13739d5ccee593f639328ebee05641f50cc6ddfa86133036c6b14c466a717e5666e16fc8805862c
+DIST firefox-144.0.2-gu-IN.xpi 357866 BLAKE2B 
2564eac29ccd07d054113633d40cf1fbf93f3308670774e30aa41b9551bbd54ae67a4ac43e89a08e0f3a8d47120810915a9ade1ca443e93e0b351af8f76a527e
 SHA512 
938cdc7668e124d1378dec4c61fa7707b48d6556b27fb4c46cea8ce9e235d67491032360d3f59a51591ca3873895be7010ca9e9539bb804d70e4e45e8ff2994f
+DIST firefox-144.0.2-he.xpi 456001 BLAKE2B 
eb16fb4c40c6c836c837be0f68ae40115d924a673f7b3875c1449a1b53b346f44f77b34ffa15f47a7cfeb0cf8b33914181fd4950285a32e3f3b1c57aebba6957
 SHA512 
fc5ca363b79f4f41f2e045b9d3ed3347ea13f099881af8d6eda6ed26bee37f24b342fbb7dfd2d435f83a35153c7abe931cbf27761318c8ca382892f630fc910f
+DIST firefox-144.0.2-hi-IN.xpi 376614 BLAKE2B 
1f1570c7cf1178ccdcdc0ab9628146b94fd0687d061d4f25f592b21ac26a104de3abf32a8cc12caba7a8de0ef6d9730ff910a6231f70c5c19fc0759bdab004e5
 SHA512 
0eff3c47879c6715d5a866b0f5dd82c9059f267729301d67e3034231f0dd908acf210a3622a6ec368875e3426fbc5e6fe01857e35f248bd4341d13ae2d00e201
+DIST firefox-144.0.2-hr.xpi 440116 BLAKE2B 
f332f154f9638c1935399d8bb8378996eaf3b0255023c94ecdf5aa3e78693392b53db627b7a65c30d979bc2fe4288349fb071df47269acec0fab4353f0fa7903
 SHA512 
8eea0aca155faef0c55396ff5e982aab23fc4200c5bdca7c6b7d39d31248a0c7c58ccb1d4d878822710bcad56d68550d2a6c1c8bc27358beff4d1bce5e976761
+DIST firefox-144.0.2-hsb.xpi 474389 BLAKE2B 
584706d9d361630a6072e52c4e05c1324ee6fbca10f2967ae5fa3fd68642c01a4f0e443057e2e5de433e8002b1c5e21321f3d1259be719fbec0eac1d25619a76
 SHA512 
eb2ee1fee00894ae7e8788e4b667f0fb3a4a94e3d03832c3740b462e1de814a35c8cdb6f0f4412edb9b59ae82b497c52fb8ba67b2c5601e44e588a217b91cdb6
+DIST firefox-144.0.2-hu.xpi 476464 BLAKE2B 
e23732fab6ac2cae9ba85dcc8bb6a2100289cffeeca491af10ce3ed86fe6462bfff007c623fc42758c873a54eee31f89040dfbf6fafcc4967732824e3653f1d7
 SHA512 
82ebdf142ddffa449ea9e980e013ac818de038dd279b1dc0313f5c77a7661f98dbfe4ed136ad11e09601b714f2c59f0234ae8991d87dd5d20bd8ea30b3b11901
+DIST firefox-144.0.2-hy-AM.xpi 459996 BLAKE2B 
a89cafebdd5bc4e32ea082a432837b44e4b436b64d17b732e9f68f653a900aff6b5cf4b59dc0b3664654f81c4680d0c818f0fb3608e5f84e552bcd54b69595c1
 SHA512 
6dbdcf23b0b66679708ab43910111551315287a04097077d424566619320ac74452e678cc194edba1c381f1e48f5a831e21ec0aa46ef55a494a61fd0ef25b940
+DIST firefox-144.0.2-ia.xpi 440552 BLAKE2B 
36100916315103f1e6278f05fd944ec8b95a13a80f3d9ec3413f6e60b6a56e7a90c1c77568a2ef1394ddc0c38f05eb21ea211b8d5c25e98f7d99a40b84dc1a29
 SHA512 
c8ff64dd7cafeb91ff98a45ccdebbb4b8a3c770b4e189a831bc71770df3d0afe6997d3ef340897d00efc9387c7f1bb5c6f047ce1f3b7566724ea1c9adcf6c3aa
+DIST firefox-144.0.2-id.xpi 426967 BLAKE2B 
7595304ccdf1e412ec76d6f25fea72c0d2ea5e54785551815eb7d37b7da51844a357b88e5d8bf0ac5f2c4700c9c115413451344bef0ef43e211b4e7943f1d487
 SHA512 
fb1bdb2be59b4dfde74ee572fabf311f5686697adae3b279c1a1c6fc95b5babebc03a8be229967f1522340a13f02211eb4159cf39133b9120c7084cdb437aa9c
+DIST firefox-144.0.2-is.xpi 436877 BLAKE2B 
8df5c852c5c4dd9f4bf39026c03258d07b9cf1445fbcfa09a0c7c5c388f3c4f62d3d3996a203c09b9bea597480bfe2f16e07d7020c0bac45ba7de2d840dddaa2
 SHA512 
e7d47bac976f05deb379ed3c7ed788f475873bfaf7c827429fc662f11d7ed6a78db439d0cbc392db9dfa4cfbf76e475ef8ff9ec033e234afdafde3c425aa0fb7
+DIST firefox-144.0.2-it.xpi 451645 BLAKE2B 
a7dbc8ee31b6880b7359c2f375da268fbd7af3fad49bafc5adda040d3f3a9d49a85268f73e15f528e28e4e6b09744b2289a345ae2a3517e3b8930379fba7ad92
 SHA512 
73f4fc3df7ec27656c64500032962294b9f07db46dd71b28bde2fc9dc8d9f47488d649a732e435576278898227e20eea17b2f55f8a9a5081313a85a5d8c3a967
+DIST firefox-144.0.2-ja.xpi 492511 BLAKE2B 
a719a92dec333d6cf41d9c056bf1f4397fe6d757a052ac0a91288551d6de8c858735fb6d6c2362f2edf28ab5af674f0771b8c16c072085f14d71f6e4bd99e648
 SHA512 
d19baf0ec04a2fe51bbf4b400521526b1d9222a9484b650730cb07f137b442b1495b04359603f8857826463e56603fcfab57a3c329f8afe3e6c90407f1e87a96
+DIST firefox-144.0.2-ka.xpi 507877 BLAKE2B 
28d908d65d2f604f6570ae39a0f2872248b8c21353c8b69b7f24dc3af3bc5be51204c60302b82752b0f3019a153555d4dfdfa1ad6019439003b209734e9facb3
 SHA512 
231b43ab0d4367a4fe1df0591f73d73779b38acf56c56b03fc8f77378ae56418673236c9be32d19ea18fc9e92e21b73cef531565759bb56eed172262e8d60966
+DIST firefox-144.0.2-kab.xpi 425236 BLAKE2B 
40b287e4c19f449559a4975677d99d0e45dd087add8f1cd94e72279666880cae14c9b03d7f0cb218eddf8b89bb19a1c82f36b523e94456923b5d3b898053b488
 SHA512 
17fa0c858748912f73208c9d87535c7f52c334e3209bf14bf52ae03cdcf1caa3fa0beae5f353df264033b8a702eb1d9b5b74f49e073abfeaaae7029ae38f5380
+DIST firefox-144.0.2-kk.xpi 512845 BLAKE2B 
f416d33376f08d88799146c1499a76e091266454de796980dcb569e31bf6098ff423e1c34e6ab8cc7bdf1abe10de7a9b019bc4b247d68993209c55c52a5749dc
 SHA512 
b4d784ac42a726c28c4aae53eb083fab1494d1f20a0dc827f85429d7cdc7acb7a8d09f27d46ef456082bba53b7eaf39729198e505ba9c807eeea00bb124a1725
+DIST firefox-144.0.2-km.xpi 347230 BLAKE2B 
83945528304fdf1f7b94a88a06c53fdc76808c5ccf94061949d92bee285663cac3fb527ebd9b48cd57ae0406ae89faf09812a76b8db73c5ab7aeb56fa4575a9e
 SHA512 
02667b266bab69b35f56e1c12cdbc21126bd5e3106803daaa6c0cd7bac204e680af93bc653a87fae8aa6cc7ccfe8b5471deeffb3cfd51e123c5ffd8a30cf7aab
+DIST firefox-144.0.2-kn.xpi 331514 BLAKE2B 
da673e176adbcb160c1a8c8538671e7ba8b47923359bd70507b563549f37bc4e51e6b782e1fee169db2f5de38f850321fbc93b554450e3cba78f186ef17a75db
 SHA512 
9ada6eb3c5efa165f409a032dd79272fa495db1e726027f2d1fcc7c753ada07fb98f25c90f0731cb5c079d403d3080a747ad9974ca409d3eb124faa8caf882e7
+DIST firefox-144.0.2-ko.xpi 478503 BLAKE2B 
512b908266a0f34aeb4fa9b17a64fb8dc3303dc0721da01670cf46121c4c4dd434b5a9ef637c2174a1353975ce3bddb3a0e3c56b62bed136961e9b295f16fc9c
 SHA512 
11422fbda5362c72e978e28b339e94c800d059cb1dffecf139cf2bcc8dc31b5e8eded74a73a5f317e7dd12cbd844b79e5ea9e2b81f1c5d46c6a584f2c0d58a4b
+DIST firefox-144.0.2-lij.xpi 318663 BLAKE2B 
5bcbabce5ecfe1b573b1993af768354e394577e4f76af265f25e5594557aac6ccda134ad7c30fb7fae99ae3dc28f2a0471d5d4634c507f79714600bf9f6c38db
 SHA512 
d4f67e78a5389b56a5e9f34bf07df060fb5ebf61511767758cfc2683b1561f7ce044147a2a5732421e923842918d2000ac828156fcd4a666af901dd0086017b5
+DIST firefox-144.0.2-lt.xpi 378783 BLAKE2B 
00dc84e4113f95f4dd1adce56fe2b85b37602ec58cc93c677fa426c26c2f141351b4a00be78c5d7316238634adc219e83b08638f2b2ce0c2f31ee2b184e4a87e
 SHA512 
a08cb500c544902b5487372d3054a5eb8c1d7450cfb8099acdb630ddbb1886c62c726631473703993496c50d5fc2154f188eeea2bfbb2b214e05f666044f9bd1
+DIST firefox-144.0.2-lv.xpi 389929 BLAKE2B 
4ea11336020650e9769721d15f399537afff59433d9975803f2ea30b6ac2cf162eec92bb085f9fe1862a87c1ac99b9e0618d57d020c232c48d898ae7be3c4b27
 SHA512 
c80f9227f425262e5d5843cc783b2fb2a0876936025f96aee12a893a589fd85d730e9fe62e1266830166ea7bdad2bfd66f87019d62ca29383426c515bf9f54ea
+DIST firefox-144.0.2-mk.xpi 315982 BLAKE2B 
5bd5a652d1253f76fe2e8409576a7d3168cfbcc0b0263a90cbcd5331983d88dfcc1328a803eb862117544602642577ba3afda1e5776aa0d1b189030a95306179
 SHA512 
d1f52e547deec5791ab72a24accd7d902cc5dfe930bf80512a6227c7e1a8d9d133e5404001bf62fdc79976ef9a061ce535092cea5edcc260174ff7d78b7903f2
+DIST firefox-144.0.2-mr.xpi 355570 BLAKE2B 
26087af3c7d79f14ec2caba2fa325567e453d13eaab712baf7e083a28d8aa12acbf2a5b97d34e326b9cb5dfb3dcbd2abc14c88162d17028bbcbd129160108e44
 SHA512 
f16bc4d3e6652e72583196f0f93270759bfed4065dd52c8be5b468f244cdb2bed7899998f926c137c6115a258107c4837b929e9347f14fd1dfd0afb52ff5723c
+DIST firefox-144.0.2-ms.xpi 295091 BLAKE2B 
8a7ef672ef78f4ac4c7a24f8002796a2d26331b06eb583ae3c9318e160704e5d10a7d282fc6d3b2bc945997b4e8590983f55dc04a308a23ea6dc9662876d982d
 SHA512 
fe5cbf40ed3efeb9c269887a7c2f7a3abf57da6b7c4ffb283c42b6fc0788f2c81b67dc5c413fe99336ed6f8070f230206afd8c2a34d17321bdfac317938b3b6b
+DIST firefox-144.0.2-my.xpi 342291 BLAKE2B 
cf675d35ccf8c69c848105183af01023e1d4090ff57c0e740fd46a02386ee177850316d5a6afbe0c748ebebeec09a2b10990a9d2807345afedcb9c8c4eee57e2
 SHA512 
bbe045fe6475516667d9d3a97153dc434587e15c3e5583f1051682a36a51974688a10dc9cae04d9664f05827a4cca9dc9c83bdb670761578934a1dafd4aec9d0
+DIST firefox-144.0.2-nb-NO.xpi 439933 BLAKE2B 
52dd51643780a322790dfad5ba7b2fdbc0acb774f430d988e3ff3f86130a3224977b3a5778209887de7887d1289c10e09c782ba32a6d975835a7c8f4936a9189
 SHA512 
dd1fda063a56fc13f0e88efd0c4e10652cc7023bb0ec02f75982d5c7fea5e4b2706eb300f95eb3e1efc699416b8778ebd251bd37e004e19397640055572f5979
+DIST firefox-144.0.2-ne-NP.xpi 347747 BLAKE2B 
26513d9afdf4973b67ae0f1b381a65ae4aff53d8f7525b2dd729dac9cc5bcfeb4218bf54200ab3da460dd4f70ec02352ad99409c468441a81ba5692f99675a65
 SHA512 
4808d4937130ed09fd63c200fafc2663a36b64bf8cf99eb49ef3677f3f72180f02196e0618c1e151138694e8b51cf2f92c9bde9d9d282090c212e2ccc21398a2
+DIST firefox-144.0.2-nl.xpi 446827 BLAKE2B 
91a907bdcbb8f11c4c7509a31132fabe52bb72a07fb264f3838ba0947bd56c11cded7bc31dfc9216f08d886a9c859fb62dea7b82f436e99945015ebfa0afaad1
 SHA512 
63f49d5bcb2d2b6859526d9d1a99b4b757b13c0a896155c2b4158d757e50c793cda603c4c29418b6b3866d2c83018b4de62a2440d017ce30f53d5055b6035207
+DIST firefox-144.0.2-nn-NO.xpi 442203 BLAKE2B 
82d5894a1760ba7c5c6710347a6f4262f47e4cf8457784454bf6f079bb2d0effb7bb058dded3cb35f4346696263f199e313336dcb31ede35f12538ac4ed4e3c1
 SHA512 
49fb12fbc587e79115ae76f6bc7a584b1c06f5dfa73375a32d8a7f483b8123b61723b2c052b6499b5fad55dcb87660bf0a61e4175b4a48095cd980ecc27a6107
+DIST firefox-144.0.2-oc.xpi 409381 BLAKE2B 
78d6b1cfcc70a37c43d5c2f5596a05e3bdd2c507ce198c9c967c04abfe0e9a3d5ef29b3c3dc2ed424fac4ea97726d2e6b9c3356b68558432c9983910a85904de
 SHA512 
a82d283b5f9cc21aa83764170d68955242440c63e6077ca279736ae536bdca88ebb10f96d238ff6b4e0948a33da6b2e472bc97cc2da111e9c4f48a0dd1701c90
+DIST firefox-144.0.2-pa-IN.xpi 501743 BLAKE2B 
f358ec3fd1595e30dff47bc601f48cd1a4fcdccba54ccd821a0d68f61819802a786e2e135048580c5cf45fcb307fc780382d9e2b9e6f4d1ee78cc748fdc6ee2d
 SHA512 
bd07e7a0888e3e35852b95df36310d4772e75d13a2425dcce6e605518efc7b09a39242ec2a63d7f7d8e1c63333e37d2e23996a76774150fe41b6cd874138ae45
+DIST firefox-144.0.2-pl.xpi 469679 BLAKE2B 
2a31745089078d3898a27ce5fb3a66e305231f1d8279e396b2540d89036b4e433dff6a83bf36caa4e86f68b61055123599fcc77628ac3d21f9c9f4592d6412db
 SHA512 
5d881f2381b163c6a14ace2b11c3493ccd8237a67ba529c20610ff4a38625101f8849751ddcf1d1b6aaac9a9abd80a61e2bafe072bf6b1e04f87ec9529935e87
+DIST firefox-144.0.2-pt-BR.xpi 451301 BLAKE2B 
78256d2e93b9780bcec5575a830924331c42b9cc32d17a0d6d38cc72655de3899e601fd3665dedf60bfcbd3b515c43f15ad6a72fb6a752762e61687ab0da0c72
 SHA512 
23314fb0f2667f2ad04e4efedcf8f62822defe83cbf615e459e21bb5326b38881d8b420508b7b809f701a95058617d66ce80994c158b67fe37cb2525997a7841
+DIST firefox-144.0.2-pt-PT.xpi 447585 BLAKE2B 
88e760f70dad0fb1bbf20e96fa698090bfa2d42c376c4d43e3a818f1cbc352fdf078d1a445eec29eebf5ffe1b9f6205a42130394e24b39d7d0c07e9f224e8ad2
 SHA512 
18c7d386258fd0bb7117b876942c39fe544b0896212b565860ef0a160d188c9fd55af4ac5e90ad98b586831e922496f77865d276b544a502486d48d5c0beaa18
+DIST firefox-144.0.2-rm.xpi 448169 BLAKE2B 
502f9efb0d04f1c554aab8bb0abf77c468f7fec01616534cdc55b22775b1f255c1440bcbebc402e256517db49e0da7feeb9d7a60ed0750c3a6ca1100a89f02a4
 SHA512 
2ca12e9a5adfe9f992799c87791b3e2bbd15ed85a788367b966706262d6c9647e3b5ad4e888318562ad7f80a1f63db75089937dc3cb4718734a9f70cd12a3ebc
+DIST firefox-144.0.2-ro.xpi 463914 BLAKE2B 
38933cab6ccc99d704271664aa6360cd6d87c22329e287ca5a01ccac3e34a82b24993de002331ddcd029b99fb2859f2e546f1f701b536b281c5c7e143e426412
 SHA512 
37f8066b7b98fb531c2b3dd2da7e84ab4cbb6ec4e282253aef6bc024b32e550219edd190d355f5da14fe14258d9866f37caa0640638ed73e205ff533d85a2a21
+DIST firefox-144.0.2-ru.xpi 538361 BLAKE2B 
a28c765f8ed6a45bbc70a1125059e470ad8c581c61004df99be60271e4dfb35e17c6954f39b2ed8574af908918da4a0b957bd3bcb2b25e935d728d05cdb0b9a1
 SHA512 
02ba9ff4d11112add7caf6d1920284bca4b874d23e61b88712123de107aebe8e367b653c7cce6d912ea583282406dad49a77782508448579f7e90f805c99340f
+DIST firefox-144.0.2-sc.xpi 413707 BLAKE2B 
d1d3efce354b2f0f2f4dff74d519c10a752dd576b132c4998cfc0aca5e749853b1048e4bebfceef3a4a1d5200b5a71715e6bf4001b81ff4bfbea38ff76c8d953
 SHA512 
1b370bad3058791fba8079e6a8898344cce79b98c8d4e480e3ff8c2e23230c4e63c4c1513439c088c303118488ae78109561854af1f9985d841015a5270fc02c
+DIST firefox-144.0.2-sco.xpi 321634 BLAKE2B 
a02dd8c6175b0aceddc3452e870815eaf6c6d8f4c816d87461a50852eeead70ff278c4aa69cf1b8302c4fdeaf840029f6ea1e9e7eca970099f553b79f5ebc3e8
 SHA512 
2355ffa6cd13b5c33fe1aba5941a3cf198d3b59dfa1eef70f39bbf6da0c2e6365503e4846cb69e95269ab30ea273abd6a92e267eb17b6ccb86bc6c7b3cdf57b2
+DIST firefox-144.0.2-si.xpi 409643 BLAKE2B 
4ef06d1fbaef8af44c85179cb63c9adfab62c41ffaf89c79f439e0f594888366cca1015787214dbd6704304b4ea829d9d9e78a3a17787aa74f20c534d02ef7d3
 SHA512 
ce2643928567666d4cd92a49aa40c62c5027e82b3e15119a3e89ecbc8a86956969beae94d2d7bbce3eca7ac52bcc61c40402dd76f61114865987c23cc1e2e57a
+DIST firefox-144.0.2-sk.xpi 480072 BLAKE2B 
d38fe01c78aa080695e6a3ee1e8a83268981ddc29fbaf3507289f0c02db0931e945a5427b7955f30db63e6a57808fc90a0818c20edf5a80b35342ce0d1f9455a
 SHA512 
68bede88d70c583393a895c71489701987d8ee55971762f233c1fb8e7cbe5ade4b32fb961627f4a592c7094cf2561aaad7382f7f08ad66b7288c96ab801519f7
+DIST firefox-144.0.2-skr.xpi 483908 BLAKE2B 
b98183e679ba9971283ed2df490f55b3cc4032d6c2c4778419b1a52a92072c6ebd0671502718dfb298dad030f680d922a544a120c9adf57a96885d131ed871c8
 SHA512 
5b68636ee0cfc4faec5bfbde6e39c0f1dbaa270ddf4356f3f8b2c435e2abfb2ea7c3ad4c85258dab393d398e1c940928036cd4d5b35433ba585fd9eef9613140
+DIST firefox-144.0.2-sl.xpi 449568 BLAKE2B 
7e8b4687307257a8178e5cb9626854ef032d6f99c00e1d01696752ebcff785b3d210289ab81d50faa42b05e8ed942d834326f7099cbad7fb652df3db818599b6
 SHA512 
c8bcfb5126c33b8f252a51ca930778437628b696f626a4133a4ef86c85ff2cd654d62057427be939a62de986472ccb95e1a36e9394d8198abf7595cdc066dda5
+DIST firefox-144.0.2-son.xpi 273359 BLAKE2B 
5c423895afa7ce4761bd9f9f946194791f11bfe7cc317eb3fe42e784ebb8d71c66259862709c2926592134b4d05cfc76f67dc27a2cd500bf675ae82c21f583bb
 SHA512 
42034022a030ca0c6c3f68c42c8decedace36a0a94bbf183f99968c64165045ad177ad5b5e7e82a188275a53dfb1b466d36f007e1c984f73e5d87f5a8b139cc3
+DIST firefox-144.0.2-sq.xpi 450593 BLAKE2B 
89b2d75d6930d5f70561e071b796b20422569abfa1d61a656558ca531e7350387d327421d4643965e13f6cb326161a08d9ccd47ef44b859730d048aeb79e4300
 SHA512 
e62a29099d8b737f73b34c482c3f685843d80cb82f9ae6379c1e8f7529349305d389e5adca05485eac79c398f865f1692886f3fe715453821ed8881bf8f1f1f4
+DIST firefox-144.0.2-sr.xpi 451400 BLAKE2B 
aad1fc0f042ac6701c8fb99764d6bfa4cf2fca5d76b3e1531ef776fd3b30496a66da7ed8fa14c51a72bb289261c2a6e09d4a0c776b7aade08e6592f500880967
 SHA512 
168ddf9d03f1bd4658be56c6a34f61635db460d95148cde505831a33a38a103c78153eef2726fe76d786c36006ad87548dd74c284bf2dbd3013fde799604fedd
+DIST firefox-144.0.2-sv-SE.xpi 446736 BLAKE2B 
61ad4b479820ffc7bd3df193ff317311d7904a998406d5572f7f66effad9c740f41ccb0f0a7a844d9dd25ad4b5bb17cb1234b426ddfd7a9314532b511818f174
 SHA512 
1d9343db05de8636bf5b018156017894815ba5ba5e298f67be72b3575d8d1089227cbe06ee93708dc8badc2789620ece9ebff3b85c0da78b1b2eb2709566394b
+DIST firefox-144.0.2-szl.xpi 340337 BLAKE2B 
cebcddf8e9c3b06a551dd9a515adb58bfd64bf21b4b7ced3950c9f4e4320ec6e8324aa59301fe80044ac8b902c3df2d4a0a4debdfe174055e060c104a78e5ba2
 SHA512 
abd0cccf81d1e08c6664fab5991fec180a837224a2f96e80b272688500ea5b72c597ebc425eb1cab8ad9b0963ff5f256ac22b16ffa648e6e5ffa7e2982230690
+DIST firefox-144.0.2-ta.xpi 337632 BLAKE2B 
cda2f569e77cf6656ae7fd6e576d59b0fdaddb88435a6c1617831998bb18c9b947cdaa9f5c19c2c26322927ccb2a5ce6ffa4fc7d28fc4f424f8adf1700610b5e
 SHA512 
a3430191c8452e036989a07cea2fe9f7d62ff0f0e920f6930c1bf67ae9af667bc10323076616894f89beed76db85bc59cc13c41c94851e0bfce5d71192cf028f
+DIST firefox-144.0.2-te.xpi 380804 BLAKE2B 
597b21bc0a73da8b26559d2fa4c3ae407c1c46f40defd6d40a0d92aa04800ed395992de198cf3c8e722b0cdba64e9383102b73e1a232127f7ef4549991a5b9dd
 SHA512 
7e26df3319564e802ab58d397e54d0716cf4ef5547bcc8be7be753e000f17243596f98aa58c067e07849619c96a5c7c620198f1929120e5388f474232c1681d8
+DIST firefox-144.0.2-th.xpi 517508 BLAKE2B 
9c80e4af299782e13a2145adbbc0924a84d270db0af9e7a885742adc4b211575455aaf88410297bf00d788e637e654c919860937e709e60e3312392474e760cb
 SHA512 
5a66208986b1f1985ab79c5632a5c18f613706c0e8f31bae025161ec30d78c6328180b7488935a11c8cc825ceb011550f38652c21e54244beab1d158fb84ac2a
+DIST firefox-144.0.2-tl.xpi 355386 BLAKE2B 
1f1b8bf67233c08a66fb31f0f05fd74c2e0269f42da1174d82441bbd0290b839ddb307a1b473ac01f33c295d7adf0a554ae84fa59bbac23f2e86e26a98cfc861
 SHA512 
52c3bee9eb5e36f7fd54229b3f6f233a7d8dcac741fed56bf474942980c2cf81c1028888d38ba022e9487784894659c889f9b92c250a6dfe28d6b3ef5dae7afe
+DIST firefox-144.0.2-tr.xpi 460096 BLAKE2B 
df44fffbaaf8571ef25aaa3a888c0ee94e4b272c37f9a9e6ccc7f69d8fdeb065c63aad8b3ff2e5564f18bff612cc17dfebe445d7de00c35b76f8c59c9570319e
 SHA512 
096f49f4b69c1a22d06face3c912fd5d9a5450936e23e82203a5e2d9141beb4c420956a84ad8da12b3761f293f617053e37d3db9d8cd42d82a0a126db65955bb
+DIST firefox-144.0.2-trs.xpi 323053 BLAKE2B 
1e3def562b59b59c9e5adaa11175b1b4448a3b0495e77b8ff6844c2a4fbcea3b02eb0e627f9e68066180d28b3a7ed83177d0b9d2d8a13bed54276bcc0bcb85a7
 SHA512 
1ec84e24e0753f4c28e3155ff2f689865ce749f9e89fd096b14fa812c4c0c7fd0fa5193de70241062cd5e1c887b6bbfd85ad69f9e4e55181694b41c51fe50e08
+DIST firefox-144.0.2-uk.xpi 526503 BLAKE2B 
2bd36c7f7c88a9aba0ad219460eaa38f7738bede1728938fd90c298dac0042d9c36ca12e9684d7bf6bab3e7cee1564f40c62eb5969f9b1f540da2d7218f9f200
 SHA512 
d4c995be7fba63f7994d262bfe3982cfda6800a19cfc682e0536634d1f1bb9b9d6af0d8e11c11ba59e570243b050cdd40463f014b5a841821c34afc943ca3e39
+DIST firefox-144.0.2-ur.xpi 369504 BLAKE2B 
9760f77166d34f32f4a4aa681088ab6ac5b556bdc81f6587fc5715b20e45bbad99404655e847043200513e4febec6e8725883a5f18e9e167f67ba43c1d02f3f2
 SHA512 
c22fc2d6af8b0529a36c37120095587c4d50bd54c6ae4c4a64a88b275f5dafed2e4634cef59624c5a030ddc83007c74906d398a72c1b144b84f7b1032a399a9f
+DIST firefox-144.0.2-uz.xpi 302952 BLAKE2B 
4473f5a0942e8045b0aea3614e4dadf288576030a99e775d9c980dd42833945a852956cd69b3be6e094393e054b3d53481f64a3dffd3536fd21c1d4e6770ba72
 SHA512 
d42bf9ae21ad30c0e1e578f2da653ade87fd30e58911fb8cd93720e21d3dd2877d320d9865b08d1e423c5236c1613b2b4371d40d02134f8bb1ff69a42d6ad92c
+DIST firefox-144.0.2-vi.xpi 480223 BLAKE2B 
be1108bbaea636c0d839b19c4542b7c9c0e648563023bc0b53c04f77b3fe92fe420d9d5a789139ef31714da020469400742c0ed717d54dec292730abdcd6fe27
 SHA512 
f40d5c0062693277e8e7f3c367b188dd73fb03f0b3c1b63e8d9d3932ebef415917bcd6e0c076b738431285e9b4da8344cef2e4eac514ab635eb51aaa3921c6ad
+DIST firefox-144.0.2-xh.xpi 273006 BLAKE2B 
98b2968356871ca8ac752887aa62723b39e2caa26510f7b53e85f3286738d3cf44306a99547a82c66a86fb931f9f4d6f3ae2dabaf980cda8a63f58b0a9ebc824
 SHA512 
41e93dfffb429be4cf994a3ed30a1365c7902bd20d4fda435f1ee7482ceb138581dc7d50032045d7d6dd44c5890c44af51c147f7798edae214b60f2d3de0700f
+DIST firefox-144.0.2-zh-CN.xpi 471544 BLAKE2B 
73b4488add6169ee06e20ebda5143d69dd17d35acde9c85d7984d2f125ad6a95192845c88606afaa326e9f9e735407be9960ef8bf5fd6f3be72ddfa84890a9a2
 SHA512 
bb24891bbfca3f6d05b6d4fb7a3d3cf915e8540bf710ef760492c61ec9d4f3af6db35b87151e528b3f806100657ccc37d09348ecf3140cf46c3463be1e70c7d5
+DIST firefox-144.0.2-zh-TW.xpi 474784 BLAKE2B 
a04d85750575d5d31c5c6433bab78b2bf4e9ede677656b955eacaf16d7dd668cb01bcc79f250685b3eccda569d31063d9a54bbd6a3fd11c4b99f63987f8e0111
 SHA512 
ac594b34639aa1845b38a6c23ab3bec316498679a0f90b76db2eaa5992f3866715aad377551cdcfbc60a26719010200f823c4ac9bf77fd73d0f75374fa1f8d3e
+DIST firefox-144.0.2.source.tar.xz 646304416 BLAKE2B 
09d35d1a1eca85e4b8472fb01b48e02fc126327b0fcdd0e12ad2b59524001a5e67624669fb3d85f1e201f83ba5a7bf60a41624cbe0bb27cd1b8ea931c592a0a6
 SHA512 
87eebabab2c85eb32b2d1161e520f56e271a4893c8cd4d8225fc7b498a9883496315854a758478fb4edd061674a9f7c0503e9b9f0eb4503b1f89203774d02f97
 DIST firefox-144.0.source.tar.xz 658857488 BLAKE2B 
01692c4417ffc38ce7e3c0647657906f8e416160d842227b23b8d0231d9bf73464c1effb2a2485ab2327b1183a49a6c35937d907fc47ae9436efd29e9cb97832
 SHA512 
e1f924ed006a31f5333ea6af219c1fb90d4866e5889ac634c324a3e80b042a7e0b2b9aeb798672ea1a434fbf817fc0b82a12ec0fb405a48e3a2ca21cc394445e
 DIST wasi-sdk-27.0-arm64-linux.tar.gz 124841089 BLAKE2B 
7911b8d31e06e15a7e2001d81bcd27a583dd26d75ca0afc2a5bf31729bdba0a5786669dcc56dfd66d09c44862737dd3a62e8207262bcfb6e6845dfbe26216535
 SHA512 
6b6b5e109f2312634d67f0d7ab9690e0a7f69b21bf4894b86d584f7b1c340bd6696a5494ea8f96a759c691d023ac8c67ad7862112fc57106b86c2cef11f14f9d
 DIST wasi-sdk-27.0-x86_64-linux.tar.gz 124790235 BLAKE2B 
768b9d8d66d79c000b11fa0710d1170e6a5f87c20ac8684151b44cce45e5cda83a4c3a4ad09042c4151e40cbf4b9ce0795f0cd5cad30be7b00972a88dc43f7a9
 SHA512 
a21a19996fb23fd1b522c328827edfeee74bd42fbbf88942b5d46d02f21e6fb2300a783c96915039c5545d2734010a94f3fe27b0751b9722988429669a2a6c9e

diff --git a/www-client/firefox/firefox-144.0.2.ebuild 
b/www-client/firefox/firefox-144.0.2.ebuild
new file mode 100644
index 000000000000..5077e3dfde30
--- /dev/null
+++ b/www-client/firefox/firefox-144.0.2.ebuild
@@ -0,0 +1,1396 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-144-patches-03.tar.xz"
+
+LLVM_COMPAT=( 19 20 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the 
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.82.0
+
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=27.0
+WASI_SDK_LLVM_VER=20
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+       MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+       # Convert the ebuild version to the upstream Mozilla version
+       MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+       MOZ_PV="${MOZ_PV/_beta/b}"  # Handle beta for SRC_URI
+       MOZ_PV="${MOZ_PV%%_rc*}"    # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+       # ESR releases have slightly different version numbers
+       MOZ_PV="${MOZ_PV}esr"
+       HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/";
+       SLOT="esr"
+else
+       HOMEPAGE="https://www.firefox.com";
+       SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 
toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}
+       wasm-sandbox? (
+               amd64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
 )
+               arm64? ( 
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
 )
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio 
selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp test valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry 
wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( jumbo-build )
+       wayland? ( dbus )
+       wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       $(llvm_gen_dep '
+               llvm-core/clang:${LLVM_SLOT}
+               llvm-core/llvm:${LLVM_SLOT}
+               clang? (
+                       llvm-core/lld:${LLVM_SLOT}
+                       pgo? ( 
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+               )
+               wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+       ')
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.27.0
+       net-libs/nodejs
+       virtual/pkgconfig
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               !X? (
+                       gui-wm/tinywl
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.116
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       <media-video/ffmpeg-8.0
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/libdrm
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-3.10.0:=
+       )
+       system-harfbuzz? (
+               >=media-libs/harfbuzz-2.8.1:0=
+               !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+       )
+       system-icu? ( >=dev-libs/icu-76.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+       system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+       system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       valgrind? ( dev-debug/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       || (
+                               net-misc/networkmanager
+                               net-misc/connman[networkmanager]
+                       )
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libXrandr
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       hwaccel? (
+               media-video/libva-utils
+               sys-apps/pciutils
+       )
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+       RDEPEND+=" !www-client/firefox:rapid"
+else
+       RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+               einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang && ! tc-ld-is-mold ; then
+               if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+                       einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       if use pgo ; then
+               if ! has_version -b 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                       einfo 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+                       einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( skr )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif tc-is-lto ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+
+       # Get LTO from environment; export after this phase for use in 
src_configure (etc)
+       use_lto=no
+
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+
+               if tc-is-lto; then
+                       use_lto=yes
+                       # LTO is handled via configure
+                       filter-lto
+               fi
+
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               if [[ ${use_lto} = yes ]]; then
+                       # -Werror=lto-type-mismatch -Werror=odr are going to 
fail with GCC,
+                       # bmo#1516758, bgo#942288
+                       filter-flags -Werror=lto-type-mismatch -Werror=odr
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif [[ ${use_lto} == "yes" ]] ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_setup
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # Clear tons of conditions, since PGO is 
hardware-dependant.
+                       addpredict /dev
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       export use_lto
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       if [[ ${use_lto} == "yes" ]]; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       # Workaround for bgo#915651 and bmo#1988166 on musl
+       if use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+               rm -v 
"${WORKDIR}"/firefox-patches/*bmo-1988166-musl-remove-nonexisting-system-header-req.patch
 || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Workaround for bgo#915651
+       if ! use elibc_glibc ; then
+               if use amd64 ; then
+                       export RUST_TARGET="x86_64-unknown-linux-musl"
+               elif use x86 ; then
+                       export RUST_TARGET="i686-unknown-linux-musl"
+               elif use arm64 ; then
+                       export RUST_TARGET="aarch64-unknown-linux-musl"
+               elif use loong; then
+                       # Only the LP64D ABI of LoongArch64 is actively 
supported among
+                       # the wider Linux ecosystem, so the assumption is safe.
+                       export RUST_TARGET="loongarch64-unknown-linux-musl"
+               elif use ppc64 ; then
+                       export RUST_TARGET="powerpc64le-unknown-linux-musl"
+               elif use riscv ; then
+                       # We can pretty safely rule out any 32-bit riscvs, but 
64-bit riscvs also have tons of
+                       # different ABIs available. 
riscv64gc-unknown-linux-musl seems to be the best working
+                       # guess right now though.
+                       elog "riscv detected, forcing a riscv64 target for now."
+                       export RUST_TARGET="riscv64gc-unknown-linux-musl"
+               else
+                       die "Unknown musl chost, please post a new bug with 
your rustc -vV along with emerge --info"
+               fi
+       fi
+
+       # Pre-built wasm-sandbox path manipulation.
+       if use wasm-sandbox ; then
+               if use amd64 ; then
+                       export wasi_arch="x86_64"
+               elif use arm64 ; then
+                       export wasi_arch="arm64"
+               else
+                       die "wasm-sandbox enabled on unknown/unsupported arch!"
+               fi
+
+               sed -i \
+                       -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+                       -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+                       -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+                       -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+                       toolkit/moz.configure || die "Failed to update 
wasi-related paths."
+       fi
+
+       # Make LTO respect MAKEOPTS
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure || die "Failed 
sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || 
die "Failed sedding multiprocessing.cpu_count"
+
+       sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed 
sedding multiprocessing.cpu_count"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
|| die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py || die 
"sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # Clear checksums from cargo crates we've manually patched.
+       # moz_clear_vendor_checksums xyz
+
+       # Respect choice for "jumbo-build"
+       # Changing the value for FILES_PER_UNIFIED_FILE may not work, see 
#905431
+       if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+               local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+               elog ""
+               elog "jumbo-build defaults modified to 
${my_files_per_unified_file}."
+               elog "if you get a build failure, try undefining 
FILES_PER_UNIFIED_FILE,"
+               elog "if that fails try -jumbo-build before opening a bug 
report."
+               elog ""
+
+               sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 
16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \
+                       python/mozbuild/mozbuild/frontend/data.py ||
+                               die "Failed to adjust FILES_PER_UNIFIED_FILE in 
python/mozbuild/mozbuild/frontend/data.py"
+               sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE 
= "${my_files_per_unified_file}"/" \
+                       js/src/moz.build ||
+                               die "Failed to adjust FILES_PER_UNIFIED_FILE in 
js/src/moz.build"
+       fi
+
+       # Create build dir
+       BUILD_DIR="${WORKDIR}/${PN}_build"
+       mkdir -p "${BUILD_DIR}" || die
+
+       # Write API keys to disk
+       echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+       echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || 
die
+       echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+       xdg_environment_reset
+}
+
+src_configure() {
+       # Show flags set at the beginning
+       einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       local have_switched_compiler=
+       if use clang; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+
+               local version_clang=$(clang --version 2>/dev/null | grep -F -- 
'clang version' | awk '{ print $3 }')
+               [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 
"${version_clang}")
+               [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+
+               AR=llvm-ar
+               CC=${CHOST}-clang-${version_clang}
+               CXX=${CHOST}-clang++-${version_clang}
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain,
+       # AS is used in a non-standard way by upstream, #bmo1654031
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       export AS="$(tc-getCC) -c"
+
+       # Configuration tests expect llvm-readelf output, bug 913130
+       READELF="llvm-readelf"
+
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+       # Pass the correct toolchain paths through cbindgen
+       if tc-is-cross-compiler ; then
+               export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} 
--target=${CHOST} ${BINDGEN_CFLAGS-}"
+       fi
+
+       # Set MOZILLA_FIVE_HOME
+       export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+       # python/mach/mach/mixin/process.py fails to detect SHELL
+       export SHELL="${EPREFIX}/bin/bash"
+
+       # Set state path
+       export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+       # Set MOZCONFIG
+       export MOZCONFIG="${S}/.mozconfig"
+
+       # Initialize MOZCONFIG
+       mozconfig_add_options_ac '' --enable-application=browser
+       mozconfig_add_options_ac '' --enable-project=browser
+
+       # Set Gentoo defaults
+       if use telemetry; then
+               export MOZILLA_OFFICIAL=1
+       fi
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-disk-remnant-avoidance \
+               --disable-geckodriver \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-updater \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-packed-relative-relocs \
+               --enable-release \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-ffi \
+               --with-system-gbm \
+               --with-system-libdrm \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-pixman \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+       # Whitelist to allow unkeyworded arches to build with 
"--disable-rust-simd" by default.
+       if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use loong || use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       elif use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # riscv-related options, bgo#947337, bgo#947338
+       if use riscv ; then
+               mozconfig_add_options_ac 'Disable webrtc for RISC-V' 
--disable-webrtc
+       fi
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-pipewire
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+       mozconfig_use_enable valgrind
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+               # Increase the FORTIFY_SOURCE value, #910071.
+               sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' 
"${S}"/build/moz.configure/toolchain.configure || die
+       fi
+
+       local myaudiobackends=""
+       use jack && myaudiobackends+="jack,"
+       use sndio && myaudiobackends+="sndio,"
+       use pulseaudio && myaudiobackends+="pulseaudio,"
+       ! use pulseaudio && myaudiobackends+="alsa,"
+
+       mozconfig_add_options_ac '--enable-audio-backends' 
--enable-audio-backends="${myaudiobackends::-1}"
+
+       mozconfig_use_enable wifi necko-wifi
+
+       ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' 
--disable-unified-build
+
+       if use X && use wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       elif ! use X && use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland-only
+       else
+               mozconfig_add_options_ac '+x11' 
--enable-default-toolkit=cairo-gtk3-x11-only
+       fi
+
+       # wasm-sandbox
+       # Since graphite2 is one of the sandboxed libraries, system-graphite2 
obviously can't work with +wasm-sandbox.
+       if use wasm-sandbox ; then
+               mozconfig_add_options_ac '+wasm-sandbox' 
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+       else
+               mozconfig_add_options_ac 'no wasm-sandbox' 
--without-wasm-sandboxed-libraries
+               mozconfig_use_with system-harfbuzz system-graphite2
+       fi
+
+       ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl
+
+       if [[ ${use_lto} == "yes" ]] ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               # mold expects the -flto line from *FLAGS 
configuration, bgo#923119
+                               append-ldflags "-flto=thin"
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+                       fi
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409.
+                       # mold does not support gcc+lto combination.
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # lld is upstream's default
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+                       fi
+
+               else
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "linker is set to bfd 
due to USE=-clang" --enable-linker=bfd
+                       fi
+               fi
+       fi
+
+       # PGO was moved outside lto block to allow building pgo without lto.
+       if use pgo ; then
+               mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+               # Avoid compressing just-built instrumented Firefox with
+               # high levels of compression. Just use tar as a container
+               # to save >=10 minutes.
+               export MOZ_PKG_FORMAT=tar
+
+               if use clang ; then
+                       # Used in build/pgo/profileserver.py
+                       export LLVM_PROFDATA="llvm-profdata"
+               fi
+       fi
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-jemalloc
+               mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+       else
+               mozconfig_add_options_ac 'Gentoo defaults' 
--disable-real-time-tracing
+
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # elf-hack
+       # Filter "-z,pack-relative-relocs" and let the build system handle it 
instead.
+       if use amd64 || use x86 ; then
+               filter-flags "-z,pack-relative-relocs"
+
+               if tc-ld-is-mold ; then
+                       # relr-elf-hack is currently broken with mold, 
bgo#916259
+                       mozconfig_add_options_ac 'disable elf-hack with mold 
linker' --disable-elf-hack
+               else
+                       mozconfig_add_options_ac 'relr elf-hack' 
--enable-elf-hack=relr
+               fi
+       elif use loong || use ppc64 || use riscv ; then
+               # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+               # see bgo #917049, #930046
+               :;
+       else
+               mozconfig_add_options_ac 'disable elf-hack on non-supported 
arches' --disable-elf-hack
+       fi
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       if use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-jemalloc
+       fi
+
+       # System-av1 fix
+       use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+       if ! use telemetry; then
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_CRASHREPORTER=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_DATA_REPORTING=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_SERVICES_HEALTHREPORT=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_TELEMETRY_REPORTING=0"
+       fi
+
+       mozconfig_use_enable test tests
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Portage sets XARGS environment variable to "xargs -r" by default which
+       # breaks build system's check_prog() function which doesn't support 
arguments
+       mozconfig_add_options_ac 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       if use valgrind; then
+               sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g 
-O2"/' .mozconfig || die
+       fi
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+               # increase ulimit with mold+lto, bugs #892641, #907485
+               if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+                       ewarn "Unable to modify ulimits - building with 
mold+lto might fail due to low ulimit -n resources."
+                       ewarn "Please see bugs #892641 & #907485."
+               else
+                       ulimit -n 16384
+               fi
+       fi
+
+       if use pgo; then
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_test() {
+       # 
https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+       local -a failures=()
+
+       # Some tests respect this
+       local -x MOZ_HEADLESS=1
+
+       # Check testing/mach_commands.py
+       einfo "Testing with cppunittest ..."
+       ./mach cppunittest
+       local ret=$?
+       if [[ ${ret} -ne 0 ]]; then
+               eerror "Test suite cppunittest failed with error code ${ret}"
+               failures+=( cppunittest )
+       fi
+
+       if [[ ${#failures} -eq 0 ]]; then
+               einfo "Test suites succeeded"
+       else
+               die "Test suites failed: ${failures[@]}"
+       fi
+}
+
+src_install() {
+       # xpcshell is getting called during install
+       pax-mark m \
+               "${BUILD_DIR}"/dist/bin/xpcshell \
+               "${BUILD_DIR}"/dist/bin/${PN} \
+               "${BUILD_DIR}"/dist/bin/plugin-container
+
+       DESTDIR="${D}" ./mach install || die
+
+       # Upstream cannot ship symlink but we can (bmo#658850)
+       rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+       dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+       # Don't install llvm-symbolizer from llvm-core/llvm package
+       if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+               rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+       fi
+
+       # Install policy (currently only used to disable application updates)
+       insinto "${MOZILLA_FIVE_HOME}/distribution"
+       newins "${FILESDIR}"/distribution.ini distribution.ini
+       newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+       # Install system-wide preferences
+       local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+       insinto "${PREFS_DIR}"
+       newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+       local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+       # Set dictionary path to use system hunspell
+       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
spellchecker.dictionary_path pref"
+       pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+       EOF
+
+       # Force hwaccel prefs if USE=hwaccel is enabled
+       if use hwaccel ; then
+               cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+               >>"${GENTOO_PREFS}" \
+               || die "failed to add prefs to force hardware-accelerated 
rendering to all-gentoo.js"
+
+               if use wayland; then
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel wayland prefs"
+                       pref("gfx.x11-egl.force-enabled", false);
+                       EOF
+               else
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
hwaccel x11 prefs"
+                       pref("gfx.x11-egl.force-enabled", true);
+                       EOF
+               fi
+
+               # Install the vaapitest binary on supported arches (122.0 
supports all platforms, bmo#1865969)
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/vaapitest
+
+               # Install the v4l2test on supported arches (+ arm, + riscv64 
when keyworded)
+               if use arm64 ; then
+                       exeinto "${MOZILLA_FIVE_HOME}"
+                       doexe "${BUILD_DIR}"/dist/bin/v4l2test
+               fi
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate", false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Add telemetry config prefs, just in case something happens in future 
and telemetry build
+       # options stop working.
+       if ! use telemetry ; then
+               cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" 
|| die "failed to set telemetry prefs"
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+
+       # Prefer the upstream svg file they use when packaging flatpak so it's 
always up-to-date.
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins 
"${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
 firefox-symbolic.svg
+       dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg 
/usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if [[ -n ${MOZ_ESR} ]] ; then
+               local desktop_filename="${PN}-esr.desktop"
+       else
+               local desktop_filename="${PN}.desktop"
+       fi
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       if use gnome-shell ; then
+               # Install search provider for Gnome
+               insinto /usr/share/gnome-shell/search-providers/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini
+
+               insinto /usr/share/dbus-1/services/
+               doins 
browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service
+
+               # Toggle between rapid and esr desktop file names
+               if [[ -n ${MOZ_ESR} ]] ; then
+                       sed -e "s/firefox.desktop/${desktop_filename}/g" \
+                               -i 
"${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini"
 ||
+                                       die "Failed to sed 
org.mozilla.firefox.search-provider.ini file."
+               fi
+
+               # Make the dbus service aware of a previous session, bgo#939196
+               sed -e \
+                       
"s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox 
--dbus-service \/usr\/bin\/firefox/g" \
+                       -i 
"${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" ||
+                               die "Failed to sed 
org.mozilla.firefox.SearchProvider.service dbus file"
+
+               # Update prefs to enable Gnome search provider
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable 
gnome-search-provider via prefs"
+               pref("browser.gnome-search-provider.enabled", true);
+               EOF
+       fi
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" || die
+
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       readme.gentoo_print_elog
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+       optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal
+       if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+               optfeature "hardware acceleration with NVIDIA cards" 
media-libs/nvidia-vaapi-driver
+       fi
+
+       if ! has_version "sys-libs/glibc"; then
+               elog
+               elog "glibc not found! You won't be able to play DRM content."
+               elog "See Gentoo bug #910309 or upstream bug #1843683."
+               elog
+       fi
+}

Reply via email to