commit:     1170efe38e86b106c8bf854cd77498623a93597c
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 29 10:42:17 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Sep 29 10:43:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1170efe3

www-client/firefox: add 115.3.1

 - straight to stable on amd64 & x86.

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

 www-client/firefox/Manifest               |  100 +++
 www-client/firefox/firefox-115.3.1.ebuild | 1368 +++++++++++++++++++++++++++++
 2 files changed, 1468 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 144e4e820b93..822174c8d0b7 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -297,6 +297,106 @@ DIST firefox-115.3.0esr-xh.xpi 402437 BLAKE2B 
6831582511f5de2fc6438687c56d9f48ce
 DIST firefox-115.3.0esr-zh-CN.xpi 595480 BLAKE2B 
17f8f497c94774181b44f119c52444831eeb0e39e22493325a1e85f82b79cfad1f156de606f5bf2bc01edd28d824b614596e07988b35bca88e6485edffa520f3
 SHA512 
71f5d0a8dd9ac68a83cf0cbf28b33c8b0ad008ab4b279abd840e0e3695bf1cce852af51bb95bcc84bc6f5bae0f2b08986a6725fbefcbf2318cca8f915c7bfa08
 DIST firefox-115.3.0esr-zh-TW.xpi 597824 BLAKE2B 
e48a8fd6887f1de2cd46db6a6c13a541b9046c0f8e669db1dc8d3b6e16f0bc4e77995712876e4d0dcdd67d72020178ccae595bb69d87b9a4908c2a6ffea727ab
 SHA512 
93aad13cb9075e00796b79ea6b9f1ef7b7d5a85177c3f380ba1a7bd799d37150b48307e7f7a312a6fe4b029bce891821e712e7e725145892c04697154293cd0c
 DIST firefox-115.3.0esr.source.tar.xz 510157064 BLAKE2B 
858c7b47c07244f95327e29b52d73cea74f620ad8d496c719172cd4c812e53d84ab0fa9aaee23c93856536712bc517bf9c6e47122295c83c4c8191229145a3f6
 SHA512 
4a85095620a61dc516cfce6f288ba491a99c72a78c6dfae264c1292f9eba902e3df7101b97a6f8531114ccce421c92586e143872798aafd7aabbe98a257692ee
+DIST firefox-115.3.1esr-ach.xpi 441067 BLAKE2B 
33f3e8fdf9e11f09b1486993d2fc580213525da4c16e2963ecddd2af7c44d72c85d502d2c0e78d01a247fa87dc7021a2edefc5a1d169e426395f3aa9fd0ec7ce
 SHA512 
2d5b1c61d58ee73e0371a5a6f1c9482eb8f93043ad14cef7d5f559a2cb9350b4bcdb58777df1e067c2bf67b4e4a0c69a80c9792420ae320335aa99e441fa1d73
+DIST firefox-115.3.1esr-af.xpi 402472 BLAKE2B 
e7515490301f0d0814614fdf83f27b4e9b91d191188c16d471e1920bdd3ed6086fb7b8cbd1658e3e4f42b0d2b1d0ea6bc642e62025534e9c57e6431d0e3b7b8f
 SHA512 
7dc4b34862cbf337906d055c107c90fdece6a5db067302cd4324d3e84e2e9aa6d15c939fbb9292d5e976ee0e862545944f1429439db524a48378ac23cc226642
+DIST firefox-115.3.1esr-an.xpi 482928 BLAKE2B 
c5bc3cca7a40bc65ac2ec71912686e36f268c2d983a5c3d80f86d312414c0b276c68cd925a7ac8cb6d00b8aa960fa3d474bde4e6dd3a43c84045ae8b0d42dc3b
 SHA512 
b6f38e833a488668fc305f5d24adda02a6d95bdc7baafcfcee0b8667ba0002cc0e3cbb9795408c7d200f6e1e7fdd1cc8320db7040c5486b9eb9a0621e5b3fd20
+DIST firefox-115.3.1esr-ar.xpi 549543 BLAKE2B 
1fe3cb33e97f241d6aa5b7d08d4b27ef75c7f242698b77e4643f933b6a15bf03d03a9cd5b3212c08d698a6bd9977d59e56c41f97cb2cc107dc96f85540b9f390
 SHA512 
facc6016dff3468be4c804a5ca3a2011bddbba9b82808ea42e02510e6a64350a1e692e5714a9ba4dfeaa9ce81d202179e825653a076f5f355ad84c19ebba8bd4
+DIST firefox-115.3.1esr-ast.xpi 477360 BLAKE2B 
14789292d64cfbe919e74aa0348055dd5de503f1ce410dc31f46a337bd1b5727967fcf15d6f7f71387ac64c5a601e5071525e95bdf759c47ce8894d3a8813be6
 SHA512 
6836962f9dae40acfc0ba13d82caeae20d20ffef1e7e8243b4e4d1e46458f8decff9d8aedef7191e76b7863092f4d50c8bad6fb126bf613e506ef60522238928
+DIST firefox-115.3.1esr-az.xpi 470745 BLAKE2B 
765f4d47bbfa13f2227c3a8f3784ce34651aac8c8b0b719c6088665351f0f7894a18cf84d87762ff701f93fad9a7169238799c7d0ba023210b290ffafb0eb9a7
 SHA512 
631c16318e9c56e34639301950ea6a42b92f68d63f3c4dba4daf3380db5c4fb0220443bee21b571f4c2e50896c917339de3ff3f6adbc58c520504844d9bd7f45
+DIST firefox-115.3.1esr-be.xpi 647094 BLAKE2B 
61d96225ad03fe4f23fe2bc439da19099febf1b0ef074e884b79af944db226e747b97946a351f48b52e15bbc6fc7f8acec5e59adb81e36e7e2ad3ab9cd1a4151
 SHA512 
720ed997939c16acb614c9511b35fe70208b11ee285af57851e44f08949624e0aeb4b51d5753befc73b160650035d9dcf5c9f8d209ef72a407ef98acf5ef7047
+DIST firefox-115.3.1esr-bg.xpi 564179 BLAKE2B 
745dee650cd8bbdb8d29ad895b635243f8259b64d227bf7d707c0c9c4b44f73e11cf3c9eb41c62c3f5671540cf1296c3274fbcf7d0c5d8e6be2b2dc12c59fdec
 SHA512 
0d3e56f2a8e34c4f4400c33dceb7997834920d4d37f99f885b1611bc1114094e66e85bd9bc2b8e05ba2d143f63a73dea0b92c762b57dac6ef9344a6d6bdffeaf
+DIST firefox-115.3.1esr-bn.xpi 558436 BLAKE2B 
46310a605eecc6516589c38b7afdff814771f0480b79c632487745e8a9e229cdee9174812ab53b56faf3b2474e3be086e55d72dd86feb99b5b84a3f002934d29
 SHA512 
9142f729eb55551175812091b0c2fe59706bf705815a89d3447529eca97c54308acbc76e65f80d4723642b7fd8a2592c005c1db37ac9171165642bc9afd6aa8d
+DIST firefox-115.3.1esr-br.xpi 534387 BLAKE2B 
c5a2ef202920b3e9cd4b06f5f024ac4abbf0cf8834faf414e528d0b1fac3a201fc0bff1dad423ee8e5593ccb91bac66987288595036770d893becf9a0c33978b
 SHA512 
34c58c5e7d627cc2230b081f24e3fa15c4b968370db90741f81b7d347e200ac01735bae66477042bcfa269b2c8e6f44f1485f1c8232449a5686133fd696e5a69
+DIST firefox-115.3.1esr-bs.xpi 441266 BLAKE2B 
66b78e48bb585d320c9b41674702950ed1c75a1aebf7608bcb71cfc109a540dd5dceebb75fbdfc029d4753155dd8a52830a84860bf4d6b8ffec8d85db16d1c08
 SHA512 
a2f93da5a503fe9975e615f9821a0287664f9ebd809478c99a9befd6c5bb0676eb2679b6973ebe98721a35a8097d2fcc0c859d4ce8c21614553ee7d886fc0cd0
+DIST firefox-115.3.1esr-ca-valencia.xpi 521950 BLAKE2B 
1220ea06d92e08602666a99b387cbe27eb165c8b970a3bfc05a12c1673b0954c28378849a2d06bf8a66a1b2cb4c53f391d9bea2cd05588ed084e1a2538c693b6
 SHA512 
