commit:     63916526ce65d1504eec2c099ae337f070d657f9
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 23 20:25:32 2026 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Feb 23 20:28:24 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63916526

www-client/firefox: add 148.0

- bump nss requirement to 3.120.1,
- since minimum rust requirement is 1.87.0, llvm-19 support must also be
  dropped,
- test phase fails - there seems to be a patch for it available, but didn't
  test / didn't ship it for this version.

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

 www-client/firefox/Manifest             |  101 +++
 www-client/firefox/firefox-148.0.ebuild | 1466 +++++++++++++++++++++++++++++++
 2 files changed, 1567 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index a5480c8c35a8..f6fc575ab138 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -1015,6 +1015,107 @@ 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.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
+DIST firefox-148.0-ar.xpi 448766 BLAKE2B 
d9f6a0fc837ae29d428d7264a2c531e120cd21d77a12c7d4dec86dbc7f49cc2163724462ac41f7a55812b12e6ded1be6ad18d4409f709dcf15e82abc62ac6b80
 SHA512 
9e2c9262b05ccc930c8bf0687d713bb2ae980b73c29bbcb93373f78bc524dc1f4ecf24519c5be941101b7ae7aaa343cbe2f5a5f660b172f3a8e12d414678adf8
+DIST firefox-148.0-ast.xpi 313326 BLAKE2B 
dc715551e4ea19ed7412ca102d7dd025ecfa4f5a3608a50030bccff781b47db98bd38b031ab1460722bed5bbd945bed7bd78814b6a4240cfaa7f185e7aa6b493
 SHA512 
aa400f04f2227d4424cdf8558b5046505f3f7e5b01635ed2fd2428596633eb24c17e00f4d4e282097c8f6bcccf45e920ff3e35fd6eb88572a1548be8e683ff8f
+DIST firefox-148.0-az.xpi 319563 BLAKE2B 
a88b44d792d133e69253381cea0fcb92a65736a066e1eb60e0d1a3869b354d27c8581ddfc0480d9cdddfee368210bcb78abe25c1a7961aad4953865ca6d292cf
 SHA512 
94dd8515a86bd486ba1fa44fb10d454534b934762e8d197aa094b3e7f9633cd5b5e13dd8fc3450d6cbf0a996db12fb07a457a46083150c037adb17d59a6fa8a5
+DIST firefox-148.0-be.xpi 554151 BLAKE2B 
8359f06524f94779821c64e53d7e3a3855ce2526265e676b2d8838aa082a93010a0ce732836a6a44f5c66cb7f8f32b1c326c50c0e11b418261ed1c9d013d0649
 SHA512 
1710d23e43ea0ec71a429691bf77a5654b5f63ced8599f9a52ec836c2e06d37d9deddb7491da23f59d6ba68b68b60e3cee459cd6279ddf7c13da65f4cc0309ce
+DIST firefox-148.0-bg.xpi 463495 BLAKE2B 
2c536661a5cf0ebb2ee8f524007edbde59b040054c0b25793a95164196aa6f9cfe35cb70fb424a46b9dfc239455120adcd4af68e47eb240560cf10b896c18a1e
 SHA512 
c64d161e28460a46bfd416a43d1e5f9633f5c3aacfee7f1dd845dfb3ff14ea6c25bcdb53c379d2671b5d9c5c06e915e2807820e8d317ada4f931c680bc106ae7
+DIST firefox-148.0-bn.xpi 413629 BLAKE2B 
46f538d6d7a838c9f7c49d8c254426da16b5df7fd20663410d17cdd7a9a512dd063c8378d5c48a5a30eade882f76b9b429d3ad66fefbf9cbb18c842e5eccf744
 SHA512 
49c366bb10b18c60be43b9f1b84225c54f4edf9a7354a502f0cd42b004d2d4a58a4713885d145ecd4983497c63bcf8bb7d8f886b1288cf7fe724fc34ea3827ac
+DIST firefox-148.0-br.xpi 395051 BLAKE2B 
46200dbb52b429e377e3593d8f6d0608478d8aa6b6d99ceb4ad6e8853075890edc4d1005029a0bee613c199c754b1d3c12ee7ae5fbb41a9558bbe267f3ef9052
 SHA512 
7064163917882b4f7b11a575c289673757af1fba6fb2517f5c2c29109a8c01fdd92a6ae5cfe6f362dff78ecfdd4827bb8e5e61aadb8851e486949bd40ceba383
+DIST firefox-148.0-bs.xpi 450844 BLAKE2B 
e1309f6797c186176416fa39a0efdb7140590bc73d45f40366294090ce5d65c4e0f20caa7eff072eb7a76336905e9b294d4574ab97f5bcab58c6f6f5819aff8b
 SHA512 
c3de6d647d2091ae308e237fe32092af04c1aa7cba8b51cd817fd69d12301356e60fe802060394321ed44e2c83a54b8163dfab267f91a57f0df7842d4a5161b4
+DIST firefox-148.0-ca-valencia.xpi 358643 BLAKE2B 
8d018d5f0e5053e8b318671f064db397b3b65e24fa4a5a9014f270ecc689c43656cc10d0588eae4591009807b541f3d6022586c0075a269579484ea3182c532c
 SHA512 
980913753470dbf274fee59d9cfbb9de25108eb3d3fbc35bdb37505d6a0b33bf3bfe2c5ac6fd096a68628604f0c3cd4fc6cea0eca120b24c0eeafce63c0829ba
+DIST firefox-148.0-ca.xpi 417517 BLAKE2B 
7e6654d37deb4b6ca525b68113c8a8bb780db4b22a044cdd7d8db3ed233d330281df23866a6962d698a9942c66aebcf1423a388391e6a093c8c211448f3ab440
 SHA512 
f223401d1a565d5c31523a22b482f522a63229295197a5f7f4a089376da305cb5b63c9ee1b713b3f14e7f54e370b191196ec293eed507a3ce6c754eb807cc3ee
+DIST firefox-148.0-cak.xpi 390441 BLAKE2B 
c57a346152b5568f5b1f5c89a169446b6f26a636ecb69ab2597bf51b8f0de6f353ef2f378ee4307cebeba67c0cb564f7ac523fb0350289da55cd7eb00dc5fc1c
 SHA512 
