commit:     b2ab5dc0424fa4a11797715ec6b86d05d1341f5c
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  8 20:16:15 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Dec  8 20:18:37 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2ab5dc0

www-client/firefox: add 146.0

 - attempt to fix pgo hanging with gcc with exporting
   MOZ_REMOTE_SETTINGS_DEVTOOLS=1,
 - bump cbindgen requirement to 0.29.1,
 - bump nspr requirement to 4.38,
 - bump nss requirement to 3.118,
 - drop disable-warnings-as-errors.patch completely in an attempt to find out
   if it's already obsolete by upstream build system,
 - rebase bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch,
 - remove <ffmpeg-8 restriction as upstream has merged ffmpeg-8 support.

Bug: https://bugs.gentoo.org/966309
Bug: https://bugs.gentoo.org/962454
Bug: https://bugs.gentoo.org/966424
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest             |  102 +++
 www-client/firefox/firefox-146.0.ebuild | 1464 +++++++++++++++++++++++++++++++
 2 files changed, 1566 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 6e084322b3f1..0bc08fb897b1 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -913,6 +913,108 @@ DIST firefox-145.0.1-zh-CN.xpi 476500 BLAKE2B 
16718a7fa3ed10de60124327de6eb24e81
 DIST firefox-145.0.1-zh-TW.xpi 479814 BLAKE2B 
f0920e55307e907d6b8800e330ed65c16387e509aac20c9dcd5731c111357ee912e47318bedae07eb17b30cc712e8d41acdaf12cc54d063a79a6dd6ebc37fc78
 SHA512 
369f615a0fbde4706193df27f1721a1d33b33d3d5633221c961a89511bc411b19f1d19737019e7b8c4a4cfd743c9c3e54b117818cebd319bf22894214f1dd407
 DIST firefox-145.0.1.source.tar.xz 645303268 BLAKE2B 
0e76fefc9aa2f80dbe1ab21a1c576f5199a1c5b33d5ab059d6047dc161e6bfb27e64a58c676ce805a297565519321a548bbad80cfd1d6effc8e2e34299f3a116
 SHA512 
6e052fee46c31b2696ba5403f905e0b94b08ce354588cd6315d54ee1dcff9b82835d64ea5a57596dfb1866dd1518a29966fdaabdb4c3838103344bd2dc18c72d
 DIST firefox-145.0.source.tar.xz 649881808 BLAKE2B 
a8007d06dce77197dfb40ab9a759287b6bcff4e56d1b2c7acfed9475aaa2f936948534d6e726a158550c70a28bad8ec8c7f1b99ca8165198c1952a484869b6c9
 SHA512 
7ba40d7de95d7b93278f1823ce460b45c6bfac01eda52bc5c28f23a6bc858bdcbf8b4b4dc359b853372fffbcff4e7f0b276fefe22c2d4a0fa303e8ce1d2629be
+DIST firefox-146-patches-01.tar.xz 10568 BLAKE2B 
643ed4298d7ab2251ae1f813473a7b461aa386dfb72984e46201b22b6cb0f69f28e92b44a4783dda32a81b4b0dacbe8b47a25b9232481ecd79a19550e74e4812
 SHA512 
9e2474eedda1c2644ddcb0f9fd2d90ede764469337eab1267d3d4dbe8e3487bb519106449acf1da9798050d61a51e96a882f365e4587f88747161f6418203e4e
+DIST firefox-146.0-ach.xpi 293906 BLAKE2B 
805c65104451b5736880d3f2e04784f8824fd96ba4ae9274304222dfa7965e65a7617b9579c4529577f8ebcd638a3d054ae83b22ff55e23456f546a2528f5b17
 SHA512 
ff2d360795e20bce2aa924a68bc7f07637a8565de5f7268641562a319ba78e1d499e62c07bcebd2e01e4fbe941830b11a21b7630067ddc7417d5da49f78010f2
+DIST firefox-146.0-af.xpi 267091 BLAKE2B 
b6230e7a0b56dc3b0276d3e4f8aaf46e0cfccb9e496a8fdddd56da198e67c56745ef6b70a9b2cca143d4922a5b690edb3101879c9a496357fad3dac01a7d1d4b
 SHA512 
0bd0eee7fbdba23b5197208c96e0c455096407c756c66c1ff575f901ebd0a3273b5880a18665ac777fcfa520636a0794c58c431289319082e6b7c53c325c35f7
+DIST firefox-146.0-an.xpi 331365 BLAKE2B 
16951f936c9a638ee36bb2238e2ccfe3f6bc8da196d9a7aa64f3390a1058be2cae555b4c16e4f700d5fda4d4a3010a869701e9bcfd9b37f2c1b0e0e56ac8e2de
 SHA512 
c0f9ab0dd92679610355fe020eb2ad93a1b50b58ed12b714990cd1cad26029e4dc46ec70adebb8caeabecb7a2ae65efcc1032dd9c6093b99d2a47df847aedb83
+DIST firefox-146.0-ar.xpi 445668 BLAKE2B 
3dfe1bd81210fcdb2dbf9bbeed6417aaa5e8b3033d1a4590c3a1412d343e97fb2a821e194fe311c885a2e3ba2894be68be0a2332d5a643e596bc475e6f999099
 SHA512 
032c85808baee8d4d50db631229cee6d69d2a519460a41fadb83e430800d4855a0dd193127daf1b9948fa225556f7478e080d4e7e5b7115a65769b2454223432
+DIST firefox-146.0-ast.xpi 311608 BLAKE2B 
c4d3b22be691ebde5e24843134ab90a4587375e7d29222d5a75650ca78f54ab20562834cb3208166ddbbea7faa1bdebbcfb27ffb5e54fdc001e74b2688c65816
 SHA512 
34ab51b779bb8802320426b35284fc857097582bd68f463698f7267833540a210fb863170285aebaf1d3896121965cd300d40814dca1899398bc140e56ca73bd
+DIST firefox-146.0-az.xpi 317986 BLAKE2B 
6a784c1585d035ea6a0d88ddc3e75d1ff397a89c8f5dc4b5df1518149d7d3c059db0f133f79677d1596402bb9f164b3d6e63e21e56e7b263952d039b10876534
 SHA512 
d06f66e5d90be3f774537fac8dbdf86b5c3642d3ada51d28eb8edd4868bd0ca60be697799d554841ed0e8f9f6e1b86a2b9c8d712b0e76acb4528027fd776a9da
+DIST firefox-146.0-be.xpi 543769 BLAKE2B 
ccbaed699515180c8d4d2f0c07c0c7945d276c37aa2be7be7ec08682ad399dea3d340a06e50fdb860f1b658eb0e09e70438746d32082436c3c592831c7bc0ab8
 SHA512 
6b3e4adf76a33749582c996b77399686465c8b7a5f2d83110525964c47d929b17ea2225143ecd48339969c8fbd22a09f453ee51f551279953851649d9a40a1ac
+DIST firefox-146.0-bg.xpi 460924 BLAKE2B 
6aaf893be504591ec3afbd7bb19fb99a4d9815cd14da03b5021eb4984293904e9ed1463670efabced95ad5d4d907b69f3195f473acd65f1203b52c24f78f8ba2
 SHA512 