2d82a72a83598f99940ab0f62ed58721eff22087f7f549651d400e3c380021d5c32248d13033a1eefbda93a2a1cab8def9dbfca788df556434c61ff0ca647703
+DIST firefox-115.3.1esr-ca.xpi 545471 BLAKE2B 
46b3a63ff09244da8ee558cb9e943594c69ac56e00fff769fb5d7e9ab6a57836ae7dbcf731074bd3ff525ceb3b56ad0820c2efa0410e7019cf13758d2a88d75d
 SHA512 
6e3b4bda70a862d9b8fbba3c9dc9acae65379fb0860f280a07bcd3b8fc35b59c4887b77977303f40a0928b241412df4bc17b40e0555c07ad57e9bf9563dc5a44
+DIST firefox-115.3.1esr-cak.xpi 564570 BLAKE2B 
4422777d5f12cb83f95f060c1fdfaeaa43c640c02eb86228b63ec3c14e6b07b272732a1c8a5304105da3f62fe259847dd4ba08bda12227a0354f10ae6fa6e695
 SHA512 
5b8b66b7f428be9b9e769794e69bb61076030ed303b195053e67a4250eddbb8cf27171730101f4b9c37bf9884cb5550766ec8531f201f87bd89aaf9287d9287c
+DIST firefox-115.3.1esr-cs.xpi 592272 BLAKE2B 
d601f20dec3a423d88c7b8c5c15213e07465e99b365aad333c54f5922a2a864ba8ac92f58175623f765731391d68fccc83dae6e72670dff8b0d64be1eb4d88d5
 SHA512 
4d947077a9beed5c86a44fb9d2d6ee691f57ec6ff4757c9d2f66e697ac1bd34ed6d127e66a45ff02d548870f5da207f2b95927648d4b40918a65e58496555399
+DIST firefox-115.3.1esr-cy.xpi 564694 BLAKE2B 
2c3d2683e9adb334d7bc38c6544cf8b72bda2800081265477b4285f5271ab8c99de07b3ec470cadd062ca40b3f14313bef00cca2c4ea1c846f2feed3a13bac04
 SHA512 
d2f3693cbede3c1a3aa6bb80da0b1b2d2269c86500e70d268da96fd7847f5a13121d41e05de4740df3851c5c4419ff686625eace2ca73d2d5fee7e4df40a4a9a
+DIST firefox-115.3.1esr-da.xpi 554018 BLAKE2B 
d167721338d4bea77a20ef6a105dfe78d24f9e11b11f08acc5718d9cb4a4a039713bbf740769883f456ccf1470b3b8d05b9f6468706ac29987d41aaf9a8e3c9f
 SHA512 
13a6532935e20561fd0971d5527f600701b558450108b29bcdb6b0ed61b58f9fbb5d2676dd2505d4b4f3e032be6dc30497e39518da04e264c87300e4c48e6995
+DIST firefox-115.3.1esr-de.xpi 574627 BLAKE2B 
ebe84e83ee1823e50d9386347adbbd9e66a6fe73e4e538543ee5008e79639b51d8dff157d8801d277e519e1134b0f35052c787cbe816be5a00390c51aaf67cba
 SHA512 
a9f094c76a1de90605855c6fea42598577892cdf809e96a691c7073612d318946e4a7749494239c457f074eb9b0f6eebf9c43a209c8702dc558d07888e8292a7
+DIST firefox-115.3.1esr-dsb.xpi 589330 BLAKE2B 
50f4d549f32f93b82170343f0408e3fa0d22f0fa37aac2ec27c725719e85f3b4ba8e8300cb8d5ad64cb105f1afa222013ba2088edbceb254f750b273f62e8407
 SHA512 
964c83251cef56e64e57bbdfb43561cc595a0e0bf970c41c7592ac66497639b07fa7cd19b5341865f9f155d1fe03dfc4fbb366a1d3e77bdc69d78f1c45f20b97
+DIST firefox-115.3.1esr-el.xpi 663763 BLAKE2B 
61bff22e78b5b42139befb5aebd821455d80ec4b4e442a5cdbfe0d7ad1635c5ff4551fcce6da8bb0c7a43d050d2b5630df4bcb0cfab76dd5faf644527fb694c7
 SHA512 
b7c20e19b545e4b407b0905bfb40cd60d559fc0cee08db46555112103a5bd1bc9d623f27e3109c73a29f82e7f6b650e5494d49d6d973d15dc1449fa458f65b4b
+DIST firefox-115.3.1esr-en-CA.xpi 519410 BLAKE2B 
5ff9854908e5a7687eaa83f1266c360a96afc3da336678985c9c006f26b3d4f567d17a2a682a5e2a381d6a7132f98c091e0c4b8be23fcbef57bbe1e38b1034a8
 SHA512 
7e6506de956d41901eca9635540b6e05c37a6c320a562abee2a948699a8ea51706139f70852cd048979275f6f84c3e6c04e2c2c9b3b3313585c9a416a6721363
+DIST firefox-115.3.1esr-en-GB.xpi 531049 BLAKE2B 
f04d2d7c4cb02524e947dd3ed8346fe7dd81b09e92390ef51061888ba7457964960a13da93b648f0a8258fcf34256c830c6836d28f1c69665383e3996777c0b0
 SHA512 
fc46657477385e7d390eda3488c6a337d9c902b767c915909a838a78fbe7626df69990a110bbf5828a407aa28762546cc57e82ed1e6137af5542dc83a4283fa3
+DIST firefox-115.3.1esr-eo.xpi 556390 BLAKE2B 
460e805f9610c52cfdb488877c307c5dd9561d07d42ae85a06c8b235cf5f6f02d96d8f92b785974f8944ecb38fe014a5cc2e5676490efb93351cbba3be09bb17
 SHA512 
7f647bbe227121fb6b7147337cd1e68a39ca81f2caaf6c683419775eca69fbb543855bd516cdfcb352770e8cfdbd33bccf214861f4527d92a13a40097af8746d
+DIST firefox-115.3.1esr-es-AR.xpi 568958 BLAKE2B 
7ce388ac63b7a6a211776db86996527c44d834371fd32f5f8782688d50f856baf8f8c0b6a7626721e26d528ba2a6a7904cec3ffd4f76d71a0d7af864d2010f74
 SHA512 
4ae750238394a2e14bf8ea98f24b1f6180a05304bc3c7ceb3b82d5e0a131f1dcd62246e8e558a06cfa1ac3fc9b27396f6b1365ac40dd8e77df164beadfc1799c
+DIST firefox-115.3.1esr-es-CL.xpi 568610 BLAKE2B 
9fa922289eb0a57a177b761d0640deff773d0614135dc130b0f3633be03707760450b8779873034496f4a3c659d8726e4688572f64a10c0e95c20114e0d5c91d
 SHA512 
e38568abc3ac4f78f887ffb35ae47b5316e6351194c747588fd0317a7615bcea661086ccc74fa8911577c0e013b336847e8a0ef976ee2e11c388d9a1b9c66d01
+DIST firefox-115.3.1esr-es-ES.xpi 562037 BLAKE2B 
bf367cb30f8fdda2d0187abf13e045f84198aa92e7017a71d95899dc1668287b8b416c11b964a23f230ed915e478a64262744d88dd3b61fcf5ab6a539f9d628e
 SHA512 
e07ad6bfb2b608fd4abe4eb4a7283fc9e84eda6d02f4d669254d326cc3da6b60edd7ba83a94a068040298903361f67d421dd791f498defe7f1529cd7641a9f38
+DIST firefox-115.3.1esr-es-MX.xpi 565321 BLAKE2B 
bdec7e76c7f1f65b0e7181c997ebf3761ebb74d2377881cda7a7590f4cc0f7a365397a3fd1881ea42de879bee0b2744deb4b997d54a52b0421566187ff02c6d0
 SHA512 
449d27bad5e6d5be963fe8dd9188a33d8d551625eb818129fdde67ea58c94711a98645de7f89edbbb0d528b8e8927531e1659679d79a33eb896d378131b38cf4
+DIST firefox-115.3.1esr-et.xpi 516131 BLAKE2B 
ca6688ef1d2ef078b4ea51f854cfaec11fd1736390dcc0da45cdab4ba644c62ddee3578f82a0ec2dc39a2767dd8ea9c77c54b25f2a462682f0ba1d424d825ee9
 SHA512 
8d702ba83696a1adb032b3b7a321731e950bdfe7aa4ac8bcebacd1594c347737cef555852202a618d46f4c2e664c988908b11bd880c7ae676e99fc4cdea8df8c
+DIST firefox-115.3.1esr-eu.xpi 551622 BLAKE2B 
86a9711fb4d8623382f9d3aefbb682b7363c68c9e47af69983cc9bcc9a42c8f97c9a8b4b63267126c6ffef65ee754d0a12e2e1261dc83b9ccb5661fc755d20f8
 SHA512 