7ec2798d3b70ead073e915b2801cd591cc97147176993b9657909e83719a6565776810f64d6e6fde6f9824a164b2de132d0400bb03262813eb0c44fcceb9352d
+DIST firefox-148.0-cs.xpi 506880 BLAKE2B 
4b1d6f1bb83314dbcfd89eec93af0f9c2297540b6beb6037a1e105512831b13b46b1fb39dfb384d74cf67444452ac8fb5804811ef6f5fcfeaab515fb65b7b92e
 SHA512 
834aff246d1608102761504171b1afe19ccbf975f396981b7108866170a01e45c9a7994ceba36e6d4f80eb8a5e834554131323075b94166149602ada91b4b3ca
+DIST firefox-148.0-cy.xpi 469568 BLAKE2B 
ce7aca133a30665398b449f2af2ee3cb3810de9a77ab57ff29f20d5eb903c8cfa41a347b0279c8903b3988bb56b82a35ed58ff27ab780a6d3155d9599de92084
 SHA512 
e9724ae49928a7a9149e7fa8c728fb0dc51d290f90220b2ca4d2ff4a0665cc9b94b38ee3be419450d9e1a6a56ab8393e0883a5a8a728edc4646037c00fe5117c
+DIST firefox-148.0-da.xpi 456961 BLAKE2B 
f94c6ee4263ed840428b95a86b5a55851440a5ef011f23c1307ab41999955c1f37095eede58d001cd7848e1b39833cd26c2f3a459093b9a39c71bd5d67078732
 SHA512 
434098b75a2ab1e652e5f5663f2d589dc6bfb6bee637fece655af0a8cc541f596bdaef3013df6726b465d44c7b82e2201ec09562133b93823f1f1541e617c610
+DIST firefox-148.0-de.xpi 480571 BLAKE2B 
c582bd14d00d0e5a7b3a4d5d55fe40bad7af917fc8db7520bbc20c8e1d00a0dbff3c03a3af96c05b53b84f437e053d94efb23efba94a06f77a9eb452debadea8
 SHA512 
3133f6b79952ba64137dbf6d1f51a22aa70bda9a5016412ecc57aef4cb32cb4282e07da8608126b0a551093cbd3295222ac53f146bae0c8564b65c77b86cbaa1
+DIST firefox-148.0-dsb.xpi 494572 BLAKE2B 
b257cce36947cbfa2b322ab33143fc597f7684026653492e5412384ff4f0884b914e910c51d2042366368703ea99e456f9ae3117e590a1ef7716dcb91c424ff4
 SHA512 
153e898e65c39cf95f0fa58f8bbe0e548aec42c97505209474063044e84dbd35d2fdb5aaa59e9203c1504df75e950be15b2d8c01a50c574ee7e97b8d0abf071a
+DIST firefox-148.0-el.xpi 568525 BLAKE2B 
c52dc2a589543f541320c51a33a03628f2bfe4c96be817d5b6c26fe64de6dc6a3d587a452ecb9e61fe29f90f73d3a7eac475583d5dc075a6a2e66dc34f058d9a
 SHA512 
b623b83de55ae39aafeefceddf9c80fdea879edd1312535348ac61775888de1a523dd76ce4d3fb11bc21f18e2519a9ba720f05b35b881341a273c23037486a1d
+DIST firefox-148.0-en-CA.xpi 435440 BLAKE2B 
99c06dd81d5f148a6778169829ac2eaadf684fa327bdc8d2d7b6afd34c30d6a972074b5fc584e3e118f0459ccaf7be813675d9832f9da06c406b2071ab65f3d9
 SHA512 
c353afa7cf98a164a3cf0023494c007ee040bf503bb3da66be9ec4c5373d2debd34cc88adb7dd13350b8bb5fcc5e6723696def1735e9378b7908e133cc0785d7
+DIST firefox-148.0-en-GB.xpi 435764 BLAKE2B 
2def9d508a7415a2dbf60c9d78fd75a982588aa75aa8fa641163856041b4d4376b9629bf03f66629cd7b5b6ae951d0c0ca12e5cb023f19be272a265a80a3214f
 SHA512 
840d84e3e7d914493b9e3734ed8782759aca8f0a805d884678bcc17692a297733d111eda414ae5bfe40c5447aaa7c1f53a72b32808e33dc6e72b94b385105e19
+DIST firefox-148.0-eo.xpi 459915 BLAKE2B 
8abb962f3e9b45d03d93ce1a3686d91fc7f5c8a673db7a0b79895fb1103fc14ce600bb26aef3d176143c204ecd93cf00482c7ba442d42aa11ecf5eabb7291275
 SHA512 
2e63633396f7f5a382e5d857271b781080b0caeb5c1e6c830873b04c4d47b5ee6ea27da6d8e33d608d853030b02b8ae074939d7526c39087eeb9c56eb4d2b3ca
+DIST firefox-148.0-es-AR.xpi 472236 BLAKE2B 
377ee1076196e35d1f3ba954f98f9d87e955baede9dbaa02afad625972d02a6580a230c0eaf8a2553d380d4962722d4caae39b214636fe4378d1e65d86ea856b
 SHA512 
bde9590a1b8dca1bd2c9f0ab15f1b6d4c404033333037e80a149868e8014a9b15270485b0d197359c2d69b81282e327fba93148f94c6689440885f7766a5bb5c
+DIST firefox-148.0-es-CL.xpi 473430 BLAKE2B 
87eb9328cd749eddc5b86fe5372e93c164b57370cded745d6c753ac20b73f02388d6b7907e519f83981bc20823181dca4179dd74377ea817e3beaf3847f40ac2
 SHA512 
b8d7dc76b3eecfa6481fe5e01c8f08eabfe69bd8529aac51242b0905024debeb05783a48ec77c9cdc81a9e6f427aac80256390189ae8a3b5efd75242abbb4a20
+DIST firefox-148.0-es-ES.xpi 474154 BLAKE2B 
90b788df3c8493c50a2e8d7fb3069ae7624317aa98e707278463b48c339399cb678acd04212e3ecabd26fb9bcb0a5845f3c13832806c126f012c86dcfdc06251
 SHA512 
