commit:     a3eae5c7bccff53970237e4667f9e60b4208290c
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 11 12:58:30 2026 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Mar 11 13:00:06 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3eae5c7

www-client/firefox: add 148.0.2

 - include an upstream patch to fix test phase,
 - include two musl-related fixes.

Closes: https://bugs.gentoo.org/970779
Closes: https://bugs.gentoo.org/970694
Closes: https://bugs.gentoo.org/970537
Bug: https://bugs.gentoo.org/971068
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest               |  102 ++
 www-client/firefox/firefox-148.0.2.ebuild | 1466 +++++++++++++++++++++++++++++
 2 files changed, 1568 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 229c99da01b6..6ecdf448dd24 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1117,6 +1117,7 @@ DIST firefox-147.0.4-zh-CN.xpi 483916 BLAKE2B 
16097dc0e0548906c6ee9a597db3ba7551
 DIST firefox-147.0.4-zh-TW.xpi 487262 BLAKE2B 
774b28b7e29eeb962e0495b39c8945a9c88bb00a944d425d75b6ea6a67143f3a2ef273bd7886b361251a316083db33b32800dba67f4e3f62d1ee4226b9a100cf
 SHA512 
8d619d9cfa5e86cdc4d33a5191c9b316f7d87bc257691b71a3e67971999cd8b537b0706b17076999ed86714636ad011c65c5ea2327b0e5a87ccdb07e3b76ec2b
 DIST firefox-147.0.4.source.tar.xz 659531384 BLAKE2B 
ede1c530139bffa5858c1146fee5fff1b2cddd7836be4f4a1dbcabebfa61ba5f29d9d9c104524ac6a6baf1c870eebddf921839eea65fa560b67c5bbac6bbb593
 SHA512 
981368916582e1566594ab8e2c03cab471aaf04613d2c77a0d4e067ab159bb81b5929a801bbac20ef0506ef048cde91b2e2f89598fa8d4e8d66a8c8016bb9b33
 DIST firefox-147.0.source.tar.xz 659319748 BLAKE2B 
8d5e474bc37d7bedd20953a6c519129fa1d56912ef1ffd06582c8db9128e714239173c954b6f5f13a1fe7740d7391c770c684562108f7fd79900d0bf56c4e12e
 SHA512 
ac9017b1a2da7b2f139392c394c36341fd3476e3d4ea1a3c7e5e7bf100dc30d185132ef9256be7e6b0f9dbfc69234ac571ea1fc6db9d84543b15772f4ec85161
+DIST firefox-148-patches-02.tar.xz 12320 BLAKE2B 
3c0611a59edca260fefe738da8dc8ebb83dad5c1a2a5b0a7b8a013f054adadbcc58220110e03cb780ee82eabd4605b81d0c898eb93e83ba9ed6ba659f657864e
 SHA512 
8db83743a56a3125b6dd400ac694418c4deab4e5539d73d119ec7f31ec071d4e39a73f0aa491412eb6e03f9c970816e7ad04d46f78ceeae4dc9e85a0e4e83f20
 DIST firefox-148.0-ach.xpi 295597 BLAKE2B 
1581feb62ff68e038b6cd66090a024adb161fb23e666a2f2a4d339e8e95047787f5d8c1d439c587bd85ad9bbad36bf737df557e077daa8802bdd046d4bf0a962
 SHA512 
bb2e291dfa3cc90133f5bd1f5e3389239082d6ccdb7412f4138f97f652e693f2c76224d17dfc23553a1b0d4e5a196b9d55779fa2f913e22c2c8a58cf18f3beec
 DIST firefox-148.0-af.xpi 268986 BLAKE2B 
dff6bf0be630a974d2f9b950158147216091188eb107fb09c5c67a727276bffa06cda0c67dc3c73409c4295d5f2e0ee33487efa12590831960d4dcc7bd62c080
 SHA512 
114baf22d18a91de4bd9f239948c06365621f513494007e1903bdb8419d46ca1f57def1dc128d32ba24bb54da606134d6baf1d2c7052efeb9d873aa11d7f9f35
 DIST firefox-148.0-an.xpi 332906 BLAKE2B 
6afcbe0b58040f3689402683701876267780d6c76ed1ddf1fd47a5c89c2cdf8c8368348e88fefe535417fd49fae356e7fa6954052bd8985c7bd80e1c4a25c3c2
 SHA512 
5cb5e29e3e1dfaaab448c1fbaf44b4839e73e4663d03d2336cb3119cb0a8c23eae8c6ea6f16da906cf5221e6bfb2e34cfe1bb6adc4ee62b0020e7c5cbdf83aac
@@ -1217,6 +1218,107 @@ DIST firefox-148.0-vi.xpi 497030 BLAKE2B 
819546021c22280c77355b62a93e76f8467ec5d
 DIST firefox-148.0-xh.xpi 275032 BLAKE2B 
7d785ecf29f1d97c2098396180f213feebc622895934cc8643195f3499a02ad186274132e9367c62f3193d45248f2bac688394304faa1348ff093cc73f44ed00
 SHA512 
61c495457ef4443fb9ce56125d2ca5f4756f4f0d027183f65d4359f868bf8aea6614cec03b308894c1f30744828dd86c3de254d7ca05c3f89f34e66a74a0c0db
 DIST firefox-148.0-zh-CN.xpi 487764 BLAKE2B 
2f42a7b10e5055084465a4a553ba42b7df6d7f12e906fde33672c53c013d27f934040a2d7b46dce9bcd6fd9f2ad24457c643d9c28661082e46221597ba7b504f
 SHA512 
65c6f0e7af629ed0609076164fd2c16ea3b31860166c0a283699503c6a08af72f753c9db642439f8447924483d24fd4eb9ce6a4ae8fcfed12d25831f5f191788
 DIST firefox-148.0-zh-TW.xpi 491364 BLAKE2B 
a963425b2c4c07a49cf2c06c9a45fdd2366160f8eb989988c1226b02664fad789f0964a4b9a741680e3b6ead69dc9c915f763c03e0b7fbf169c04e469a816e74
 SHA512 
86ba6d2a1917f6b8428f195b4dacf078a79d832d4e3b785477a9631ee9c26eb179f6d5941583f7939be304c8761fa76ab8afbd4fb68dac5aa26aa2b35d2dc714
+DIST firefox-148.0.2-ach.xpi 295595 BLAKE2B 
223719bfad10a92f2967488d07e0679f1b8cf3373813092f2a7e82e115283f4a691dfed1c6b3968d66022ad227cc9f16f291051bcceed81e9c19b1ed33831f9c
 SHA512 
87a250caa1e05984c90d0b6c47c6f1d61d4759ce12bb7d47cef1e386de2ee34c34505450ab6cf46dbcc0bf4a3da67cb6fae1e962e83bd733c6ca1fe06ba64177
+DIST firefox-148.0.2-af.xpi 268994 BLAKE2B 
bbc1022a38a9e18fd5aec8cd3d916dea67ca7d67a06280065ff568c4b2aa0f666b19aed62da6249dd82b3222d6decdd254fef72bc55f5b74a35a987a22b3876e
 SHA512 
2cb20a6adb76dbb9c2211e38ed876e85a8b07884674c46bd8ecea3c0b96bd18807a942727af87b86b0bfc1f1925bed6b2223f52ccdca8072e0818ccf615ebc1b
+DIST firefox-148.0.2-an.xpi 332903 BLAKE2B 
054899fca3463540c05980728a257145bebae083f14fb811156c1907d35fd1108e515a3d9e99733b5fd1c503d15c37f54c6604edf32e5d52ab8af8a5547256bd
 SHA512 