29049e4ef213ea82998880f658aec36bcaf1e1ef1a654bbee318d532f0c35cf3a0b9892e4c285980cd3e6ecc43f99167390afb7f6d29de0f37006d1803da883c
+DIST firefox-115.3.1esr-fa.xpi 564540 BLAKE2B 
e77b5b9732089bf0fca596d3af28964be82f6fb7848ab89cae77ae93c6ed942fc3bda565ae333c4e732963b17c5170c51bd1888dd34d8707fc23ee2bc20ddad2
 SHA512 
d01cdac0b519a1a1144d08d8d90bf15354ad8ee1c3dc570f539abf339478b7f8d0856b458f1717405b5d12433b7a7d3d1e0a894ef8430ec82c77c7b5cece9df2
+DIST firefox-115.3.1esr-ff.xpi 457110 BLAKE2B 
dc93bdd754537a7b3a62d9dd8a423f4adb981683fdf8cec63cb6b7e7ad7d4fe4885d99c8aa0b05f1a5aefe8c92237266eb5938f4c10c322770595c74d234022d
 SHA512 
70fec795761ab4e6dafd3751c9d103987b5bc620afbd7e6cadab6d4626c17a84a971306d80d2b1c30708e7a19265a8ab0ba9ec14b85061269b88b966d230dbf0
+DIST firefox-115.3.1esr-fi.xpi 551231 BLAKE2B 
b9d5d0e68ce64838eb2991aa88793bf71d3522d450ee112cf33de6cf5cdb08a6ae9d420912747eaad0c354c4f31e9458a3df03491e19be18fdeb649d08168f2e
 SHA512 
8548d6615c13d7123a20494d9b812f12d8952937af85904040a0fbb6923639153da667103cf7ed36bd01e0052a8eadcb3446b1540455e4eda055f6e99e83aa2c
+DIST firefox-115.3.1esr-fr.xpi 580609 BLAKE2B 
5b29c3d5f50dd393b237fe97a149c2025f5f78fd59f646c1c61da7db386053198f71637383736de438bd1ebd02b959f39756069d10fb069ced4611ce41cbfc79
 SHA512 
712dd0e2a77db7b17502208576c186eee849ccc649c49fbbfef538928c121c761c249c642aacf399f031b6689ac8b49f76c5e5d3e69c48752412121f107e491a
+DIST firefox-115.3.1esr-fur.xpi 573083 BLAKE2B 
2a72cbe73d062599a9d9ec41f5341d07c9014a1c73c5832a9fc33e836cacfab04af965891076b91beda861372617e2f37081b93a1659e74932640f056bd98b07
 SHA512 
472b06639848053c5ab29aa25de01a7e5bd35dce5c4457ed228811634d780a9e2c22eef46b72b05180f2d152bcc9837f834ab88ea1e46265225a3de470ba7a54
+DIST firefox-115.3.1esr-fy-NL.xpi 564937 BLAKE2B 
ce69073a5e40bcfb9c5322cea6b3d141ace1517d18b09f6e436963a609c010d3d360d5958f073d1821e62079bc53005f2c79df655efce1bb46cb62b28da3bbde
 SHA512 
faa0ec725513ea3157722c48556325f324c0cff23eb6691aaa5288c259bf61a0f0890c8fb70d944f1c3abd64a77386d45468db529df518e6d95909a9440f8ff3
+DIST firefox-115.3.1esr-ga-IE.xpi 454326 BLAKE2B 
a687ddee4098f535668ef915b03b1d3b72df6f5503cb44c21113f4fec39e685022b41ae46479b7eed72da7f1a233638af9e86034f67552401d0476b512de277e
 SHA512 
930decbe92c4fd6fcf080af1702e98b1aa6372278c2e575ac7a59adf1a8f241ab28f7a1235fe6417a84e8a6cefc6e93af9a9142cd74ff5a158dec049c76c51ab
+DIST firefox-115.3.1esr-gd.xpi 566964 BLAKE2B 
c87859dde5cf3ddcc82a2b0077617b70f9f4ec87c22f4491c026f13849f5f9cb93e5582a7d0d522bedb1e9dce0c4ab31241acbd5f62c64d2ecd94a47a2092b38
 SHA512 
275d52bc4a908789951819579d5d4ccd453b791df22e438f2d9fb0c3fe707791079bc4a74616e89de3cf1d836608e9ac83ab74b959668dd4411fc854a51295b9
+DIST firefox-115.3.1esr-gl.xpi 565470 BLAKE2B 
119a9fc309c6d214e230bf5aadbf45ba4fdb8ef4b0264e65d41c1eeec8aab9d300c067006149eb668d592b61497844827f061c798021c8c4fded487eaed9b1ef
 SHA512 
b98098a6bd3766329bab2424e9c80980a0500c705724036a1711e8c4776a949b6c52e793d17f2b681345a5018c4e8fbeba188ac4a5ce74831dbc8b0968501577
+DIST firefox-115.3.1esr-gn.xpi 577580 BLAKE2B 
1f13132685d4076ced4526b28f734bcd75729f9156e05a3f7f15d2a470f13e5b9d79c76673931be419405c9926b86ee3f5b45d5cdab6259a7c7cf84892f1bf94
 SHA512 
f944daa60a47822bb201a57c293bb4b3fcf497610ccc15d246c94be9f19826e24bd994d1877849399217165b90843926a51d7f4a9acba2a7d4d67ca2842a025a
+DIST firefox-115.3.1esr-gu-IN.xpi 506689 BLAKE2B 
622a3254c5f0bdcc12ebee61cab673a5d2a73518c5b8e75be5617f74ee4455c9ddb5b5104dac67bcc6edbcc04977b92be802d1eea3bb52f5faacb684850c3d06
 SHA512 
e95fef0b25f3a1e66998c1735f93e2c17d88e7a5cd221b276f76321ff1e1b2040dced66a8c149532367bb8f6fcb6387392bf81e093c6813e89f3455c40bc92ad
+DIST firefox-115.3.1esr-he.xpi 574386 BLAKE2B 
51f3f4cb53cc9d78af8a9ff3e013ddfb0ea06efb245d04e41808c653053ec4fa00c70156a12897c92d48dd17107b23dd721b256159a666a3a3045c0f596e6d6d
 SHA512 
629c48a6743614adc9035fa832caf5a9ee3ff28414a1b222260aeabc4cd4ea5c84c66ca96ee02ea4fbd1d7a0ea8d46bbaa127a1e2eb1ee406899bd35f0dd37e1
+DIST firefox-115.3.1esr-hi-IN.xpi 538819 BLAKE2B 
53dfde112fa90d9457df1e7efdc4809c55b5b6e45389a6dc87abb1b1945465eb4b58c74036d60db8e668a79b49c95de5ff3f285fc70fa723e19772f7262df931
 SHA512 
6c714b71349f2f67b0305e98c914920bbb3ec6adbd951efa54dcecbdeb05a560af709759b5a16465c6c898f98becd723127247cead9a7c69c6ff3b2ed31f7f6f
+DIST firefox-115.3.1esr-hr.xpi 531640 BLAKE2B 
bbbb1a06422768351ba29476a484c219d0cd2bc65594ed40f74102e8f20448698768cc95cb043eab10b4500d797e07c74abb84f3f2507167ffe2b4ed73e93313
 SHA512 
47136161d2b3869530fb8be424af40f01a8a16479ef4cb4bf030a480f94348cfb35d2fa259961a7225ecce6c7e0489979b39c52c904c1003fa8d8c94b63bb172
+DIST firefox-115.3.1esr-hsb.xpi 585525 BLAKE2B 
a620a2358d8169f66789b7cc6fba51afc3e08744f0cf67c9f8b935f7e571004f38d9438ca5ba1ae0b6f0b96dd1e8dd3d557940306afe6adb951f002d813d2907
 SHA512 
7d63b9b98b9256ca98908839af69866fb4f3f17aee1e757c6617179ee6c96c6cc29e99b37049de772f460ca854739bd0af02c90cb27dfb17b5b6dd581659cc4e
+DIST firefox-115.3.1esr-hu.xpi 588966 BLAKE2B 
07a4e0052b9b6844324826c00d1f475a51e78e8714af728d385d4e9ce6b621a1d98ec462440b0f8323cb749d58fbd91aa6765a29be4567ba9b14abc6e245d09f
 SHA512 