524a7ce94da39e8290679c4886728ab1ae718e4b79871d4cda49274908f6480dcb68adab0176c1a21a28cba74611d5bed5020feaceaca5370429d18fee54acd3
+DIST firefox-148.0-es-MX.xpi 469999 BLAKE2B 
f96ab2cb6e82922817bded76d81d13a75c04ec6f93b738f7281e9c49399e241c6ebd7a890f013c7e16aa0faf10b22e10ed731d71a15a5c5889a83c340ee8a7b6
 SHA512 
bd86239bc9ff1c94420d94e60a860805f5262c50fcaea8e28f3b74d06a5a873bd601423f5b651dff23729c2a19c50baf2f8b16f735f57fdee17e9685a3ef5067
+DIST firefox-148.0-et.xpi 359569 BLAKE2B 
c410bbb89d4f604c47c3ac2282acbfbf6c01499b9e48aef32d019e505155203edb4356b4d08cf19e7c045d4485dddae079659927bfb47bb5bc461772671ebdb2
 SHA512 
fa941367f75adc7fe29fee4bf877b888e2a5ea5a6821853d336d97952ba25eb9358d9ce9b4d604e4b13a42b8a7ca55eaf872847420a562713cf2d2c409e53b0a
+DIST firefox-148.0-eu.xpi 459452 BLAKE2B 
5415cf0c4d79c54092fb9d8cb8ec1473aae7cf0c1d17adccca047b803de1c7da3f9ec056c322165064f1df1922d4f0c0a7f4badadce0abce8d114289b361092d
 SHA512 
03992b3cef687e7d1cc407061600b698d46dbb1d9efc5b8a1d7d2526e606fa1e5e2ffe864b47db2d19ae9f683ce87984e535252a5b3dab52ae0b0b829fd61d09
+DIST firefox-148.0-fa.xpi 421311 BLAKE2B 
b8fd81d4b4b8ad820b068058a973e8ad82c4e4ac23664129bb5da6efb102b766322a3eafb5264495d905861399c01146976ba5c5d7cc157e2bb9eb8edcb50f58
 SHA512 
fc8a0cd226bed13ab997babb3befc006ac357f588af4e93780a6de312115f817ec5b843bc54546822b04176b3c76af0eb7c930968a2bbcab7d8681ce7161714f
+DIST firefox-148.0-ff.xpi 311205 BLAKE2B 
cc7843394c7daed1bfabd143739d200697a0e159015e918ab84aafc753e89a0db76df2f0d8ac96fc7f2db1dc4b8a5da2cf5eec738369403b181c7f33cf8705ee
 SHA512 
5a986df5b3248e8a061e0b222c2b84ab54587053168712160e8762c36eb504636ee872c4da0dda9808b0d58f63c5d60286d5613f0f2c37d82792a91af5116362
+DIST firefox-148.0-fi.xpi 456952 BLAKE2B 
50f05a26636cc40c430bb070807803cd92278f6f1b0b122e366dbd84e767dd6bc715251f44a6522db2da515a77d7015fa533e395f984e7f9d9ba3f666b5228eb
 SHA512 
83cd9cbef2834c01b3bd0143ca31a9f71ecac03ce301188e8a6b9437c8393e021c2063484c3f27d4b80459bb00c25240ca05fd8a02a880613186e31439c1a162
+DIST firefox-148.0-fr.xpi 486521 BLAKE2B 
ce21cb9900ad53137b1a50b191c3b0256494eed309f86a7adb2177197f5247fdbf87ab95d69e7077a3ce66e830eb04173ffae2592fd11e54b4ea98b3695a76f1
 SHA512 
6d96943867150f5a259359cca17ad8cfc19976cc62e5cc3603af0417acf1b53839eefe4ca9658d792f3b5ef0341160fb0618e82b5c44f64bd08ba2320b46268b
+DIST firefox-148.0-fur.xpi 477559 BLAKE2B 
904060b877acaac646c8304d806219d484736b681127f04cfc6d58fae70c6ee43478bb1e0dd1758ebba74e83b30f836f0842a956c5d1856485137bdec9f41d70
 SHA512 
a2172466698773e74395a1d94a7406602f70888228a972a4cc4e6f43c54842305f568f581d795ad8959fb9eb4e8c6c04ce30da2c6c2a824853bfffe9340a8092
+DIST firefox-148.0-fy-NL.xpi 468852 BLAKE2B 
b802be5202c77c1061aa2dc5f66fa968f663cf823c59c20db5ec684c3ec507940b95c7e2123f33a55182130bf67d50fbc51bb557ebade0bfbbb46f0b6800b479
 SHA512 
e305bc9fc8d4b53eaa196cfa1048f97f5a2ef620e5c99dd92a7969e8c3d20b5351085dd04603502e33688cc08ab7629c65e9fd4c6c58d6b4f57678e94894eb69
+DIST firefox-148.0-ga-IE.xpi 316872 BLAKE2B 
80d48e86ddf95a39db7910ce15384977348659a7c12d1fd5da13a8df5dee540ba38411d586fd941654c5e66bf72f7e4f3b58c6436f2649090ae4d93fae8d16c5
 SHA512 
2f88b7a252f879a04bcfaf798931a4ee3eda4b5f6837e16c01d7bf929538f1fc11caceae98400469c2e5718359ef5c8b610fe833bee47f2a3de7fbd923d4a2c0
+DIST firefox-148.0-gd.xpi 401588 BLAKE2B 
8f26116dbcdeb9730c459ce3aa3afcf6cf02d9fca80d5fecabd057883a814d093e24611cc50a46cfe24dd99a053b4bf0c7cebb3dd5a9cfce2d728fc4c2a731bb
 SHA512 
f4b77920373f6453b63437993d147770d29525e59cac1995f9febe8274495fe461123613785648cdef9bd80f2cf6ff91e279f564f4e9dc304090ac9e2b367081
+DIST firefox-148.0-gl.xpi 447410 BLAKE2B 
d23a876b37ee31614d0696659872867810584b165a21de222a81c973a47448908d617621582816f0e31bba1d8475a41f595916dbb6281729b9323fc0858d65e9
 SHA512 
d6492feb35f125cc7399133b59167add87306f1f576cb6df3a8ecf61d7dcf835a06c63dce3f6ab19cd7128b44ff5e567bfbd14ec9ab70a3d2299200f4baff58d
+DIST firefox-148.0-gn.xpi 477055 BLAKE2B 
11d8abe9aa43a1f910ea660640932553e7ac9c645f6440a3f33ac105fb04799ee4ffe1d6487402321cb1c62c4ada0e80ac3afc0ab8e510d9fff375d668236a2b
 SHA512 