7fad55f4905b033f084438dccae0d46681730ced68c7f505e174d6087b2dbca7a58454bdc66f98c6b7457b454f1ef59822d7c527d2c6102f001e0ccf981ff071
+DIST firefox-146.0-bn.xpi 412157 BLAKE2B 
15f13f15ca383c3391532ee5c662dcb2aef5f73eecf6cf160925b506b3cb518a7be4c7f40c90a153e8fbc7b771a66029f74ff503c80e5abe5f0e40a80123e597
 SHA512 
60b607f2ae21bf14234e7c5971768936a0c81235a472bcb5ec963d01f5a0a5454ae882fec35b8e3e8e33becbd4674b7e0deb3cf7fac5609f5ca32423d6a2d85a
+DIST firefox-146.0-br.xpi 393694 BLAKE2B 
ee88a469109afc2fe86be0d66aa00a4b5549523259034cfc1781dd10b51ddcc1cf6bb8836aacca65019c9a779d39794da45990dcad288bf7f0b1bd1e46d62b9b
 SHA512 
5cf8aa73c294249848dbe67f7ea1a383ddd20dd0e96f1d806ecb735142ff166f6ffbcde0582094f029ea165a14c050fa1351be7f8d793807c76066eea1a7a9ad
+DIST firefox-146.0-bs.xpi 449942 BLAKE2B 
e68af0ded0ba59489fd2a9789c85421cf97b1be0fb46ea51034156e6a25af6f6b49f1adc31fd730511684c3ac0f6b89a3ba5f77c024bd6217108aadbfdfc428d
 SHA512 
295e0fc6969fd21a9d2da04463f1fece27e6ee34d570715873189c58f725f0ad3946461a6698aeb7a06be21e663a60e6264044d3fe93382af165d2aca2c1b65b
+DIST firefox-146.0-ca-valencia.xpi 357063 BLAKE2B 
9be68880b989b6e91145ed63b5fc6a6849bda66ab5b58ffcdd6099192f9bf7ae0428fde8010168afe65ab6c4942d095476028bc4d595b97554e2ddb642f3f071
 SHA512 
b25f71f15b48993641025a0f2fcf0a48a824fe9e745fa8f623829e6e29f275ed6227676d2587a1fccf2180a3af7a5eea039a95258700b68a0048fa6b4ab81273
+DIST firefox-146.0-ca.xpi 411051 BLAKE2B 
f8a09aa88d0e63a0120f9c7545d390d29b3751661140d22983800f8c258d8ff4882dbf6a0da5c1df9f409733c980957c60195e7410c8ca563979915246b8a180
 SHA512 
30ddc972337ee6a71c41f6356ae571a59cb917c9ef62f2b3480bbbca947b92b43257010990ba51b95ca2ca4519575fabef1d191c44127a599ea878d3221ca028
+DIST firefox-146.0-cak.xpi 388966 BLAKE2B 
e0d7e762dc8af711e4c11f75d9436371ab89d29165be49094a06143ffd9dcceaaaf3985efa142737bd85d943ba376805c544d2879c8e237749a166e3e414fa34
 SHA512 
9c0a0eda0a6687301b7118b53bab4dc428e729e397364e3b3d331b78b890b7d35504d15e1eea74b29ab594b65dbc6e875a7ebf5b2be766b87e1fad86145a2b12
+DIST firefox-146.0-cs.xpi 496952 BLAKE2B 
702fdcf7efa12180d399ecfbbcf2fcd949fcf73f81f6c8e81afe468dd96192d8a31e8c887676da38632950c7a5f404e57b73db62b51b00a02d59caa5b3cac45b
 SHA512 
8586e9bf221cecdb90f8ee74ee084d767996504bfd2db473c3e5884c20fbcd705187bd5a5047c4e74dc54f6960b1cfe49ad955f5f00b6fcef53e2a9d6175ab7e
+DIST firefox-146.0-cy.xpi 460743 BLAKE2B 
748b772b8348171ce55526db7b4a521b240d1bdc7bada302ea3d8e5cef314c126fc486f1ef2a89d45f128b3fd7ae6ca3599921e8d49f1eb30ae36ac8cf8b3d46
 SHA512 
f432f7751bf5940a84d5253429fcc7b1ba49f74716859ee231429aa3bdc5d2988669e409db21d8940caf96f99fd8a12bb426aabdaabdc8fb001220aed522a834
+DIST firefox-146.0-da.xpi 449066 BLAKE2B 
649f2c4e1e71eccc0cddb25e4cf624144cc0e3b3e20078468b24f432ad252e40bfada89a6f5f6d769cd1e243f1d3f69b94e0d70321e9cbc1a5e863786c08d9d9
 SHA512 
2c55a29bcaca41beb54f3046e31e54d446f78134fb71f65d8fcfac411e0d477cbdb4dbe9b43ca41bef4d0d08b06a0af802912e201132ef1e1bc0806d19e4e694
+DIST firefox-146.0-de.xpi 471784 BLAKE2B 
f05c3b1fb617854c0366ff2aa473fbede7a590f8894926a41f0a6cded39c2efd9f1bcd679147762b81144b63f063a8209ebe9894a39180cd7f147ac62c4a9992
 SHA512 
8cb91fae8671624a1bebe49b80d25bedf305517bb60cb0baf68b1ac2788cec4193d25987c6706906225945cd2fc6d7f0c1a486902faa2583cf2bb0405a55fba1
+DIST firefox-146.0-dsb.xpi 485661 BLAKE2B 
3fe1b06d63e1757363ec6c43b0585cc6d66e30d011010583f399391643ebc1e838ac38fe7bcaeb61003d37797386c64ff600b68b3e877130711fff0bd3a3b287
 SHA512 
b64dba4e82eb8c70e425308df85c4f49eee40708ee00671f7084b12557ddb489908b45ec010be226b9aa5237107081e062704bd6ecc027098e30e15326f09d15
+DIST firefox-146.0-el.xpi 559285 BLAKE2B 
2b978446e4790832793e07c6af93e9559ca1f488418cfa11eec6f4b1970c1cd4ea4e2d221049ef940f24e20d11202918416cc6cd440a77ec8c6fb5c6c4949150
 SHA512 
ba76dae66b7fb849a5d08d70e03b15d555cbeb54a62451c89fcdb4452c000234991683b12d237feb64f76fce4b50314f176f63af4e43344a6f9f399d2ed24090
+DIST firefox-146.0-en-CA.xpi 427507 BLAKE2B 
4159a57ae219bb425a947802ca3de756d4de942568a9a41efb0b44415bd85983e1f9239caf23e78e5530b305941de34f4065fd0eda22dfe8ce877c6b0197f9c5
 SHA512 
f4f737aa03e6a3d2491562501f729e2b0ff8814eec65bf3dd436e2b1d7b3efd63b531d86b2bfd7b38b8cabb7d0644ecaedf48ecee992a9494af906f36912cf64
+DIST firefox-146.0-en-GB.xpi 427812 BLAKE2B 
e7019d660071b5b8342b3183218be3165e243236c0cd0237f31d33a5cc469862414c5504281776425464ab05f41d7b48f49d463f20dbf8207bda84868f2d012d
 SHA512 
