commit:     4611ba6689cbfb279d6d39ccb67664d16662f86c
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 29 07:57:53 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Sep 29 07:58:39 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4611ba66

www-client/firefox: add 118.0.1

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

 www-client/firefox/Manifest               |  100 ++
 www-client/firefox/firefox-118.0.1.ebuild | 1430 +++++++++++++++++++++++++++++
 2 files changed, 1530 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index f9677639f83c..144e4e820b93 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -499,4 +499,104 @@ DIST firefox-118.0-vi.xpi 605281 BLAKE2B 
51865b9d8dd8f1a5f8200f754df8ad6ee2207f8
 DIST firefox-118.0-xh.xpi 401464 BLAKE2B 
a2423f2509edd33aefebe4e9523c0463d51745035419fb59e8595845574903e4969ec6d341eb5c4bb95194eef210682fb1faa140f301ee33750388af95367e24
 SHA512 
d40d0c276ef89330c41634619b9e5b0233be6090a3277de91c06f2647280637ecd405f028ae1d4349db5ed9726d4f9f1a62e81d51d807c00e186e426e1d022d3
 DIST firefox-118.0-zh-CN.xpi 604604 BLAKE2B 
63bee140785e0d04c6fc4bb798c50267a5ef1987c2b7188a570d61cf3e3236cdd8badfe473822d63602df849264751dbf4de116fb7046419a5f378667b0d0bc7
 SHA512 
7ad987778bb5b514dda69370744a1e5b9f212238be9503444ed13ee177545742da0d6ee2db06b05ef40b991474a3995ee6aec4d4130c3ae87af91ff8d080cd07
 DIST firefox-118.0-zh-TW.xpi 606636 BLAKE2B 
b976d18ba6dac7f48dcf8e904e0bdfc670ace60c0f0375114a5f9b4d095e51514ee4975f48afb0f5a22065200d499150a4ccf264d61b611e1a1db2d6816e7bc3
 SHA512 
b028cb6cbf8b5dd7bcc3fda78356363e6abcae9cc2f5d81c0c7d7b24b52d2c9a179c069915f2c1125773fa88c8e008e758426345dbed18a2d8d0b8ba15a3e9b9
+DIST firefox-118.0.1-ach.xpi 446026 BLAKE2B 
e5c801bee7f8ebd92c5de87217fb46cd7e3b7ccf08d2ff25537ba80cef8e5c940a3eec173f3ce46181fe68aef783751a68e9236b556818dcbada34b7d1bb29e1
 SHA512 
cd3c9010a75cacd7afb2f3d9626798d935a88c1f9460130325ca76fecc04094e335762e8f55c4fb9fd98c09f6fd947b7d8b58ccde23fe0f06d5ae59a40628f0f
+DIST firefox-118.0.1-af.xpi 401795 BLAKE2B 
ad6a6815cb2f544a14d9125d9d89dbd745b679ccd89ef75c8bdc77fdf55ebc1f7c14422c92ae07a6a59a166f89afdf3ed024603c4ce9edce80c95f685ed6d3f3
 SHA512 
9187bf995aecdaeaa11c423ca60514fdd5f8d90fc8e93f1ee28897dcac057914801083a6b2c90634842c66d8ae80b87d6ec8989ce8cf666b4b64fe3b919b1a18
+DIST firefox-118.0.1-an.xpi 485437 BLAKE2B 
8da6d2893750e7e2e1e718fb8e6e559725f97ad8f3aca44bbc658573f89f5d21460b62176f9423ca0c81358863a2804ac653ebf49596c3ec84c3bf8f0ca16b6b
 SHA512 
b61baa59dcf51c0627b0630680ed440734d69824f87236e7806c461dda6c891d6fcae6b791366bc9a55050e1a8aaad258f1df22eeaec0c6d72a96bd82651ea04
+DIST firefox-118.0.1-ar.xpi 552502 BLAKE2B 
714d561ea57ce939fc0bb76a404b706d7d3f0aaa544fea813c49d32644be4d3edbb0b2867afa81abb6002b8185c97480cd87acca433137df7b8c92dcfe21d2b9
 SHA512 
e9b6818b4d569e77d344c1a7a32a29cf3853b9f0d42e7c73707c0b5deb119e0c739754693386fea982396acc9a0403e5f7676a5008bb12d01f74876eea99a8de
+DIST firefox-118.0.1-ast.xpi 478762 BLAKE2B 
878fc79e0d365236daf3c9adf645d30d8a3f2ca7146798506c77970a58575b55781c2f51df2667ea860b32a31225e76e3a88df606eb12e2490cef6d27b2bd5ea
 SHA512 
0ce1992a29ed6979a468085c0f526e8caf514ae9cbddec50ca6869048e3a7dfa5eacbe04ff925868251af374a38f5d30e53edd609cadda080653c9c622b2af96
+DIST firefox-118.0.1-az.xpi 471877 BLAKE2B 
fc3dd907330b9c16df7ee247dc41cbba8051a6a60c27ea8332ac7b07a6ff99db3609dee300ef01697588b3a9342d9e14aedb0f777862dfe1bfc43a1ed3cd4b77
 SHA512 
f2518452f5ba568a235d9996b3402bd778fe78aebec5a9a871ac2df2332564d5586a3e3da3ccf930df0ecf4d08dc10ef8bdc6c0085cae71295953b10cabe4075
+DIST firefox-118.0.1-be.xpi 657997 BLAKE2B 
eda077d395c0bfe52e3a6bb54d477e1e88fc8c73612e6159557f9d2efe4b0fd795d88c571ff5749c922660c05bcb7306aea4c57624784847b05d267aab4c8b02
 SHA512 
c13fb21176b0f5061a2ae96127de9d39dc567522a7345257dbd6a1dc4f9cbcbc2f732a69a2c3f804d05df6b7a70e9620d81e294b119c42bd8a91d1e8087f6fc3
+DIST firefox-118.0.1-bg.xpi 567008 BLAKE2B 
515a6b7f74b8450b52daa2753268759f41358ad19529b95c2144957f374328d2e3faf7a40a4f5e6aa2f378e09e76fe49538478605b8c832298b5ac1a34d78a0d
 SHA512 
6ce4817761e960adb27a429e36a1eb5fc5f1cce1829c4982550a5b721a4d42632b0444d74a9396d9f52dcf63434d9d32b300b56c3643aaf6b88ed5caaa197012
+DIST firefox-118.0.1-bn.xpi 561418 BLAKE2B 
3bd876f045602755b934df77bdac5879382ee05d2a4622774d811a40cd6fd6f655ad58e07bc9a95b8a4a29a8ba7b915a4bafe8b51b263b5bfea2d52069398486
 SHA512 
3afe1ed48f1db34b5120db3b91af7188adf6d95cdf5b06de2d40df30ec055e54f966f934008b13a1e6fab48e312145dbe4b6ebe8caf3b94ab100b3e1da3281ad
+DIST firefox-118.0.1-br.xpi 546675 BLAKE2B 
b5e9d8cbf498e8c7a2d01f211131c8ef8eab2a020c2fd1a8ead4baff0d7439e195eda99c92b21ecd45c0f84cb27521fcb02a24d1d33acc1df23465e2d6fa34a3
 SHA512 