235eea6d3378d0e2b1e0309bbb77dd7b1a4175ec63207c019497a4b297e3155b3410fc06753a23a25725757188195fadd7c2f541dc03704e34c6517650a64bcb
+DIST firefox-148.0.2-ar.xpi 448770 BLAKE2B 
abee223f4fff66d44562cafbd0eabb1cbc2f21db4cd4bbcfc2a6dc9a8d5aa12a74b13d079b94cccf14dcb824634f63e5fd396d8d5ea39a519c29e68e2890159e
 SHA512 
c543575b5cde3584894b6ac3dff13c3690b67a04b24d1bf7e3d8e09489d8ce95ed924a3d48001a13d7b70858381f5e0eac9d1b3834737356d7b5141b380f152f
+DIST firefox-148.0.2-ast.xpi 313321 BLAKE2B 
3684327869f6379487bd866f57628e7aaf3b44b7706f661e0658aff001460d33017992cda5f79d9c0cd7327e9bcb3bf4eb645482bc27df306198c45f17f7c6f3
 SHA512 
b35a6ad9a66c39e3c071a8397021226e8665a854ff36c581e116afd5c43840cac255a72aa4ca910dbca00ee24d0291147575d01b02b8f635f2df31f1e8194ee5
+DIST firefox-148.0.2-az.xpi 319559 BLAKE2B 
3ac37ad6196ff775f1efb6d2ed23a77566dfcb45ef7305c175a66439cc950d0c897043604233eb9181de30e029186d35571944219edd9e449aeb7b11788ee6cf
 SHA512 
3bb6c422bc8fc385f6d02500cf8d06d1b244ffb5dd26b4511d810f661ba1cb112cb4e6b2f9aef4d8dc33c6e42c728419d7546ddbbd0be17943311279d74730da
+DIST firefox-148.0.2-be.xpi 554142 BLAKE2B 
5e28ddcd4931d22955ab345bbfb097027d3e9dcd4954da083f25e43ea1f40501e1dcd073a7acd9937c7a248a2ac831f2de2ca2d4c84f65b299822c87e1745636
 SHA512 
2a40f8337f433d40740eb7c374203963c1a788c432936cc238cbf06664fd0f610f63b515ee610d2eb9f2bf4e933baf87eefa9b8227497389e8865a404f28259e
+DIST firefox-148.0.2-bg.xpi 463489 BLAKE2B 
8e9af3f7600ac50d72b2e36ca1be4c6098ed297b473777c27215f316645bc3dc876850c207bee068229f054f4b6ef40e872b0a54c2161b79268adb504176c249
 SHA512 
486105123444425b9676e91a3c628e971cb7b70235c59d3d88990f310ad151060b042a41ae55a7e676f27c6259148d91f5f42592411acf758be6cf0ab5a4a0e0
+DIST firefox-148.0.2-bn.xpi 413629 BLAKE2B 
d36a974503cd07283cef734e557ea73172657910db0b038b7907b40744b26ac80abfb4fb85b7cb116a221201c41a4d0dcc85d30cf7e2561844f7dc4ad7c66de5
 SHA512 
b1baaebfba8013064c8d6e6e2d2a3ad5edf948025c7afed6c7b805b7ec5a7c989c59c163cbc4ca8ad13346131de93cd11e5b08b8e1d0bd0fb943cf64da3f2b93
+DIST firefox-148.0.2-br.xpi 395043 BLAKE2B 
f167931646f0ace380abe0cc9c3b95c24948418cbbbfc29b32a578532c384229cf269f09cbc4797b7c88d23ad069466ee4fbd60ed0fc6d10d143e5d8cff95ecd
 SHA512 
b62978e9090a3d8773f51910c7d2c609d819eb88c59aac0736741e670f5cb1c25fc2cc5469ea24ed9902a2b28f387dea88e42bb5e664b32e97194cd18103e094
+DIST firefox-148.0.2-bs.xpi 450843 BLAKE2B 
d200171a562b7ab85cb7a0856455b20951a4a9695f73b78d20abfc4f17d913d2d96db33ba2d340f0c984e4387414d24263f35485162e58ed0db81e8b89eab4de
 SHA512 
db5e2602208c43780bef1b7b577ccc1c06f002d0fb27ab6edf5c22e859154a083e839931a2f8014738ea85ce336b4765b6d67dd25a9c981998e13291b1829179
+DIST firefox-148.0.2-ca-valencia.xpi 358640 BLAKE2B 
7ae720a49f23cd98e67f4c49a71c83d1c5f42b9cc9ee1f1ee1e3a454301a92b84c48a2b2c9d8d0baf65c9d177e6853c682d3c924cbb31452ba8ba0ce4148753a
 SHA512 
d062d2556e8d6994381ba98ec6ada55b46f4e0cd83198ef5583ebb04beafe2fd76e6c9e9465be922449a7ecf755c5b0a4bee700bc8a99953405b4b97f353e8a2
+DIST firefox-148.0.2-ca.xpi 417520 BLAKE2B 
f20b821531b25f5e038603ab5a310e2aa296f56c756e7c57893fe0015eb77fda3ed62a8ed3afaee4a70545cbf8ebf1bcfc2b49c260068cf820332a9bb5f2a3bd
 SHA512 
50769ce5ac5fc4f8cd5ea74a3b5a1737a6c8d212ea3999746a9e1b962429cc890e2ed69ac4cf73558e73d3d3b64e375541f518c0a3f92d04c6d13099ae1c39cb
+DIST firefox-148.0.2-cak.xpi 390448 BLAKE2B 
ec77910b83ade9b93c9dda5ac04047c0815c66a8ece40762c1bcefffb9bcbe746b8fbd01b2ca6e7e7f44cd4a39e2effb93c5eccc8c6c6a3a94318a6b78bdb555
 SHA512 
de75a16e4aa851d5ed4d7a10dde968c27b7d1c07b8f3ccdc9f6f9589a64fc968ba540a705410161658a373c9973045916e3388cb35c9ec665681d5f4ea83e56c
+DIST firefox-148.0.2-cs.xpi 506881 BLAKE2B 
c573ec882847a1a94b47d29ac8eb455e174f9ef7706df4f89a66f46293a298ca8b4013b1175779d5726479432330f03d2617aeee51b9c11ff1304c6a4a29a3e8
 SHA512 
2d91f868a19df8e589fad12b6fe368aa2cd085b7b0e3aafc771100adf9beb63373cc88e832be02085a5fc1d6bb5886628f009e069a764195931cb814226be7cc
+DIST firefox-148.0.2-cy.xpi 469568 BLAKE2B 
b3079d6b976f750cefa0a890c6215d74516e42438f4f586d4706207f1c909b25a4183b3b8c1c7c28efba7eb565cb2894f3856f99ddcaa7733ec2fc3ea07abf58
 SHA512 
0c134adcea609b83d4405f438bd3f1d37bb0404e571ccb9cd7f9122724d91b61b56c6ef55a26d0a348f5d3561d83c4a45c41ac4628bba65487b43df3a04935d8
+DIST firefox-148.0.2-da.xpi 456956 BLAKE2B 
1a0562ed91e27422e3a87fa48e7ebb81e72f6b9c98d040d744eba1a5d4f089596723189e3a397108876994ae9c75da600a87088348e346cdc6a330c50d8e6674
 SHA512 
20e57a7f31e84b5d8f58d75f676fb6aeb247814673d080c6471db09d6d7b4151e5298c7459b810eaff5d834f77aaf723ec13d17954cf40258841cdc7f3309455
+DIST firefox-148.0.2-de.xpi 480572 BLAKE2B 
76b64cd8c0a7c22b2c8a4f3da550c5e04509e4c0f9b7c49b9816bed6612e2ffd2483f11e7240adbd06db1b7b831634dfad4d63d497e61c144fe5d6fc38f6b368
 SHA512 