d2e7fc0ab3abd8b94cdbd231e5a45d9d7e2785ffbf4930784ecd084c22353d9fd908826c3300fd3c8359738e55fdb54a0bf5ead9c3e61007330294d0907727cf
+DIST firefox-148.0-gu-IN.xpi 359499 BLAKE2B 
cd8da068530dbf5e98165632fa27d7e62952f489997fda362bef2cfc558be4caa4c35dcc7268346335417d102b9751e124a7f762174842fcc73fb04b2877b69d
 SHA512 
041aa8d6970b37652afb4d8d6da5e6c288d1632c29c9df983f85afe2a43c23d5390ae5fc1236d6e4c988d55970cdda3827c9c44d4bcb469dfa1b8e06bdb02d59
+DIST firefox-148.0-he.xpi 472537 BLAKE2B 
52787af3cc423c8743e79ad905d3f4394b7f79dfb81c783ab89f4648fb2270cf17247b60c7ab63411005b08e8bb6600d858bef2f915c72f8a407c1e7dfe61c20
 SHA512 
6c4cbcb5de262bb0e73c7966cce7043f18dc0035f4200cd3f8ec828e0890aaad5ee71c16e4b1da6bb16b6e231140e026f0cb8a740ab311217081456bac875f07
+DIST firefox-148.0-hi-IN.xpi 378177 BLAKE2B 
b38817f8cde46f48d7e059e34037f4a2201919e2aa5dcbee47895af1a73f3920d02f5a2aa520bc5df43854d934365dc1f4a54ad35d88499a2fe539b460e70305
 SHA512 
a30e06118c2b75c7b7ca90402f88e30c21147a3c47892da075d005b168668923f7ef61ecce23dc7262d4a4bc2077d80d6ab5c2b766385a64d8a3b9580b47296a
+DIST firefox-148.0-hr.xpi 464689 BLAKE2B 
e34fc42464fdb45b23d8459aeb717af2f233fc82d7132178fde86a72f1f7de30e85bf74ee384b6d8457e2d81ecc8e8c51f79acf395ac1cdc6c26e81079b71b06
 SHA512 
ae4c4f1e03fc00dbb0df16bcfb8e6b5df630332e63cc38b9a20bbf3fe80c631d5ee8ed57e67993e18213b759aa9f7133fa6249fa919a8b142cdae5dbd3adec84
+DIST firefox-148.0-hsb.xpi 491229 BLAKE2B 
aca08099e3aa71389582c0b0ac33fbeb7e781ef3282a9e40fdce966eaa0dae82dab5c5a8d360d72abccd6758b64c50fc1da8f5830a83b37bea672b24e28b06d7
 SHA512 
978a19c9c4a8d31963b39f49e5a3b98e7bbd642600dceaefc2975fed01f829e615d5b7e13314f784fb9bc08060021db411f05232472c254bfc8bb2b187556c05
+DIST firefox-148.0-hu.xpi 495088 BLAKE2B 
06fbd9c00fe3adbb3e9a3ac08305394219ffec54e2286f401488272471eca1c4ad9c02167b78c3072d0f0bbab144af1f1019f2a6420fb76ad68300ffcd8f2855
 SHA512 
a04ffd285b72f9c30f62003889234c3e852c09728eb42865d2ed2ab24a4268070c5998448d637a4695abbdbc7907b605f5ddf1e8c45452a40c39ce01c51fd301
+DIST firefox-148.0-hy-AM.xpi 478237 BLAKE2B 
a2e8954936643a94b0ce541a0a2145fd9f662d9b04fcfef86f3106a26ee04f851b4faab91da6687da575f96eddf205da3f5de41bf489c0ac92887fd56bf9aa2a
 SHA512 
415af34967a6c2263d244120b4431d3bd1e0923ee0ee508c252d48245ac06128a6746e47ef0de3dfb86fcdd788e2cdcb678293274d2d22a4f72162ad107f395f
+DIST firefox-148.0-ia.xpi 456262 BLAKE2B 
a3d121876a7f8330f25d43b2087128a56cbc1e6f7e9aa476beea83b312f12c0a604eaf0a2141a18ba42f51fb891f6e9f31384f66d710ea7cb090cd3dacf383e4
 SHA512 
d42a3a1b10cc19010b256d48f27ebc6bffd416f4c2ac319c7659b0bc15d2ecfd618f5dc95d8823087f8a28cfa63c123bb9051d2092274cdade1b733f85ab1fdb
+DIST firefox-148.0-id.xpi 433582 BLAKE2B 
8a629d2c33407e16995d65d3db58c383a90d4697459ca94e160eaf54ca5b20f7466797d8bf1a2ddd12c95f0fcc44494fb939e0cf7784e48aabca7cd6cf1490ba
 SHA512 
071fdf427d1663e5d6ebb882b45b7dfdaef8c5fc982686c144a6dd07a4b858676e6c80e1ec61402de21c72fdb3639c085013288b3c4b7bf8f5a5297e1c874983
+DIST firefox-148.0-is.xpi 440935 BLAKE2B 
c04e33e2a1bf212d2e3a19b5860c3a0690cf6d4570f3de37464598c4f57285e01f6fe78cf08fac4d2d1b840fb5ebf6a314ddb2b7fd9bd37ffcded2608361ff82
 SHA512 
384dc8f05188d1254e5e80863e07f4e5bf0712d834932b2cdaaed09afd54232b64f38d755eb5b36e4184168bf0917a195ad865dfe632bf6dbe632146abbbe816
+DIST firefox-148.0-it.xpi 467654 BLAKE2B 
f0010a92ba0568b8031235242000ed1a93032252e4580ebe86bbf4ad24c9f1ce687e3539f70251bc7273ba312980ea827d3d6ae07355573c2f56ee3cabcc9cd2
 SHA512 
64032cfc4b942fe0a1375e1d99334e564c47fa0b57f9ace0f775a4f1c00bb8eb32372fda679b7c4b3a903a71c13ace99bc3e39ce079bc9569adab21bdcb469d0
+DIST firefox-148.0-ja.xpi 509944 BLAKE2B 
01a6d3b84b7823cacd8a45a4ec7264576c1f1c462dee9e40cd225c89508b9d02acdc28f32f41066d13f38676ceedf3fc86149c20eaa94f8d9244107a48ec725c
 SHA512 
