From e937ca8df21d3186f65edc11c872706c80eb8a61 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 20 Mar 2024 13:00:15 +0000 Subject: gentoo auto-resync : 20:03:2024 - 13:00:14 --- www-client/firefox/Manifest | 101 +++ www-client/firefox/firefox-115.9.0.ebuild | 1406 +++++++++++++++++++++++++++++ 2 files changed, 1507 insertions(+) create mode 100644 www-client/firefox/firefox-115.9.0.ebuild (limited to 'www-client/firefox') 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/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 +} -- cgit v1.2.3