1bbb183b75cb46c54b32321a5384772a5639eb97549e0cd1f6de0870e30fa2765d40fd5cb688ee7bc8a8ef1a50feed085fae3f13bcaa375226b4bb141a9d0ac0
+DIST firefox-148.0.2-dsb.xpi 494578 BLAKE2B 
33cd7b54e0f44752571ff00cf2ba7a4c022a24afd24c8a749056d3a930471692ef14d0d3891d6382059e1fc73ae856b78c73759b3c113ba75244acb92e271a82
 SHA512 
92344661177be5ce9a4e848333a71df0ee1a4785ae9bc79402cdd84e2057c53d026797f17ac45de62a6f75eaa2f180cd44d356bbd9c205d9adc6a05ecb4ef1ef
+DIST firefox-148.0.2-el.xpi 568534 BLAKE2B 
6f4e7cddb0762b6a96cac4a76786b643756fb873b62a7d6c08ed952f35f8b076ec3daa8562d41ed3309c176cfa2dedff26c406ceea55c4fa430d027598cb5ea8
 SHA512 
bb3a243c9f465b2b881a72a6c551693d674b4130cbbb413bcf9274504e80800dc2c19c3cbb6138098d1c5d363092eb6aa976b02990fb5193192e00352a8b5a65
+DIST firefox-148.0.2-en-CA.xpi 435443 BLAKE2B 
5b1431f6aebdedf9c8c83b86e903a96734481d492276384586a9f794dd8d58b85a4b30fbd34d083c0f2cffebaf088040869603564397ffba56ac1ce4e633bcf5
 SHA512 
86fec0e60942ba9d012acbcd5d20c1bb89163c1db42a60897ed7eeb7e0965c563fc61d138e15511c76ac67b579256d10efd0c40a8c94aecfc685fa394c44d6c4
+DIST firefox-148.0.2-en-GB.xpi 435769 BLAKE2B 
5b1a4fdbd23fc1e16bb189b4d8f720b601a9e3a356ddc25380156c8d3dc4a745f01180812da4b2576defff9f1a7d9a5411d02b556ea45b7299e24405e6bf9ecb
 SHA512 
4e5d302f7455103887d580f9fab1301e9582e8a0b10c546869a3f7d7bebaae32af81c9882c60d107b0f1ff686a1c5d61ba1d8c5cfd93b377545f0959d53f9c78
+DIST firefox-148.0.2-eo.xpi 459912 BLAKE2B 
1e34dc7b095fdde78fa1bddf22961a470c7fb6868e8f6eeaf06a90b2ff295d243f09527c1984f98327bf37e5aae48e4ef079b421012f61920eba3d7cb67c8497
 SHA512 
3c46759f79aff18d3b255d5b3ea08288bf1664bd16830d3f5a9c833e42a5f78d61253f4afb72dbedfdee924393edc9dbc7b5556421192ea450fbc77e577027da
+DIST firefox-148.0.2-es-AR.xpi 472220 BLAKE2B 
4c33ee244b132f2cae5310bee0c78aa7cbfb3f42fc3e8931a8c2f3d58c8ee976292e8fdc506a9f0f58849f3ce6534c914cf1085b4b6c08600784341c6c281ff4
 SHA512 
acbba5c9da61f18d7a797e9c79e5d2a3fe83cd908af8fabf9f19ecfb5e92a0e80d3aadf13c875e174c13e39ccbc06226e6e0c89e2a4a23d4cc839dcbe8a1084d
+DIST firefox-148.0.2-es-CL.xpi 473431 BLAKE2B 
717f815302fce81c302add03f3adea30cc2c8e0a07fa4b8384a6cdfe23fe101217de2c72f24c15c08402cadaf79e0ee06e647fce9b8a1e3ec5c2e184d6090e02
 SHA512 
b1dfbeda0d370f561a1e9e474e60e421528af892c7058d66489460869ac036b5be7b6a9e79827a54afc572134319de06da67f80b1215ea2e4e796e09fce2e217
+DIST firefox-148.0.2-es-ES.xpi 474147 BLAKE2B 
e69aaa1d9a583a860fde1beda24d85cd8a745f02f590434ce76afc96d13d68cfbaabdd2cca3d68e42cbf198b45ff38646eb7fbf6c04fb283e26512220fbeeb67
 SHA512 
fbb96d6ac0da5872e08a05679d4c2b9aa71ad572a7523db9754bb4cea32d9550891a90cd9649e080526a53de9179521860d4afed81d97234ad2f56b195cbd039
+DIST firefox-148.0.2-es-MX.xpi 469998 BLAKE2B 
1af57971dfd64d65e043e1843da2c22a4333e74993bb1338c0246d988eced4e97f8afa97ddd259a0a5285eaf3380ec4a704c5edc8380e8d60cb05a5d946d3683
 SHA512 
f82a364e545e09e2ab7ecc943f559013c73e711d3e7ddfadefcdddd4ba0807ba21b32867326bb68075fa53c70c8f679115b7febdad86f267312c90d486b55536
+DIST firefox-148.0.2-et.xpi 359568 BLAKE2B 
de73767141a1d04bef314429b10122ac8cf0f26216d72b29921d9db9465d720b18aeaa77b888a10e45e8794251ad2ced8229e44649e4b71888fc599463277c9b
 SHA512 
4f00f41d51dbf01b29341ae9dba5e3645beea0db7c7132f2f5482248c46e7fd5d8c7d1014ae457bf1a175fa7237d1008e3b16ccb6beff0e5477eaedc4a72bbf9
+DIST firefox-148.0.2-eu.xpi 459449 BLAKE2B 
88c74baa0e37449a7378a8731bc971187c85084d05a6edff555e79579fddb6cbf97f265f343e4257af302a950016ab6c8d04b263d427351a333467861ce04ef1
 SHA512 
75743214edc6c03dcc6a7de799f67e113a67349f1f6577c58c06fc52d9273f9bdbdafad1c08bd71f3b1b950496f09f696b82fdff460942b3b954b95de5742aa6
+DIST firefox-148.0.2-fa.xpi 421319 BLAKE2B 
c9c4313713857d879ca1de27434cf110511a5a7ef0df5e262f09ae3525a66df0cbf5a8517ce14196229c2a5575a008bb4928a8d8b97605a82fc10cdd8f40e602
 SHA512 
1d0b69b970ef720d4a4e9f43e830269c30c5735272e70e76c16f2ae3decce5aa4e987be4736f845290f6da5baa81663588b8d6edf59bae85a37512055744afa7
+DIST firefox-148.0.2-ff.xpi 311199 BLAKE2B 
e432d6cabd07cc790d3dda487345711ca839dba4bace60383ebd774bd4a5ef31158c58c81755e039bbf0e37d2ac1a65a8a44ea7d9aff2074f4805c95c19dab99
 SHA512 
23fab060ea949356a415652f369a6077239c41a7feebe5a3f0278d4bae6334e0e06c0b862148634cf7c96ad51094c137cb7b749faba03effce3b894261a5d3b6
+DIST firefox-148.0.2-fi.xpi 456947 BLAKE2B 
2b281ec3a1e6c30f489a9256e529a7dee45a1ebe500096643d905e6b42c46a96a96d2ed50dca4cf107929372dc9c123cd10744483a81acd1919fecfb0c22e001
 SHA512 
