summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-03-20 13:00:15 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-03-20 13:00:15 +0000
commite937ca8df21d3186f65edc11c872706c80eb8a61 (patch)
tree6758813cd0a8bd1da09045a9171ff389b1b39718 /www-client/firefox
parent1b5d79237a144dcb8753c783941843d879a906e2 (diff)
gentoo auto-resync : 20:03:2024 - 13:00:14
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest101
-rw-r--r--www-client/firefox/firefox-115.9.0.ebuild1406
2 files changed, 1507 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 46aa703a86b0..17e858cd5b74 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -108,6 +108,106 @@ DIST firefox-115.8.0esr-xh.xpi 413329 BLAKE2B 06dbf4857bd4973bdd2be373ed59d4daa0
DIST firefox-115.8.0esr-zh-CN.xpi 634783 BLAKE2B 7d9be3fad2a855cbd099c8b8fdfa48ef810ffaf417c208ce306f2c6204b7ae2c8150f421963f98c736179807df1f982536b4b4a3b92e2c18fb6017cbe29d5f07 SHA512 e95be32d6182343962f3fbbf8777b1e13f242f0be25e1fbfdc3e863f170f99c832d2e46066ea53e0b16f59d90642cfb16d99e251b936c0c2f4439445779092f3
DIST firefox-115.8.0esr-zh-TW.xpi 639172 BLAKE2B cb125610b4f75e731d6b8622833f52cbf2d1f5c5d80082ac9425a21427c8f82a210be95ccb6bf589235746786175c8ace90cc9f578a961bbee21fcc60597a358 SHA512 959207c744fe983454c54b26bec434f0a940931dc1a4db41ad9fbcb15e442311f54a79bba9a6677a6542e4606292cc68dba12887fbd3a36c2cfdfe68614cf86d
DIST firefox-115.8.0esr.source.tar.xz 507569724 BLAKE2B 37bb3d0ef990922baa81f0083ba91f079755c6cf45df238d7ccfa4f9bc0cb597f59c7d08bc0b976dae422df0b3897d1cd153ae12970ac4e3e9fad892781c3b45 SHA512 4b8c06b5eb3617700a72aaad8831d703a537fe600740f1acb8377bd0ce198a199938603fd7e6b2007671a578dfb24aa8f5c031c6c1ccf15d4a34562679eaa883
+DIST firefox-115.9.0esr-ach.xpi 456930 BLAKE2B c041593a7778b2e17309061405f2efa8d969eea14c5e4ae55d1d7f50f8210c94c450b3ae2d667e577fb086ac729f8efea34cd57127b3fccafca47493dfc8584a SHA512 840bf034625e3dff62c701c80ebe5af04bf92be54de5950be46589118feb74a4c1fbf8d8a55e34309da62cbbf94c9c863d528f0448bc8540e643bef058b7cf56
+DIST firefox-115.9.0esr-af.xpi 413586 BLAKE2B 695f26da6377cf4db1d93a065156ef590fcd5663e69e96093e420f494e354e184769344791b24e13fd00a29bde9d14adc46936209f2afe9ac330b7f55e098a3d SHA512 b7c4af228dd86f1913b06b0ffd2a0fe022c206ab405ffb0e2f224f5e891aecd539e2a5c90c0b617ad94f2a683fbe9dbf1bc52c7b45bd5e0557df86862e8e0c6d
+DIST firefox-115.9.0esr-an.xpi 497249 BLAKE2B f77fba39585ab36a89db1bf1faeda9c110fa0841638334be65ed7e472d80f0db903351a8ab7c9e8832c596897f6ff8827fc1583c0399c68c43c271746b809a15 SHA512 66176fce34c1fda1e58e31f89ec1d2591ba1428b3755d5045dc763c8c186ffbb7ca3e0d29f7dc9492263169f3a6c73a3a918b957265cacd23518a166add4413f
+DIST firefox-115.9.0esr-ar.xpi 590958 BLAKE2B a8b56f5188be1e9a218e3e5dff58c8ae47c22075f99b95c9ee559e95608477a00ba26bba0ad38477ab46630425d0d4f184a68eac465b541e6244252e6fdfd350 SHA512 16a0facba696f7f265e374c8f435b7318df6e925db77b5b4420cd0368ad1f46ebabcb95811abbbba96f85dccf3637123f747427f288936f09c82bfd70aae3918
+DIST firefox-115.9.0esr-ast.xpi 489192 BLAKE2B f621232e33a427ee3dab1ff0b9f81307142cf45b7615b68b4da321d1659d31f8259993dad35e6bb0301831e622676bf3a494c9317583d683b4b20f6f175ae904 SHA512 33c10cc19a4ea430e981476906452208a1c8e6a83eab53d0da8a1de19d1b49ed9a906ff4a2d9f63956030ad1389ed21f6ac0bf01a98ad4173233f7381c0208d3
+DIST firefox-115.9.0esr-az.xpi 483835 BLAKE2B 0bc4c9145aafa09ef3fbccdb9e68af1a215d0f97e0e4fe47c17a2e68b2dd4a309e734c0fd34f3bdd48838fa902d56489b9df5074cb817bc3be9541f353da49b4 SHA512 fc25055a26a2737187b5e895e1b2574ed12919cb1cbef605f5203b1863141e8b8a2396470c7db51d8486932d8d444203ee0b327fd81c701b8e7c1818de39eee7
+DIST firefox-115.9.0esr-be.xpi 691074 BLAKE2B dcffa23bb43cffdf089c8e48caff1b472573b3bf34143abb72611b7467e683955106ed7e12fe0556cb0fc788ea15de3fd2359f440beafa465b51635d0aee74ee SHA512 658b044295fdf8799af3a489054bca1e1171643b2e0e22e1bc204182b2d9b2b99cc65691e000135d37def3fe9e2c552cffb8645a65198ecfb2dd8c339d35bb1f
+DIST firefox-115.9.0esr-bg.xpi 588680 BLAKE2B dababc1bdd0197cb0846116fe173e0dceda55d8f18e7fdf11fe7fe87eaecb52bdb12f439b5325e67bef7c2d30673d0b92902dbb8168f4b99da934c88dfc534ea SHA512 5a79900c50cf6a70e41d7145cb7c8ce78c9798fc1cba312d7a34620c0202d1c7f05c02cf2f0a419e261ba7e4e37e2c5f0755ad5a5e608cbad717b2572d1219c3
+DIST firefox-115.9.0esr-bn.xpi 573625 BLAKE2B 4a75d72c0be0eb82afca48a0600c03a33220b5e3f3c1648f1cd8095e2ae3c883539517ce5f264bca9f69d8187bbaa52ce4f41f82c2e50cc2a4241f615b4a17b4 SHA512 f735a3a02ee4294d22ee87907c6d379aaefe006907296f577831f9db5bff3791912b7c75769fc05225b6a415f85a6b28a4dfea498ae7f2b22edbfc7fa5d5f4fd
+DIST firefox-115.9.0esr-br.xpi 573718 BLAKE2B 9c1650e8b3f624f85d558654206df5e204b58b9d8e695d34cab374097b2dadb912f2dca2e63b2709405b3dea921c1232a650dc76bbaab1fcd5d68d280d1c6c68 SHA512 6312c1465762246504178fe0f6a57876a9f05a0bb90efa75770b81581da6484a949c772dc3df021fdb2fbaaeca7df4a14e81d3bbdbf78fc328472229cff95f24
+DIST firefox-115.9.0esr-bs.xpi 463563 BLAKE2B 0fa88cab15065578b47ad6b7175d66d653accb9a02517c0438d468751f52f53d10c68388f959167f8815b43f7049d6a05bf88378ed1306a13db828c7f31b335c SHA512 c86d495dd6ecb0a9d3f3b5e0af98aa6408ec24b5bb58e2dc12043a8d3940eaace3926daed40414b4b17befe1e2ad4517cc0f6ef4bfc3cf0d531ee93673fccedb
+DIST firefox-115.9.0esr-ca-valencia.xpi 536859 BLAKE2B fd40330a180869af66db9f14bedcc8fdc83de05e3b4b365760e0468d91fb58bf94350bccd3a0a300aea889822db76ad9ef91d9e662bf3acf9d5068cafec05b0f SHA512 78dc9e55851b8925d66eafc5df73935589b26b4adb9c95f44cfca2b24468ae3be933f19196e63394c0d7804690757efe2c8a8968458ed91c4c8fe9a8eb770f7d
+DIST firefox-115.9.0esr-ca.xpi 575791 BLAKE2B 4ee3a223a203d7a8c90c9c67672e21c6208a8c463deba3bfc4081140f18a8b034c5964bc9dc57fa38e87691e06b89f80251beb68a3aa3be1e9c13b0d3754dd02 SHA512 14c23d63734da8ddc2d977f323ba8b68768df62da445a4371d00e7c0cdb220c20a88fe9f4ca9ee76107abcb1114e2a82b2bd7abf8a3221437cb566b4ddbbd673
+DIST firefox-115.9.0esr-cak.xpi 581689 BLAKE2B 3b721f26c9044f8f2d8022451dfad09a490a433b2c6b69599d22d69ac850d8851e0967a2b223adffac60bb480c603a849797ab85cf566ed310b85015b954ca4f SHA512 5ef30bf9b4e4b05caf2e09806269c21146bd49b6c6eb8bc4991522c02e78a4dbc76629523f47f65b2fce342b2924a2df074cfcb82113e870fa32cf121627cf17
+DIST firefox-115.9.0esr-cs.xpi 636799 BLAKE2B 2a5f3ef8058542e5da236c79cb0ac06900797d4e913e43402b4ceb830df44799413db7c81944dfe48f4c3dd30f41a57f0f3b0bd419dc797fe01a8450362fd575 SHA512 35ba9f67239de0479f958f453045bee802168ceaf09cb043cd8253d2f3c5df48f8552bfb6f067b09088ba853d111debc1e5becadc66d59ebbdbfa18449d6997b
+DIST firefox-115.9.0esr-cy.xpi 604777 BLAKE2B 897b8469368ba83b4e4b49fdd2957e316bcaa0e98a6b0f841786a1c2be55a5f1873df13ae50772ae5c92dede84614d97f64bf67c80e7265f303146ff5db042c1 SHA512 46b72c5e48b820b7b4a5e1bf54642be59fec3a6d1e62665e5e1dcd99ed858a48d0058ae66916214372e917ad1b4a56b805cebf09f5f2814dfd5be8619c788bfd
+DIST firefox-115.9.0esr-da.xpi 589844 BLAKE2B 142b6cabb30b5817e2b90d42694b3744fdc3e2f67a757c989e3ec2ef1a38325699d0f0dc53be787241e988694e154a7f4c96c4d302187a5da8cff8c7e8f6aa72 SHA512 ab0ad5dedb6dee2cc0bba46560633a0b497b7d8cc58142955d995ce703f6748be44bdc1346a8435c3a3547cacbde8d8620d87aa11c07db09f44f3c70dac0426b
+DIST firefox-115.9.0esr-de.xpi 612029 BLAKE2B b0b8e9fbcd5f1cee7f7526638268ca9d468daa44c0047cc3d90ab6c755a36877aca36dba1ea43ee26ebdeca27ea4664d7bc5e0d90d34adaa9ac0ad3efc2d93ac SHA512 1fabe89d38a8416d9324160d92673de71efd67cb37824f067dbdb710716bc8460a2a55c3f18d5fd7bfc17276256ecb5884f863b394ca2b79db437fb1540b9510
+DIST firefox-115.9.0esr-dsb.xpi 629491 BLAKE2B 26ac8c7ab4f383be070f2dbcb084c8583a800538332e45f1778c6751e13c26bdc9228b9cddd2b39f87b72876cf479b73bd354acca63d56085e07ac7fae288058 SHA512 9b1ba3eeeb4f794afa9b881ddbbb08fc7e68e6aa18bb09e5475eb598c6b5559940ef75cb3fd691a28f47c8ca14fd735aaa4ea484d9f396b86b86b37437832b36
+DIST firefox-115.9.0esr-el.xpi 710462 BLAKE2B 0ca9f3b6a4fd6555d702be2d587b3f00f5ea20da65b66d6409d645aef27079e2ccfe78547e62146034753628e9cfa462047af3a63d63145a4b28902640491a7a SHA512 2864049271df8db65649b57c2c9baf8e603b69c69017399625ccd4f395633684c28d3f1d464ccc891273bb0b0b4ee35fb5db3e46fd8ae808e9a5273af6bac155
+DIST firefox-115.9.0esr-en-CA.xpi 551687 BLAKE2B 3f364b7169eb7769b42d1950f5bbbed3cc10b31a5f4acd460e029b81e42ead64c355e64326c9528f98f1e5ef870bbe7c14f0e515d726e6e268ec4e2f6d2d178f SHA512 6b676616abefd4f721be57884302ff56c888309a733a47737fc7b0e857ab7a76c9e41b4871c581a4f2d79599b22f7bfbafea8d658c7b0c53d4e2874ad612f735
+DIST firefox-115.9.0esr-en-GB.xpi 567043 BLAKE2B 6d4a6ba270b0d587ca15be07c1ecff2d3dfa3b268d88a69087704571c1ea5a009a356adcead4e13e8b5f9e5424a612a7ddd376cfd7a582b0920a76f86b85d87e SHA512 a7d8cd82fc3ba5da0804766cd2ca8c09368b56938e54a8af69461bc24df6d4c8c5413b7652a7656e7364a0fd7abde7d7711dec5a57a3cee43a0fb16ae6cc0db9
+DIST firefox-115.9.0esr-eo.xpi 585349 BLAKE2B f5a61fdbac376426376f6db192af7438b5f7bcb5c2c17b12d5b9612257a060bc751831e1970b7c3c61ffc60c89adb3aba9345d991029415b988b3f0ab51e59d0 SHA512 01d5b1a62c3e7d278ebf5720bc8bb860632ca0e3ff1e2c8bfdfbb4686de8bc0b4bd001021ecae1d5c0c633eef7ff15ff802523fd775230ed41ea34e8e901c037
+DIST firefox-115.9.0esr-es-AR.xpi 608558 BLAKE2B ac5f2db968940a1ca466c766c34a9cbc27f24e4d1d96ec06b80956430b8d01219df17bb1c14131756a27673436bdcc935e911ee31287144823237b1e20b5bd9d SHA512 e95e114e671838a868c4c9f65c8f4a6bf452049447c141b4696284910f10065971bee20d7e315d7c67f72e9668dab467a6b4680564ab5c750ae9281aef5761c4
+DIST firefox-115.9.0esr-es-CL.xpi 606526 BLAKE2B 2ba164763ad94e8a966f57716de09dd0c00e352c9da0b04d569f5eccc0af5d0276c8d88a658e52c808997458ee66ee64c0a8e0675e6d412a58a2f585a80a9125 SHA512 276d70658a0ac094ade1f698d88454606ec7c107c71473ccee7925914f18c75e5f1ae1242376d34691d246a53d24aed8fa662c1d15aa6bd48bbc505282cba229
+DIST firefox-115.9.0esr-es-ES.xpi 600501 BLAKE2B a2cf750dd402a1c9966fffc214d610be7927acd6b244caf9b81f1daa78db4937589d4333c2ee914567e0f8fc082d1840ce628b34eb1580d54eba88c4889b0bfa SHA512 2dfa859dd4901b76920d3c8997b6068532cdd8aa369570a3364cb927c412869285898dcf96a2a66c340d574aad7c7c4b6f9bbc23cad688ca558fd657edd27207
+DIST firefox-115.9.0esr-es-MX.xpi 580260 BLAKE2B 17defd5b76049e9a8eb48bfa824566335c960c93051e3b08dea8fcc43deb0c3c119eac60a50c1caf0b8af1c36291675a57b74195dc8f1b15a3682133d3e66bdc SHA512 89a453b5276ae44b5c4115208f8e891e3f5db737ec8871aa3704be9bf701baa872d766a040b95f256d405c0f69b975270f947b9d9c1bffc7154fedc155f15355
+DIST firefox-115.9.0esr-et.xpi 530489 BLAKE2B a66923f00873b4123281a4e3d809090b1b9100ae290a5b76929bd6bb25f0896579e8bafc63626858cd040492a760ed4450a865075cda5144f8b3edf011de7499 SHA512 301f1779799bd3d9dadc787b788670ead6fc4510097ec56f1cac0063d575c4e3200b6071caf9c20859775ce0811305003dca4abb0aa9036d499c81c3e1c36100
+DIST firefox-115.9.0esr-eu.xpi 581881 BLAKE2B fdae398ea6585e2054b88383aebfe79546a2da8e34c54379bad490228c8d42a1da198a449dac6a9e63116781eb5451c242e83d52dfc8e5805454b26b0fc92416 SHA512 3e7ee0bd2fe90ae9e101b841f84ea197dc3f97d6548f39affb4f4b91fb0d0303149cd3a034f320de5c89d49022300b4784971ef4ed236424f25888d4e9c4d3d1
+DIST firefox-115.9.0esr-fa.xpi 581581 BLAKE2B b50f105ed38c7c4abf403dd1be857638298f0f39924605942f681b2888ae75126064f7f724abff5c410c374dfca73ecbd6e163c5df004d09e5062f297a0b36a4 SHA512 b4efaf54d0ba824b393735ec3088fbf8debcab4a1a9487fab57689e76947a91dff1bdeb1529e0cb91647e53a36531249e835210ebcb7370a23b8ba5f0e9c7633
+DIST firefox-115.9.0esr-ff.xpi 469362 BLAKE2B 0fb28c54fb9fe449b509304ae99a903ec82fa498f108eeda9a78a51a92cbdf3b9bd262fda016271578b76fdbf21d747587caee65148e45f7a48d414fcbbf2693 SHA512 a0a4439b83f967bd82dfa88858d7f663f73dcca36ad6ef801b9e4e60801b65bc4f7a548d150132634493d546f463c303bfa68fecd75f8ddbb686313c8e1af47d
+DIST firefox-115.9.0esr-fi.xpi 587615 BLAKE2B 79832c2a63f14267404cd4791f024f99973ece821cbce8a735a5c41450e381133e158061efa842cbd2e2f8125fbe6088450274877fcd73e97409fed866a960ff SHA512 e176e83b9f62e7fa0ac5ed9a567e69c57033b8b5c35ca807431103dd235b9a288e4dbab768405e7c9c7af32f3a4fc595548ecee64becf143750af05f0a06ff02
+DIST firefox-115.9.0esr-fr.xpi 619220 BLAKE2B 42333b392239b54226913e051724c11990bb2ceac06b91d2d8979b9f938586d8fb1b7ba96f0efadae1ad4af6b9213483d4a05a485075b8621ee6dd95aa7d988f SHA512 0e82b1ea11b0129466571f6d0a7181f9aadd17d868be08d599e4dc64a34a16def6ad6c4fe2cf366e25b7cbfd603c9131267d7368b8455224cc0991874e5a612d
+DIST firefox-115.9.0esr-fur.xpi 611587 BLAKE2B 7dbcc59137ec64317b90def8fdc8a88616aa693704f198d4c399f050ac037412f036dcce70e6801c3a73c467aa98382d7c82dcab0df9c3fb17a28fc5db3740d3 SHA512 998cca6ac53e366c9d0b7ea14a352339cf09910babfbb23799ec2288bb917195c1a8f26d41b31effcf64c23bc666aad51015140ae2c4120ab6f87f872508a06e
+DIST firefox-115.9.0esr-fy-NL.xpi 602855 BLAKE2B e7b2420faa55828556b22be1688792e380aa0c2d49530278b37a9c5fb282f575d428805f0c7da96c4a4457d6f560e3995b2ad18f789bf3c3c32c0599169cc9eb SHA512 1b66ee3165d55f9ad0ce7ee66033ba55145e4b2cb5dc9d00f8b0274a9984d9dc90a0171e090a8b320863352bcbd3a87b5736dd472e929510245ca632a32a1414
+DIST firefox-115.9.0esr-ga-IE.xpi 465832 BLAKE2B 4ffda776ad6befc1c60534e0963be9d8f7770d3d0d34e5bf5f489dc23b91ae78b005684cbf4bc574977067f515e0381f2f1fb58484d15283719cca3e06146c56 SHA512 02ce1651f9263a9c62aabc545641523dd85056bc76990d6c30830f1bae8073129ecdf956e2805abcd73712a5f00bbe1e1a2d04f068b1a5877e71a8f8457f0958
+DIST firefox-115.9.0esr-gd.xpi 582164 BLAKE2B 4b747b3121e8b59f5d24af0bb104b4ea4f63673ce34c8e50f03955e02f5a2518e44937b354660427e70e6ef1edca8ece7500cba2916af17aa300d39f7db8ad71 SHA512 e0a092ee4ae055c41ca45c8028448031a4c72ef6e237ee6d1791e8fce538fb81aba9e9e873413538086047da1117981de1886c8e8cb3db0e6e6c491ecf7b7b32
+DIST firefox-115.9.0esr-gl.xpi 589964 BLAKE2B 94ef8ee9fce283ded9e3c415211395fa1d67ba2df3c935d35b86ca45fae496ebacf60f484c192bd47780e574519ba50a1950f8b33b56eb8637908ebafc2a9602 SHA512 efa3e75d436dd64d7200fb93eb717b649c561982611348146201d84575caa70cea33bc8fc389a2a0ac1220cfad5c2e24aef3d81b1bba9e069baa26fb473d412a
+DIST firefox-115.9.0esr-gn.xpi 618637 BLAKE2B 7f293424994c3376de20559e2f966ec2ecff8bfc264608ac12805badedb65073257c6f0fe4621c900dcdb5e8481af133001ab1e5ab0755ad4187b2f9626e2d4d SHA512 85d225ee0fc9fd5cbb5b27a6f49a8d530d24ba57e07c8464a8ece0cf7729af0e57cbadc5dc81479a6542a29261eaf48baefb3d4c9b93640e65ba6d706740d9c1
+DIST firefox-115.9.0esr-gu-IN.xpi 520697 BLAKE2B 103ed66c5c18200c2cb214490b0f064f6134781904d31d67c150caa46fa0336512ec019fa67cceaeb602ad91d639e0b7800815a7342f18dbe5ef2bf73ef02942 SHA512 7d89fb476f5139ec997cd0c15118dee3bd0ce3de0ca58f5d79bdc9ac1b3b818a077c8a02e88c5d0cd129d9e5605de0aebfbef33199e3636b1769c4377492afee
+DIST firefox-115.9.0esr-he.xpi 611053 BLAKE2B 02dec11307158e82ecf93992becfe487495c00e93121b183933e44b22bd6f7cb5b3e918e49865c1c9c38ed68979ab5e4d932756de47920a45f1e167fa912c3d4 SHA512 5f2e973b0ae550ab57c2621fb4d9a0b172aa2c72609acec5811452996568e54b184d8eaf6c9574f6ad01390d511a105a130c085a2b189395c3151a010234e6f1
+DIST firefox-115.9.0esr-hi-IN.xpi 557482 BLAKE2B 81deb9a7cde6423a3f84091cadf3a531b1de0a23d54e8114fa03d5e724aa6ccca729b5cbedb2fab69a40124a80b647a37296371c57337b90754f0195ef88422d SHA512 d95ba7b3b9d0a38eb542c2041f1ee4d7510cc34542ebcf7b9f9e186e65305448893c1bdac7a664230db529a8e27cc246c7248fea533f9d40e06c928a56fed915
+DIST firefox-115.9.0esr-hr.xpi 547615 BLAKE2B 7edd2ac49c8ea1ca04ec34a6ec44d0631ea071ff11780b033e3855a862c0a428dbf82c4ab52ced502d231ed6de1a29834d41610393018c956fd72a9861c34646 SHA512 f1f13514473f21f8447f0fe9b2d438430e25d877f0d414e9ce5a597930915c681b3082deccaae12b956908c49fffd076ce0b9ddf820113aafa129a6c9f7da9c5
+DIST firefox-115.9.0esr-hsb.xpi 626662 BLAKE2B 67ce4806fb8deb68523388f4129b0e10194cd7741f2a43613436091b2ed2985afe7793894928eb339b575ba648d2a29fafb033f53c8d548dd56784bd70a6edb7 SHA512 443596b9a38fb6a6dd0d276cbcafa72c2e6371d23c067ecf7a6208b0cac21be4910c57ba0565d8967598c656829621a287fa5435a1ebe4c93afc29b5cd96047f
+DIST firefox-115.9.0esr-hu.xpi 628668 BLAKE2B d4e6c850820fafc9d9e29e77a016b2d041b949b64c7c083bc7432a8557062df94ed602502057c264e7e1eb39afe46897ff3fc1afa2d925dc0c2f59cb2ebb3c28 SHA512 773548f51d6bcf31ee9881d4a2c56f4720efea1b667b30a85d99eb92638fd156afd27f19305f121aa6a9e9922a514e4f4de067974885829a62557460c5340e7a
+DIST firefox-115.9.0esr-hy-AM.xpi 598324 BLAKE2B 0d0a05b345be9b601c75af4092a29d2d5267ba3076cf3c843920db6eb79c4d96c5bc901806c2705dbb4a43a7574a7bfa45b781437d59a9c05971d04dfc639151 SHA512 e4870ed17c5077e6f88ccb24290712e4b93e30dc5f5cdeaca1d18e7632321e01567967599a65166d281f3eb0bcf563fe744b70da0a60427259949bc2a06550a3
+DIST firefox-115.9.0esr-ia.xpi 591854 BLAKE2B b02d63ef542ef797772a072cf697b7f560589335d4390db11f717afc52e975bee971f46dba8f9f831d8770d878636f5b1688c0f7c611db6171e203421f9b3831 SHA512 506d6a0a4fb4f5e4bf8d45aa70ef49464ed7ae420a816503732da160d3f5bf260c1204c88ebdf4a875ea7e8d8a7460505d2c7fe5baf6c4ca65be27bb012e315c
+DIST firefox-115.9.0esr-id.xpi 556351 BLAKE2B 674335af18f4e9e4ca9d31b135882f47272a3bd368b412146da0d8c053cb347af771367926b2658d72445167b6775c84e31d59b5fddafc0a243116debce36f4f SHA512 adf92edf2ccec51e41f2cf8d199a5c3cd4df8e7d12845acb74854be2ed34581f6088df0aad9e8bbb5276a83ddb031af889c08e323fd27e87548f07ddc11f71fa
+DIST firefox-115.9.0esr-is.xpi 595865 BLAKE2B 1ffb0b114be36482ac8634723eb7bfd25fbc06e4b9d106a928977266914451441d0061266118f8a0e0b2b5ce9e42155fc714a3753a8aa64be617e879f5051f54 SHA512 031d7298efe8f443b71c30defeca894a5ed2ff8209c2efc1d5895bd675385755ea0e6d72cee476e478f0bb2a466c1a1a1cd5f8748131f960580816bfd00f2e6a
+DIST firefox-115.9.0esr-it.xpi 548750 BLAKE2B 33cb82b11f3791d344d64b850409f24f62fe6aa36565c1a033f645bffd2410001e8df8adaa05516bc19030b2c25ae2aa96ebe3a9ab186f69c9e30610c92aa395 SHA512 5163dd87e5d1146e338bf31fc07a52151029c3a53515fa5e335241a47f0b2d840a99fa3902bc33bf356ad247a48327da1695f6c9a4ade192e3029e59334771f9
+DIST firefox-115.9.0esr-ja.xpi 655146 BLAKE2B b3c3516e3c7271f01c429667ef4627e32a2eedb19c9b5e586379cbf4f9fa4b7b03f726066a931204456f2ef1014bbcea30d4b70d72f0a021098eaea10babe138 SHA512 5bf3c2ff2ecdd9e2f019902f8ae4a2ac5a589fadf503e5f8eb52b06efd2146802624f7b52734d878bf4051b049782ef9232c285c0c6d9b6217bda9d9e8c0f54f
+DIST firefox-115.9.0esr-ka.xpi 651915 BLAKE2B 99dafb37847670d754464a96db34d18b280423953b88dd60d2fdd8bce1f602092648417934e225224125cc901f5222b9513157593f3bca366169185a00c1e217 SHA512 5b266b5784e9bfad94a255229886adf8218de70944c8c2e80bd1ef915aa6b1caf30d70d0fabc27b79879f598d986bc04bcd427f3fcf43c4a40efd5d93d2e0ba0
+DIST firefox-115.9.0esr-kab.xpi 593080 BLAKE2B b3a1553d972bd3d580971247f659227cc91a3524545ff820351d97771c7c9ff13af4cc31fcdcc40527922915c79b02c379701bc591eaf5a55c4faedd25c8f2b8 SHA512 d8119b584b052b5a98f46c8ebf9afa2d7072ac5b4d8978b91ee9c712a97a110dbed5496932260e21c5ed1be07424366052b07dfce1c57e51d213e30fb9d1e93e
+DIST firefox-115.9.0esr-kk.xpi 686582 BLAKE2B 5490b6bc14d43fbf335e5a4b4337216ea643b3d90cd8ad89710edf9dfd247d4f7d8e961bec359c4e19ad618bc9e19ea432c2c3a96950aa223f43b8fbcec2016e SHA512 a326ea1c9e848cf4fbe3a96c9e1df9b73dab18bcf2379fd6aa5ef12eafb0cee017ee0d8294c74698d739436bb4e19ecfb38ca036bf04374082c2045aa26de51a
+DIST firefox-115.9.0esr-km.xpi 519950 BLAKE2B 4d8a51eadd9d19ee040cb6d777172c1bd78e9d9fb6e8bebff86bec688f11b8a396178d8fe4ea16ab3cc688e2798bde2fdec1b28601f0f3c37e12c9b417093b21 SHA512 f7ee13b6d917f4891927f6ff5bf34320976ace13673a76d01a98e4fb13799144afd95f40c1c6dc519a56c76015ed292d7464efe438a5159a38c22afc8ec55193
+DIST firefox-115.9.0esr-kn.xpi 485814 BLAKE2B c9f0ffe22a59812963f265ba958fa7e8d9ee5c1f47e75ef2d98e72ad2929699661ba959ed8e29307fcd55a483efaec43b63692be441f4f75a14940d66026b6fe SHA512 5a7e630a517e5c6a3dc65b348fe1942e6e701e90521d3dc05b81597dd43516dc643ee5fd3e203db663bd5e2b459ccf3fb4e0943f484d7352cc2d9584bdd08557
+DIST firefox-115.9.0esr-ko.xpi 641342 BLAKE2B adf9e46b9eacaaf5ef00210de17f5c15fe6d799e3a0e4eb8fc2aa54ed70d2ed00b3c8a6db3d4a94cc846f8123b73a5a52e462d103057ad79c976f23811ab6fe9 SHA512 1ecda500dd4344bcda08b85eefa23205ebfe43fb93cd04710900915deaf553345ea2974232850babfc07c5fcf27a320a7000fd6fe0c0627133bfd7e49fc130ac
+DIST firefox-115.9.0esr-lij.xpi 476785 BLAKE2B 4ccf7746ea0397b80f4e1475a1b9332f08a086355a5c1a01fa26cc7781b7d3c300f4e5d0fdcc0194cbd49362f78782a2c62adac138a636a5b94d7c661fea075b SHA512 79660819b8dbb567dd1717cd67f0d1716b023e37efedd1b49a5e8baae99f358e00696a4343acd18f241d58fc823f3bf258a97603997547d28e1b41b48c13c53c
+DIST firefox-115.9.0esr-lt.xpi 563115 BLAKE2B 9ea6066e83ae04c310b161ccb82b4e91af9d947e918b37cefcde7438148b90dfaca9538211e480bd755fffce4866a498b21d715044277c2056840d6509374f04 SHA512 88d97449c99c4f4bf9c56cf98865dd40841dd8ae4bbc3b2b0b69dc0bb1ff564f145d4d812e7a9e1cb6ec0ff6d8b087fb532006540af0fc548998ceba70ef012e
+DIST firefox-115.9.0esr-lv.xpi 462804 BLAKE2B 8cc29ac937b36d9bd4d6358b889f0006fb2416d2bdfb8346d95adfe480dfe3365adc26f9fcd4132a05483d099fcc7425e9c4312bb25bbe67507b55e7c113c5fd SHA512 c62e71a6ecc10827db4551971fdbdd698ef253f48d553e5ce4b3de7db20a021f7ecd56b730137a30025726e935b30533fe3699f8a46f7b1d7dd868fa2644d06f
+DIST firefox-115.9.0esr-mk.xpi 487309 BLAKE2B 01de6ae222b4208f15f69758dd9419d066186e3d0d8acad2ae9911336bd8c6ed701342391062bede4f720a30230d18d9c7a19b4dc3c3c74739efa9ec01b3a0b7 SHA512 bdefbdc5dbdd22a98514ef8347cb7f23c58d8ac8ec4e97eed5ab5fe0ace236b50c6edbf08a2fb988238a14be330453f05c96d3b6288fd7fae49a526c4bbdc808
+DIST firefox-115.9.0esr-mr.xpi 524682 BLAKE2B 9d8d3765ec8a70129960596de03f8919040162ff7d48c521c14d89c697f1a5434d504a27a7fdec50249eb713ed3cdb32a9db690d719d084381c1db79ebb13c45 SHA512 63cbc04e6d5a77353d4dc51b64e4050a76974352b7a027f8459535529f66e5c665af27d6e0397441cf6c2fb0ef73c8cf7904af1e31463ea93ae25c447817190a
+DIST firefox-115.9.0esr-ms.xpi 443374 BLAKE2B 219e5af68e3b3e98452049551a17a002f9d45cc57588c17eb2f1ff31c442b96868e0f3727dbd27fcbb578caad118f5c983ae344bd024fd7ed7b73550cbc25b52 SHA512 97371aa2338490ebe0ea366dfa9d8acbf41266ec2cc22b1d79489aa6338a7180db9bdcc991cc493728abf3cce05dc39d3e271136a0d58380d9cd855d5241cec2
+DIST firefox-115.9.0esr-my.xpi 510884 BLAKE2B 386c991f55edcb5f7aed40a75e7bb083041e9c106a54bb62b38178e65a61b46bdf9acbad7f963f2c0d919c3ebb8624018a9f3e0ce9b4ffdfb6c3e7b120e57fc1 SHA512 d401ee5e1150210a97d8bbbf0601930ef081be7a7ed4eb2fa89e0e646fde93fd4345d90ff3e5cdbfc76afd494c31ae0e2cb6b1568c04e3f1ceaccb894bef2864
+DIST firefox-115.9.0esr-nb-NO.xpi 587906 BLAKE2B cf59809d53ea4511affea4656a73138616ca50481642e29cdc9a4f1aec94764e560088b8cfbdb8889101fe8609f4a6deca00edc241d0742d3d86e4ee748583ae SHA512 b6c67e9b2365d8e836609294f67de3a9f709b2db22b57c537ab04bd6e98f6ef329967ad935d96d48cbeda7b2c3c486e404f409d78df4096253dcc483157865b9
+DIST firefox-115.9.0esr-ne-NP.xpi 482012 BLAKE2B 0e20184fb90dd25f1d72669a6a66dd14a45f36261ef87af71e329c2ed032576f67f53a7dad05fa0fb4bc176797e2a9bdafd3fc82c3cc9d4c6f800f1ca59e2a84 SHA512 ae29f075c1e2673a3e275f22592e5a4bdbbcfc24a1f8a4716c39af31812ea33e286d2644edfa99c1fd7d4d28cc1eba8c78e5a99b17b647a9c7528888d6ffd624
+DIST firefox-115.9.0esr-nl.xpi 596843 BLAKE2B 752d731e0bc98db11ccab3e139ddcb5f2f52a7bed46ed116699f13a35c6481eb58e14de6efeac108cf2debc5548a9565d3c721b081915a2e34d55e2398651628 SHA512 f55dd4df36358f96bdf46415376245b715508429e8e3ea328003f61a522fbd386c41b73edc83281e9db288fe8f7ca4731e0d50e7aeb8d8239311fa5a145bf89a
+DIST firefox-115.9.0esr-nn-NO.xpi 584095 BLAKE2B 13083b1581d986b75f7ea515372d883d0f8f7564cdf368249865acbe2bca0437fa5f70f0cef564c424393d370bd82036e4ca480ddf57f1edc55558f3ec4b4987 SHA512 8ae9549063288e28354ca6cd1a99bd9f89d85c4c900c7b8c730110030ca333478076147d8708067c0259d587d3fcc0365d76cf05c3cfcb9ccb045a58b50bea02
+DIST firefox-115.9.0esr-oc.xpi 596881 BLAKE2B a7a5fd8878efdb6a18626647acde99cba750a5aeafa30e4bb9c2bfd3ba542caa9164d8abe8ee7113e1c0bae4c84d9d533545bf4fce4f2623c7939593cabcf9fc SHA512 863f0d1a4df096ac4026ac98f3cb4c06ecfd4a02659592a0294f6abbb7a3bf9c43bde18241dc042f0136d450fdcc0c174894038994fc1179e90c51ff66d97d82
+DIST firefox-115.9.0esr-pa-IN.xpi 670636 BLAKE2B 42b8e8893a1b6cb0e1328eebefba2251cc9db79adc677de3f5dab5eb34da8de6924f18c303f54db5d0a20b7709b0313bbaa5b69c76262ada82180b334d20b61c SHA512 71d354550f68f3e88e9e06d5d49fe11fa1d749fa10d6fbf71bd42a25d6e43d362aa49954dd994296a62646e7807faf182120e00aaec9c705160c2a3e691bb44d
+DIST firefox-115.9.0esr-pl.xpi 615681 BLAKE2B ec0e43b2d2c17894b80330ded0a40ef5a923820398c22e047d72f014608a64a7ef96cad745a72f112fef8dcc4ef2403eec7db7d80974f1f80f6f1d202a7a9d8c SHA512 a54daf7744743831392fff0c4182731c36428362b555623d3868223fe51569aac34e41a61a780047da3c22c76602a19069fa72207aeeb05fdb27afde8f21b615
+DIST firefox-115.9.0esr-pt-BR.xpi 602108 BLAKE2B b121e5454bce563aa333d3e4e3272d0021b2a7c18671bbd921e9cddf6112a897aa1dc2a62ca6b74b39e997bd9bf8c1c4ee23a0cc26c332d87e99fbaf519038bc SHA512 53b784eb404dd59f0e37df4f681b32d50edd6f96a003a74a7dc72ee1d9ce8044fa138e7375cf204f4d4041cb854d91b1233f416d154457538e72f855fa116f42
+DIST firefox-115.9.0esr-pt-PT.xpi 598029 BLAKE2B 1f23f378b1a93d9aa93224645cb6f873da25c718ae26551fdeb9b56d17cddb2a50db1750d9169bd8241bc9a00a3e52ed89aee9a66135419bf31a9fc820d43fbf SHA512 1da4419e8d3c7818cf17f34eccb16e27d0bce4474e13527d9b419fb523bf7d30242bbbe08206603798501a44950ced03a328195fa17dd83e88bfff349906513c
+DIST firefox-115.9.0esr-rm.xpi 595710 BLAKE2B 5b3074ba8e6c9175fb19e93fc5d1bc30d0b177bdf356896288eae60079a6b040ba05dbb00bff1328c88ac4ad2a1e960d1ee1265b37a5ccdf3485b05723b18d36 SHA512 950382bd9d4c0c0f9594a7a8f97671c349650b65016203b0a65f6a42e548757440e317a4c74799a0b6d2e659c6ebc231245be654c7a0ed1a5aab4465b05615bf
+DIST firefox-115.9.0esr-ro.xpi 540140 BLAKE2B b695d3d5bb7ec668d14602b1a6893ece912156037496a44eb46eb3412d168e810a5e3a3ee7c4bb4eb256eeb3eaf165d17d06b25d7dd883c681600c6a53efbaff SHA512 a8c264f831d2fcb569ddacc8f954b8f50cb96003f089c0f0248f941cba621b6ef4d6dc3c16eca878823bd192e8be5f5702e26c7afbf1bc779ab263cf46b7e071
+DIST firefox-115.9.0esr-ru.xpi 698638 BLAKE2B 142140fb5879d5df497320d7b3fe7625944a3004f2c24b7e7f7fee6057e46d780442f13f0045775a5b96c59b05f6118211b8f04b9457bf1ef9ec74fc24972406 SHA512 7129ddc38e6d51d1393b13d3970f418095127409909f59d4c6de366bf22ed34db44efa652c68bc336498f80431a09022f06fb5b4f098ddfbfe92a3215b6bae0d
+DIST firefox-115.9.0esr-sc.xpi 559173 BLAKE2B c8b3a67c0183b06c4b7c36d15b789f5f4d30b91b4b9cfca5e257a89eb3c18a9493a8c8ce4680d20d827ab58848076b396102199d214617c129ce662294d3329f SHA512 e3a3bd6b61b3819011cfbcf62cfb90e65d39eb45e79d28097b54c412d2b3d4a84cae05d3f7bdded625103f87b1a112ead57f585547085b0f70fa6bb0443e4617
+DIST firefox-115.9.0esr-sco.xpi 503583 BLAKE2B eba71011191fbe307bcb1f929175bee55689c6ab0d6052a0c4344ed5802727314fc26eacd99c53ea34915e35445ba556974ed2a68732156fed264eb0fc9b2d57 SHA512 52ceca5e8146963e8a4bf9bfe638e2f072d8fffd869c73bbb7fe9cc3a9675ca511aac0d3c99daa6a95bba78a9135d5cebaaf84e3414d64c9c6688731ea654668
+DIST firefox-115.9.0esr-si.xpi 597876 BLAKE2B 41460dabf74dc4902e3b32dd9042d50f2b9e7dfebadbc805e6728987f51ebba7fad879a7c8b8c0cc9a254dce1d427ed6a0ecd884b851c3d9d08dd1bc2b8952db SHA512 37b3fb1b67325f89ba5b2b5c9586c5525ee2e476a8fb9f1e7c392ba83d64d4688c955db3ed88448990538055d3eee9c5fb21c44582bb6a27899bd74d2f56b090
+DIST firefox-115.9.0esr-sk.xpi 630370 BLAKE2B 2d3776b9704bc3d3b60ef0c220528a503bec24b0438f9388bfb82b79a115abaaec81329cd018818286efbe4100188bf113ebd837878e724914796ad72f3267f9 SHA512 8f3c9e8b36de76ab52fd6419d0123a7c4c4f7b877e94553afa275845e1bb00c2b83e2f053df49c8a6e2b0065cb8d1b20e4fe1fcdde58ac12a60ac2564623c228
+DIST firefox-115.9.0esr-sl.xpi 597703 BLAKE2B 74acaaec5e3a070438ac06e28aadf08f79e19de69c1f6afbe512a04b931c4fd5e375bcf202fc0f8147d93be06fc194a014093b32b2220175a8121c1d53f3a176 SHA512 1a0201cf4cd9a0eec699b25885a5f1f942b6340cffc9cbf3aae6f945ccdcfe0fe6c8fb21fe0531aa65619c2a12df43efd2db898bcc3a4b27806d0b0c86672c90
+DIST firefox-115.9.0esr-son.xpi 412091 BLAKE2B 0cb6424d5f020bee405253ed6b301051948f6ab5359f6b711fc940dd1e666b7cf4ffa65a712e51df80f8b509539f423c8996fe8df91a34eec3c45f441521ff38 SHA512 f0219b8efca1cd6e41af6d9dcbaee02f71f26f0d50674bcc676b17da02f46485494c724480f0b8b51085a918476bdae9809003311cffbbc703beeaa54ed2fe25
+DIST firefox-115.9.0esr-sq.xpi 615533 BLAKE2B 6bca59a01e3018156cc2c07bc852b2d9f681f361b99a8b36bb1736a0e2d757d811e80b0ee78dc81a12155b2e4ae1ba9a7e2bb5edbb8c75667e86a6c29ae5c9a3 SHA512 44c3a2ac8a5a7c2074b03db35063b6cd6ba1733ac0832f59971c0c4aef2d48ecd7bcfa25ff0981263fc36fe1f71709c57d1ca55db3420d92a6c6fab78cda86b1
+DIST firefox-115.9.0esr-sr.xpi 630500 BLAKE2B 1a20d02259ec112c43851d1b4a8db19d6d3e1815d0b3103d0eab9033bb90f8267d2ed267e4d187e0d7c97606d7fed404822e280910d3e8d55c71297cf675af37 SHA512 b2277a66d79f6e6bfe28fe30b476c888ce162fd438027d9153b822f18f016e3e87cbca13e56bbf9055d6c2af7dc34ef768526ce423e7f548db1daf48e23fb0c2
+DIST firefox-115.9.0esr-sv-SE.xpi 599917 BLAKE2B 243546522a333169989d8d3cf31425d1819df8b3b439fcdcd297de50e0a297212ce3a56e069cf7fc03f99b1215b7b4721d7701017819bbd126008549c6f83dc1 SHA512 5a8907fd08cab0949a13925815cb615d527be178c71bfe1f75de2552d6a950c1740421cd827687422cefe4abf23da4ca328575f050d5f3bade456e4b60a80a3e
+DIST firefox-115.9.0esr-szl.xpi 518603 BLAKE2B bb81efd4036e3f8978e298327abcda069ecd31d81fee1b05e502341278793c5b71edb4934a9f2daf43e3a357314a9cc62d8b1d967460fd3092801ffd8ac20de8 SHA512 a826d54aa7d7cf62bc8ef88a30c7c69f82f4db7d13c9e499332e44228af5d1e1514455f52c4dab22651f57230f2f329892ca8edb5d908c1db867cb9b7ccf109b
+DIST firefox-115.9.0esr-ta.xpi 501439 BLAKE2B c9e99857dfef383bdb1349978f75644975a433ba2a82c08e095606aa8e311b82a4c194341abee340a95f841480de1c7ad8e76aeebecbe16e1078d3dfa1a5bc60 SHA512 1e35069afae53b4ae0ebc5762a3bf3518284b001ca9ce3ecf78b1d13a4cec29ce6097debe37f743d8fc153b588a880189799ebc91c0e3966bfbd79bdf1f14bd6
+DIST firefox-115.9.0esr-te.xpi 551808 BLAKE2B 42aaeca25d1c7ed2375bcaeac585858bf081983d2d0987d463889fa3a3dfdedd5449a49dc1d5203c43f4e9335229377697ab7972847a052a1382b20e0fecf895 SHA512 bc684070369db702b7f17b0517e0af9de1a3841a5f7703620bb280304476b9b863bc31aef5bf6f5d93e3b25705670ea98ab967a30b17e3491f5ba02b283870ed
+DIST firefox-115.9.0esr-th.xpi 671603 BLAKE2B 0924f28a252a9723c91e8cdada487742c06a7e67595c7356aa1e627e69dae697360464b2f2a86645d994de101453c99cb4ef3b321ce59b36929a7d48c5b9b5f7 SHA512 793349f9608a6877bae011e39740f05b7dcfed1a02c827e49edc08e9aaf7aada3c94e72f1008eaaa234bccebd4d1d68415815094edd4cf15602f240a8254a101
+DIST firefox-115.9.0esr-tl.xpi 525546 BLAKE2B 7d22a1bb9d3d9433b2ef0b41bf0eafb5bc4dcd5b0b7f1479c78ce61768afbf1efd3d7d3a0bf5d99ad23b2fc4f61d1f97ae3c2dfe8b3742b15ed57c684857c9a8 SHA512 9bb0a1be47785091d8abfe68f39d347338c2286e805cbde9e9367e2f2ad4e0df1dd675abaa2a8abcc3033b7f88aaef4509f5fcaafa2df311d76bfb916e3dc70a
+DIST firefox-115.9.0esr-tr.xpi 611468 BLAKE2B 5a25be7cc7ff9e836c01de25564e180f2df3afa26db2b0f7761c6f5041130818dac51cf5b801079007c483dbdfd025298f65a918b7e324a3fe0845d52bf470f6 SHA512 b7bdf57febd682487b962947ebc21b9c7f2dc21c4b0f62df5518bf67f2ab4eade4d0233ddc58886cdb3400770ac6af3b1f275d843fc9267deefc127aad2ffdfc
+DIST firefox-115.9.0esr-trs.xpi 496295 BLAKE2B f6182f9a5319695f506abbf5f88d3575f44bf82455bbaa6fd6e118b67bb5250f1050307002353b552e8ad12fcd53de8ec94a6cf367d66b043309d0af25dd9555 SHA512 755625bc60f0b696acf25b519e2ea14571e1f114ccd95b0c3745bb5b5bfaa5a471e284343431afaa2ff954b12c615fd1391438c8b62d7e51d1269f99f5efde88
+DIST firefox-115.9.0esr-uk.xpi 691155 BLAKE2B 92e69a645571040f5b3518041806685195c75e3eb293d98a368cd0adc168fc90902facc816f9b950d35b8a38a0ef8c0665d481709ab9789e10bf846d7b6e0d94 SHA512 438d05e0514b4fba293068216f72229472d063f534371a49b03f544e7ac5d5a17a7b9c2fe9ba80c39d069610a14c1038f2503fed9baf3dd365111eca99ab96a4
+DIST firefox-115.9.0esr-ur.xpi 552294 BLAKE2B be383a36800d74bc9f66d5161dd06d9380e84ccf2661c5a72fb750eb816e4883fea3fbdbfaf615278870eed72f29eaf66ea37e7a05b2818848c66d221ffe3e79 SHA512 b068ede619c0e8be0699b8a16c0706a3181ac4a3c7321256adfc5ea843cdbf830c5529be91b4f27eceaa8fda02c627632599440c61a60f5ad161db5ffe596e48
+DIST firefox-115.9.0esr-uz.xpi 472953 BLAKE2B 89e19f08efb00c2046e6d5bd9c555800f511661f271b36e0b7e9918175d3aeba73fb2b9dcdf0507098f07f4a3e3018af3885d775020d2208f75a3060453d4977 SHA512 bfc4b169b4382b163b94019eaf28a9ca3bcdff2e12d1beb914b851c5dc35225e2b6c1374e7c7534b8c7c3d9a17573d55b8ff48104579eae9802968c74842233e
+DIST firefox-115.9.0esr-vi.xpi 635924 BLAKE2B 55e3c80cc7d18110b7ac5005df5daf30a7500e8780ed497e1e7c12697c6e30d4d4db8087c7c4e0ea6a6da23027b312e199d9b94e12a674cb4e0912b4195c1d12 SHA512 f8f091e3b79ad6bfc5c20a7a58fb33747c5de2fb7e8894ccdafa962e8f4ccc6e96342461988a7e2c696cd7c885ca557319aa70b79482030625c8c69499ef289f
+DIST firefox-115.9.0esr-xh.xpi 413329 BLAKE2B 0a07a12260f35c91cdc976875171c28d02a5897888bf193256ca92428d48a999b5638124b0394ff4ddbfb35d8304f0fe8eb7a4e8817b7c501e816f3f3cb8e28d SHA512 0e696eae90da27e3d075dab29b682e1871a54f61d06d3cbedae46c1da5b2130ddaa388def4cb04cae14556aa9bc2a2c70e2b31348f54f34dae68273d0dcdc373
+DIST firefox-115.9.0esr-zh-CN.xpi 634774 BLAKE2B 82b21c67d2fe654f58e4e56e9a1208177056f048860f26a54a672a2a40d787c68848cf854bd20730173fbe53a6b6b273b0e0c6b9b7cbc23d550e93955168da42 SHA512 dde1d995f284be84f265d2e66a83c1d014f477dde3d77dbba1f6c1ee75148fe991f8f7042b265d73cb02a33e28e0ae3b1a34bdcbbfe44c251946a68f65c5552a
+DIST firefox-115.9.0esr-zh-TW.xpi 639157 BLAKE2B 84bfce66f25afdf9cd4efc3964eeba1725753c158ddaf53b3417df18d946a75a54f4e69d4f8b9a19437acce7255476543163d6d21d11fa4b9a838d7e73eed9a0 SHA512 922b32875756dc36dce4ca79c659425266fe227e41daaaa6abb0cbbc7f7db6c8d762654bc70973ae5488bbedc1cf0733a1740b78e36805e9f782ea4feb2cf055
+DIST firefox-115.9.0esr.source.tar.xz 507156076 BLAKE2B 2b70c0396763ef6662450c1001b847adfc7c8cbf6e4e2ffd3120473aebcc4ff9e25091e2d8e3f9462c2094de9211d658776746a0d8ce9ed73efa824b4e25b508 SHA512 2828931e79f6f2476a699afdac02133f2f04d478c5a8ed288339701387d57354f73df50d1d2a08e6afdddc9a2b95b1820c9ca1bfdce3e0772cb0ba71e12aab88
DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
DIST firefox-122-patches-02.tar.xz 23168 BLAKE2B bcb29800555dd5c919d10338ecaadb2e9591d2dcc8c07e06c4722bb95a053e5581b77212c963783d605894c6bbef4a88e44081c85340703ca57a1d567628cd96 SHA512 c1e995b937150a9e68a6c1c3ae5986aa9386382175cc1bf128c0daaf5009c684f5774fe4baaf7878fb7048fffe265aaa5179865a4d82095e609132258e83dd93
DIST firefox-122.0.1-ach.xpi 455275 BLAKE2B e06da7ea5fc1ac1448b059ec7eac339338289a262a25fe108ede97c2d31e5a5fae138b2301c9e42a2be93a6a1bdc865590bfdefed06315a1dd4c825a808625f3 SHA512 fbcd98e8bc9d07581ea952bde18091718c3d1f4f203150f1abd87707be380f9a9f1523c57c7840c451b4fb8dc8c23a7cca8477fd93a1347e7e0cc27494307bf8
@@ -413,6 +513,7 @@ DIST firefox-124.0-zh-CN.xpi 640171 BLAKE2B e591116916865bedd246e472179404e051d1
DIST firefox-124.0-zh-TW.xpi 642129 BLAKE2B 31079c3fb147dce6137ef1bf1a173cb402ec49b0b2391ee1e64984eaea4706ab27b86d4595f42997f63dc12a6035b0ed48ce9e4d0616759041612e933fb3e6da SHA512 e6341c321087d82c11babbadb542bcc5fafa6e459e6378511970292bac8300b5dc71e3cc85e446cec21c7c947ffe0f631160e7f3214636fc13ac47ed4cb3dab9
DIST firefox-124.0.source.tar.xz 545407260 BLAKE2B e62264b8c400a29d092c9e034a58431106e5f1dd29bd8a9dcc3b5b204b4da8fa7a395c610ce0e4a932ca6305d243978bf212d57912bc4b6a85f95e6f34353ed0 SHA512 028c1a447bc2e608e1ba06cc66b1a33e0a4179744f0e8406d6f2b7317bf99fdd84eb97de0e96d4adcef9f2498b083bac38ccbf2d55e213a4a7e8ff6d94974cfc
EBUILD firefox-115.8.0.ebuild 40131 BLAKE2B 075005b8f056a3220b0e25860e87698e377388471f90e156dff30fa0c554d48317ec5b0784f9058cf8e6e109ad290eea7db4bc2ee0df63d6b0d17a493f6fa7b1 SHA512 cda2b831f8738e2fc67894ac22e913cbda202d1e72f204655fcd7169b12cb1a7aa7c10a1b24ca61328ea4bdf0427a8b76a497d1be3d3fee77539caf4e2b573a3
+EBUILD firefox-115.9.0.ebuild 40135 BLAKE2B 30adb910dae22fc3f5a7209e30f1af4988a1a2023228a307df4e7e344d30974e67cda73b11412dbcc334a39895c07ab94d32041e261794701aa93eb68aee31a1 SHA512 7ee9f3c59d66f3b055f12efb2a7a1c7c2dbf2edc19f80b9725e88ab277cb76a136f333274b9c14845c5241aab1d32858f181e0cf859b36684e456351c678c76a
EBUILD firefox-122.0.1.ebuild 43363 BLAKE2B d215e52ef1a0c12c36c1956ce551ffb80fef00c8dadc60b0a8d4e08f22308fc4216a0c02abf81490b9ee54abdc9a8c2edbdab4939df9282608a427d19cae9423 SHA512 0195715e17e34da674ef69785af0261ef4a229f55679b088cbdfff25e89cebe5f965a3f42ad48226c9eb47ab3951c88969e256a26f6639ba3d74d42ed7b21fe7
EBUILD firefox-123.0.1-r1.ebuild 43323 BLAKE2B 5ef77c7385740655f208229ee8c2842a154fd8e8104bd4fed8056c305e3acdc713028dfdecad83008c6f3d53baf841f8e19648df3f7fe1436acb8bb1df6bf82e SHA512 70a5eb75b656651f0de0c5bd5feed78cef0063984afaf2b1fcb2f5e667f0b5350faff4e69e3435a0597a935f9a7c57af38753c2e5cb5267b746dcad9de644dcc
EBUILD firefox-124.0.ebuild 42540 BLAKE2B 326eee4875075eddb7410efa339bb882a2977beee5ee328f21e2850f04c9f1888c77ce690160272d016db11da618b2af2599d6c5732ed268a7337dce496a436d SHA512 ec55c9f0ed43b4e78757f83b53cb6efc07e10d1fb0df603fb6d8d9417b9d496afca4e80e55b4766825caad4a1dde337dc144a6a81df1b1f4eaf0e4ec1db493b6
diff --git a/www-client/firefox/firefox-115.9.0.ebuild b/www-client/firefox/firefox-115.9.0.ebuild
new file mode 100644
index 000000000000..6da6a2f9b402
--- /dev/null
+++ b/www-client/firefox/firefox-115.9.0.ebuild
@@ -0,0 +1,1406 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz"
+
+LLVM_MAX_SLOT=17
+
+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:17
+ sys-devel/llvm:17
+ clang? (
+ sys-devel/lld:17
+ virtual/rust:0/llvm-17
+ pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] )
+ )
+ )
+ (
+ 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 )
+ !elibc_glibc? (
+ || (
+ dev-lang/rust
+ <dev-lang/rust-bin-1.73
+ )
+ )
+ 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
+
+ if use x86 && use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch || die
+ fi
+
+ # Workaround for bgo#917599
+ if has_version ">=dev-libs/icu-74.1" && use system-icu ; then
+ eapply "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch
+ fi
+ rm -v "${WORKDIR}"/firefox-patches/0029-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"
+ 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 "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
+
+ # Clear cargo checksums from crates we have patched
+ # moz_clear_vendor_checksums crate
+ moz_clear_vendor_checksums audio_thread_priority
+
+ # 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
+ 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
+
+ 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
+}