db0773e747f2701d020340b737fe0c5ff5b4266f281778b69b038d2a4c7a984a2deb2a1648360ea3f54d67e2d8669891dc0486112db01c290439506da35e5786
+DIST firefox-115.3.1esr-hy-AM.xpi 579192 BLAKE2B 
8140f16347f45b3f920c680b2ab2e77f69b179093fd47e42d300753c632a86ec55f0ff6831815d55f38e249e37ae38086dd5da7d3eaf782f008c381007da2e69
 SHA512 
a140077e228db9b69ea91ffceeab8a53e910d5aefddc116129883fc94b68bc7f0f7a1dfcf6e40ec30007a9bde107c51972fbf3d24761950621905785a7bf4ad0
+DIST firefox-115.3.1esr-ia.xpi 553082 BLAKE2B 
5da91dfc553689ebca8f4b4bf0e632f5ea78867811950109a515776ecce0c7088feee0d31ea9fc002130aa7832bc364f35f494dc22c5763b5b04aaace34e3868
 SHA512 
ec14400fc0e33f3f7633ea18acf3fe6c94045d0d19f0f4678b9669e1c115f32111553894511c100d546639d7a9052c5f149b0c15f7e6d93902850e5c973df46f
+DIST firefox-115.3.1esr-id.xpi 537743 BLAKE2B 
b36ace23cbde058576d6f1967286762143c672f836f5b56b480216470e29df0c458c5ee8ef3f2edce069318fa9f0101a7aec2b5be1cb8f1ac3e4a405ef8836ee
 SHA512 
420646750977077658dc5a540f09f9282c8ca9687beba2214e0761fddec46e394f51aa90be61d2d61b9446680a13dbf2a967c27f9f9ab5985cd962e963f06d11
+DIST firefox-115.3.1esr-is.xpi 560793 BLAKE2B 
203e25a082ac2934f2a44c3b6d9b12822b76566fc8f4e9908831f0d1aa2fa2bff0619adeb94eaacfa1e5a4f77d183b78ea88d9242363ef5d0ea430f2774ebef8
 SHA512 
5e7b1317788a5f99e55a86a268b9bf4b8821967f0bfa6ff23308c198d3984b2d3756c4f769593b52ca1466faa1c89d150f9f249a437727ff1bc74e8f7d6623ef
+DIST firefox-115.3.1esr-it.xpi 507474 BLAKE2B 
e53f01843fed1c30007aa90af8558cdb65dee57a762dac307112110592e1e0c2d812bd5766eec9f244fbbc5264f20955727198bd1b72c430e6b3e41ef42397a8
 SHA512 
fdf0a27ad5f0a5508eb212f2154ceebe59b9adce66524f0dc94466ca2f51eb3888a58da75745c8a4ff183957bfe2ddd4a55d5647d12b8265d50040291e04ea35
+DIST firefox-115.3.1esr-ja.xpi 634403 BLAKE2B 
1f2280c64d6bb027e7d28a212dca62316810269cdb1a65a66b6abe1ba7fc08470dda63ef4042c54090024b8eeb6aa3e016f1c797b64f6d3dbcf7b6e002775365
 SHA512 
ba3b6dcb4fd6ffe6152902512ab2ae812055028ea83c10719c329ee1b579547e894905bff39f203d07a017b380bd961434876e8bd8dd299bbf36781cd8938fa3
+DIST firefox-115.3.1esr-ka.xpi 610744 BLAKE2B 
a8b1e9469ebbdeeba58838fcc901c179892aedbc3cd65bc269824ba34dc676668555efb13cf64a84ef5619d684c69de7950f28e790d43d3856b22e95afcff256
 SHA512 
e673b51d5182629b7b2c4285011c0891c3c258fd49db61ee02a3eaedac6c93320013a345f47bd7ec6c374c7e3107532e1e44a21e196ec232db34473013bdc2f7
+DIST firefox-115.3.1esr-kab.xpi 562649 BLAKE2B 
9caee324f78b75a30a15adb7bd6cb7769dff5df61285d8b689581930621abd5798933ccebfd196fbfdf208e987fc5266e1471a0780e466d24476ddbc292b0427
 SHA512 
06507bd14e0c891648adf288acfc5043d258f619c2b7d3bd7bb768ff926b5936d356451a5c8dd8abd969a24a189c7fec4e6f73acbccd1cca72867300e93b326d
+DIST firefox-115.3.1esr-kk.xpi 639130 BLAKE2B 
cfff711c8a0b5a840aba6f2f214baa6eebd741315674eb571ec9e1b9ded94f9bcdf5d7e3a3a41b279f708ac625816df53073d528c7d463690c33b745d86a164a
 SHA512 
f5570db0d3d0d77ecd5142570a95bcaf5a84a745304a98c71f53d925ce8f4a7f3b22a841f60890f259673a1a00194507d4714fe3c44da750f0a10e04937f5ea1
+DIST firefox-115.3.1esr-km.xpi 508107 BLAKE2B 
a0447c2a650e12b6738b8ae441ac6bc50f42e02a3f8e64363eeb1e5ddfae13af2d9436245c2cf62220049d10a5f28d8515eab198d04640b21fe2dd1206a97994
 SHA512 
1f77c7ccff08f060c4be82775915f6fe54143f724bdd9c13f30c4675850f737e130138fe18faecbe6672ece0b4a34e9c2f472534f4c97ac2fb80ab7d4b59a802
+DIST firefox-115.3.1esr-kn.xpi 473765 BLAKE2B 
e7bd942d110bd66e26ade1d79636d850d6ac8902191683079dfc0ffd7003be735a939b2b7b551ad5d83653a24e6a70afdc6505aaf6f3c372792d2937836147bb
 SHA512 
ae9548d5744d37a72daa18eb736f4312f30f81de9c24630083ff4c32fbf7fb7364116c56ba90b8e113b58add314065dca239e9be583a588af0cab51ec9d54182
+DIST firefox-115.3.1esr-ko.xpi 600384 BLAKE2B 
d7c626686db6bc085f9bf1eafe435f38d5686c0b327ebe6d2e8788e24d63eaaa978708a749d139b208ad58a23c9287c5d29051d6d5896464b1714bd413fd1a06
 SHA512 
25acec4d27742727559fe255ca796ce70b980099a5886e80a5b680a4533f5791cce2e537d8fb7e4bad8ec1d5c47d4c955ad1e46b75a3c78f4dda7f4fecbe58c5
+DIST firefox-115.3.1esr-lij.xpi 463744 BLAKE2B 
67dfda5422b547d2110fdff426ebb649bf614958465bed5875b470d279c981146dd11315c7e7ba83a13bd2376fa42c560dbf2ca691236cf2c292876dce674a23
 SHA512 
dd10478c6fe1b4dd5a74913d737c973511429d0496869c30d10a8517212655ea529cbd633c734353d522259cbeb69f2c9cf559cee5e4ee700984d59a1624077f
+DIST firefox-115.3.1esr-lt.xpi 548290 BLAKE2B 
e6a8d3f353bf10f4064102c1eb22944d8e7a79181c081cabbd98f1e2ef97cd198bb0c9ffaad04795210403a421f25959cf3779f0cb238436b75d6e1bea435227
 SHA512 
4ab2a278cf0e9f6aa63914337eb3cf87a74c30bda970764a00ab1b5813a1488aa4ad67d1b84d0c8c0bb0cd56b9f924d1c72be68dbb789e34e9eec57fc0a15280
+DIST firefox-115.3.1esr-lv.xpi 450735 BLAKE2B 
cf8be1e12a9ba36d149fd234c2fe7781a328efbef63d4b99b5b03463aaa05020c6ca9635337ab2c65c927571526deb66e55aeb839649e8e9d29df335d005cbd4
 SHA512 
fae696df7082f162d961c18e5a8db317124c137f2617bfee610ce4e0eff894c6089fb9acba94aed97d7f3a2e931e3548ec5d026e078224e8f452f1e4b84e9980
+DIST firefox-115.3.1esr-mk.xpi 470093 BLAKE2B 
3a778d21aeb66d34d0e8e909c3a2d32f171789c62b2947b0fc52985f1569a0dbd47aa656fa8475adf38bef75552f59f86a25f20ce12215c73ecec29c5f52bf53
 SHA512 
031b2f0f228dac6c6e66d0c138c55cbb89c67eb4c8a1323b3d27d245d9f10ca16879f529017d3799408a77a2c990c09a8e629fb323374a596e16a9c2fa2bccb2
+DIST firefox-115.3.1esr-mr.xpi 510470 BLAKE2B 
7c0caadebaa391c8bd54bcc7552c8752ed5b01de1271c6f14c226da7c942a8566e16d47e27525f8c014187d855bd8045b453989a43a7698d1ef9d64afcf9cfda
 SHA512 