be9755e1ef942b14fb6c65247d6103187816d212475c2cdd491c0b00a3e134438b5cd7509df10eb8984fad82edfbd6b0e8068a0a3c326a99cc778ec39412cc39
+DIST firefox-148.0.2-fr.xpi 486511 BLAKE2B 
a091f64bc9772105f8737a5d0ebd908e107ef395534e01d3dae5adb58b38a4d635f10f7a90bb6da95eb7e996103fde87aba35f76179070bf0ee1b0cec0b7396f
 SHA512 
eeb0fb96092cf5455729a49a49bcd4b43cd1211a1e275fcfa0721b2c50fd060365a2b32119875e9d1f4e4ae0d100d12fcdb3892a843db863b38d7be473653da8
+DIST firefox-148.0.2-fur.xpi 477559 BLAKE2B 
0e40d679276283b6dac8be51da9d82996e137028084c8227e72cdc9df185bbd7ad25b8ae3b46873dee6f71d3f714253f35305e7be173d309d92f1d65ec41e22c
 SHA512 
6ff6394401d78643a43e5e777da1cf1b8b58d56333a50b4e6a3b782fed728419e9165d893607190f55b592441bd262468de150ff4020be12d9e14a8bec9d2823
+DIST firefox-148.0.2-fy-NL.xpi 468854 BLAKE2B 
b6eee2b692c71249acf6800d680a6e94840af6a2c6933c1d11141638a9ce4964a0d338c963eaca76051f55d2827463a1bdfd7c0615e2758b05419729b8219e2d
 SHA512 
d3a22de62a85a856d1dbfbe528db6c3b26d6a1a7a472f48e24e2d3cd441005cad960959d863109aa036c2782d88f458ee2dc6e42cab7bc21e3536b7c9f9d2116
+DIST firefox-148.0.2-ga-IE.xpi 316862 BLAKE2B 
dead81770c708732f5a075da10fe18543f4c7b34bbe316ad2f1491156491baaed3ed89ee7bb4cecb7e9d26622425648d9ac90b975500feab3f9c9f968897dda3
 SHA512 
a846aab5c889905b3f67fc387683725a55bdabaaca53d830ccb4911c97429f3a2f00fe5a17edc10d1f42b3c96d919c199b382c53e382eed798a192daf643ea3a
+DIST firefox-148.0.2-gd.xpi 401588 BLAKE2B 
3f51a71abb1f90a4fa64bbc74da953ae49dd02156ab6565a5b7c0c1e2578366439daae436f8c14caa6b342dbee8401b32415d1b232b486b697bc82347e8cd9b0
 SHA512 
1d9769d4aa2d501e2fe4e6dc52347515c12ec08a84511cc178578abab02d78649f457aa318a916f1330f44096fece37ee5090638142396f1fb7a6de2b2f2b8ee
+DIST firefox-148.0.2-gl.xpi 447419 BLAKE2B 
ee9870391dacfc488a49a7d5dda172956c877a625e88eec407baaee1c14f28480e14ce915d8bfeb2c20ef9fc504c16a1857584a21b42a283e7a451a05a4128cc
 SHA512 
31173d6fedf6ac37cbfe20e0fcf3be370fe75e19c2c1c990f2a3d73080a94a33d51f659868412bc7eab0d7091dd82537a8a2bf16726d6979a865f3e139cff7dc
+DIST firefox-148.0.2-gn.xpi 477054 BLAKE2B 
0930f2080be657e09af8ed6d00815f8da4a2485ab2523e335c8922cb33b2be8e5f2762c773152a55249472d9ab823a8364d782f17e3e72935334ae9b3102cc70
 SHA512 
14abce543732fc8a677efefb60afc6642c2b8006b8b16070b1f14ca35f112b583723a5e4721a6e78f3060f47abb8a67ffb16f94f6200ac3451d54130debb04f8
+DIST firefox-148.0.2-gu-IN.xpi 359513 BLAKE2B 
45f999b4b9e8e8c7322230c0122347674365570516a2b4fb2f417aecd531e5b854faec5c88e4604a582a9b978754dfaee346d46512a4edecf2018c579fa0510f
 SHA512 
b20c05f2ff01f90c2d075298e0e15a92936987dd926757d303367d2f29ff920f0470b88de5a694366e165b896fb4de8a34ac313bc752b48992d38df6a0b17641
+DIST firefox-148.0.2-he.xpi 472542 BLAKE2B 
8afef40e76eee07b8f0ab84d3758237efde209f18dec92f9bf4087809861bc312f64dcd68907cca65611d66b1cd38af8eb26e9468b349191f7ee2cf2953a7d25
 SHA512 
c954f05150a545e8050e07d7d185995cb49715fba28048b3e29b01079ff16b20fadf810aaba8bb767c6c551affc5613f203facbc8e7063e69fe39b3797524b97
+DIST firefox-148.0.2-hi-IN.xpi 378186 BLAKE2B 
a1f32610bebbef18ca6b871ae397ddcbda83d494306cf92aa4eac474024fd51b5652a1f4db6d8aa23eebdbe279264b887468f76968ec410336a75dabfd9de4e0
 SHA512 
053103e0f402bf229337cdfad9f95ab97f52872b34cdad402659b2f965c95f74c8d8324a417032b88b4260062a13baf5b0bb44d9b1c1aecb4df6edf5097d147d
+DIST firefox-148.0.2-hr.xpi 464669 BLAKE2B 
436689246bec27ab3133437e6ca2336a61d0697ac7d448493a8226bee827a2c880ae418bc2df6fb42ea210181686f43d317e1b4b979306c9fa5574041bbc57eb
 SHA512 
d487d519e88c18316e88f7f76e230a607d0a527d4f45e8ed734fb65b56c6eaddbb957fa9992acb28b754e1bcded34cf61d00ac25870ecdd33cff8857d0ddfd1f
+DIST firefox-148.0.2-hsb.xpi 491218 BLAKE2B 
d427ab58b87a3893a559c1c229496438d11997aee98ac5c6a5853c2b5976ecf9de00cb2da8a3686f5ded4b37300b428f02c59bed16083c6786435daf9bbb03d6
 SHA512 
2d32a0032a08a7b995f9071e33380ddfb519bb40cbaf31df0ecc115c88ba3d9931d8452b9fedfb1e889eb9e5f3f1d7299b7f9ea2105f88319a764247dcff8a7a
+DIST firefox-148.0.2-hu.xpi 495078 BLAKE2B 
9237efab32dae105b938f3ae594192e4e2bb680fb089ccf79161cd274d87121511c9a51b8cffd279bc924f24bee4bde33199d2ed7c39b778ade890b9ef9bceb1
 SHA512 
4950bf15941b2eea30d2fb77c16adfd0b33ebbad33fb415b9fae2c06465c15f35204f9ace52f347ada957dc74db82012e75a92443d30e8bfc23e8886d7ac74b4
+DIST firefox-148.0.2-hy-AM.xpi 478232 BLAKE2B 
63e0bc8286b0fb148d1b6912c7df111d83c9150d803c55917054013d092fcf2a296a289249ee08e8132aa38396bd4486fef662fdd5c1e3c5aa35646bff888c58
 SHA512 
7391684d815fafb125aa1488c7209dbace052115f90347f1d4098a3295caecb87ce5deebd1ed0dcd37ee382dc7e3e345156f293de4e058e611c8fd9f5c9dffcb
+DIST firefox-148.0.2-ia.xpi 456256 BLAKE2B 
6021cc40d41484b163d94457f7288b43787ff2d64fcd2ac9dcacf8aa0165f64206e456a5f51cd3ec7c096907906882e17f33a54e334060684c040d309a51cf9f
 SHA512 
