commit: 2132eaa6af0e7fb0ad14fa852fd1e5c80352ba9e Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Wed Jul 10 10:21:56 2024 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Wed Jul 10 10:22:37 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2132eaa6
www-client/firefox: add 115.13.0 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 100 ++ www-client/firefox/firefox-115.13.0.ebuild | 1414 ++++++++++++++++++++++++++++ 2 files changed, 1514 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 8629aa9d46c5..0af19ce0958d 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -198,6 +198,106 @@ DIST firefox-115.12.0esr-xh.xpi 414802 BLAKE2B 35b5cabfb1830b21a34e7c57357fab537 DIST firefox-115.12.0esr-zh-CN.xpi 650834 BLAKE2B e5b6e072a8609aa65c988dcff5824010276c372f12938e860aa50c5d0cb75de649a1cf2e035c275419435ca69bdd95550130c6de4e3fab80231d40b5ada995ab SHA512 bfa4cd5b8ca8419a0ccb19ffbb7fc7156283bbb784944bbdf1102b631cea372ceddb362cf8181a57bf8587bbaaa28deed78c0ce288b4d8a09145e047ef82ed95 DIST firefox-115.12.0esr-zh-TW.xpi 653669 BLAKE2B e5b95c1f07618ea7ccc285e77eb92ed92ae3573af29ec29aec33e1f7e516fbb7df060de47b0f521df816faba193575f619cf937ef378f594f347dd7235b393ad SHA512 030d7a603010447d82d9670babda138f44f39b7c1370c0447124dcdcf4bc90086b973ee8664406b4d97fa292cfc692ec31732e9fead685a4fe1696c324431045 DIST firefox-115.12.0esr.source.tar.xz 505219784 BLAKE2B 6d2cc80daca9977f73ea0c0fe7e7cac999f2d7a99c324332d69d9438a6d954fe72ffb35e4df4c2a86abcdc94231c4847bb3e64dd612240f8a6d86e63abdb1be2 SHA512 d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89 +DIST firefox-115.13.0esr-ach.xpi 458869 BLAKE2B 766ff00e9e84e3b51fb84ca98219b606bf0cf5c5b7a3217a19653db39dabd16d8f8819d1492b216b18b2a9fdab7207f79f2b56c71b27cf51b1ab8959f5855aca SHA512 629bc6c9cbc00448467a1590588c04e6264713669e38f3b3162586c2bafec5908780b76d794b20dd8b511e6b0d652ab81b6a9d015b0637d2f63937d071797ccb +DIST firefox-115.13.0esr-af.xpi 415050 BLAKE2B 2ff8b6ee58285be981cfe3406a6dd7d7f3f5f4a5fec849916c1c0cb415962de5f81c020a26b9965fd8492db4cc46f5120b3185c7d62dda0e1cbb94a7f68a4d1a SHA512 c29eb1c6f2baab48a6a1908071ba42281662709f717b0cdd9fd54d5fdaf4f4e34c23a0c7a69daed957957f9b651b554a17c7573cc5a12d4676c7f97b0bf9d68a +DIST firefox-115.13.0esr-an.xpi 499423 BLAKE2B f72367ee01c38c4958c4416c1a3f54b2dcca90c93fe17311065e47e9c465a3cf2c3e363baf8720f7a261c3f92be5e4622ecf17ea4dc0cbeda40695a3d61bbf62 SHA512 2a6f4da626d74cd2dc05e3ec42fc063c631bdb6b70413fbc66ce7b890118219501e6e237b53f51393d9b12fef81f39afac7cc4a3d4f4dcae927874f10e006701 +DIST firefox-115.13.0esr-ar.xpi 605444 BLAKE2B dc393bf862d39c7e72dc1edc31ae1675b0f907ce5a37c8eb8278b448c63215745a3533177a8e6b71b774b829a5947ad55549eb71c90b6a9e98d3d46d6c50b06a SHA512 ec5da67bc4e210a9887eb503b1e27933e3cf63489f0c31290a7c949ec6299b2135e1e8ddacffd7220c2e16da4c3d001a2eec1d4cf80a8693d94eb71001fc8823 +DIST firefox-115.13.0esr-ast.xpi 491184 BLAKE2B 5dcfcc1dcb664c78d71e22e8f38d13ad80cf6602071b601445477dc33887ae1883761e6c536341a59d195422884cf5d481e9a9692c9945672debdf654e78292a SHA512 3fc92b689f80672c0b5a97eaaabcc242aa42cf3e33aaf9c93e444c45a7e0dfd97baf139c937e11a50d35ee960bea91bbe53125942209bc1f9face75288beec3d +DIST firefox-115.13.0esr-az.xpi 485937 BLAKE2B f65761f146ae48b0704a3ab4dc34f45ac4c7374313fcfeb838c1f23b577200bc243f2f7c2fd6ce477aa0a85ef0425f26bb30a28c84904385885b32bb41736050 SHA512 380d055cb9b3919061a8e23f804d39ce24fbc135a0d963911b256ccebee57a2bf6af99f24b4acd7c70c44b7e3f9ca3718701968cd72b16c39f3afc225bd0b395 +DIST firefox-115.13.0esr-be.xpi 711827 BLAKE2B 16dfcfe555f23037b2d5360c7f3109fc69d10003e6de4a087f8aabe48639039396bddb06ae7da2082b45cf188897cffefa6bea4366816db3a1bc8f3dd3d3863b SHA512 fff6b8c7ea887208ec541822a1ab073f0303df6aaace84c6c0cfa682a538906d9a67ba103690adbda920dd0394d5ecc249765781f1304e6fc2ae266a9ea86ae3 +DIST firefox-115.13.0esr-bg.xpi 597471 BLAKE2B d475045b3abac2492f4316e21bd1892eb06656162ea6bfe93bf34a1f3b052373f72c85ca33a20a7c7afb35543ea4e1c9a520c622c11f287b0b1ce049ca34a203 SHA512 82b83fc0891fc3c4101fdcf046516f466c9d36227e54783e30252bc0f8d1647394f4c667d1c473c4f7568a0094a84c1216acaa32b9604704e7a0d4bcebab2d1e +DIST firefox-115.13.0esr-bn.xpi 576186 BLAKE2B 68de38e08f980f61f9d228df018c9af388622807f032e98ac453a2cc0fb0dc22ba5cfa0421c850da2dac70d30f2bdf37ce20e8f08fc42c1a35b73e0ac23669c5 SHA512 21110dada66d3dc26bfe92f771b487fc39374af0b17e6cb66dd68c0613471dacf1e04aa59fa0c3c6d870114b85d0232ac339143de561ddf346255182e83183ef +DIST firefox-115.13.0esr-br.xpi 584021 BLAKE2B aea8cf321ac9625979f6d77643b9a5cc83dd965d7124a18e447ed182fe5fda37ecf5654bcfa5368df9cd63574a9376fe9c802c5dcf3a72a5d1c3cbeecf0405eb SHA512 0e58cfdfb3154caef8dfd3e4d826e58eac33cb8d296cd362c715bea383dcb74bd4c37363d23752a29614abd5542f76c3f78a6c5f31d0567393073f0d8f806532 +DIST firefox-115.13.0esr-bs.xpi 496142 BLAKE2B 59f4515d37ebc787b2d612d9aa556ddac4c5f8122b2e7d0e783add521215d882bcad4162ef9faed133d47d3e60bba6cc5d6c9c9ff7360811396d620ad63c9fa0 SHA512 a85ddc738c814514615b9d9ec4c3671ffbdb6bc8885131305aa55ab592b1041fa5c22790204c1f79c788f8af5f1fa9235cf211c3df863e2217bc409b179443ad +DIST firefox-115.13.0esr-ca-valencia.xpi 539103 BLAKE2B 349e7c4054fd3e87a4a0e60424a9cb9d3c0187c3dab5fc4a4b6cf858eb302c66d170783260a8b6533a67666e5c525925851e6adcd28c561eb73ffe5e99e70f1e SHA512 2c604454dde3d95c2b37aff51d80011d10bd6dd26b0055751239878d740596167ba48536289289e34a0384a7344c042b863aba4e204f631a995a9d39e4c99d47 +DIST firefox-115.13.0esr-ca.xpi 578624 BLAKE2B 57daedb34bcea839d5000b18087627b05a03c4d7151dfa62ab1b36a430d1381ce4219bf5a54d231ce8ff5721d29006ee4e2d0186c897f7b2db80f2b48283b5bc SHA512 489a62c1a98e5729bfb5e76f5ca235c7afec3c20d3b973f3ef2d8760508f866e5ef377f3e5f7ce2fe2b573e4cff979bac7728968ea8c1765ab68fa2953ad29bc +DIST firefox-115.13.0esr-cak.xpi 586161 BLAKE2B cc408805fcf450a1318edf8863e2050afaf5b91fe74213bed8fd37357cec4bfe98580ffd7c9a712aed0b548b04938f10890272c8a75918a5058671c8aee1fc99 SHA512 9861c6e7fb57b2bd3e24dbe56769de03c2ff0d41ddeb39ac81158b0942b11749faab41312c92688722ea58f054bd2d4a7d7a79199f7c3418ecb8c2ee1e786352 +DIST firefox-115.13.0esr-cs.xpi 655607 BLAKE2B 2cf82a0a42f53b6c5568a83cf983eb1f62071cd97dcc8eddcbe003c316de66584210183ce52e1c9cbc1338f4f0e39c269ee36a909548d43335ec432f13f22dd0 SHA512 65cd2a8c6ec128385c04e831bcfd91f4802838b164992dfdb568e2792c9308f49258f4ef8b8a13dafb1e313d369ac872628c04cad7ee69d9ae7820642c370627 +DIST firefox-115.13.0esr-cy.xpi 619969 BLAKE2B 9f82972e92e4b3847ec1bb50ebdb414f61b9753765c7d0825c0eb2086de41d08772dc66e26afbb609edcd276e8af74b6742332351d35397de18862df212d0959 SHA512 8b0ac22d9499f211f7cfd4e4ab4e6073ac6fe3f566cb9f500f036cfb66d40770b42bca8f71a1e491eab4a91674bbd1bda75c34a8c538de51c40d27456c207cc6 +DIST firefox-115.13.0esr-da.xpi 608727 BLAKE2B 19ddc06716926eb8eff49801ad7592d77e7609ef693dde5003329014549a1dfccee25e8320c7b685b519f60ec5a4527b5e8c109f561fcfe98db0ec06438119d5 SHA512 8adf6d2a81712a5928eed7f2cc06e1fba86e7f69e10c7dafb337f5fd5fb29c7444b5db98f3585079015b98bc4ce6a3fd41d5233c2280375a77c934ed1d5f2481 +DIST firefox-115.13.0esr-de.xpi 629623 BLAKE2B 189f478aef796fb348cca80d4d03c1f8315996de52bf08583b92b80daeb1e7c64acdee3964d1ea4359928e13f7d4d8624d49b95185895174b34ba95bef1a022f SHA512 f21a1ec2622adabf3ecb3b8d0ae8b5744e1d17ff2b903293121f0454b28d18cbd90ee2d6b960805545141e2914daae1f6b17fce50c4a536a3cd56de234e2d8c5 +DIST firefox-115.13.0esr-dsb.xpi 648138 BLAKE2B e733cca2cc036b568258f48ba62b2fd6d152762eaf2a05456a9b7596265692df095638e067466252f8777cba5c52a7d17bdc7e743bb819139e7f90eaea0f1480 SHA512 bb76262dd5265674f79b8a61064f056cb62259ebed55ea2e2e2e026ca9fc0f80dd0bdee9fa5884cf0650df26e625de448e3605366b374229b441a2cfa1b14293 +DIST firefox-115.13.0esr-el.xpi 729621 BLAKE2B 73f1609e92aec59fc5e2d0d3f977f76840ed19781142e67f5d4c3e5e81ede8744b3316f74b97e052895775170b638986b9f264d7ffdce7e0bfe3fb3d4f2709c1 SHA512 0ec261dbcd0ddfcc4bae0d404410f51684cbee3e80d1846b6c15e35e9accf56377b1263b120a0cf7fdfb23f1459731dd8e62ea90798169d1a767aca4dde6576e +DIST firefox-115.13.0esr-en-CA.xpi 580169 BLAKE2B ddd65e8df09c0abe16d55480fde4d7f84377103236118137936cc1e5b8337c65c00119fb2b55bebbf7aa63d8b77dd8f633545f095528f949aad1207608f0dca9 SHA512 8ea328ff031092ed1c28f76d521fea12b665ef3fd31d7589b4aa0b2b3e92ab36998621ed5f9ebf1e64bcb8216cfd5659e45aeaf7234ea03ad7476268e93ccb7e +DIST firefox-115.13.0esr-en-GB.xpi 582349 BLAKE2B cde45b48a2c85831f8cb00f36d15816bf4b9f1970d4930d1d4bacdc0d13fba4d1b38a02143d96b252a8569e0ef9c49782697840b01d068cec085297b18f7b259 SHA512 5586a5e366b9e550c9e83a9916e7abe03d0dbbf78c48a95aa305d43371e7015bf35c14d7d14e2c5648f00b20f81050a86259ee55bf341136cfa0c6f4a5e4f2f6 +DIST firefox-115.13.0esr-eo.xpi 609842 BLAKE2B b847fdd018c4811f9d5dbdebfc75b9960fd7546ee2286cd4898af157de24c40ca3daa2bf2ea2a613bb2ed892c0eb6b2c38dc59f844fad2d3604a23793ba53cda SHA512 b039bab4f62624b5c8a8b3766e0f3fddeaa19391dca1af6d14385e496fae41b2d61785ecd84ece3ca97c8c8de290dca4a9b45763b45230c0e558ee9386ec5cf6 +DIST firefox-115.13.0esr-es-AR.xpi 625238 BLAKE2B a805fe6bfee5855d79ac6de0b6320f08f4d559525de8a16efbfe9c9e3603edad1a49c67a62c9de7c3c6b13b1a68070ad07d7b133667270a1e0461aef51fc03fe SHA512 6b1a16a93c2dad80391afa9f8fb469ccbc79312a6394f9dd4c00bf32a85dd2e41065a44b4344d7d501d73bfffbdaf8188e8d7345aa926e6e86e5c59ce99c6d4c +DIST firefox-115.13.0esr-es-CL.xpi 623465 BLAKE2B 4606593ab9cd4e8c92915d0dbe91c237f0c5b00c5271255fefa8cac639f235d97937bf98fef26bac6eec089f6a1168d970caedd219496f179f260c35a707a198 SHA512 fef906e8323b2c3a62010df983d3db4dab9fa7556ebc51a5109c11f040b11ba336c025c3b32d26f07d52b69f88195cc83141fc9965590d61ee70ba2f8447400f +DIST firefox-115.13.0esr-es-ES.xpi 618304 BLAKE2B dd001755d1457bf4187591922914fb426e2ec7ef6a1a86e4c0323f3563795a130ad29fb1c2ae4946458ee0282b4784e0ad63cb9e1c38c6b9cab2fac4e748f306 SHA512 ff637b66e777e2df0c9fe0561dd464733960d38584081eaa07f74e3d46a0f040f670ef507f2180ab9b25a710e950f8f93cb3436a855b957ca092ecbd42f0f805 +DIST firefox-115.13.0esr-es-MX.xpi 584255 BLAKE2B 4bc95b99500a5c729ec3ce4ad2d4bd170222d9e3fb9734b743280ba99aba5503596d68caff19f0580384bb6c51c04464ef1501bd46654fed155b28e7b5505e98 SHA512 bad7d867372f98c82edf61427116cfb9c09b121bbf43bb93c61fd60788c68cef7c97793f94c01f92f2db443bdf3d9d5edaeb3c47734c7d47ec4bd22e6a363a67 +DIST firefox-115.13.0esr-et.xpi 532879 BLAKE2B e65d4a7675ff2971e2dc550ca296b45a62107d732a81f1070b4bd2266961f342bc9b5dcd309c4baffb3279be8bf61734aec14aa5ce209b2d82b773148632dc42 SHA512 50f0b61145127f511743371332311ba3a2b18e473226f45f193be46146a0c0af276914c59c3612236b6989a6699bcaa901437d3cfe5563f8cc579d4e36ddbd48 +DIST firefox-115.13.0esr-eu.xpi 591804 BLAKE2B 1e5ed62b53f3b7d6bf465968bcec781447b8d39049368672d86b7eb43bf7b019c1d19bb34c991e9022f856b348ff00e7f2d7c5fae71388231b7e2c44fb1b6dca SHA512 4def2322424a4d61d44ab87e6076868b33a390006ee3a47233888de5e67d184c103b990eefce790628161a6585a63c023f702d7fefff41e06a0d4ed4647e9dd3 +DIST firefox-115.13.0esr-fa.xpi 584193 BLAKE2B c1de53fac8982856a128c7825aaedb77267903f4ca3cfbe8ca9ce88f0a418d02e144c0b6a2d70606c39fa9dc758131f01af949e5072809da1c704830c60f5c95 SHA512 d3931ecdc5bac7c3bef39420d5d9a3b81fafdc4cfd3eb7b798d78a7bc5dc3214bdb18bffd5f947cec858e1457c369f445e9336ea28f6d22b28bedf56e4bce6f6 +DIST firefox-115.13.0esr-ff.xpi 471600 BLAKE2B d651f9b6b3b24f948084ed2379b741c57a7d7c1706efefe952959b70df96f65a1d74aff0972e5bcf70aead42f286e3ae5dca4b73abf7f7132f9580292008596a SHA512 b0e323bda0bfee0925a150196b961d0030216882af68d9d66a8ffaeae56b679e79dde27fe4be8cab7ad60a48000847042f8b1274966f47d0a5035ec02e6584ad +DIST firefox-115.13.0esr-fi.xpi 601957 BLAKE2B 464af892e7acf5fe7e1dde0f5b35b380b302008237f2fdb23acd4db26c55724f5d327688bbd58f410c6c9585672b9e3f7404e246ad1a4009191959c3b1dfc16e SHA512 2beb3e0b7730bf3df85bfd9e62457b85119688a68b704f5e430264bc317eb7b0580b895a792d21057e799928a2a3d2f5f7aa0bc0dfe9ff8b6dc1933e82a6407a +DIST firefox-115.13.0esr-fr.xpi 638171 BLAKE2B efd3d5882516db38a35d998ed61fd11fa73758f38d1aa8768a6ff1fcef390346cd3a54359076da60be0e1cdbf8a4683edcc66bf427843d26c533d089f90cdd18 SHA512 6ae30c58ad81b408188d5ac938f4d3c5fded4940eb3c2a02313670daa5992c029ad9cdd3b831cff4d06f51b73f06083e4765bcf329ba10ec596d2d18e25a58ab +DIST firefox-115.13.0esr-fur.xpi 630143 BLAKE2B b1d55fa9cfc3386f2a4adc35215375f647b20619581831eeefdaf32acc540ddfda2a71ac04ccf85d6cc152a8dcbe7c08654bb4e66d264ca4748f330ada0f34cb SHA512 16dab1bf6573fbbb3159930298a855fc8699ef5233f34e3cc877125aa8e0ff8eacdcd58dde7257face95bb19f7493449e85f8bb3ce685dc48768a484b63b40eb +DIST firefox-115.13.0esr-fy-NL.xpi 620747 BLAKE2B 86bd94876344234d7f47610de7f530d6c0c4b45cca233334838acc62d917016f6954b283f8fc28b1567bd1c1ada3577e41a334d23733fe91ca98a9c926c3db68 SHA512 8bbc05ec34f5716aea3d10c370fe0bccf3e9d8fa64935ada974f5166edb393957be02ce0ac89bdf544fb1aa24c96152d6b06ca34c07c5369f8e7dfdc052044a3 +DIST firefox-115.13.0esr-ga-IE.xpi 467487 BLAKE2B eaf02d92932eab627fbb4b9dc4777adad0a4de79e87a8a7e0a6adb7615dad928c479060702a164bc82a9d98f540470ac9a45137f5d6209e20886edc3c7497ca4 SHA512 8f6b0e68c57d866315226783599422c6baf494b2dc7203132d95d5017ae84de925671361ff72db85d6b3aad42df832d35c5c30008db0956bda93a68b32062312 +DIST firefox-115.13.0esr-gd.xpi 589810 BLAKE2B f1cfeb41696849dbcc44773194519930b3cdbe8676e960124f8ffea1dae9bd6c530bb6f5859a086d9e16244ae49a89c0d895a96a879a8f9d361e466f5b117e7a SHA512 fd5066007811fce84f800fb76acf5f02f6386e8fcc351a4b9ea153fba8811c1292e14ec778268255d818813309ee81e46151081c466aa0b85db6aafb8dd9571a +DIST firefox-115.13.0esr-gl.xpi 599812 BLAKE2B 5ca1db00fad370d8577f3744c9b12156a05f7dca5a9fb0a91c854ab4452024e86b7aa7fe3bdc98aa1f671f45930fe6f0b7779342f20687eb0783e6a71a29c595 SHA512 8d89f1114e81cc216886cad85accf19fa6163cd9fdaba122f354785417982ab53046605728dc311f3091852407e9b687defbfca3cf4fec3fea30da643555e7a8 +DIST firefox-115.13.0esr-gn.xpi 635256 BLAKE2B db1f84038d0f7a5e0443b478df3d42e1ec36241bc458bdbc7918438e94af01cd83ab94df22338b63009705895c564e2c33738332fd7acd0e6c988636f4da8c05 SHA512 60c8d66c1dabe613355d4277f163f5e35f5d9a89b5a2c9527d7eb0d0735fb3690b1b874c4920a6b165f29862736002038b9674a604f152ee0961bf5882185af7 +DIST firefox-115.13.0esr-gu-IN.xpi 523232 BLAKE2B cc45a0a05c169381a32492ca175cd7b054ca4d2990fc781bb0fbfb8c56768dbbc4db56e45950cf735355a57af6ecad4b2f06046c05409388e93de08437078b81 SHA512 73862171a464a5a480308b614bb264ccfb51b96c4a3a02f145f76836c0cb8b0c0cfbc8f0b7d536f639ddbf43a0f56437cbd366319b64b3b7fbcf69e01ab58ce0 +DIST firefox-115.13.0esr-he.xpi 626729 BLAKE2B 58faeb11b0403cd420a7c67edbdf177eac59a7bfcc3bd722ff07da99f5e5dc6aa6d2ec10631de857e8818ce7899a3b4fadbc0e857a604374c148332684672b67 SHA512 b6fe3216adea48fa1fff8a5a564916f47b6e4c557f3df090064f3378b65ea8bfd99dc3c12db5e2a40cd868a7ca7b2e72fec77549b43696de4afcd7f644a161c8 +DIST firefox-115.13.0esr-hi-IN.xpi 559902 BLAKE2B a826402bc9ac502c12926f05345979e5380b10d4817f9bb865815ee9ae1cce84622577a465987766a6f96068eb0b6944709b848b84c0ff21291dd817128e3a37 SHA512 f461f8cd826967ec83556a2c2fe60c5f45ce194aaf632b85fd241c3442f6d16528256e6e3a6f9f7c8297daaea5b216fbb52d237012229c7cbac7dbf07f3f96e7 +DIST firefox-115.13.0esr-hr.xpi 550267 BLAKE2B 19b332c4e6941a95b09090d27fa9c0b4f95b9dfc8da512d1ca7eb65bb76a70053384331e9ac171b336ae15aa55c5c50445af86ef8b26aebb0e5e8423eff570b3 SHA512 e380014b905b1fcb92d6c4715eadc7777b011c7832144d27e6f462dd63c72d5bb3072b1ecf13fc9917c7f73602bccfa32133cb747b130307bbebffdee27a9948 +DIST firefox-115.13.0esr-hsb.xpi 644212 BLAKE2B 61e3f7a19bb5fa12ccbb525f260defbbf1b96fa63f01356e69069a01b47755595be471453bf429b9d5a04b8793d266c6a153a8e81eec427f0637ad895ae5c057 SHA512 d91861b2880f3ddc1a76dc42d3d7813ec325aa6ccc6c6d725a93f71269aee0c8f6e7586380b1683c3741f29d8d5acf2ed119b7e0561d2679e92668a6442c0634 +DIST firefox-115.13.0esr-hu.xpi 648263 BLAKE2B 157fe516db5a356be123001ba81e21ad8af7aef42848d6f009b49dc23cbcc84538bd4397bc5d0c2dc1e3bb3c5f84ab8e09fcad2cd4ed04a81e108173b3ebdbf6 SHA512 fa3cac33a4bbda77a7f2e987f5b41c9746196b5165d83ac9072ef83ab54bba2768dd06d0d4fdb39ee8f5ae89644b67153a1f062c7c9ed0585e512646a6e56363 +DIST firefox-115.13.0esr-hy-AM.xpi 647113 BLAKE2B 0b07bec9f4810d9ee9283c70fc927262c53fbd7caf8f90209e0778e449414918a959fb86db27338ccb0129b10cc93a052ad7aa83a17f9f5f8eaf2e7a6da68b33 SHA512 fa6d691f57842d5c5de51bf6c5e3b30f979c048022ad352465bb324cc2fdd03afeeacd611d500f118bca6d516171f7476da8eab270f17eaa49a856f4fb73ae6f +DIST firefox-115.13.0esr-ia.xpi 607449 BLAKE2B e5cbc8dd0b6e8d23261cf07814909c8b4c98c74f395c4cfe4dcf8c0019ad9327fecf90f6e41a2af17a1de8ee28572ee384925ed82736f935228d7e9513fde2b3 SHA512 bff9484a9d06d1bc716ff4a78955cfc5c46449332be4ecda2ade02217b8a0c61ef46226999a60ef78fd9b796277cce7312476408ecee0a0ee30c8eb738f684ed +DIST firefox-115.13.0esr-id.xpi 567403 BLAKE2B 59a0ddb6c863e76cce51913a088631243a381422871d483e44162718d1a300ef96aced587fd196c38db555549126ace8a03a1fef598708cbb747f2be2ff8b608 SHA512 88ac0af91f33f40f6290538c0735c1dd0ff02214c6a5d4ade78dee4f571838c7191f91e5da7f69c5da831856f13654290fb1d735cfa257769c812ad7165a3cf4 +DIST firefox-115.13.0esr-is.xpi 610523 BLAKE2B 6e8292d2342d6133da1fac45e2b39314aaae6a14a037d00c8bf3ef4f7ba37a495a37903d04821034b5425b372f0b7d51e2891de43bd2892dc793099c51809fd8 SHA512 a6ee6eb5cc54cf2cb86bcaf872bbef7932056a19e7089d6ddcfad4b9364f26960446463039108aee18677b12a0d55e5829146f1a9c877a279daf61bf63c12cdb +DIST firefox-115.13.0esr-it.xpi 564030 BLAKE2B 3792406c14c3e71b017cdc44616b8409f7961e0321344cb88d004713c67f25e12e45b79793a9b33bccf1c59eb4e8b2c4365f9dd8f3887a3deba5e148d7ec8cba SHA512 5c013eb2a09b2f52157e99d64c4799cf075690b1081be432b77c438c10a462571b609410edb97c67b7bb584659c2c043124a3012a1643946da98c28956b662d6 +DIST firefox-115.13.0esr-ja.xpi 675128 BLAKE2B 4885bf5364f743e5022859747150f57706df2d61aa197c4a31209a4b849e0876d925fe263224eab795c91e1a71016a663ad106630a12b97579650cd48910b76e SHA512 37b85ac5cac28a6ca144f5bc7bc49c8bb40fa03393d2eafcf690edd0c80251a85201bc2b673cc06a6f88c4caa5d05508e9935cdb8eb4953d31820e95765c88bf +DIST firefox-115.13.0esr-ka.xpi 657820 BLAKE2B 4ba19d5a966c63519bcaf9f0e8f8ddef940c4ff1fb53875c0601ba5a9a629435111a6a39c9588a163802291367985e6470e7085c18989040f05fe250d749c189 SHA512 58bc1b2eabcd890a575dfa0c73b603e66b1a9bb66ce627aff73bf29998a65fcb098fba09ef02312fe9529d8028440e2c16dec0592c870254fff3cda9a22167d8 +DIST firefox-115.13.0esr-kab.xpi 602472 BLAKE2B 99e709e4520810fa190ffae5ceeb1aad7e8599bd5581594ddbf801a6a4d3c8758cac0a58acf80880b29754c23ad498cd912b889f8837e3eb9addd172111b36a6 SHA512 fdbeb125f941748d05963059823d3f307fc019cf81cddbe686b4fb4533b8a68404cba557e2477be5d677f33aae5b461d48ffba6651111baa22c5f00fbf42cc2b +DIST firefox-115.13.0esr-kk.xpi 704884 BLAKE2B 6fb7a75dfe0ad53cd62a72657c506c934a286896ce65a419595a3b3be02b8274a70d30a3514f76ec377446917793e1521fe8dafd743842e6f7dac17e6c95c330 SHA512 f9de2a014b9b68a2bd6dd5c54e9cc44060330b2db60e24b071987cbaeb4b0d2a35cb828261362d7ea6a6f1f36e38a8491de3c59c42d5be9fcd93a636a85806e4 +DIST firefox-115.13.0esr-km.xpi 522176 BLAKE2B 180f5100d856c994fe994ec18fe39e839c769940bc59563d9cb51d2ba3afe85cf5caea31e7b823ce74592a6bf3917e967ff4a2c6d8f5ae90354611e25e222a5b SHA512 8df61f23a7662f0f0714445088a6a2fe6b3a14d685300dcfc9c6f124e985c63a214cdb37863a35fa0689a7dfd63ce0b9823e318daeb1e7f5929582c06c7125f9 +DIST firefox-115.13.0esr-kn.xpi 488053 BLAKE2B 8d3095db3b6bda67ecc5a43a1f24cc87f4ca6e68fe7e7e4744d79792a31b1178f51f478c8abe91fad54aa6d0b80401433fddf0b76f6ed3902bb9c71a43b5936e SHA512 27fb76a454bb6337b77361024db3b99a754af35caf33ee33556df422bf968da4422dc727450f4d3d93814a1c5a112edda6f6d1d289d3673e81c0ed5d7c04cc99 +DIST firefox-115.13.0esr-ko.xpi 659151 BLAKE2B 02a3dfc31a7cfd3ad2b2162c4f94b0cfe8fd4d3d4be505f450fa0d8a63a0922f8c7e19be319bc8cc0a14061f5f19cac8bf6e9ba4f0963d2060fd25e7a13e9553 SHA512 3728938278006a3d77cfebc46643f0cc1e6d68a2deeb8fe68ed999daf2f9e3c0d343599c1292a8a5f35d97bdbbd88865f8f49937792bd84782770325f18f473a +DIST firefox-115.13.0esr-lij.xpi 478954 BLAKE2B 0f32cd0e790ce6fba97a3e69cfca15c90ac0542d31b19e67ef9fee351847edb791a0c9268cbf091beb4766d28370c841417ea73431b7aa319d5974c8ad49cc29 SHA512 eddd6415b91d1e8f8683a8cca72dccca5dba7dab395eee279fb7950653f69e1f4776373b26d9221586b966e26b3ee7bca3de10785f6d2966cf2d85700a04f235 +DIST firefox-115.13.0esr-lt.xpi 566055 BLAKE2B 5e61089ab95df6d8e4e3d28e1d628ff3d77fff138738c842af050bd1ac133f9fa44bea2d1dac594a7a3dd15e4faa0fced07380556a8bf4f94ad1111f9e448103 SHA512 946d6d680f02b68eed5c18019737c6913f5ac95ca10741da30c6d31658b4a0eeafb6789627d1aeff88ba49d9c6ecbcdd4ef6000553ae7571272b35bca98e35aa +DIST firefox-115.13.0esr-lv.xpi 568096 BLAKE2B 602d9cbd60bda98a73e9461b1566f09aa849c0ae632bdc6d720a18e53b8ed4126c64aa5769491ed9ce31bee21ddeb4a0e2573323d67249e2669d6786dc0b4776 SHA512 d4bf23bdb67c1dd26c3714e58386a63900c9d5e7457cb2d7828adc6563883fe621cce299e26825f71164258604e88d06711cb008c60d80d974c56e04eb54ac70 +DIST firefox-115.13.0esr-mk.xpi 490305 BLAKE2B 02f7343fe8b6f809a97e18669cb9954d4440fcbec49cfbb936d989fa308e8c93b430028fa1f4f091478df89fc3893c620d332c18c2ab3c86aba41566b6da5cb3 SHA512 849e505174770b9c778ed088b353149ca5506df2baa070ba940e57a62d0df0c9af4e7d6854148c979e7cbcaad0394f3a3b80bc0641f2ecedc1020adbdd9b6ef8 +DIST firefox-115.13.0esr-mr.xpi 526721 BLAKE2B d7b1bb8b185a759d9bfc4e1bab37d734f62ee1aed59edeb9829fc63eabf541e4e15532dc8f03d152fb9f61e97ae4f17d3f695ee5188873551e45fa8d7bb72fb0 SHA512 a3e482b320a01684b5391fbbdad2a2e06fb30b023cd46dc449919b23a8f425070b7e58a91535e2b973d63f0d5af8e240dd13c12d52a6fa0342829ad5e328f703 +DIST firefox-115.13.0esr-ms.xpi 445347 BLAKE2B 04d1927c6e63253b6e90a61a61dadc424cb22c6e82c0e0fa52ea75152927c39d30c82f0bf71e4f856cacaaecb72607ea69dec15eee97f97fd3a092baee184c93 SHA512 de14dbcfc4d7d7c8e23f08a45807c7ad7c3120e2bfaa0372b7bde17d4e25b27959946cbff0b855357de1756bddc5e70b35a003aca4883353b3be4a6ab5fd8b73 +DIST firefox-115.13.0esr-my.xpi 514775 BLAKE2B 2b63b9e3e434218c2e1e6a25d37bfc0791c118d7259881dd55293fe65746e869c4acd384912ea05c6c03e2dcd2d18a10a7074ae4a2e57de80089d33bc8e6e666 SHA512 c124401eda391d90eddef3bdc56d24ebe730292a1c14f3d8e9d3b61f72cc1485c9141ea2c21fbfc1b3b1aa295abe634c4191c436da24180f21ee0cdfbd5ccab0 +DIST firefox-115.13.0esr-nb-NO.xpi 605932 BLAKE2B 265de1bd0688894c4d37da31ed7902375e916c697878bcea9dd7b717a496c0c265de77d5584f8299587ad391e94a95c510b5f7765fd3393eda088c7c132d3e4f SHA512 90f34d609a5d010fbfd0c02de3aac179f017c7233020a5d16235b9545404b4887e9efb4f61b570de1e22855a3312125aefb6bcdf8f6e118ddb31f004ac3bd83a +DIST firefox-115.13.0esr-ne-NP.xpi 506844 BLAKE2B 2570f7be21faad1868092897d6f7f5bb0df4f6bb7c04b1650f147c683f033d4740f0d68cbb4fe54236ac6264196ed5de783b2465f51e09b32ac782ec9089e711 SHA512 f64c0ee5b11d2bd0926708fc45103c2fa6699d0563f2e37ec882e9f84fd4c2e5a2d01f1fd10e2bf9e3cfbe4f6ff00c4a3b0fe4ae4caf3dd3f50428ad03e91f7e +DIST firefox-115.13.0esr-nl.xpi 614615 BLAKE2B ecc15b9423b69f01487b79f451190079d82bd4ad9bc98c0a907f4ff9ce2ade07c843dde8435b1046ee84e3dae4949628625a7c0fe3aa9b7f446ab0756e96caf4 SHA512 ba72ddaf6d6cb2224f4bf0dfe56155a714b1a8eb496ff28a233425c9f8676391ef134364ed588a08e469d1de92a7c0321cf1be9aae7782df0ef15eca6afd87dd +DIST firefox-115.13.0esr-nn-NO.xpi 606790 BLAKE2B 2519c4a7074600335f699633e5c5bac1b6c762ec60bf547c49f9092ef1f5d42a074f94f2d855693e245a7d21c31611837a4e1858c6d6f5c590d95f678e07a59b SHA512 2c4f34b1426a64307d01553b726a5c55a1c1e087caec3536802864054d32d61eb5691b78e8a5f0bfe63f8f4539647e51a000ac549d9b23385ec7eabcf19ebaea +DIST firefox-115.13.0esr-oc.xpi 606292 BLAKE2B 1f8fa30994be906dbb2a1bcb79b8dfbcc10876c8b83dcd55a733c6f230885fcc654e1889c91ed41bf9880e5e20a2f94841c552b4f9784ab7a77fc775418aaa7d SHA512 f5ca41eca0ddf6d560bc07da87ca7c0da1624a3c4e2d527a604186138e55a5c0a30b7eb44f00f05998f07ba2278a31988cc528cf1d4b7f1a2f164c4fdc109ec9 +DIST firefox-115.13.0esr-pa-IN.xpi 684777 BLAKE2B 35ee56d12532e977017e07fc1bdcdda40061f0e88c0ad2c056399d4ef1f7ea2ed6184370d038f4e6a1f8c698242e5d59fccf1abaad9988ae237e330b3d99bbec SHA512 abda142513b7af1a9d5e156fd4598887435b0313b345e5786ca647465de31c553494cd7ac714fdae8b7b3ae40221fde749e03c83fbeee3534ccbc24860485fdf +DIST firefox-115.13.0esr-pl.xpi 634143 BLAKE2B badd7fe2a8310cfefee95d68119f56e66357d5bfec75ce2f6a1ed9469ca239779e0804377a06fea7fa0fd1959f75ce06542cebff1b45ff899d6cba71bf28c967 SHA512 0f9d5423dc00e93b900b6f90997419d70975d6a07a39a6f2b1012ff7a0c4c2459c41214f05171fce61ffe4fbdd393f0bb906bbf8dbf71343895e463ff9517127 +DIST firefox-115.13.0esr-pt-BR.xpi 619344 BLAKE2B c27758608781d90e9392e55196e2a8cd4f0e124cfee08b07c4d37319099b3a0b5eff98985215ba769a13fb1ed877224a370eb6abf221bef8369d0c7f908a746e SHA512 e061106433be87e7b2d47bce894241f261f87a5cfce49415c2430417418e978876b45157eb3a3786e338a7b1ad359c672818274dc7e71465023eb10924a9d765 +DIST firefox-115.13.0esr-pt-PT.xpi 624305 BLAKE2B 4985553c3c20285d14577e5dbd671582822336a59b469156ab7ac8170ed153dd331554ac6ffbe2e8258a3cb31aff5f9d47103d6ad88547e9117d78f6a7f27d5e SHA512 7b51efa9217440b5938d4f484625d13562e65de57b6d4c9ac53441031977c6de52cb36fec5d98f0ff2d541b3e2fe2bc854968747bb09e4c5d17ae94b11bf5e5b +DIST firefox-115.13.0esr-rm.xpi 614076 BLAKE2B 1cb280402450164c54ece4914f2f74c1c91dd8d0cb4280d6a3310f21245e95cae455f64e67bc8c26842d3e63a75400287545b8031304742f9afa7389de6e297c SHA512 3fd88deb77f0b85c92bc42b4641699a39fe63c73d89c4febdf0237da1c91f7d13b4646415df48e5c448b49fdd1400fbd817af068518055591d09d1ca39a7829e +DIST firefox-115.13.0esr-ro.xpi 543381 BLAKE2B a5510154e4bea4a52bb8a7c777d1fe121ea8df1b4ac5225ac80d4c31614ed208f9cf51045c51eced7f03e693ba8710c31b60dc9442f95afbe85df8ab51735ef5 SHA512 f64b2a7a0413b006244216d33d5d1ea68762af265417633898f1757aa62749581af103c9aaea6be807d3804c5c42cb44e2bf853d8cc8332a5dec4f46a6cff074 +DIST firefox-115.13.0esr-ru.xpi 717996 BLAKE2B 7d77b494bd1a6c1454987641a2ef53fa2e5c57c614e5c7d16b6381e4d4b8a22a39936ff71bcb1c1746802e1239b1de5b52da12e104f613806f9d2c622394802b SHA512 8fc13b6b19545a512404c9c653c2515bd57f85a39305fcbc97dbabd20bcb61681ad74a8a0c3f1253333264c868746e45ef6de4d68ae5e921d824da8c790615a9 +DIST firefox-115.13.0esr-sc.xpi 577968 BLAKE2B 8a68b16991112b6d7d5207b93f810894260ef622e8c36900428a3091628943a551dbd293e02588819d58f3982bbef53dff5b3f3bb6c11b25ad9d92f44531374c SHA512 becc012cb67cba7b443d149e910ac8dd72f4a6b1817b0df013659317caed07d251f66b67d63ee2af3eaaa6961d0acb1732886c04ca0b32e6f70df3c39acab0d2 +DIST firefox-115.13.0esr-sco.xpi 505561 BLAKE2B 734e467d5c4fbc367986517704b7be49cc62ee686fbd940ad0ad8ad8c54a7bb6a9662f9481b162aa0a237b5ae237d63486c4da015a90e3ab373bc8a1c5ad0bd5 SHA512 3e99a48f4e9ca2f9838ae795a8cd07010ae77534b58d783e3d61c4453ec195d796fc7e9bafb84b6c88a130d5fe1544ea4e49359678dd67e7d11d10e646424847 +DIST firefox-115.13.0esr-si.xpi 600739 BLAKE2B f5ab27d31b4b359aefa3e1d7c90cb2e7e7540fb1ccbb1b0a01029aa26b9caf98ba69da1976a9dd4baa33b302b75a159f3cf9cdf9f3156aaea10e3b20cd3531c7 SHA512 6deb90c6b4404e54e53d08680b83d32ff2c0fc30621a927f195ca326731cc5a6588c68f73a3b4a7c2f9b6c56f6b11bc20b3484094a09246eab9429e7515e1d96 +DIST firefox-115.13.0esr-sk.xpi 647869 BLAKE2B 4fde5492f430e5411a4e3d30606895d92991971b762c27fcf02a857465fe2b0505452c422e4e70b0183ddc7d3b4d99852f336dc7827aac2e8b75c212e4769e56 SHA512 66d359c11e4b03a7d948704e110b9a104e0ddd20269660d2222df759044419d797feaad6b5c2142e223d8f743411528cbd01aab1dd869b34aa5ef9fa19759b0c +DIST firefox-115.13.0esr-sl.xpi 612807 BLAKE2B 8e6e8c9854650a07c89f2c42ef3b144301db48bb51a6485ba934ffe0a03a97636829559e490f16df98da61a52313779b2ba83ee4abd6d254731e47fdc24fd6c7 SHA512 14b0475e8cba4c852d7437819cfe3157c5a0e2454b804c86fb95bf5d6f46fd2a853060d7247dd825d547d0d148277166130964934d600740c6ddeca23ffa0a74 +DIST firefox-115.13.0esr-son.xpi 413545 BLAKE2B d211c0defa803d5ad574811e1b2e50d89de5fd216dde000a0032e3117dcc5a31211d30483a89b1f9005073015946b41beed2b39173321e62eba90cef4679c28f SHA512 5df04e32c22f70be9ec9a7c417e56da210314a8aff0d4aad43d3670bc516d074e629a04ffde567f4fc12d8cdf3179a69099612263c8f8b5a84eddfa510213026 +DIST firefox-115.13.0esr-sq.xpi 633666 BLAKE2B 393b74e8e2aabf71ce6aff3e34732f0cccebbf1426ae8af3803cb8d74d4ce9bdefa250f978f8b3c2e0cb2dfe8861be7f766e741d40c2054ea0e7ca210f8b7804 SHA512 fab2db1403e60595d8a6003d10cc564d618e8d08fffa613617150cea940a4ad3e28947ade5eb06a831d8830944ac8415185be6f7a40dace940347b533f9026a8 +DIST firefox-115.13.0esr-sr.xpi 633079 BLAKE2B c664db59d9260155281397ce14e45fd9c1ac680a0f231f170ea59ee6444ea753a4da7f7c0e3f290b07d2d31c1f3a823d6d87dec4f8268a9838e38f27b030a3ea SHA512 5afd139113a720d45dd35621d57b77c12cb47f277a264b1b78cde6b24e8a596b44b7de77e6ffec197d68bc1eefebdfca101a3892e736d60abbdd21c8317acf09 +DIST firefox-115.13.0esr-sv-SE.xpi 616310 BLAKE2B 3675c4619b261c8fb39ba86b1b0e98dd92cc099d0f1c80b28fb6f329f46d8eb4e21a4e7d54d71973aae4da752eea10387ac7154d567b28ed91917a4e99f02ede SHA512 df200d8b132cd29ef433db0a4cbcd39af2e9426462272fac0435a407cf236531b2b589a6edfddfdf12fb4d446ba02ace0b43bc1c3844f93aaada1f131a0f294a +DIST firefox-115.13.0esr-szl.xpi 520874 BLAKE2B a75babb4e8f358a68b3314ea93bb7b1b35b8af2888c3c45b51f31947937512a40c12ebf5de60f34854c5660c6af6de032b0729ae14a34643516d6e59462eb30a SHA512 6f15aa350fa2c43f78a7d86ad324cb9f1580a9f98933eea8b3a6f5340a5479041d6a427f0bc986fd5ed0b2f89dc2ccdced3de4348663471a7ca5a43ce7e1e161 +DIST firefox-115.13.0esr-ta.xpi 503475 BLAKE2B 820f1168e8212254e3371d89e5186f45ce5af03b4e4362dcaf800e5bed203e1b1234a53cc81edad150ff5d63f555d32e44d07c0a92e469dacdf4d03d022b18e8 SHA512 458660b1267ae3077fea493cb04f8eaebd92ccbc07ed59ef18205b63eccc1598497d61d36a3de62d68fa6188eaf4251cbf54e3335cfd1cbb3a1aa320e937b92f +DIST firefox-115.13.0esr-te.xpi 556610 BLAKE2B 880f7e079db8f982d2f802b8f085423e52b211b5edd0985b0fdbe06059c28c56fac67c813c586d3f066a427a3be2b1d74054a7fe462ff36eeca8306cbc7d5289 SHA512 2f5c455a7e02ba35761720481d261fa45f53bc87c9ad136014295088ef69e14e6d9048b1865c30183250d5c58cec5825e2705933edb4e85f84ea9c8f72739fe0 +DIST firefox-115.13.0esr-th.xpi 693258 BLAKE2B dd7b5361e45aef24da696e102b924c8bb285ad44348354b4f6563f30db0aa7d25e43e1a6ea56cd87d115be4bee3086dd2c6754cb0e5be421b9ca68f6186f7e88 SHA512 25e6be57c7404f6d3c3597b2b42bebf86092b7a4884b7538eaba8859a883467894c4712ace0140ad02709a725f82ec24cd131fbee07fc95c553373cd417901ba +DIST firefox-115.13.0esr-tl.xpi 527635 BLAKE2B b060f9268d4cd0b34e847e36c531fdb50c319664fa970709a1d25d7ae37f3be1bfbbaadbfdc7fd77dabc03e79b234d575934bdde1bf4d5e6acd96b25b3d82c6f SHA512 39aead037b172ab8c7ce5a0a0d145c88a0ae527afb86486161418fbf66bfc69f91d7518cc9609139c1352eef35a6b91225bec4c1037cbd4c0d28161cc1e19d63 +DIST firefox-115.13.0esr-tr.xpi 628068 BLAKE2B b87145bc56034116cbec9f205916710cd7b17548aa5659e23706cee1275cece01f293976d172ce883e3da679de0af9170b3e6d1051b964ae34c655fc37ce93f0 SHA512 f804f7ab4b75c478a1728bbd817c33440e4689a85b0c711a8c4406757830d8db951a33ca97808f53d46f58e51a565d3fb9a2619ab09d5daae098e90c1b7a3bd3 +DIST firefox-115.13.0esr-trs.xpi 498534 BLAKE2B e3ac9ec8b32f2018715915a77d6920f025c8aed1ebe763fa09d7983872b7612427b7b8d525927f492ca2bf2861241ecd7e1140e433601e0eb3a429a13f0e92db SHA512 99781758ca40e62f30a377395eb39f66bc555c87e930f5a971a26c54941a4117d1470aa95a11fa60dd81df293f94eda81221a40c5359320e5c8437bb5e410673 +DIST firefox-115.13.0esr-uk.xpi 707201 BLAKE2B 6d3569869d1c7cda327999dfc2a26276db656cefc6099e3055e17434541c36db3ca1e6e19e72d2c1ba96382e6c0879ff7a991a2cf5abfd49ec341de0d5163f37 SHA512 d98b524d66ca6b79c15138e9005f3720fa12fa46411ec92d39e8f2a382257c491f0d2b3f2cad32e81e4f7ba12c4c14bc5039b90065261fd386019e652db3ba09 +DIST firefox-115.13.0esr-ur.xpi 554692 BLAKE2B 207b1ccbe283503df572ddd269a76238d7f7e8823be88d883e8ad91fce110e1d7100740056deac346a84d1d33a2a30782ebd8ae2a93aaf43d28fcdf2a7149988 SHA512 24e59b1f18cbe9189578585889cdc01c707877ed0657e4c5b1cfcd06abdd0b3a0f51c1e919056685e5c3d69d899482cf2e5616fd8cfab2a83fdf74e994ce9096 +DIST firefox-115.13.0esr-uz.xpi 474520 BLAKE2B 98963dd2b408996a31274b1093b1e8da1c079f831cae08079d1efa9ea368e6f13df6cc7b2659ac20ec8dfeb2e632ef48a54c5be421787871526811bc6ac17b81 SHA512 c610d5e417fc17d2e23a5f5ca5cb0c2dc0474d8eb6a9ed058fdd6b2c465998d6ad0488fa379b2d0ad8bd77aeca3c94f9c9f950a52f9cee9394e9a6437fd3c1cd +DIST firefox-115.13.0esr-vi.xpi 651765 BLAKE2B 93e864245191507874b83fc34886e79739da74867a2d5cafd28e60e34765b1be0a04eb50a0336af1df70c97a84ab040c21a06898660b457e8b557ced29533d6b SHA512 268af1fb6863dfb280440a44ebabe3926871a85febf4f45a2bb1fdc126508a361d5cecdf326cfaead3257b962d559e0c47583d91355e966ac37ec9092ac9e71e +DIST firefox-115.13.0esr-xh.xpi 414787 BLAKE2B b1f1d584ebcb91b1819ddab80c6933f9335d88441abb0ce539fcafb5fb5d505caa15c14a3cf5c3c9dc2cfe97fc3df2747ad1abfc99a97d2c7c03a75726c5aa6a SHA512 3b95f8f7b0b5cda517f826bad938cb88457efe249a0e5225068493f2fe0d644a5802e8ff85c06ccf9660135de0330452474833e2a297bc97e48238152883d328 +DIST firefox-115.13.0esr-zh-CN.xpi 652628 BLAKE2B 482eb1d85b53ccebb3bdc4a1c04d4eb12f8760cd1851a7cec986786db626f8f545f46ba545d6e3e4be383f1b751fee1a0df836b485e2f0841c659c8a035dbb64 SHA512 6ca1d36a0faea8710c0dcf802391be1888ff6fdeb2d20af2970e63d982f551b64cd5ffbb2ebd187d0b2f4add2f5ab1f3ef9d82f149beaaf6d309da6425ef4b34 +DIST firefox-115.13.0esr-zh-TW.xpi 656755 BLAKE2B ef8244f8c0d65d2c604a5a11caf4f493992dcf2d32aac8bca36a8a17ef21ca4050c3406b565822300c0333df2950ff6342f7ed05b02da1243aaa3fdedbd396ef SHA512 c62f4dddc59f71d944d70250dd0337680c789000f4df188d71f3fae1cb272c34b85711218a53727324adf190e26e1667a192b612d9f1d3a437f24e1b27eb9ed0 +DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178 SHA512 799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c DIST firefox-126-patches-02.tar.xz 17408 BLAKE2B 631345d33f0d3c5fb09657c9f286b9a73554fd6c9229dc065fbda482a853cf6d83ddfca77d8de44e650a147fcb0cb4add2b9dd6198851cf11bc0198e959f9112 SHA512 21c3f69c86fbc028b94947f1dec301c3fb829de53fa7d745e7b8e055d6fcb5f35581a2488340fce29646e70ba671d6b271843d4336b045b5b7a7b1881611e45a DIST firefox-126.0.1-ach.xpi 460828 BLAKE2B b15137e1405cd3d5fac4817b25f35e4f263779a354ddc94c5e3a5fb1211fb3a4154c666b208b39d3ef51c762a0cb64a12cad7c7502c315e6f4061a0f70f51511 SHA512 01c01d57ffd56c5f98f2e2cd24821645a7e0d04452bdf77a57e067d2aaa54c3115770e1f038d08262acb0737e570ef680f4c20e20e28c16753a5ee8d9697904c diff --git a/www-client/firefox/firefox-115.13.0.ebuild b/www-client/firefox/firefox-115.13.0.ebuild new file mode 100644 index 000000000000..f1d995d68c42 --- /dev/null +++ b/www-client/firefox/firefox-115.13.0.ebuild @@ -0,0 +1,1414 @@ +# 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 + <virtual/rust-1.78 + ) + !elibc_glibc? ( + || ( + <dev-lang/rust-1.78 + <dev-lang/rust-bin-1.73 + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.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" + elif use arm64 ; then + export RUST_TARGET="aarch64-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 + + # With profile 23.0 elf-hack=legacy is broken with gcc. + # With Firefox-115esr elf-hack=relr isn't available (only in rapid). + # Solution: Disable build system's elf-hack completely, and add "-z,pack-relative-relocs" + # manually with gcc. + # + # elf-hack configure option isn't available on ppc64/riscv, #916259, #929244, #930046. + if use ppc64 || use riscv ; then + :; + else + mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack + fi + + if use amd64 || use x86 ; then + ! use clang && append-ldflags "-z,pack-relative-relocs" + 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 + + if use geckodriver ; then + ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" + ewarn "packaged separately as net-misc/geckodriver and the use flag will be" + ewarn "dropped from main Firefox package by Firefox 128.0 release." + fi +}