bd9dabd25935a0b282a0ac2a2a01b17c1c5b7713a85f0e10959c70e63bd01126ae173989c1bede5928d0ef785342be2727f7787df18bd301ce083667be30161f
+DIST firefox-146.0-eo.xpi 451347 BLAKE2B 
5ae3e6defb2958da5df3c25f3a684b3b9cf07388e0d615a6a79098937c3cad0dade400c46559acd1d675dcdb65c1989bc2ec13c92138a6248901e13ccaea1b25
 SHA512 
616ba9c7eafaa4d61eeb698ad0987c0ffb6f6c480a9753e3efc5393d03ef6dea3b5fe46b5e09843055e247e04dcbbb88a0de13728a64a00bbb9e7281e0233a62
+DIST firefox-146.0-es-AR.xpi 463704 BLAKE2B 
23f9be0053ebf633f05b1f06e78fb1f8c0ed277f4442f744fa2e238dfe2a428f68bf4b9453caec75f2ae09f6746894bd68d0547b75710be9b43756dfd1015734
 SHA512 
63988e3955fc609190b3f345d6e226baefa2c7bc14c750dfff5361ced81cde750a25050d10763027756f7087153cb7bf87460612dc7674a94acfe2c7b086ef7a
+DIST firefox-146.0-es-CL.xpi 464739 BLAKE2B 
0b8727e00477ac1fa4ef75e7b9248ab04a2c637a581bcd71eda2fee982157ca88ae5be209288597b0208f0615565881567961051fde507a0cf13565a4c531662
 SHA512 
c3c4adc11d7cab7e3a2ac6133a7d47d18acd63c3ba94373bff4de7aea903924bc956a6ae5c5184f927da91a9dae7922733ba69d1fc218ff6f43e78fa59897c24
+DIST firefox-146.0-es-ES.xpi 465410 BLAKE2B 
f84dbf39bc875a9cc1e25ae93d30cc09546348ee357416197ec10dad5d6cd61f127495ee2809646e88605cedbe41dcd64d4b25820b9c24d81022057f1e1edae7
 SHA512 
f54b1ace3d1203edcc448e14a8aec9430ff786e912bcd1f8538a3b8fb62ececa42fd4014f2979aef2c97d0fa80c9f24a74cfdb5482b34347f66d07da3d3fff44
+DIST firefox-146.0-es-MX.xpi 457027 BLAKE2B 
502ddf10f719ee31080b4351e5c7118f70732152be524561d5f4278b2cbfdb1b03b1f0eaad31ba51b416750748cfac7859714dff8e48471b067b961adc469a85
 SHA512 
113c0e3d6eabe75f903bade199eda4e140736539dc9f11ec205c7c64f8088885b2b5e10d13226a5f0f23d60696f6f4552e407017e5af271a975408da47fd1ad9
+DIST firefox-146.0-et.xpi 358032 BLAKE2B 
a480e1dbccb64b049bdf0c9b6c114d321a62c7dc5f2288f3e59c88f44b9747ec1f7fd65a2bf9ee385151cd9bae26f2999f6fe7243c514a0b8e226096a6ee3042
 SHA512 
a7d46efa0d5485d5c4c23989d2d218cf25598d34924df8f96f6f487501869414d02c9fb64b40a2f26638d85546191750021b0fec4c697898ead5705a2c31f4f8
+DIST firefox-146.0-eu.xpi 430762 BLAKE2B 
2e01bc98ab6617a4ee7e3981fa9203eda3caaefe30f6fc11ce3c418a5c5b5687a526d6be74e651325857d94c3c589b4c5c49717d699f69c97c5fd2daf68d3f01
 SHA512 
c0d449f992a1417f718f5ea4277eb78db9d03d1aef4094379def867f8a7fd96545e64d0df37ffe8950134f5a51b2d7944fc8130fa0f594ad30b82465c169537a
+DIST firefox-146.0-fa.xpi 419783 BLAKE2B 
4107603c3f4fac1fa6f6e622fae002dc663a63cebdf4173aa0c7c09427366431c7058854b1d37f3dab63567f084e53753f7e7e93ed5e29a7f84101a0e6f3534b
 SHA512 
3bc597d808f0cd7894306ff6a2adebedf2ac799cbd885c865d3f44250478954baa98415dff57466dedf5e5fad30dc7c210edc6718498fbecc07aace5394e9396
+DIST firefox-146.0-ff.xpi 309541 BLAKE2B 
86c50efd21bddeb4a197319f402658d3abf25635257d844a0969dcab994defb37f3e5c6653aeb771bbd940744febf596a6a94752a0554e07f18db67c77031826
 SHA512 
a6f27ef3f86e9fe230ac7da1bd389e713001f009c5d80df878de6bd1e7237b03c5aa1a210405970a44a41fd38ba1bb48ca260d32dedfe2bcf4bbf66bfcba9a7a
+DIST firefox-146.0-fi.xpi 448219 BLAKE2B 
335e8d62e99ef7dfbe71f35d112058195d52cfb55684c16fe727584f490597955dc55a1dd887bad3d3b9223255bba5e7a85c5a3bb3c378589bce2707ff791c52
 SHA512 
b6072aa6db68a88d9b3a31a2aaf7d04e2c957380c8f5a3df787a020cb67299c88349eff0e393cc589ff802f92f93c7fb403c59a3c2ebb9fd8336051035f117c8
+DIST firefox-146.0-fr.xpi 477624 BLAKE2B 
10773b8f10f010eecb99a843ba1ef2481ecb770b94dafc4c4f4609066ff650834b3b93a2e8f628917fd9e4beb371813e03c404681759e4193716d412b5f4d817
 SHA512 
99e68430f1efba48b4b90ef944376ad9072b54e85fae5c5e68787135a7d1eb1bd1871b011870a17ce98657dd15ee176dd9fd14cb878289d50d95947f52ee9b12
+DIST firefox-146.0-fur.xpi 465254 BLAKE2B 
c82a2fe92f786a4e9341d7ee34cea136692821a7c0c7f808621a0e47aac19e31ab3a492fa39bdb35d01243d7596d7360956219470d518be2df3bdfb88937bdf1
 SHA512 
90c248b76cab669916ba44d2891a84418cb5b886e3929ad1e2ab120f8bdbf45a05483cbc1d96e8581a3c647f96602b74b5ab1de0a4bb3e61a3d0eed0556362b1
+DIST firefox-146.0-fy-NL.xpi 460261 BLAKE2B 
daae7873cd8981b8ef1a1168887f24504d3b2c10c90d697bb3dafda773b2869582fc927a41f3867122a424674293bac75bff7e1aeffb190f32c3456de24cc761
 SHA512 
4551e9a0acd4449b536d6fafb22aa52fc1b71e1a8f48bf3b3dc9197d1cdb6af8bce0b6c2c5f7c10afd86810cf3cb7f741443d1132324fffa8d074e713bd4fee9
+DIST firefox-146.0-ga-IE.xpi 315082 BLAKE2B 
dada75dbcac226665f763f10cca4e3f652448504c4e92a633812f97e453b5464c5feb8e1c084bdb078fc5a57eff15c95c523b00a9e7f927dc9862074a6ac40f9
 SHA512 