4d13a46ce3cb6ae054dcce55667456fd05327458a496e7abab7ba90316305957cd25052f637860d1f0cd394b19a86340b4f5eaf77dee8bed59406cdc653e73b6
+DIST firefox-148.0.2-id.xpi 433587 BLAKE2B 
2cb8e86d0f9210c708e2b9df0b94db96590cf02b585114ec6ca5dfe48b56365065d8fda8b15b86d5a096db60a6db4238cd5d7889a63bc1748fe4cd25ab2ef073
 SHA512 
d5407ce44a7970efb6b35d86a01fcd0fdb8c632f0d19459669de0554896eaded2df8b97647e299e7b52a2f1780256c287ab7dbc82a049dd9e3709f6dbf5b91f3
+DIST firefox-148.0.2-is.xpi 440946 BLAKE2B 
9ae8ed6f0322c86a4db132ae0ea57d7f3767aa14fd84dbc02eeb045b9bda56e831e6390b4a4e46c4a037f121dc6062540182abf323612454ab5b448029c51844
 SHA512 
e4ab165555db6ebafa114ad52752d9e5378c0e49955a757fcae2d3e14f1c639de4b6d2fe61f540cdf49f65d86fee2b94c13f1087270f93dda0fcfd3b880e7eee
+DIST firefox-148.0.2-it.xpi 467655 BLAKE2B 
b79faa9ff297a1399d866c49faa88b8ebca38778872c7a9bec9521f94d561bda2fe902c3b1fbc485bd5ffbcad2d861285d94bd0ced916951c70c11003defd608
 SHA512 
b3d12781ace29543fd263dcb87f8498732385c64722a211b35375523ee9744a5a6462e1375fa1c3eca501ff6c38d7378498cb3f218885ebceefd59232c48a2bf
+DIST firefox-148.0.2-ja.xpi 509947 BLAKE2B 
3f320fcbcec1f6a7a4d06ea6ae72752d5683a2f15576b45d9421d5669563f7820d60911232178e4c478a9f0897e4b308d42e87f1c9cc1e3136e0ab457e1f9318
 SHA512 
5615e5bbf87b757766d567ebfe49eeae15077b10d1ae94f418069d54b36df12be9dfb68d02926e462f13778975c854eac80eab9090f54113d65fd82bf6be6ee1
+DIST firefox-148.0.2-ka.xpi 525720 BLAKE2B 
25d3f53a25a963e90e9f26c819bca945d454d595ffe33c34b247531bb57104e79b2eb07b254ce8ee7ca6e1007d7dc5cac2aaeaab1639b17816ba560add6fb3c7
 SHA512 
afdb9f8548cf0a876dca0bcfe9df7cff318263cfc63f89ee83a8daaf186627444e7b64048d739f8abebe10e5ac57e2847a85077bf4b121dd997bee57e7a67ce7
+DIST firefox-148.0.2-kab.xpi 427090 BLAKE2B 
0354e00d08f2454fb5a8846bbbb17db8ffa5f995b872f6ddb924b4c9b694adae3020ad89517c73e2666d8ad57e18db4ae6bc6798ae263acae006c88936795d90
 SHA512 
a0f535b4eee871b3a0f6326e8cccf371588202cbc7e0f7fd455c0c0f1663bdd58fd345fd4d187435c6b123750195a1871ddaeb16a7f598193ceb886c30177b10
+DIST firefox-148.0.2-kk.xpi 545966 BLAKE2B 
6d360909e91a00b7043d569c91f7cd2568b547da939844551878277352ba47e1cb4d3dcfc0f9d7fcac29473a6600e5bbdbe3599203ec7923e2bdfd20f3eb605a
 SHA512 
1d5b9c6d8e5e12ba7554e52efe7802497dd95f2fe636dee86e538de0226b3d9da5f61ec823187949634c7b00d65b83ddc1255b1b7cef02c67e087de034e77e9b
+DIST firefox-148.0.2-km.xpi 375074 BLAKE2B 
a6d5bfb0c536261b5fb6233b9cde20cebcaa390b9324b4028fa19883c829f0b60e448f59ab7c2d1eaf8d3da4f33ae838b06e67f76ed5f4cbc83d5cd2f13b3db5
 SHA512 
519dcfd3906ff1dd7f49ed7a3a2ef606f5f892c8a7134ec7bfdc79ddb5958348423cdbe82b06721437e243181486cba3c2eeecc9fb3e0f5318347602b1f2e0ae
+DIST firefox-148.0.2-kn.xpi 333440 BLAKE2B 
aa7275ee2a759fd421f06a1c864c6eac182f5f9d8c08e4002e814549fe3cdb82a9aed7b75bd3e7ff44d4b015bf3e53921a614c17ff1880740c20a030ea17c2c8
 SHA512 
a75e9281eea07fc213fc592b343b3e90b657c999aaed085205946352d156af6ce7f7884facae79cc51d156c2ee38cc6631c59ab85122d4c97dfb130b34e7c3df
+DIST firefox-148.0.2-ko.xpi 495128 BLAKE2B 
ccc725a882ce0257aae3aaac298c2f18290effd60d4594c507b6c5780539db21a46d90a64fb66010d650879062c8f59fe26541f27df03d975e3170c06726e152
 SHA512 
2895b5d58c17e8f705b513b33a5c5642d4c967688f76a26d682f0c53e88e169addb3f9c33fdc1c9add4802d2a89a253ffe943b1e7b2eba1458d3261c4006f011
+DIST firefox-148.0.2-lij.xpi 320438 BLAKE2B 
61b0d50f852c9bc46680543315f4cd12fce995b7ebd67f18a480c2846b948a8c1c5a82cbe4b6ff43a8b2826eea5a40c90ef1a0a2682e61c2f042bb467d093e18
 SHA512 
79e59718f5dc31289a2237cbc7936d7a20cc7b7d464c31ac68574f06628f7ad863043bac00304d5b586a312715dda41f67ff64d28ce8a1311b864e034a4dfefe
+DIST firefox-148.0.2-lt.xpi 380264 BLAKE2B 
020daa5a36a69c8fd17b353eda690ee8bc0523fcb4d829752c02b69ce046407ca2c8c2d160585f4115bd48f9251f87b3411ed7117f2bbef0b96b584e4b51e09f
 SHA512 
efef2a6fa9b06b070f77c62c0d39e1c753b6b91aeafa77190ce24fbad0889a919fa2f5486bd09c88fc32fa1bf46adeeaaa10eb130e0f4cd468d66f3a539953d6
+DIST firefox-148.0.2-lv.xpi 391014 BLAKE2B 
0513e6f17adc9db8fe4c1cca81fb9e86ae7d84bae2f0356d8cefa97df35af99a66d93d07b81f8fdf0d3324b733c728d548b1a04c9dd7ce1d2daa0f22f28d8c43
 SHA512 
438d0d7eea0d747f913f3a63e53927103b9bfd2bbe35829495cac0ee8a3a9ebf7c9a1a4a79dd1141deb6ac5deaa31cc3b667dab811a9ae09632210e359f89f21
+DIST firefox-148.0.2-mk.xpi 321846 BLAKE2B 
86564756f7ca57634d6086411a1bcb71b2acc91d9af4b6b8100996760c5ba475201b91618f5684ea565d1ee3cc91648121566cf0a7ebab727e6bd5744543bc09
 SHA512 
d62b5f1bcc064ecb1dc2e3403bd2139181fbc874168989313cbc1bc4f811459f13819a4d08c0347bfd6a997a3a7d0d50b6180aad11d1f61b0a91f06bd3a9196a
+DIST firefox-148.0.2-mr.xpi 357366 BLAKE2B 
a17dbe706a7c803695ba64d1696fb0cc8da1f43632fc63281f99ac3f3bf0494207d9897a5f35bdf396473e0b1f301cd3b6f1368536b09006e990278f126affdf
 SHA512 