49e863f00b0dc3139cb689da1da163d9d1702a1e85317a08c0b45c7fc1a873a2501ff75795483b0b37036a3cb1bbc71aef8052341f816ab3873c14ddc76953c0
+DIST firefox-148.0-ka.xpi 525713 BLAKE2B 
a5f0e935cb5234962b233efb3e2baabfb3d26d332c01ef8162dd26b37dbd0ccd656bb03f5e4facf6137499a3d60179200be48e0081d85be2ee2269bf81929639
 SHA512 
5385a94b27758a187329b5523e7eae59003893f12638015e5bcdf3e87b80801580c504c765ca8d1971c1db9138bbf195dac28859e2fdf1501772ad5ecc5e7bcf
+DIST firefox-148.0-kab.xpi 427091 BLAKE2B 
7e9e9c3ae22e108024b4d3082ab04f204d5dd9634642b6f09c0140c7a7c9d7da7cdbaa9ebf3d0946d3fda494e1912b7a2c17a5207533c3ec4d7d370772c82302
 SHA512 
e633d5deef8ca3194e221c986f1447da8a1b9e1605c109362a072c38576cf390dc3d8dcd2f79cc7be21c6834786e71de53c988d4c64ff8b798aae18151caeb36
+DIST firefox-148.0-kk.xpi 545979 BLAKE2B 
2e5afd34d74ba6d5d2043ab6cb605b92cc44d020e1668f56b52ea6a93f05ed502615ba8b33ae2efbc314b37ead06de011b5a6381048ab3a2ff203c6d998ddd90
 SHA512 
ed78e34916632908fc8ca629983be44187768d03c555cd5588450eba4441a3a97619e7402c4515a3f48aa3a0357254597aebef040a01a85af83019fc2a47bafb
+DIST firefox-148.0-km.xpi 375080 BLAKE2B 
5e8565dfcec47ca4efde68f6eb0e175f67077c5a1b8e1a8674605ab47e44269879500a4fec492521b74b4bfcc28b6d9422b302ca1486e6d6ead1de49e07c95a8
 SHA512 
5b1525192d087acbb899962edb2ff68e1f754652a548fe3bb50c579113a0ee0dd8573d51cfc2d9fd0904ae5678e9c0c8675a516612be123f48b26b69fb7285eb
+DIST firefox-148.0-kn.xpi 333442 BLAKE2B 
a08ede2255e49b0dcf166d889407ecfc01354d11afdf1b1b3176fd9af9afdd68468c26875a3e4c72ca0b4c6840cdaedba781ecb6312685f9f464bbc5b49be53b
 SHA512 
e780212eac5ae97ba8fa36d850ff023bfed6e7c170e17e2fdf5d476a8b0b3bc2cfb58deaf8709fb91498fcd2d6c482c5328f6f2401387bd11d61dd7ce69d87db
+DIST firefox-148.0-ko.xpi 495127 BLAKE2B 
4ff1530cb782d801cf8af4a5812bf4f8ae03ab12a086141fb8cb27b15aec8b8cb8e8b9214c1767a5c0237b8d28fc10d131c320c05917be97cb7a672cdca1fd7c
 SHA512 
eb4bb800515619d444fcaca91489abfc74a6c5596bc4482de596ebf35964457e0e640f43b7b9f7c6cf401614cd73a1d10f98e9fcce013423799a8d00c97fc20c
+DIST firefox-148.0-lij.xpi 320432 BLAKE2B 
5d3a94c291932ca95e86d408ade994ef53b1650789c99ba6b72ebcf8eff62a5f009911b3e214935942268a6120ae15f817c7757a4807875948a01e2aa6008131
 SHA512 
8084770f441f36ca8512c264ef994c995a7aa5c06f6e258aee579fc723267907ca107f205be907b906109e7ffee2db1437871db34a643130196f4f47cb5e21d9
+DIST firefox-148.0-lt.xpi 380270 BLAKE2B 
ee434a985a677fb8e345506ad85c8acd83c513dfb004d30a3d3fc2105fbb62a64196766c115dd1b527f34aa23ec6fbae257654fac098fcea1c5821bc51127287
 SHA512 
8734ecbc04feda8d8f562526b1350752bd0273202a65a91a8b449d81781e22b6feff1cfc8b4ff7fc8f2af032a4245c6c68f2211d362fdfdba9787290f2e45a82
+DIST firefox-148.0-lv.xpi 391027 BLAKE2B 
cfa953997177abc71ac9489678371aede49369d6f7cfea71e46faa4427e9e721f402e6e22647180a30e073d9a8260a7d47b837f7abdec339fda0c590456aae8c
 SHA512 
c746e0382cfbaf0f02c1b4f0fcd0b87b6af816bf1e5c6994967d84b732f326151887fb254920bf39b1f9a4e55a3b335685388ea539f4d561b2e88c6f468d5a8b
+DIST firefox-148.0-mk.xpi 321840 BLAKE2B 
6c3124fcae54a2f7c9775a9ba275de83fe59d0324e7b3d8eb88d54144f58ce17eded7636ac655cd92c095a39d1363e32e7fd3b9522f38c1ecb23ac0d29b4389e
 SHA512 
24badb287a2c33d770c12f12577b23d5b42d11e4cd8de74f3125e9856472c5c2b29872727d59885b399a31ce67a96e1fe13742ff5eabc24fd706983d66333fc6
+DIST firefox-148.0-mr.xpi 357370 BLAKE2B 
21e048d5c5fff01928d683d28e8fb9f064e7a0b5df8cedf8563540c0b3f312d30337ee79da078c1cbef463b95dbd332ae4bef6054da31a2a3a7eacc7fbc74cbc
 SHA512 
883778773868808e690ba62cfed76cfda50ea1df2c1505c2afce9ccd91c6456ac14536c910a6647b80c32dab057af0aa5a19aa5cc54eb8b207d142e1eb0fe716
+DIST firefox-148.0-ms.xpi 296995 BLAKE2B 
6a963c28ba827a509845034695558a3d94002d7f905c04883b9adec5041f40dcd6a2cce3829b7135d735de38b4a1a62ed83d9172d9792cb40afccb3427fe1237
 SHA512 