77cd6e88b4a169ccd2788c11241331c24c84c15f083a1528274509bc0cde27da2198a0e4932c7b7e65078e63bb408e5c45a1e08806c38a4442513a613182c668
+DIST firefox-146.0-gd.xpi 397610 BLAKE2B 
90f19aa7e9b76dc43eadfa66f6c410c9e558789a5f474c26a72a50323e64ae0b9cb94b917bc8f395db7edcf51e1dfd8fb4dfdc8904e4d46842d2e069a2c78950
 SHA512 
2e8260ad57915dc22b58e78500fd8da9f52127920b30f3ebf83e4a2c9ee311bec802ecdb49db24d80d484e3bb68b69e66584f987149c38cd5170280b1295b990
+DIST firefox-146.0-gl.xpi 446391 BLAKE2B 
1691b9664ccaf74ef9dc55d09bc971d6150f1e6290f30b636ae8f58b7091d31797ec65a9a88a0850c22dcc8b5d8b6dcc62c99db198ab5c94eb516a0d8ff63fc2
 SHA512 
e69a151ffe51c435d77e08d3e58284eb3fa0af562e3746de5001fca5aa0f79e6db0d0ac5ab7e232bc778a9ea399bf073580dbc21f7e8363b626395e4c8130f5d
+DIST firefox-146.0-gn.xpi 468657 BLAKE2B 
a02ab90d420a01ac8a94c85e861a7a32edeb3eeb1febd43165e84b016618cd19c4b4b223ccb09a6c221bfb2541537df2e05934d7a6d37abc452359aadf7ab49a
 SHA512 
8a6e17ebe6f6b8a1a979037a3f38b9182ebea42e46b6c2156e87083d78700643e5a4231fed716fe0d01ec8c6ed328ee9f6d920ba524f4f6bda796242b351cc52
+DIST firefox-146.0-gu-IN.xpi 357907 BLAKE2B 
4d7818ed1256bf2c6f327b513f10eb81834ffb9c202a8ca04863851ece5968b2f6fde2b3ad716e73faf0e26490526d04f8ed9e2e8f9c79ead669fbc18b1be882
 SHA512 
9ceb91ec6255065995cbacf26eaf4a6d34cbb42040a8a415aac3af4c1bbe434963c4f220d7413afb1986c87c1160c839e50ba3c96422a25e258956f99c5731e0
+DIST firefox-146.0-he.xpi 463601 BLAKE2B 
eb056a185a787b5edb847d138e3d33e0746d406da2867c7597978022239571662edd103fce73a16cf1ac18423b68ab6af1b1547e0119010912db9279522b92ad
 SHA512 
027d3376c9e70822166e618bf6d7ecbf0748325cb9d26ddfea4f6f5f347d047cac22a1f2d78a120cd856f1f85dac154bc6169a5be5e28c13ab36fae1ab43e7d9
+DIST firefox-146.0-hi-IN.xpi 376551 BLAKE2B 
9450779618c2a00f27b438c393b833bfdfe8bc428b7bb0005b7d582171c29c382b287fdc1a2ba342f691ccdb6c6a32d311ee3f2bc155f33c391690a5bde1c765
 SHA512 
e983861877bd2a1076075e296a47248f58c485dca20306bc89d276691f061c900fc8e0c275e1b674794144694bb540c749186af48a7ef7a0609cfe4d874e83c2
+DIST firefox-146.0-hr.xpi 439424 BLAKE2B 
89d86eacc6fb794267a9a7b358c1fbee50563fa38045454b6d24b919ec7207e38599cd5f3668b7f8869afb6b54de82321b7a2e9895597693bc4840118bd0be40
 SHA512 
b851561cd6f0bc05cec3651185f24cab06dcc383964260e3aceca7f369e607631d55e7ac9e5eb820f52136e7c8f3977f056d52f1187cb8c0c80340a622994f55
+DIST firefox-146.0-hsb.xpi 482198 BLAKE2B 
7e9e795a285c8b03d22d91353cfd20e4fc1431b5fd9832b6f4678cc6742d75f00e7bd836cc14b2301f6a46027a77ef3d80989405febde8d4bf1b0616bac52d35
 SHA512 
bc24ff8b3abb0f501b62ee22e5f2d9f2671cd04a19cde248c552419769520996ad5b311cb8f919cce408b6ab0b343ff8d21441d1ae4a67095b1ccdb504ad0f4a
+DIST firefox-146.0-hu.xpi 485908 BLAKE2B 
214ef74c4f0b2c8c3b4f0a3e4346aa4e17f7a8148e232e1078bc5fca9a4aa7ac3b5102ec4ea5a6a515383bfbe9cc6641ecd32eef61c50edc8eaead81ecf30fac
 SHA512 
e2895c4233692dd22325bcbbebfbff513bfe0a9bcb6aaf5720ff0a8c9770f50407fbd47fea2261be39729471345b7a63e8c00500de072d65e6e817aaf2e45dab
+DIST firefox-146.0-hy-AM.xpi 469996 BLAKE2B 
db8c6daf7ce2bbed6d70ba6dab2578c8ae764c85e3d41e2a39357c178f5303135b488724e6068243a1950ab7c73b45b1645b61e5984f9fd3d5fdadd4aa068de1
 SHA512 
dc2f5ed0d53b72783e92908993195552417a230b99a2466aca506763d9d612a32ada99c2ce592006cc66d28167c4246b1fa6795d72f809d2fa9cc0bcba8bbac8
+DIST firefox-146.0-ia.xpi 447674 BLAKE2B 
d8a7c4723c9c07e676a90f791cb1bf3c2536c5fb876451f347a2b6cd3bcbadbbe1f631af7808db8aaccfcee6d338269d9808aa09fa60c85d0bd2d55caedd041d
 SHA512 
f9b86af68bca0e9e598da0939425600f8db807eaeadbbd3caea63673e7a996aee569fbbcb3254968dfe4e1c0598508e4af559bcd9f13366a7d2055ed323a4971
+DIST firefox-146.0-id.xpi 430254 BLAKE2B 
ed506730d812d86e6a0f08394c8d562059d0898f9d5523431f2ae33f3c14f6c3377043666c3d651de7a03b2ed17122be254fde40d2abdd05099974effd1b8c25
 SHA512 
eb64006a858c6cc98eacb01b5161d925c181422f7bba231b7885e06073dd75a8c909451ca09ede8e2fe2946ffc549c5560a1884defe11867f04bf221ce3e531a
+DIST firefox-146.0-is.xpi 438353 BLAKE2B 
a19d08507a68bad2cd071ef0e705984bdf6db64650d6d2d18a6e9beb3207e494e56007cd3c4cc0c66ca38d4a3fa4153a70f4ca63a2eb367616c3291967190eec
 SHA512 