6c2a9aa308846e85bc6923dcd7b1ae33c6fb64520548fb62d5610ca55482c9b064ba80396534e4690421b120fb24a48a07393448a4039ef1b0d11b8a3c8a05ce
+DIST firefox-115.3.1esr-ms.xpi 431287 BLAKE2B 
02194525a145d1679c65382b762803f35d2d572634e03e7ce0004b8131da1ed9439fc65835d17ad5effe0116769715427fe3a329921eeab46c7d4e427a239d50
 SHA512 
55cd580c26af2a1d975ef1891a5bb09955ae8b479ad08bb6f810f96465f8dae6a0d1f7945584bb75e56356f854821c61bc2dc185a2c7b30d0e22cc3148e16463
+DIST firefox-115.3.1esr-my.xpi 493662 BLAKE2B 
695cd8e36905aba4ee8b31aaa9aef8f03d9666534bea38f77d9e6ee33e9fc0d6b67a9c413be2ceec2bf0c6a043148dc425fd6fbc47facd2d05b7f43634d1a156
 SHA512 
41b1e67d963ace3804a705cb223b2f075721b86a65e69c04576de741dac4f3561a0308b121ac482adb31aabfcd4d875a39ce54a3ed96425b1a18f2112339d998
+DIST firefox-115.3.1esr-nb-NO.xpi 548970 BLAKE2B 
5ca6eb7f90aaa078c6d0d70748d1d22b726942918e11b460083b2c2fafe0f47737062fe3fe623c1838cd9e3b70102ca987f88dc6d6dffa07bbdba79f2ac75b8c
 SHA512 
d92b771e6a97b84a8c7ec44ad578c9893489eb0ed46cd9d11176b0730619130cd66ac4c989cfafcb0b6e7aeaab571ddbb65bac15a9ba162f490eb45ea3a3f1ac
+DIST firefox-115.3.1esr-ne-NP.xpi 468989 BLAKE2B 
a66105a44cfe758309254554b7e1d8963e51183c2e7ab9b03da06c11400c51113aed918169794b30551d57dd428c4f8364e69f9ddd360d78e1011e7c16671cbb
 SHA512 
0ff6be570d5a8b5e2836d9a92d63918a7270ec5901436a9532bc58c1025e9b1c845e75e70d9afcfcc51c63d471d191e762d14709235e26f45f3029209955d2f2
+DIST firefox-115.3.1esr-nl.xpi 559192 BLAKE2B 
f7794a8103b4f34db5e379314a4cb6acf03ec03006c3f9317ec6dfd4286e83061f2965a14d29f5b43b3777fe1794a3644ec9c81bd2cbd3836339399480073365
 SHA512 
77245f95fe94bd2d1a8d0f4c95316576418614d47895c905e3c186d7b7ee929002d70ea77465b5de427ff5431c1d6b2621ffc922f2df1439019eee7b96eaa126
+DIST firefox-115.3.1esr-nn-NO.xpi 551971 BLAKE2B 
18b4ebeab07de6ae48767ed8eaed1016ad32ba904599975e6113455b094ba94a2c9e98f9ea872befb6b8ca50ea7f1de136f3495163cc160ff6f732031dbedd64
 SHA512 
de98095c4e37f2231d265ff0a35d1dc94764ec8d1ba74bfbc783930896ed357a86cca9272cc8c1ff0f26291475038e2d42fab8c0c809524c39b7499c86610ab1
+DIST firefox-115.3.1esr-oc.xpi 572131 BLAKE2B 
02123533f72595e600f078027e5695a792beb825f314fb094de12be9ac32bbf6e30c882f4bec37630ee195d5ef00c69a183599aa3211672c3cabe900a8ce0b67
 SHA512 
f38b7da71cacc16a7ef243ee29e9fcd4ef8548bc40ceacca1f39884e7d6e8f0e8a6bab14828220f65e79d47e5a3ddbaddf6fb4e682ed7df3c3018dbca3d0b0a8
+DIST firefox-115.3.1esr-pa-IN.xpi 626111 BLAKE2B 
8ee7a3d82b59e8810b145010671d9f88157326ff4262418a23a6485d1ad520369f100a2d8c8184c146c7c92e697055f8b7dde7a162c3bd045dfc522bdd663aae
 SHA512 
1f18635001fac6690fc57e804dbaf1e2bddfc3d3cea5bfef6419abc11db2f12edcd963019994d7cfa8fa305771e6ac00203c3b0f8a66751e6b61106a1014d77f
+DIST firefox-115.3.1esr-pl.xpi 579828 BLAKE2B 
5c216acf4dc47638cbbe698f0231e9950addb2980a4748c1f5668937491213c3dc91cf6af9c9950d9510d634e3ead1f5be618e46604a349ae3ccbf223869ceb0
 SHA512 
46806dcadb032db3dc8d9af51e7168c9e80edb7212dacc72d43c795b32030536632ed80763b826d32f9cbce13a2feacea2a2114c446ae2adfc9b4fb61e6b3145
+DIST firefox-115.3.1esr-pt-BR.xpi 563945 BLAKE2B 
8df980b4f4ed7ea8fb2b3219d54d79c3c2186122223a45604a5d91ba415648e94633f3e40aad0db8af7f1f21063a822764f3e38a161e44eb95e35a24b0641481
 SHA512 
b9d794710787edf05c053f9661f3e0311d28a10694b85f2b24ca142e54ef9fcf9607be9024217bcf0c12e2a755e2e7018af3867d19848b7dca44abe49f3eaf1f
+DIST firefox-115.3.1esr-pt-PT.xpi 569055 BLAKE2B 
3e7e5ebe3e5cd5227ea5c451ee36e592f8b6d712da2283d179e9c8dc9895a371d10c6ed60d80d49e64a05e26d9c9f17ffd0814b9db2e2d24940998a774eee9fe
 SHA512 
115489f8051d3c4ae7eb3305581c7d9accf9f1103bc43bc8031424b556f1cde9b9fb9738fb73b633d5d503a6edf824288463df699e59380531908a11909691e5
+DIST firefox-115.3.1esr-rm.xpi 558678 BLAKE2B 
8d3c7a79415e677f1117ef721ff3763eb0d0c76abd2fa7d67950f0134029dd0493870116beffb45f70a1284dacb68dc97890e94c67905a4eec4d89752660d6ae
 SHA512 
f41abc4d54be5ccbd71ae1035d4fc33c0f26b8f50090bcfaae6702fcf604a4ff1c05da1c003f8e0f23f376eaf9558b924fc7786985c9ff1992ed06e09d6d743e
+DIST firefox-115.3.1esr-ro.xpi 524799 BLAKE2B 
408704ede12cdf65295126c0f1003df86b9c7e48401d8ca2d9263cd917f807401de725c437fb0f9eddc10f02a622509e0fe83695788a2ee45a8da9ce1230aeb4
 SHA512 
8cac4fc498ce29695c68a4de0cb92bc7082206fa347580f203512e4863294f54935626bd9bc25637e256fab5e4a124ae3da64f67aaf71359b9a1a23f6b5fffec
+DIST firefox-115.3.1esr-ru.xpi 651420 BLAKE2B 
2218488963b40ca07bdea713573e3ca6fa335f101c76f5611d8ad92f593ddf6f8bcad3c99274fd6496094ffba97beed5e562eb1205bdf16af526498976f7f7ce
 SHA512 
c1755ba6879fa5cec34c0e6f4e75b2f3fb0a9c7f228f00561e5d04fdafbcc41d77138936bef84bf7ab5555a080b445eb3e95c82cb6b851ee7f8a70bed83ee8ab
+DIST firefox-115.3.1esr-sc.xpi 535142 BLAKE2B 
baab57b6175c97b704e0fad44289c07fbc7da0399cbd7727dde8beed522a088b01b0b2b68b9505ae8a840a7a17cb6dc532d60c1ebcb6d97a30a0bacf46eea948
 SHA512 
89e7553d3c38435bf6df25541f8313347d36a39e2835498be23f714a37944be6649b3f516809aa9d77206f4a70ef141e68285cb5b269418db00a42363b7c9e15
+DIST firefox-115.3.1esr-sco.xpi 489683 BLAKE2B 
878bc5f2495701bfa97e75c46d9a29c1f6c97ee3aaa29b92281863cdfca7d86d55ea210d8d38f9b9aafa91f847c450741b661004486ff49f2f6141f1ae6f5b43
 SHA512 
