summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-09-04 12:28:34 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-09-04 12:28:34 +0100
commit518b45bffd19d0b75715f338985f96c459f9d129 (patch)
tree948dfe5d479374fd6b85fe72ff2570e8a4af47ff /www-client/firefox
parent3f559ef486314f9b3b48d48eb303d6be68463af9 (diff)
gentoo auto-resync : 04:09:2024 - 12:28:34
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest103
-rw-r--r--www-client/firefox/firefox-128.2.0.ebuild1354
2 files changed, 1457 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 201b0151ffaa..271e9a781fd0 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -311,7 +311,109 @@ DIST firefox-128.1.0esr-xh.xpi 417178 BLAKE2B db647fc6764380635d796baaf6084094f1
DIST firefox-128.1.0esr-zh-CN.xpi 657339 BLAKE2B 37acc3369de9339eb10a39211526bc8cbf82f3962b0415cdf96b9933fa88fd5359361fa6c0a32545cf31cbd86d590efe9814b67d835f486e2a39387c00bc6e04 SHA512 524d90cabcf3ec2f882670db7571156c61b19302371c3c17703fcf3abd6758aea898b6231c51a50b3db6607855a6d79677054a9b19cfaa522bde9211b9ae30a4
DIST firefox-128.1.0esr-zh-TW.xpi 659474 BLAKE2B 98d0e9d960a32692cd34e4ac99ec5494e74b0b55d45a2f36cd4f722ac8ea2c9074c733ef2b04a0bba60e9622c26a14bd38d8eecf8a810f0819a5c85615023ef6 SHA512 1a431fd2d01a78fb761c812bdff06361c2c5f59fbda12656a38622346cd9370e6748b61cc98ab38a3d31d9824aa9f2da4e90a0cb6d0533e40136aec7ac8f1469
DIST firefox-128.1.0esr.source.tar.xz 561953208 BLAKE2B 6d22bb17ad22d5e29008fd98f6b90bc6869f71c03b09e5b24a6a8a8304f303b316131aeee5d3e5f175a9194074d586a507ae121b9397aa371839dbdb1349f2bd SHA512 8055a7f83acf0cab6124ba5809aff1c082e81a0d30ff318ec719f8fd3f4af9aa60e2094c1abd6c981193d751075a9569370176e20e50f3c1959fe27a15511388
+DIST firefox-128.2.0esr-ach.xpi 465016 BLAKE2B 70b8839a5028d7b87218116dd44fa724fdc1aee91c371bd5e84112a9153568d7186ef4237f707e08b9e22f0208affd03141b49fa4b842cc82faa5ebe7f19004f SHA512 688b8fdb84a6bf069650a65218615d605cd9cbd52435261f3f4fcae749cd67373fb1ce34c24bd3d0712c5e9416a2c111e2bd245050130423c944b64ca9092c1b
+DIST firefox-128.2.0esr-af.xpi 418343 BLAKE2B 6b52d8b28d7e1095257927e2e894276cacf131fbd8827bb321729787d4f2b9d35418c5b834a87c30fe035f31f03c003d3691d2350ffa6972d1ef8de15952fe6a SHA512 70bfdc67a3f2ad213de61387f611bd9f6231eabc7012f190b84020ee3c75d70579d88db5cc1995f86fe1eeae72c31438f64019824c4ea28ed589b39cc12b9dd9
+DIST firefox-128.2.0esr-an.xpi 506833 BLAKE2B 0c46cfef3202306b143015195ad4dc8d04c1bbb51dfd643b55abbcb44903774a4b119c0cd2336209eef2ef57abe5c2f6d0b82eae651e1cdc738580e6cb56474c SHA512 3dcc2c6ceca2d8452322fdb129537447d4bfc9951195e66a24ad7fc5c5f3bf9cff17326eb98c3fe7afc4e33ec9ae6f5d5b15e2976da34192a712bb1a08dc58d9
+DIST firefox-128.2.0esr-ar.xpi 612892 BLAKE2B 940c8caabcafa3a9c95905d820bb622adb94b259da739ff5ed88338b3354d572aeb03afa98aeb8f89b83dfd5c0fd5a6c0221c64ece8b1be8bdf0913a5c7e29fa SHA512 2c18828e3694d898bfb0c7fe36ac5937a1baf70dd1613570e1c11101197d5a66593334fd6a2b007ed680d8d62e6f5eacc1ac2e4766dd0f6fcba8fd255adc5780
+DIST firefox-128.2.0esr-ast.xpi 497291 BLAKE2B 752ad97fd9c00912228226324eb8647bd5c4cfdf3a8339aa0100047a4e75a818cdb327b5505e9ddb8a33cd80a26217a0bd9cf0fef6ea0a4895a3db331686b830 SHA512 bbbac520b9dc6eb6fd9c4a00651842d8765411fbfd2803c6c536f0e5b1fb7e0ca8886eab0714588dd26fa191363f503550d39ecc14c6263cc1247cab9d43b007
+DIST firefox-128.2.0esr-az.xpi 491719 BLAKE2B bf70d9814f2951a02ad0522d23e8162785087972ba02355613dd14f196308335b0e126845aa378cee1e11188f832cb0e11064d7ede7c3257b5dde0cc5932c32f SHA512 c35f461cc54aa04200729d212525e807c3361b081ade3d6b7a0bab462fcb43c7ecc05ca0cd8a1c3a6471126de7c45386c5bab6b9225940f3bbf11441fd9c2195
+DIST firefox-128.2.0esr-be.xpi 717327 BLAKE2B 452c846fddd81bf764903eb42d4aa87d7f96fdbb2b9a87718abf6b6ec3552855a6fa066fc69eda91bc51143ecca890fafbc5297f9c7d3f1a5730b6eab39e04c0 SHA512 7abab5270899c9ac4be6ced477c630096475164caa37d88089fde40c1c3e8c794f21c4a88a001f1ac5c7605eaa63c3d156e27eda331d77ddfde5ef393f7d45f3
+DIST firefox-128.2.0esr-bg.xpi 637126 BLAKE2B 7bfc353a577a31c3baaf8af178dc34e50b36fb02f8a23e585cb8f7a6d97252c49a642fadf2ae47ad0615af9c4dfcd77b631d164d3bc1fce87fc2008c2d109e1d SHA512 16cb5b6eaf1f4691b59d5354b4df9cf1b55d317e42d07d59226315448c9ae2b61225bd6f810bf192e2dea8ad8b0b574a51c47d7196f93367a78f873255a21eb3
+DIST firefox-128.2.0esr-bn.xpi 582470 BLAKE2B 7395bb68fd185e1559dfd94ea67c9e70004c59b0d2fca92596ebf2f7b53e3985f0dd1f00660d591317db23f460048bb89cfe832813060e53e52cf3425c5c74d2 SHA512 731c42ee4b5e0ebe309bee4370601324ced7e7d95f5543dc4fe72db60fb1d03e5d4474755b329744e00ebb3fb1c3cc905c50ec4a9a6ded85da90ec4fe4bf5c86
+DIST firefox-128.2.0esr-br.xpi 590836 BLAKE2B 3d3352e5466a2df24f294eab8d604ad97615aeb5edc02edda2485ae47db99702e6dd163dffe4d356e651ac1bc36b3815cee22b2d27ff1ec6bffca007a4552197 SHA512 1a59e68eb68c3f2be052ea6291bf4cea5543c3843ab31f76018515e3cee2d8e0191e0ab9ddebc3cfa2563e242e6a8a58c72ff6d087ef0e3bc5fb80f6c2a30aef
+DIST firefox-128.2.0esr-bs.xpi 510170 BLAKE2B 0c4de7a6883be7bc6520053ba86bea54b9bf57ec470841eef74fd412f2c11443057ecf952cb2125fbcbdab9289128f12b8071b9052b78321673fb80b0eadde0c SHA512 b51596dce4e77c3dbf0f98fa21e430b18fbe5ea9806bf0ececf06377d2fdb2064f5205af839bacd066ca886797ad0b050cee8b7069c23a864dc146e5c8d76138
+DIST firefox-128.2.0esr-ca-valencia.xpi 547190 BLAKE2B 1fa8d3cb7d8821a1e62185e260fdbcf54b5f520d71ecf984c9c7a56958c0fa535e1406b6183d0198ffb847c911f4dfa632f200500b2e32efeb98112dd04451d1 SHA512 98c0b5b46620783ef2d21e5915fe8130968e912bd553a7e1a116445d82be4931fcca213621a33a6b1cbf4e744d7e14d59f9017bd51f58df7b1d673b179986801
+DIST firefox-128.2.0esr-ca.xpi 598610 BLAKE2B c526d2dde8315fce06a2e272c8145f2f14b7c0a80d04fa002b01a79e496e4b134d2e219636908d4ff9d2bd43e1b478d5be5093b31dcc5b196a1d643789489f47 SHA512 82b80def7796f4770c93535a45375ebea9777866f28fc9f5b527e7bccc086d3d9d7e1cc20b8d83cbcc13a007ea457bcc683b67f62cd7f5c869d11b5ddcba3607
+DIST firefox-128.2.0esr-cak.xpi 594027 BLAKE2B 1198ae6b3116e0f52fe7042060cd1eacdd9948787bbca82683140c1895429e81a2de3df46eb94dfaca757071fd560982221dc674f0cd79db5235071bda463fde SHA512 3e2f30e4cb499f46322c6b0074a54bbd51d8d362d6c5e7b6aad16a5cf092f29d44701c936ffed8132e1a904eed2e787b0f4e47e68980f5b56718f59d5187650c
+DIST firefox-128.2.0esr-cs.xpi 666457 BLAKE2B 77b1848b1bc25b4280725c0bdab061e9b70429d07c197761b9851d5723a6a542215d714df491b93760268c25fdb47a0f8414a07871095e25b8cf6708fa58ea12 SHA512 b3792b7983065ab253c4891e79cf4ca4a79027f0f23e64e34c1e0ecbc9eb3d0691a4def5a386160b59d287d3f2dc1e13a9a6534704ab5230c34474c52db1a032
+DIST firefox-128.2.0esr-cy.xpi 631265 BLAKE2B ae4ed3264337d1aea359ae0ba2d0235f351079b7558fe3869b662e91cdb557d1742a66bf559295e0d8140b25bb77bb53101163da3a85c9cdb3d3b38275f05dd8 SHA512 4c65b218ad5acbee572516ab21a379dc8f4049884854cfc1ba4feae67adb8479668a01d0313304e6b8c26fe8dc8ee35fd1bf86f7cd6327fa3edfa6413373bba7
+DIST firefox-128.2.0esr-da.xpi 614503 BLAKE2B 30f2b5f42edf0cc047334a5c1ea1ffe0ca11bb269eabc1613ffa4c65806059da4460a34d2ac9a0022e19f9b5de3ea5c01cbc8a3893ce1a9c64e04a40628b84a9 SHA512 53abd8fdf4cf933be6b5ba430ef24a42579388bdc77ae38aee88389836b3096f1435f7cdb887a8079ba44f1f7b5f8c170eff43445f0e435a4fe2a291f1d6ee85
+DIST firefox-128.2.0esr-de.xpi 639266 BLAKE2B 540568f54d7405422b3a096dee282b69b77c72cf1195698c996762364b5fbfb845e7cd9298596e51e942330cc2ed8020bcb2facb544ab5f3c27e7553bfc36cf0 SHA512 f1d3e6c215830b964d093ec484732c100d2fb2b54f815e462fe8665ec7608bcb969155df8d1ab0ae556513d58ca906e02b1be9ebaf1902ccb6e41b169eb6bc07
+DIST firefox-128.2.0esr-dsb.xpi 656622 BLAKE2B faa31d365e4b25b5aed5acb01ec2724dc43ee859aac2bd7dfb832fdcc080e1ceda16e793450295a3167d17e236c244dd8522c809eb9e2015563683a43c4cdc35 SHA512 0c25b972d6fc0bd8a5c3610174281e2886b45e660c6b788f8263a9b85ce0758a1e2bb0c6e4fceb0f9033d3a64db90ac02cca65e2ab63af11a4881de1c2b33c45
+DIST firefox-128.2.0esr-el.xpi 741108 BLAKE2B ed21c5bc8a104f6002ab96fa2d1bcee0ec93ab9e3b6990834839b5b5c98d3df06bf237f6cc6a5e3a3eecd2503e33d91f7b5f3babfa858ed4de77348bdf6c2a6a SHA512 ec3b0063c15587637b2e6d58b11a6aa8ae775cca51c53f3e3a88ca3da939248bbdeb02e94027e4b7b55baae05c4106f3c2172781e397fff56569eb819fe6dded
+DIST firefox-128.2.0esr-en-CA.xpi 590919 BLAKE2B eacce54324130d863dc70990c284737b8ce1ccebaa67726f57f042f6bb3b83f3ebd31acccaa3e61869074f4cc46ff71ce5ee57b2a831dab4160e99446e44e02e SHA512 83b02b2b8ed6e76c1c6dbaf7570d3ba71c75ec7b253248200ab445ba571a741c3ef490025ea1fcace9994de94e5f80a8d74c469b83bf1ccf2df48d7b4fed05da
+DIST firefox-128.2.0esr-en-GB.xpi 591530 BLAKE2B c487037962e6f3319dc2094f96fb057566148316fa2613e8e9c520771fb546b58ca290e91c20c295d1f1e4b53cdf150fc15a64e00b08e587795b9e2e3dc82d9e SHA512 6e92e43a559ac736ede9089ee6929deb04cb1c00e296398e579fe1f6e2e273649c1961cd599c6d6aeee0a2b75daff86bf0f7b469d340e7bc6daca2d1c3d78dd7
+DIST firefox-128.2.0esr-eo.xpi 615506 BLAKE2B b6be4576f6e8e661e084100547115faf9d823f3a9cdd256a136bbc052e51a05409591d3ed5f378bade142331840ef01e99ddd633d360afcb980199b494cc1fc8 SHA512 9b7af6122011f922c8306fce5dd4e0fbb2afa2d8b00c08833087cbbf38e86b313c5e9b594cb9f137f5ccb4a33fbfe6ec94a7329656512f7a39394df6f8356913
+DIST firefox-128.2.0esr-es-AR.xpi 634653 BLAKE2B 764ccd63612f0d10f9efc920945c5978f809b7e2fa6eadabd263a85d37946a59211c417ab22c2af34e7f6725cee554876cb456dd9ed2b9f534e855d91fc9ac1a SHA512 c68b83ff1118a0999faf3d17341f80c73307e01e594be163e1231b69d3e5180a6ccb0084ceb00bec49823cf96bb5f13d1ddba73583590ccfceb120ddc07fb699
+DIST firefox-128.2.0esr-es-CL.xpi 634136 BLAKE2B eb8307f7756ed19bb6fc5cfd043f7ac946aa7302da7363e20364d5d012b159e0fcd026672b7d666efe8f1a4e4ae4f325ef6c85c15fccc8cfa30365719d66e5ee SHA512 a542f65f22873c09c0fa0f9afa80e69f997f1693ab6420977ec71a053cf3a7631552a538e927511e753556c08720bc4bbb67fc88c3f1b5143e0e3721102cf22a
+DIST firefox-128.2.0esr-es-ES.xpi 622027 BLAKE2B 95a3e27ace81c633711300b1579589c9a03f8b87266a6312b4b009d072abca81d89889d4084ee75a50bf6e8e566bbf6091c41a59ad9f7304fdd06509e3f514e8 SHA512 2183fd66929fe418edd1b86c16b2f2d910fb141407ed2a20d86002fc0cdbdea385f6cf6012f0982d7a863ea5c7c72d199ab312b59a9a6b0acbafc5640650a1a8
+DIST firefox-128.2.0esr-es-MX.xpi 610639 BLAKE2B 0592cdfc5b9c29f7d9294e76a6cb0a968bfd45ce37b888e4cae56d90234ff33feb2d42a30ce474616724994a27dfc1dac305bf797bad1d94d976d304af869810 SHA512 f4363783ccd52ed042f1a4d97c8d96e799f0ec67b303627ddcc7ba397656c3f14200eca1b731a0e1ba3ca1c118a177dd4103f7c9f9df064ad0ee542c9c0cd21f
+DIST firefox-128.2.0esr-et.xpi 540637 BLAKE2B 12c24fa32eb588245f2e552a855a9af486761e1358e380d2d734862b8f48f043ea84e219965b5c5b7aaa9a1a0d4f8abdb4947f2988512108b61fbb1a592429c5 SHA512 ae8bb76206803313cf8eadc3e794f5be13beba527166965cb30f7aa33809deadd8a4a5ac805523e129f0feb198d9239ea4d4be709d6ad8d1abd856b6c49019ff
+DIST firefox-128.2.0esr-eu.xpi 601114 BLAKE2B 94532229dfe560e1eb01dcc6d3a22c33e67aa28759334436b47715477f264430e196dab25d19d0e0089a822b343c12c23eb6d3e66da4de1c3a35e8f60652e4a5 SHA512 ee95366c8e79895d89710c1aeb791064aeee409e4fbbc6935d552540ba6d7e0a2552b7f2f1da89fec23f91e9dd684e9a78a5e96675dc40218cc2a35758f8d520
+DIST firefox-128.2.0esr-fa.xpi 590957 BLAKE2B af0a782804463e6bed41a4b75ee0207e80669841eaacbf0aef41a3cd8ef2958546ee97dc4b1e5270fe1db6b26aea34b1b3ae76a49913e764911fe401bdb1245f SHA512 c63af3bed58982c29b55610f66939e7464e11ba8a28b3a66777b1c2c5677cf171f8637f3ecd4513afc7661fa3279779851797477b2f01120a72b54b2a74ef611
+DIST firefox-128.2.0esr-ff.xpi 477004 BLAKE2B 80fe9a1ec25cd512daf3a54d6a84e63e4538e51372ae55e81096da8207ed5c29ad090dd4026f09e001c75e74d1d8fe75e0723c39c66d0ea7c0f4711807fc0d07 SHA512 b6f6cb712e98192dc2dbbfb5118cdc6aa450378e8a9d6292ef1c38260302c507941862444214fb88b9a2e2c5d35e885a7ac81d1872975a4889f6b9bb5a1f60ac
+DIST firefox-128.2.0esr-fi.xpi 613340 BLAKE2B ca22ff04b8f70e7aee2809f407913ab2f32050c1890d9ef6ded3dafb9daed3419c5139c1c6d4aeb0eb97fda12b6361eecb0e1702c73707e646d0da4fa35da96e SHA512 25e674d343b78e0fce174d897f7692cec5717bc10285ce83fa528dfec452c8358930622ab2d5f3e54efd1234846676677ec8026793da374ce44612ee55b8af88
+DIST firefox-128.2.0esr-fr.xpi 646209 BLAKE2B d3eeca16e0d20bb5b881555a6688060394e6ff686510fe1e4aecdab0822d393d573231b65b4ef64ca88ac150c558b57644371a60555841192df4ede33e668c31 SHA512 85b5d205b27fb696f8e8fc5ed9ccd7607ea8b93045c415172e4779248051741c9dcc3a1fa9675d5d89047f70a38551bd240244b34ebd40f3327930e8efc083d2
+DIST firefox-128.2.0esr-fur.xpi 640939 BLAKE2B 1a2e29dfee505c07d4f8e6c8182eeb3d224de9ec844e893bd731be82a99e51d8b9a79f37a2cbabfe50d400dff21f52c3a68fd00a353feddc6aee21aa0908e491 SHA512 d0c2cb70207885acd9923ea227464e19bdb8da0c767ec26743b551ee8f9cb10023578a023cdc0e05d4f8977ce6170fa0926428c2c026445dc548ebcc4ddab2a1
+DIST firefox-128.2.0esr-fy-NL.xpi 630346 BLAKE2B e8a3d6d2e03c798bb71b4d346a510a0579ac25b884c92f637a6807591b016a3807ac46d9844974b889b79316f2bc07b8e64fa054e3e7453c07b956c2bbfffcaf SHA512 5dd70c7888c612d6dbbab99a4864187e0003537eb267c293e297591efb896c2510ce7160b836622e9f4bddfa8bc0831aed95c8c5053749e2c0fde9dfd6e32f0c
+DIST firefox-128.2.0esr-ga-IE.xpi 471840 BLAKE2B 9aeb9318dc067c1da9b618fa7cff37da0068f63f3d12f630e329d16d2b5ed8da73df5825bedd84aa141b05d0e2a06a45f6d57eaa364d1654706e63ecd46f7c9a SHA512 ba17302c32241cc959f20b5b4d9fb81fb79ae4011caffa97b6d26a0541eca41d0a31e16815b9c15b483fe925ae060b0aaca1985f94fca18375750e282c033f1f
+DIST firefox-128.2.0esr-gd.xpi 597538 BLAKE2B 9dd9f2745301f8f310f33a190a65a20f76b4bb1c000fafb5d69282b086944e8731969b28996375e38e5fe97597e712021019e93fedfc7d2de9df519d3d42dc89 SHA512 42304ddb1af2bdc9b4f7e4ced0867004f203972ac454a597b8b50ddadc0ca3be8d5276ea8df355e1ab605d20b626f58129cd538467087bb99d3524cc63c77544
+DIST firefox-128.2.0esr-gl.xpi 605038 BLAKE2B 2c5bb207281eb993317336451c9f9579cd64dc4cffdd52ad19dcd0d9cde97b74240501623a1bc4921ed34d1239e5bf87347c466e1fe4da75cc1095eb08d018e3 SHA512 a164ebdd56d88834ac79ab92ea23cfc840cf7cd808008ddd68886374e476e228f9562cf8452d012c17b48a1c99a963da352aa921517cc2e560915b05fc99b388
+DIST firefox-128.2.0esr-gn.xpi 643641 BLAKE2B e61563bc66ec0ba0a71eba877163b670e29d8d3bf2b782db166d71af9bf17ac39b151ea9c4a6f00daf560400cb02124e2f1b43dcceecf265d8d6721c97c32f92 SHA512 7f9f0eb9771f05e921937d78519e0f03a43fff450545fbc1f7dd19cc01391b0b6918022bac1fdaabf3f3637b25333fcfa5a9081ec54eed7d6ae79d713a4a697c
+DIST firefox-128.2.0esr-gu-IN.xpi 528311 BLAKE2B 6e9335f5167e79ce9ca1cdcc628615ea41f03e91bece3ba6c4b3c4c235a0ce1fd9cc502400ae53aa21e8ec7b2c50dc4513ea2b90b7fb8ba8766caa82f1f65e0c SHA512 0dba09b2a209eb3d9bc0abdbd108bd906c2e2426b75dc961f828883cc0be44e61e730bd6b030f6f66de7452afb5a61e25dbf68de4e362b5d29bfd6392ff8fce6
+DIST firefox-128.2.0esr-he.xpi 637789 BLAKE2B 09b9ce4818f609bb14e4f7647cd34a6082e2411a57cb9dd7d5a7599d9adaa964b551a543da6f05a6ea63eb4046fa79634b5383a414d09eabfc6c2d52fd7f64d3 SHA512 e271dce2a47ef65020cefe41bb236ecfbbd0c0b0d558d32377985b7f2c8608614f58429430e54309b2a4754dbc66fb96b032b08efbec5773a359387a54786fa6
+DIST firefox-128.2.0esr-hi-IN.xpi 567736 BLAKE2B 38881624b5793b8b6a9d352bbe9ac95f17128a31a2e666761f341d83a8c77619967b2382034a59eafd753e38623c315a87c2805048232be1e435d5f86840fbcf SHA512 1181a815abc6a258798251d62e200c9a2c36da3ab1256899e86972a47ba5eddec9a080ef7d1cb4e280faa5419125d670c9f75a4f8ebe21ab7d6390d0234660e9
+DIST firefox-128.2.0esr-hr.xpi 615348 BLAKE2B f302229dfafa7923af9339c196b9ef6267e5eed846fb09d9e1520fa47cced0c2f13bc3c891118a9253cfaa8d1c6e666b978ee27b1418bf9208340991c70e586c SHA512 ed7b53d4e4266ea24c864ad83044d60729b75a1e2a0a6a2350952309b337e6461ea44f9894adf232512bec49079b375a48e1117db01d458cb28ae9e1e91aeb87
+DIST firefox-128.2.0esr-hsb.xpi 652642 BLAKE2B cdf7e6541df09fae4a4d12b0537a5ef9538384c1a92e48dfdfbe37ffced85bb576391e8abc2702fdfa65bbb3b1515740aebbd6a0a61027d84e1974b629acfbf7 SHA512 ca993b1e2d95fb54b5552aefbbfb6ee511fff898f01c5bc45c542b3076fa20211c5e68d0c7139825bab260671e7ced609c394dad9e371cefeb55ded6ca3e0cdc
+DIST firefox-128.2.0esr-hu.xpi 657494 BLAKE2B a4ccab55a678d878621586026bc34ba7d67fb48db020befc9432be2404e71b1c3206fa4bcf791ae7aba839e2791a17d2d535481ba5a284878286a24a64518b37 SHA512 0c4566a47237e13c8aeb5bc859b65819d72878365a41320311f6afdebb778f2f2cee7778fbc01763cd99cd94897160a2696a94c71e01df2aec444b96bb19348e
+DIST firefox-128.2.0esr-hy-AM.xpi 652579 BLAKE2B f9116e2d45ba205d01cebdfe38597e72a3da56ba529ec82a1c2a2c63c9e8798a879fd229c1aa5becf495aac33dab116388f817afbe14ccf3b3524cc2ef2b151a SHA512 657681a0725d89886690b832d985bf59bc7163521a81da4a3b253a0bc66f598d305a45092c655562d61632ca48c562d8366dbef9f39fecea96778f7dc2506848
+DIST firefox-128.2.0esr-ia.xpi 615359 BLAKE2B 3807846bba513bfc0564f3712be5e93dc5f5a9c7378a152af7dd56a5d6271894ee2bd60255ff26c979c67968c1dc8a1e2d53c3c4222e248cf750c93f691bb20f SHA512 2567f8f3776480882fc7cdd43a6a23ea980806ea6bf738c6d84e18cee28558613baabedc692b1bc0489c9c93c9a5c809167b5f96f96aff107a9996d883856eae
+DIST firefox-128.2.0esr-id.xpi 585709 BLAKE2B 5349e576eca2e00af352ec6c8a685b4d2a930b70c33fd60cf8569820985664ac8de3f580063126ec340fd5967ec4ef212b04271d4a0f3218729bfaa08da228f5 SHA512 66f988217ceaa43cdf600e36be136e063edea6bffc573c0b39cfa67fed9e1b1d8d620dd9fa1478d78914a015338bfd02e8214db916cf79cd08f527510b67e09e
+DIST firefox-128.2.0esr-is.xpi 619078 BLAKE2B 54a0d0d695438bd6be120b6ab61ebcd048fa439e342d5cbda1c437a8d69a5dab2dbcf295a9e47c3d430a7249058e880c99a2661d8c86205902930caf376d6cc6 SHA512 2feacf83bb6c0f8f87e8294ada857a3060419449bf34233c2af2a01bd84a4916d529ba34faefebc90dcf23abbd1255dfb98a87066782b29b67a885beb574207a
+DIST firefox-128.2.0esr-it.xpi 574457 BLAKE2B b9d6aa31442cbd73e5f328e136b45fdebdfc2881a5072caec60609257a2e0388dded259fc9fc0fabebb5320e22bd731aaa9ffca1d5514a361c7b887881882deb SHA512 db880c8fd054c08dbf5427be39bfbccf6a11f4192ba2137e00e792bf3ed2138b31164de3fac9af78d2c751809f8d496812b9915b2dd4bc93abdb8587122de6f1
+DIST firefox-128.2.0esr-ja.xpi 683774 BLAKE2B 305bd1fca5745927fc52bd6c29b1497b5c6a6b00926c1f8b7a95bf77d47897a8adeaddefeae781a9f0f10a8172ebcce11c1b1193857e16b540fabfd73e68b9b5 SHA512 f1e5bf2cf5ce8eedcab383d2f691009a561e16416335fcccf75fabd95d228aa25aadeffffcfc6ddf2f2a73be8b23d36afeb98ef30a94e3f79bdaf784c0fa6218
+DIST firefox-128.2.0esr-ka.xpi 661655 BLAKE2B 84357ff5ebc44125b7a097e229a71eb104ee960a0630fe454c11baccab20c66e4a2ef9195ed6bb46cd73b4f1acd047e13a4c4b87d0cd14e5d02d7b79cb6001ea SHA512 7b7468fc8634e20a2a1f7f262c2e624b0f5c45c1aedde30a7d0a963002f10d2e3385dbf9cc94a94253e748ac2d89d2f99ac8446f22d42e573f44c18d0fcc64c8
+DIST firefox-128.2.0esr-kab.xpi 612142 BLAKE2B cfa29707cd1c249f553d7ef495b7ae591c3e09441998d36ee8436dad932590b42f180af474ab29acafe4344fd4bf51d137b7ea9cfd9ef1184e70ec166bd9b37a SHA512 43ecb078d97fba83dad71cb284db809404943d3bb1999fc755acdc2d29a84dfe047f23b5357c3f9eff638d70f325eb62698a57213406020eb9575199cf494d60
+DIST firefox-128.2.0esr-kk.xpi 715705 BLAKE2B 14abda57a8e75b8a4275fcacbffab2e138e8b0b22d64c58a3327f9692db3a80a630e11912be906bbd073e419453c1d558e94c4dd80d555d20e2fecb42987311d SHA512 93f8560501c830faa25fc3cb697e3e28296dd3a67298dae68cea75f6be59ee5dad95153b513eb0bb93e129ee8ce1d4fc4f8f9887245e1156e711483fa4a1f3f9
+DIST firefox-128.2.0esr-km.xpi 526704 BLAKE2B 46d8c5804c04e4df7e409f4cd9705c71169800e7a63c71f713771643ead53539f586d9324b9671cb748a59df663ee08a1e71918a0d237e985a639d8e29a5dae4 SHA512 8c894f9aa95ba2ef3460560af5a001bf3511bde6ee961db33a01667c8a32133a2316fa2908bc92b30fb290999582d8d79dd39190126ab1592d925f687c4b0a1b
+DIST firefox-128.2.0esr-kn.xpi 492069 BLAKE2B 31ce67d4d3da710c2dc93f9918ad367567dedebbb5476c80e9d90dc66bb2a586ca3ee562c5da1ef2713cc7fc78240d60efab0ffdc61a3d7e83abdc861297c029 SHA512 dcd4edd6b64f482bdd98254d83a34b7e332afd62c4e97dd0de360a71ad084cb5aa7e12dffbce49a27b68d9d5b881e231005592156a4d7a49f3c37ef7b89342a1
+DIST firefox-128.2.0esr-ko.xpi 668819 BLAKE2B 1855b9bf73f05feab03f167a6f5d32d1fc70c3d02d5c46e5253a415ad779ad0b4aed567985b42743b7a8ff1f3e67b2b0950703fafd9f693c64221d9da6429ecb SHA512 36a1da1fcf63b45423e578bd2346d8e01fc51e7f740ef21082d2d3f9c49cf480e8208e1e42f5cfc99fc911ae59854fef241009873fdf9811c906938fd285c648
+DIST firefox-128.2.0esr-lij.xpi 485047 BLAKE2B 572e5ad0d33aa885b2033f67eacf7b171688615361c1941fcdc2c4fdd9e2c4e647c51b22cfc4268586679976cfeeac8d4e1d65ebbcbd04ee878bbc0cd056ad7a SHA512 ccc5d837e485d42fc12405642987fd828c86e438c70d70ad075a665bbb3c81a6ebbe2a6f660045fea13c1bb490fe0c5353cd5a2623ee14cff6a60edd0b3c308d
+DIST firefox-128.2.0esr-lt.xpi 573642 BLAKE2B 0275ff8e100ad123c9e53f2278f77fc6ce845eed16f57dd265f8452095ead916ecade8abd4e9795d73304c0325bd6eca7d62ec532b8a6cf6a74c60f232bf2412 SHA512 ed7ab421a9c6f1447525e3622324e0d97cf290b67ea132a49fc2f94207c69a0b93bd0e4dac1099dd12802b20ca2d102cd1aafaa2f8ff9d846577b14b3d43d443
+DIST firefox-128.2.0esr-lv.xpi 584340 BLAKE2B dd5986975a2b7912a5612a5b547f927582aa5edbbe9993d32ff053e2f6fd321c523806685e136c8860cc30d6d44e1c61e0dec17d0f4a11c24d3a49b417db1464 SHA512 93d0c8a3a40ba33de1ae212534eed4ea318f6f0ade740f9b4f58290534c2be28598eaf7aa934cfbb83c27f1890b614edc59b186004f76617248b55b8954541c4
+DIST firefox-128.2.0esr-mk.xpi 494673 BLAKE2B f26a42c95c613af468f027120b0c38ecc6ada51a6fcf64ce84e8a42e650e236531d7f72b3e94fddbf0f317dc9c6ee73fde88d3fbcd42d8ba12bcff81d68414a7 SHA512 672d1704b38074d2c716319b1b06fae8a8cdaa5d0e27c3c4705226d86ad4741dab028afaf20627f8cc8b5cc6201537e5eae88e5a6fba290711af141acbd48f05
+DIST firefox-128.2.0esr-mr.xpi 533051 BLAKE2B 0468e82ecaffdd73b5b56164a902a83971d71a333ea34d95089147aaef14493c4eccb1b44b2dd4d7b8310112990a512abeaef42d0544cda9ff729ca27ec1a6bf SHA512 97b1a900a06d2676d91506d2aac53c9908ebe5a0605990c7ff7451e6e6ee3863067316988393341fbbd6428508a27362d509e843f23697d74dbd96ad3f3a5461
+DIST firefox-128.2.0esr-ms.xpi 450664 BLAKE2B 8a72e63cf0a067b3bb35c572b4955046c72667cdf0f34517ec8125cdaada61150a4195c47bd7706348d269c6ed18d42a05f4da222e19556df8fa0edf1450f2dc SHA512 e6755fb932bc33645497775e80abd02f0a471b12d3ffc914559eadc85ed37c0976e097c036c70c650ea2763ed294e427411c3be696bf7d687a61e90e6708ab9f
+DIST firefox-128.2.0esr-my.xpi 519448 BLAKE2B 3ac0adf460518439627c2bb94325c40a328f548090105055b022bf6a5ff140e3de174ce21f31dc9bc3de6684be43292ae6af0b222fc05156c5ea55c0f87dfb1d SHA512 4374efc78b9af35eff75f58ef78bda2c0dff79864362e242a0d3859c10a65d5356d564c6ce715c7ba7d0569b997736c72d7bc9e09b713816e297841bb13c0c1d
+DIST firefox-128.2.0esr-nb-NO.xpi 613393 BLAKE2B dbabf5089d6bb9256cc9cfe0bd13b819ed29385d96c2a5afbab4e937051ff64cdf243cc3d715e4eb8684e66c1799a1707e2eff4d300592999a5aff7c043072f5 SHA512 53b2d1f4d5f75ec611e2865f7a81a26d4a1e74ec852a9ff3680ce587463c90acd2392d113aaf4d5c7915bdd35d12b3c8535a87d97f5aa6aad18df84333053ab2
+DIST firefox-128.2.0esr-ne-NP.xpi 515342 BLAKE2B e7bcdf670c4d5f0c7722f282660fc304447e58048e110dcacca1fd955bc2bd71dbe136f55e99b8505404992ee7280c52798b6210d239617d0141e713c3c470a9 SHA512 e62e660caad1b3dd07396c97a29e207cc0864c6c4e08ffbebf55fccfa6bac419426aef9d4c278d72e6c4682ea85e6a8cf98294356ffd1a631426cc90572c4f01
+DIST firefox-128.2.0esr-nl.xpi 623990 BLAKE2B 29c2b1c34365b39a1ae6a3f9528deb24fa8c6e7e514db12c52a3c7c87748c533f6909da30027b5451633c2bc5a3abeaef65a0aae4da4d33cd0fdd26ee5b3407d SHA512 abc32055b91b806d0b26f58fbb3424c2fa7f3cb2fdb4c6fdbfe81b587dee39d9e69d546589e49ae058f806134f3b3c78975e673520615a7e5f4013e278085d5f
+DIST firefox-128.2.0esr-nn-NO.xpi 617333 BLAKE2B 0b190cf732698d36648b23969b6253eb9af420f348a295b06464528dcedfdf479ee93e7b28f9142ca5004cecdf134ed1ad6d55a6e4f6db94901a517f3348751c SHA512 79e4b38347afe93413a8e9125f248bc6a0ee07b33f772b624d4b75282cc48dff89027fcd90ce54da91ee414ac91de983dbb6a511b5cdbc5c8481e76131a75dc2
+DIST firefox-128.2.0esr-oc.xpi 613834 BLAKE2B 6bfb9df2b1d3cf7814d790ea74822ec0ee3184bf6446da361352730e6bd842bd017ac291aa0ea8dc9ce18a7922f06e0adf7acd9200263049a25a2e3e16f57459 SHA512 55c7736eab5c2a87bd7f1f0466154ed1f4a6b50556f6d8d730070ec9bc9ca867fdf9bc301b87a8c3ecf3e918b9ee8e8d14cbd2c65943d3b3467b4f52a366ed14
+DIST firefox-128.2.0esr-pa-IN.xpi 697916 BLAKE2B 99d73c908caa19e2e5c08710263efef7430685a7ce15b52470b7a05ec7113d4cf39085716f4e4decfcdffeabee5a555c44e753d72d56f7d62807e2ab71d8de43 SHA512 16d362b213424ea92846d2088cc05aacbe27e3fbdc825968b68add8e956e3edc25dbca67daad0aa6d6d63807648f766ed5ca488803eec71b8690b9c4432d4cbc
+DIST firefox-128.2.0esr-pl.xpi 639651 BLAKE2B da262755746f8011e90c583772ba3e871a741cfc0fc56e8bad8d3d3707813141d6c33dc6b3bec27d1543afe281cbaa2f1c21f1256514062623fe662e20e16bd3 SHA512 54069bb979c4b046bd5a3a1be37bb76a7c3646b242733f6644440f8c6c1691974304d2f724a3eee47f3edf37c6e7fc7daf9b0738d01dd55723e3651b0185d33e
+DIST firefox-128.2.0esr-pt-BR.xpi 628970 BLAKE2B 676cd8b4a844ba42523f0ac50007d361796f36bdb81d0516145750ed8bda24928d58e04657164793547696e98101f9ee56c6b714d49ae1df26be49daa4b4d3a6 SHA512 530a16c982e1c24b2ad60898f8b2a09a4065a7b4fa18f481f4965bcec2824e3cb19c65b7a0ed2da215fe5cb9f6fd700be27b03bb6b3016077f7f4da6c7d408b9
+DIST firefox-128.2.0esr-pt-PT.xpi 629945 BLAKE2B 4724719ce5cf59950112d559679f97d97c9150ac71beb826066af4da1cf82c9980942bb39cf1937602590109ce8db8d9b0bb3a8b401e237a0af15cc7d0499088 SHA512 b2ff671157019dc66a44ee52b7bf5daad6412b0295e6836c63e4b75dd32226275e71905c22e141fbb51f30913489d92ab212fb735c9c160abd736b07c7e90e70
+DIST firefox-128.2.0esr-rm.xpi 619532 BLAKE2B c8838ad295b07b859f52a977539c7a23bfb6fdd58d331dafc28a1cc8cc00f8ddebb0003d89515c5d6887c40360db393e3e36c836a87373466781907af9070fd5 SHA512 807ce9c606de457f5323ad48c37f4eac14a3f17ab103982449fbc3fb00f1680cb2fbbd6aa08a2ad9086771c17e8912cf58e87726c03d58ba841c59b09527c362
+DIST firefox-128.2.0esr-ro.xpi 550737 BLAKE2B ed6e51156ca30dafe4fff0e487095fd2f61328efa05ca5be566238617789db0c9e48b44664ab774ca7dab57d632468cc664fff21e23af60559108dfbd2aa9e34 SHA512 d11ac70543c25e05d75b8bbb060dc61d76b7b3db580c371c92bcfcf600ffa4d2314e61456989961f490c3a351b3e9bb0e8de97b85eb2b5c7d0acc91cf0f7472a
+DIST firefox-128.2.0esr-ru.xpi 728469 BLAKE2B e1a4ee5a5a3713775e02337ac2703614b212e08d2c18a1ef1f6657ca185f7eb54bb8072c8bb6863d4a60a23379fe48b400b51777521897f1cf8da24e326f6aab SHA512 a0fd618808ea2618b7a9aa91a542b67a756142e7db998f72494470da6b7317fce117b997cfd88fe1754c0d98e30dbcd787f0d247e7b0c9c93d774b3c47711586
+DIST firefox-128.2.0esr-sc.xpi 588769 BLAKE2B af42a9beada81fb14968246c381f1e7265382087c33b890ed9e3e156592c281d5d531424864f8b6e954335050978bc6e8d05610397e8899ed5ba30d50f96537f SHA512 df1236340a148a9e68d3de33dbab3c744d85a236402edb4f5d6173e7efccd18e15ea6506cfe660d5bb971676124057151f27ac6c68301f368446a491af7bed9b
+DIST firefox-128.2.0esr-sco.xpi 512222 BLAKE2B 12479059be1a8a6e68495b741d9e47cfaa81fc681812d49c886add98a8509b7c82795627188c419f58d146fe528c56849ebdc560b108776d8df38e5507cf249b SHA512 915cdc9e164d67afb4802a8f462e07a1b54bfa6d8c1ef8a176fa3dba6f5298cb56aa97ef1cd35bb3c7c96c4b3cfd8fbacdba6da72e329ccbbdcc464894c9862c
+DIST firefox-128.2.0esr-si.xpi 614271 BLAKE2B 6683d541e613a6a1bb38c3851a506a7d1b488ff6e322a2f13d225726325acaad01a695dad930a45b28f7c8dd7491fc79bbfe229e28cd8907312381747e60ea8f SHA512 2ab355b69cdecf7477345c6ca66007ccc5d0ed8cd3b1ec4c50e781a9e373a27d92772c5cbdb61254efef0598922f42ea52ae4197143ee3a284daf39b791d2bbd
+DIST firefox-128.2.0esr-sk.xpi 659877 BLAKE2B 6e645f0ced95c99ee23bab4330d3c2b0aeea689b16b8c74afddf2efc2544f24e313be7312ba959fb8e830ea17645b95dfce69fbaac8dc7b269733443bf622613 SHA512 357bdb4751c53f5e35de22f11fd36c50775e1d59736000568148f27dcbe1ec33c48f640b726c9b02a79d2f5268736034be9f89c20a5067c55a531249e63927b3
+DIST firefox-128.2.0esr-skr.xpi 712006 BLAKE2B 38178aef30a77647f3821a2e84b59c0b9ee5a47e7c904fc84b2545fd748f5e51bbc67925bac9b1c72798ec5c58eb39693214b4d76d1a85f6acec65503b5084d6 SHA512 c0bd866771b7d6e8959b641b3279706ecbe10b542fe26c5d864bbece17eb0f528e282d0ae89c2e076955e2afa13f92985d2a4782ac33abe789778d3f8c8e1e75
+DIST firefox-128.2.0esr-sl.xpi 620258 BLAKE2B 8c6e6ab087c3e48f4e0ea90c811c3e75f2c6e10f3dc45b57308d26360b82ce885e98be7d4da12e686a60cbf09fdce9e7b78dc0d4834d9f197a87a398f474dfaa SHA512 857fdbce80f9efaa419e87203f4346d470453a5f68cca18e0437bdbc0e7458f14e1e95cb2b5e0f5320232a1fac0b3a903a6d584790abbca9787605a83f131863
+DIST firefox-128.2.0esr-son.xpi 417219 BLAKE2B e499f08a154ecff0963adadf6e8e3cb07c8fb3e76fdcf7594b843cb8192165d9bca8607925d13eb1fbc92633baaa6d7892d9717210206262ebb63d1d1d5af0c9 SHA512 ab5f1dbdfdf61b4b49a9523ad417523acc6ef045c104f4af9ab3affa322a0cccda9dee469dc75cd648c796e51e697c2c11cc2300b310a283992bc2221be23d07
+DIST firefox-128.2.0esr-sq.xpi 638610 BLAKE2B 7dd2fee860126ad961ab83649c6993c7433be1b7d2a90c99537908aa168bbe0b0483ed21e4d9d6accf182ae39372358da987f8804acf6cbdf60cce82456f9976 SHA512 e60570a45ca423262c40a34a0d7ed2e3a8494ba7ca87d7e7db7749323372af165d86e518c95972c1e632678fd21e656bd0ce9565a50d70e4c2cf221d262ebd1d
+DIST firefox-128.2.0esr-sr.xpi 640303 BLAKE2B c7e1b321433e77e75e2ab20df6a8d93fb40ad441e3b023cb34eb16d3e4bbb68a1770ab32626b75d5a8734c9297fa09dee4b02ed49f5ae72f79ffeb49547f3c5b SHA512 10b9e0960503b51d25ca4482bc30b286987c4cad608686d2575042057e881641ebe3961ef4b67057728ac25e1a8e8e3676c7997e47bd9e539c924786c2680d5e
+DIST firefox-128.2.0esr-sv-SE.xpi 625704 BLAKE2B d39240d2b595c4f1a07d79782c04f8d3a8959527554ce80deef87f0da6a99775e17fc84d9d4020fe597f47c281b08a0622b780d6914959ffd2e5a3398d845a9b SHA512 0b2ba39bd696213a32866bae50b51522fedb8b1159914b0c67e92894abd16192f71937fa84ec9b21e520d099e09dce6c9b165d7725cd45f364d99a3296d6c199
+DIST firefox-128.2.0esr-szl.xpi 527336 BLAKE2B 54dfb34d1eeeea2be05326b88d576a309759ab6915fb8e4978d60542d5a7c54b37336d5a4cf14840a4c0ec14a5ac9d1aab799d4878a0b5e96aae7f6edcea3b01 SHA512 5613ee2d332cd235964d949a7111505374d8c3bb9262e5ce3a9f499db383700e86b33410ed1647adeaf1c63a14aba30fc5b3414a7dda6e4a9c06a2ca2e59bae6
+DIST firefox-128.2.0esr-ta.xpi 508338 BLAKE2B e6157c1b8804d9f4a3df96da1bf5875feea25e2c1f0a9a4ffb9001de9e315cafdc48d46c92737015ace07429b585c07b075c10fedf53c6cd053bc516e481d007 SHA512 3e33c7be34a9e731362588a9a6577ccef65b9e6b8da0f5cbf91cdd6246d1e69e7c894d850e46c03cebbab3b150c20def6ae7c8e67f7dd88dd20acaafa2768daf
+DIST firefox-128.2.0esr-te.xpi 561989 BLAKE2B e71094282dc51e0e22d6a30f752efd977891cde9bd20bddb6ee806ca819486d18f73972414e431f1431a3a3fc6a3ba24048b73f06e1e803c783a4c7cadae403f SHA512 7871051b85ef4603f0b70c3eeed0554d14dcaf58bb68a9532a160fcc5edb6f4ee72f551b9dd3cb6edc430e140a3aff0eeef212dfd33a6d04dc59fa49e2e5790e
+DIST firefox-128.2.0esr-th.xpi 699560 BLAKE2B 262f81f2a972f23de74987c6c4f7f1abb3bb0a58ad2ac9d58bd8f4faf7cf21a80d984ca6f55bfa6e28537aa1ff0852b30680ca7675debada05885ded6ec8fcdb SHA512 55d43defdc19081862de57d85a58ac0c600ff3d4ca2a8e2b65a1ff62edc2ce888f275aab962860749cb80ff7f3e3afd177779fa3c7eb82187925e7b6e712b8e5
+DIST firefox-128.2.0esr-tl.xpi 535125 BLAKE2B 402f624b100eb0a9217ca568fb39cf8e4925fbbc6fe5c73ca187010bfc33371646c9eab140a32e7c5b77a3765dab6c285e400d57059e0deefd5a721c616c156b SHA512 e0b27a950526c12aee235a597353ba4359bdaecf65d1eac070465535edf55cc507a0e20aa2fdd12d41182d22f9547da239fcc6ab72228dc07ccc09dc8d7cd947
+DIST firefox-128.2.0esr-tr.xpi 639354 BLAKE2B ce3895f42612848dd8502d7bc26e6cda7ed6af5acf56154bc81622a0fb43e261064a609c5d3d369d25f7b4286fc9dfbfab5899ea28beb56594a37fe73179f21b SHA512 abd8b5b45d381dfac8465dec6d03ae7d329cdc77189ff501d80239962d8bb700f16bec0af102211d35f93c59464e94cdcdf1e2ac0d9c49e346ec00e26ad18063
+DIST firefox-128.2.0esr-trs.xpi 505308 BLAKE2B 43ebb6d081e01f2f19ea93326f12e55d09bf7051dc44c174b341b886784d36a491725daead5e686c765d5bf88bb4e1caa8f7ae46a5c5db828ad33aa5bd6e9e29 SHA512 27498d147e8a8210f356a7a4bec13b9ac56f8401680cb4b202d680e24a441840595ce6449d383854adb47ec86fc54291d5781229149715a4d9b7dc122d76ed9e
+DIST firefox-128.2.0esr-uk.xpi 708236 BLAKE2B 6eb7793590b30a7f8fb87646bf5d360b8b2db194a823cbdfc4ba5264076966c21660d175832cacf9546d0e25c9b1f6cacd96306a67ba62736e2bf918fc6119d0 SHA512 7f84aece3bc051a4bc8f1d110adbfa6140e84bcd073067f2bfcf28b131312bcac481d2399b9b530addad61e5d74e4b53d71006019fcafa2fa168396b5228e93c
+DIST firefox-128.2.0esr-ur.xpi 561298 BLAKE2B a7e5e158f05b2d054a31bbe04a2612d30b0819c6df168730e4d9a583612c83f23954d0606a09085950187761d2731543da18d83f9ac6e72ff7ad1ecc07898fdb SHA512 fe1db13e4cd8fa3c0b8133aa2fbdb3e7d9fd7cbf1263f8bd11cc107f813e9c1f2a8fffa6fcb90ae54222c56aeee71d54498e4e589408d2c6c05a95f215af7087
+DIST firefox-128.2.0esr-uz.xpi 479731 BLAKE2B 3ff018d97d47b43dd94922ecac370fb3b35fa0ee65a7c03e80454b1c9aeb696278f180cca64c0afdb46919b143766ea76407b68e27ff9107ff9e724c85f52f7f SHA512 d1c7d7dffbad956f23caa746959ea08161513470bd89cbb51e443530a6af3180c5eda8cc8b3cf92c5ea019bafec244d47977e1f68bd314e2e874189464179e56
+DIST firefox-128.2.0esr-vi.xpi 662722 BLAKE2B 3d807f971885139a5ceda0e1e4892418ef5c11ea6b9f858033bb22f691ce954afd89d871bd9ece4cbbda02ebf9af94720478e8a906b369c1d2ab11b4e074ece7 SHA512 4c0a4ec3c212b5037177569fa73313f6cb6252a033c42a3be087acd4859da655f48b33af67543150a0d316ceba52996212704b5614da2d7f9a215af5b369f628
+DIST firefox-128.2.0esr-xh.xpi 418005 BLAKE2B 64fd099e72391d0b761d0b932d6a64fcfa08c422999867fb74f09e154c267d9fb773d4a30fbe9344bd67d76b6ffe478b3800e2bad226681b9611acb8bf9b0ebe SHA512 826a3cfacde3c34c1226d4827173989f4f53a0cd01988c155b7b31898c6e2d598a03fd20dda627e20f06dab429612d8aafa3e3313241ddda8dad9f948546986e
+DIST firefox-128.2.0esr-zh-CN.xpi 662335 BLAKE2B 703cd2d34bf9f71d3bf10029130e3fa0676eeab6477a5bb877d22dbe252f8026d25439303adf109d41ba2ba7fcd0a5096eb343387d29cee4a38a3dc657b71ed5 SHA512 0d1fec76fbb07eb737dc8a606defec8c28a016bbebbe87815cc922977c89ea950d3f0cd187215c6e319b1f028fab97e19ee8d00e0cd743f7d90775a99e457b65
+DIST firefox-128.2.0esr-zh-TW.xpi 666623 BLAKE2B de33858cff0cb04c6eb4decb4a801eca99223f9d4021ecc8ad1da526f5aab5f9acde107ce2844a7b235303639607d24b9c1804e1fcf25171d33fcad778b47ea9 SHA512 136074ee7581588ced7d8c2d596dcf92d9b2cbd0312fbead9f3fefaa9d28a294e2c048b1ec0e472b4224f3b17e1176ab1e99d677319c1f9c941665ca2e4219c2
+DIST firefox-128.2.0esr.source.tar.xz 560831528 BLAKE2B b22cf139e2bd5a18dd0a18d1f1a323f1cd4ef0773ac55165318f35e40f2f248ceb11938f40cbc82284f276fe7afc4e214193e48d48dd7498ea29b09b4ab17cc3 SHA512 9a689929f6f86d795ea2c0318bb78f77f72a552f40715a1108dbd6361b0dedc3aaf049f1883424012459899607067d5a8374d895564591ec6679a1ce80708d7d
DIST firefox-128esr-patches-02.tar.xz 20052 BLAKE2B 1c5646e6111d400c4f85910380c407c0000efddd9f9dfc228b042bbbb38755d4a2003f5fe9717a13ec53693cd6fdb1cbf9822649e8726f165a9e3d101a8b213f SHA512 ab0e7ad443d0b5d0a44867c9a732681df3bf28b30a2e14dc7d2eb43859483f452723b614ff6e8f52666be3840d88104aa2c82616628210215e1765b60beb3ea2
+DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d SHA512 c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258
DIST firefox-129-patches-02.tar.xz 20272 BLAKE2B d7dcb68365ba8e065430c9ba782c98f1b39ff4210a048703fe6434fe2baeaf25e0db71768dfcfcdf530fe02eb8f5d7d5804d1d66c75386642ecf700ff28da2ab SHA512 81659f6960768dadcfd50994aa91f6794b3e9cdc371b16ad8e01a0f2d4da6cfb17864c0ea0cfbf1ae593a67a9c95e239553632f2f4e66419db46e7f5337b483b
DIST firefox-129.0.2-ach.xpi 466199 BLAKE2B 102d1397136e012f3f4d9c1d2907828bd4b3e1f8da78c36ccd222ae39e2ce0000765a163d30c5f226c3bd823b9f10f72481080455d3b6ffd651eb1580ac88ca6 SHA512 261c59e806ca018794e6cf84bfea0df49985a8bb09b3c78c6c2be29ae8e65d835813e364741b4b636c8ce1c8554fd03c3c23f648e40415298190697559014dba
DIST firefox-129.0.2-af.xpi 419649 BLAKE2B d73fae55bfd931f7959161e479c4dfcc6bc6a16e8e331d36ae5d2fde87f86a5dc95e56f4bb09406e947da43a76d1845b69f1279b1fd11b61ff1db980c079801c SHA512 29347cbe60a2b6c4e1740ba33fabd0f850aec3951313039a382349e36b701b8dbe41964479068f24bfa838542dcfb4c0f6486e0dbc5e4b46f634df299461e993
@@ -519,6 +621,7 @@ DIST firefox-130.0.source.tar.xz 568295588 BLAKE2B 9c7dfc43145e442d60f6971806848
EBUILD firefox-115.13.0.ebuild 39935 BLAKE2B a5ee41ddf96552edc4a346c5cf261e2f1bace515df4c7ff962ef1a2a95cc65bc20d6b09d368fadd0ca2111c514f310ac91e56d49260ac99e320c6a0707406bf3 SHA512 9d6232a69adf9fda97441dd6e46f5263fff17e25be47f399454972d4d69a895ebd5f14e91109174af196c158019c4b23cafce9600eb6d6301b4aa84a67560ca3
EBUILD firefox-115.14.0.ebuild 39936 BLAKE2B e32793dacc694d457ea7306eeb4493e0d8c2b3746a74d0f4db20bdb3323618f300ad866ceca9e85ffb8c75c05489b591dc0afab53e0a2ff00ea9eceaedfb5a8a SHA512 c9f7268f20624677f007f7797633bbf5e3994498f3392f78d2d6654494d55526193dc8b7dc8ee59807cb4be5fa1e3137671b56de1e3451b12d56af87dee57650
EBUILD firefox-128.1.0.ebuild 41438 BLAKE2B ddac6cf583726dd18d7bae4021a3ac6f6164e220f45f96af4accc604f36a383231523c563ab7fbe0ff1d41f5a7b92be5e3f809d3d7b91ad052321c56c05ce225 SHA512 a102354cbc15e30894fa59d5f4fa966810d5fa492d10c7caf6147ac741230a69c27d72816a1dacb2bc748f7e96de4c7ea6b0418656693e3af415e7cecea0503c
+EBUILD firefox-128.2.0.ebuild 41031 BLAKE2B 01e89aab4fcfdbf6b05a05e79ddf6a31c0bd463790edaebb8a833f9860250ba7d0273ceeb69deb87b85e5de750826229b94c974b3d2c0360b9a1b7b246c54d75 SHA512 fea42865df029f090db7a1c793947e59d713dc323ea8c51d6a91c945121fedb6928feb3e9962f1135a786c053d94d09864928048497be910d6d64b9ede0aeffc
EBUILD firefox-129.0.2.ebuild 41326 BLAKE2B c5abed4860e8542d0afb8d800906495936be3ac1f1cfa9e1de8c4ce970181afe740f02ca6447f2d2486c421a84c7bab18c930a972a01831360e21753da93db95 SHA512 b8500ba34ca68e5dcdd018d89cee27989cb17086f7aface4fac2650671f72de7aa084925bb813e0d8b388b71c365d7298d8f071c7525247d6d00d9f0181af8ca
EBUILD firefox-130.0.ebuild 41307 BLAKE2B 25bd01bff4cd06fa108355cc52aa475b92b92c42365db25ba50563f3fc8445060e8bfc7822f7e8ca091e61de12fcb0f1fa9f8abb11f9b93836f25cab4ef5239e SHA512 63f5df796711941c2430b748894061aa3441c2b7dd1e2594887bc27cade19930add01dc04e90794da4900055112a75171c6d93c962f005752dd5373414e5c332
MISC metadata.xml 2597 BLAKE2B b449997bc096ed8fb7bde41a5acb8d9f4c1c8cfc9663c06ff603cca756e8868d40049fd292a459a00d80b4e8c3a74e91e29fcb04abe87277640fe65d070f0bda SHA512 703c7f6a2b46748786145b0973a7b8439e530c96fd7c50d773efac7d5d9bf74ccb4f0c252f2701459944f2b3ced22d3e57ddf049b9aed0c8f0e094cabddda251
diff --git a/www-client/firefox/firefox-128.2.0.ebuild b/www-client/firefox/firefox-128.2.0.ebuild
new file mode 100644
index 000000000000..a6327fea1b9c
--- /dev/null
+++ b/www-client/firefox/firefox-128.2.0.ebuild
@@ -0,0 +1,1354 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz"
+
+LLVM_COMPAT=( 17 18 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+ HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.mozilla.com/firefox"
+ SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 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[@]}"
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo"
+IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg"
+IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( lto )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ clang? (
+ sys-devel/lld:${LLVM_SLOT}
+ virtual/rust:0/llvm-${LLVM_SLOT}
+ )
+ pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.26.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ !clang? ( >=virtual/rust-1.76 )
+ !elibc_glibc? ( dev-lang/rust )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ || (
+ gui-wm/tinywl
+ <gui-libs/wlroots-0.17.3[tinywl(-)]
+ )
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.101
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-73.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ 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 "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( 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
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm-r1_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # 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
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ if use lto; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo#917599
+ if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+ eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch
+ fi
+ rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die
+
+ # Workaround for bgo#915651 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+
+ # 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 ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ 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"
+
+ # Make ICU respect MAKEOPTS
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count"
+
+ # Respect MAKEOPTS all around (maybe some find+sed is better)
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.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 -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clear checksums from cargo crates we've manually patched.
+ # moz_clear_vendor_checksums xyz
+
+ # Respect choice for "jumbo-build"
+ # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431
+ if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+ local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+ elog ""
+ elog "jumbo-build defaults modified to ${my_files_per_unified_file}."
+ elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE,"
+ elog "if that fails try -jumbo-build before opening a bug report."
+ elog ""
+
+ sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \
+ python/mozbuild/mozbuild/frontend/data.py ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py"
+ sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \
+ js/src/moz.build ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build"
+ fi
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ # Configuration tests expect llvm-readelf output, bug 913130
+ READELF="llvm-readelf"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+ mozconfig_add_options_ac '' --enable-project=browser
+
+ # Set Gentoo defaults
+ if use telemetry; then
+ export MOZILLA_OFFICIAL=1
+ fi
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-disk-remnant-avoidance \
+ --disable-geckodriver \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-legacy-profile-creation \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-tests \
+ --disable-updater \
+ --disable-valgrind \
+ --disable-wmf \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # Enable JIT on riscv64 explicitly, since it's not activated automatically via "known arches" list.
+ # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default),
+ # bgo#937867.
+ use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+ # Increase the FORTIFY_SOURCE value, #910071.
+ sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only
+ fi
+
+ # LTO is handled via configure
+ filter-lto
+
+ if use lto ; 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
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ 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 ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on 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
+
+ # System-av1 fix
+ use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+ if ! use telemetry; then
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0"
+ mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0"
+ fi
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if tc-ld-is-mold && use lto; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+
+ # Install the vaapitest binary on supported arches (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 >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs"
+ sticky_pref("toolkit.telemetry.dap_enabled", false);
+ pref("toolkit.telemetry.dap_helper", "");
+ pref("toolkit.telemetry.dap_leader", "");
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local 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
+
+ # 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
+
+ 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 search-provider file."
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ # bug 835078
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
+ fi
+
+ readme.gentoo_print_elog
+
+ 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
+}