24d3a39e7fdd6e670703371a30d24d0ad4de31483f77c51a3ab05651271caf53cd78cdda7bf5c984bbc72256b53f03f0feba3820921bcd50c55d3b79da2ea4e7
+DIST firefox-146.0-it.xpi 459049 BLAKE2B 
16fdde4dad8c7759678a5b26a34f63eb9569c240ce8e26463544ece69a3ac1c910a6c5353f0c49d61b4d9edbcc5d6d0edfb4ca2d8021e5cd1e954b1cc631d2c8
 SHA512 
79fcd39290e9f799ddbbc008f235fda1d605fc8e4ec9066c4e5600fc826a7bbbfb49185d96a95ab96dbdee429d964219d379ff167b155f2263fba09611bae824
+DIST firefox-146.0-ja.xpi 500728 BLAKE2B 
0c226e49edff610c135dadcc2472ef8401c37459adc4050d0f7e26f3bb5cf489748543c315263fa6aa0c01e03212ad6a22eb7915c6c831e5fc96f73438a122b0
 SHA512 
98649da879aeedf6bf609a02cefe4a5b7e7927115afb62b1c30f1a0b758a31e53a5b5999bd41e675683624d051f602439baa06d318a8f2007f9cc799b99a5ba6
+DIST firefox-146.0-ka.xpi 516847 BLAKE2B 
409ea253dd5f478e52af8df8aa4e335f1263d98bc8f9e785d707feff59c1c2afa436aea5f1b8e696356ff578ea95d4488a125429058261d0b020d4b9e66c2d95
 SHA512 
7e86f11adcbe4d0e2b9c8b0acbfd00942d02635b2b5e31e57d740c36ec6130bd8b3c5d6ea849420acf35ab332a959f32abcccbcd2d485aba219856f6965fc3ff
+DIST firefox-146.0-kab.xpi 425014 BLAKE2B 
c2a6ec23fff4d0a02939cbc7d0de3a8a4ee87dd63f9e669e9a69eddc45112f5515ac3a3746601ad1c81194a8470a3c22b0b92b15990648538f36f6e87979f51d
 SHA512 
2a0330fc2b9bf77b46b9a89d3f04b8461913b785f88f20e478e725e5671f4bb4141e038af80ba0953bda580f71df1edf2b9d66e445e8d5e35a635f99569ce71c
+DIST firefox-146.0-kk.xpi 515135 BLAKE2B 
c98beea7b004ba06aa53f832b8eaf66dd680ad299e178bc338c7605592d111d32b2231e941aec72ba1ae61667e77c636151a5cfa8b8caf2c8f39d189860fb6c4
 SHA512 
6a2d8baff29fa65e5f90d9b0e7e82db40a4a4f72d8ceab77b105939e520ea9bbfc9443f868046ed99784b2273e93876adf225ed92bb31f7168993bba9e14f76f
+DIST firefox-146.0-km.xpi 347329 BLAKE2B 
99232675268b52e9e5f813b04a4f22b8250237739c26c392dad013a83a3b3d4fa8a0984c75cb0f53bc37a026bb4b20e9b0e7edd612a332184f128da2fe43087a
 SHA512 
17c3d824dfb58162896c43832531df9cf8104767b5e01db4616b91b8fad8d05405869f89744db687dd379a803eab92f66e97314e5085c48c9291458868523180
+DIST firefox-146.0-kn.xpi 331574 BLAKE2B 
e04179ee2ae01ecc76bdb14ed58f482389816ee01190c4b27fc4a9bb9995183a3c7b49cee4702d564c77d81f46d760e95e421f9099f465d1066c76daa484783a
 SHA512 
47996a7d2858ef2fd37a8665931cd8ec55a46d9e176c341ee3c64ea05c48738eb1c56b1eae0f330ff0ba4d0352bdadb77c5ac665f0b628e4553bbefc779250b7
+DIST firefox-146.0-ko.xpi 486173 BLAKE2B 
7607c2bb3f588793292a553f79fb2df343ab243e0f6d6d474d9964d117a20e5b0165e284d16feab12d18c9b1e8a8ea8c8e0173c15b265c89390f2cb5e63ed158
 SHA512 
38d81568c5d45d88cd2bf998430b7fc92836311797238114ae46d993713e1499051aa54b502595eaf9d7301d5e46eb5202b004b390b7a50635bd22b6ebe2a1cf
+DIST firefox-146.0-lij.xpi 318771 BLAKE2B 
b74833e499ec2aa37eacfd20f7c1e8ef5400b1af345ae3c08e6a7c851912d19a185cc3d6a67c986b757d0004fa897d70716ed8ad54b408ab4b6ce7b8741cba8d
 SHA512 
e8f1d5392f94bbaefc574f34997017f69253d616f894c4e6233b6f90898eae5d86f2be1c111fdc9c4998b8945c370205d8e556a5bca16cdabedc06db10b06672
+DIST firefox-146.0-lt.xpi 378734 BLAKE2B 
e69df099a41f4220013eecf1d4468fbbd6270726d9b96959c5b87c92a494d30b793af2a89f105074baf5fae7e9ef2f97a60f0d1299936e9ffcd8741f9babde86
 SHA512 
537406cc245222c70abc4c7ca171b6110096563ff742000298dc6fbfe0a83fd1713e9ef119bc01e73683ccc12256e6c881427dc9b6c16f1a96d4bad115b8f6e0
+DIST firefox-146.0-lv.xpi 389741 BLAKE2B 
d21e9f8b95f796c79f780e768e2a673d085797ed3bf6a775c67e554ec45bdea18023f1244bc329a18048d2ce62934b33f18ca0f2e08f8d057ca5fff9eb667fd9
 SHA512 
bfe9ce02f6cc600d6e27c634806d1f9d8c2dcb7a7a1095e3b3ad5619581e6d5de81de867c95a28bba6289899c4883cbc2bfd00e2a2aa8b6cd7af28d07ba5b3d5
+DIST firefox-146.0-mk.xpi 316206 BLAKE2B 
a9797c2510f2e5b58d5ffc74e4c42c0d8aa36041ddc49f518c3f2e15f7089f1cb4b47916dc124fd65d6216fa207158f82888e3e53fd717fe2674d8677e36726c
 SHA512 
2c53c590b70ce11c381f7b32ba804603e10760722f242f225a6f3e762fc774d7b50bce85eb9db10203d981fa63798b1ef0d3f04c42915e477059f4f9ce0c03a1
+DIST firefox-146.0-mr.xpi 355608 BLAKE2B 
54c4f2b562e9fb2f35a67aca638b4cc923fb308b44a5e962fc89f31424e35701e8079499a7bdd9e4f4c1534dec06d9c2fc821d451ea1f0620ca1db2b393fe554
 SHA512 
e5d55dc3994562edef24a0fc0fe29a7ff148293ecd2e01e4a0048d1f5e0a9e654ab270dba3f085503712217357d594324cc74e2d9407d3135b7a7896c4e2f655
+DIST firefox-146.0-ms.xpi 295249 BLAKE2B 
9bb30c6207942ce92bbdb5bde479154bf1d429f6fcf302dd8e87ef8f7ee1480bfb28e6e23bb9aef4a1ce85cfcca25486743f9cce987bf0e6f4ffe25654a5442e
 SHA512 