7aae2041bb48e6e051f4cea1f51ac8bcb7bf5f5c5dc9fc3a92aa4dd64036a2707aa5df716f2838ee4d8c6884fddaa7dc2747854723d4fcc1b5fec3c8c572e6ad
+DIST firefox-118.0.1-bs.xpi 441969 BLAKE2B 
65a8ac3d49713ffc11583bf8da1c1b5a744d6cb6d07f5d898846e0575c6c691b9e8eef24d2f52774fc61fce5e99e4b42382b1f3ad87bc572f7245dc5ac5948de
 SHA512 
f00863e5d736f525f9dc11bdb0e542579eddbdba86ca0f3d7058aab46567599bd40fc066b9084eb15a3ff9810af2fa1b99bd6cf93f2f2d3e7e15bd7e33dea04a
+DIST firefox-118.0.1-ca-valencia.xpi 524711 BLAKE2B 
c657f707b18bc462cbaecbbf68699d742e0b1ec1a47976bd62ed43da5044320e252940c4a803166677037620c11018022bcedd7c87c9fd5f97c2fd9bc9c31556
 SHA512 
0d972a85617dbfa6692aa5417b5f9528ec7c0e7ec696c9cd2fcc0ac87f121177812d9d95a076978b48923d31e5275d0743c6b21b38eb6186a3c92a38d2cba0ec
+DIST firefox-118.0.1-ca.xpi 548412 BLAKE2B 
0d809e3183adb746328a8a645bc9557df64a37b7df32d792c352719a92e50675fc9b326aff39a4fde5a9f1fa08b4c1a8028b27b3d06fdb16265f679d9fac02ef
 SHA512 
b72e01ff4f994ccad111bbee5ccb78a373087afccf766961d13abde201d3e4922dfbc90e13c28e895d21db76085b6327b1d3cce5517a21f27020404215adb82e
+DIST firefox-118.0.1-cak.xpi 569601 BLAKE2B 
25b43b98a3df3a47cfe9c20b626a2319f02331228905e2619512ba0eb43aebca51b61750d3266cbcf827108e8ebae15659567026cf5cdacfbc759ac73936c8e5
 SHA512 
bc5824590b440b6fc1ef89af7b675050449b02b53fc32c3f71a89fce94e23f7523921d681f0d0084798f27101b82cc8794b19b03740295ee425c10760c29f142
+DIST firefox-118.0.1-cs.xpi 602034 BLAKE2B 
0ba0f29d60b387cdfc8f92135b6a512abfee127f5644c40eaf0c00762634e005feba5595eb9193ad7b7839414f8adf96076fb0a148b775ffb161c42167ca6a18
 SHA512 
00c4cf1dfad327b4755f201d874453e6caf9bae6e7e0243269a9ae5a97883179bda966a5528ea63dfbc69baa8e6b4fd7a0db28f7808e38755d52cb28fbbb7b68
+DIST firefox-118.0.1-cy.xpi 573630 BLAKE2B 
d8b5e6049eccc88d6700e8438aa72d5539e7504df0a5cd05e54bf878afb05069886c7361531d18e022813e23005d1ff931154cf90f7bbb08f62900b7ccf267be
 SHA512 
b08814e7d3d49ae9aefd502417e90a12db6e2130d9c0b441ee8d0362be943c845e3f2ca52d76c70086841b2d49726599a05da6c71a56237b5097f7dc413c0b8b
+DIST firefox-118.0.1-da.xpi 562661 BLAKE2B 
c3c45856463df46de3d35a2b35bee72269461311c415b6065176e1036bc5fa1025b07c102c2d76be4ff12d825598fb2dc66ffd38e8d77d18fcc1e0e2831d7971
 SHA512 
14c6f06b78d2ea6e5d15243159c57073df61f0ebb86e7e0bd58c75415a5e40c1b43503b745c1daa44925379a1479c7890a4d06c3feed6c32d25d3b1b0f972d64
+DIST firefox-118.0.1-de.xpi 583333 BLAKE2B 
9e092c9d53fadd499a4fabb1ad936d56377bb06151a0bb51ce734f8f598ff5f140a7f9039768d42606368019179348ae5415f6dfa8b27303b1bb1eedfd7ba31d
 SHA512 
1d591f374d878b3c70536d028a698cc9677af49fabbb586c28deb5cf2c666a144a9453e9cd8a7cd7f1279ce9a3c4c3fdba0a522d45290fc3789d0367abc00066
+DIST firefox-118.0.1-dsb.xpi 598372 BLAKE2B 
3bf36096147faba5d86bc7b6f26521f90645a2fcce2149da5b14692b23bd88b11b930cc96c37a270532dc23cc47bada8c4299ec6ff71852b7136207b233e465f
 SHA512 
00f4e192ca4bb1afc9dcb4ef59b091cf9ea0c55b46a5015bd7b6f5047c6ccd8431407ae927ed231a68085a064e4674aaab27fb7c1fbcaa1e519e8591401d512d
+DIST firefox-118.0.1-el.xpi 672674 BLAKE2B 
bbc26dc343aa5594c7ce695f9e987f749fbf160ce92d62ca8659a70ab79825bda37d4c74c58c1acb5120e80ec670c1926c7c9fc025cb552cfc78c4e80c4f6729
 SHA512 
3216e05760945d648f0773bf860fc81a1a40a5b2d1695b8fda467592df409337d43cf1ddff41f14a114c4723ab2c95918e57bf630bd521f51127afae212e7d2d
+DIST firefox-118.0.1-en-CA.xpi 538015 BLAKE2B 
ec2b95beed2d0a1d7e2a5b2003f72c76295b1aef0691b4bd56b9f6302dfd384ca152f17d0eb0cdb209cf1f4aaa8042230c29939556b2f1d9ec8ffc9b7016ffcf
 SHA512 
b17ff95bdaf5c918db8d8f9230b5e3cf5b888a4769c2858268b3cbd4e7fe9a2bbea211dcc8bfbe310c8b96b91d53dbfb8bf64ee820917c47e7394d3c1e651564
+DIST firefox-118.0.1-en-GB.xpi 538560 BLAKE2B 
cb01dde6c2b9fcbca4041d107c858822558bbaa31c2904a622644c40f3158c5b5394f2b3eb5c51b7685f19ba65880600df3dc8fee16b5f47c69af8890a15a280
 SHA512 
9f786de53a0313f773abe9882929f907a4edce7ccf80fae476bea78626698957d78fd512974b26efb2d2ad468adbe3e13c0201574c361f2e8c3c29b20e4c0dd2
+DIST firefox-118.0.1-eo.xpi 563415 BLAKE2B 
7e66dfb339e9b908c9087e2deaa6e2d07b1f3a5583ab3bfe3d86b5683503994767de63d77e03eb51aaad73e99933adb417b96ce1e6530fb6abf34c29db7017b5
 SHA512 
