commit:     aa2b2df7d8d3053c676e98f9f162266778211be5
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Apr  1 03:31:12 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Apr  1 03:31:12 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa2b2df7

www-client/firefox: add 137.0

 - drop fix-wasm-on-llvm-profile.patch - the 'define' line it modified has been
   dropped from upstream code completely,
 - drop mls-rs-dwarf-rust-workaround-fix.patch - the updated crate is included
   in this release,
 - nss requirement bump to 3.109,
 - RUST_MIN_VER bumped to 1.82.0 which means only llvm-19 compat available now.

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

 www-client/firefox/Manifest             |  102 +++
 www-client/firefox/firefox-137.0.ebuild | 1371 +++++++++++++++++++++++++++++++
 2 files changed, 1473 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 9ff579fe3980..7f374733d6ed 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -305,5 +305,107 @@ DIST firefox-136.0.3-xh.xpi 273257 BLAKE2B 
6e07dd72d826ad4f42d9f40620ec20cb8d942
 DIST firefox-136.0.3-zh-CN.xpi 454860 BLAKE2B 
7e348fc0966edc49d5846385e3cfc9dd07298ce54732bb2b7e39942620c513e4fe0eccba3eda01e1d0d3dd437dcf55a14d6e9eb76614a514c8df13c08f93ca19
 SHA512 
9dad343d44c142283731b86feb7736bc977d0e695321090840405a88130b064f75aee5d57e3254b5de3109ef877589964d0b96159f0e168c30aacc46c03c0d3e
 DIST firefox-136.0.3-zh-TW.xpi 457685 BLAKE2B 
acd6fcf01ca1a18132b89f3f519684200ae8cc4ccb961abc0bfc416a61d2a567556bc4b8f762b8fdc4a48ff90bdfc58e0b049c3c6f7843eb4462d77cc4d04716
 SHA512 
4a033670cd88cda125543846deebfe49b2a6377bf514d3677688c50fb1425bb19e44f6d2c5ee99f04cd3ff949710fa8f09266bbe6fa16f778b751ac825e64553
 DIST firefox-136.0.3.source.tar.xz 601432848 BLAKE2B 
7f9c686744273ae00edfb64f0ba12dc46bab901e3a23e8ece1e9633bbbda9e83d03c6373a76596a2d9126b541d25311d40204240d6220354820264346a485e2d
 SHA512 
59cb54bc946aecea810169970aad4ba3f7b3092e56f15f86ff3d51fa2752c89632a057a1bda016f0005665ec5099d9b9f9a4786b9c02e3f5656eb2003b6a1747
+DIST firefox-137-patches-01.tar.xz 13584 BLAKE2B 
f22ee7977e738bb782014dda53ac20c4928fbef93616b1a11d474599d79a549dbf66e5a1eaf40d1ba1745bc3345162cf1f2107ef9a8ae72c63b8d9850460380d
 SHA512 
b577486e8cfb2dd2da37802a9a7f4e2bf16094bf4ed22a8c2bf91019cf74b23942a1884a58bcbad055c7ca480f944cae35e85aadf92d98059be0eaacd4b8a464
+DIST firefox-137.0-ach.xpi 300716 BLAKE2B 
acc9e2b03371ea2d178bdeb8d17b48c58ed18a2ddd65b0d8a8223a143f0b512f3d3d60dfd6d05c522ec292edfd2a96c8d693d8d2cf08a198ed89a6df10157bdc
 SHA512 
d4930c8ebaf53d1dbb6c35efba9c82d74bb4c33879093bee324b8b3fb1cf082fe330cfcdc8a2d55ecf69afaf870aac726326e3749f83b4b147ca629287490784
+DIST firefox-137.0-af.xpi 272237 BLAKE2B 
b3fc5d9f41d00b616a0bcec3be823a283bac4c07c9e2ea4aa319a4d29ecac84f36f07a53373f0a7d245f39e727825739b2708a955f841eb740decc99dbe4920a
 SHA512 
d158e9f79069a2b5edd5b68528a894d52d02a2f8360c1963062cdc67a22e2819dc610d710697b3cd000de6a6c22dfccc60111a3350f7d350a9d5f452b741e95d
+DIST firefox-137.0-an.xpi 338701 BLAKE2B 
a45c9e37f30ffbdb5a2838955fc53cb32d8bec15e1c9d18e3f68f7c6e82c7bdd36b7651b42456d22fba5efce00987036272b54002ba7e2105750cb2c176e183c
 SHA512 
aa6c9ac1450e41686044a7769707251ad7fb727a640eb1188186c2ec1c39d0665d4f5bbab1e04748f0bce714b2f778a7497eba17a737872385db4779dd269638
+DIST firefox-137.0-ar.xpi 441341 BLAKE2B 
4792f8d94a71fdb599129a1adad03f865a76299c70548a00d30249b2747685382076a4df656a2dcc223864b75dc963c52db9f9b21fd8bd25ebc34512aa2e6af3
 SHA512 
54ff2dcce3e407ab735d52da9d800a35d1cdbbc7822f96df8c28c7d3725a3115b50007be2e335c13051f242da82f2f92f54d8093d5d3ce7dcf27fa623e4a6af7
+DIST firefox-137.0-ast.xpi 319618 BLAKE2B 
45dcd7f6f7327da06e8be6a04efcbcad2c16b2a3b50d7bf15267d3e327a1062b6c4695617ccf36be3748343030d596827f52243608f4decb4baca6f90edb5bdb
 SHA512 
a833de8df6ee25c4422fcefdcd7678e00d9f3b1f920c7936c64e99a99da3690f8e2c775b486419b7366a72214b0d78501eaf46f86df70562bfa72a6fd2e94364
+DIST firefox-137.0-az.xpi 325049 BLAKE2B 
42cf038bba290a580e0b8ef366d13e78d564b9c00fdf58357dce321c667f89d41c9f03a6f9359138021ad660bfd5a44f45135e517ab8faeead500487346ef2ab
 SHA512 
40e66813f052d042f536a4f9ea39d25a45fcd4761e6b780fda42231b84968503cd577f9c86621d0880b684df305c960fd2b408ac9c38b578de3d9d79dc8a4fa3
+DIST firefox-137.0-be.xpi 522144 BLAKE2B 
5e8ac301937772c4d4075c66331f787fdfab24eb2c7e7c3f59c2d0070e2bf1126afb90b67102e7d849af08768b37d838f63b8c2a40948395cc0b0d223614510e
 SHA512 
9314538c11a84c93de2bbd0627cb1b09e0ae65d6a36f2bf9ae59757909b574a6c447825a5295274685bed9feb306e616993dc418bda408fcd97daf5bed0475f3
+DIST firefox-137.0-bg.xpi 453689 BLAKE2B 
29aac1a4f9aeb3b1e8b8acafe99f843644f4c7e6c8188bb68705b246a126b99c8cda49c6d3b1b084e5ca7bf4a71f91bd971b6b8fabece95c6a408aaf5fdc1f04
 SHA512 
