commit: 034d028b5bf519611374f8b5edd741808c2d62cd Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Tue Mar 18 20:37:13 2025 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Tue Mar 18 20:37:13 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=034d028b
www-client/firefox: add 136.0.2 - riscv fixes for jit and webrtc (thinlto not handled). Bug: https://bugs.gentoo.org/947337 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 101 +++ www-client/firefox/firefox-136.0.2.ebuild | 1371 +++++++++++++++++++++++++++++ 2 files changed, 1472 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 50739da8578d..e3a1848ed6ea 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -610,6 +610,107 @@ DIST firefox-136.0.1-xh.xpi 273269 BLAKE2B b9a77c1d4bdaf28dab6cd9a5ad6f4930804a8 DIST firefox-136.0.1-zh-CN.xpi 454847 BLAKE2B e9245c80947a7b68e4a71b87580b54d14905805b744c9673d3321ff55eb7504a44e7ec4edaa59b4961a20dcee6c85ed311e372cc04e4c0da897dc01b7698d4a4 SHA512 e2426c68304b348454baff3f7a8731e7d91d28d72598f50b288f8f727204071172ae87526d8ececf4ee4ead6050bdfa351cfb93a05450af30881d64e4988d1cc DIST firefox-136.0.1-zh-TW.xpi 457687 BLAKE2B c1c27a06b396189f60e24550217b7204b679865970fa345555c88c36e1d215ed9d39623738b3d3ba86255da346e103a1ff4bf38698e247b258e3711b27d84436 SHA512 1e35f3eef8f2038185f9e85f51f1b3339dcadbda0293dcc01287b91c7fa10cabecf007f53ecdf0773be222976a2ba1133ffa084401c423f2aec30ea955fc663d DIST firefox-136.0.1.source.tar.xz 601826980 BLAKE2B 22bc0fa84db8a28a76317bb83a2f03e0cde03178af3dead9373187bc1c0b76bf1286f1135338c5ee4f9c2c058f357f6e84f380511de9f8054a0374da5cb5582c SHA512 e5833ccf97796c15b5156357427621d1f2d1d7ee55b53262f3935eadb98229c74a355bbe2f72a4168ec4e29dd3f83f4eaca99c5215d61bd087475331d3522abd +DIST firefox-136.0.2-ach.xpi 295311 BLAKE2B 1201107574ad2fd46d7b4ba3b7e1b86ed19a7a9b19a841c032088214384c611464fa593ad691e618f4943ed85255589b63d753fc0ca08c2f6c75d6f9a53c60c3 SHA512 68ce4e2a865b3880a0b1f8bb75c2cc8366334e86830c2ad2cbdbcf3ba9b56a4a35a6cdcca214a0a40a3fe29651393c1d730d571ad3278233c224eba00de9fda5 +DIST firefox-136.0.2-af.xpi 266788 BLAKE2B c4625331df79759c3454b6cdf093ce196c5ecaabd25ced1ee568bb5197876506733609d5aa6647096e328dfbb0a21309fb58748d1646ebb1a6df623d33377043 SHA512 8ed2924f816d88350edf44a81ab94377dd12fba4c68bf92963117a3c8f34904c445b8f283848d921605c12902bdcabfac702a1eb6844586f67644fcd34bd475a +DIST firefox-136.0.2-an.xpi 333334 BLAKE2B f400d031879988a2f07be9d72b71e8a6d24f3fccadf4f26428d29e477ba1deff06177caa58149af944151ac08143df3a40fab4f79cc3df04d034d1118605acee SHA512 9499fbf832b680cd463d374100bb650bd60df0e39c857dd0a99fe05a956b33d29ad5a8faa99b74be983878057bd63b5b70c838b7ee3c8abd2d572afbcaebee95 +DIST firefox-136.0.2-ar.xpi 431810 BLAKE2B e65760e7a56ee0576060fc89fc935b3500436496c3ef0b8a764e60a3fccf0f794cf76901290a67d15a02302c4213c0f2708194aaee387e13c1cf97b6a9eb42ba SHA512 20392afc3f3c6fecbaaf96c20f4902215d2fc703e9a40800f21b165cf9995aff33078aac2cc0348a293fcc77b39b14d29f9fe17f563159b619ee9f7e191e7152 +DIST firefox-136.0.2-ast.xpi 314249 BLAKE2B af1a5381f1db6ab25110c64879f939211c67b62880a2c4aadda72868423b8a7d91bd732309f66f85ede3cc6a91a43e28df984bf72375f442baae6b0b57e454c5 SHA512 30fc0bb1accfbf6948408b463afaeccfc026b646b17aa318e979c7cc039e3c1e09e16f30e012de23b4c2fb803ca3ae4cc4c7cae4523448dfb84d9bdb75684709 +DIST firefox-136.0.2-az.xpi 319693 BLAKE2B c5766b30737caac870f4138ab5b8a04b8df4ff3f331db2115be43a3573ea68f3d3faeba953d8b23eb7a76825ce61509e668d132a909520e49633c886d0c8a170 SHA512 3141d1ea8f07d9a1787706ba7d1d73bc9546ffcfdac2f3a221030cd13d37c60eae84a219039601c08537f5625c72bd2f4b6f8232c687b533b1afe7a778b71ade +DIST firefox-136.0.2-be.xpi 513804 BLAKE2B 3895cffaee30e5d7089e47e8e2e5640314f2e822209541026d33e2c26ec0c3a26ef2d153759b07d1495d2a872446a0d1d71cc958fc8fef393fb4aa535165a13e SHA512 b8ab401e983a7348de0bad648aa85289468d4440847a8af4dd0e97e892533a256f07725c2c2345bb2960ce037b20f92f7467aff0da3fc7f5d50ae89f0a39023a +DIST firefox-136.0.2-bg.xpi 448901 BLAKE2B 93dac82ae0167b36189c2c26a30dbe8c36896cc5acaef40f23f5c25d0c6fac6c72b091483c7e60ff31c1352fc99fe748cdc62c4c86d20117540a7ef296120868 SHA512 92232671817f0aa9551e6ee506069a79b91820231c4fb301de71000a6bc36248b4f7dd89816455eec6aa7743e88853d931d65bb53195ec5d59e1ccb8d4705689 +DIST firefox-136.0.2-bn.xpi 414161 BLAKE2B 6004ff1f997bf650eecd4f6edb0abb68394537f2c0ced2b02058dd49ef1783dbae8ea544826b5941bebe25c1f215d14e00005936389371fe1b04763369844bfd SHA512 d502270ddbe5d78e198fdd37edf6cd768af61a7fdb15da2efc19d65843f56d487311b35e63bd2413293c69397aa1db78cd7243d797c0b07d1f781b001c429478 +DIST firefox-136.0.2-br.xpi 394428 BLAKE2B dd6b9ed5619276d4fa94019bf9bab8400cafacccebcf07dc91981a2c5123207185212d271b1e43cd6f2e86ed64ce8dcc7ec0e875529113f8bf70fa882a41922e SHA512 0a85358eb7ec45bb6bca982a65454a973299d9cda0993a368e50f9a0ec929e63777ac87887bf57d462ac523acbd93cb337536fef088f1a54a404128e8a4bd175 +DIST firefox-136.0.2-bs.xpi 365270 BLAKE2B 69c4a7f3826fb67c85a1b64e695b13ac12a494d33a7a79dbd6e712ea9fa405ebce87be3a354fb4b2a16937cd7fca0599a013c80126693bdb9a728f3fc3c5d806 SHA512 b161c18ee1adefe5c2ced8e4234fadee93604b2b9b68e6b0bb7573f2d89b64e511c63bad900236b26d233b11740cd582d06442bdbdd6822d31b4c47d9cd29440 +DIST firefox-136.0.2-ca-valencia.xpi 359662 BLAKE2B 01747b8e9b333ef373801848c15fcbdffb2d940501ddabec0ddd7b9bd8496981ebfc4ef9617b5512dad740419c58239d70b281aef19e5aafcee6fee174bdc74f SHA512 1fc2e5f519dcb48365901366639c627b6b4ad0b6b198f285de6f4702056926d630053761aac055b9083ade9e5383ac32633a2cad278419f6ddb06d6bc92ce4eb +DIST firefox-136.0.2-ca.xpi 400607 BLAKE2B ac27e9b65ac5586a30a93bcc071bdc032971a216b272651811f9352ba6fcfd5d47bd1ea7e4bf8918df0849df5b7b7eff6bd6d71bd407f8e2acc4350d12ddfc25 SHA512 84441f51beb8619abdff562ffa92508366a73f4715076b814810fbbd66aee6c16bb6647fe20f5419650925e22c0841f5549002c5b6586356380bf9b3ed9e316f +DIST firefox-136.0.2-cak.xpi 394067 BLAKE2B f68fb89d132fc74679fb0a69384057c73614c9cb657c7c10dbbe046f952daa311bddc10e6bbbdfb0ebf6cec0607a621a8d55108e7339e6ee6425253589465c98 SHA512 f7d0e353fcb46b73b54ab69fde9b4a56e134bd5d78778d475103caf25cf32fbd4d60aa6904c9512d312c370de61544440c50c8575c753e0b27ffbdc308d86abf +DIST firefox-136.0.2-cs.xpi 468952 BLAKE2B f90eedb2addd5f138978a8982e58b07516378604622b50fe04a3ed3235cd5e08a0be71a974a81c7fc71458d08c3ffecd2b44ae4ca83f70e3e50611eef4001993 SHA512 b0ad2af3f3b5a2bb234d38e50e2ce7b706aea5b6fdc8c549549c3f2c0db510b29dde170421201fabab2e82804223d3fb998629f705a0a9f23f5a75caf6e75583 +DIST firefox-136.0.2-cy.xpi 435792 BLAKE2B c59ea972d03cb6eadee6595ed25c0044b1991e3208154c0ef52314d5f6f559ef736fa9d97ceddb4821e3bf1414910d8ad984bf34d82b164030bc541d8281a03c SHA512 40a8226ca7124dd10181b38d04ee889fa7eab8a8e07847971f49732c2cd36b84e4dcff3da1da8ee55852c2f881be7bd2b3aa3303730921249afa4240767376eb +DIST firefox-136.0.2-da.xpi 425316 BLAKE2B 1b8da5a1fef6a50aa35197f006c016a4cf1dd35af546f881efb9bf0b959e5ba5507f9e8fa869c778f43a7a69967b06709cbc5a38d71358bc63722288d7242542 SHA512 962acad02aaa9290d7eaf7e90cac3c499ebf383e5d8499adc373c5a917bfa072f3624694caf3c4683dc6ed2d1a6d8791873594b566c95fa9c6aaaf6677b6cde7 +DIST firefox-136.0.2-de.xpi 446679 BLAKE2B e67d71c69e45f0b9d2a401cfbc37d3d69418cec8cc42675bf4273f204de6e996b97b5be4a78289566e6537338da00244f6e56ff66adbb67697fb12c1d89d0ae6 SHA512 916e931c74bd41a80ae4ce314c55a441842de1357f866800afcf63a5d245f707b4813f69c24d8397dedd074dfbee1c9e7fac192db40e5e22340c32d86e5668b9 +DIST firefox-136.0.2-dsb.xpi 459793 BLAKE2B 4365699e8e0cd25898e3acbb24ad0bb05f082145e1b13845139adc0051395aa862de80bec33f8f16039da5cc32b98659f6eea023da98de486a2e44e724218a43 SHA512 df78feb6f1ff01c28af48ab7bccce18d3f302f3d2c40f24748b80ef9a2513974fb86e30120074972e22b8cc1b4a01e8f16df755660fd55d0b053b29b1be1888f +DIST firefox-136.0.2-el.xpi 529756 BLAKE2B c51bf8c581f096b881924e54649eee58902f87afbce6402f4a1c42004b16f919550946ebfcd6a39aaf149f3d61cc514ecf63c033f2e7f633b844dfb82d4580bd SHA512 d619d8775fcf2f104607bf159d0173d417449e8c8534ecd4974ff18af4143183eea21b01affb01be2dc2e764ba7721e974cbfb58ed68170a44869da86dc656fe +DIST firefox-136.0.2-en-CA.xpi 405853 BLAKE2B e04948148783f344bb5363ea1c018e33f80c401840c1a5f96f29c5f0408a63d35cf4f37d7cb11b7978b08206940376df673db4f01b6fb0ac416b357985547c54 SHA512 bccda779e1f6e019726289228121840575b1f3f4934d2cd11562897b7288bcd976d89ba899b510ea0a3eca02d0f1cbad59a5b6ee29028568c1e976a5b7c03a0e +DIST firefox-136.0.2-en-GB.xpi 406152 BLAKE2B 77ad89f755cfb746307e5cb6222fce18017d44d34a026464d225abfd888b992ddcfe04b6f6fa2a30c0b48e7c112eec7a94584b5bd4de7a4c24e56e2b761fbce5 SHA512 1796a26abbfa16f379bb7e683535fde7ef0f30cbee360a19c9de8c57a457b963e21f87ef9740384c3b15ec63cf894f8761a36ed6458d5faa5de4db7460bd9750 +DIST firefox-136.0.2-eo.xpi 427680 BLAKE2B 2b200b6798ef8bbd31f7609bf20695a67934d919dad65e7906e512c6ff970339f9c8e2b3e641f1d2facaca21032d5d5aa388bc98c3eed53c246d6edcd78ecb14 SHA512 92c9656ec673432d2ac98eede06bc5740710c1a3be23a449b2155e210565a3a096d278094cbde0bc1496865d4eef5331f3715cb28f79c7f2b5a89960f4fd079e +DIST firefox-136.0.2-es-AR.xpi 439711 BLAKE2B c39e9eed906a5e937e42c0dc766706355d2720740d469eab81d44dc6c67111269c7b74962544ee19ce497d7a99cdadcb057ac329545cc510351805ef2e8b5733 SHA512 a904a67c8738679ef6113932a33837cceecb84d0ec8fd05f9d609c6050d0b4a75a63fab82356e157fdd7fc37edb5e6fee239c095de06a05b02cfe8fd47211f79 +DIST firefox-136.0.2-es-CL.xpi 440291 BLAKE2B 914e60d22bcf42d8dc281ecd61eac0e4d36e4275b452dbc301a44e0f7f20e45a9b03791727df79235058f2e50852ed9fa0a50d2448a43c8789383005094aaf96 SHA512 e5d541115910efd3848b6dbef191c1fd9c4b84c1137bcf9685b2f49512a0f1b74c9dac7eba7037f6761aa8c3289620878f707603a8fa3f9499fe62dbca284e9c +DIST firefox-136.0.2-es-ES.xpi 441184 BLAKE2B 8ed11078bf2121614d4445aa78b65d84cce8d21e510146cddf6af9b10d0a8813606ed2f161b1e904e47425efe9b5deb5db958e7d28c4a6308cacd51335cdfce2 SHA512 269dbc634489d6d9e2b2827866a96d4a654f425bc4fc4e15d9c5c7e9a6667285bc3c5272569aa4cd8d6759f85a58c44d94fe42c735942582e90d11bc12ecb529 +DIST firefox-136.0.2-es-MX.xpi 440813 BLAKE2B 063313908692fe702c2eff808ac7c9fb46fe34142975f5aaa9deab21edec7b779b6037a4a7accc26d5dcc8d1f6d7ef84d798fb2e8d63c9e372258033d9ec5844 SHA512 01a96849fe194c7a35fcb32f2e42f8bb31d2e84bc290999b1963d75d9b57f0497b6a3055eb10b7b247e2cf1571925b62cc9fd5d708eb656b94754ea9983abca8 +DIST firefox-136.0.2-et.xpi 358259 BLAKE2B 751398e306accafe3a58440d8fd16470bb783e7e1b3393ca62bb2a307aa338680b72bf7321ba248f9ba8e598dcd364483d34c1ae9f4a2f559cff5191e272f5ed SHA512 e4514129bb181496a18c0807b1779e9265fb2a1f66976420dbedccbf181fb36df79aaea2cf8752651a4874456d9f97e3ddb379806858f333ddcfbb1a390b59df +DIST firefox-136.0.2-eu.xpi 410903 BLAKE2B 204b7294a134dd7a07ee5f4aba33bfe7456fb9b906ebc2f59292476c0faa60f2c98badcef35a53482196139d68fead435a7c22caffd5bfd7248c7705416bae3e SHA512 7d6fe25148920beead2672237919170830f046d3a256d83065dc1a0261028bdd92c5a14f0743fa516b1c72b232a640023d7e5ab5b0ec12412c9774c588174c99 +DIST firefox-136.0.2-fa.xpi 414721 BLAKE2B 455398f1cb4e2081aae127f731a7abcb6a4827925c73d38cb02f6cefe437c9c5bda922cb061665c1568eeccf11780a8c4fff68b5ca93ff534a86d7e6853c1ca3 SHA512 5a31a6d4ec1bf8733696ad9c51bcb0a3cdced5a7856ad250e5ed2908c8308285cbceab1ceaf9d32b01c02b6a1c2b381c80d29f0085b2437da59b8a52608437be +DIST firefox-136.0.2-ff.xpi 311205 BLAKE2B 58d531879887377e9b10d8b0535124427c5e49aa1432cca16311bc135310b6ef3b50328516192a70376fdcf185032cfffa38f706763ccec7f9df3be2bfd16cd9 SHA512 9de7aacc515330716c54e331d92b34384b377ac16f57299a1cb1230ec29d5da8de61ea0c7fe0b8cc4cc219a279c2761f312be7592c6e294f2edc833a98dbf4eb +DIST firefox-136.0.2-fi.xpi 422716 BLAKE2B 53f5f9b4b33f4b25e275ff8e2fbb6be0187056912f5f7686623976e62f130761fc6dd8be7ac5f20cdd7c8c3aeb493fbfbebcb6704a7ac528f76c57c557faa9f2 SHA512 d4e3b240417de2326a6ac6657ab7c1066e2072dc9db47bc57519f1d0dbcb7a9508729dc0f38364e956d2ae43fc0489d70722291cd359cb7a1f0b4109d7db71de +DIST firefox-136.0.2-fr.xpi 452373 BLAKE2B 42ffc97865295b59038d23f773fcdca419004b6e2b3e52a2f55dc14cdd7030a3c4e79daf034d49376e812837ea39dd06f212b6ddeffd76ee8d17f7d33930bc31 SHA512 d04b76422056a2d5f0098232ce2bd82f125f4ca8b4937d6a10c75a68f590e805e73cd5f94f386e4a6c81b373a01e718fb2f2c449f1b0e4af9dc99c5fb10b5e5f +DIST firefox-136.0.2-fur.xpi 445643 BLAKE2B 597d1fca711d4c17536998cee7f827715314cefb8434e90a02a494fff0f23fce5bb9539414045fcef61e42a379e13829421cf787702d2eab92a76733a100c5eb SHA512 b719549ab91b11936c19cd58cecb4188816ff4322f2acf7ab38fcc8e06884406fbf70ac7f0833f9273bca3a1a2d2ed453fc59108354fde7157f461dc8b933e64 +DIST firefox-136.0.2-fy-NL.xpi 436292 BLAKE2B 66246ba48aa5afcdcb3873a9a15455d71166e9e9f702500fcfece495a7a1ae7f1ff0abad892f1898d21ffda2803dc5044850a562fda93dcd6bb36e75e39293ad SHA512 07d0671030010bab8c8c7a364a423281469e082414915ea5272c82e0b4c94edc31ef915a2d8e617f3783dca17bbfb06297e2637a33a60e6be4e6463428d63bea +DIST firefox-136.0.2-ga-IE.xpi 307228 BLAKE2B cbbd06cc2138c62cc300c6fd6e5f1554d7665d47ef24f4a6b84990659f77229b5dfa279cccc114c2999ae11e1f28ba0c2e2ab0108c9030233c25e06a5072fcfe SHA512 cd93423381a4a470b81ec66676f40f4db4b7861bfa03bd250c17f762dcf35f87c00978b7a4ab44eaed10eb77735031a462fa0d2d6c2eacf90ec9cebb66f2f31a +DIST firefox-136.0.2-gd.xpi 402404 BLAKE2B 7557967bfbd99af5a099efeefc2e2ed0555f10a91de59c876c892e8b12404ce50612ea29f81e530c3ea627fe28ad14e63d33937fc3d6f9a829d6ab8871883483 SHA512 c728a46d10bd9a5a9b0436b38061a0acdd703d8663a4af2cda6fc992b2e3777fe63a5813dcda7e4c5bf5927c50f5c16af8bd66f942c172105376e26aa8cc6604 +DIST firefox-136.0.2-gl.xpi 406512 BLAKE2B 591275d91526bc4a21e58950fd500390523562a4812ec46aabfbe28f09dba03f6a487d19bbe802aa1a1ee4ae5d476f1cfea80872af7ec8ff9c3414379d4c05ff SHA512 5bdb89d87342687e6a8945e199cd473c709e2ec20b412bd298ff982f7ff55dacd8ca5a1c7765a013c9aeb725945fad8f78f0abc76b745cfb372db204b636e888 +DIST firefox-136.0.2-gn.xpi 443147 BLAKE2B b7463118084e98fa9fe514e1eda9b1f3a596b5200a5eaf84ce57e110fb1c312569fe8c5e4cf6244d8524a717e39e1f6e41e39e732e8983fcff04b5915e9ee89b SHA512 742a0ea979e8ff7f2d00fbe0bced3cd1ff24d60f448592500540b8ef7301c45c3a26ee2d967338153c63e184c2fe0a57aaec72ac6fc61e55a8ba2e0fec373a6c +DIST firefox-136.0.2-gu-IN.xpi 360244 BLAKE2B b1869ff70691b1a608cd7cc1b8aa02a3a1d9b82c8b647186c206f9a1de70fe8777993606bb9e2c3c80b39fa58d800d963c69fcc861f41eb7c72d1e4e7589f29e SHA512 be330c78540006cd269a95e3b406a5a98a2e2b4e239faa588edf143b9017d44f10c3becb1111a1281b00d6a4d5b5b44152fc96b11bff080333747e97d5453f33 +DIST firefox-136.0.2-he.xpi 437506 BLAKE2B 94df4107b9b31433b6d2b49c769f71f153e8a9b98e8b867b51a7000c314a6f46b9110f9ed47d84122874c21b37513bdc68ccc899fc91e540edc436a10bbc2dd4 SHA512 30e45a6b2976d58c2662dfe17a90ca107a5c6c8c6bdfa42a4280d7b818edeae22e10349702dd865c8c471ea4bb5aaebff18ddb7d00c91b938b6bcfcb3bd97a7e +DIST firefox-136.0.2-hi-IN.xpi 378743 BLAKE2B f0a733dfe0a21040937150efbe7e874b5877c1a6334e679a00dabafd3e73342a0e3dac65a4068716c7e34dff419a3b3a7a4b91fe5446af6cc571b78c8c210a5d SHA512 2f791d91d075990e0fbc36e9e66ed4e65db21fe128cf1f597c2f30d579127f2ce8b3bc72e9c0c2e3ba5b650cfc9cbfbed30dddc645d2bb7021a6093f738d6e2f +DIST firefox-136.0.2-hr.xpi 430724 BLAKE2B bde9472da9fbec877a418ac86786328e9dc33f517f4533853209ef77bc2e3dc79f7c858bdd3defba36a68ec0af2b7973fd3e57f2bd75e751a583314dd9b8195a SHA512 1dbb54dfe879f619f512bfa24fa6b86fedc1068b3f343da3dcd68685ad38f4e60ee3e0ac4a08d75fbbb1264cd0d6cf10e05103178aee7d6e8efa79985bec5c4b +DIST firefox-136.0.2-hsb.xpi 456429 BLAKE2B 9d726420d66b6551880c7e4ea9a9091c92e9d4b312f0ba2d5dc9b87affd4fc47f278b995c6cf6720cca8d98b38739289cc594cae789485f18afe6b84747bd07e SHA512 8bf9d6e2d2253e79e4ba0a60265400294ea36dd25e122a2c35d2cd95b6222afcdb55e07f50d7338d72630750759784eacbd00c645b1a655c4b3a48be5415584d +DIST firefox-136.0.2-hu.xpi 460482 BLAKE2B 8085e66c18bc713a9e7481cffc1e8611bb4780f136cc3ce1943fdc2d9a039ab6a78aec574789950e447c604ffbda06dd2081a4b898189f9b68ad930083e7df32 SHA512 eb63ddeede18d601684594d26c5c020815c91b6ba2cb9ff66ceda9a35d4326677a9dfd67ab47d732f8c8fa55d7b551a094330267f756db1801d41ab2411a7ce8 +DIST firefox-136.0.2-hy-AM.xpi 447328 BLAKE2B 5e93adf7ce7bf7712aed39a1a23802c08c28e21595de87b3bb63effd4486bca435c23e12e044c5c2df3645155127eb5e51619e941d24bd830d585d0ebbae154b SHA512 e2f673e1b3393e6028c3b4c473a7890d9a91fb4ebc346b45b2bbb14c9a412d81a361b732fcb1afa6167816ee031555c958bd80d722f612d84c441cb19c28b6a7 +DIST firefox-136.0.2-ia.xpi 424456 BLAKE2B 4e22ca63a629c2380c95b09d04ffef70c6042d9b127d87bf6ff98911e48c307d3ce3bb0149c801b8323f005a80569545f623fe9f2c0bb69139913be1d022c059 SHA512 6b368558a1c838d65e6c0a84d7a6900bd9da6dbae784509c934dee709cbd361c70a0c07f6930a13eb83720db89d743bedbc1eae78f529285ed0e2b975d693ea0 +DIST firefox-136.0.2-id.xpi 414319 BLAKE2B 7ea041cd5ff8576b21a4f2e2793f7c3f3edd9ec1f55956d17e2cbcf762c5a0864d4116bcb38274aa4eab0f11d96566f3f58fc1f0ec13ab61bc5f59cf2732e2fe SHA512 52f76772e55506f0cf693a68a12e9e83b64425d1da1ac76d588642f4f1d52bc9bfdda47bb1a8556b5d0ee80ec1aa4fba33739dc860fcbb90e61a561b2b171e2f +DIST firefox-136.0.2-is.xpi 429690 BLAKE2B dff7c4edb7a81ef6bd92c09e21fb02aa60fb49c09027f289a7488d83e9d1af6dfa2e8f890016a2f83f63b889340404b1bad2a985fd1011b64c80c90751bb729b SHA512 0c1fe873848b26e897dd33ac81cb88cc031b64aa8da10a52902f7a1c37aaa67378530508dcb9aba89d8cb0a85593ed8b268c81228b4dc9ea9900437100364310 +DIST firefox-136.0.2-it.xpi 434977 BLAKE2B 0620bba42f0b5a54a0f27dead65245a5072f542d88a4a7c3db981bcbf1adde6df646c9764cefaab0f97dbbf15a851dfae12e059fd85d8b2efaf4086fe7e50876 SHA512 f44cc5a0a90245c437fa858608bd311c4b852a1c4db21a76899caafef6159dcffb0cf20e51bdc940e089db101f29a8432dc3fd6dad625859f4e80390f28c3f40 +DIST firefox-136.0.2-ja.xpi 475075 BLAKE2B 73d463eb0fdf1d9d3a797f7f1d7387a65a65c94082b9b4af6036c49372accd0e13d22ce2221a6a5684f4684c292ad26218c3652a087648c9f64c2ca4f3513fb0 SHA512 ba5d22cebabf4677f1c804ad8f674194684388b38d471d9caf4697664b8a69a723e60b268c0a20709d65d3a1fab8fb77007fc19ef9d38a75f6a97fff2bae5a80 +DIST firefox-136.0.2-ka.xpi 487948 BLAKE2B f2b271eac7d06ee47e747cdc06e52afb90d9a3b9e20f34e427c71a4e8336fecb469a4590487afb2fbe9d758be70c73af949e4bc108fc0d69e131055cbe04dc55 SHA512 6783b6bfe35c7cb38139659dc0a89b63c86a881d19f630d2be356d0b771f95ac9e01201fcc2d6cbd3dadb9d72e19a7be7e0855fc83c76807921f10d8dd370b17 +DIST firefox-136.0.2-kab.xpi 414024 BLAKE2B 047103d290647f889a2adf14223ae1a4149301e6978468b6f89dd340360ef63964b37401daa53be7720bd2d8cd4505709e222ce98261dabfc8579fa06d29b1bf SHA512 849f025f8720205702cdc21854d9da734264f21fb4406ec6b3e7a8c61ed4d340212226a1fd7c1ecb629e86b112b9400a1405ba11d053b5191a80a850ee169ba6 +DIST firefox-136.0.2-kk.xpi 501972 BLAKE2B bf5700a8ca13f00cdb8fa5be635e34241cd61d166eb3640b49ca66170a3a91e0373339b09e331b865bca0c7bb4541a9e119702d20469f6807826480f92da8eba SHA512 559134a369adace3d233c7b835a22866be6bbb0a522858699b5c04d0c2ca7ecbbaef2dd34ab276abf3907b19b08460799da60c4f8d529577f9381125168ef4d9 +DIST firefox-136.0.2-km.xpi 350113 BLAKE2B 314ad53f107869ef4bc311b59dd49d1aba09ef1e0b46da5f362a10924ead5f02cb914ac82eb42de82e1ec2d1f79ea32e782a02ecb78633414164996185ef4d20 SHA512 c0c51d16e9dc714000d3527b718d58fe1d5c717223373460419a0b0d6001472a5e72626bceaef04649e5b794f95720cd200712baa7129239b761179d94deec0a +DIST firefox-136.0.2-kn.xpi 332794 BLAKE2B 39b57e32c64ffa75877392a2bb637b4a0cfd4031ae031445d0e9b6af5512653aedfc13a9e3ad3f5a5b0b027c849d22dbdcbb53b647fdf5476fc416d1f86808e2 SHA512 1e40a5527841efdc685748c66dc9ecc2ab1c7f85b907a373604926045e5dde6822c2c83049306cc62a6317d3516a7e63de868b0a43c127a6aa51621dbd6d67b9 +DIST firefox-136.0.2-ko.xpi 461342 BLAKE2B 49c8d2783fd3a6e7dbbc5218ce84bd8ef993d4ef90778a009c81c18bf77f3cc31db1a8ab031c12fd1f581f417c57cfd953ca528395e61d5da863b15bfa35a1a7 SHA512 4e0d98e1be42bacfee9ac93ece616bc20cfcffdf0685d4d192cd1048daf8b679431576ac17d3cad8494bc604e527da878c1f85d32eddbbde2b96ba2fdff6444c +DIST firefox-136.0.2-lij.xpi 319132 BLAKE2B c2a6ab9d56ad91915cc8fda2cbf787c8da691001bc551c8e42f24bca7c9972f1e8a4d932984ba8a70228180e2c6f23d905a2c024d22c9b45a1ae134b7ce77a68 SHA512 820e36fd4126445ed59ba224db0f291a4c8d4b94586f33ccfea3c5edccc6e1049665553790cedb5320d050ec4e946d5a436d3133a73bd8853190f0b5762d8bce +DIST firefox-136.0.2-lt.xpi 382126 BLAKE2B f557eced0c63acce19ccf7bb7d57a9bc7680f997eb373c5fb281c7dfb9aa49afac43d430bdbd5c55502e9226caa247434cb5f27984ac6fb9f816c316607d66c5 SHA512 015ce43c918c2e82c53f480700226246ac79d7044d1dbf513ea91d7aa1fe445bb964065a35988d0c8e85db32902ecc04ecff0afb77019c2a2c6ba75a91097edd +DIST firefox-136.0.2-lv.xpi 390638 BLAKE2B 989d58a0d479804e0ea294372f4522f0e3ed9b186e251433417dd8895adb1f2a5bbe7eb3e7ae9c3b58b185849af80d618a9becc297bde56483a099d216b25205 SHA512 45df33911cb046bb495004b812c6a65717563f3db6b8ddc8ed880ef23cea07800a4073ebb81ccfc7eb3b61d2589c2e0b6a0338a2f49eb40ef4207111cdf276d7 +DIST firefox-136.0.2-mk.xpi 318442 BLAKE2B 7bca62a2aeb76c90ae168a93ee4176c2a6ea7ee415b1c099ceb956fb945201410ac364e4f739ab956eee163365451fd9d0f7e53dd128cafaaba8d5f1623bdb16 SHA512 f4210595c9a0424191724d102f3fe6ece8f8516a94f75865ec291e3c05acc802461a0736166dafe4535bd5b5829f1a50538f5ac1cfa6bcaf0dc455cb10a4220b +DIST firefox-136.0.2-mr.xpi 357288 BLAKE2B 8c10f08e54a6bfe81f78668446982be386ebb31cf0f5974d7f5eda14f74b908213ac92e7aa22443545a87e8318d1f25021728d2005428f97a7737876b7ba6118 SHA512 6e93b1451c394c03079bc880aceabbcdb4184d5507e25614130ce21cb3890c56a7b0e48d062186489c8bc91256457c31daa2aed3f388f22ad785d4d08c51630d +DIST firefox-136.0.2-ms.xpi 296084 BLAKE2B 1d14aba7a95a24014dbac36d99807342c1a5667062cfd298dd744ca8c48ca99d7463b5bfcb9dcf641202f38aa182e053f09a922febcf9110c3b957573b77c701 SHA512 6cd3bdcd6c71eedc796af7ebed9f3e0642ee01664d5b6d1e85e1f6c2631f06d9e7c5c8809d690b15ff3e21cf5bae767cadf77fc849651acbfd7e4e68dc746293 +DIST firefox-136.0.2-my.xpi 344211 BLAKE2B 08874e9a735954f879e226ba4795eefba923ed93491ccbed83319ac56ace4ba5f45ccb9b4b639b6fb82d669faddf36349354f1886b5fa70b892f79e3693eb3d7 SHA512 db9a00ee720be4f5234baf69d147e4eb59bb45c1673d0e4d3ca5ba36942ed19dfd76ffcf687d9f44a3d561acfaeac85b4810639738b5d2b2c4ddc7bb0580470b +DIST firefox-136.0.2-nb-NO.xpi 416124 BLAKE2B 45626a67730f34a371853d5b41a901b1ba9a9e76800e82a46464f3576fa21771af0d9e262e2f0efa3f86d48c291a62a9d85c5c8ed8e584b1fb9ace93c1d2a790 SHA512 f975d60577d4ebb38bd05c72c261488f5a7269c8e58d80cd17d7b9a99b1077a80defa2bfa9f1232a00460bdfeaeebf2298bea579431ba848d6181858d19bef3f +DIST firefox-136.0.2-ne-NP.xpi 350383 BLAKE2B 78c7da8705c5a21b3d7f506f7064627ee618453c9a5fa78ef799ca5765196d17456586050974503dbf21084219abc07e7a708417c92e5012ae96d5051e61a04e SHA512 4036a09a4dac7640d1176617cf315944a74f25399cf65b04f9878c9ae5356ecfc0aea893a82cbe2f6132aa63072ada29353ace031d644dfb387cc81bb5878f9b +DIST firefox-136.0.2-nl.xpi 430390 BLAKE2B a0c7465baabd2a4b8634b25789879cf21493b13cd89594599904c8aba623294bdcdcdac4220fb1fb4e24992df9117576d8480a5f746f5b080ff9e36c630e951a SHA512 c3d26d13fbbb5b90cf3b6729b58598a4bc002f3ed30a19f18153242bc5351596b2d584dcb804857f5083ad877dd547cd95578ca52edcb18b66e8eba1fd9f97e2 +DIST firefox-136.0.2-nn-NO.xpi 421294 BLAKE2B 30f1dc52c4551a577b89713ad728035364bd6343f17f84927b98aeddcd461961ad9df6513e3a510ed86588684cddb80af8357736ba89c404b5f2e39cc3430689 SHA512 11acdb0196c96f03311b9b28c5d0b5ef3e563491ebb83dd3f6980bcf737f67d7977c1a4aa201e34c0066ceb947d8403d7502182fda6236b199cfdc70c46c5e4f +DIST firefox-136.0.2-oc.xpi 415665 BLAKE2B 1c33c2a05f5cdc90404fb3f8b55ae903f5cf97115c2774c055044b34deba6ef748fd051d926492a42f9d84a8b0edab885d33838a06d0a014bfa4a0b8b50a4bac SHA512 12df6a5e656e32fbe588681324334c930d15ab3fec7487382b463106858b64c246bc4ec5bfe3370c02e7d34081dbc9146560e19e39c79bd5f5863c96d613abcd +DIST firefox-136.0.2-pa-IN.xpi 489839 BLAKE2B 4dda593ed4afaedf66c288d658b66679d8f94359ad65d0a18bf7567d153528152e4d5e65a801cea17437d342b0fdb55a0d385b88e3de25d17601830c120f30b4 SHA512 6ee0ee34306f0df9b984714a8ff0ac7f0a294713b24e65d02d28652d2e9cc787efa45d7aefb1f02a0ea08c14ed132ceb8a6ce88636e7abe71cdbb06312a94ec7 +DIST firefox-136.0.2-pl.xpi 450701 BLAKE2B 4dac31164d978c73467f756236ea94ef93c26c52682d2e5e24ce23d1409f68ee9a16d198226edddc9370be5eaa2f1d84d251e10ce278ee2dfd29283812bc736e SHA512 a68e5e2d80d030a06c462a3bf1ea48bb15b8e128de53486b1b0d2ab5ce3b30175cbe296590820dbe234d7ab01ad97544337bf358ed1ad25a6febf973ae0ff121 +DIST firefox-136.0.2-pt-BR.xpi 434764 BLAKE2B 10f93c12497964452e24bb4241816ed8cec4bbe38432eeef4c66f371b28f48f7a7b5368c28f13d1fd4d5dc878f6e20a4f90bd1e788dbbff4e13f9f762134459e SHA512 4a454c64bda30e6f7b1fef118d393dfdeeafe169c5fc1ac343b4ff34db8018bfcc3e78d55b218f1c47399a10cc542de817e96bb076041e1f9c3d5b63cd91611c +DIST firefox-136.0.2-pt-PT.xpi 440559 BLAKE2B 867014302296d29d4209f791c2d9a17000744b5878816084f01012a39fdfb5b38f2bdce14f49718d3726ea279166a1c54e9172007a63c479df1d37a3dfea591b SHA512 f1d22b570fffc3521a94d7184d9870ffa7013c44262942a043f0c4de5ac70bd333ccf23299955075576e23ee5139cefb01d01f927833641553b1dfa53dc3d5b9 +DIST firefox-136.0.2-rm.xpi 434104 BLAKE2B 2cd400102556fe9cc3c4b6e71b91ca6075b764499a9922e49dc59ef517abb7e9f5e4c1e1967b7648bb4a2393ac01e893f7d2b92ce3fd6edd266ba74d0c2c8ce2 SHA512 d85d4d07ff42b65705344babacf906311649406e24b668d42526b4bcc29b50d99920f14d744e1acfe42afef02184b61765a2a66611d910c1d5b7f271d0b17b74 +DIST firefox-136.0.2-ro.xpi 363408 BLAKE2B 7e61b615a9d0e54e0de1700a7d1eac1a2fcabdb48b8f59fe716a4e1070e5b2dff427d1c527c76571f7c4e88df73115f8b2a74a3449e73d0abdf34635a4224721 SHA512 44840aed486e6d155e5cc41be5eed6a44daaaf889c238d4598378e200dbd7449d3adcf55d9d0040203eb687201c977905f8795e7f7f1add1f2fccd4ceddcdcc3 +DIST firefox-136.0.2-ru.xpi 517917 BLAKE2B af4f00fb425ff27862dccecbbe7c354422ca07a01519276b0c637f0faa6bcd31e3fcec817be9ee2714f32b3654f0af71a79aff2e78ebb6f5c80982bbe20e639f SHA512 080192c2f0be97fc9afa115cad4e6b3627996bc22522e174aacd471e1302f8230ffe3a6a1c20ad70e5360c15fdcc3c5e3f338896cd8b89ff4fe83fe2c0f27462 +DIST firefox-136.0.2-sc.xpi 403792 BLAKE2B 1e8e3d5eabea22337f853fcac31c97fab4f4b498944ccfdba208a6136956433568647a08b6ddfca844d7c67431ba4f2c349605fd56866915b0e2754e493cf535 SHA512 9bdc075ab05ce4c91568cff6bba03d6e6f4846cd99536d876641df647ef649c1346ec5151c27a15de9d12e813ca905321c09f7fc4c43f5aa0d93449777e02513 +DIST firefox-136.0.2-sco.xpi 324877 BLAKE2B 81db2d2d5f4ab6f1a9df9833f090edc72497a6b35498cdc8ec8ff4a7e7e2b736d8609565ba2353d6ed3f3808aff27e6624e6d836ba5e819f11e4004a411b44e9 SHA512 346d0e57a036f90ff317ae5d1883544883bd8cf8bac85a4bed778794919c18fea8d0978d34aba0ed3236fe45ffa1abf5c07d519abf227521eeb709b8fa64a550 +DIST firefox-136.0.2-si.xpi 414021 BLAKE2B 2b8c0659b0e1e6294622bef085a81c08f6cc4f3953ecba620468106e2f89f173a173f8eaa03441d07ab7d3884edb49748665372f54a584349d28c90c3f7340e0 SHA512 e8dacc68d6727606f5a2f74062a4bec03c5b84102f1b68f553e63ebaad82d5203c738586e1a29219f2a600fc23892676be4b57c9e73fc5fd9b5a9468848cbfaa +DIST firefox-136.0.2-sk.xpi 461604 BLAKE2B e7ac831f34a3cce9885dcfe9ff2c2e6b2d66d3b80d73736995bb857fb828e31114f51a4678e2bbc3f23fbec1857891bf5d6b1e50edfa94c34560c0a7142c94ba SHA512 d073fadee898b9286a40e8c182a9fa8ef8c49fc019016b0af81dcb5fb946a8baf81018ec3b01c820b51a65294e5f3c2be5a4f6e5156daccd732aaf6180e422cb +DIST firefox-136.0.2-skr.xpi 494194 BLAKE2B 35cb2a2dacdc4f0548373052fe05cee969a41dbc5e23b856e414c0913d100789fcf9e05b0aead9b6400b935005ce6486e802832aec4eaddfdb345eec51db6c2c SHA512 648c58557fd42b43a1bef0e03edae4c278b3ae24addb25e7e48a2d1678ece19bec8f0863a3088d4f722a61a695f873ef9bfb90810459a9582da98f69e885f997 +DIST firefox-136.0.2-sl.xpi 433450 BLAKE2B 9d6ab3e2a9de53850257fc529a9353d7eaeaa09c3e18da5856cc4ccedc4d004ffb765af6ff5ec057784430585d9345fb39bf374807a4e43e149ab58c702fa8ee SHA512 2563701d2c91992de8aab1123a9c55e4f3c809c4eba48d68b974dde2b353080e36f338c57fe1bced3be3be7b4c496c9e7a008788d6a17dcf2c7cec0ef93967a8 +DIST firefox-136.0.2-son.xpi 273286 BLAKE2B 496aa6a298ff07b14b19614ea67d1b9576658dc3c83e68b66261a1c0739c810ee80bf617be7a4f36d5c3ae5b8f296763ac55776ff3dd8122e84c46d9baaf7991 SHA512 dbd3fec9efdafaa8fd8acec20b18e926a13527610177268f8db390dc2f5e8d7dced0d2224f6907cdb874fc4c080067610742121fc223e07e6b3f9369b6a95d87 +DIST firefox-136.0.2-sq.xpi 449794 BLAKE2B 4b4f2e254e61ad75d732aa154c85015c8d96b8bd345dae5b135a3467c5db597ad0488b5c2ce98eda4457be0e73900e8a85ae720794ac9658bf83285fc82b19ef SHA512 e2731266d0eb3ed30e3820c15e6bc19338696e157008a8053e0359333269aeecad6fa38425cc41a454e22c273d822c6732f9be395b39523a908d64a39f261d60 +DIST firefox-136.0.2-sr.xpi 456462 BLAKE2B 0d2c3d7e7e1a77c09eff575b0f15cf5381f9a1c9b1f9be4d0d8b6fcc06ae00b793ae27527b2c2a78eb7fdd7e54025d9452a21f4a658003b64b8b8110cc61f0ed SHA512 2180f0238d0205078e3cc70cf633f5f73e7928eb7bd267539eda3d7a08d003aa27d4494fc306d2048717fbe1589b963fda299d11e3f5aa5d97ab681f472f54db +DIST firefox-136.0.2-sv-SE.xpi 430467 BLAKE2B ad7b0b2d0bc1ef528324677bd06ab18d60eed28206b5e5b15c02a9bde377df228b70521a9e8760d7e889e79ffc7aec8166e903f114ee6f972d72ebd2b4819b2c SHA512 2a0ceba183af37994e7165f843b28631faf268472c1e9b3f06fe22b2a42d7995b4bd1d044ebc55c26df028163427f5dda1fab76b3469705e01128f84b02ffe4c +DIST firefox-136.0.2-szl.xpi 344445 BLAKE2B d3c0088114052b142b4c0307b3ea6b7cbb8d8dace892a11c6688fc8a970802dc78d88889930da2211598ef69a6c34a2bf5cfbeabdf6cb1946674ab5f9cc10620 SHA512 e3a9678ef46f27bbf2078df41f5693ea32d21549465c99011d4364d697140f86ac012c52761cd2815c083b75a9af5b009c8be195f6b120799a43e82b9b3ec218 +DIST firefox-136.0.2-ta.xpi 338574 BLAKE2B 091685d96d18f81f795d2c18165bb235cc4824037fc72171efd3fbbfed412f20fd5564eb23ce1639d82eb4d0042e739609bbf8ae3e1ef05c9f2df09d459fcdb6 SHA512 d3f4de914c6dc1c3269d763f630bda0bedb540a364e3251326ec1a95de39416937e319105f642c1cab37b5ce9533f3510f44446f84876de3169e1cd3903ef280 +DIST firefox-136.0.2-te.xpi 384054 BLAKE2B 6ba6a2e960666493c9a3077cca7eb848275870d435eea041bdf671414dcc86866f29b8adbbd6a08f153022309fb382b72d92992d55acffc41fcbc3cbead130d6 SHA512 9eb37652b61e59f400e099c4f090c00068ac0fd89316c279b0292bc447c1289332a85f2dbecb81ad1d2aca614e0c6ae0aeaffeb05c4d3f855fe1aff22a86be04 +DIST firefox-136.0.2-th.xpi 499241 BLAKE2B 652e543ef32cdba55e8ae5f25f9d0cc37891b245ac794c79de9c43314c4fdaa2cf48810d5cbe69436426cc7b69d48171ebb362d911c324dc594e01f5b4dc091f SHA512 89e84a9ad94d9102fb97a83a0092c14f1298a6d09b1d4aa30dba820da47b4bffee4ac0502ff01e0e33cb3fb3c1cc0c1998d94572264b97a025dcd87d9ff5dd7d +DIST firefox-136.0.2-tl.xpi 351827 BLAKE2B dd778cc0380672290245c56c5d00db98ba14dd491fae5b55613fa0b6a5489ec9bd40471072319e5f8d2b752b28e20d41196e8392108b07898042cfbbf396d4a6 SHA512 5ad4f628818e8ceb1d1c9947c3ec95fb17ffc7b9817adf7105a0a1fdf8e4257b08c5716cbf9c6f8bcae428a759a6a83aad0663a58533ea7b9b288518ed21cfce +DIST firefox-136.0.2-tr.xpi 442276 BLAKE2B 037909f5c974d898d96ef713ac523e8bab31b7c369556c3c762331e795845d0138dfc686ea48345d57c5f9ed4af275609a2ac2b1f1101872e81bb23df2553c53 SHA512 0da592c81259e68c39007642d8f0bb41a58c59ad976c542828f93db289283b621afc10c05b9e713263f4e656b06d8517af1ea2136aa55e050d1f6eb95bc7ec22 +DIST firefox-136.0.2-trs.xpi 323919 BLAKE2B 093ee98532cc81905e0b66f53181801bb4ff014db27b428ad6f4db235319a5f0650e1de4c69948850a33c1136c40d7499d4a6d51b8f918755aa25bad7a985900 SHA512 48b605db4e4fdc97d6df275eab55e03364fc14da3ae227aa37f2679f3c75b1905cfa2e61f3f0661670be5519126572d72a8576077097a40a18caa73c588aa023 +DIST firefox-136.0.2-uk.xpi 508657 BLAKE2B ac37d3e1d8d3ff27fe8faea02fe8877a0044ddc99383167368f6c9571ea11872241afa1c1477e304a78730481cdc707de2b5ac4394e170acd196fba21cfdfe65 SHA512 bbec67e2230c465a69c088890fbc5d91edb116d00ba6b05ab19662d5199c78560626f8df9dac53057bfcc0975ce2281d2bc8096239252f977c8302eeceb654dd +DIST firefox-136.0.2-ur.xpi 371885 BLAKE2B 103b601473db4ae25c763b241e6ccfdee2bda7b9a1de6c0fdc2c91919bb36315819b861959c12866b91fdabd588bd216582247cbc794165930a6a0a4d1febe71 SHA512 0701e57cc64ca1a4251d35e71cea0fbb47a04b2d81fd3b9aa3b66390d51fb4b1d96231a15db82f6b69686d886e0cb792d18b0535024b708555f6bce730e6f159 +DIST firefox-136.0.2-uz.xpi 305441 BLAKE2B 9160ea1b7245f2ce560e01f2a8e7a3ada6f61db58d8668cb630f2ef1802a66aa2eab2cc4a311fece77b5eded157a5983ff25282b391bfdca352cce75957271a2 SHA512 25bc8bf95b8c0e9d0e0a92f0892db2f56bce0ab6517d9f7f1b494de5e2c8f059f2b18d919cae13a43e1dc8160fa2395bb2ce961b40b5ef03016c51cfc49a59d2 +DIST firefox-136.0.2-vi.xpi 463336 BLAKE2B 1e28d8f57cac1d84cdf32f783b3f0db3f47602e09de38ade44e6668ddf14eed6f9aec9a4dac8c27fe5d7a06978d9431b90613fe564ccd398e2e56e7748bb0e02 SHA512 6aa53417fc2bb95d1bbfb7a9a8791bc0bd69cd3ed83220393244407b14b935926668462c47b2ce1da809ef33656f3c64a232c54ea8f329a85f0246a8788f0ee3 +DIST firefox-136.0.2-xh.xpi 273267 BLAKE2B e15fd34f3462e3e2ba12af675ab7256c46812614789f22f1f578278537e385444b6aa3d8d8a3b6da49e609e9ad92ffedd102b65f4c32e494f08ecefce2be24dd SHA512 f18ac320b5888c1ee3158262af2372cea56545e1d5c69494c7058192c083adacb83b64a87e2751f52b206633e7c13527f2743cdeff05344dd0852ef8383a3a1d +DIST firefox-136.0.2-zh-CN.xpi 454843 BLAKE2B 8ca76457ea41a9a5d7b1b9e710c508febbc333f9aca1ba65c1b199f76cf0c1ea18d38fd398b2aa8b3d70e205f47931f65a22403dc16c048ac7ff489aab53f51f SHA512 d1c96b194a4583e3aae13b1327fc6c201a609abd407a48e5c1538d4e797595e23e2e00d48aacdb41a0bc8eb04ab6ef11ae9c8dec8a4382ff582244f6da08e5cf +DIST firefox-136.0.2-zh-TW.xpi 457679 BLAKE2B 128b68f4259e577ef6052185d96a1da4d790f8af55629b4fbd87a857baa50d2a4c6b0543dd15c2df807280de9c37f4a4689db9b1aa9ea40aa6f2dda52958e1e9 SHA512 d09d68b50b720677135e5b2e476b15ab467f45a40744c07ec0367c9a4fccd3cd708cb0e852bf50189c549c44e3a24048a016e652d95b06838a83e946034406ad +DIST firefox-136.0.2.source.tar.xz 605916808 BLAKE2B 0ad6578d153ece5c696bc879ba6417aaba79fb28a3bb85060605e11d12f67225cce3b95c8176382c7f079563a2d34b46b707d01d186fa47ca7a3cfc1bcac3720 SHA512 50dfbedb6bd513a3c6cf90558d7c6993cc78558cccc69fcc882f8e54eb8e8bec9779dce6fb7211c1a0234ac4a189438c5fa55ee9d0d06fcbae5cf44778af2ef1 DIST firefox-136.0.source.tar.xz 603708216 BLAKE2B 05f92682dc756998f1dd56cdbbf8a90a45cade9d8541e83edbbef07ce4cb66e6a3bfdef5e59bd824b2d6b13c49c6a587e9302779064deecd68ba6dbaf9300f9b SHA512 a2b7e74e8404138b294f7b3c5f1eaeaeb8ce84c9aad25379e8ec785a9686f42def9f8c119d4bc276dd371d13d7bebbe4b1b092af41500aa8c2b2c827971445b4 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b SHA512 ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95 SHA512 716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766 diff --git a/www-client/firefox/firefox-136.0.2.ebuild b/www-client/firefox/firefox-136.0.2.ebuild new file mode 100644 index 000000000000..908ddba0033e --- /dev/null +++ b/www-client/firefox/firefox-136.0.2.ebuild @@ -0,0 +1,1371 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-136-patches-03.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-136-loong-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.77.1 + +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=25.0 +WASI_SDK_LLVM_VER=19 + +MOZ_ESR= + +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" + HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/"; + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox"; + SLOT="rapid" +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-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust 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} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + loong? ( + https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET} + ) + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg +system-libevent" +IUSE+=" +system-libvpx system-png +system-webp valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" + +# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and +# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in +# Gentoo so it should be widely adopted already - however, it might be possible to workaround +# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wasm-sandbox? ( llvm_slot_19 ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + 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.108 + >=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:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + 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 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-76.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.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[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/libXrandr + 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 + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# 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 "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + 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+=( skr ) +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}" +} + +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' + + 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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + 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 + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + 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 + + export use_lto + + 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} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # 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" + use loong && eapply "${WORKDIR}/firefox-loong-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" + elif use loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # 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 checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # 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" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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 + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --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 '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + fi + + 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-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 + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + 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 + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + 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-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + 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 + + 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 + + # PGO was moved outside lto block to allow building pgo without lto. + 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 + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + 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*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + 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 + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold; 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 llvm-core/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 + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + 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 + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + 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 icons + local icon_srcdir="${S}/browser/branding/official" + + # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date. + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${S}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg firefox-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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + 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 + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +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 + + # 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 + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + 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 +}