cd7a566db2f94d6504df8a74dd7853e13851d589facc9d6457b9dd00b2c9109657e7c978867673a7ee54962456809f09ea93003fffcd418744278724c41a3fb1
+DIST firefox-118.0.1-es-AR.xpi 577749 BLAKE2B 
1a10cedf04ece61587aefe6e5ae22e4be384ef4a87e7ab6f95bf2fc3836633e5a9dfce6e5de2ee489a48f63d4e63308686bad5f8c17d93ed68f96e468e0c73d5
 SHA512 
d4a499d5d16b563c1ed1f931fd0d4ccd46d482b0469e0816e65f8ba21954d2f8a4a37606125a6daffc3d2064cb098f56c47bd5ac4b75df1e04485cfe0231a9ff
+DIST firefox-118.0.1-es-CL.xpi 576548 BLAKE2B 
354b1adbe8b1ecf65e809caca8896e49c3d86881fcbaf86d23aa39af623604f0bb2f8f11b3db2f20d895d1af48a721056685e035e4fc2e6e93912f35b814c575
 SHA512 
5db0736f95bb9c1c3ad5cc23ae732051fc0bad4ba6db11168ba2ff40d031e9958087a20cde4715db2519efc32091a12de3362b665fd186aab624d488861665e6
+DIST firefox-118.0.1-es-ES.xpi 571103 BLAKE2B 
772d119d3002f04cbff078d78ada5bdd38020df6fd375d421534024bc9d1d2df0c0fe31996c58bf4c54b9c53d0dedb1e626ede126c984e1cc3363ce644117862
 SHA512 
adb23f512fb0a83e906bb1a5828e0393cd193e707098e7244ff141e147876f491c6a225258642ff3846dbeb9edccf0b4a6e57c90f4fa31188b096f341e368cb8
+DIST firefox-118.0.1-es-MX.xpi 568537 BLAKE2B 
20021b0b6d81f1cac45d09cee771057024ee3a7a878c13f8d6e1e726deb4cbff5b9e97e66c5bc982a466e028ee1435740293d828cc4286ebac5fffe645a0623a
 SHA512 
419d3b2b64c8fa0ddf1d69c660884030b6dabad0766519c99742a602c20192782f05f8959f223375ca1a48a091cda1cf6122c562a244633e4d9f6887b6951e0a
+DIST firefox-118.0.1-et.xpi 519004 BLAKE2B 
4fc35c5b10804f1d11e8f79cf1a9b20efc13742cf750033b46a55d402355b1437c56922a9922b6de4e35b7f6328a9b7f72dcb3c36eeef1c5ccd8c887a5068005
 SHA512 
6c5a00f7cb1ce72c2221dccfd4b19ee339cbde57f4d6eb2c09084b7af5ad7ebd4ef5acf2a0a88f8b569a0213f262df32e69c4860ed23c910d10e395338347e85
+DIST firefox-118.0.1-eu.xpi 559330 BLAKE2B 
9772dd9eb2e0c031407dcdbe3f20828d323b337ef14264f97659ec5e62800d5757a74c80bc5cc268476090c641a9bf664f53a696f2928b06dc74c71c4e14fcd9
 SHA512 
85726a79e1d3c54acd14eaa274c1f7b208afb539c4d4132dfd1316fba0a948fb8518caef2d1f48fc50c77816c4cdf7fdce2719c23a081d8bc75c771b478af9d2
+DIST firefox-118.0.1-fa.xpi 569207 BLAKE2B 
ef86d02fde7e74260e0da31754a5f14fb5ab0d43e1818a3d5beb59961dae9981b0b15cb3e06d8eb64e45adf9abe8ab500b53c836ff60dece29e105a2437a06b7
 SHA512 
b65f4cfd004ef09c9918fc123d60bf05df96c0b4acb187f8589cf2f84b85083b9c4ace7467a97aa4a1be7b66fe47b44c0312a1449c57f3bc69270c7e3c315f97
+DIST firefox-118.0.1-ff.xpi 457184 BLAKE2B 
229cfd28e434146b6d686364cc12abb0a8a8b4d411a504ce12b2da5227dd89f0b16258c009bfa9997f02e11e4f7d6cac471c1e3cba41549d76548b37018b6a10
 SHA512 
7ed55d66be7ed7593428b1d5a41f76a08dff21ae5700fa160e78dab4e556d5800151ae37cbd463a2937868300d108189b4b6f3e80b4e085c293239ce6c046971
+DIST firefox-118.0.1-fi.xpi 560271 BLAKE2B 
e9a1c53d65a3b37f70a4553c4c805c96f3c3834a9b9c28a415be330352e0d892652c35286884a1b9fcfea03ec0c0ef05cf42c43672570a01d2626bfde4145bd6
 SHA512 
a3396dddacf6bfa65d3cbcbcb7ecb870011cc0a6ca58266dcd97303fe0ffabe7ce43662c194f1b68de1e3d610c4b3495f2bc1cc9635fb1a9dfd7f8f965bbf091
+DIST firefox-118.0.1-fr.xpi 588797 BLAKE2B 
f5e90993e632c8252fb6ee01afeb956b4f91c0d3f7f4cbc46e47e86e917ba00ffd5ea8b3d31cb6544cf4f17c02b0be7b0b63a339a53c7eb99074a8d6020296ed
 SHA512 
62ec47827589c3305ede9eacaf92c36bb7d438d66d3704cb324c8e23d26b70c8b418e9bd4da1c4228953c6fabb1bc6bd95fa52c013b5710b9cebdfa74948b547
+DIST firefox-118.0.1-fur.xpi 582429 BLAKE2B 
4e961fb931f8022c45c4d7b75309727de91b0a2041dab26ba1f6cb41c259fe377744b2438fe1e1af04b8055cb8a2bd96b757f4644a9d417cece577d8b781cac3
 SHA512 
9e49704c562a384496d19dc211c1f91282c7f4fbcf08f1c2924b1fe5e9b2a1a947a6632d2ebf098ed1c566bd946cc55ba94b7afd5d4c47819b4216870da369db
+DIST firefox-118.0.1-fy-NL.xpi 573264 BLAKE2B 
493bfd6fd947bd07befc9003bd448b8ce71e5c636da7bf57f2bce3de89db84689ae65b8855fb7515bd940d7e5a6b455d2365b3696561f45e6633914b41747062
 SHA512 
ce80a9f0980e6852ef658f45804995e78f914e7a579a1ec02698713e349f34e4e5a693aefcd92faf68b61fbad12a2a7333d3dedf6b96bbdc61aa511bc8e5b938
+DIST firefox-118.0.1-ga-IE.xpi 454904 BLAKE2B 
d540982ecee92bd00890355d5cc4b65febee4623d43d3900c7197fd0b3b13cfcf0aeda533c41ecc12a4e24044908eec78eee466a6b57d75d5acfce916719192f
 SHA512 
d5b463e8ac387a18c5fcb7d575c88a3538c30143e3d50a9fcb6629fb0f7988ed6dd660cf467a46b0ee6c0ae6a3df8c98c08aebec44689ca7fc95c8409489c5b7
+DIST firefox-118.0.1-gd.xpi 570194 BLAKE2B 
baa4091ae065848effd0f544a769311124422cd336f9a599a618f8c83d8674d66896dd63c7e82187a05af1992fd0f8a734e1b689f9b9c16cad31a580b1930389
 SHA512 