82150b871a1924d796e9f7fb577225c823daa9cc44f248d045ccc0460a1535ac0b6d5cdc32726094cef97a8e0c0963265f1128f16ba3ff95079970492ca807a6
+DIST firefox-146.0-my.xpi 342511 BLAKE2B 
9dcb961bdebdcb20e2cf8f2eca98a659ac68077669e35bd23face0e56145808ef523503e8d997f7ceb47e6ca5c9ed9e95a2bcdfd209d2ea90b8458ab65667b71
 SHA512 
be29084acf6441b2e22fbd06154a3074c4d6fd302b85a9d56042f717e1fcb40d4fd212b005e889a2520a0a248cb116968026112a22e7c6a0dfb9d3434631824e
+DIST firefox-146.0-nb-NO.xpi 447001 BLAKE2B 
adfe82b978cb75d752c863d0cc296749449fff00d2859e7c4a719204a7aa86a30bd676a732edbbf9ce3470b65f04c8c5234d77d1b7f41bc808d91652aa5c56b2
 SHA512 
120520c8e0ffa7c823deaf2f8605cb33ea0952afcab7577a571a3c99d75a17bd7b4b2914122fb1cb009d26dfb2fec07d12b79da7ce047f37a9536a9732993b82
+DIST firefox-146.0-ne-NP.xpi 347671 BLAKE2B 
39897947df191325a477c0962b6b10186650fba5f0727e330b1a91166bc83abf56c8d1ce3f52b4a3860de0541639c3ae532d4c4e15595953aed1f61a04f3dce0
 SHA512 
9e833e0c4e1e71b7ad1a91626cc4a14c11527a339daa2e1f5a6788043160ce919893ab98e4fc4075dec5019b1c8a13484026c631a2e31e95f7fac49d19b93501
+DIST firefox-146.0-nl.xpi 454145 BLAKE2B 
69645a2a9a4b9ed2f5d3256b7d72182921c3af969152e10f6ab1bcb9748cb33f3a6b5cbb0fc98dc7e67a32644438c6038016b60bad73442f968b94202cf94bc0
 SHA512 
4dda4458c1125ac16fcdcd0ccfe493841af849e137e7b026f9f6603677aa51481e8ae5426225e23c89f57b2857de590a06f41135b5e71d3166e1769bc7871a83
+DIST firefox-146.0-nn-NO.xpi 446400 BLAKE2B 
1f846435fdc3a74456f4c888fb0bb38f85436a734d9c0f777e26a9e2c20990a99f792a57ca3d1824f069da1e005a6d5c19e250e27087d9842db428f2de414685
 SHA512 
1ed32a73f83b4de98bc1464dc369aacce78d06c0adf320e2ba3ce3a6ea1b633cfd69356eafb330f719d7c5f6d05271e0fb5c61adeb514782159d46c1631445cc
+DIST firefox-146.0-oc.xpi 408785 BLAKE2B 
0f94043012abb4e9b13948b83f1a1f5ffce236ea8ed72ef5a9f54a0d7e46b0f78f44d05bba72ed73bd277b56fbc7c066e3c7d348d9fea25363d5cad500ce0ec2
 SHA512 
da1ba28ef791841d4d21c7b33d00bbb3e1fd6623f3dae8c4e210f3a3524b31b88128294032e3576bb721ad80e3c983d31506bddef4980a1749f90b2e33eee5a6
+DIST firefox-146.0-pa-IN.xpi 512539 BLAKE2B 
6318433f8739e13dc63bd22e509b52f077b83434c310e126018b799bf2574d156745bf52d27cd1c1376aa9cd818a723bb16af91cc6c40a0711385c9c2fc68878
 SHA512 
20da41bfaefa8acc7b19e9b3c0849cde67d3d0a4b84601aa21957de384c97fbc0300b4040120a23d45ac02952d714bea5cc720c92481a49039251df828435767
+DIST firefox-146.0-pl.xpi 483142 BLAKE2B 
b88a9c1aa0bdab2d697ebe6ac98ee228f824c6f06cf942d19f4440857325bbc6af6ed1cb89d9281510f786eb65cb867de5fcb8a05aead178c19b9a5925f9234f
 SHA512 
dea38646a00fdac83a90f6273f37a26b35d9d087c841554cc08a5712c69747c2802031d439f3b2fa2635699b2af67ecd5d7f60d30aeaaf4d545dbc2b24864226
+DIST firefox-146.0-pt-BR.xpi 458755 BLAKE2B 
6b6aab01589b31fcb0508b324046f6194aa6b63374a6120d9eb0118abd7a03073ae83b5c1ed2aa47d3d19e145aa51240e2dbb0b4ad26a155a81eae25d9bffdb1
 SHA512 
d720887537b68722926163b4c94f9f9d93d8a26aff1aa2f7745966d42dd7ce07f509c94c98b2458f06fd2b722148d00fbdc9ecc2683edd6e226233588d551acd
+DIST firefox-146.0-pt-PT.xpi 448805 BLAKE2B 
e9ac5450429f054b14bfb91561a5e2e2290cb91aafbea7cc349b35f2f849c61454b585385cf566441337e14f94cae2445019a3980eddc4f2f4746154af8b54f3
 SHA512 
707d90810f32508d355f241735ba6825f43d45ff07ddaa1ee51d590730a44330a59103009e8d5c5cff62f0149f6bdcfae52f9a4ea15c7b636ae6d3a2dbf1c7e7
+DIST firefox-146.0-rm.xpi 452248 BLAKE2B 
4c90353e1bc3f4b53d36a1081288d4a253448b950400d21a45ac6a24d730e1f9bbf435eb84676f402d795558f391b9b7f996d7fe1f4c34b21b39cb9a5341c5b8
 SHA512 
2036558eb25ea93beedb8e369a8b1613f82e1d40d82bcea26acd773c48c24c3936291ecef3ba62c422c180ce3ac1eccdea66b3717832ca8f5d9515348f21e576
+DIST firefox-146.0-ro.xpi 471574 BLAKE2B 
e222c334ab2e02b39c8ec7617804be43591061bb6387496ab5469ed8b5762cc132a691d5a92f8cddcdf37ee21c369c053c62e4ce8b265b93b8acafd5f43009e4
 SHA512 
ffb1deda49fdb1d3f233322aeae11bdfe32818077c811560d42ae314d9c005d2abb507a4cef4096a9981bc5e13a61f83f11403072e5fec51762a4d4c1011ff98
+DIST firefox-146.0-ru.xpi 547678 BLAKE2B 
a65734cd20f9b4d782a575d019ed76970ef1acf0008567776a8842d4d7ba18cda28ab9ae932e29906271dc8dab995a8f7254752ecf7852497f5ecb788b314844
 SHA512 
c398cb94e1a48b7a000e5418111a1aad102eee359709604d14fee8c75f91b3414b18e36f74766acc00b0f9fc610b2da4048aa457a8d5ac2dfc02bded1e878c48
+DIST firefox-146.0-sc.xpi 420491 BLAKE2B 
b0e3cb327f3129941a4fbbab84d7483202b3d9f4ddce73b038cd5c4fd103f2ed336b159081182c172f0f8880b74e2b618e795c96ea56123733f8a41d562bd9e1
 SHA512 