0eb09ebebe07d8812995f9fd664c028d93db9ac959237b2a998d831c8eced2adcb6a9a01253a6757f51acd40ebac1d8373905b4faed3bfc9fca02214256a9253
+DIST firefox-148.0.2-ms.xpi 296995 BLAKE2B 
86b38872879159cd9bd753a54731bbc29871c32b67ec23bc833b6fb1eff8df78677dfbc93ef50b55faa8a4ee57e6ba8aa4bcd5e1a01d99f69fad3249e8a6ea66
 SHA512 
f6788c9ae5545aa1aef593a6f1c0344acdbfca9cc8592eb958f876ea2b4e9241ab2f2dc3c7b037ea1dea61566d9d5fd77b1340298bb5ad01268b5a298295cb28
+DIST firefox-148.0.2-my.xpi 344242 BLAKE2B 
6df9c7f6d77e61a7d7fb632e58aa1ae9b6145a43dcc2b376525e3becbb951ceb88b4883a6472f6f6c398cf26069a99aa8f06db5c4782a7804168e43697b6b731
 SHA512 
ead42cc3acdaac3365eeb7f9b784dc045e0f055ab31054592cc9dec61fa82ee532d707dea2a8cb9a932b916f939f5e5fcd226291ac056cfc5d29c11ea1036f85
+DIST firefox-148.0.2-nb-NO.xpi 455468 BLAKE2B 
008f72c0cdeac1e5b5f45036c1ab89f832e040b417730a4084b6ef676fec19f258f59f589de67b99e5a43e2aa5ada1b8074855c1f3fd5eaa1931089c8f92a017
 SHA512 
b82f056e1dac3f54645a5372341045f69f98fd89499a33ba9dbb7308981555450bfa936e36333f4a80fff34f7bab556eea0d866b02ff4a849815cea19e37a153
+DIST firefox-148.0.2-ne-NP.xpi 349440 BLAKE2B 
70ba3ca72e281fbf5dfae05c9af08dde5221160220ff6db8435132a7adfa84ed7af59c514c504f28a34b0e0fb1f24c8810c517832ff0d6e993bff953d4e992e0
 SHA512 
ea46be4935374e1afe86bf88bcfd6e34d805e0919b3affaf3ee462c01669a07a41be59caa9ef7ec23708200d86906cb0742e71e9b821a90b488d91ec6b3475cf
+DIST firefox-148.0.2-nl.xpi 462744 BLAKE2B 
35f1cc04489c42485d9f1bf7ee88db27e0929bb99250c6342c591736f7e71776d2de2bcc23cbabdf5d9766b5b84096e7e48de14457f660f2cabb90ec8b8c03da
 SHA512 
a2ff4dc70e81bd3dabdf2bd7eaeaf8e13390157e1f0e81fdbcd6e5c95f756b8a875862e596955330b394e252b676a4a6c97c7672773618330321e40cdf4ebfac
+DIST firefox-148.0.2-nn-NO.xpi 458656 BLAKE2B 
b70d6eb5d70e362304aa1d257944fd9862eeeed5d72b81ad23fa6d4e4d93127ecb85adc2d9ac76df83f0a655284fb571d79b9d839b7d3a8d32334348dc80ce1f
 SHA512 
724ffa20081918c9c20e9d9d153c5f059dff8fa51dbdecada6a7bf548081462f404233060ca367d5a678c90a6b709132f979b53bc0858ee9a7ba2dbca1993e71
+DIST firefox-148.0.2-oc.xpi 411013 BLAKE2B 
efab3d8c6e0608255f05e56d55030295bf2bc1567e6ffc47674fe1c3ac5494a401ec0b9466b2aa3cc728b89b049723213252dc16300dfeb7a965e5fc22f48223
 SHA512 
01ef3dc7e2e1228ae72efdf51ff1b14a670464af5ff0d45e7f3a00c5dc492dbfa763f51792f07a19e363bc7552be16a1ebbaf7b515a837778ea5f1a306d6578d
+DIST firefox-148.0.2-pa-IN.xpi 525704 BLAKE2B 
22046b2fbb9416f5cac2770488ff0bcccab0cace0dc2f502fe254b1d51cb767b6aeedf8c4f47008af2b3c414e0aee023dfded7e210dcfc7c6a73ac37b7165c38
 SHA512 
a1304972658e2d6d28e869a4a7c1ae74a5c4f859b5972a0f0c469f26ff913076dad355ce428b050b579ad814f07bb172762d1ce38ba6aaa7d54c8862501a7880
+DIST firefox-148.0.2-pl.xpi 492276 BLAKE2B 
c119c5d534d40339e68b4c0759babf56f377af30ef5c2c9d0e488248d70c6304cea7262c210a2620589fc5d2e6bb7a60279a2599bb86d1712d680c78190f89f0
 SHA512 
07e85572665e00bda0033cb2f572b7ec8b26e22a5d7d287ad1931f58419e3c23082af97957f2f9b6238544707c0f1174255221cd25647a47f6d0b5c40a2a4bee
+DIST firefox-148.0.2-pt-BR.xpi 467253 BLAKE2B 
30078bf76f702400d68ab6412fa0ec83e4ff1dc0a12964161858206da3b07da943b0e8950d371d4e12816cfe8a2c9094184de7392f119a6a6864f36075c4823c
 SHA512 
4cedd561b6372bb0fd066b00290def710a5e12b9f8300ff71b7cdafeccda5bd6f3db74087e8021d4672b7766bec4db47d5e7725f94487e63ac689235748966c3
+DIST firefox-148.0.2-pt-PT.xpi 459991 BLAKE2B 
7bae1473e5e9691de0ee0be128a318618124ec0b037c378a94a55b242eda2f04e6e94fba9d0b4d8405d986d675bdd839a6e372d7abc0e30dac136a81a1cd7d94
 SHA512 
872de3ce82d1fb621ab1a7e359c13253f7facea27a5635938feaf8f77fbc4cb0c80394940f5b8f849d14085484c5c83721418eccb421e1e985c516a3ad823ddb
+DIST firefox-148.0.2-rm.xpi 456091 BLAKE2B 
0ab2aaf71d5b31fd58c751f808f24ee73c5d6e10424241f20ff8899c222051170fec37e96ff98b8742058db65b21af660c686b896c5d25fc980c880203aaf927
 SHA512 
282e388338c7f2a3ba5eeb91151ad05877124a7f04c3da0705381afc71574872642f37e272d8e6fae1dee9355a29b460ff93fcf5943a47b7d4a97028ddc93b7b
+DIST firefox-148.0.2-ro.xpi 480192 BLAKE2B 
95e6df2fd330884cb0abc216a359fdc245a8c43e9ca2273b908c5c3e672331c9b3026feafc5f84755557830792d89c63740dd271d861f9efe111675a99e1ee74
 SHA512 
7e551db746840ed94e0d4282ff1a24dc1392f33022ffc470a27529d1e4f528481148777b69a4923c477fadb84699b34767e5d2ae61a1a4fadecf54ebaa8f3a6f
+DIST firefox-148.0.2-ru.xpi 558032 BLAKE2B 
926c08f6d6bedff5a053ffa1f4ba3d49b66ade45992f661d2de3556b80cf31d4b6a995e4016a5382ff3c4e28b3adcae9f1b50200eea401eef78c71b7653d8861
 SHA512 