782cc26fbda92704b64e78291011a7e0aef8514da57cb85348d692281eb878645ab582c607f1ad08671fbb7354f2f716b33f77c020337d44fd59f16939ba615e
+DIST firefox-115.3.1esr-si.xpi 569017 BLAKE2B 
26c40035ef0715736b9e3aaaf46ecf067b0c3145703c97d9bca1dfa7c2cde6459e19e36ab64d8d460621d8e1f14a7c776af4a9879893740c26ef7fc3e7804ed9
 SHA512 
324c8b577dff7962d4b12fef3deeb14d02c7f6210bbfb72a44f3df5d32651da1fa0be51c3319abf83542ce7cde1bed678e66a097c84ea6bfdf3b910f9616711c
+DIST firefox-115.3.1esr-sk.xpi 589725 BLAKE2B 
cb8353eb5718b6be75e2f14f9d0850c310e994ec357c4c5b641e0c4530af76612029712f401d84018c7333dd89e2ec591834ed42c73858fc3c1879b644495fbe
 SHA512 
80e828bfc0eb18fe1d4655c980cc70fb1006160ed4364a90076cb18843b3466142815bc15f6100d57bd556dedfc6f1ef64441554b8bd578a3ac86ea68159d94e
+DIST firefox-115.3.1esr-sl.xpi 562524 BLAKE2B 
e3959a436e2ca830afcc7a2684d697d5bd47ccedce42ca80f3780864c255c4725220697dd29c1c96e38625e5cc7e30d55a215ea4772f0d0ec5cacc9ce40b6c19
 SHA512 
9c1764acb90c4519f57f0749c99b71733ee997adb1f35af6ebcd438bc08b5b0b97994f7cdbee67454a25aaecbb19b836994d65ebab1031c9cf8c2019d66428bc
+DIST firefox-115.3.1esr-son.xpi 400971 BLAKE2B 
990ab3fb334e7c50942b197e710d2c65505d0782c67c5f7bfe33ba527da1fe327953a02137202dcf47f86bc5a4fbb1b81e7a5350027035f62679e6d3f2843c61
 SHA512 
d496a821fec851beea0bda76edbb1a2631accf9356d1db0e31ad1e966ae13412a8ad20480ba26f6ad2aa52b397b8f5584c65e49543df09e8b1f94bace3e4be27
+DIST firefox-115.3.1esr-sq.xpi 564457 BLAKE2B 
44cd14315fc3ac715b8e100e39a9050ecb690f88475a2e67285bff76635091accfe1416140728815b36e59b182c5023fb50b1a25395d6e5aea16727940e2a71d
 SHA512 
257204d5983f376f26451c53a455b54aa7f1284cf1e4005a2047c1748f5c7db725c88669c597384829b7ac5373a2a454703193e54ac674cace6c4ae6479a197c
+DIST firefox-115.3.1esr-sr.xpi 614006 BLAKE2B 
88586bf830431a0780b69cf2acda9566dce39870c7c4e12220393ee369db1dddade5b34002f1783a36c5fac11bd6a427b7d335efcaca59692e65f335d6cb6374
 SHA512 
4c40fc59e93ffee5548d9bb3987b83bcf2fef477be6edbabb89f597a8a09a22e721071f0b1e125769f21a789cf24c4203ad35681adcfbb166447777267f935da
+DIST firefox-115.3.1esr-sv-SE.xpi 560562 BLAKE2B 
e1df9f302529dc42b93520b8cf3c836c2d3c98af0df7258b1b7d6332ccd61d237f8dbdffe8f40203a59b9d46d49ab27efc7cc9390232172b3c1d1bbe17ceaf33
 SHA512 
f90aec93e412b735879f698fd62e713d2cf3b80d2805690398efe84b7ab45eff0acf3b497727c5e42d7dfdeb9990e38c1c4159c1bf445ae9260317a263714bca
+DIST firefox-115.3.1esr-szl.xpi 504136 BLAKE2B 
21ae79f8016f98aa3e5f0ebabac7f99cc701a65796d364bae3c0415dcb35e298b5796eb12b0816c9ddbd84a3f9800ac4f5cbc7b0410854bc133778a460eeaac6
 SHA512 
e068d2df390994919872f9a3b0ae36c1bdbca429dac75f9a463315c0081cc47f9310f0e7d25a3ab4e2ef18bd6a765d8294653fdb27ab8e97a2d1d791bdf09b85
+DIST firefox-115.3.1esr-ta.xpi 488853 BLAKE2B 
755a019a623db6907f4f721ffe4402cd73e4bf9993e4d05e79249c52824aa4532960dc48cd5e2f4ecbf6dc3c133fd199890ab61a07461f261160d3f709b2e7b1
 SHA512 
75c2c0de46f1fe8b95e13c7a66ff134720accc975ee5843e3d11038efbd6f5cd0a5cc1ed883f679b2de037c509c0c5ae29d63df27df774cda3a3767f4800949c
+DIST firefox-115.3.1esr-te.xpi 536174 BLAKE2B 
dd917051ef075df1e86a72c4ec332c2a805895ec8f652698666b9eece9c9e46675ad9e270d3909e721d6e473ce9b8a7bfad34f4f77ed537e3a0f6870c0650437
 SHA512 
8bb1158b1485a3aa5110e39801a8d8770ffdc7b701ff7e708deff69200ceccc1f01b15558dfdafff708394b435d79ded4ec2e91195510689e2736d8df48e64a6
+DIST firefox-115.3.1esr-th.xpi 632049 BLAKE2B 
87dec946e1df492574d2e7ebfe96021ab2bd8be95f3bfdb701f2fcb3ac38fbb41f511500c25295b78b9a32120897e1f23d6cb9e143b3caa3488d140790da9eda
 SHA512 
56a4a5b7d65294e188b6209fe93e36d044672b055c36204ebc2efcb18426e1e37c2716f66d07601bbebc7fabaa724662f95a5802a52340dc8babd2d420b48848
+DIST firefox-115.3.1esr-tl.xpi 511426 BLAKE2B 
20ef2c3eb1f1d0135e4c072c7cc9564833152bcd72b007f05e543d7caa750170187ee1d6a4483269344cd29d28bf27f8bdd74b073f1122086a39e2fbe184dbd6
 SHA512 
5615f9cc6fcc4819a922c6ea2b02e09ae3a3198a60796d1958c4ce1b6e5af191635cbd5f4a44cbfd3b944ac03acd2b9017b8fc0158a65491b64d128be429e9e1
+DIST firefox-115.3.1esr-tr.xpi 573254 BLAKE2B 
675bc7a2657d4ffe47447f876fff50dd017d960e420288223a6cef750fdffbc6a02ce80739d13612dea1ec0bd441f3fe01a3e87bf0991a2794628751738c9907
 SHA512 
2133ef95339dcf0083472125a6daa958d95bfb7474f125167e733ee620fa42877a9d95e1512aba99e1066d3eaf538b14e9b0565fb2b37105fbdfceaf33becb8b
+DIST firefox-115.3.1esr-trs.xpi 479679 BLAKE2B 
1012c1eabcee47d80fc2a233451e4bd0bc9eb3191bb1f5c392729b015af05ef8d6a263c7868feb3a480a383a083114bd4ad0ec41a95cf4de6df8c6034853cfac
 SHA512 
62cc3055404415ba6288cf9627ed838a76e5c022506cea223626241aec065522ab19a396bf2f14b0d665749c9f7666b15db5cf301de11d159e48f2bc5ae7d0f8
+DIST firefox-115.3.1esr-uk.xpi 645040 BLAKE2B 
873b3626c3a0ca9040050c58af9804d6373b0ef1b58708ee200dabd932770913e799aa04f4be7e7e74e4e1bd44084c4a51e28541ceb5f0ad099895458e8e8784
 SHA512 
4f72817452d1087d1bf1bebd2ffd8c2265256624e1e449afe4c6a3f4d464754b658865f6408734adabf457293a1f38e710e3babc28895ce778ba140a09bcc391
+DIST firefox-115.3.1esr-ur.xpi 538789 BLAKE2B 
a88c483232a6700995364e6c2e5c65a004c04ae75340f19a727888f0480d78805223b36c947444721e05d666d9f5f4553b44de6548d385cc2a524f9b454eedb0
 SHA512 
8b1e7808cd482161a452d3d764aa11962f31a0052bc9bb6aaf3001d9f4093df8c8cc7c8395ef5d3368d33f68171e287673215b5a52128cde2a2e767f12b08470
+DIST firefox-115.3.1esr-uz.xpi 461746 BLAKE2B 
57d93c991aea9f5c4767158384384eedb8d8f1e2d61e8db2a87d7d59c30802682a037309b01b26b21d435445a8fb99114b8c97226d4610a97a592b9ca3c36c9f
 SHA512 