e01a7a57d04207665493387c8ba850460c8f79a9d735b2fdfb3c8099df4454afa269aed2e6d6b4f7828e93a76bca6260bdf94ee2c2cd21ea4e41a4a184dfc6b8
+DIST firefox-137.0-bn.xpi 419514 BLAKE2B 
24102666d1a9992209bcea93cb52fb6e832e60d432ba6f8a8eaa0600046b856da801155ff46b1969b5bdba950173471b6724de667cf96cc0aace7a2331c149d2
 SHA512 
c312cff9df167f4c5c457dd7341dc39735c721a3c4ed24a4b493a83309d19561bc4bfe6c9265e3a29a8946ff81c864a43258c922f0a89704494d6d1bcd8642bb
+DIST firefox-137.0-br.xpi 400645 BLAKE2B 
155c7ba1ddcae97ceeeff872583abe794bdd86f00eb8ca31e62a83b024115640b93d75d46911128e654c36ff88b6d5d44bc418d7fed4fd41f461a7e3a29e904f
 SHA512 
8839c8031708aac2ca9c243757fb368e2960ff0df4a9fc75d3450ef1f99b079dea55322e57e32b25c0c791412dc380b794579191e2380eafee1264b24fe7e436
+DIST firefox-137.0-bs.xpi 370537 BLAKE2B 
cd161c1baa087128429d154db7813c3f0b8cd3b24a2c5522fb80894ff3b5d6f299c2c8eaf5f37e6a8c28eb8a25c970b9a334fa537492e8b2547b0b64cdaa20d8
 SHA512 
576ae4c307e6310a537c55818017e9b2558d9d330f9e2c64116c1206dc27c9d8952e06d9a6bad496afcc68aff34ce83a2b522ce3079c811bf6557ac39831162e
+DIST firefox-137.0-ca-valencia.xpi 365080 BLAKE2B 
797dc673c6cef2194b87f151610c6276cd67c4a9db5c69cd40a915e33c7933a40c68547dc1dfa4e9b36470fd8b67a096238b9ce5b0e0ec064c0ea94b602cfc9a
 SHA512 
17f5f59e9f23513628d6552967c3c565b169a0db65f21ddb274e334a75831eaa1c36db5d5b01d0b80d9cf9f1401d7a03c1b63cad229a011cff4911a247dfc734
+DIST firefox-137.0-ca.xpi 405805 BLAKE2B 
d69935db3ba10f263e8ec9776f166705243040b6d26582faf4518eb63fea1322993b81538b21b96ad6c50b0654f9767126c25531daf6403c60181ca585af11c2
 SHA512 
fd45b9864cb356217224d58ffd2226e0e70b70248ce94be0625d6363e732fd654b9bb98fe07bb8e8578462cd5313b1d67f9b6f33fc94ab5992fc2a531eaea1bd
+DIST firefox-137.0-cak.xpi 399171 BLAKE2B 
1556158752a18e3583aa73b27099af410b0d9fb29b94c89273d9408599f607d44bb928d2bb911eba2e4601be49de6616ce5906df06b9c6663df563dd39168392
 SHA512 
ab22b793b28a025e660cd490512838d5ad1c283f53b2ef6439011f61b1a398de2bc8a175487434925c062bc460a7488d2313607ba2b898d1931de5acbe3d38ca
+DIST firefox-137.0-cs.xpi 477193 BLAKE2B 
37338dd1e242a0da296e469c484b679aa75074ab8bd9095523c7c83f3b1acecc26f89c6caa2d99c547ae79b4df6eee5613fcc01f61a64168fb2bdba0ad54417d
 SHA512 
de6b3cabb72d4a48529bc190d456887fd3da2a650cc063ab79f85a78e8d4b487ae7f9b8f4f5abafdf0c8b658aec5f326aec2c62e270880cb011a66af9c3046ed
+DIST firefox-137.0-cy.xpi 443584 BLAKE2B 
6e38b35e5ee0e2bddf93b1f5a1f80b1ee0eb36e9aebce032154903a9e8ee0ce8970b329b0f0159c03db15571bd41ae3ff6c16672ca4a7d9f5c021ebda55c542f
 SHA512 
235ae38643a334cd848c47d7d81ef93a3fef3be45b0d69b0a09f322eb6f62303910e64c7daec4d8247682cff8c468c21f961c28a9a6726a9ff1cf3f0046acf97
+DIST firefox-137.0-da.xpi 432988 BLAKE2B 
8d30a315efb29d2ee921ba3899d0e795083e8dc727a03da4a88d1071bd060023d2024de9f4d906f312671f15839adb27eed825797e5575b2debd6132d9450d29
 SHA512 
dd65e706faa15c64539a7e807d14cb4475cf3c90983d5e9cb78b6189ad2515574693f414cd6f265d42199b124a6f155b5d94227cb7466836bf81476629e5273b
+DIST firefox-137.0-de.xpi 454586 BLAKE2B 
2af36a12153c130aabbef85a7c8d795b53e2ff0ffc2d345cd7cc0f9d228e967d6753aee5d8be81e8e9ac5a441ef15fe29a08d01f4fd458ea9c96c30d19ed4fa3
 SHA512 
efbc346eb7b50ff4539c31830b2eb513bceff7b3dc4128b05fb57ac97b0b23b03aed922edb048624b894aeaabd3965cd6a22ed943a4951d62199591dd36a925d
+DIST firefox-137.0-dsb.xpi 467763 BLAKE2B 
4f96a4e90bdcf68074de66d224582272f6d5350f0b4cee27e35fcf73d1085ba28e2f45bbd1b339017892d0355fa7356e91102062a126f2e55ea995f5033dfb14
 SHA512 
b1249171b73d04988d987536dca5640dbc6e2361754bf4b7d472d1b04e7e37b91ac78de60b1f207a6e191a4c41dae27e9143c7300d2430eca03ddcf0d463b792
+DIST firefox-137.0-el.xpi 537993 BLAKE2B 
352ad0fdbd0e92ec8825a9b101910a00418a27a55e127ffd231e7d6c87257132b6a6c67f01c4b4c057ad5f513e201041908d32419037460792b153508b6c8eb3
 SHA512 
5f8264e5ce5af688e68e0f6600024d7b8657fc3245482b2588c03bb3505f8f14ea33c2c9f63a0b0432619bd59ba82aca5200e26caf1c45484e87f8a29c3c0d59
+DIST firefox-137.0-en-CA.xpi 413415 BLAKE2B 
5a025b430a2ae68a2ebab8cf3011d544cc49ac07fa1e3a4c25e4eb2cc3bafd75b2796db5c7fb6afacedfe097542b0bd15477a40238f9bd37dc75f2c9d3b337e6
 SHA512 
003096037c023c3284b73e3139e5c95e6719e0e338a76a9e71fee1d2b917bfda73e847ffe332f9ba8f5012ed5ee6374b5e3e8e848ac76aa75e883ae3b18e83a5
+DIST firefox-137.0-en-GB.xpi 413688 BLAKE2B 
19d7436cde43c5efbd0ce50efa1f13b94a387bcc28f223770a590752414a4366b3ca963ba46a1c2a306230f6690b0692ee56fba70ce8047ffe46c45bd6781276
 SHA512 