ced57a162ce983e73bc583cd417df2ab98fbd8ff5acec2768dcc0cd07d44f7b512c2b7a0b782536a13275ef980ae2d80e9a56881ca950b947d7d3036f152fb6a
+DIST firefox-148.0.2-sc.xpi 423850 BLAKE2B 
906d55e0844acee3ac66e7c961eed619689a4e952bcd9a4cc627182da465674b7887be315968312687ab9d533205cf004133e17063687f246976521c6167c18f
 SHA512 
2d95e6ed3d3fc1d500520595aa5e1e0d1ce58d0206bfd34fa1371127f1b31ea7d5d2379e6abce0918037223b3b2668ed7cacf096299274973415332922448063
+DIST firefox-148.0.2-sco.xpi 323370 BLAKE2B 
8d1cc3384917acc9823f71ff16f886833f6bdda4edfbc6d75d98202a18653de028cebf2d44429d160301da5b89fbfa2ad07c6b685261160ef078f00e1af03fd2
 SHA512 
5fc5d001d3f748c4777f001a83ababdbcc1b192f9bc9963f19b00e61c0b67caa940224fc8ff13e68e5629a6b7f50ea422e932aec254759196bf9e01fa5d0f45d
+DIST firefox-148.0.2-si.xpi 410071 BLAKE2B 
a2e0823126a421a81a93f6c975d25e870c9f4dd7e9eb67a83c1b6a426fba880ba2584e5301d48823f4a0b6dda89f089704b7062853dd05c8569818b33ba0f1f3
 SHA512 
0cfe3f19acebc126c6811dd45881bcc3154ead53b7c945009fa69ee21c6eea6e5d16a896880acde5b72dc5ee9578b8a5493535ad6d6d5d53e1d7e1680eb66e7c
+DIST firefox-148.0.2-sk.xpi 497914 BLAKE2B 
b6c22cd14bfc5cdb0c799d5758c30dd231bb329eb88b23aab901253ef0146fdd6bc85ae33a0c8b9f51e60266b1cb8f578b1f92f9ec8a39faa9523aa810ff92ed
 SHA512 
bc4f178e6b0c81498d2bdc3e1b830e459364b7fb9b16460b5d967313aab94a4575b036a13a44e4cb816e974b32c223903c7df7b576e228b8eb1ffda82a658a9f
+DIST firefox-148.0.2-skr.xpi 484421 BLAKE2B 
10ed797a6528960d43932e442b7e3e91b558080342c22f64c128f0d88bab95f8b94b4ae77c09ec9e973465531312dedca6b80fe0d9df7a6091714d44354fdada
 SHA512 
ea3a24be1e421582231de39b8a4c351d680222928e46d650f56a303e75be2b8ac16269902d7bd598999dd8ac61f44aebdabb413f502fdf135853847a19e488f4
+DIST firefox-148.0.2-sl.xpi 466312 BLAKE2B 
b6ef3d11243ab75d25432581fc0d3cb4c0a3355093807f6f0444911e658d4503eb125e063b01d995d71ecd0beb6cfbb1d1b7258294a236bd7133a1a52d39c3b1
 SHA512 
85a1b6c63f58a3f67160e7865c5798ab897d1ede8b09735e51391cf5a4a121f12045bb2d83ce158e2075234b623df1fa64bcb88f491cfad56ae99fe0519e78f0
+DIST firefox-148.0.2-son.xpi 275470 BLAKE2B 
5d94eae087c59e2add5818f18b23efb653349b8c3767886f9655c487b76d5c9770b3b26ae9b56b77d109cbee182844632ee59ed95832eeecc4b25151f3ed2221
 SHA512 
4b16b8d659b280edca92650a373f52391738fab3868fb32376e4c291c48faec658a86219acb04112cf0217c777d90626a4d48b2a016745b5ccbf67836fbb2d95
+DIST firefox-148.0.2-sq.xpi 481849 BLAKE2B 
9103a69acfd3147a8ed4b469b9983067db791b953687a6c9e82f46fbf2ef20bc9e15470187d05e0f69d7632e616cb12e0a29ee9306732fab4708737db7b612ab
 SHA512 
03f240aabe4a7eb2491ee36d7f4d46bb4d81d0dc6cc9455a72566d71bc71e45c6c26392d2ed3596189ae0f0b9b3a8fec0e5207200f79bbd257d496de9035b379
+DIST firefox-148.0.2-sr.xpi 452238 BLAKE2B 
55f1335d88b1980b6eee0c5e8a917fee43b2b588f52b5884feb5d3b950a68e759150c6a44f436224408c95451abe2bcf524e94f58ae960788c653fec8076ca8a
 SHA512 
238feb7eafed8853e375c93b3b0a8ee0adf55b736adceae1a6d9cd5319913f1d5a957e3978a4cc7d9dc0c69ee2e143c6a104a58bf83f4ff15fc70de953c0053d
+DIST firefox-148.0.2-sv-SE.xpi 462495 BLAKE2B 
7b4bef503458b475c3029649a0998d4a528bbf326fa001257fdacd47c45855d7e17f73e26795313bbe8317c2a0415dfd1e601b05b4c6d52407de408dda16e728
 SHA512 
6dabbd8343450c3a6a2eb1490e1a027a581d27dd433b4bb9832080ea4af1cb969969769a8c7f3fd820bec395da0b71b16b76d3beea30a1bb614b1e0f95c5001e
+DIST firefox-148.0.2-szl.xpi 341915 BLAKE2B 
2a8821a530c663030a9af2cfc0d882d14f67d74cf9cfb101133d4e7c42e1cf0049133818a20a451b8081701a7877909685c7913449698091aa6702c027c24b58
 SHA512 
3dcaa48405bb41dfe9769c55ca3037a603a8bf32ed5bcadcbcd8e68db33af87de0ad5ca4ec24a6b7afc1698b22d620e887d7df50721922f922de5e6f6a854deb
+DIST firefox-148.0.2-ta.xpi 339342 BLAKE2B 
7ee947a1dfd208c25456ae829acd0aca33a2fe705b4c4d0a59172d34e91d734ecfb2845b88f06948629888a92e96b8325c95f80a6b36343b6b8b1abd2365bfd6
 SHA512 
b82f5261b20b8c16dbe8d3783f36d96499a3686994527041230665749b6a9a205b0482955026fdb33cb90302c1b02d1071f2fd41141f0988f8bef5d15e071d6c
+DIST firefox-148.0.2-te.xpi 382399 BLAKE2B 
272ab6e9e8b078350cd90a61cf6ba21c2a1ed3557e3a82c3cf77981d962111ef2fb22270b815b93988ae4ad25d33d5a3d64ba764cbf8753f93d50c962569a101
 SHA512 
3b804bc16317ab35a7cd0c391841df650b989fd0feab045b30ece7c7fc4a8b14d73f91c2e55e350cab0e89ad52b524d6ff1d3f93b45991838bf2c72e0fd4090f
+DIST firefox-148.0.2-th.xpi 536211 BLAKE2B 
8843a224ec00b5a53b35381b5df769b9c2cfd37d412d03201f3cbd870370af187843967ea818f58bbf989c06fdc6b1f945eda117c49073f2fd29bbe6cb45e0ef
 SHA512 
7a6928ba517a1a9ce0c9c18d4d220477b8199862d6b4b97ca09cb3c02b8587729964a1dca4edd5a2d0e87f66295af31a1cebf1ee03ac95782ad0caaef04a08c3
+DIST firefox-148.0.2-tl.xpi 356583 BLAKE2B 
99892a6b0614cded4acaf723e206ccabdd9dabb4532afa288900b957f99c979344229c66dd49a27a1743254ca7138357a94cc03ab1f6c6bc2c0dee3db6220ae7
 SHA512 