5f9ba1addcc282d9ae82e3feed6bb8f7a09cf371e50df51b12fe7939b265bffc514d105dc412d6195e9db2301ce72dabb7bbc6e0f6f8f584cb85ed0a703890ba
+DIST firefox-115.3.1esr-vi.xpi 595543 BLAKE2B 
a3984e027abd5d92345271aed80b545123c56a2d241e1be105e2cbd16da8c83490c1e4c3799ba911470f8c98e69320206feef10cd48827065a58b2c2b232797a
 SHA512 
ad78d82fe756ed54eee4e631741cbbc627a6142e86d2bb2b5bd3f0403a0722cfc15062cd7965c59fc2d110f980b4cd7ebb5b6650d11498734f0378bef3856e95
+DIST firefox-115.3.1esr-xh.xpi 402423 BLAKE2B 
c80542bbd4bea684f26114fbe3785863ab23513fc22a6157c9b65061fd4c4d873ce23cbeceeb259fd4762238542c4310df34bbe0271e34179118ccc440a4e507
 SHA512 
316d9ce7094d69570fef25767ad58dbb3021808338e7679912902a2eecfb6c0ec2dec9a66fc0422d295bbf9028af5cc30a7d6972422cf00437371839b9a9f6d2
+DIST firefox-115.3.1esr-zh-CN.xpi 595486 BLAKE2B 
c24578d05d5b3c3f7dc2df7184fb575c3beedd9e20e4f9fa7bedc800ac0ce953309e7edcef06c4922f3d601906f195f5778714082405fb838dc5838a8f534ced
 SHA512 
f9e3009d2ffefbebec11ddebce7b7bd7d6f9ddb84d5be85e1c178691633f6af95a3c13085f3ca6200d9d4d6038030f6472fa86f4bde0493acac2369af808b541
+DIST firefox-115.3.1esr-zh-TW.xpi 597814 BLAKE2B 
5f48207fcb7d6cd81c7a223447726012cbe8a3f5d0fe195460063bdf98f3658e11b28003ce27a56363b1ff474fa840f28f4c5facd50beb7051264d9cf18681ac
 SHA512 
29b304dd87ae32df33ad5d1485ad4734c106d2641c6ff3bc60564cd27d9806eedd2e598df22ee79ae7eaa4045c7ca3a2fcbc724a70fd74c3fd5c06f6294da715
+DIST firefox-115.3.1esr.source.tar.xz 515785920 BLAKE2B 
ad5ec24361e94d9185eed210f681c50159f5be3e6046d79200b5e2586107f1ed98ebe7935f1e266afadd570fc1aa6a1aec81fe3b7fb86efb48afe82514f26c68
 SHA512 
65cb6fc46bba03eed742bd67f8e36b63b19f2ad7b85d2f503595704a4e88f554758a1e66ba548c8efe97a76322fb2514db72e6ff4bb2992d1aaa86edc3af85f1
 DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B 
e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f
 SHA512 
d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257
 DIST firefox-117-patches-04.tar.xz 22388 BLAKE2B 
89b9303a71e2421a2cef9ce0a3ca7dba5de7c21d6af59abe36b1e090bcadef30d2954acda874d72641b61b4cbfe0b032a6dd1d7d699709a2f4818c6e1e228d49
 SHA512 
7914262226a0d70cb3d24cd152d79e9e98b7a72993276ecf26f4e79608a0f4dd9717b8b0f3524f54db385af404d1779a2ec828e23b02c10a5dce27b53d20e835
 DIST firefox-117.0.1-ach.xpi 444794 BLAKE2B 
7d8323bc22d1f078783171168e9d94ff5f8d8d678b8b1c2a9f7db7fc1a4e4221a383b8a4898d429cf4c7de77ceb5885d87817c6c965ca527de59a46321f4b150
 SHA512 
d0eac4c1f80492f083e4bf40879adf62c1c5c84179b0d9393f9f14a1d9b39c585e35793dae313818cfaeee063f0ca2b1b56306ef838ef6d4e40e47bca07f609b