642dfd5ceec6737ee12cf2b9359ebd24ce65f336e0bb8a1ac1ae29cdbed0b92bd5b6ba39e2288322033f8f2b0ba31ed1b39415a8f651efa7ecedc697836b4b84
+DIST firefox-148.0-my.xpi 344242 BLAKE2B 
0b88f7159323b766934829603596a39807c54d6f51b9542053a6b507a593e32c813ebba5644940065a98c9f99460be470466bcb601e9062c002707591c412ef2
 SHA512 
3b95386c0f36a7381c37af2d87f45294509f10238ea3e648017ebb4cb51c36944c51383efaeb499bb80463e74bda05f42cf96e4f2ad1ee332dab58b3f3c98e2f
+DIST firefox-148.0-nb-NO.xpi 455457 BLAKE2B 
64035bbc5b5b64fc3857a0d28583ff3cae395e42263bc6c375137a821643a904a677ec1af50d6644b13d217fece461ce77c09259a710d792db8d74dd2d607f51
 SHA512 
6a7a795adc3a0a12995a0243b73e606ccd3c06ff58a068b12b6694194330161a4ef9a6701e6ca9b082c2acfa0b1601074fbf6c0bd57014046f27c9ad6d7507a4
+DIST firefox-148.0-ne-NP.xpi 349437 BLAKE2B 
fee79cb1471110dd986fd121d467d795591737c85186589ace2c58dd8bd1fb38737b1ea45056d1a26d858074a0d0ee91998533e11ee7956c04bd93d48cb61a19
 SHA512 
0c8915f8869563fff0185be9f103da45528cb6275a8129cba09cf00eb3cd552a598cabf3c8c69bc2bd3e74d7fd5b71b8bc17d93f7d9db4ca067d2f1d3d58f816
+DIST firefox-148.0-nl.xpi 462745 BLAKE2B 
46d4edf034cdae5312cd8824e4c840247bdeeb53575aa60c6c494d48e641f2a0e56e069306f5b71ea6957fc398c3e7bd1fc35bdf9b9be22b8f02d7feda9d3f3d
 SHA512 
3cee8a39102f17eeecff3cddc32f2962d151c06028fe659c3183a420754fc00f7fb75536132ec2ad4f94efd1d56acf839a52b4173e0b1bb3bec21ca154a9ba5d
+DIST firefox-148.0-nn-NO.xpi 458655 BLAKE2B 
8fece1c58a7fd9dd889cfc8ef1112291816d9d8ee7867189daeec381c3eadef06f19260f06fe27dbc91aaeb3fb76b282907ebe7cc1360af8c8c86d8923598a14
 SHA512 
a34c471a8b4362276076b55b54812806d66c25392cb688d37a49006aecc600e278ab34c882de1d58ae3b03c62661dffdd4a5e8bb3386666db4d1bb0e8d50a9a9
+DIST firefox-148.0-oc.xpi 411012 BLAKE2B 
9d13b038b1bb09bbee68c41b18777263194d25c46d1198ffc8c2d165c8b5c458bbdfbaea4977fb14ca356ea00c0963d204f6785ca3ce6dbb3b6b135739089521
 SHA512 
f8c4cdea625b3247cdf2c53a64a79cee84e622a602acf587ddc20a8b3498dbab9531eaf250a54e2bf039c90dd5d87da8bf94594bb3b240750b6c6ed49b3dc698
+DIST firefox-148.0-pa-IN.xpi 525695 BLAKE2B 
f003280cf0dc5416385ac30fa16f14f30b2af792e6f57f340d00ed50d6ba0e6a546086e833c1bfb6a9315625c1dff7aa301430c77453d81aa277ff09319bd7ef
 SHA512 
f57bae7b0511d82d79f56817168834e1f80cce518c7db5d9a9573f3311c214f41630ab87779c681956036a667c46db85fcec15061576522f070b4ad221929dcc
+DIST firefox-148.0-pl.xpi 492283 BLAKE2B 
87ad68a6fc0d8daf972840d3166698a718b5856442f3494234d26e9d32fdf9ee710a5d77199221116d9be1eb22c8e171af969933b81f4f59b5ea7f09c7f15c72
 SHA512 
8bd6675f5155827cc2e4fc6f236ee58beade16b6ca531be4894148bc358b460118fe661b4871ef63d6b2e2f26bf69bccfd0b763904a4bcf6de00bc2104a486f7
+DIST firefox-148.0-pt-BR.xpi 467256 BLAKE2B 
1ec401fd73230e041f9f8c82fe831193936bd5ee8ce6428a848286869241de639b246b376b380350c31f8b44793b14b8c256ab6dc45a5169e2c1ddc909b571fc
 SHA512 
82a9e15f12998c32222ce1ce9905b68748b43c9ffdf485bebf8317fe3d9be35a8fa40e03aa8ac335df07962191d3956028feaf58a7fd260bf1ac94252eaf231b
+DIST firefox-148.0-pt-PT.xpi 459983 BLAKE2B 
d61804a744bbc5b40c552c7df11717381fe8b7dd5bb46e82f97c8af5a01f67698b4e39a4b8ccd63c27a69b874654db62d6523b5d9302e13fb69bd9a8c974d252
 SHA512 
c0c149be47dcdfad3ad229a71402b3ae47c1a5e45043cc953f3fd15efc6c284d2f4473733c8b7ed7347f65f35cde5a2a97ed62beee28d8cdf3b040f3e5b20adf
+DIST firefox-148.0-rm.xpi 456086 BLAKE2B 
9497470477c62592aa8d484eb9319a2182058ea4c2993cc6204da15d1b62d83282497aace83826d1580bd77c9be6f57be579381033e2317bebbd9193d6937494
 SHA512 
5937d630766569b66f120b290ed6f9b3e151ce0ea32060b1f9a9a576aed16a69569d9f4b4b1242fac2825bd3825e361731fdd088e0cb61ba179ea39633700ac6
+DIST firefox-148.0-ro.xpi 480197 BLAKE2B 
fde2289eb90b39c5e03a4e8f35016dc7286a11c640f83ba44eb3dbd1fc6a50555b5f41855c08674401dd010813e79b6ea65541c024fa8da6df5952e4e69c5aae
 SHA512 