e6abca5b6bcf5ad45fa81cdfd9f19909c54e8fb0b9e15753c7b0cc4f65ec0ec94157ad83fe7765c9305950c9d28cf987fefa7590be8ca7460359ec845dae7fe4
+DIST firefox-118.0.1-gl.xpi 569417 BLAKE2B 
45323bd922f1994d6581f9998d0143f5933e53f4b02ce8aa0f8c2bf8190b06c1a17fe2713fcce5f2cbd34ce6a6e8716ad5fbf69a90a2852dbbd6ee6f43caff48
 SHA512 
a120c6dfa82792d2804a9187b157496600c8de759bb75367eafb58146dcc05ebde26b07c30171b0718ad8dc775680fee14bc49ecce4314a4f21ac72e6c10fc2b
+DIST firefox-118.0.1-gn.xpi 586932 BLAKE2B 
1e743334a6ed8983068107cb8dac8500becd6a2c511ad127c618b565df8a9e3b343a2607d9453fa85a6134a9e6846defa9e3612b10f07014b98d1317b1bdd980
 SHA512 
1c691c93913023709ba255b056a71e376888af5fd758c387ca0805e84223cd2e632332657e6320a9f07ff5cb034e2588cb8e348eebac776415de5b6454ac91a5
+DIST firefox-118.0.1-gu-IN.xpi 507505 BLAKE2B 
c33469ede2868df698d70e077f9f6430f8aac0ba9418d7ceff8e23474b28cd5ec6a0c34356dc8dddba75871e51f60105bf8d22dd7e106d473c42a05d03f85127
 SHA512 
123f37a06290dfb38322540f956a97c42fdee2683831eef008178b43b33109f9cda61d295b528ef2c08a49cbaf119956f081da45b32eae9b70eebadf61828147
+DIST firefox-118.0.1-he.xpi 583011 BLAKE2B 
cc64ba46db5badbcf933c89aa434455d936c6d44715e2035b8215d9e8d8298252db34750c320a5c1088807dca9196b00838c697d9b02045f2fa944ae0e89c131
 SHA512 
7968e6b62b5a87284ff7b26cbf036f2addcfe0a1069d492fd41b0313ae999aeb764aebe5a45fe508eaf0b7e1d09add02aa4e4a5f3da749ce1da4822019cb73d8
+DIST firefox-118.0.1-hi-IN.xpi 545208 BLAKE2B 
8a6db80e0fa3ee4dcb9e7d9eab4a9dd2aac38ba5809c48d19dd17404958dad9d98d63d17f87b74d772f772edf310a93ad5a4cc4fcd7fcb034a15dafddbfbc72f
 SHA512 
732e844a00877f8f23c03fd2a4fe7a9933e2f55b4f6332e612ead9d86385f8478ea766cb3a7321227aaa557699a94ecabdb9f4f9a9fdf352848994516c6f4381
+DIST firefox-118.0.1-hr.xpi 536180 BLAKE2B 
7d2c454040980c4d5acc80e72b381c0921741ccc9661679b852de08de0c9e104b99064aa92b19ccb5836ead745bacd11777bbc4cde6e993293f95e67d36ec58d
 SHA512 
b22c5a2140c33c6d43d370eb500e7be4199ab0bee2972a7117629d0ea2e224aa0075e8078542128a5e64ef2e678b58a166e94cb94b701548cc8f5f05647cdb60
+DIST firefox-118.0.1-hsb.xpi 594446 BLAKE2B 
a67cbfbdf2a491f8583ce6062035467254311c86c94813269dcef7cbfc9ba6798e9b5a9597e35d3eff64a1a18d4bf7faa7e0f73779ae2b5e2027c68e9622d44e
 SHA512 
771996cf72c693a9e88765fb862271d65620c8734c6c68faabc5d6fe5044a48f075c7b278ac9abadcfb3ed1ddd11a7499a9971d315af2aff987b8e2ecbaf47c0
+DIST firefox-118.0.1-hu.xpi 598444 BLAKE2B 
ba70006bfa81f711ab836ee1ea41e90b2aad19d422aebbc9dd609141b17f4a6cbfa4f6b247595d509cda700dd4ad94c2eb0ea428d1ae52abb6690453b0731f8c
 SHA512 
3d8cfec795fc6550c1dd363b30836bd0e897db742895a202772f8f817301c5afca96fa072c6c1ce798646da2458f67b5f7d58a936df5d2db228fdc1235c6bd29
+DIST firefox-118.0.1-hy-AM.xpi 584489 BLAKE2B 
58a39a714e8407c40cd707463f05eb58a230a5b2263b875956d48f8593613f65b7859069471f267cd9de369ab395279c97a9b2e0c10dd986aa0b218f60c90848
 SHA512 
0bc0021a10b80fe220a6df754da83ac879e7d0508f1f78536cfec551fd4b0b58734f4915a36cab895ae65e55d3f5174ee309e521ed47f91d207db8d30a324b59
+DIST firefox-118.0.1-ia.xpi 561641 BLAKE2B 
7e95d000f88243e8a168ddd415f1bf8a2ca0f2b85d62620e954a734fb68c3cda6e41a724973e9797f5ef81dc4c6b049da4302f6cce508c4af6d368fe934bf461
 SHA512 
b4d0b1636201f38f1a4972e8f363daa3e3e0e8c428e1103b280bbba2b7592378942fd68d3cdab1f19c8ebfd6f8f38d784d701c1079486ef6d845a0391573b6ea
+DIST firefox-118.0.1-id.xpi 542963 BLAKE2B 
e15e68c9b3b6f05da79a9a6af3b4758bdb9d7da03ae4341a8cd063576374086143798f548d29bbbfda1a649015a55c2c38429b48d4c653360606bcad48885293
 SHA512 
d3e629e6a06cb44c069eeb079bc86e3831ddd09b69d068e7239603f662138b32821e5dd2a7f731b11f1a6e11b41c76fb8df64e3eeea87f44346e344f7405f234
+DIST firefox-118.0.1-is.xpi 569562 BLAKE2B 
4713c314d3186dce80fa5e76c7d01ecf6cb53544065423205717669e25cfd49c7fd39b9261b28dba35a38eb2445267f2dd62682735815b37be3e7d7a381d4d81
 SHA512 
591650fd7c8352508d6cc9244924897467d68a8c16099d25694473ca204ddf02f44a848405f54e7b6a4263bb535ac7d167a75acdef5b0b55dde469818e1dae6f
+DIST firefox-118.0.1-it.xpi 515954 BLAKE2B 
ef68173de8cbc3a03f241ed150d32a303eaa5a34dd7532f6aac24c777dfc60536c3eea8eb3e838edabc6fecefbda646a5268ef0c225452088fbb806349ad2d2d
 SHA512 
40f6b8cb2865291d2d13e92589066c34b363e127085b49e408ffd3c2a11c96849753d4a767658c5ea7f92d941aa23fee63a5e62b9f78a1fb6b86c9f33e1b6b39
+DIST firefox-118.0.1-ja.xpi 625823 BLAKE2B 
f044f87f4ebaa8de45787764df4c8bb130f73c059de01cbcca637da9b1a6c96606222ba4057cb0530784801c63e7396b56d20979a1cebc0a7a737328d7e02027
 SHA512 