464aaa65674a81e8d2d195c6957ca635a666afcd0aba90fb35cfb0e45fb6bdac17117a5d7b096194c90d268ebf1cad4b9b47338f7ae8e79a42e6951ebf8c3881
+DIST firefox-137.0-eo.xpi 434084 BLAKE2B 
e440034a079530043c7f5f1cb17340e9cc141110be30cc6976947e9d931b12352af626f3acedf0eccd6f642a4f87ebd752f7fff32aaab3f97afcafc52d354e69
 SHA512 
bd92071c26ebd03f3c2ba25293eca3a745288beaa4e47adb8fbc3203f8562d72a6cf0cadabd6b19febf4d52421b5ab05a6fc965e50acd16d56ca6472d7df9ab4
+DIST firefox-137.0-es-AR.xpi 447449 BLAKE2B 
131cd4e0e4ea0cbd09eee5fa88039ca868307c64b40999a1dec781e2e6b4c0b18f54cead2a9d63567bde0f0d2958fca85d48df688fc3dacf1e625cbd8c7c5868
 SHA512 
4c2b1c3dffd864d9d609cb64cbee6e82e9e91f87c490fcc4b08be4cf729c64b71d2bb7f66e92a8354520da74305072e33a8c69f81d49678d7a07db1ee01d4d12
+DIST firefox-137.0-es-CL.xpi 448160 BLAKE2B 
3f21454924d3010f216d9382dc978ca3f6796e969cffae1281ec9cce6abbe5363bb329d134e67d7965da3326f75f73ff7afc11108616f2ad04c735c6378f1bfa
 SHA512 
3cd70f074e1ee921022df2ca05721184b80da1d88026f2a1644d9f34cd5417da9114faea1abb0ea54a6d2dbc6f43c05f96c37a0e09700d05d067a605ceca95d4
+DIST firefox-137.0-es-ES.xpi 448964 BLAKE2B 
68253924802cc80a47cc026e3074d4735fade8b1590c3e58b28faedf455ccce5c42abeba9d70d68cf122190d2c8fbe4a8bee6d4995911b1c00b07996576bcfdb
 SHA512 
c55adcb0ccc94c44bdc260e1af09ec0af8e89cf3c592d0e1f127d50ad81b92dd1470edda90c5bf2faba6c2a8b18c719850922b4bb6d30c6ad1c22ac6593c7549
+DIST firefox-137.0-es-MX.xpi 449075 BLAKE2B 
c9dc74f4b8637427dfd856b00bf6e8736460576a5e82f3d32f57151fe5333bcf50dbdd42df2bb15cb8d909c3a26093935676ba9f4128b8dab8327b3880ba06b3
 SHA512 
f66ac4b3ae6723b22475cdb012d1773e6388323bb0b6589a70ce11ca052356f4630c45bad2893976d73ecf36856fc7d9bca8ff4189d386dd94712763f198fb63
+DIST firefox-137.0-et.xpi 364135 BLAKE2B 
a6cf16605069479c4348d5438db591e26b7f14993a6d5c5b946400ac515333e37a818638c2b4799adcf80cc930ee5fd5bff709143d8d67a53bfa877a66f86e52
 SHA512 
7ec8d2557d66733c35dcc7ffd53a64335c520fc49fd532ece784b298091beeb063582a9eafb333b495b8a22a4bbe4acc802984579dd10180313554084a63065f
+DIST firefox-137.0-eu.xpi 418653 BLAKE2B 
b34ca94b9171061cb8804541cb294fc78d646733ff83d401eb236e9fa0e3fc431997f1cc383ff9c60c08a78515aa8ddff8e79e18fe9239f2aa86aecce6e8b4b8
 SHA512 
e29319f018e213dcf2438f5e155935b9f0c39b80a76059ec47d231ce70edc51154e42a8b225e23898a04dcfd51a11c6a63d6774e5d55955fb904af204d5a266c
+DIST firefox-137.0-fa.xpi 419707 BLAKE2B 
d75970e23b8033eda8c70593afd1ee6cea19aea6eddd8573b52e1967dc9159065311fea6adcfb51ce36e2b0f788bde02e291288ddfa657518bd452a5b82138e4
 SHA512 
4c2c286e351aac0299cf7b82d2789e4b2dc4a3bb314faa66861cc0f8faa85f0a36c21bf0506789e6210f4d577328909513079d489345a6502c48ca1e2c3c205a
+DIST firefox-137.0-ff.xpi 316609 BLAKE2B 
78ede1b4fe119eb48bb3e69c775b8a6b23af601e159df54888123fd1086b63f6e243d3131f4a5898c1f545d5480ebbde9ce47157654afb0ebb9479bdf0d8fe8e
 SHA512 
f403e84f8ebfd8a153a55ef64105631d06d978f3ed9983f475897d1af1e5b4626d26a4650b5d921638b4dd8cf115d3d65092504daa05374efe2b756f9d19e156
+DIST firefox-137.0-fi.xpi 431193 BLAKE2B 
f64dd05f45d13770305782885ee088c13406191a0cfb97107186d0b7ecf487dac707c9422f93d369314cef232d5f153ade791051b43a3eb7fc8464a9fc54a960
 SHA512 
db960cedda5bafea3513fb8767351eb54bda339f77ecea2c1edcc54e9f463ad9f5b382f2e4c7ee08a2a11142e68d41e09d2d5d0749a7ded4272849cabc6bd44c
+DIST firefox-137.0-fr.xpi 459879 BLAKE2B 
a361d1bc1b3c454e9d6c30c859e5a26fd735f8bf28f7ce64c5beded9f547edbfb04925bb06ad6f37dc87960dfc3a0e818f6ca53d530efc50b205458d92308d17
 SHA512 
5f0ca38a78e21f3e7ad887d7a30b9096b720364a937f9ff296ce0fc3f4dab9aef66745729da5a4dd104c972c85246d81be69efe698c76e368cbf66e1d97e1aef
+DIST firefox-137.0-fur.xpi 453477 BLAKE2B 
38c853201cc54ebf83778b6603131563fd9db27ea74ac7da72e6801dd09ee31028ba13e241713f43b22183d04f39baa353abb94e0425e324fdfaa32f1f945853
 SHA512 
5f80de9a908cfa44880e0ba26aa5678fada69dac45a65481a8d476f5155f2e1eb16c0177fac75fed84d6b8c54d1e072886deec07ee526de281886bd80ea6f452
+DIST firefox-137.0-fy-NL.xpi 444070 BLAKE2B 
8d5b53bcff071caa7f4d154575b3a5536a8c1fc3fed99c644fb98fdf38fd710689c6f3aaee125e291791a80ea7ad26195cac073d2f04d96eb852e709e9904932
 SHA512 
e9a28410d1a2a2e0b83b77607d8088ebffb79778f49e62c2ff265d7d297552647cedf1dedc70f0af466aefe35146b6ecbd620e0309971b843c89fa942ce8f73f
+DIST firefox-137.0-ga-IE.xpi 312658 BLAKE2B 
04a315fd7a4ee9cac90fc97009df3b38e401c94d91fe1fe8122d3bb4a7fcfbb7fd365002cf5082e86f0dd2771f9696671e8f31a2ea893e9371f6a11e471ca5dc
 SHA512 