ee5a3e00bf4fcf4997564d89bc5535f2e0700a696f906b4813e50c8adf79f63ab08dec536372ee814860b8598f5ef488a78ea39f65ab62b112d7157ae6612121
+DIST firefox-148.0.2-tr.xpi 476494 BLAKE2B 
a79874dd841b65f7331317ba5d01ef82518f761bcca28bf47a151874d09dafde18a5a7e7e4d755d0a5549333b3ef6aabcd2743111bf164cfa26a67bcf429ec08
 SHA512 
38c35382184004b494744bbde6e74d8a38ccd26f98582374c5c4be6a527388515905bd56b6e2104771332d33a8aaaf1222ee16fc000413ffa697b2161aa597cd
+DIST firefox-148.0.2-trs.xpi 325283 BLAKE2B 
7ead88a19cfb46427af901b116d16048ede0fbd7946c7a11ef1020090a8a8d0f72afa184fbe333fad30860c32243c91a932236aba858b3fcf898ff7fa08086b0
 SHA512 
f0e47cf8b781f1610b2d333b2a9e40f1db07b9104f15fcfc9e9257e79e04f30dbdafbfa7d239412b270a4f23b55b94a1848c35e326e859fe6391001f899f4e52
+DIST firefox-148.0.2-uk.xpi 541805 BLAKE2B 
4b1184f194d778f1dcfef6f2433028d2a403192a55e9626fe9c53b1dbd1fd2f6d35d165b0c2e683d8433c5fc8bd267724cfd3cca4d621607594139d2020d1594
 SHA512 
3a7cf773cf2c77ffdee9f180ebaccf40280192661e2ba8010db56455d24c5131dd360381bbfd0932d16b2f12de11504db6866148d3ab3a9e7fca884774ff6524
+DIST firefox-148.0.2-ur.xpi 371237 BLAKE2B 
3345513a0792bc19bb68d10023aea0d339c79a5776be690dc04b8a5945f1d499d629132205dd60b66986a0a8e7f0853ef15d079f03d2fe318b77b84b07f583fe
 SHA512 
b0f9d8ff13635187881e4c6afe66c465077399924afcae1e1808eb5a58d14835192956dd8e2de93df9476078c393b8060ce9cd92882c08b26b6a91bd4086b395
+DIST firefox-148.0.2-uz.xpi 304642 BLAKE2B 
5739344fc0450071ff133db49e4eb95e1a1ff3875032a87b2fa0683e982802d5725e21ec98669932f9f4855bd4c5facb1fdf77f89a61658750bcff99cb9fddcf
 SHA512 
a6712f8de0081bf2ce33187b688d302c3ce79fdc39d6b7741e49671c28c452b64134f43de74b012de911ebcd3625061d301152a8cc14c4d2486489a37c390dd0
+DIST firefox-148.0.2-vi.xpi 497034 BLAKE2B 
1d53e3c33bed28adbafa56223a2748adb112f14302551af0cabd33a99a2c458baca136fa8c2d7cb7658e709fdf196d2a25bdf75255571fb5763c7805bde25944
 SHA512 
c1f0e804f20eb67a7b8b0e9042d29c6c67282191f2e55bd970a864e415c725a573c0f7281225f693eaa0a26f4c38735e39f21f9fe9cad28f13c4c3a165e9dde5
+DIST firefox-148.0.2-xh.xpi 275031 BLAKE2B 
0fb76c3491b8b7e5652b75c6ae025a8632af51e2d4298f76974c1409492744be4466eb065d7af76b434426eeee40ff51987a74de93e0025f3521182df57d6218
 SHA512 
d871c8d50f2d4dbed7498b2648171f01e9be77a565f97c8672518c6c43d286e49af260d59ff21ea4b40a5b15154fc7441af8e98b077538141a57f525ff1ced91
+DIST firefox-148.0.2-zh-CN.xpi 487755 BLAKE2B 
78e9fbf06372509fc404a70db7397173ddc984b5c8a37ff6360a7bf56ace94620abefcb8b12738bac85acbddcc6d1d3f446c31ee78d77b98d7f15023ddfce73a
 SHA512 
920b750542ffce794a216e5cf5263b601c2f15722e712b09905ae57049f3192d7bfbebb5fcc6ebd2d903ad1c13b75fdf4da141c3d21702077cd9c0561c7e8773
+DIST firefox-148.0.2-zh-TW.xpi 491355 BLAKE2B 
3742fb4098c74461c94485970cfa7f8c9a8cfe61227332fa3e9a47bc00b92facc0f236da43fa593ab06284e14738c8dc30f07a86916b953c676d3d5fa74bdac1
 SHA512 
0837b801742d3b671ba91ff402b06e213224b6f829f1cb6ba5971aa7c2adaa5408a75346f452870cd28475d8a9466a7ca2525301691ed8a5b471d520821aa1d5
+DIST firefox-148.0.2.source.tar.xz 664519028 BLAKE2B 
ba2036baf01584d37b25944a50b497d18e238334ec866846c676b518fbb66ede35404a7db73da7b54862c876fa262d679b4e1099368b7d905afbd1f499036084
 SHA512 
56a93ae5235f38704f2f56b6246daddadd3bcef1db797cca10202fb919ba2f0e1459defaaa41cf188f269108efaef1b76ccbfae33d50ecbd52765176b4320bef
 DIST firefox-148.0.source.tar.xz 660022936 BLAKE2B 
642dba7a20578a346e2b87286b8c8d2cd1fb674c116d8ada0697ad33ebcd009d4f74b81ae8ee142ce3b767628e69ad3099106afbfce7b055cf9f9aa2bbae9807
 SHA512 
b0e862091f3a07a02890f6414e77b433893364a8beaf522d440e97ed0060c9b14bdb2fffdecdf12dca849efce8c57d95a534b23e04259d83a96ee8f29e078349
 DIST wasi-sdk-28.0-arm64-linux.tar.gz 121761064 BLAKE2B 
044a93cf1790dd652a86927bd74cf2a8b081a8db1261c2879d7fa72d5efde6a1ef65be63ff94c94d1e39d179ab829eded95121e2f6fd6c8f83374690763d532a
 SHA512 
5ed16fdcdfa573630a75986cddde5ddc6a7e010ad9ad20cfa939becb78c1cbb0740fd1a53064e3d358b929b7b9ef6264612644293a1840c54a3e1868b4c15d7b
 DIST wasi-sdk-28.0-x86_64-linux.tar.gz 121193888 BLAKE2B 
eaefdd7f0432b3a2432e09fce659282e1e1a515a0b31f63cc2d48953e180229fe494deff2e1019f60ab38179f7f93e6dd13d4763355b706e5f447efac1e5f08c
 SHA512 
805412c73b4b2d3c9df9af25b95dd2ed7625dd1b4424bbf07286caf24fc87e54aee1fbb4fbe3904f180a7cca9decf00177915860ca216e87421d8c91a0693875

diff --git a/www-client/firefox/firefox-148.0.2.ebuild 
b/www-client/firefox/firefox-148.0.2.ebuild
new file mode 100644
index 000000000000..5b5cde5ad316
--- /dev/null
+++ b/www-client/firefox/firefox-148.0.2.ebuild
@@ -0,0 +1,1466 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-148-patches-02.tar.xz"
+
+LLVM_COMPAT=( 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.87.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=30.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/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.120.1
+       >=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-78.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
+               rm -v 
"${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.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
+       # glslopt: bgo#969412
+       moz_clear_vendor_checksums glslopt
+
+       # 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