fd452e9370cbb3eeafd8d61624cb50d652cf1ab09050d3fb51ca1d7d2a008f5715988f3ee1d49fa6f85c95b158859173293cc560c9da808ce85fb2299b3eb92f
+DIST firefox-118.0.1-ka.xpi 623571 BLAKE2B 
4c89083950a31ce72f4699b2cd65e94949bd95b409256d4aaab500d80e59c177711be8e270cf48a63409e2da9e9a45e34848d0aeecd25db1272be8f9ccb72780
 SHA512 
68e9565b1224a15f01a5385352cea493b224574eedff3b2013d8abdea9ad876415a1ff50357e59cb05564d9cca9968e1f22e6c5040c3b6b683eff07f82957b52
+DIST firefox-118.0.1-kab.xpi 571651 BLAKE2B 
a679d0a2d2581e0663c56c110b5c7e8296f13826d42ba236b157d46c483ab968ed3b5db57b4ee7fccede9d215819d21387d2ebe2b5d355ddda46bef47ad140e1
 SHA512 
38a2b03187f133ac334a0d58357f95631b325bc20be17cb8ca1588d782b044b96587486d0385979151e0654c8a13fb4eecfaa0c7bcfc516abb33d71eb526a9dc
+DIST firefox-118.0.1-kk.xpi 649057 BLAKE2B 
cc352ba2715434f659814c1c42f272c8f99e17d1cf5cdbd2a707c46cf83ca1f9292bd4cb3072f3904f71e45bcdad448c328543d3530ea739573b4ade7717a913
 SHA512 
2a7699666691c8ad16b80b3b26d28008c3976475c4ccb3aec7281ba693c55fbcb8a5e933e9edf424c37fe851e93f62f0881f09ffb499a44d5e8e22f2eb97c2c9
+DIST firefox-118.0.1-km.xpi 508310 BLAKE2B 
a1afc977b7e76c2165c25361ad389bb3afcc5b44048cb59bddfdc8e216823e30d15b46a07c4c7571d6438a7817989cc22d2e5a3328b79470f03f876967d24bd1
 SHA512 
f41a23735139f849ec2fdf2a283a2aa7157436909fb30e08b9e3cf50b3d8ddf7d0e6859ab54824ecb34fceec7559c6a367697892941818c2b4f1a73e372e471e
+DIST firefox-118.0.1-kn.xpi 473774 BLAKE2B 
17e551b52b06a059e997664639d0f407c43589b18b24b8fc72390e826bd668d6146b1cf327cc4e59da31e567fb501895fcd3aac6628f14b9049d35bd0a6bbc54
 SHA512 
80bea182a42e4e5839a4b8b6f5d796feb89aa1a1554d3424094e39aab41a46cd796bce74ff5efd3c0984bc5e1d4e0efc8baab04c1ad01eb84418caee9b9ddd5a
+DIST firefox-118.0.1-ko.xpi 609080 BLAKE2B 
14d44971dc96e632b63ba9a6407efba24d50ab6578bd82427975807f007ffb2c610572792d686ab4d1cd10a9c195bd58ce87b7eb0ff763df460849cc58bba882
 SHA512 
b59b6941cf8bfad98e19e8376fda3ec3e51eadff3d14e40a06409f76358d1a447aff28971cbbf2ff4138214eb38cfde61474b930c41daed9540d8361303d61c5
+DIST firefox-118.0.1-lij.xpi 465501 BLAKE2B 
6fce6303a6a4464ed475a8575984fa0543d61724ef414c8c63db5cdcbba3dd6616f27e0ee5ab038a315580eb1a686504438497913769bfe5be5eabed4c63f238
 SHA512 
cf6e5e463c7394e4401537a298f8086dfbec1d88ba68c20220fc5a2a7bf9bbc9bb33633536bd892a32f1026d5c8e31f8a229761a7970d8b61b55d6c6ab7764a0
+DIST firefox-118.0.1-lt.xpi 551343 BLAKE2B 
8033e590d60e725146176ecb38a04f35dc9bdfaa8dd7209e70a437e86daf9e1c593dcdf3cdcc35fc4999cd006a294c56b70c829818accd80de55770d21e8fe94
 SHA512 
e9b6ee6afbe1127c13493cc8d318f9b3806f4441d434f77d4a274fe6fa3fe4eafcb1b3e8d5ffff94ba461d27e162308cce302f73dc3cf305fad7c5ca760cbc8e
+DIST firefox-118.0.1-lv.xpi 451453 BLAKE2B 
f4558c41032bd96ad0079e0f63291143c72e0128c0e4d82b6783b0945478c2805339218fe3d049e6856056782d33a7ecc2b9450a313c9fe57e2e7b777eb27807
 SHA512 
2a91860808592ed2e170d8f898fd5eed14a7f54c2aa966d8b620ae40c470a7c20a56a55b89112f8d64f7436c869b73c3e5b179d3c4c418a15abaf820a1595a69
+DIST firefox-118.0.1-mk.xpi 476570 BLAKE2B 
2f5c7f37dfc05ef307585d4f708a9380952ae651b8acc68f04ac32275f7af3dbf6762cdc37109bb665858f3f08b6dbbd623818a195d686a39a8b86c1eb07c08c
 SHA512 
75081d14a53692cd51c526e1705befd86b553c765b1ff5d2ec6fe09224e333bd366ce0e338f2e97e88404a700f5c7cca4faa183ac1b17f82da32992a0b4841fd
+DIST firefox-118.0.1-mr.xpi 512898 BLAKE2B 
fb58603fce3baa27d9c639bc15754ec38c06bd43dd577079b6ccc4769cb5f28bdfbbd3a8ecad81c2a5f3a4ce6d61b416f5bd8777e12421b781b815cc5fcaecb1
 SHA512 
a8099353f4a5773c64f899f9680e4e6accb40bc5779980e0ff592c42a827a056ce1049c7ee7619cd84512918773b0510f53d21d8da64b5096fab5cc59206c5ff
+DIST firefox-118.0.1-ms.xpi 431280 BLAKE2B 
6cbbcd6d4061944f469586a0130fe1ba9e7efe194a833ceeaeb51eaf3485bef30a5d6ad79276853196bfcfdd454694f418f901178bcc72eb4f3f24ff9d762990
 SHA512 
f8a364911ef5877abcee4952d320d894c14de2c7cce6e5a37ccdc3e3c272dc0e62e3d6207a48d2a5309a7b38499ae916f69614af5613f3d75c5d5031b6b40ec3
+DIST firefox-118.0.1-my.xpi 494961 BLAKE2B 
cffe9cd89e832d0fa1da1d8170990a87f336922d1e1ee13a3e4332376cac3bbe7f6eb66394c72d9d9fd126549575ebb5f7ce0a1acc94bffe76aa80acac65af49
 SHA512 