32d24b749ed6eef81c6bb9589b66c5a1843f1eda18a49a1742ee7e537f31b33fd65cb3d4ef8278d34b13289a81edcf1c0589cd72e671c7459a7b781726581156
+DIST firefox-137.0-gd.xpi 407630 BLAKE2B 
f29909b3a44081cc8da1fe1915846ba34a2e331d9a15b979cb31a83e38004e39e36512dc1b3f2a214b44abe04999816db54b0b8b4d02bf10c8aaf5924d461c44
 SHA512 
2944d4d8eebdd69c884bd3a06ce42648597cd256885585e7f3a970b46cbb79e163dd67618f912e8571337348d49d61640d6a1bb0785e4d95392722ca0381a272
+DIST firefox-137.0-gl.xpi 411529 BLAKE2B 
6f2ab20d1c7b73fc0ed84566eac723a9effb83ad7e4ad7cbddd28ddf2d1637df44bc70428cf961355d95ad942f1b8abfb61cd1a22df67476c9aa5647fc85d93a
 SHA512 
d6e676976fa8f8a516b96cd4d1c8da9834402c0673da5560d192eba74ec0e909b56fd43ba973145161e2610d3b36ffa093f8ee1b1847c7b4dfadc4e16662cfb8
+DIST firefox-137.0-gn.xpi 451254 BLAKE2B 
0deb6d6be80007026fc1d462c47ce197dc9fce160f46183b5d3df20900b96570eb42b473d4cbc0adcbcbc575eb305615eae0f3540993664ec130a90190c7a8fd
 SHA512 
c746ed3b0a74bc843717196142b7e06071fa0fc63a1733c8f473e18c1afcad96ed4944c8ad221926c6c3cac57de265f3d5969e9cd843fae5ed648ad9f187622a
+DIST firefox-137.0-gu-IN.xpi 365573 BLAKE2B 
4a6cf4eea0f8364d58801633e8eb65b4e621f3bfcdc03563b77be58b889354873d0e6ff90cdd0edf3659a3ea9ff6a488ffb62f00621f00c0fc4e880cd63e9e44
 SHA512 
93b733329672366008138dfe12e53cbc641552a9b6430dfd9572f56a2db0535194ec5d3633fbd16b501593891abe0d7d4a525d44cb2b68ed177b95a299a03aa1
+DIST firefox-137.0-he.xpi 445578 BLAKE2B 
fc1fb4d2ac1408df88b1b1cad0b490e4fd4aaa9fdc9ef69843347788478a089a610bc4e13614e28e17459a8cd0a70515da248740edf8a0566022d473b2369f35
 SHA512 
c85f43b50ce11eed8dae464b2e0d5110cbe96079b37c090f05c7b15031982e1d5d0dcc2c7f1e47df69b42869c597e5b5a2333dc133bfaea779ea1e2959d10c41
+DIST firefox-137.0-hi-IN.xpi 384073 BLAKE2B 
2cc814ea4334e66ef23521b0f84ab5de99db3776c56ccf7ba286cc2c88c97bcda5632168a3b3e9fb02fa941a3f90da2cdbee4b848f912d689354a8cf14cffc1e
 SHA512 
056cb0ff815bfc91a27e78e5d931a429d9b4cfa8f884f9d9f575d62d4acf27e87f99757fc96eaf2ded43d9b5a8a8ad7acbe8426494858028a8c8ca055727280f
+DIST firefox-137.0-hr.xpi 436085 BLAKE2B 
fd36eee95888482984808f3569b43798a388359f6bca2011e55d3135c75d4ef4f333a038ed669446ffa8233dfee0d4746d0bfd6bab89ffc5d6545c5f0fbe2222
 SHA512 
47d1f37e0eb2dc17c19380fe9d2e70686ab07829b2097288bb2999fdb9b602e4a973cb6a07dd44e9a4fb5895a71daacebcdefcc57e3207c548e6fbfd1981e091
+DIST firefox-137.0-hsb.xpi 464394 BLAKE2B 
fedbfafba7edde7ab5a22c9b1577e84b0c8545d91e7af6042c8aad6bb35587f96966707df94d2b69cdb0bd62f2a8056f16c57bcb78f57d5d64415ef3532dfa35
 SHA512 
0b806351d613b67771e284bebf8f5295b61bdb6098bba92b22fb490507b26ca0d0b9d5e804c95ffce7df152c2585b134617e3e49cacf5e0a5c00c1a40683a354
+DIST firefox-137.0-hu.xpi 468460 BLAKE2B 
06fa6c3dceb8b2dc127a3d7a32dec61e9da2a135e8105aa9065e91efbf60994dad5aaf5553775980a2a251d09b75cbf27dcb3045495960a6afcd560ad4a65b88
 SHA512 
b71e0e64c04a4f74a5839c3b04da039e7c4d9a66dec5d4712957de9230fee5f0c2cbab8bdf16c99c7fad0393673f07514b6662f88b44e1536755bd9758cc59f0
+DIST firefox-137.0-hy-AM.xpi 456352 BLAKE2B 
055235dde135c0e554e8fe4092813c30145c7c9a0554b22169a5d9b0b8fcd2b131127f849b13a70ea744b527be52a8ec85a19f2e60e1da50bc55c0c23838da01
 SHA512 
3437ecdfaa61c22f71dd964fb3b677a1c9b79460ccdb47e1650e6de890157d8854ac406ae49f4fdd52df4eb2daba02b8a8d36084ce780c24ed40c57cce565a1b
+DIST firefox-137.0-ia.xpi 432135 BLAKE2B 
e6f2a60c4305e1164060c4a558eced82cdd576bf57c3a0b0fc0abf9533ea4693af44d37b3101e5830755af26c7637c563d38f8c2c95f8149c9f8ff41730d1a48
 SHA512 
a439070a76162c309a5b99b6100ddbc99d4ab9ec8d8d3ab8c481331e4e2704dc8beae80ccb6c30df9a0421cd781a28bf5d87b9d7cdb3795d875b3df90affd4af
+DIST firefox-137.0-id.xpi 427145 BLAKE2B 
f1742b0f4fdeab4091a1402996498ee8a183a2fa26b34eef714fb6158aa74960eb36411431a9cc773f959a5077f8a06f5ac290a8355946c14268e613faff8a5c
 SHA512 
7fbf9d0a6caf93721a195f56026ebe1f97e8cbc55b309497208c0b2844fb974d78ce3906cd420ae69b1b607a7930cd8d772872f07b22c00b0184c9c5bc545cd3
+DIST firefox-137.0-is.xpi 437698 BLAKE2B 
c39f140318712d775591d9a9e7d1c9d8017bda06262f6c2f47c6eb2ccf9ac3f92fdc05f492d370aca25697316896f408aae984405ce530489812d87f4f3908d7
 SHA512 
fe6136e5be844cc216255f1c7a6dca83e0d7ae82636b025af21b2c6568a5c3e90bce8690b93c2ad24c17ea965b66f7339f61709da10fd0a2623359d357fe6043
+DIST firefox-137.0-it.xpi 442700 BLAKE2B 
92c8bc98a3c5a87d96312a2f20b681989ab61f9c8eb591703fb49b45a42da07a39ae941d9bd29c98f7a3612b989829a0842c970bc03b496805d41c1bba514a1a
 SHA512 