fdf0776c6ab2372db7064cd5bb1c34a3d3d9bd01b066c19b2bd2860fb0169b24a8ad85d83fbe80ff57ba45301c858f4c979801c867641873c0b0f144a50d2f4a
+DIST firefox-146.0-sco.xpi 321769 BLAKE2B 
2232f1dcecd850d598c201b1dad142434927da28f78a661e4f279a1b409bde5db48b1ce332ec3877bedfa4160d307f4f819c9e9df3842d04047bc1e5fd9d5862
 SHA512 
a883e17ddd03a2d2a786a36db2ee2d66a5fa28720b49d209455f8d5e42bd88cb25ab725f10b6021be1a376c85dd750bbadb538714a6fc75cecde95878f8bf3e9
+DIST firefox-146.0-si.xpi 409006 BLAKE2B 
647abfcf4f5303f8fd3521bb28c05023720953deb7d987c53af0dcf47418c7c39238f5fdbb3428ad2a7af245f016e8d34d2211c5d234c4c1af06e2566191caf1
 SHA512 
4ea75c0f64db5476e3597acd9c4c2920f60edabcecb0cb557e9fb94851538c161ebb58b78e0cfe52f218be4e8714b950cc892c5c143ec7c3b15061f4bd978992
+DIST firefox-146.0-sk.xpi 488440 BLAKE2B 
94054239441da693f22bae8ff2c0fc654926d2bc30dc7f6d691ce14d3ae78f6beabdeb505f3654fb73882abf37ddf534cd916db02145e9273aa40259c593e931
 SHA512 
34ac85cf3ee0fafa3a876b075db2bc479595d61c8170391091d4e64c821af97c53bda64d843e301c8e2b2288d24c3b9ce432bc2efa80b4a45017e5989fadad0a
+DIST firefox-146.0-skr.xpi 483170 BLAKE2B 
d0ac79d8de19dfdd34c0c0e15b8c7dad1ed224d5c03fd597e2d1f6f7ffecf6936465a267626c24315d623ae46b237f0ae01eba96ae120492703359619359c15a
 SHA512 
9ed48de7476ca2a59c6286c3dc4aee0057753f0072af6da4e3ab4214cde9cc8924781d98bf4d86ba4395b4b03584dd603c734dba7f54fb95aca3bb7014c6eb69
+DIST firefox-146.0-sl.xpi 455795 BLAKE2B 
8ecd9503b7b248a1991ce7ff380bc251db5c0e9bba1cb7e7caf651758e8de9a4bf402ad2eb56e3f6c4a5eb023a6d0bbb07b95aba7abf7721c6aedaec7ca6ec4c
 SHA512 
01d6375b66d9ac2dd3c5ebdba7932dbb4ed84117ef0407815b8af9478f0e808e0f7030cb7f3fd12a24c6e24debf0b986748eaa16df838322b20723296cb8ca75
+DIST firefox-146.0-son.xpi 273562 BLAKE2B 
645639e36b57330e8f66593c52b418f79a4f49cd1de0d905d0bba3eaf8f548fa3cdff9c78e5c37f36bc4f042daebbee425f2d984c3782afc057991c34e3d01e0
 SHA512 
6d926a28d55f72dab5881e9827c2599eee6122aa15ded26a2daed967a4b98e538f6529634de141889e85a9ed284860620ce834100cbf11ced4c9ae48b52ad31b
+DIST firefox-146.0-sq.xpi 474497 BLAKE2B 
74d1525a5c68644d37c856cc9784b510af815947fbde3bf8c9b5c7de40ed98d8327a6c95a3d8e5eed06be1310353d76d95ef1823babd2559e26dc95496cf05ab
 SHA512 
23fc8bdfba8c5872c70cccbfe844fdb34c13acaabf159d89e4fd3fde317b025804856a40fb43cf178183e7379a7bf1e57046a2687c4215845d3b47cba465b86f
+DIST firefox-146.0-sr.xpi 451052 BLAKE2B 
84050ec036fb76268f71c84d62f36b4b8b9901ed78505853604c78c74cf48bf9f6fc1914847619d91cb0b64e30ac001b47985e606a32d713566f0e0b0769de91
 SHA512 
d67cc26c8d0c933bc7d159e4a2f1d4a5547ab1e4757ed64806fa55d8b79e21b58568f95b06497164477017759091683cf58fe7c1dc39c07e6f052f5b544df7e3
+DIST firefox-146.0-sv-SE.xpi 453950 BLAKE2B 
1c59e93d5f904f34154081e9e07501e9c7696827915cc32eaa2b7dcd4ca813aa77c8a8095704c2b3ae153565a8db5d42ebf11581422dc88f4ecbe05cd00a95ce
 SHA512 
850aa8716adeae436258cf803912a75747114e529f6c89f3c4d184767d89a748ed4b7f92b083148cef24023690def7606c0baf9b4cb0624a26a2b41d46e89bc5
+DIST firefox-146.0-szl.xpi 340395 BLAKE2B 
59797bd6ddf3d02accac64d2180b26456a225f43a195a12c6dbb2d13e3b27d09d1b819ddae9db8dcf8db96e88b4d8af7a19622a07ae947aa3d67055a79210b41
 SHA512 
d15c00c94adabc933345028bef600ebba35930de3cd151ec7ccc30ef684184d78482bcaf091cc7c6163a49c5ce3aa7f8adf93275937796dc8082a528a106e591
+DIST firefox-146.0-ta.xpi 337694 BLAKE2B 
a9dd9eda8016eb9a07aa3e0a10bb83a8d0dd7d0f8c86d29959064b94ef2b6ff123d88046332cada50b7df0fc95dd4c81324ccf92b576449355d28750fae8ab55
 SHA512 
fe75b2398b01dbfaed2002c506401218ec41ee1efed68f5604cb9127defb1d3b2773e1623381c586cdf71a66327b00a5224ef605934f2e87e2f9f6a1d20af9c1
+DIST firefox-146.0-te.xpi 380822 BLAKE2B 
61d9af3a9bad9032da01ea2ecf1fc500fec5864ff2c3f5460064da793c4bd683b5fbfeefa91b87584d7e4d7f1215512b2c4f42d2a1b8290adbfe2d2b0b6de649
 SHA512 
2a9ff537e7691ba7db9b40735f53d51cb738c34f7498687ebfca3c7c932771027a8424f020b2e272545ad75ff4b41c7e30b589b88c4dafb21ebfe615b4398ce3
+DIST firefox-146.0-th.xpi 525439 BLAKE2B 
201b8d25b6ed6aad2da58405430c65e945efadac9deffda941e14205d6e321b2bafbdbdff4584effd8ef37fb88fbfe15d69d8ee2b32e0852237daebac88f2977
 SHA512 
df1b973933a380cae82d1aa74f342b22c779e34733d8c5f0ae126ebe0f59e4834660807de2203a481fc5270c69ef9615d844bf0a6b19e073e32a9f2f0a53c13e
+DIST firefox-146.0-tl.xpi 355096 BLAKE2B 
d9d9fa77df904279ead74b0b4de314696f30e9d2318f4a992141099f3e835444d252e073f624fa609fae55a7518dbbe5548ec243dd0cce85493d04c0087203ef
 SHA512 