daedb9a380f33fd183853544818af3f33eea4da8e9ca2ee35e72bc0a03d087a3058cb48e2fd07f3e43ca6acbf5b9b5a664e94331d27e9095f48ffb73696476b2
+DIST firefox-118.0.1-nb-NO.xpi 556708 BLAKE2B 
fe5ef73f4ee11671fd194c6fd34aec60b8720f18e50adcb2758019046e4b0e4c1c0a435f3318f03bcb74ed55edc4d3f9f04d276bf034eabf7079c472f7a902fb
 SHA512 
4de007887de5fa3a7fd414f3daa2c16150e362e83f076f25dbfeb923e6916d6e8bb669bf9a87bb9368c7f4bd50106ac68a35e1f93c554b088825415ddfb57c3b
+DIST firefox-118.0.1-ne-NP.xpi 469854 BLAKE2B 
d922a6509686c74e9f4108a962aa3c3640d52b0054a6874f4ba5b2a1ec9b3bdd7e0b2f370b9076d76298a4426b2fdc570a0084cbeddf878dae03d931eb3e1cbe
 SHA512 
d8d040107a727ce29e1657bcb89a44bab1a3d82c164235bc2aee3089a8a92bab466c23e02a5e6c6a3ef652b02a1723664231086deb4ed3eb9efc7d77e47d6a6d
+DIST firefox-118.0.1-nl.xpi 567471 BLAKE2B 
fae6a84d58545304d45eddc3a2499df76c661568f93ca52aef6eb036ccfb59051b8d1a0d61a8a53a0a62602c2acdc69a45c98feb3f660df69dc97749f54dd26d
 SHA512 
59482962110b80587ffe87d32b3a3020a5ea8cffb5b087ea998e869c2997cddda7644a87928f085767cbbf5e56b78f3fc70e1ee99f92535343dbab117a48a731
+DIST firefox-118.0.1-nn-NO.xpi 561330 BLAKE2B 
ba2ef76392435e4c1f1d6036d31c652b408d04c82b28264d4c8e51698f65629be635fb21afe92091cc0320d5789dc071e903d242fab5ebf5a08d5c7a827b85d7
 SHA512 
a982e45415d713ec4a2945506f144401fb4b053e267f9a0bc81ea467ecc714eafd6f8300775cf581f438c1257a1137ccaa4064c533b05b54ba466a810a9cbffc
+DIST firefox-118.0.1-oc.xpi 577628 BLAKE2B 
574fc804336fd12ff2a22074cc4aeb68affe04b641d5bbc029b0bbe0c1afe6863cff1c8ec3f5891c89dd92b8e1530b167f3971ea67b0ce4119a36bdb87ee8066
 SHA512 
a2087b6601c0a73826aae1cd84ffe5615c2da7b7c9fa2a566d0be4740c3c0f0b06be4870e3fb625e0bc7929ad1bf7f2aa7bc6a0b445ea5cae957f8d4be46c275
+DIST firefox-118.0.1-pa-IN.xpi 637554 BLAKE2B 
df753257d1e0bebce10ca3ef875a3ad1946b837afd233252b79289f221d8b738b85659f1d1a2bee3965e2fa2481951706426a769eeb7692a425abafca76dc4fa
 SHA512 
128e4a4816d361194a60ec59c6f29699769d6438a9dde525ed296a89ec575bafb5375adfee82b5311b08994473b75ee54ae111de4edc4057eba75c30f9a88eeb
+DIST firefox-118.0.1-pl.xpi 587897 BLAKE2B 
01dcb2f1acee7e1e5b51b7f17a7768faa014ea11b6349bcf1bcd9dfafe45228ae7f3dadaeb3ae2fe7ab6a7096d7c4b6ab3db72a204ac9c5538234b006282dc0b
 SHA512 
f918710733fb56558821eaa3d089a959cfe509c563c8b62d403a93454d7d8b80e13af924e70ac108e03a10cee83a27220fe12537d321d40541f39be3700bdc62
+DIST firefox-118.0.1-pt-BR.xpi 572258 BLAKE2B 
b436dbe32828593e477161c74b15aa3bfd2d6e89fd00cc25b36f3c307a40a7df88f24c18c17e69cf81f55e80a38cfd7da3d3c26b25221efc54b8ebdfae2c62da
 SHA512 
b1034054c85c3918dc9511767268d8a539d3b76676c3c476f8332e5478b3f682fc0b1834a3b652acf712f0bc7e51f3fe8ddd5fabb5f3b052e47840b25c2991b2
+DIST firefox-118.0.1-pt-PT.xpi 575081 BLAKE2B 
58b78f78a74cb8469b6295e46585d68db3d11471b5f5943b3821a376d208203b9811cf6d7e24eca8d63c34c84a7ec0c537a4b9284f7d12d0281f850fbaec4107
 SHA512 
11dbf8e3b0355f8f79a0fd93f1582d891c443e83bd6bcb367d785b5770f33d3cf1fe51fae368b43432b876c9f8d6e1a789d8815bdc044c7c9f0da7cb1c330abb
+DIST firefox-118.0.1-rm.xpi 567687 BLAKE2B 
1b1727c4eeab9bdf3e66ecbb48a221b9569146928ed458dd95a9fb346503411d1e7c2fe16a56ab5a53f2f47938ea14a2fa5c53a537d0850c6ed0cdaf4ceac71a
 SHA512 
139dc519c41f189c9e10b5fcc4b7e7e23b994b77fe4b1fb783a536e90f69e7453c64cf614b3a54e55972e4b20950d5b85bf2825918135ad7c329659c1b39c156
+DIST firefox-118.0.1-ro.xpi 527800 BLAKE2B 
1ebc436361d659df4fdb4db523ef2d4197197be3d9a2f8b83311120d8feb2ce58b76f5f3aefa3b9f14fd2573f54babf36c9185d873e045067db98075fba880cd
 SHA512 
812de3dbd73543d33d577ea3686a583b2b7f7325284c0eef794412ad7d6387a973074a54f2c0d1f4c5e3ba3cc77c597dbb78dc3a070ffb2e2250a7c3781021d9
+DIST firefox-118.0.1-ru.xpi 662283 BLAKE2B 
b7fb7f68641522682b91055eb44e4371d9fdc2c21c94e4a508bb568771bbcf10fe2d6d4c034e36aa304c95d691918fc35a4795a561c8453c47e74fb7730b7aa2
 SHA512 
5c51534174ae76fe18f18576e0f1497f4a083719da058f9156091bdddcc587012ebe19e0868da3dd6ff9efcdd0e87efdc4f0ec104818acc51f5596bcef60841b
+DIST firefox-118.0.1-sc.xpi 543781 BLAKE2B 
984cd25950f52be72b9191919faa96835d2cd932f5eb8f6d33f06ae11dbcb305a0498c7ad0459f429abf564b132304ef39dcb8478f84bcba7125d6f0e556e7db
 SHA512 
f0c43e306fa4918983a475bb94f216d9460612c33c5737c575154000496e4f4d4c796d537ef4565b88032726ea8a8dd6a0ab64f4a7318d3c368014cab527d7fd
+DIST firefox-118.0.1-sco.xpi 491891 BLAKE2B 
b941f7b1facdaff899cba74b718c1ba6c3c222e39910540259d049f1fd974edc2764b6995c4b844c187bc76b42e77d1ad43d2dab69f48b324171e95f35ab9047
 SHA512 