000fb1c6cbb1bf4bd52de91b01a4bfa025afcabc419e6c02c88df890df541fb30994bca1e79890651c5ffd78b34c45b9fe61bbe338cacba442ff6976198f8e3b
+DIST firefox-137.0-ja.xpi 482877 BLAKE2B 
c2256e0b2bd7ab710b558414e8306c995736c6dcf2a79faf4fb04ad0da01ac36f3345c0945d2a84ad6ab8cbdfe347a1ed222090ca81ed1441ee72f4513bce8cc
 SHA512 
0077c137a02e7e0041983310d7a81baeb16cae3268263a7bb37cb280adbf80d39e689729f63f5b4b9ab7e02acf7ff504ab54b6f029d604e20a0148011c15b931
+DIST firefox-137.0-ka.xpi 496322 BLAKE2B 
b154d2efa27f9a6b20ffa9c7aa0109521ac7c5790f26a823b425949a793e4b85f35dafda8b388c93df3d9db0bf895dbd1369b2d2fbd13a17f079b8c015d433c9
 SHA512 
44fef4f7357e759d6b5d7f111387f8a67e4eaaf8a976e78655dbb96930bbd27af7420b612a8c11250af6fdb35432d1f8f0dc45ab07c89833cb0a829ba64da443
+DIST firefox-137.0-kab.xpi 418889 BLAKE2B 
cd4b856e1d264df9168cec34a0b09e54910522b813dd52fe2b1a9bd99b418fbe1c5840a327fcbba55167bb1b4eddcf431cae44bc0ac85780ff56b0332c3f0095
 SHA512 
dbfddd49c7fd57e55a48598b6b9ceb4b606149098f5c67d66325dc704d580b7f9f6e19d2580ee0c00917c3729942f12cf6736ef70bf1ec4afda667791c860f2d
+DIST firefox-137.0-kk.xpi 507553 BLAKE2B 
fb341eef34b49b8a65fefc25ce1da99197c972859f9991e2142a51abd4848d3edfbce5a1e56faf3f011c55e7f01f831dee0d29d0b898657316f849b6c38aa882
 SHA512 
613f995971db275222f048a79839f9d04e9915113bec65795a50d96ea54aaebbfc4d2992b87525cf917d1b7bf729142cf9052169048067f507c082913d1a0fb7
+DIST firefox-137.0-km.xpi 355349 BLAKE2B 
51d274a0af4fefd267151d1e2426a72987251cd50c6d6791de6902b432a289ec20f11446a5d5eee3514bda4a30a836d8656ee2bf4c29a93621e850b15de731a0
 SHA512 
810c717faa26c99674bdf5d0f40f61a6e384674ff4a8cebcad74196a060c480159b5ca851a0c870470931e138b23b7d15599717725abd3bd882ce1d44d981aba
+DIST firefox-137.0-kn.xpi 338143 BLAKE2B 
aec102a38a83b3d3e35d6231446b56c0729368af3d20805a2de27b8299500c0e9b339afe2131bc6ccc55ed1c5034746c1f1bec59ec0dd547aac42ee995bd1dc8
 SHA512 
0b4ff2bb8d5df999d311d8bd68cd6b5d711bc831c0c90eaa528443b51fe7cc373e1fd4a3a53d395071ce6ad4185b6a5b49e527f0d5298b36256d86f26a5fdf7a
+DIST firefox-137.0-ko.xpi 469133 BLAKE2B 
9e8a1bec1a8d0edca04e994702ed09742e37846e6fcf89440deb11cdc0e6aa1f5599781e96f08ca3f9fb5b0c6204f5e70ed88459d40019adc50919075923b11a
 SHA512 
40973aaebae0db27cab52f1e622fa7d2e7102c0ecf5664673469ff72083727d09376c5815085537c0e1b2daa500c530c76723d64eb33e5fb9960cfd073cc7cbe
+DIST firefox-137.0-lij.xpi 324536 BLAKE2B 
e28aef0c8ef7b30ec786965c61062956a764019fa8635c0039fac51ce684a6bdbbc8239d92ab81a6a9135e7e1933f410250e0e267c0d4501b777479aa7815048
 SHA512 
90234f46d1f5127129ff40f029b3d86c410ccb63e8e0a722d10801ecb4921b84191c16f5b27b09d02c67e8ffaee439050dcbe5e90704764554f1e6c71396452a
+DIST firefox-137.0-lt.xpi 387190 BLAKE2B 
38dfcee315154ac9fcd4affc87d524e9ffab3472fb4dec3d5cbd2dd34784cc43ea6f96eca34e7f041739fd311590a0286380ec3ac86bdbb6fd278f7c23f95d54
 SHA512 
eef907ba73e5de161bb4eb5306a6c26bb4257ab83dde873fb712a128d2aa6343b27e4e6ef538506d66504ae263443270b05472b9f9325a13e7a70105ac74da0b
+DIST firefox-137.0-lv.xpi 395878 BLAKE2B 
70c6afc2b71a27ba7b51a88fc3fb70290b38fb45277b06ed2ed837f0b97e0fc1bdd606da2f33fcb6ff748ca8e10a85f032a7bba360081357e8ec7df292348830
 SHA512 
864604d05f8b7ff3e4c4e9e06aff54cc72d5fd6b805dbaa12e15a9802316f60cfacbc7bd735d99f26206e59bcd9a5a343643fec72bd2059144ae647d2a91a025
+DIST firefox-137.0-mk.xpi 323833 BLAKE2B 
994eb05b12c26e3257ef8140c959af7cc48cfad77786661219f7ab5388e3effac7e3058c001b8d73004904ef38227efd6e7cb1b56bce38fb03ea092f4f7f7bc0
 SHA512 
ec93afc7660376d0d8fa1d4e31dc8095014438274223ec61b027abc8ea5f5d2616b35890d10d679549edbd209a897641e764e4095dc56cd1bd821f7e5340b289
+DIST firefox-137.0-mr.xpi 362605 BLAKE2B 
da1e94918d0f967e0ee1fe1a90f401a817080e6df3d774b8f274ccf8be147732a8370b4de4de39a9ae6edf3b800fbfc9367460303daa4f8450aa904d3534ec54
 SHA512 
45b2360b19718f56961444cd9aa2441626eb7fb5794bc2c39cfe0d609d915686152143e2cf113887a15eb9f6a4505d6e38867407f9f1ed8d14d876011f604b7a
+DIST firefox-137.0-ms.xpi 301535 BLAKE2B 
042c51da632acdfd65195eb15219447d5279c844023a28c6f7353c7fec969c7032b0be3d1dac26257001ed548a0f814d6cde79c5ffa6839c4158da549bfa6b50
 SHA512 
44c9466b299f1cc1960505c51b52c27542b160360b9b2898f4b51b7e364d88a4fa7a1a3e3a52fa3becace6419da3e71643b0d996f8ccf5b5601b1f230697a99c
+DIST firefox-137.0-my.xpi 349436 BLAKE2B 
7fba28b72b5d378f74263cbf62c87df389850e0a601aa044b6d162cb91f7d9a818abf48699358dadc2d43b9a621ba078803a970910b1c706410c217ff19df64a
 SHA512 