diff --git a/www-client/firefox/firefox-115.3.1.ebuild 
b/www-client/firefox/firefox-115.3.1.ebuild
new file mode 100644
index 000000000000..d02c0ee7fda7
--- /dev/null
+++ b/www-client/firefox/firefox-115.3.1.ebuild
@@ -0,0 +1,1368 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=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"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm 
multiprocessing \
+       optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs 
virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}";
+
+if [[ ${PV} == *_rc* ]] ; then
+       
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}";
+fi
+
+PATCH_URIS=(
+       https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86"
+
+SLOT="esr"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:rapid
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       || (
+               (
+                       sys-devel/clang:16
+                       sys-devel/llvm:16
+                       clang? (
+                               sys-devel/lld:16
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.65 )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               !X? (
+                       >=gui-libs/wlroots-0.15.1-r1[tinywl]
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       >=app-accessibility/at-spi2-core-2.46.0:2
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.90
+       >=dev-libs/nspr-4.35
+       media-libs/alsa-lib
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/mesa
+       media-video/ffmpeg
+       sys-libs/zlib
+       virtual/freedesktop-icon-theme
+       x11-libs/cairo
+       x11-libs/gdk-pixbuf
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-73.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+       system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/networkmanager
+                       sys-apps/dbus
+               )
+       )
+       X? (
+               virtual/opengl
+               x11-libs/cairo[X]
+               x11-libs/gtk+:3[X]
+               x11-libs/libX11
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               x11-libs/libXext
+               x11-libs/libXfixes
+               x11-libs/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       hwaccel? (
+               media-video/libva-utils
+               sys-apps/pciutils
+       )
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+       MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+       if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang && ! tc-ld-is-mold ; then
+               if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+                       einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! 
Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use 
LLVM slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               fi
+       fi
+
+       einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+       af ar ast be bg br ca cak cs cy da de dsb
+       el en-CA en-GB en-US es-AR es-ES et eu
+       fi fr fy-NL ga-IE gd gl he hr hsb hu
+       id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+       pa-IN pl pt-BR pt-PT rm ro ru
+       sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+       # https://bugs.gentoo.org/587334
+       local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+               fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+       )
+
+       local lang xflag
+       for lang in "${MOZ_LANGS[@]}" ; do
+               # en and en_US are handled internally
+               if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+                       continue
+               fi
+
+               # strip region subtag if $lang is in the list
+               if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+                       xflag=${lang%%-*}
+               else
+                       xflag=${lang}
+               fi
+
+               SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+               SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> 
${MOZ_P_DISTFILES}-${lang}.xpi"
+               SRC_URI+=" )"
+               IUSE+=" l10n_${xflag/[_@]/-}"
+       done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -ne 1 ]] ; then
+               die "${FUNCNAME} requires exact one argument"
+       fi
+
+       einfo "Clearing cargo checksums for ${1} ..."
+
+       sed -i \
+               -e 's/\("files":{\)[^}]*/\1/' \
+               "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+               || die
+}
+
+moz_install_xpi() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local DESTDIR=${1}
+       shift
+
+       insinto "${DESTDIR}"
+
+       local emid xpi_file xpi_tmp_dir
+       for xpi_file in "${@}" ; do
+               emid=
+               xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+               # Unpack XPI
+               unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+               # Determine extension ID
+               if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+                       emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; 
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from install.rdf"
+               elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+                       emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' 
"${xpi_tmp_dir}/manifest.json")
+                       [[ -z "${emid}" ]] && die "failed to determine 
extension id from manifest.json"
+               else
+                       die "failed to determine extension id"
+               fi
+
+               einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+               newins "${xpi_file}" "${emid}.xpi"
+       done
+}
+
+mozconfig_add_options_ac() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_add_options_mk() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 2 ]] ; then
+               die "${FUNCNAME} requires at least two arguments"
+       fi
+
+       local reason=${1}
+       shift
+
+       local option
+       for option in ${@} ; do
+               echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+       done
+}
+
+mozconfig_use_enable() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_enable "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+mozconfig_use_with() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       if [[ ${#} -lt 1 ]] ; then
+               die "${FUNCNAME} requires at least one arguments"
+       fi
+
+       local flag=$(use_with "${@}")
+       mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" 
"${flag}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+virtwl() {
+       debug-print-function ${FUNCNAME} "$@"
+
+       [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+       [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to 
be set; try xdg_environment_reset"
+       tinywl -h >/dev/null || die 'tinywl -h failed'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       local VIRTWL VIRTWL_PID
+       coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo 
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+       local -x WAYLAND_DISPLAY
+       read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+       debug-print "${FUNCNAME}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto && tc-ld-is-lld ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               python-any-r1_pkg_setup
+
+               # Avoid PGO profiling problems due to enviroment leakage
+               # These should *always* be cleaned up anyway
+               unset \
+                       DBUS_SESSION_BUS_ADDRESS \
+                       DISPLAY \
+                       ORBIT_SOCKETDIR \
+                       SESSION_MANAGER \
+                       XAUTHORITY \
+                       XDG_CACHE_HOME \
+                       XDG_SESSION_COOKIE
+
+               # Build system is using /proc/self/oom_score_adj, bug #604394
+               addpredict /proc/self/oom_score_adj
+
+               if use pgo ; then
+                       # Update 105.0: "/proc/self/oom_score_adj" isn't enough 
anymore with pgo, but not sure
+                       # whether that's due to better OOM handling by Firefox 
(bmo#1771712), or portage
+                       # (PORTAGE_SCHEDULING_POLICY) update...
+                       addpredict /proc
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               fi
+
+               if ! mountpoint -q /dev/shm ; then
+                       # If /dev/shm is not available, configure is known to 
fail with
+                       # a traceback report referencing 
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+                       ewarn "/dev/shm is not mounted -- expect build 
failures!"
+               fi
+
+               # Google API keys (see 
http://www.chromium.org/developers/how-tos/api-keys)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+                       
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+               fi
+
+               if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+                       
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+               fi
+
+               # Mozilla API keys (see 
https://location.services.mozilla.com/api)
+               # Note: These are for Gentoo Linux use ONLY. For your own 
distribution, please
+               # get your own set of keys.
+               if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+                       
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+               fi
+
+               # Ensure we use C locale when building, bug #746215
+               export LC_ALL=C
+       fi
+
+       CONFIG_CHECK="~SECCOMP"
+       WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to 
play DRM-protected content."
+       linux-info_pkg_setup
+}
+
+src_unpack() {
+       local _lp_dir="${WORKDIR}/language_packs"
+       local _src_file
+
+       if [[ ! -d "${_lp_dir}" ]] ; then
+               mkdir "${_lp_dir}" || die
+       fi
+
+       for _src_file in ${A} ; do
+               if [[ ${_src_file} == *.xpi ]]; then
+                       cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die 
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+               else
+                       unpack ${_src_file}
+               fi
+       done
+}
+
+src_prepare() {
+       if use lto; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+       fi
+
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # sed-in toolchain prefix
+       sed -i \
+               -e "s/objdump/${CHOST}-objdump/" \
+               "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py 
\
+               || die "sed failed to set toolchain prefix"
+
+       sed -i \
+               -e 's/ccache_stats = None/return None/' \
+               "${S}"/python/mozbuild/mozbuild/controller/building.py \
+               || die "sed failed to disable ccache stats call"
+
+       einfo "Removing pre-built binaries ..."
+
+       find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) 
-print -delete || die
+
+       # 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"
+       tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-gpsd \
+               --disable-install-strip \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wmf \
+               --enable-legacy-profile-creation \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+               mozconfig_add_options_ac '' --enable-rust-simd
+       fi
+
+       # For future keywording: This is currently (97.0) only supported on:
+       # amd64, arm, arm64 & x86.
+       # Might want to flip the logic around if Firefox is to support more 
arches.
+       # bug 833001, bug 903411#c8
+       if use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # Enable JIT on riscv64 explicitly
+       # Can be removed once upstream enable it by default in the future.
+       use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' 
--enable-jit
+
+       if [[ -s "${S}/api-google.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+       else
+               einfo "Building without Google API key ..."
+       fi
+
+       if [[ -s "${S}/api-location.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       
--with-google-location-service-api-keyfile="${S}/api-location.key"
+       else
+               einfo "Building without Location API key ..."
+       fi
+
+       if [[ -s "${S}/api-mozilla.key" ]] ; then
+               local key_origin="Gentoo default"
+               if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+                       key_origin="User value"
+               fi
+
+               mozconfig_add_options_ac "${key_origin}" \
+                       --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+       else
+               einfo "Building without Mozilla API key ..."
+       fi
+
+       mozconfig_use_with system-av1
+       mozconfig_use_with system-harfbuzz
+       mozconfig_use_with system-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       mozconfig_use_enable geckodriver
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       fi
+
+       local myaudiobackends=""
+       use jack && myaudiobackends+="jack,"
+       use sndio && myaudiobackends+="sndio,"
+       use pulseaudio && myaudiobackends+="pulseaudio,"
+       ! use pulseaudio && myaudiobackends+="alsa,"
+
+       mozconfig_add_options_ac '--enable-audio-backends' 
--enable-audio-backends="${myaudiobackends::-1}"
+
+       mozconfig_use_enable wifi necko-wifi
+
+       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
+       fi
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+                       fi
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409.
+                       # mold does not support gcc+lto combination.
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+               if use pgo ; then
+                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+                       if use clang ; then
+                               # Used in build/pgo/profileserver.py
+                               export LLVM_PROFDATA="llvm-profdata"
+                       fi
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # lld is upstream's default
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+                       fi
+
+               else
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "linker is set to bfd 
due to USE=-clang" --enable-linker=bfd
+                       fi
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-lto
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+       else
+               mozconfig_add_options_ac 'Gentoo defaults' 
--disable-real-time-tracing
+
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       if use elibc_musl && use arm64 ; then
+               mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --disable-elf-hack
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # Make revdep-rebuild.sh happy; Also required for musl
+       append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+       # Pass $MAKEOPTS to build system
+       export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+       # Use system's Python environment
+       export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       # 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
+       fi
+
+       if ! use gmp-autoupdate ; then
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       einfo "Disabling auto-update for ${plugin} plugin ..."
+                       cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to 
disable autoupdate for ${plugin} media plugin"
+                       pref("media.${plugin}.autoupdate",   false);
+                       EOF
+               done
+       fi
+
+       # Force the graphite pref if USE=system-harfbuzz is enabled, since the 
pref cannot disable it
+       if use system-harfbuzz ; then
+               cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set 
gfx.font_rendering.graphite.enabled pref"
+               sticky_pref("gfx.font_rendering.graphite.enabled", true);
+               EOF
+       fi
+
+       # Install language packs
+       local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name 
'*.xpi') )
+       if [[ -n "${langpacks}" ]] ; then
+               moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" 
"${langpacks[@]}"
+       fi
+
+       # Install geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+       local icon size
+       for icon in "${icon_srcdir}"/default*.png ; do
+               size=${icon%.png}
+               size=${size##*/default}
+
+               if [[ ${size} -eq 48 ]] ; then
+                       newicon "${icon}" ${PN}.png
+               fi
+
+               newicon -s ${size} "${icon}" ${PN}.png
+       done
+
+       # Install menu
+       local app_name="Mozilla ${MOZ_PN^}"
+       local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+       local desktop_filename="${PN}-esr.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       if use wayland ; then
+               use_wayland="true"
+       fi
+
+       cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+       sed -i \
+               -e "s:@NAME@:${app_name}:" \
+               -e "s:@EXEC@:${exec_command}:" \
+               -e "s:@ICON@:${icon}:" \
+               "${WORKDIR}/${PN}.desktop-template" \
+               || die
+
+       newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+       rm "${WORKDIR}/${PN}.desktop-template" || die
+
+       # Install wrapper script
+       [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+       newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+       # Update wrapper
+       sed -i \
+               -e "s:@PREFIX@:${EPREFIX}/usr:" \
+               -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+
+       readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       if ! use gmp-autoupdate ; then
+               elog "USE='-gmp-autoupdate' has disabled the following plugins 
from updating or"
+               elog "installing into new profiles:"
+               local plugin
+               for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+                       elog "\t ${plugin}"
+               done
+               elog
+       fi
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       # bug 835078
+       if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+               ewarn "You have nouveau drivers installed in your system and 
'hwaccel' "
+               ewarn "enabled for Firefox. Nouveau / your GPU might not 
support the "
+               ewarn "required EGL, so either disable 'hwaccel' or try the 
workaround "
+               ewarn "explained in https://bugs.gentoo.org/835078#c5 if 
Firefox crashes."
+       fi
+
+       readme.gentoo_print_elog
+
+       elog
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+
+       if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+               optfeature "hardware acceleration with NVIDIA cards" 
media-libs/nvidia-vaapi-driver
+       fi
+
+       if ! has_version "sys-libs/glibc"; then
+               elog
+               elog "glibc not found! You won't be able to play DRM content."
+               elog "See Gentoo bug #910309 or upstream bug #1843683."
+               elog
+       fi
+}

Reply via email to