4d470e5d2c248691395d0ca3ff089432bf00522bceebd94a32fe741acb64c77501b6615bf9aa67a04cf0fa9f6c3a11c0ddbe50125d1206f3238ae89cbd90be0d
+DIST firefox-118.0.1-si.xpi 580409 BLAKE2B 
67ad6418d079803540197417ec777eba2bb3bd5e0d743ccda0f726f354f9da8e836dc2d561b299da5af8af7b0799736e90c123417555ec254fe95cc293d09b61
 SHA512 
0dc05f3f94c50f37bb6e84869e7311c8c8243540b0e042dbda7cc11f51c8add2be24892c0f08c0eb55a3213faf3bcd8260877042296e8ab894d2d257b02e36ee
+DIST firefox-118.0.1-sk.xpi 599034 BLAKE2B 
16d693b9c2f9194f9e07d5ff486cb247c78a98f4be25d24876ab6617b7b6a0768ce2a268cec5704b7ab0a1dbeb286dbd4faa1fa51037b2febb357a901c794a86
 SHA512 
e20e57a34d6ccb00516d189c82e62750c2587180bdbeda675b2f7c95624b770b17bbca7edd89ee893c0d0fb0a5654a83f71820f95b8f36039d8399f4f82ab05a
+DIST firefox-118.0.1-sl.xpi 569543 BLAKE2B 
0a59e35a444ea0162ff25d1b02e3626525c3a11711f428b2521c1f9f350152a7c9ffed22f091ce95cd8c5623045e7b27e942a161870bb864b1ad5956cccb22f0
 SHA512 
3f65af8b34d0655262e4150da2dc93d16d7f9b50fde08d28277216022ccab3d45433bf902e34dd7418ac3b79894313a78aca35c9d3d43b2e8e3bead65c8ee560
+DIST firefox-118.0.1-son.xpi 400844 BLAKE2B 
539ad9d82ab16423d137abed9bf9ec3fe1683727041884e9967816919e8419c47058306aaf1d5b2e5fac3f255cc48a2070c4522d7dab78eca6ab14b79dc7b0f7
 SHA512 
f2dd4d673dae05e74ea994ff330ffaebb26377a1769aff148f04ecc5d3e6fed91eefd83fc5c270115fede43afce1fcdd99c4f75d2be3964ee25cfbf897ff4486
+DIST firefox-118.0.1-sq.xpi 567474 BLAKE2B 
bf5f4848abb764560c2db1ead6ec7896beb78914f85eb0e5d272894fd85189beed424efbc93d93f2e34f095d3f629f8de95ad83ef29a283e2ef5edc09bab20a3
 SHA512 
66b13f83f901c7ff2307fc9e2555174d03e8bfde82eca5c2bffaaa25d4da755d0d0e26d900d46ccc7c83cf4f40162da57a2f79c16f9bee6e881ca8a19453ac3b
+DIST firefox-118.0.1-sr.xpi 617279 BLAKE2B 
3309d4c9aff54baf415092b543008a7b45aac9203b9b0ff8b1fd8b490e902b0449dd595cbe2d69299ed0ec45ff516af4d3fc95c15429516fa418ee24b7d1efe2
 SHA512 
56d0042f2b19edecf76a72e94418cce184ab609104a756dff8c0058f64ccd1a687b9083bfa43cdb1637b7beb381910b7c8cd8faa70007092337f581c5bccb133
+DIST firefox-118.0.1-sv-SE.xpi 569292 BLAKE2B 
2c64bc62a5dca219f7d84fc8fec2492639836728a4fe6907268f9d42624701cfeaad2963d99028cd7b2e4975b1f5b9fc1f09a3e8d73d506737af464493039fe5
 SHA512 
ed8fc1ce133f5a24ee7301d92763993557457ee72aa4345a1403e5f15a2ef542676cd3a4e9a0a6fd99070890004646ce5ae8514ff9a4155de6b99e9acead2e40
+DIST firefox-118.0.1-szl.xpi 506760 BLAKE2B 
98c2395314f6fa7ba67ea7ff42e03e684e0e8078cc90a2c85791d6f399af7299d455ec6517e4282590a7af83d322cc276bbe60a4f2ba9e2a1d97c71961c45772
 SHA512 
fcfc7d930a0fa506c03fb3483c7c2fb2de6e32d1feec5c71f0a7f42c37548bc19db0e84a71706484fe2cbf217a07bef32e69aaf2808d4545d528bc90122f1e43
+DIST firefox-118.0.1-ta.xpi 489464 BLAKE2B 
9a28a287f6f6ad0be3894be4b5157a09cd4fe6ca6575dcf1fe45f8cbac8374f2deac9865700086bf8cec272961f26488d5cba15596cae277731e8b43d00b0820
 SHA512 
ce62183de8e1d5962b7912af98c0db2d8db4ced53c283d796d02b89232ad002926aec61601ca290d40ce5dc594a13c2f0e890bbfd108a70f78deb5839d61e5f1
+DIST firefox-118.0.1-te.xpi 537894 BLAKE2B 
c6ddb51fbd0ef575087966a1d389bf76d7b4369ef39a5d4ce582249d7b405e7a823fcd7ce086fc6eb93a60dfe41b281b18f3a7e6826e7543f3813e1b9f90524b
 SHA512 
984f3a0c3fc8047f9e19639ba8da28979f56e3b49c17009c0f16d84ff70b989727ccaaa1882198a246a705fcd2c74972e35a987b828fe121e7282ca91595d7f7
+DIST firefox-118.0.1-th.xpi 638979 BLAKE2B 
8cdfe87863eae771ed9680f19133a60e79d6a36c7b124de5258614cf5490666a7e527e5ab90086de3117f8c526eb3ae88a988dbf12bc86fb1aa437da4130d5af
 SHA512 
17bb3047a0fc6e7dc1c7d18a002c22cd1a9020f95a299887652350ba2ec0bc4b82a6a1be3c12dc5d130ab2a3f514f6ac82d0cbcfeb1c9d22a8fd08fab4e33a59
+DIST firefox-118.0.1-tl.xpi 514355 BLAKE2B 
2516f540e465f8bf30b070d00da82572e27c22a0f625da34636e5834fd7ee458fdafc74381befc2a40b4b9c728548da09796fb9b543344c65fd5ce8233079f51
 SHA512 
1d15e4d3ebd217cdc0f69ff12af179f8983f802c1265581a06fe15f6c866c822ac4142f4a0fe35bf7f0a63cc6e4a4b67141ed5948c7314fc658e1d8c0338e574
+DIST firefox-118.0.1-tr.xpi 580787 BLAKE2B 
417eb525e08e749a4d6eaf5664ad765a0486f912e82b8f344c0afabc012006804802ffe80097b20f226deb7967304c7fa93c26ed6dd1282dd6b8e711e64a0092
 SHA512 