e40098170368431b3b71ebd496b2788bbd6fd7747d0fa1de4568b7a73f5dbb744ec0184b91ce8cbf050b0bda315a6bb254df0cfe2242499013e7e7a2491be499
+DIST firefox-137.0-nb-NO.xpi 425884 BLAKE2B 
31214f64f2593cd5e7bcca88b13ada59bba70b55cf19ace922cac429d88bb7a344b76fb258a4973a6345b5d4e3d1880c2690025079bbb6a8b0e5ef554ddfcf0c
 SHA512 
3e26a2c713f5099b9b63b38c56169b391bcb047bb58cef5fa78738ac4aa59f38a65bea3196c650469838c2ab76b7cd2be8890447060e5a5e968c357c369105ed
+DIST firefox-137.0-ne-NP.xpi 355671 BLAKE2B 
b8cfc6efa7a44646a7ef3f65b6215abd5d819d3bd939f047ce4543f60c2efe66d65c934f3101f0ab5e498b621c7fa2f90edfa0bf088bc03adfdb7ca9004efb42
 SHA512 
32d5aae8b19952469801e1f87953c0417e293e582e9cfc9b792970ea22ad25f72c3aa85abd70aa39c1e0453e0f69073a1a3691e4269aa0aad222dd217b443a3b
+DIST firefox-137.0-nl.xpi 438094 BLAKE2B 
abac7cfe529d4c22b261fca50aaee8c4e4f83e112899a6d3030ddcf4ecab5af3a4e025fe2901c2bbcf8804a3448341e275ffb1cd4b0f29910028b4e20cef9812
 SHA512 
018f644d65a8f66ab88e23643a2219544be4406b72542f336f06a6879a2c57fe977fd6de22d318bb52fd540d7e814b17905ea8ca1a6c791dba33b85d1998d8b9
+DIST firefox-137.0-nn-NO.xpi 431905 BLAKE2B 
e9157d1003601013bd319580676ad0fbe804187e9524a47130d6272c13afbcbd90ca03185e956b376197b3193115841abedbfb994b7f05d93bcd96b952759c3f
 SHA512 
fdad241f5fdd24e11e35d0fbabfc4fcea36e95fdb154189ba0fb965571b4ebf96dbbe506e6f9e2943654614b38b6b9c44c9dd7b4a9a9089bba2e20c6e2293411
+DIST firefox-137.0-oc.xpi 420803 BLAKE2B 
844b6745d266de203db2944fe0c82a0b51911eb26670aa712d2a12af35c555570bf7abe8f6b54aaaa30698ac7b19c2cea939fa15baad18efb48547f60398f33a
 SHA512 
c2e8f4b627c2d0a4091e61ca7b90c5c204d2706c8e48dd4ae4cab01baf8cfdf5db1a8956d0eb83f9bf6ab4c93240f768e915503a054ac75ae0f4d46151ff65aa
+DIST firefox-137.0-pa-IN.xpi 497642 BLAKE2B 
65df247b0e1ffd6e9d59defb1c76f345c437a466dcf265a6b814519b6fa40b8e82dade593faca1a2c1eb599a91771860eb2a4bb78cb2435eeda3f362d566cf1d
 SHA512 
f65fa70ba2c92c0229d848ec8ad00e524fb762fa8e86ef70385dc5b1bbb76cf017c8cab736999818f264d277589e093d9e4148de831646abfa5a870aa7a6fd53
+DIST firefox-137.0-pl.xpi 458698 BLAKE2B 
5b6a441b1594f77536839ca4039ecb5bc9d4d62bc4ca1f21d6374345a0066b3a1ac4502c60a7d242a21a296b930e70e5a789deeadfd63e88034541d0f8b2e323
 SHA512 
0d17a6871c43e98051a2f1afe8882bda51d5c5d5d50232b58add09b7d8c5adb451e926a03ee614eaceb53484780bab5467ef2ea530a348a5610563bcaa1e3432
+DIST firefox-137.0-pt-BR.xpi 442501 BLAKE2B 
7a6a2e1acafeab5e5530659b5aa3e9e6cf8cef390fa51a832f2d5c86ce1d3f06f0648238332cff357dcfa00174190c57ff791e2f16fc32d0fcee31482917dee7
 SHA512 
267289719f8a34ab0be94fff51523513a62439e1e52f52f2c62e62e525433d2e2a25b29442fe8b397f955a08c4f37b2195b0d99de9cae46d201b307be51f3385
+DIST firefox-137.0-pt-PT.xpi 448290 BLAKE2B 
b0008a6ac694425d260b52f94e825db4e1b0585307144c9053e5919c5d53a52533e95927c8ba205773e57a0e35a2e3d6ae6c3a799e5fe0aa9f0f4ba4c407e04a
 SHA512 
49075f03344060753492174fc0c379232ca5449f915f0907c3262200ba41cb3f326060b6c59179b09f9944200e73de0b36f9b0bcbadd6fd4da67a3b9b097e9a7
+DIST firefox-137.0-rm.xpi 441872 BLAKE2B 
e08ab276c0a86457144c84c974cf763a3d65cc60f0ba38ba09c2df9ddafa9f1a66960bf28677c77468d607b42c23a32fcdafd4159b0653efb4c810b6600a48a0
 SHA512 
84cd97e351a358d81e4731829bf38b08564e8f7b63e64cc2f82e4f7f13d890262b06cdbb76799ddee3dbe73b673a95037df2b646fb911a565e0cb345a132c63c
+DIST firefox-137.0-ro.xpi 368388 BLAKE2B 
ff23a74e84f89673262b54a0804b4301d522eb88e7ce2532b9eb90a3b4517e96aec3f679b5a0dc6501134ff183f0e9c536f892f6c77b1def29900c91175f18b8
 SHA512 
10f6c90efda673db11d71c97fdead7e263e21f1dc99d249d3594113aa7c9f27dd6d49a00f8f128e50c915fcb9390416170bf4caaa5bfd36c479a52dce9728dbb
+DIST firefox-137.0-ru.xpi 526381 BLAKE2B 
3e7e303d1d00eda5919eb215f6e1c7889788af29b8b1191aad4d8c73804c6e830db7d28c803ae98fb01c1acf87ae39b3b6c931d195aa296899d30b11ac2b9174
 SHA512 
4f6c555529681ee72fd72f46a924a81c143b81b419a70c849e6aaab9c1253f1983d1c602be3f80550502dd83a6599c1ddb00e6308dcf29bfa1443ce6af421376
+DIST firefox-137.0-sc.xpi 410899 BLAKE2B 
9d01f973a41720d66b575cceaed236f74d3fe8d5989aa6fb6ac842699f9789a5b3542e45cf3b6d97e2b7d1d5b833f814e46dd55ea2be1dd1f61f9e84b29f8b81
 SHA512 
91e7f1fbee2f4da24896a32a3aa5023b7aef5f174b4ac79b9a76b2cd85106e8a49d26cbb6468d2fe8daa5c0d699bbeec967a9f991147bac2e7a1452324a3ada3
+DIST firefox-137.0-sco.xpi 330268 BLAKE2B 
671df59925ad0236d6325f6c79dfd87de119c85737253f2973538df3805b46ce53152cce9c3cbfa88ff552f0cb02577e5f01f26c99af1cd70c6b87f384b0b141
 SHA512 
