summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2023-09-14 12:44:39 +0300
committerJoonas Niilola <juippis@gentoo.org>2023-09-14 14:45:22 +0300
commit95a6eedd76df58e7c876eccc95bdf4710ee44e41 (patch)
treec69071d8b5a0003377fac089bbaa7990c02598e2 /www-client
parentwww-client/firefox: add 102.15.1 (diff)
downloadgentoo-95a6eedd76df58e7c876eccc95bdf4710ee44e41.tar.gz
gentoo-95a6eedd76df58e7c876eccc95bdf4710ee44e41.tar.bz2
gentoo-95a6eedd76df58e7c876eccc95bdf4710ee44e41.zip
www-client/firefox: add 115.2.1
Bug: https://bugs.gentoo.org/914073 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r--www-client/firefox/Manifest100
-rw-r--r--www-client/firefox/firefox-115.2.1.ebuild1407
2 files changed, 1507 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 8aae09559d33..41dc624d7662 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -295,6 +295,106 @@ DIST firefox-115.2.0esr-xh.xpi 402421 BLAKE2B 5d45c37abea39263c2065580214e4a62b1
DIST firefox-115.2.0esr-zh-CN.xpi 595490 BLAKE2B 25c4d573da19934dae62f8a8535222b9f8ba202ce9ae288c5b43cea5fcd3b4f90df4609661fc2b3593c898690fe0f8e92864c2e0c4a9bea6b8cd20b6aeea9645 SHA512 94e97e86fc3c609530d058f022aaa22188ad0af0320a75dd1bd43639c5a289faba50cefa68f666264da569fc9c5ccba77481e40ec55c2495cd8f4b9cf2768a01
DIST firefox-115.2.0esr-zh-TW.xpi 597814 BLAKE2B 26953b3979ece7e5fe69543453b327799062798b474da14fb07099bc3801aa0eb3aefc1f694ab27f2b4dcab539d2c71d6ae5892ebb8cee24fc79d1d3255d8f8f SHA512 92a64faf2552f7fd381b62348525209957d7cd8121c70066391d7a5a23c2f84d44c2ae26db36c8f4d0d4741083fa9bab746a893be5954fb3f6329ec2005b1094
DIST firefox-115.2.0esr.source.tar.xz 514055028 BLAKE2B 3ed4a46c2179b0595ac5ee1619f965f2c84e5b4f900341a2b93fe5dda7c81acbdc878763c0432564dfd84d99776cc8defdbba4cb9a317be8c06b3b02f6ec867c SHA512 df3b4efd9607e8eb4932717760c865eb31ac7a96246cb4385190c33316c9595e0793a1f3c45ebb9674a9ba4fce98d83f71b063bef09ef307d92d1cd78d30d812
+DIST firefox-115.2.1esr-ach.xpi 441056 BLAKE2B 52f1a02dd264bfe6c18dcb1282bdffdefd3216f294b97a59d95a5f5039c5f887907fac1921b4113810e665bc296251471958f8372c0e28f90c26f63eda0551c8 SHA512 a10ff0e945528f6723e830a608f45592e27eec5a37b8025a215e03b69016a280e5c5266919fea2a20812cf932f86d29a9716db2eedf755d7e9c41b801929a7fb
+DIST firefox-115.2.1esr-af.xpi 402477 BLAKE2B 90945bb7b12ea5055c8fecca9824912ce87cb5c2986493832a8bb235397c0ba7573d4fdb5f796d976f05d897d915bafd800b38bda411255ac773d36bf82138e4 SHA512 b78836dab6d56a636f2f5beed8b485b5007e1c4147f949dd6745449580c052ef359ff0a52b2851e6ae41536bd19b55e07374b1e8a58af93b305e617fef09f69c
+DIST firefox-115.2.1esr-an.xpi 482933 BLAKE2B e97de0315e009201a08ee89f404ddde02db7d5c2d698489d1362eec9bfe14642fbcee1a5c4da25e43821dc731bd163f46cbd1cd60ab7d68b3af85ef95d33b074 SHA512 45bf064dda5ce66eddab97553003ddcb8c89a522e858fc931c9221eb97069ec6c8908fd361fe12377a009fecb45b07b51fcedfb16ff6516b108abaa4b6309548
+DIST firefox-115.2.1esr-ar.xpi 549538 BLAKE2B acf40705dcb2a90f8a6fd5c10124ca62a8f063e09f9977687a630f3f2e76bfa575567f3ed9c90d1d37c56b6425087aed69fd92b4ff3a17056a1786e9f58faa59 SHA512 eb2964cb427e9f4640a2f13e87b538c2f5e6c02641e1570b35913eb54ab782bb3ad84fac60504e6a57e1b02df2b74add6af192ddebc1fa33b8803e8ab6dcbd44
+DIST firefox-115.2.1esr-ast.xpi 477369 BLAKE2B c3b3330f4c2cfff81e68d0be908e5f01d8d1c737f050d7505792abc283602acf5c37de9d355246ea2ef850bfffed8d40f8c1d3c589eb23a2bbcab637d77f268c SHA512 48b267caac5d93e63fb62fe5f22ac42bbed5c8d8164eb301a2ebb86010ddfd906072a25ddb9c27ce2188cdb0504e2754571aec15919e4c245eebe1cd6c551baa
+DIST firefox-115.2.1esr-az.xpi 470733 BLAKE2B fb46bef71e79151a9a8c0aff3ed59b6695bcf2b325ad2cb7e7d073f871ca2233e2f3ced937c994f6014194918dc7efea994a914c9ea5bc239d460acce71e410e SHA512 1e01cd84a2495294b9f708aab1ce31dafd7dc3db5a8176e4f7abc21af09337fcdfe56e898e6547b7df142899f202f057109e8035c3b923ddcfa0be7c69d243e5
+DIST firefox-115.2.1esr-be.xpi 647092 BLAKE2B 749c91dabbf54383bbca581b2ebb5e8cb903bc12262635157f8b85d777c3e6034ce61d25b0ceccc435433d0c432d2ded7e6c7622ba34d0309b3cfb21fa24d24c SHA512 b298bcb885179fdeee76c8d6d604cfc5bb4fd97614a0c060b8a8774502ac6ef6ea66a305ebb571c3c6a704ccd347886362a07ace8536521544f190cf6550d3ef
+DIST firefox-115.2.1esr-bg.xpi 564189 BLAKE2B 8a390cbd42904c1e7cde0b81fc7e17604f13195f651ee1ff3272512775417acfa88c2453bf81c7bc1936119486863dc1497e03117d34aac3fa150c3bf48dbcf5 SHA512 35e9f81e78af410271e2e840463620d40c3d872399d19412af77e2e2241e2e413bb38f45bdbd82e542d4e7f19179bbd0f3ed9a79e1cdb3737537a2133564dd6e
+DIST firefox-115.2.1esr-bn.xpi 558435 BLAKE2B 9778b5d71d168d129990d47b31b53b9919b6595b3890ecc38cb14c5dd2ea44250d71146425d2bd55e2c5bb2a222639839ca85f8937a0bf3962aad08d52149d87 SHA512 e9e465a0c171a6784727a6f74e50f85b7ca6affce7162a86cf6defe08e3158785467aeb079032ab11b97e996a5a1bd62db570edf5bed7de0da249b80c9ed7e67
+DIST firefox-115.2.1esr-br.xpi 534386 BLAKE2B 40211bf93ee35050ea8f6387930b5cd5a9408a20d4e08443d01b5365515c4b6990d52b4dbcc6ec2c37add2da01cf4b205d19700dfb8f650fbdec24862b7f31fe SHA512 902a839f97737ab10bc8db0317bf9257d675795824ee9e670adbcc71f249c9882d0794e8da93c890f965da99907525f550c1a9896fe8dc941509202473ab7051
+DIST firefox-115.2.1esr-bs.xpi 441261 BLAKE2B bac9455776cc9265375325b5f130b1d1ae73119b3fa570f40e028f6b08f14e0b535432a5f3ba833c735f09bc931b7a7059ddc112b15aaa3d84c8cb059fb69f79 SHA512 21e0074a4f7ea57e2aaae7047733b6d54af739b9099977ca461ce7e3e13bbcc8aa979a49b631cdfe6b42e2507144678e202fba8cc13014ec2c9a36e81db272c1
+DIST firefox-115.2.1esr-ca-valencia.xpi 521952 BLAKE2B c15bbb21885504bad1b463364ca316ba2a808047327772bac42cdc17973bbb7cf9d0eb2e13ad8ce28c29566e09095a00fa8500ca1669ef2b7db71e47fe5daa9f SHA512 de3926f87afc1a54bfe1c2332f91dbd63d4c024fe08ebf0ebc2cf68cec1c33bfa3b7d208831edf254418e770a55598d4a8734e5b632b2e50e1859a73bee96d23
+DIST firefox-115.2.1esr-ca.xpi 545478 BLAKE2B 1afefea60a6ce28a3352bae2cb156cd8ea66f49dddabad38f60b0506e93e8e28fe58c5dbbc61c79af91edb17ea100dabeb84c3bfc41cab71457bb0d9f2aad312 SHA512 468a8e24b52cb4739b6004acbad797a37515edaa53ccfac685475df1aeb00d7add0e427fe14967d262ac57626756fe3d30afcde47cf7feb3d4a26ca541a54430
+DIST firefox-115.2.1esr-cak.xpi 564584 BLAKE2B 5fbf0d1288c4a56f245389b7e1843668dc5db5192ee5b97aa86c3ce3d66e04e8b3922761691a862f4e1f23a03b5dbc63dcd6a72fc7a0750934e591c3e281b51b SHA512 a28869ecd76824ee2777b3b8503d36b32432bf613d4f234ea0ef4425fe436a6283cecc55dfd8ffddb8519de30fd8c574bbf9b4be3e7a0345371da79472f3e277
+DIST firefox-115.2.1esr-cs.xpi 592268 BLAKE2B cf92f89c9d39ff875800ff6827ec9aa34cf30d21a1eae3011fb0d3301de9aa82867d599f107b2e706bbaad35152bea76d3ba9c4334d5c908911d41c5c0e8f283 SHA512 f973e7093cdc9c0fedcf6b35c4b186a177241e80c5ffa65c2f1cf0cf0141e3b8653312d8a125f24397a64f073f0dc554956e805fc2bc9c932d62cd46d3dc7c9f
+DIST firefox-115.2.1esr-cy.xpi 564700 BLAKE2B 3ec19dc166573af60891359e4ef65bbe2ddd1dce656a5180d3154031634b2de27c0a139bed22a8553b080f7b3e7c015f93925dcde95a3916b33ffff042ad911c SHA512 951a8ebaed531577b8cb3924ef28b376a096581c2d3ed8b078c18f9e45f8010838ee9c08a34e46183f317eecb6688fe240de24fa93d908d1357103342457c830
+DIST firefox-115.2.1esr-da.xpi 554011 BLAKE2B f52dcfb16a93cfc92d0c142d6ebcf35e5fdbd0fba78b02f469e40371f16517b8cca52f3ea200e1167f1345f8471cec365cd4e61ad08c2193ce7d0ea55226d101 SHA512 16247ce3f7590a301bccb5f90ab3c15b6c9a4dfc2f151285f0a883224ab78002cf3ca99851cf1cd1e8b526f967716e5a29dc4841a294e99794ff7e759f8cb585
+DIST firefox-115.2.1esr-de.xpi 574630 BLAKE2B 3a6635fbae8df7a6b4327ebb05c5c3d11f9e44cfbdd3a442d02f7865e0608d86aa4947535dbbb19c15c61f220f8a8af0b8a8c3ff13dfa17167504afa5ff119ac SHA512 9265461925925703f5d189adcccb587ed8a3444d39a68680632ab8c903ae4aee7d908e76caab18cbffb24a488edc3200f5ea23b8c021e6d05fa9dc6b1100bc92
+DIST firefox-115.2.1esr-dsb.xpi 589329 BLAKE2B 881f6cb00278d2c3c19eec073eee6bc4b8c65d1dcde72f1b2d2e9fd783fa6c4d6c59b7fcb36884da3476025751967784251cbce49cd4f0b8fdd43d41e213fa90 SHA512 5db2508f45e120d130599840d6481087a7afdb94b9217700c2236c454e0f57124326c21afd5a3805e1c31f1bef1e84ff6de97fe98bb23b86a19ce3dd18715575
+DIST firefox-115.2.1esr-el.xpi 663757 BLAKE2B 3bf80cfff8148145a912d4fa59e88610e55fdc0137e374f145674499be47018270422df605c0d7fa00c40ea75f71a170cf752fe9114fc7db66a0489065856ba6 SHA512 a8231e9f4decb5f10b37d47c8e891a2a1079ad6c3f0868a663a97a5b37ce7bfb1a0e9256f4484e01b0735cb04b6a77604817ed9082adca267938ac2443a32801
+DIST firefox-115.2.1esr-en-CA.xpi 519417 BLAKE2B 629294381714195f9e016bec9b5d23679e3d108d4710724acc2f889ae753553d3dfbb8696cb9d6c7e8e99f00454b4581b8d38956584a5efb1d4d0b222a050640 SHA512 2bf5f9cd58702aa6651937c00cec14ffe15df90e32179cd7b44539f59b76c16940d481013aa4a4723f5b45739dc6432504f6e2b52b630cc5f1e93a69e761a5ee
+DIST firefox-115.2.1esr-en-GB.xpi 531053 BLAKE2B 1b92251dcc947719f860476b8a2235e616fe7850cf15f088dd36bdba6d6daa0fdfecf9fce8609f090aa961f77fec62e8c36bcb53bbd743aff9f136861254d6f4 SHA512 8c6e6ae8e75bf0672fe25e0fed9f61309f1970e13f9b3a871cd2ce168e91b2d51d1d56fc31a52214e75bbe91e859fd376cfaa42ab692a92eade560f359bcec45
+DIST firefox-115.2.1esr-eo.xpi 556379 BLAKE2B 5fc15ac2423b487e2ff44d8e1b9cb7c40d19cf8e4b7d46b328c8da4c841239fadea02afd29d15a0309fac01a2eb5da44e830299f31930a70406d00c37647bbfa SHA512 3e88d96d218eb861b7778818f83f5155229369c62d17c9080bc1ee4cf3bdffe13668d2af63a06dfafea47dd5c2b2e682a0a305292e18517bd51e2cac27f9166e
+DIST firefox-115.2.1esr-es-AR.xpi 568949 BLAKE2B 7f0ca97a8765233d5bf6773f86bd7c1716cd79dad4a90d8c770fbec957994b17e0ef5c49c52fd3f5db3c0f1bfb01736483bd6851e6885a86ea8f197e53922b65 SHA512 203aedaedd8f0a3ba0307622963a3771535b14914f121fd33c57380feda8174060a7505ec0d6e065224061e782f619e63d50f3bb59674b3781380257c1465eb3
+DIST firefox-115.2.1esr-es-CL.xpi 568618 BLAKE2B d5e61fc3b8f63496bb49aeb35749500591f89ddeaa2eb4dc7fd8abb9a5e327bb010d553288d58f46a429e6290f8ebad9715fe4ba95859d8d1d20f2ce45cb1914 SHA512 46afc40ae6b050b5e3b0eff58d019fcbb4ccd1e4d278646f82c6ffbf676fd05157132945d99c5d7b3e3e678eea1af181897520ca224df03cb8ca02f14cca33a6
+DIST firefox-115.2.1esr-es-ES.xpi 562049 BLAKE2B 4db45495a786105009af0c7be625b641239d17262c3a656539d1465f5204d5be5f7ff00e1f002d3c7d7b87dbc499c19ead33ced28086b157d20554bfb819bbe6 SHA512 aca5dce7b3356d9194ba9e0f74c4aaf328579c023dd21b01181ee2cbda45170b9a546a0231870ab96c5a38adfa88efef97fe4cacfef6e8e6ad1c46194324ce16
+DIST firefox-115.2.1esr-es-MX.xpi 565316 BLAKE2B b59f754f8c959a1c27e40a3ea10eb60538271f615dc72b537a9fd53313df602470a8344419e74c36665fed3d4bb84113b543ed89a9a4c438fbb2543885505b05 SHA512 b36398405b02bff14e4129b28cb85d8235e0ad9ccf64347fc8ed40e1cce8c83ac727152f5048df58060b07a9c64006d191c094953e30bfdff054d0fb26b470aa
+DIST firefox-115.2.1esr-et.xpi 516132 BLAKE2B 6bfd405d4f0d15121d0753929a804157a9dd67191f750d27ba666152c1cf001e0742c894c5cb3300cf541dac39764969524b14600594470795ce7cec57c03efd SHA512 492755ebf3c48ef0d273c15a72f3f7a4813226eff967e87bba1677306ab4ba852cf79c69c930d0062c1f545bc5dff42d0bcc4ea407026b3577909fa51070f5e5
+DIST firefox-115.2.1esr-eu.xpi 551622 BLAKE2B 122322a7a5696bb780c6cad5c6ae1526d617c31bfe93959d6a87d35d5a9994da9910fb3c5e9b64d91cf3abbe5f6f66c57d9cb26c7aeab2de60abefa6c81b6087 SHA512 f0496aa64318fb69fc8c20efba7bf47b80f2855cf3ceb3325921756baebe26c6d4d2ef418abb99fd30d29c3987c78f182b5f4ce0d5a3662c6be5b858e9355481
+DIST firefox-115.2.1esr-fa.xpi 564531 BLAKE2B b7a2c91741d1180cd038400739b09bbc65e3eb4c5115ae09551cc3a969bc8c30b3006607b0896b71076e35d894b3a02b941f24e1177a87cba73c1332c0fe5a8f SHA512 bae42946ca0a19be1560cd9a11bddeef5ab1f82b1d3817fb42e683d6e7222f868be1b7c3df4c9f059d49a05ca7fd2e7c0d4e5183d610920f04eda9950cfe5a9b
+DIST firefox-115.2.1esr-ff.xpi 457110 BLAKE2B a19f500db8472a0d05213b3870bf47f6bf7c7f1761c48f420e51d96a7cff05cc95cd72e23ae0c39703d29332017e465c8a15deef2e23a5c1963669252bd104af SHA512 e64870c3521c8d750ca99c565e500f8e517f52abee94cc47950f9ffedc1129def091a3c97b84576d5df5557795bb5ec25552e1989718e4afff722635e3a0fbb9
+DIST firefox-115.2.1esr-fi.xpi 551236 BLAKE2B e0c3e04cdb295ea484f30d6ffec98866e066024a24302e69d1b2b0ed3cc3a1eb80e97e4008172244c454b9e104256640735b28ab2c06a2b5ab78963ba4ac3ef1 SHA512 b9d83f89890bb4c4d5560ac623d95c7bb965334c04754102ef20b924b43cb365d10a3831bca6905553e4033f666578be761df9a9d6f671c0b7f6afec97c72b91
+DIST firefox-115.2.1esr-fr.xpi 580616 BLAKE2B 00a3aa75e2eeaa09b4b3ec35e351a7ad0e2c77a133957294a0525c0213435a37acc22ae1b46bd93a7906b61a20b8c49e860f41f65d258a71047c28c536f212bc SHA512 af010a13680274ede90449c68e5904f1069f9ef986746da08b1e0b4955038bd88f3bb05226cc9799396228b1025b4e5a4d83a250422eb089ddd73491ff255252
+DIST firefox-115.2.1esr-fur.xpi 573075 BLAKE2B 699ba126cba835aaa6c0273ca6a373ab9d4b3553210108cbe676c233cf5d18b8b15f9e19d06318868fef958d63456022e965cf703cbef35ecfb5c324afd74e5c SHA512 d82bfcdefc14d6a35cd6a274e8fd4de49c2347db900cf3ca8e4c9944860b64e5db59b0bab98742531b9199467bfe8ef6cde9de695863d75eae1ffadb7eff6579
+DIST firefox-115.2.1esr-fy-NL.xpi 564942 BLAKE2B 1885cb32ca66e819f0ab4a370a4f0dd9e37cd455da364c1304e4085778a66b85ea7a8ea0a81d8e83d949d1b4536ed3816a6c650b5ba13f4ac01698032b7f8b53 SHA512 ce1d9a84860ad09123ad98653f9dce9139730b17d43acbffa749492818c15b745145da68988ec9c8c29042a35d00cc813233d6224956c9573225d9a8a49b8a92
+DIST firefox-115.2.1esr-ga-IE.xpi 454327 BLAKE2B 8276d3c1f71bdcec654ab829a8a76a786e77a04fd760a5a431aa452c1f1ce7aa44a52acada4d1fe2728efbd7a8803ee92e660cdd4cea6f10ded94bbd6eb9dd8b SHA512 9819e42b4ffe6dd993d941cee97c8cb9f9f6d7c88562b6123753ea2bfe0c199c56d2a48dd4b460d2c791607106dad015b31d1c8ee2d7761c1a6ed4ab19330ca5
+DIST firefox-115.2.1esr-gd.xpi 566970 BLAKE2B 31824fc724731842fe002b7e5891fe5f97595f2ff739c6dae41d15ff79704ceeaaa4a2419535b927b3705ffa3c290d5b0111c39bdca1517be6eafb40ae81c21e SHA512 ee6c8ae08e183830bab4b8dc49edb54bf99d514033ae78ad3a6f52d6666ac22fd9fe0c748c4d33e6482e4802a0da145fdf782e44fb561e3b1231234dc8933717
+DIST firefox-115.2.1esr-gl.xpi 565474 BLAKE2B 7cd6ec185f6d2cf2dce894a18437f1bfa4024c33257de4ccb8ec63ee17c8e71711e292517bc1cdef94fbd075173ef60e83c708fe17caae228332104ac4e1268e SHA512 3a9c8ee880bf38bb2963877b51bcd44c83a335791374dac568aa94bbaa05124123ac5e5827e7777b54d0051ee7b2f3c23c5e7c9fb1fbc1d523a87205ec93a976
+DIST firefox-115.2.1esr-gn.xpi 577576 BLAKE2B c054d9f7c74fa710e8d5186046529cd9c1b8d53dcf6726dcc89f4144d7902cbbcccbd7fd5c8fbe78742e5a76617a4db9f0b5f92f2513d158a5bae02e7ede4331 SHA512 d83ae99e70c296c99915ca53f496a9d134599e2e24bc3d069e25977412d3fb21a4afa45a7cb41312489bab8df7945df8aac20da6c4059ff59db928c84ec1b414
+DIST firefox-115.2.1esr-gu-IN.xpi 506688 BLAKE2B 42164348b24e6665354da84c3dd676a664dc8e8b557b22748e1e1bc54cde9f142b5a0b42b92b0995d5534c25ba99b3abb1da446b01a17b4ec693ac70a09791f4 SHA512 f51340fd7504cc8e7447a10ff8932d672cb2bc9b6a23293ed69ae7266da1eaf00f0d000cc61f957f054869d38990914c1c59506dda27b7503f7547ed533ccdad
+DIST firefox-115.2.1esr-he.xpi 574385 BLAKE2B 6ec88a094965dd4d59c86e7a230090ecefd0cbbd3ce0a7c911207d2edf15d45089b047621f9fc643a5df5797ab926f1114fc0d74b19ee0da0627f8cc84082159 SHA512 0003d93301c7a93c3eecc9ed28a5dd7f1c18546ee0f633ca098fea75dba46393bdd305b8cf380261a745f34d668feac470124d74b753cc6b02caa2c4eda17d67
+DIST firefox-115.2.1esr-hi-IN.xpi 538830 BLAKE2B aafa059156134a8e4e264ef4fa42a33451216c6d3c9b96f0936310fc702bd4e32b8963cb48879423804c182cadc4a691fb3b7f072dc6c25f7da9b9b5b644b042 SHA512 a5025a1e0b5a2983e3cb681aded56a75bed69c088790f53979559899994ea82f9f8f85d9138b0902964c76663f8b1896a749f24ac1b58b9ca40c66b725f4e0d1
+DIST firefox-115.2.1esr-hr.xpi 531646 BLAKE2B eecfd470bdc0bbebd81563e5594f9ceb72fe9c4ecedaa8d79508c0addbbc6ca2b8f1a637467b67a6c46ddd8e3c275c4a0096ca48b5ebc59f9fd877b91873190e SHA512 c63584b1be78ed2ba2785c0b373660e4c4da6df4c3e3488f38fcd40276db789486e9dc6945c4ff070557a14b0d892cdaa0b227355a1e5b4fb7184644a384f9da
+DIST firefox-115.2.1esr-hsb.xpi 585513 BLAKE2B b70eadbb5af48d58d197f2bbe103d9dfd5fd4bd008f1cf9095f541d41d53579ac64c71b816d2dd801da95c0dda90ff90fa76192460bf8cd0b2d38ffa205ead26 SHA512 7447f268724150e7e8cecc4f6c9a3e387ddf11d149bc57cea5798e27637fd7b303cb7c6aea136c5554e0d5ece6013195b40e66e74b81c9a3f5217c3fa076d5b8
+DIST firefox-115.2.1esr-hu.xpi 588965 BLAKE2B f74daa6cdace32a59d723528ca0063fce0cc18598c9968a208146b55f1ab11a80a39c94884c67781941924e9b889fbed621d78ae5696e05c9ff11d619fcbba50 SHA512 d652fa46124ce524bd5f490a12ad714a97d835c9d9eeae890b137325496e10d330494bc1bc5044baff145c046d098fd0e8ce70b70e9caa1ac2f113285c2c8511
+DIST firefox-115.2.1esr-hy-AM.xpi 579196 BLAKE2B bf6c44d863ddf8bc3ac1eedb7fdcd09b0630ebcdb504689c946fc02ae7e6f7d75adce2ee4764c43f4e30de1f847c09c2ad136a43341ff475bdd8a8291149fac6 SHA512 d3763a4905354128e61bf2f8984ad14a0215e2e2b5b50ae7aadbf3c9d707ed9dda9d1d52256904b610a9de9829038a3510d6564b5b41a8df3ecc286b19e0acf7
+DIST firefox-115.2.1esr-ia.xpi 553070 BLAKE2B 666e09d451958d8de61ad9612ac57dae5f3af109082219d89844bd887b8ffa1067c0f4513de4c44d90135c1d0050e05cbd627f297ad0ead50453cb6da00a35c9 SHA512 53728454d1f2c2a66ae82dd429aaad47ab8e42a79ea4474be8e271442c6c84a0f70cc6f69297a91e9ba733e96cf208e81f763866f01ccd6cdc31c2888add2a0b
+DIST firefox-115.2.1esr-id.xpi 537742 BLAKE2B dd1d8768290c23f33f12e74de527c9c06935c5de33a5bef5b4716451ecb2442f1e29dc21209a39598b69093b9ef1f63469da83222c30b3673667f48cadf5edb7 SHA512 e8acc016f2c85e326b4d402f5a3747aeb5cb66a14076f46a87806d9945a061583dfd3dd5a56b2ee76d5e707334735f2de4de7ec17c30d5255a5f81e97e8d849a
+DIST firefox-115.2.1esr-is.xpi 560794 BLAKE2B 27b6b6d486139909a7f0709fc5da2b58c6d0e900ea39495db477124e148caf547b0eec623a90ad8e45d3f16800103bee6c216a7a17017006fbc797e08426ad74 SHA512 8c14088556eb924d224de01b58c4d855dfe1d937cca41f174032d04a85dc21f0906bd84a69fea3a7d3fad18b068606520e06dbc5fc8f92daa4c010454d398dfe
+DIST firefox-115.2.1esr-it.xpi 507475 BLAKE2B 1def58ce5aec069635d175b00be5f4a6bc8856b7b5d3b243bf57abfe46932e264f79f600f0f729d16b946523a662bc09745ba44c021997cc71308d88ce8ee24a SHA512 9755066a8c03009213213b95769508d1ed68686480d11ab306483217681e2942abb438b4871ed8cfcda08f628f74f24c845eee05067b3b019cbf59726110b011
+DIST firefox-115.2.1esr-ja.xpi 634414 BLAKE2B feb7251de3dfdad2f41aa118deba41f27bd3c9cd02ae9a6bb330109eba9e11e6652df8bb4659a470b815514d5dff52f5579f9009216ef9f5858c3e3f6a00b72f SHA512 2037960a4e273cd7020e8afb9afb7c636b39101507b52c460eca37e173776415c7e71862c2c78482f396509f28db09d0c7ba5bb8e0eb5a8a94c73e33df84da90
+DIST firefox-115.2.1esr-ka.xpi 610753 BLAKE2B d671f557b872649db660650db83097d84b3f950d3c89c0e1c5fa38068e09755e289591b61be35222f2c303e27f77f8940a65d8f165215fb2196a49f25c7ebc71 SHA512 609cc873f1a1c18cfd07300a930eb4621455286fad2c3684b1c461c69a03a2ac0f6b3700f1799249efa1dd7fa09db974656eafefddfe843db2ae738b0fe1ee75
+DIST firefox-115.2.1esr-kab.xpi 562653 BLAKE2B 10a56c9ad304b34b6309a5d11ecd641748c28ed4d4fdbf00f8b3a925d8b35e269d46ec896de73f5bf6fd7bf30aab8e6b8de04c4e61aaacd35c632c12b3b4ca09 SHA512 d0529be9fa0f976a72545d729db51f058dc9ef7a266eb08a3d999c0d2ca7c0947ae44227a28d1ed8083fd0599a0fc1a97002be8740a98045b9f147e5c45d2e26
+DIST firefox-115.2.1esr-kk.xpi 639139 BLAKE2B 6b125fbca64968b44b3ad7f2efd2871978b0dd7ce869f7fa3fe694e154c61ab1bfdc0861cd70d1f19ec99919a4d0f758dd5be58690fc9d0db9711f2db236b8a6 SHA512 e78a80a8b0d2a968f1e0da0a14e63dad6693b6b0992156008f0f1e4d184ad8ac7e7b31a2688953eb364cd7361dc4feedab637d3cb311a4e5058de17270e59ea5
+DIST firefox-115.2.1esr-km.xpi 508110 BLAKE2B f1ee1e884b538ad279a0273d8ebe8a44c5a16b22fdf73e53a1fdab2963592233d4709dccb18e2c48f7f2a27bd45b842882159ebf49793e6b90c8912b82853399 SHA512 79846cc737766c12595fef2ff3d88eb6a55fafe393aeaf43b125426b2a11faa89a4c6c20a8ead07d32cc737ec3f73b550b2edf6587d3737b305cfef47ca28d20
+DIST firefox-115.2.1esr-kn.xpi 473769 BLAKE2B c427cf4eaf7cc140b59144d9a9ee932c4c0694e3addaab2c6e3cbc926de2ffaf5a86fdfe3ffb1047d42b4c88b3306b93a32cd237db20d8cb15db8c2682e998ae SHA512 1cc772bddc85a2966ef2aa068d254e8f68df1f6d50f958afe253fd484e6d0b5ab0beb80b59fbf6afa8177c2dad7c3b0ae9f37fdcb41e1666c93d41497211fb80
+DIST firefox-115.2.1esr-ko.xpi 600393 BLAKE2B f789b1df01d6226382660e37780d003cb17aeae61bc40c1442574c4f28d17441676448618b6377f56351c7e7c353493f56871233df4bf455ddbc696255c77dc6 SHA512 14f37a6a030a80899e679423ec36ac2f4d4a5d53bf308f8528b542d8bac6044c55ff6705885df9ca0d7b7465a51f9650677899f5e228c2eaa2f5619d161131e2
+DIST firefox-115.2.1esr-lij.xpi 463744 BLAKE2B 48efc967d1431589bd2e3731dce691e903cd8d2913531a4db216ea4bd106dd851f5d467a8dc92e9ac0a10d1f213da4e783574be579a909682eab12f976a5b286 SHA512 423e60341863f3e098850fea839239d6d532ae04e4096cc292e7bf87385ec0d1403ecd5acb56b1b1bddb6185924927c7be624fea5af220bbd0f4bfb1fdd1e74e
+DIST firefox-115.2.1esr-lt.xpi 548292 BLAKE2B 3587f67fb5d38a0ec5faaeb193f005b8cfbfa23a2d7f33cf565718f07652c96e268fc312d854c07648f3b75a58eb50940349cede069f1d820607e04d14190ad6 SHA512 640aa0cd5a39384baf4d2aff4b720710e6d799066119e3ec352d522b7b762ce8c44df4bf68a3967b250479d205174b634e31dd828ca6782afed233eda4c86244
+DIST firefox-115.2.1esr-lv.xpi 450738 BLAKE2B c18d70ccb46f3392f5c91b7be0fe07a81d0877be4fe93a826ef20d88a04b5396374e574603277ded2344492e0c141a972894665b239599eb77bd04391c04c7ca SHA512 144124448996422279b89898bf5a9c4cb4c159a1954372c4e4cbb40f76f46623386ee52d19cfe86f9c9dede49d280fc83f89d06c6288ab3c896cea0e4cfd2d1b
+DIST firefox-115.2.1esr-mk.xpi 470108 BLAKE2B 69f86fbc477cc5e8ec25f4f2671c8209467fd0aac2ecb17c2aaab8c814b98e7836d07bb1a757af582b5936f1f85c3d094a2896adf935287d5b86ff7f30926b3e SHA512 a55afbd2ab42652de4df23eaad0ebef62f32a7a2128c1e3196882955061e0d3489e56658c86fa0c8851a297961dadae91d4c6f76d378a1c86b81a6dbcf001963
+DIST firefox-115.2.1esr-mr.xpi 510465 BLAKE2B 0b6cf82fea1349d2d36c750f45f989c305826058a571f4c88c52cf9ee3acb1e5a95cf77abb1ca860705b4758070f698bacd35d50f76c9ebd28cbda47a5314b87 SHA512 0e9c374eed94324081f879fe8722f42154415bf7a5651f3e98f61d2687a40135970d76b81b24bf8d145a5f003b180b0473cc4e9835459abe748b1bdffc4e2dd7
+DIST firefox-115.2.1esr-ms.xpi 431281 BLAKE2B 3341feff235b24634719bf9c0001b4bd67b41cacd5674a47daed84e39a0d1d7d6ceb4354a29510b476b9c734b70a8c19650b41808f8ce79f4b142dd0f40ad21c SHA512 f2584ddfe32cda55ad2f175e22e8096ade5078b587750b22cc8c2a6dfd5bdde67105d0bf3bf1f8ba867a17d4ed24b45628b2b4970a4021d5822008f0621d9f6a
+DIST firefox-115.2.1esr-my.xpi 493659 BLAKE2B 5eaadf496368cfec351f35a50b4dde331acda88dfd52770049b2d536b786243f121c2b71e5d9a995988300feea6d74154d4d966dbaa9596eb01e802f7cf3663e SHA512 e05032fd5390b52c9d319ce25520887b96df3f4250d1f472aab7e2ea8f569f6725106b3f8c9c8c1413b89a43b6549de6625eacd7d1682ca8e48fbfd9f517d08c
+DIST firefox-115.2.1esr-nb-NO.xpi 548985 BLAKE2B dd2d5fd3893c8c72aef99d16ae42523ab8038645c1806f95d25516b736ad2380773efdc66df35a5857e8b940b3b6ce702bdfff2d28c5eecd5cdf600513e7ee63 SHA512 64b49537bc394a39fdb48335c365da4fcdbbb83590bf3f663a37f4f416591c059baf17cf6c1347872daf7c241d61a4fd3ce9be5752c34a92bd706c2c51c73ea2
+DIST firefox-115.2.1esr-ne-NP.xpi 469000 BLAKE2B 6c09dd5b148309be1136bc8a2a334ef3b83b2b0956e3b75313b316d944683268604f006411c4f0b6459674636408335c444c6eff5e0314c16c71073e2f4e7792 SHA512 862bcabfcfd6f9ea6c2838b1f694982ade4616492fb43ed337cfb9777894b9a5b53129d5b58b8cf94522b8e017fbd07cdf411f58a6a741d891a44cdc2c9665fa
+DIST firefox-115.2.1esr-nl.xpi 559199 BLAKE2B f6c9df4000974f8ebcfaad7623ff3cf6f7ad761a69bd1acc153cddea5c8be760bcbfaf2fafb7013d1185c6375b520190a4a29267f6f7dd7c1b3cac102d9cd086 SHA512 95b7f11f305380b76768e191eecf59218f02ed6ae742b9d5ca79fd49cd9e0632a0ad694e5a7040e607bb8a2390d0cb70a0806de36eb84f776d4d84db0ca00fb4
+DIST firefox-115.2.1esr-nn-NO.xpi 551972 BLAKE2B b130f45523ffd0f034cd9836a262034eb5239013e7d71b5043358566f4b6942116cf5056cf08f2d98d80141e029975d8d87349475d3d9d0997e4efb5eda73757 SHA512 0440da38a1c13834b10467a43013d797f95394498299571272f397707a9695923dc608b136e11ecd6b809b5a257881f13a3037b674ca1959799872daee97ebec
+DIST firefox-115.2.1esr-oc.xpi 572155 BLAKE2B 31ff459eee1840e8f4b16477a83e57bcc61fbee41b106b930397446ddb971ed06a1dcbed46551cc398deedb6528ed26ca2ad365d40ec41ae07e33b21ce407794 SHA512 57aa30bece8fcb285048e05854ee08c40c513d84b3c7f3b055bf27976305c73c74755560f7860c51f779c1a97d4009f741ac613099633056c481c7b419018d89
+DIST firefox-115.2.1esr-pa-IN.xpi 626114 BLAKE2B b9e85986c1a38508a354c5242ef661aa488b2ed3a533bba1f7323a25fdb2b7adcf91f7a68701cf0b02416c977cac7d632dcf2c9e47023206cdbc46a6072295bd SHA512 6dcca3a760ae8f576b7e307b1eaa4a9337ec96f26135c88f361bb439fae4a867db7d62d8e745af05e230b618ee9e0d5eceffe41dfd9730bb0d3caa949d1c19af
+DIST firefox-115.2.1esr-pl.xpi 579826 BLAKE2B 38f3c4f98a8f6fa06c5ab01b50d8cdbb6758bcf98791767e0566954704ce251ce271b7b9383f3b35166251e3c91b489190c76f958dcfc1dccb363aeeec89839e SHA512 570d0926d3e8a55c58546afb667e87cdf70bcd8062bf0cfcea971295bc33cf22be457f0fa290b6d3223936d0e9bcc26d0f51dd333f41a6199e7924d5d60563ae
+DIST firefox-115.2.1esr-pt-BR.xpi 563949 BLAKE2B ca7fdc7220027a5a408b09899566bcb99aa54381300db6bfbeb16c5bd833a8fab41b9f90cd2857576ca9510dda0c0315b2c68eaceaace7eb5df9b989e2a0ce17 SHA512 c77ca1f76621e90e96a23c24add9d050793edf13c11d95c2d0b25dbee279a7c4a61601f18e63f043ee07fd3581d542bc5ca94531581f5c9479d569c280ba425c
+DIST firefox-115.2.1esr-pt-PT.xpi 569059 BLAKE2B 28e17dd8e92a47b8f79e133e3fb1c9c05cc657fa31dfbe8edaa6ac2c825f9729fe057d9bb68f25863a19450cefdcf0c37159d05bf414f689699364310aa7b231 SHA512 55e809bed93b849c8c5bc262ff205e3b422fbf95398c264150dedefdddb8b9fbc30251a5f2b8716ed74340ec5e272340678782acb5cd8ee53db3fb3c6d3aa930
+DIST firefox-115.2.1esr-rm.xpi 558668 BLAKE2B f212ed296e8d6ba241e1c971a7f549c1c6bf18fb77c31c880e721751d23c6fe2bc832cfeaae858066bf3cc84b6a1004b0cadfe39e6c08cfab90b6c9c9ae8720e SHA512 af289cc4c72a5a7e91f1d08cc05bc62b7cb85547f35d14fff8fe401ddabebe88afbb05c39a2cb0261c4c70ead022ec6435d0e7eb779f65e4bf6fc63f227ecaba
+DIST firefox-115.2.1esr-ro.xpi 524801 BLAKE2B 48000cb8b2fe5c6f4dd0e8e9fd3745adec78ea75b619af2a7b84a335b40240a620481d48f7c1e90d6df6b60d92e24e44da4675937bde9d927a94129e276ce6a7 SHA512 65678bdcec7b1b090676bff4300e0492ba14fee79b02fe85edf28614629e38b668547dbe992c5e0937d395c968e3012f74beb9d40d33dac4bec3b3979de84ebd
+DIST firefox-115.2.1esr-ru.xpi 651414 BLAKE2B caa06058a15f0a915cae1bad30127178e30344497a8e7e68f15ae9881c37cd2937ffa4a0dffc5a4713ba67f02dd7c4a47027720fbb62152be01cbfbb5dfb6562 SHA512 bf70e1a68915b4990a7e71f3ff2beaba870589759caf39aedb158a877cd33d7b08aca7160ab9adf88048200a636dacefb3421860259d9e75d8ecb6859994a312
+DIST firefox-115.2.1esr-sc.xpi 535148 BLAKE2B 33d70ff7ff0e922e7d5c78ec3e3ed2d470d89b99a3f2171ca6e1122b3d462a89b22ea6f09753b16b477917a03acba07c7e97c25ccc49f9691adec19d5f655e62 SHA512 ef8e707082d53aa2742a7429469f9aefa32fc3698a54af0541451b96d285c21242a4d19adc177c734c8bc6bcc5718758508d3eea7acd25fdcc0371a9344005b2
+DIST firefox-115.2.1esr-sco.xpi 489683 BLAKE2B 80b5026dee83e70caf354ad77bd8b7b80bf9ab66c70146e4446554897c93e9b53a60f5d8ef3c00af684e59acf30187536a96607c14784cc50fb5df32067aea35 SHA512 4c6789798309b07f07d6b1be638c04b45213df5352792df35cccd733407e4d4b0e2eb09717136bb7ae30bf29dcd2db8f908c6dd2a5423974286645cb60ef3d3b
+DIST firefox-115.2.1esr-si.xpi 569009 BLAKE2B 5133c2f2d5f347edd9635b350e14c46b2aaf81de5ef57f98126855fb84ff8d22e45972a57eeba7af6836ee2b8875926601ea40d718d1a29562467f303fe10f3e SHA512 16484a8f8d0fb0a7ffdaa854391a204dc1d148b2f468bb4a69610732593b4c635136954ac9a69b99a04af5e31c7feb23ea9775a5312da6bcd524706fac5315ff
+DIST firefox-115.2.1esr-sk.xpi 589731 BLAKE2B ba9a197c3601353c2cfb0fcfcecd43d192481205bf213faec768655d87649cd1d961251bf1f14dedaef1943bee49f023fe8d38217963c9a38e737beaca3e9832 SHA512 c03d5dacba95b82963cb0ecc2d5eb830958faf74a43cb33275930f772f67aa4627d911292cda713c74b1af88bff1bbf01ff726ad1ef216fb267978e2b999bee1
+DIST firefox-115.2.1esr-sl.xpi 562527 BLAKE2B cf38ac8502f0e417c4fbfdde269828bfcebb5333a724708b51ce018e54eb604e8890e8819cd97c7dcac469bca30b460698f5daff538ee9dc7edcbca30cfe8a21 SHA512 8b2d4e1d9f2a175834ef6d9c456932c7593bb74724b43e40c6a23a749de2b9c179540496f98f740e752e5ab3d1b605a290430c70d2ed0f5ef61a7b852721c745
+DIST firefox-115.2.1esr-son.xpi 400971 BLAKE2B 321901b3afbd93dff56c4c446f6cfd26ac6a1f6aba991ab81822cbca36504244702733c57665596a5326f48dbb7f066959aed3fcc2b420dae65186a3c676d424 SHA512 3fd3a7ffe0f0263ab01bcef7706da4b2f95fc1837502a5938f9dca2602ede2ce546253994092b6551cd9fd2dfa027990560f08603827165d1adbd8562cb9af09
+DIST firefox-115.2.1esr-sq.xpi 564456 BLAKE2B 3f406ccb8101f9e72d7d2a2def91a331bc11d9b24fe8cbde788cc425fa0cfddd144f2ef24d392ba6e70083fb7de221c8e0ab37d080e773a596a1e7f4ff36d262 SHA512 b7e9a258584765361701de33fbf78de2d95720a72d2254e4de3469b150078290ceb21e42735b12898061bdb04f043786a9a2854f074d286e52bbea3b60e90cd5
+DIST firefox-115.2.1esr-sr.xpi 614003 BLAKE2B 02f0b65fa53cfb3576983d710763aeebde27478ec2865d7bd1163f60db29254e9e1bc30b4831f9afbc7c075989d348e6060e69f914a56f4084ceef988fa5f57d SHA512 bc1f3962ab44b4c153169c84b4960ee8a6eb7ff6b717a3840a6dc8e5458e07bb9fb214644142ca5539eb12e5cc94bf517d9d83319b0a5cb0d197c5de120824de
+DIST firefox-115.2.1esr-sv-SE.xpi 560552 BLAKE2B f4e8df95110be99aa6efa10ba013fa9211393f0d1bcd59c06dc13ab852e22995367c1cdc7ea41d18585b85f18521cb046520a446ebf573fd0579b53da58a9e4b SHA512 5da25dd45e8c09806c371840f170c757c743c7d20fd594edf619fd4fda56ea59566b923a89fa1b9f7d3a73e075e293921dda4ec499e58acae81292bf24425652
+DIST firefox-115.2.1esr-szl.xpi 504127 BLAKE2B bdd62356873ff4ba0e498fd131b3df978074fcfbec5ccc294b4554230ea563716f47d00ccaf3f93652a5831e960c8a94a4bfb613dfe4c4998958f03d1599d25f SHA512 201ce4f535ed95caaf9661af94709df2711277eee917b1d653b9ddb9e62259e807ad5e5a2046d3761d840714dbda79489d5aa78ff0abbe23bdb4c020729a2362
+DIST firefox-115.2.1esr-ta.xpi 488857 BLAKE2B 9d8ea0cb2a36d1e0742a9c8b560c4b8a391f6e3920127c73736b2138776749bf52bfc908852cf4c191b69f3d1489f8d828269188c53d5144326901db94b38acf SHA512 1afd8526e009618527c2f0a108647c580e6e02616554c1762ae23ed32444b8f4bf3338ebfd86245dd8f9dff5d5e326308fe87d02ad5fa0eb9d2ea0e9f3030dd7
+DIST firefox-115.2.1esr-te.xpi 536165 BLAKE2B 443ea617937dfcf49fbfd39b3a20df85793177ed6213eab79618cf123be6ffe77a098f33483a55299002291f79a59b028b9612751fa0ab4b8002a1e490d9d88a SHA512 9ced3bc3ea255ccc2ad4294421c0070ea79d5ed22984076bf5d24cbe258d6cf4877ac15a61cf2a0b2529dd70ab4bf79195647e34d4336e8f995d1b6dbda1de60
+DIST firefox-115.2.1esr-th.xpi 632052 BLAKE2B fe2109d97d35df8dbbff86c8f878a6c87e3b3b787ae09446e98d94dcd025264da3f978ef0c5c3b11dc8dd366f38d57582aa50b82c9733779cf1ae823d92b1d4a SHA512 2a5d429f4bad996bb74ad928ac8f9bdbc23fa1c43dff1da91f2cde43ce716369525e9d3a5d9e5c952454262ecffae9785f82a7e7a426b225364a29e76fcec17b
+DIST firefox-115.2.1esr-tl.xpi 511428 BLAKE2B 2a0b508361ef5989f2d60f31230fef8541ad6870e897827395ac50df653fc7db4484fd3adc8aee9c888db09644a857668e41964478fdf83668b0cea623aa4300 SHA512 6c5d289d24f53bbaf403d6408cd8e50ea885c7ca8cebfaeb4a8298a9582304c0612c9ead9294d5f4bfecb9b4d3746bbe18230809720c6d3101cdc9c9b6d2fae3
+DIST firefox-115.2.1esr-tr.xpi 573259 BLAKE2B 133c021c594964369f563d46843d382efb6e45428d421d5105d88855caeb8ae0b422bfeff719db12df419e2e8dce06498e01ff75cab41381ec921756e4db913c SHA512 f7d6e04d6a7d094e4449fd907f1199354e5faba6da035992cbe09e41c92f9f303d85dcbfba3157e6d1813a233c726c017921e5f608f7e690d4efbc3b9aafecff
+DIST firefox-115.2.1esr-trs.xpi 479681 BLAKE2B 62cfedad14a92b1b838d7c1196f65306e2ec2d659190ea9a7207509ab3120080407a1e6c1546e71ffef47318628e040362be4d58fbdd567c8bd2987015d9a51e SHA512 70f377956b47a885958748cf8c18fe3edc8a4ce06f814c9d688c2c836bb518294cad9ffa202042b82a5d2ebedfc9e125fdf7480d701479d470075b04799d4c43
+DIST firefox-115.2.1esr-uk.xpi 645040 BLAKE2B 3264788b06c4c8626bda6566bed1302aae1bf10a4f21a1ee063790bbe791342c4b7071e7699af9343f7dd3c6c52ae43cd756622992a4e021ce14b7d9aa1d1a27 SHA512 1862964080f16942141639e7e755923ca62fd2735eb81d8d6044b6b2880eefa1fd2624ac2a2f938780693775d80b51ce572dfbdcfb38882777814be718eba26e
+DIST firefox-115.2.1esr-ur.xpi 538789 BLAKE2B b910d0d736ba15c22e13b3c1019a0941843ebafccca88dfcc4670fa0903d8a883d09951aba43aa412df1011f709d08fbd677c379e90a7aa57ec13e16134472b7 SHA512 9ab9cf2246c8c6654a88e39f41458c05388213aa6270dd7b639cd78baa226c04acb5f09235382d3aa5c26936bcc315be617fdccd8a444bbc0da53ed7dbb43072
+DIST firefox-115.2.1esr-uz.xpi 461757 BLAKE2B be1db721925e56ff06755184bea79398f7ec782616bdbf543263ad21505653cc8f496874aaafac378cb24412af5416a5951f6e1c051be53be075fc6d47045bb9 SHA512 994948ea46cf9cbb71d984ba24940034b0f3f1ac6e5315ee268c547e058479b5780bac0ac7c236e020eb25f9470615cd479c8c6fe9bae30acc3b8315fa2d9b14
+DIST firefox-115.2.1esr-vi.xpi 595536 BLAKE2B 0a17a892ac7394157c3fd5b024e262802cdcb9330d843fb51dffcf10a6d7d0e335d94946de12fabae447262834c695d00b0c215a30feabc1b7f15e23ec5162a0 SHA512 a3613772df174383c6c2df94bf3856c796ad02acf35e60abdeabcd24941e695ff8ee11f0c405d175ae8455803986ad667017180c42c418f67e8d15125cdd4811
+DIST firefox-115.2.1esr-xh.xpi 402432 BLAKE2B 3012eee773e3d4bd3d2795dc530ac81889798eea8d3cb614a2f69b5cb996782e14d7f53ac96b803a78936697c46264c68da1616fcfc0a785734bbe114af6825d SHA512 9669a89d86483878f25e7afe49e11e590f62c6d32668fb7f5ca3992c2e4e9838b01701601f118dc86aad7d1cfb2bb089a8bc51a228ee3ff95569278c2be35789
+DIST firefox-115.2.1esr-zh-CN.xpi 595484 BLAKE2B 35d42cd87628e9e13075471ac5db9275fd5f063a63b5962a5c1c7de238135ae3d03cc5156ef8b87344ebc32176ea3ef2cf505bf9d8a8b787cfc572b09e0e191e SHA512 857042f7718fd3e4fb4e4c26cff9fc881d343aba260010f75143fcd6843bf06348138af5eeb157bac65f384055f59b619482f5cb1a38d9d5e045cf5391c45948
+DIST firefox-115.2.1esr-zh-TW.xpi 597819 BLAKE2B 70b5179e0af42de33c415275ce620aaf500bde4ab50b41fe14e92c2d8a4eaf354fe950224461f58bcbb46f3b70e29af5059208edd5fa4c3af0419cff05861441 SHA512 81cc213c6e102c4c1b8e754b8befd5d7b959ce3f41aa9a65532e3bf1e1ac36b2599251f0d2230bda06658a4fa353edf5908aaf59e18b64448adc9fe2953aa8ed
+DIST firefox-115.2.1esr.source.tar.xz 506585124 BLAKE2B 0c0600401c862c01f1fe145ef76c8b27efd4a9d8426932a2cd2de587134c4fd23a643cfee626a071ed7b06c9ec7459b1e4645581be08ae8a66659708c3166848 SHA512 5f9ff96996e3c482fa4d2e2861fdf14d2154bf0277d412bf9c9435204c7e2e2539ce7ef0891d8dafc74d5a12650a5ccd33d79547aa1bbb2c2a0972aaeb755edf
DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257
DIST firefox-117-patches-04.tar.xz 22388 BLAKE2B 89b9303a71e2421a2cef9ce0a3ca7dba5de7c21d6af59abe36b1e090bcadef30d2954acda874d72641b61b4cbfe0b032a6dd1d7d699709a2f4818c6e1e228d49 SHA512 7914262226a0d70cb3d24cd152d79e9e98b7a72993276ecf26f4e79608a0f4dd9717b8b0f3524f54db385af404d1779a2ec828e23b02c10a5dce27b53d20e835
DIST firefox-117.0-ach.xpi 444788 BLAKE2B ef17002a9dcadd4b27e15cb16a916055acb69a1d5753744efb9a096351ff7e79a7fa4b3d809f55d17f75d74f970cf40793df18ba6d9c4f1bea104cd8da8f9aac SHA512 43db55e41ba8ace6ea453e76dbcf9621b62eaff3928e465c3a1589ed37d9d6ae33f82aaf714dbf739be5feeb7f60ff5d1d134c3480dcff5068a4a5ae1bcf5a7b
diff --git a/www-client/firefox/firefox-115.2.1.ebuild b/www-client/firefox/firefox-115.2.1.ebuild
new file mode 100644
index 000000000000..b923877b390d
--- /dev/null
+++ b/www-client/firefox/firefox-115.2.1.ebuild
@@ -0,0 +1,1407 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing optfeature pax-utils python-any-r1 toolchain-funcs \
+ virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="esr"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( lto )
+ wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ !www-client/firefox:rapid
+ screencast? ( media-video/pipewire:= )
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ || (
+ (
+ sys-devel/clang:16
+ sys-devel/llvm:16
+ clang? (
+ sys-devel/lld:16
+ virtual/rust:0/llvm-16
+ pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:15
+ sys-devel/llvm:15
+ clang? (
+ sys-devel/lld:15
+ virtual/rust:0/llvm-15
+ pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
+ )
+ )
+ )
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.3
+ net-libs/nodejs
+ virtual/pkgconfig
+ !clang? ( >=virtual/rust-1.65 )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ >=gui-libs/wlroots-0.15.1-r1[tinywl]
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.90
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ dev-libs/dbus-glib
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ screencast? ( media-video/pipewire:= )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-73.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon[X]
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ hwaccel? (
+ media-video/libva-utils
+ sys-apps/pciutils
+ )
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # No mold here!
+ return 1
+}
+
+virtwl() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+ [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset"
+ tinywl -h >/dev/null || die 'tinywl -h failed'
+
+ # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work
+ addpredict /dev/dri
+ local VIRTWL VIRTWL_PID
+ coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; }
+ local -x WAYLAND_DISPLAY
+ read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+ debug-print "${FUNCNAME}: $@"
+ "$@"
+ local r=$?
+
+ [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+ exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+ return $r
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # May need a wider addpredict when using wayland+pgo.
+ addpredict /dev/dri
+
+ # Allow access to GPU during PGO run
+ local ati_cards mesa_cards nvidia_cards render_cards
+ shopt -s nullglob
+
+ ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+ if [[ -n "${ati_cards}" ]] ; then
+ addpredict "${ati_cards}"
+ fi
+
+ mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+ if [[ -n "${mesa_cards}" ]] ; then
+ addpredict "${mesa_cards}"
+ fi
+
+ nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+ if [[ -n "${nvidia_cards}" ]] ; then
+ addpredict "${nvidia_cards}"
+ fi
+
+ render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
+ if [[ -n "${render_cards}" ]] ; then
+ addpredict "${render_cards}"
+ fi
+
+ shopt -u nullglob
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ if use lto; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ if ! use ppc64; then
+ rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+ mozconfig_add_options_ac '' --enable-project=browser
+
+ # Set Gentoo defaults
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-tests \
+ --disable-updater \
+ --disable-wmf \
+ --enable-legacy-profile-creation \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # Enable JIT on riscv64 explicitly
+ # Can be removed once upstream enable it by default in the future.
+ use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ if use elibc_musl && use arm64 ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --disable-elf-hack
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ if use system-python-libs; then
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+ else
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ fi
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if tc-ld-is-mold && use lto; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local desktop_filename="${PN}-esr.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+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
+
+ local show_doh_information
+ local show_normandy_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ 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
+
+ elog
+ elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
+ elog "useragent checks. To temporarily fix this, enter about:config and modify "
+ elog "network.http.useragent.forceVersion preference to \"99\"."
+ elog "Or install an addon to change your useragent."
+ elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
+ 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
+}