654dd6690afd4fe9b07ab8a2cd917accb6867da3db25f3222b6217ccc5a12622ae08ca4726ccdb1220cccfbb92f89982e4aef674d4db9df8454fc887a91547a3
+DIST firefox-148.0-ru.xpi 558031 BLAKE2B 
3dd57af51a04e77812b885944533becd7af520a0a4e0faa313c8a248234e2b54f1930ed64961d342958b07cbb4f326aa6d8cc1d15bd1c67dee1f914bada01bbc
 SHA512 
4683302460c424260b47f3f4980e02237c0b64356dc91c489784b5c67224f9e73d2999d4ca88c90b42147f29942bdcb64290c5b07d8efe3de02b0744dc688e3b
+DIST firefox-148.0-sc.xpi 423853 BLAKE2B 
203b71ff3a2a1a92437cdebab8a9575e8ccdec0a1ff0a5eb5287e80b9565058649437cef2793b09cac25593ecd2372f4623b6fa0caf0c5c8d0f6835eb9163bad
 SHA512 
df66850eac9aa85093131e42c2a95d9d300c25ad654afb0166de2ef4c8f4718dccc8b047050a398e3886c9f2f64bc40e54d6e7e790d91c87e228f72fd030d773
+DIST firefox-148.0-sco.xpi 323376 BLAKE2B 
0ccf8c9bee117628c19a5613c1ae678b272c97c9012fa6a48f905433c49e9b7a3b38f2430ef9ef2448d14a3d93e67113fe8ff7a7409c18c9b2f62670c509a296
 SHA512 
a9a0b7dd2320a9408b1455581010b9b32cac69b7e27f02d9b0a711a2dc2213df7024119b3a2fd0c3451a5d855a11b4945e39e210c216e9075ea275cc92d6f054
+DIST firefox-148.0-si.xpi 410079 BLAKE2B 
641c011cdbf9deddda6d8e0c4ea08038f52195d1c405cb6a3850cd1d6093f4fb501033451c1a8b668ae6428758e5eef838c29ef55f8ad43d430a4ef3069d9927
 SHA512 
e4ba5683e4505e9c57855f487e1d14328a9a68c2433b1b6023a29524fdd278b810af77c8abd149a2a01fd16efc8a1f20f4415a358f70c4ba5a029b79cbcbda0a
+DIST firefox-148.0-sk.xpi 497906 BLAKE2B 
147f4bcdd78f0e5ec3bbec00c6b85db5e6006b5c6400db397ca4307cc56af34f4e20e80ad4e531c3374d0b60396479772828e9f53e89f1e357db8e996504355c
 SHA512 
6227457544a9f2d24c482cfd957598b80c1fb29fb3baf90fd7c7985d294ea50e0d7d3b46e7fb434d33fe581b4197d2a343ee987e50339c9c33e28c66e414c691
+DIST firefox-148.0-skr.xpi 484423 BLAKE2B 
2d6995a0c55fce44f1b094787d94726199ca7084585a55148df084a84846bc6b625050054ec9d8c132ce542c53a22bfe284ad256379d980d0eac727b3dcb4f18
 SHA512 
916709479c661983db81e7d0d31c3cdbc15a593e77b67659ed4c43db2320de8f3f73f4be65d21d93f5be127ca2bc5a4f2263896afffa85767bf75f25461ebc1c
+DIST firefox-148.0-sl.xpi 466315 BLAKE2B 
4a5c635de2e4af44b1cdc04298ed931fd59c3a15944acfdd41f4ca56c7627030a4d08aca6791ba1e6315034d8457f2a22e0e33c0ce3af292eff7cc32f97dbba9
 SHA512 
b185ac9cd86094c79eb6612270a2a6bb49bff542c2671d5ef04acd5672b2b2b59ba4e72dc2a56a7f49e69e9e5d9fb5f09c5aed86b5d87df21c00b08d160f09d1
+DIST firefox-148.0-son.xpi 275455 BLAKE2B 
860b008b7ab1d2fbd1d07af16ea874b9fd188745d0e10b0531342b0364f6cca9de7c61798714a085e466b58d4eb1e5b73bb4fa8e174ff6eda15a0915b5150125
 SHA512 
23b3da35e8c099c8239efaeb8abd9714dd9cc3e9b621aa44f2cd390dd66e45cba7ad0f34afe1dc2f692897fee1646f4c666d4682c4ccfdb4cf8a563200307cbe
+DIST firefox-148.0-sq.xpi 481846 BLAKE2B 
168f7bdca43b1e263481684250a1fdcba896fc1496b7efa406c75424534e17742218efe2508589514b42b139c21bf2fc80d045ed4238b13b8b244f4cc7e861f6
 SHA512 
e006245ffb77183b3bd37df5ff49ffe247023c90cdaf4b1c29f7c3aeab6a9fc38ef5ecfb2d39faaaea9c35f394c159f321b115d0cc8fa5ff34061a28c9a5e1b9
+DIST firefox-148.0-sr.xpi 452229 BLAKE2B 
9f564d37416fc98056f107951f8526dc76a2b1862fd2c35847d7470182604f79568f553cb6364466a7c153125bf06a1ac7b299bd1636d3536ca734294ac94fad
 SHA512 
61fe661c2b927b9ab4fab46880dd0cff45373f748fba9e04d4d037b34fa9c4eca27034a2bcb2b575849c26d84990ca07ab41fa156affc349c65ca1b617c65c0f
+DIST firefox-148.0-sv-SE.xpi 462500 BLAKE2B 
ea51d9b6e3399dbf05171679843569c4b1d35e342c9bdc3094b78ef007051c8e32a07450daedeaf1a0e2065fc6e5bb24179d84e29db228960f7b957846dce1ac
 SHA512 
a21159086b87fa11f5fc2c3e37b31d378ebc49853afb3be87ea9cfd94e74c6b62bffba83e6615397db1a6e718b2b6fb0c22ddf14ceb278c07e17994cbd2ca396
+DIST firefox-148.0-szl.xpi 341918 BLAKE2B 
fe86d87516293e1a1a07fbdff0c2d8b25c39e84e4495709349b5b9765e208730a286d1cf8543ea7544abb90f8c13e51564269cd27f05ee53eaa142083f8aa75a
 SHA512 