2c41e9a4fca6ba782d4a3db340b69e3e89704d9c72d5181ee9d89aeb34e55056fc4cce67a07e205a730cc24c72610a93df763e00e8bb466bb7302f808c026110
+DIST firefox-137.0-si.xpi 419746 BLAKE2B 
bbd0e12b2b56246a2668fa890eb0b7865ff9c1bb06ba7560d922e0c8d40e322d72f12a597d59f9280b1b745f37f321ce6861362a8cfb73c94daaa5369d7a0845
 SHA512 
7618051ed3994138c8dca17b14d2ee1a9da067a4d0a554956bcd8b529aa0614052707c2db7bd5769defb81862373d7b0d80500341fad58fde079f205fedd3028
+DIST firefox-137.0-sk.xpi 469642 BLAKE2B 
c108c67bbc7bac7bc21253ce592eb6e9d12cbf4b6f131cbec05a5daa20aa3425fc50819d15273421d2373fe95ef7ed1ffd632d2ea9d26baa7dc037d11192ac18
 SHA512 
d4d96651eb5b84dfea689da9f72af38657869b6b27b8467420bdb45bb195b0e102bbfcd87a45e8773dde8b7ed87be51ce584a2198d3f482308c6784078d237e5
+DIST firefox-137.0-skr.xpi 498907 BLAKE2B 
523e1606af0c328112ee35b19a6b9b93ae691d6c669d0e21e2596c0a0473dc23ef5b21e848f1cae40793b9cb975b36629a2a2ee673067f2d216830de0d0ccda6
 SHA512 
ed680ff919f2c553808f8e9ffbaa99f4d3aa2fbe1b3db863fdf1d5aa3d1fe55416d7d9b9b5666a5c93e9aab0dede3f040e2905ba4c95feb1de98b21bb2239f22
+DIST firefox-137.0-sl.xpi 442004 BLAKE2B 
8ede691a2ba24a2324f389ea0d8f96229b66c56957b8bbb3444bd5ceb66b2afb8613df9f4319dd4a8f82a54296c752b6ff397e95e8fe27e258df8febc437b772
 SHA512 
ee1a8029758cf971a9730259e2e2841a594744a7bcad47eb2ee755039ef3ee7135dde404770490a3bb49739f0676a4b97900265db04babe58e656240fb0e50cd
+DIST firefox-137.0-son.xpi 278731 BLAKE2B 
54a2b1ba54a9794e1a18e28d0eed7aa668cac60bb476fe2f98a67fe0d6aed3a7d4b883e454f2ccc7564ac5235ed31892afbd80eec4a719f4317a24b70a355114
 SHA512 
565f3f1ca5b0d3693ab3372cec95da887106fc522d8d52a825983bf09f68540a1e277ce0f999ee691178e9d65415cbddffdf9601e1a9bec4ef1032deb6927481
+DIST firefox-137.0-sq.xpi 457300 BLAKE2B 
2236b8ece524a697784fc6f161d9acdffeb6bb11defcd8af70ae386d3bae32897d38fb9d54fa15e50372ec6bdec4878e21ae866c02c1d0294f216afccf90e122
 SHA512 
0eca13b00eae7e5d2ea76c12277a462514ef9cc60f3b23a88888e6840ebfbcc9b8027536f022a7b25dea0e0189463a170190b0ec4582b76a11685e022bfa548b
+DIST firefox-137.0-sr.xpi 461357 BLAKE2B 
17dc3aa429f553ee3aefc0fefd7d113420f4735a016e0aa075e151e6ae4e46dab3ae49c1e167aa8c677b9c4a64dd4794c96f1abe60a0a92a26e8c4fd2ea4b3ff
 SHA512 
41ad9863e8992de6d7ad77323f10a67bfaffd5a90cfd88efd491fbcdd7edebb6fc5a05bf1ab4cca44911e7d1589b5acef4ea5f52d9a3db2f6d54b7d89460f521
+DIST firefox-137.0-sv-SE.xpi 438140 BLAKE2B 
0ce27ff6c05185595cac54e098980ea249b86bed1608bffe8f38b57f4b49fd62beb52605ed935f22c260ac499511220678896a09dd3588f2d1e2bca0a461110a
 SHA512 
807e6237847ca4c9ad76b049dee97dee39265a39c26ff84254066246035142c773baf8e093241469c9f793bfbe8d3f990d2e890c8a87f40c7a1bc83e05ae4f09
+DIST firefox-137.0-szl.xpi 349494 BLAKE2B 
d8d091e7b6b6d500ade46ce67d1aaad7721dd0360e66abc187949916c00267f96a8eb7ba50a44c0389727f61dba885a13ec05904d4775dec48df757164345571
 SHA512 
c228862de4295a3daf042b38cfa8ad7fa8cdd3506cb2d123c18e6ed30d6cc683d94fda05809b46e05379cedf3b7f21c7761fc944269a9539f8f9e2f30ce60a1d
+DIST firefox-137.0-ta.xpi 343874 BLAKE2B 
0bf59d197cbf2fd617046c728d1dce6fbd645e5f06402d7eb16c1200d21f710773b1b1f457c755bab7e68c787a19c527e9d69d284d26292533de0763b204c1d8
 SHA512 
50fd8b641360d39ddfa0b4ca424703104f41bf8dd843600c48cec844ad9444a634ddaaf3db468e1a1aeb28c76f8ea5378f51a72df5fff2fc0db968a7b0ace691
+DIST firefox-137.0-te.xpi 389772 BLAKE2B 
7edfbccbf586d82ed1accc7e32fdfa4091c488556e8bed402506129dcbe6a687c9bdb95262c6341a5607fd4794a9dc5c2662631a45e17880fff11327e8bccb8b
 SHA512 
c98b2c343e69fa9d18cdb135294e7b92b0a1e153ef24743f369aa0fbaa7acbd4e451e7ab01ebd1a31f94d9cf1f139325286383b8532a975dbbbea2b7139fdf51
+DIST firefox-137.0-th.xpi 507329 BLAKE2B 
c1c8b466a2cb3c558acf8f2dd911cbb7041bca097a67f08b235088d5e0a321ace450cb0eb0d61ee4b2129b2534f668975e0e684707f730501b4280d5cc175098
 SHA512 
0c299d835b147774a270132485e694d0cb00fcfa6959189616aa905392fa2abc54a1ddcd29e05490754a52bd0acc4ae5bcffe9d9d5cd6a4fe1cec01e2c4b4a8b
+DIST firefox-137.0-tl.xpi 357142 BLAKE2B 
557555f2b2509ea97f47cff363616d39ae51c20d4d01268532c5420a5a4f32a2020a019c7f6565211331df5716b4df7bf690a69da1bba8fc3303b6bcb674e994
 SHA512 
a1836406561a6135704bfa74b4f97772376fee2abaf49dd81da702a12773492f4ca628e7ab04a07490ddd0c5ff0a05414c8c584ceaa06f5f1d8095b5601f0127
+DIST firefox-137.0-tr.xpi 450206 BLAKE2B 
3969732b8275a47864a58d03fd4c8429c45c9d911bee4827dc96fe00cc6be85760fbc46781cb79547557dd4f5e5082882d6fdb30b11a99ef8c7595768bcdee61
 SHA512 