195a607422214aae091c07e4b6610d7bfe9d35fa78e7bf9e8e8a84f15cc2b00322ac07d33803955bf3221bcaa9f397e40438a1c812f496453bb92f2aa4f6bbd4
+DIST firefox-118.0.1-trs.xpi 485847 BLAKE2B 
fa02cbc328eebb899485c00dab27123af3d59e276581278d8b11660d8322b5b93089c3ac0c6f298358ebe5bfa14abea0efa28ab9a95e71f7344ecea2898761d1
 SHA512 
ecb10808f2093d32b54794e266cd6d1cdd0f789e21d3b77943ea0098489445b0680dac0a84cc6129f5b8bd0b40264657ce68c6e62b51e3722b0f763e9098307a
+DIST firefox-118.0.1-uk.xpi 655404 BLAKE2B 
448896f9407cd600fb59926fe32d918d008e9ea747bc4f368b7a46e673185430be907567e4418ebe52cf6b86f042c5d113ba2755591935529ba117ad5457f214
 SHA512 
164a7012fd4d17d5928f4664e5f8990effd91ea91450b95b39b8509c3d3213db4a3f384404ca7bb37af999d5d29648ba196848e0ec82f638a25e3e9ae9266e7e
+DIST firefox-118.0.1-ur.xpi 541044 BLAKE2B 
c3866633c196dc8f1283981fc931093db1ff8e3b56abf3e5a8aba2a5e19b2044612dea83eabe43784780f2f00df1f43d0fa77671f043ec6bc93e3fe64fa015a7
 SHA512 
e2a1bb2a39d6042ad59fb6df95be8ceb42edf2c5639e385f9c53af8695fc8927b4f0fb77f96b518e9d66d609d6f322a461ca48fe91973182d073108a6a5ae777
+DIST firefox-118.0.1-uz.xpi 462461 BLAKE2B 
2b538fb3a523931e63c4cbd1c23b4d0012fb7d8c57c1720baa2239df9117286578a9360d4e6e9def8404977fd2980703c832b90574dd1766c99e641ad5173088
 SHA512 
dd2afd5dca6eda8c99d6628603970559f82e75f2683a771c807817f00eb56bd8f8edacbb5a467cdafed00bbf3fb9a3ac8a66f8fa2efd56aa3c876f0925bf0682
+DIST firefox-118.0.1-vi.xpi 605278 BLAKE2B 
34df1f4418901f701d07de04c8a21cbb2f38c3646c02ea8bd33dbacfe0935301c7981f77aaa6334f2b7d5a8d932b2b6702d6256a71abc71c2d3549d34df46232
 SHA512 
aab5e495ae951cfdeda6ca320144022fb1fabfcc13bdb1ea01e133a2e23d0b99128410fd443712595a6fb71286149cc8992e768029c381c3b4cdfe2ae00e4b7d
+DIST firefox-118.0.1-xh.xpi 401467 BLAKE2B 
dc957bd62cc2994b95fd36d6bbafa1a72362d460a724099e454e9854dce4d10cb8addd9db61b3bdb0c6c0c8dd216a424eda3d30b555f558f7510809e1e5d77ce
 SHA512 
038c7c4811190402f6e24c409996b57a979396abb2aab036be1520cdecde6246ef39b27a8c19617351f5962c0d7ca4ed3e954931bb26a2f78d6575556c8ba015
+DIST firefox-118.0.1-zh-CN.xpi 604599 BLAKE2B 
2d3b7020945bbd8d18152741f6f69446b70cd468a8608d6dea6b07d148b3b7d83ecbd99457e17c432a117b53ec0297dfc760cba0f06b6d03b83e9c0891482f99
 SHA512 
2c85bac1ead436e651c73b9db589ff0dbaa22331cea6ee641344f2caebd918deee45e5833641765a413f84ee62430679fc68fee534fb21d5d9a15b5185374b44
+DIST firefox-118.0.1-zh-TW.xpi 606658 BLAKE2B 
368842ec50e390cfcbce8eeca4dbd28c43eecb1176d3d530cde6f82fd0cdb670052f7d421517dc90ce9f8c8e07e0c7e9271305e467260a7e1f36d84861d4cb76
 SHA512 
fb2b55c11a1d028a85f83b79334f99169431a2890dd434a07b386b967fe8c54f1affd9c9078c3b75f61950ef55371dbb94e0bc67467fdea51c0a36bee864ab33
+DIST firefox-118.0.1.source.tar.xz 516965884 BLAKE2B 
eef2b6f4d4f090535a8f74fa5ae3774288aa82142b8bb70c7ca913222a941ac9b7f8d9e6b6739a2ce67dff6f1bec0a9a21d11d015e3437013badf82335206b58
 SHA512 
b1efa1afea70434dc2a18d335bb8b526883cde200f1503b8c5fd2e7db8285e6a999cfa3aac354ea1c15a91d13a46d68db37023235314240b59eb8f55e01554ad
 DIST firefox-118.0.source.tar.xz 518635224 BLAKE2B 
b31aa245687fe3c33152675ec5c4b8368ae810fbb8830535343029ed87683e2321afa8fdd473a41442475164312847874af09ccb704d9b1404cd033d0a8af0ec
 SHA512 
7c34c43930bda84d17a241fe7e0f8e6ca262410423ae7e7cc8444224aea2d25a52acc9079064ba57f3350e3573eb23aeaf7a2d98136d17e6fa89a61aaf57155d

diff --git a/www-client/firefox/firefox-118.0.1.ebuild 
b/www-client/firefox/firefox-118.0.1.ebuild
new file mode 100644
index 000000000000..63526d063cb0
--- /dev/null
+++ b/www-client/firefox/firefox-118.0.1.ebuild
@@ -0,0 +1,1430 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-118-patches-02.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+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"
+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 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 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}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" +telemetry valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       sys-devel/clang:16
+                       sys-devel/llvm:16
+                       clang? (
+                               sys-devel/lld:16
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.65 )
+       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-libs/wlroots-0.15.1-r1[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.93
+       >=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
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               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 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-73.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.35:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       valgrind? ( dev-util/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/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/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               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
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# 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 "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/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 "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use 
LLVM slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               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+=( 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}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+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'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       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
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               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
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               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
+
+       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; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.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)"
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # 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
+       moz_clear_vendor_checksums proc-macro2
+
+       # 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-gpsd \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wasm-function-references \
+               --disable-wasm-gc \
+               --disable-wmf \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --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 '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 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
+
+       # Enable JIT on riscv64 explicitly
+       # Can be removed once upstream enable it by default in the future.
+       use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' 
--enable-jit
+
+       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-harfbuzz system-graphite2
+       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
+
+       mozconfig_use_enable geckodriver
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       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
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       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 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
+
+               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
+       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
+
+       # LTO flag was handled via configure
+       filter-lto
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               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*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       if use elibc_musl && use arm64 ; then
+               mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --disable-elf-hack
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       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
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # 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
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       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 tc-ld-is-mold && use lto; 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 sys-devel/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 (+arm when 
keyworded)
+               if use amd64 || use arm64 || use x86 ; then
+                       exeinto "${MOZILLA_FIVE_HOME}"
+                       doexe "${BUILD_DIR}"/dist/bin/vaapitest
+               fi
+
+               # 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
+
+       # 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 geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-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 desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       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
+
+       # 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:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+
+       readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+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
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               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
+
+       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
+       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