d8190ea7ad0fe3a4608b957b9f9aed4fccca0a770c57184fb7c6743e90e94bd69d269bc4a2e3431eb233732d4a4779f6def2ac5b9c3873ad1ac8f03087e85a0f
+DIST firefox-148.0-ta.xpi 339341 BLAKE2B 
686852b7cf7941d8cd19ef966a919855248d404adcaf1779d49752160b17df0acc3b388f5f2254fc93660d7782ff2cc6b23a17941006ae4c74781da9ac816d9b
 SHA512 
8bbba93f12cc4c09c8edef399899ada39950332a6f408356b0a4a01b923c602f117facefc9595bfdef14283cb6ba5bccf44e6a7f1ac4313200d976bd2bc2c027
+DIST firefox-148.0-te.xpi 382408 BLAKE2B 
3f285edcfc93ae8e5ec28d67f45493ecf4c853809419b56b4b8f6112378ac2f755ac22bf6fd34e35a0b249bc7251ceac537d0aba126dd64303cca4a0266fb9c4
 SHA512 
8dfaf67784a4a22bd89fdd73dc56e3846cea25e44269c7da8a7d1cbf55dd36ba6dbef0d5d58084e40b0ac42bb228de00771455517e7f4cdaa6d7f0aa54df5f3d
+DIST firefox-148.0-th.xpi 536220 BLAKE2B 
78419116f4e9eb6348965ed4774a920e1dc246cfbbf69156d5977991dd7f4130b09a2dd99e98fa788c0b7c21c598a762509fb960d66922f161c7c7913faba68b
 SHA512 
e99a6bf81db391927360c33d6772dfa91c17c6b174cdb0c5884137d0b81d8067d36eac2bf35c00dc973ed2d83975252b2af9320634b52b120613c9609e0ec99f
+DIST firefox-148.0-tl.xpi 356590 BLAKE2B 
13639938dab109c85b3155e98f732d43c7f530345a4b8c522abff0c0cc54ee96f2ff88ac2dfb6671585ad6b43f11f3ec2e454301759fb07c2fea0a2b1ff83109
 SHA512 
ca4801823da49d84a427472787e587e7e183cd43f48f0a9202eea1c23406bcb708ec214d7739667f393159e8198825908c656ff89a4a231e1c64be0732a57349
+DIST firefox-148.0-tr.xpi 476498 BLAKE2B 
018d03031bbba60552922ee44da6b215288549b7074b364c63705bb6267e01ad7b8dcaa6d22700705ce5f033924cc9e0b63743c0f4e2fc6e83cb5a35849360b7
 SHA512 
b1afc45fc5076d3cab7cc7a887789b71ac05deb59b605dc2c6d558e1e21a0c112e24b11597248f7b81d8937d33c401c779a9190ae14231b6bcfe2a065ad5d599
+DIST firefox-148.0-trs.xpi 325288 BLAKE2B 
ac020d86919aba0a82978ca9b480640ac350f693100f5fee3be1e59fa671d4bb136396eaa22868165976461a253ec4b5b682c6e6410275604fb309d579ce4143
 SHA512 
7817e3ea01348ae404e154849fe07e7a6ce8554bb53ab70e26bc292d998fe8bd0ff4010571cbf84145dfc0c7a50797e33073a10dec40d512d58e14b8a614f9a1
+DIST firefox-148.0-uk.xpi 541816 BLAKE2B 
1f584e8b19dad9f15885b92ab4d9cee6fb58d267b2fef1b45e5333ab765218dbfbf65bc6dbd01caf00adcd9efe9fadb78eecb7d4ff636dc510cbb6884f996d97
 SHA512 
04d99df19cf32f440ac88d61c2dd5a84b60dba7456ef775414af4233ad0d308114b2a8ce85908bc884a0528a74cab93e8ea14f541448df039b0cad84774d8901
+DIST firefox-148.0-ur.xpi 371238 BLAKE2B 
7d9e0d54ad57d467d80774ac0f16a87348a06933f130ce07386d39d7a69463134d203954d28a273c57067f2e9da4e76dd53d6c15204e9223e105cf858ca3ab59
 SHA512 
ead3490e538b68bd2eaf09f2fefa866ae35b7b3711b48869127f35d7f7ef695f6f3e2404569420a464b903fd4b7f280308daac0c5b9f41d897c3a6446c9a21e5
+DIST firefox-148.0-uz.xpi 304646 BLAKE2B 
38b2084c22c5ba6278823e8a085738a6bc370ee9c2a4db5931681a28b8feaa6a47bba9e6c7160cb131424dc53eda7a8d431b3a9b04ee0a87e2863a80a428f162
 SHA512 
8e7e83756542434f88a94b5f81c7e8d96e7c1098c5110c1668ce7ebfe4c9e42ceaaeee7dff76fa17c153ef0d489f3b36cbbe28a94313219f45844254e907ecfe
+DIST firefox-148.0-vi.xpi 497030 BLAKE2B 
819546021c22280c77355b62a93e76f8467ec5df8b4f073b3de548004ca0daab6643443bf9d5e191527dd67e836f7bffe6e84ef8f80172b4160ac1f93f592134
 SHA512 
7cfe288ba2b92652e5d7e8483ae0f2b5b1706cfc04983a6c10b19c988498b509fb03d959259218bf2052c1328d31bddf4e9e17d4cfad414f02e6062d786b3235
+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.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
 DIST wasi-sdk-29.0-arm64-linux.tar.gz 119258587 BLAKE2B 
8f71af2b3367604051d094dbfd7e498d8fce04f0b90eaed8426e947b70b7b7480fb60c98c9b06c7e2647aa1da2101f7a8e4779778a072eba10af519c7093a2cb
 SHA512 
728923caee9a08159bfe1619b2d40e2945c0e614513e941fb4964f5875adb7e76dfdb30144e1841d87ce0e87c4a85f243f2af54e7c4d4001232f6e5a30ba8cbf

diff --git a/www-client/firefox/firefox-148.0.ebuild 
b/www-client/firefox/firefox-148.0.ebuild
new file mode 100644
index 000000000000..058220cf4b18
--- /dev/null
+++ b/www-client/firefox/firefox-148.0.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-147-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