060c77ecd80bde59d3135ad246e82d63484896c3a9816cd9e686f130697ccee8040f218fc37bc53a9e0b5cb7d9ce40c0249aca61b7acaa16d16023b0824847e1
+DIST firefox-146.0-tr.xpi 467748 BLAKE2B 
22e2c825ac7ac8674b18f62d7fb1ee46f1b8dc36aaac6760c0e08be8a36b1fa8437500c16494369c208440cfe9a0b3fe1861d1030303f917f8d43b792ecf9ec3
 SHA512 
77f1a1a5ac7aab0e5bbf1ed50f475921738bbf7c896c3885c3a689901350995ad2db247f750db9a5253057c62d3d6763ba51b40109e64d49a466a55b3c0a02f5
+DIST firefox-146.0-trs.xpi 323650 BLAKE2B 
76b4d2d5b0e1bf6e6555c1986fd400ede35a434a1cd61927bbfedb1255a13547866d3f0b14cc5451c6d078aa41ee73baf233f915d90d08113501b2d216ca8946
 SHA512 
38dbeb86f2f0c34aaeb843bbcd1d62d9705fdda13868fac63de9e387026dacfa2dbb21c509adb70e41af8b18500799181088f0db40f7d30129837a85cf1c9227
+DIST firefox-146.0-uk.xpi 532325 BLAKE2B 
b5a184e0e82a4aeee9f063409e8a3a5df3e85a46ce9f30fe659140196310d43345c7fa6d31ef08c035fa6145ab57a8c653f710d58231a8488c254a4401663fa9
 SHA512 
45e780c248754b64eb3d3a2dd8cfa164086eaa6e134e5761e18997b3c9bfbc52db59fb40e77392dd51c414cac074ec2fde60396b119e551c0a2408120e2f3b07
+DIST firefox-146.0-ur.xpi 369594 BLAKE2B 
ca8f1a0689263e1e0f9f5000a16cbcfaa7b06cc5fd78d8267ec16f16c3bac2180053b33e448aaed673a29574c1ff2fe7352cd14e766c7c067234ea610f25cf01
 SHA512 
82924ec0f139c1e67e851d907722ee880596e64b433e69d71bec5cedf0aa0256b433eb10aa5d45aa4c9925a42682981f7bcc0951dc9cdd410bcc3920b8663eb5
+DIST firefox-146.0-uz.xpi 303081 BLAKE2B 
6d9f0522a1aacf9bd0500b7722113892361803fb54648c844269c5d14bee1c217ab091cde52b1c72d68e2abcd14e26fcc46689b0727a92880d8737c5c993dd8b
 SHA512 
5725cd144d11559674fa7439f8de61450acc83966625e3c6b58ca197214ab59bf340c39090fe81957247d4c1190eeabd46886e8b2c41db0980d62de53c84e027
+DIST firefox-146.0-vi.xpi 488042 BLAKE2B 
dcd1d9c62bf609dcf931962125500cce401bd3a365f0a3e6ad595ad73bd15e36fdd50287f1e9a7e217306df055f06488ba288d539801aa1a256084adf6266f6f
 SHA512 
0d0cfe92b6bcc0d1ff18d1e0d02bd21d8db52b1f08ac6f783a4f8aeaaa2a945d8819a5a58d398e9a6393b63168a7fb1ee16159c70d5a8171181eab2344bed649
+DIST firefox-146.0-xh.xpi 273181 BLAKE2B 
cbd2ec9165ae6d3dce65231e9140852e7e23a18fd9924b00924e8ae8f8fac91af826417350cdf73db68965f26b4256148e6c99bb323bac1d84d5a35071678ac4
 SHA512 
8aaaf8ac5d5ac5234f80c5d95fe3ca625649b372074adf66da44b01103441ff1710013d97db7c03efb79f54cb97a731915a217355788eb87a07c817e7f61e47c
+DIST firefox-146.0-zh-CN.xpi 479108 BLAKE2B 
78202aa4800ed1958256be1a4161a29d75b6745de45448d0f9731ce764eeb58c85a6d23b80a63d128b45287641b6e9c7a60d4f716d40a3a7893cb8ab1e4e368a
 SHA512 
ba94f3500e46a3886fb5eda19542671e998534ec18ead0af952856e5ca1be904c5b0e303ee9acc1706016180d3b544d5b0a392f89f02c11a600bcb8079cb53c0
+DIST firefox-146.0-zh-TW.xpi 482586 BLAKE2B 
350b92d621388ad2f3db1ed1a189062961e31d8dc2ba5e30a354ee272e20c926033d54f1ed210cfa6182884064c370e4e9e917e47f1da23e75dc5837441991d8
 SHA512 
38e2fa76833afa6c8d93ccef7e2e3c902ecd0b755e8574f49e39ea2c3e012760430ec70b16568b48f2529118f02e4396bfa0107c3e05bd0fa3e35b0ff1b42116
+DIST firefox-146.0.source.tar.xz 646002476 BLAKE2B 
da28aeff1bdd88ad612127196497a37acbe6bc83944b08cf2ea9a1eb4122899326fbd90ca2b1f4d2a6f331afd08d1699108cd09171f20c945f3f3fe006909029
 SHA512 
db6664310cdcdede832b29dea533b345a3ac86f9df7813118d44b1ec2c4a32e4de2b6e98044385ca6f6026eb3a9994c486a1ddb8b6f4ae7589ed46b122c05630
 DIST wasi-sdk-27.0-arm64-linux.tar.gz 124841089 BLAKE2B 
7911b8d31e06e15a7e2001d81bcd27a583dd26d75ca0afc2a5bf31729bdba0a5786669dcc56dfd66d09c44862737dd3a62e8207262bcfb6e6845dfbe26216535
 SHA512 
6b6b5e109f2312634d67f0d7ab9690e0a7f69b21bf4894b86d584f7b1c340bd6696a5494ea8f96a759c691d023ac8c67ad7862112fc57106b86c2cef11f14f9d
 DIST wasi-sdk-27.0-x86_64-linux.tar.gz 124790235 BLAKE2B 
768b9d8d66d79c000b11fa0710d1170e6a5f87c20ac8684151b44cce45e5cda83a4c3a4ad09042c4151e40cbf4b9ce0795f0cd5cad30be7b00972a88dc43f7a9
 SHA512 
a21a19996fb23fd1b522c328827edfeee74bd42fbbf88942b5d46d02f21e6fb2300a783c96915039c5545d2734010a94f3fe27b0751b9722988429669a2a6c9e
 DIST wasi-sdk-28.0-arm64-linux.tar.gz 121761064 BLAKE2B 
044a93cf1790dd652a86927bd74cf2a8b081a8db1261c2879d7fa72d5efde6a1ef65be63ff94c94d1e39d179ab829eded95121e2f6fd6c8f83374690763d532a
 SHA512 
5ed16fdcdfa573630a75986cddde5ddc6a7e010ad9ad20cfa939becb78c1cbb0740fd1a53064e3d358b929b7b9ef6264612644293a1840c54a3e1868b4c15d7b

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

Reply via email to