1fa748df368701ffbb79d87a69deb0f7b559e440a512fd8c091dfa83340480c972d69c4894fffc0da78be2a3b02fee46e3bd48d6b64efefe4ec605f2847b000d
+DIST firefox-137.0-trs.xpi 329269 BLAKE2B 
64e489e048ed2433c18da82c7bfe450d8a9ca1fb8d827cf7ed8d8db44c5079aaab310dcb8477f578ba24ded4273da6185cddff7950d46ba35f9041af42098438
 SHA512 
18f83b1f01c760c472c479452b9d57692f72a503cd3a7442bd91bd69fa0c5d331b2f4e9361ff378dc167f6cfc630e977e1e5cc69b9ddde3095b357c6b1a9e307
+DIST firefox-137.0-uk.xpi 518147 BLAKE2B 
cf719fe5494fdc18a5a91d620439a3c27dab3ee13992a7689537562bb1c17610a52541de2d13280846bf501a651403cf5beb81e7c86346e99019f7cc3a5ab954
 SHA512 
9de97bed8c54f6bba3e4aa7143ebed303b584f0295e229a18f8cc11155b69e8441116366bf79c52f0bc796f2ca8699a8ecc95289fc483d991849a85eb9c5f703
+DIST firefox-137.0-ur.xpi 377234 BLAKE2B 
1e0413708ee54a8c1c2af5192273bd0cd0d6f8bb3a94a86a91b4c2092786939732cf83dc841a7b6de9e4429ed0b9e5c64f46ad2dc73c43f2f3cd5573fb100850
 SHA512 
a10468590f32076080a63438bc9fdd2234c50fe89a3219386f6de32ed60c514c8bc4179357077aa66b9e308fc29cd38694b6fd2c2551e731e88de518520d1d39
+DIST firefox-137.0-uz.xpi 310804 BLAKE2B 
3ea12b5b6b6c40e09aadf478310f22233f873ba113b38c46f8d2357a665ec65d15759f6cb15d4bf086e852b8c7dc38bb7b48369bd9c73dbfc37a97e6f0c95516
 SHA512 
4eac9e2d5e48c9704eda5c7f347f0311b60d7819ca17611380b43d080ca56cc6b72aaa7e843495de8b4c9108147795a89ff38880f877d7024d65880b0284c67b
+DIST firefox-137.0-vi.xpi 471357 BLAKE2B 
95a351330f1dbacff23a53dc235c127a6b1dc8b26451b2949311fd14b2b020ff19bb503813d07ba09d54eb545bb6162bce959c94f4999d490acbd4f44b831933
 SHA512 
7ebc37d4b9f3a795d8d3b60f90b4ecbcb637df60b27db026f0343dbf9cc7c01494b6df67b1b139cc3b104456d6c4476ff5e91cf51e7ae7f542af1ed7b2e0f3e8
+DIST firefox-137.0-xh.xpi 278679 BLAKE2B 
ca8da76ac1534e27138dd15fae95a219613a800c75e1cb50b51a6396407a86bd934005972eb2bc3da566909d6d2722db313040d03bcb11541eb77439c03e775d
 SHA512 
0b45a5924197bc6dfee20cabb8d8190f2e7b53976e4905219ddc5c2aa6e3b0035e735b4b33302123b9f6ebb00b453735566c892a510f80e81260063ac99fde18
+DIST firefox-137.0-zh-CN.xpi 462573 BLAKE2B 
cc4f669fe6d9a3f9a63d4113f242f00d2f543ae13779511988a320d0f95ccab0677e74d83c29fa87bcf8584333ba68eff70c70036596d75bf55e759be97394b9
 SHA512 
c1a170938947bfb4524571fc6f58215f574b27914cba2d15ce1fdd4d5aa6486cafa6bb9d5e988ea4291219e5433756915589a4841fd4cdb653a3bc2658a4bd38
+DIST firefox-137.0-zh-TW.xpi 465659 BLAKE2B 
789d711b0a820292242cf10772c90296f4fa737a1162eb90496124585de66be9870b7292ea889ace5fb47d00b9234b0117c94847883c5387e753bd2b487a5f7a
 SHA512 
b6ba47e754bfc116c082769dd93224faae464d078ef20bc5eb6be318abec72115a6f9631caab313b3c384f76715235fe3bdcc10734434be86f7b41f038ad12c4
+DIST firefox-137.0.source.tar.xz 593165900 BLAKE2B 
09556f8f22292442dbe350ffef285745e0893428129ea1a5b9eaecf47d6847d585bf5cadc902ca0e39333aa391b8892f1a958948037faf1653a0a4480b726c5a
 SHA512 
81a2c0cc14ffc2e49e49379e6c2ab56cfb6e13b66666a64f3abff44a43bb2e7dc17274d325d1c20af062d40bff8063d788d4b2f931a7a646db8b07204ca6b481
 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-137.0.ebuild 
b/www-client/firefox/firefox-137.0.ebuild
new file mode 100644
index 000000000000..110ae871dc5f
--- /dev/null
+++ b/www-client/firefox/firefox-137.0.ebuild
@@ -0,0 +1,1371 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-137-patches-01.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-136-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 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 )
+"
+
+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.26.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
+                               <gui-libs/wlroots-0.17.3[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.109
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf:2
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-libs/harfbuzz-2.8.1:0=
+               !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+       )
+       system-icu? ( >=dev-libs/icu-76.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+       system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       valgrind? ( dev-debug/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       || (
+                               net-misc/networkmanager
+                               net-misc/connman[networkmanager]
+                       )
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libXrandr
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       hwaccel? (
+               media-video/libva-utils
+               sys-apps/pciutils
+       )
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+       RDEPEND+=" !www-client/firefox:rapid"
+else
+       RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+               einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang && ! tc-ld-is-mold ; then
+               if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+                       einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       if use pgo ; then
+               if ! has_version -b 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                       einfo 
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+                       einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( skr )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif tc-is-lto ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+
+       # Get LTO from environment; export after this phase for use in 
src_configure (etc)
+       use_lto=no
+
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+
+               if tc-is-lto; then
+                       use_lto=yes
+                       # LTO is handled via configure
+                       filter-lto
+               fi
+
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               if [[ ${use_lto} = yes ]]; then
+                       # -Werror=lto-type-mismatch -Werror=odr are going to 
fail with GCC,
+                       # bmo#1516758, bgo#942288
+                       filter-flags -Werror=lto-type-mismatch -Werror=odr
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use debug ; then
+                       CHECKREQS_DISK_BUILD="14300M"
+               elif [[ ${use_lto} == "yes" ]] ; then
+                       CHECKREQS_DISK_BUILD="10600M"
+               else
+                       CHECKREQS_DISK_BUILD="7400M"
+               fi
+
+               check-reqs_pkg_setup
+               llvm-r1_pkg_setup
+               rust_pkg_setup
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # Clear tons of conditions, since PGO is 
hardware-dependant.
+                       addpredict /dev
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       export use_lto
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       if [[ ${use_lto} == "yes" ]]; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       # Workaround for bgo#915651 on musl
+       if use elibc_glibc ; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+       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-tests \
+               --disable-updater \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-pixman \
+               --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-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
+
+       # 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_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
+}

Reply via email to