commit: 10dbd6b1e046c269880f635a7b06b05dbf1e6c69 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Thu Mar 27 11:55:56 2025 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Thu Mar 27 11:57:47 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10dbd6b1
www-client/firefox: add 136.0.3 - add a patch from bug#949280 to mls-rs crate which should fix some rust-related issues when compiling firefox. Bug: https://bugs.gentoo.org/949280 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 102 +++ www-client/firefox/firefox-136.0.3.ebuild | 1371 +++++++++++++++++++++++++++++ 2 files changed, 1473 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index e3a1848ed6ea..38e74e688140 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -409,6 +409,7 @@ DIST firefox-135.0.source.tar.xz 613526736 BLAKE2B a9309d125b48988bc4e5c6989f2a1 DIST firefox-136-loong-patches-01.tar.xz 38508 BLAKE2B 2508fdb9de68bb90edfb3f4a15f79579cd8865cb87ef0a9073c3b740152d857b791cb53c4520a2bdc466f083e7aa6e028a90d44b61b3eea46395f62115b7272a SHA512 e4f83d6a98eb25335de80bf396bfb2d0a362e7509efa898291f524d6fbf20754a278a930d61b3b9727e6b08d8e4959b001c75c2e3f648ce70444b39950307157 DIST firefox-136-patches-02.tar.xz 12820 BLAKE2B efb85458ec65da21bd118b550c5ebe7284d1620613870d83267b5f6bb27ee26ab14b3a417ab4bd359ea48ba78f7de0cc825d443aa7c1c3ecaf4498220255204a SHA512 a981f3adf5b452824804e374ed7a28150b060b8093759c2eed323444d4987f13a1b14b7d29f223e92a97f9727b836dd67291f78f8b3f187deb3f9c6caed1bf1d DIST firefox-136-patches-03.tar.xz 13356 BLAKE2B b69e64235b2ef72839055a91e9ffc881685675b46884171dedcb13f68710b083318e15ecfe8667652255074ed45fe722c91fa4f54ba457f33774af33a7ebb33b SHA512 b7301a60ccee7b8e870ac57200cd7242e5e2b8fbe8110d539a038f6b74d6fef86a96fc9f3dc2aeb387e636cacc875828d2b02287b8f5f7dbc6c333a900ca75de +DIST firefox-136-patches-04.tar.xz 18880 BLAKE2B af76e197a64a62aedd6a520ae8c6e1ea2257483c1604a9165b382959dc3a8135f75d327e63aab7bc619d030b25a8037d300a3c489aa6e43e59e3fdc3cb6664f2 SHA512 702ee3eff9faea18930b488e389b0a13c9523713166afcede8c5ce001a1f34da6ffe4ee0cc5e596a118fe200876144ae5c592e1fb912895d251f28e335c04f5b DIST firefox-136.0-ach.xpi 295315 BLAKE2B 0fda96bd10aae73f01d47b33a48ccf16c678bbcfec98e679792d55428df54d1b43f5cf9c2c1f61fc1f427f0b965b3c7979626287e6b380bcbb83f3f84148034b SHA512 edd4e151809d6699e84e01034b3e4004785957941317bfe9f356b5c37776ff9fd04e80e558ac300d7523d9130f6c82bf7318cf14a332c51eda3f6f6a35c67c8a DIST firefox-136.0-af.xpi 266789 BLAKE2B 863db129ce37d85769615d882b83a3c4f1763a9c610f9b2d13e81d9583b06faa2b49e585517bfee7199098adecd2f4bf2da00be0c352e9f8aa96c92f23628973 SHA512 2c00f51278d963b0ff9627fd75621d55914552455a6dd64254981f037d1cc60b0737311006be31b7c75f0d83fccedd3385f6f2ec477f0815b0f9662fc612db21 DIST firefox-136.0-an.xpi 333332 BLAKE2B f0c0adbb05292f85bcd05df172c7d3fe31161f7a1fafdaf8afe02791c79f1f7b45464a8fd8f1d464094a1ab2e19ef24a8dc5e73536618865ecec809c2d20f9ac SHA512 79113bceaf87057153dd09051ee3f91cfd53f739876c385adf427f61313f8a71b355b9e43680b78a1c51929f35e27d336244dfc04236bea5b3714aa51bddef15 @@ -711,6 +712,107 @@ DIST firefox-136.0.2-xh.xpi 273267 BLAKE2B e15fd34f3462e3e2ba12af675ab7256c46812 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.3-ach.xpi 295318 BLAKE2B cb3aab3e218a01ed05bc6cc583f98ce9f7a988d6b576bb9b8669fc9ede0546647ae03eb5dc4fa36582849ce7065429484815d72bdcdd37973e34d092608da230 SHA512 61a08d37503ae436afb0df71d605dbb055e8ab40d947678285997825ee9b99697bbd17be4d993ec89b0b01d0fb88fe571fd55066fd8b31949d8cdbd08f2f2413 +DIST firefox-136.0.3-af.xpi 266790 BLAKE2B 68186f1df97c6efa82fae5b729f2946a97c0351989d97277b6ebaa06ff2504e3ffb44b40941e06fce7b92cf3dca604e2112f6e27e9da1fa168f46ded579a9735 SHA512 c418605e8e85784302b81fb4134f49bbbbffef753f78cd0d4f4d52a01cd47d5e87591637a12f7d0e48b119e661bf79c522dc607a3c5ff97b93d730cd63473579 +DIST firefox-136.0.3-an.xpi 333342 BLAKE2B 24f317ceb8452c603dd4e975799b96afafacbf42c43d93b1b0c55f6970666bd70e420c509ec96282513bbf27a228dfc8a8ced079a3ab8a1a44a26b2316292f6b SHA512 cdb296d90655672f475974c1dddf07d44b75cfe222e5824b45b754d1dc24d807279079429a656f16465f40d901a98b0e68a0e9933e47885c35778a4521db867a +DIST firefox-136.0.3-ar.xpi 431814 BLAKE2B c6ce7e343744aea9dbcf4fd4d0feadc0a23a0e84fc5c74b4311c1dbaeaf7f55b19040797718a3fa023cc88cf20a6dd52dfff2d2e1d5ef6f94c085a4cb9fa67c7 SHA512 c2ef98ec725414a6b6a97dcc4ed4e683694393425946918ba80b6817fb2ae414f1a5eb65b70661220e30db01a49cad55f73cd38dd9b55f4407e7e23f196c3677 +DIST firefox-136.0.3-ast.xpi 314251 BLAKE2B 7b63029451ac09999d43fa5673af62235de871e1c9dfaeda0109f5b7985e9daca53a5268bf4ae76b9e67b7b344cbc0915191a3caeff8e8e1a23881898b8d7985 SHA512 8720bae6ca9965f2638458e746d09b268f6878936fa7e1c50dfaac02b9562e116e381bbc3096def559da9be9bab52bc873e3fd80aa8cf4c90664f4d6e3ee4cb7 +DIST firefox-136.0.3-az.xpi 319703 BLAKE2B acd438fbb074aedbf88beb9e19b899a0537775b7c08c0a7f61bd92804dc39c81b322b4ce52027607e315e62afc4591454423f09d072ba783d034c2ea4c0e6fdc SHA512 d94df2d4ce8713ae9bcd2d6a9a3f5aae0a08580dbec994211e4ad90e28bacaebd2a11f4fff6354d4af9af87ff25b25f14ac03d7e8fd1c74abeb14713ba3f61bf +DIST firefox-136.0.3-be.xpi 513803 BLAKE2B 1c8878a4ccc36c21be524cd4de2de3442860f70f3e2469751f3cb5bfce707c917c9cb59d14793775059ecc993ac5e3426a52412d3e80b2fbebc1e74272169ab9 SHA512 1894f253bd930d0167b138259e46e35da459ecd31c61b3d4464cdc3c5b5ea4b59fccacb64c70d3942b28a4d7bd19ce8f9bf631fe967965606570ea0d1fede69f +DIST firefox-136.0.3-bg.xpi 448910 BLAKE2B 2cb878f21c5fd7a0d536d8cf138269ac0f02358169bf2da592574098c8aaa73de87da9346c7f1b3b59aa98370e5bfaca106e731f243f541f7e3d957b001d173f SHA512 708ac599023e280d6cc4dd56b1fbd23c96e4ba5e02dba1f82e6383d14c9ae6c141d2cc1877f6156cf9576ef24acfa774fa71257044e0878d22190b1ce5d2c491 +DIST firefox-136.0.3-bn.xpi 414163 BLAKE2B 2a179d210c82158b550fc35d9b6769a803b25820e1c24806ac3403e413d74258ce8736132579c37b3bb5e7e53bed57b4661ec8fbf891c20e0f7c304d428dac62 SHA512 dbeb23c84eeb46a09216ffba68f6b07698c7e41513171e969c8acd272f44a4c003030438c3ef1f31bfacf50499f4ae84860dfcf08c4cbf575a3363015d8dfbba +DIST firefox-136.0.3-br.xpi 394434 BLAKE2B a9f38788718311b17067a76e20f720d5c7565443b3b81ddc6e539f56e4804ad1047dd021d3a205481002eb44a6dadc28367ae6796430006fbccba3fe56876d50 SHA512 a83ecaf73da5685ca7c108d6ef89f2ac7d291c25af6b8cd4d87b0c7266f9a17c6946c71fe2cf84373a2d8d358f21cc3ec66b3e73eba4b810c2d566351caef815 +DIST firefox-136.0.3-bs.xpi 365267 BLAKE2B c474f2840ac46ddf60a4b14502bd4b207dee8d8e3a428be498eed12a22dc743d3a140bd8066d9ca920d83c01a22b31305bb227134187111f7be8e93002bb6c20 SHA512 5da912e1947df3154e541f44c284e6fa7f45c34efe2869d4d1199deeef254762597263bf9015d34288ab8d1a6226db3e8e4e9050979a8b975e2ae603138b28c0 +DIST firefox-136.0.3-ca-valencia.xpi 359654 BLAKE2B 9e8acb79d1389cc2d437eaa556f2f068ec60d213406107ecd7e2b2a63044757db746f4b025be4d190df5e85349d40f44acf233e3dce23dfd6e422902fda0b9b7 SHA512 478a6c4effa12434435b7e5bcb070e4a5442bf1d404781941504cbb6cc843bfbe152a194e373bc752308a4fb7ed8e1804e24e8757b4f0e5f5aced3c3c45150a5 +DIST firefox-136.0.3-ca.xpi 400605 BLAKE2B 2066456ff67981cd6f669a7f6ed26ea2d521282377b3ea543b06c3b98511e1f9c3a653c04c3a7f37664b857035000dfa1379e9b4e00be08358f327fc910fc11f SHA512 cf3ae107c4872880019b14a98f63aa60f4f6d13864bf81f7441d0c016cf27edc924ed5dc4f3b3b470d9680b30d19178a81e3196e7b8374d2f8e2499dd0d9f6a0 +DIST firefox-136.0.3-cak.xpi 394076 BLAKE2B 881cf0b9ccaf6f2dbba3e216ebef7e7d81595972210ba7bb1a1f59710c254cfc01cf15de1734b065cd2fb389f38a9778af4e34cd38f77cdd36c474b298401b5a SHA512 ec7c14638bbb765f42312e75f884f95680afa1ca8dfe1b02889e6b50eee405bd1a3afb744c798e827a5e282f5de65c5b953e348a40206c05733f9caaab298369 +DIST firefox-136.0.3-cs.xpi 468954 BLAKE2B fbe670eab500aab3cdb171e848edaa07cb1ced9a74b0bf62b4eaa4ec6d7d30c4556bb1db5b47515b9c78f434dc2d7cc04eeaf8355399281ebead09a490eebc72 SHA512 f389ee7477d6db4eea8cf1e72791e1bc66be9453b77862fddf7670fa63f2261b66231770dcf9da5c7411e7dbc58182b48ea3478ac100bf52302065dd7e835394 +DIST firefox-136.0.3-cy.xpi 435795 BLAKE2B d57fd07b8e2af79f9ed120c6e3ab361d00730eabb0d6f77bbbd6b5f2b11d3679c31263150217d5d3987a4a0e41e929cc7b83e65ec06aab9c631aa8d17c887f2c SHA512 a2e7e8aa552ed503046855de53008e3064f0af8cd34de755d0ea76dfc409169c940f3df532af788694e3fe019ddfde63341644a965d7ba4ea85f7dbe33053216 +DIST firefox-136.0.3-da.xpi 425306 BLAKE2B 15a34d0599b84b7d0def13da3411a704f783c867d2e68697fb2485f53c491cc208fad0c22efbfd2696c25ab909ede5869b4ddecf927e8a5c671e6685befeba7c SHA512 ab7a29c63e698263b5674f24fe09c4bca4387c49c25449cf9d5f2dc0704224b9453fecceb0c1bbbacedb132628e408d70faecb68957d3f0e162bab10544efae1 +DIST firefox-136.0.3-de.xpi 446682 BLAKE2B 359fcf9678ee988ac4634c422e36ca5d813a5ccca8b53b7ae864d853a215b2462d7c20ebaffb9e8743d2a29570fa261c350ec0a700ab040a23be89e82b1a4a73 SHA512 522dc85c4dade4d6b14b0be2d723fc9946c78824c69eab1c10df7de414a8befdc8ef5944d4f8dd9c382ceb969f2f48687aed9c1ffff3dd247ce1d5a8a7702871 +DIST firefox-136.0.3-dsb.xpi 459798 BLAKE2B 9d6e4f9b4de3bdc768816aebe5c363978696320f6c21fa75963d502bf42e6263fd751e7a3287e6fc2f23d74f5937ab846c09dea9a1eb3dcc60e5f88d4b55d31a SHA512 79e02e75b1693f0f3220d3462cf7e25ecef37b2f04c99ecbe865cb8f8b382ebe6d2aa6b8b874216c291d0ebf3905207f5a0f813ed6ea165f138b7d023cd3a88d +DIST firefox-136.0.3-el.xpi 529775 BLAKE2B b99daec16db285aa2c80c0e16f27604055c361edf843eba0bf7d7e2cd8c523a3f4ea73ca2208b4cf1d66d4a33a594bc06f38a7abfb0785dbb4cd42366088f791 SHA512 a861b9cf95d1640c4b585080f44d3d0ab7212f4c4818a6419b44d006bf23827313112263f70c801a1338024ac2384220e2de6e86fe0fbf87ef898ea7d608e779 +DIST firefox-136.0.3-en-CA.xpi 405849 BLAKE2B c6f42bf11f750ea2031745642048328dfbab0f4eae95510e99babef51acfff8a0e3a8560ebe87c09234a28be205593a99f3f3bdb7d2e4f62263cdb26f5dbed8a SHA512 422ce6520b1cfd27219d9272bde6a9dbb2c682eadedc770dfc38e96cf2e7a7df7a29f31416f18a0480b7598c09e238dd732096efee30d26dc66c330e6c51cf4c +DIST firefox-136.0.3-en-GB.xpi 406154 BLAKE2B 589273eee2c8c242bbb43e772ac943309c48d4d5681e4afce10d979cf56a1b1292cb4335d07a88473af92f63734e7216b152d8280b754d40ebb816c02c25eaa4 SHA512 232dd1d7609ab0acb83f4376438dbde17329be7b6388de2eec2a248099dc46da31848a89aab7ed04d1bbe796364c23f692ccd83307a9a493bfa85db0dbcf721a +DIST firefox-136.0.3-eo.xpi 427687 BLAKE2B 4abecc1e078db27427c41270a3ae6d97d0bad1003c644c20fc08ee31d184a72bfc958556a0ebc5a13018e1fef2c65af50b3589386df981aa3a825a275ad05596 SHA512 5de261f593e71bf47002044e1aa0e6a563c6a4a3638c4b4fe14c2644575243976559ebafcd556dd6754e822b1498d17c2db5d193ff846e24bb553eb48bc8a918 +DIST firefox-136.0.3-es-AR.xpi 439702 BLAKE2B 9402505b5be3094203fd18e547781950ad3da49af8a8e610303fe85dad852f6975aef8c08a86a42507210e1894e7b126c0e57ff7e187a78396adc24129899355 SHA512 b7ddf20e053d8d671fffdde04a4a31765d15b9d99bd8f9e0d8d1119af3017113d5ab8907b44da52a456c089350a9844e77e377f572ba9977d3565090fea2414e +DIST firefox-136.0.3-es-CL.xpi 440294 BLAKE2B fa86b3ac4cc08feec05b11a796857e790b31f3971021df610b5c70074c84402f69a20cc75b2e615db60e7aa2e6917b913d79718a22fc0e9431267fac44d52266 SHA512 84d3f437fac257d461d2826b9ef288db9d15f57fb0a99c03df8e03bf4183749a05eab9bad112827c101855a56af2672c4dc02d4cd575a40086b1b42606c5a095 +DIST firefox-136.0.3-es-ES.xpi 441193 BLAKE2B 29a7f8d43e98cfe0fd31708cef24b461faeb317320b97ca8f258e573166eb406bead398b07d6732275f94e438707e9b6e35334d214643ffc0d4b173261fd90af SHA512 2e71c3265b2dccb0400ff7a81a8e15fc25b2c83b84f266b7f051a86e3dda002c9f27e4346d56245a1d2a0f68218f47a2ec31bc43879ea9e2161028e6b78c8f47 +DIST firefox-136.0.3-es-MX.xpi 440822 BLAKE2B 957450f745b15736d5d5ac1b6cd0ed243595569e07f60502e8385fb155adc40febd31fb61e952fc7981bdd6aa2c9909439310a03ce7830de8f6b0047dc120e5b SHA512 862b086e87875293ac76f6af767a6a20d5cfb479b7f245d07bce395196f6c25a3e3a86cce0c3fa5030b61b8b2e53644617a35812303d7ae44624dae57f975305 +DIST firefox-136.0.3-et.xpi 358262 BLAKE2B f9f61232925683d6dba616a79c4fbbf01566ec38fb578324d84785588b8c9ab33141bca4c623e8a44038190ff74b43586ab6e8424eb98793e7d03be92dda40b9 SHA512 1ccf934ef3feab1900443adfaafc02c2701fa6aeb478fab075fa09bbc76cacc890f0d26f6a769f6b05c1e02de05b16b840cb53c1e1e2f8ed1a6fc26c37d160ab +DIST firefox-136.0.3-eu.xpi 410905 BLAKE2B 585d7241c0bc82db61a38742b544dc8b76574fc7634f33c23ec581cc4ff9fa3230352c826872c71bc9262a04c3c6edf5aecd839040404a61b57727a7b5e4f0aa SHA512 cf919648e89bf9aaac6e61c9b77a06917a05426223e321d006f5f6be0ef8a64f73026e8b3865268f6d12c9fc8be0b371f7e4aff14f65bb9eeace998965c65f07 +DIST firefox-136.0.3-fa.xpi 414713 BLAKE2B d192ffeb70e54095c6101407f659e2e1887e3c9cc7fc7765ac605104d625897a2893f9e45d4b0f3e9cb0caad3727790eb25e2e89fa9376870ecb4f8a2e9c5e8e SHA512 3a7e2af04dd0d04a407ad43a01e0d4a0294065057f59e119154b15e514ca76ac5b1af558d83c9363b03bebf513d98325eb8a05d3224cb7aab0a34203ecebfda0 +DIST firefox-136.0.3-ff.xpi 311206 BLAKE2B dec8d715d4f7589cc851f7e3e335613fbad485d3a849d53d0ab29f13852e5a1e821ce021c789a194312fd206fbd8624628b072d5310751d9e52ac7cb132b6842 SHA512 80daf8adb737afa8db3c1733d31b75cb305cf0cbe2a2ebc6a07515ccc7902c6b22e2cde1b25ab5fd709ce052dcb146738fbc589327d28ff1ee14f67e269d177c +DIST firefox-136.0.3-fi.xpi 422721 BLAKE2B 355996465a59246952b81287f0c87d91fb22fc46df686f1c2b8c2ab34e3e4cf88647313f9e21bdb83e6f396d0f9eb01149ecb5f3c2df162e68db2bd51caf0673 SHA512 99c02248579405f3de5c093d126a3d8ab477c3832f25435c1740bd1b2d161ddf3f404def905a7c5d6e5f429d98a0a3b618d1274104322ac282ba7579eb79258d +DIST firefox-136.0.3-fr.xpi 452373 BLAKE2B 98c5fa82455294a0a9a1053f21f1477679935eec0c3871cf8fd0a3a05446b1230f623602b0dc15a7bce3ed026ff944056bcbf268d57b57d53e83b358177fb892 SHA512 f6bab21c5e31210e8cec3401d046d519af4fc4222ecc2be509f9922a9b3c85848f08fa5c8a6fa759c2471a2b99c5b4569867a45ab049a980f838842e6e67e778 +DIST firefox-136.0.3-fur.xpi 445642 BLAKE2B 914708ff01b16594aac3e3cc298510466ee0f9ea03c95743297dbfb71446aedf04f6b794906dea04c8b21ea13b0f8e4fa0f6e2cb87170a151a90ee41040b2773 SHA512 9574ad45da43e6f6b9866a708417e035f9c95a3c002494a090022ddff84bebeafcd604b53b30930d58ad98fbd327ee65879abcc5f3a6afa8e41013c0b97424c7 +DIST firefox-136.0.3-fy-NL.xpi 436315 BLAKE2B d350941a3fc0b5826423299caeb7ee576b60459573a65d739a539257f33ec920471a06dffa4b578d57f21bc6c710921e1258ab0ef8b6699965c81741672f9cc4 SHA512 e09cb2f6ab0c9496b2b4d5308cc54c72fd93981a1ea578b33dfb5aa66a4988c110086206bec222de6e8c016838d88ceb979ff7f40d9e149eebd0e5feab1af8e5 +DIST firefox-136.0.3-ga-IE.xpi 307236 BLAKE2B 8027e678edca3a54afde28ced99aca024e66d8e8d23974a890a667fa202ba0eb8a6b1f2710998ad655a8894d0fff4dd729732558ca0ac89e7bba6ba4d6e09ebc SHA512 9b19d2e23be5d3fe8d0f07934bc35a0e6425610977c7abb155d05ba005c27b6621d63f495e351c7e15f41d3b7d830753f576b0e4abc3cfac40e8e895ceab7c4d +DIST firefox-136.0.3-gd.xpi 402413 BLAKE2B f21e26f1d57a0fd5bf78c2ef425eb0407e3ca5343eee6fcbbaa1fc6c5b877274290522ec7ca7b2805a14dec633fc774f1011cc7a4289036b2349d497b49f5e82 SHA512 f6f31f4039ddb1b353295cd974d313502cbf031a6a94bc4fe4d7afe2daf298b7984dd72cdf46a81b53b33e26033ed0b7c8270b2633100ed2738fc2af2018d46a +DIST firefox-136.0.3-gl.xpi 406510 BLAKE2B 83f12f3d6f72cfa3db6fc41a8f21937db4fd1b0243a5e0268a8037ad397a790ef28ee33aaf9c1d32aedaa15beae0211d2374e38122bea3be81bd19aa90b59ca9 SHA512 ed8c85ae7a2777bf0c9af61153753132709657d31ce790ad61d9012591fadd2ade2c572cfb07db424e889ef88b8748368e0ebd1a178df332631f7e48273f559d +DIST firefox-136.0.3-gn.xpi 443143 BLAKE2B fcb8f6390aeffd27842bdcce0fb3f73cccda53bd3a5caa37d413c30452ff3de3f6a7d1da01eeeef5ffda725a86a3694863abadc9011697f0bcd3ac8f121ac146 SHA512 7c2a6dbb3274babc7ac0318c50271365114a118c5342de4a19ac2baf647bf45f7f2c08bb6bf0b5629af093f6adb3e0e06e2f1a6ffb2f2b2a7342e4e44c2d7ca4 +DIST firefox-136.0.3-gu-IN.xpi 360251 BLAKE2B a1afdbe5843fa49a105ca9fd9e70798fd88b8429069478d70ce06d4b4cb769683d6f7edb3e3147867a1416bb8af5142b17781852db89de8e586a9e7c56ea8839 SHA512 925966794fe1fc191f6553a00f8e83d48e445675b6ed325132984e6310439695442c3b8a516552a6901eabf5df6cf2f1d27501da3c2b7550929ac441ddd5ef43 +DIST firefox-136.0.3-he.xpi 437514 BLAKE2B 4fc1aa86fc92823b16c449640f0ff6385dc53125bc68670393687a9fa3648529c930798e242820a5ca4434775e65e9cb3511242e5b09d25c3d5cebcbb1dd7147 SHA512 3408649f0e8921c9727588fa520aacfd4b66eb5c00c8ba00e8a8f0a4d719cf172164c4802cca47ffe2c7bdb32a0cab34527445fea796816cdcb64e1d272bba91 +DIST firefox-136.0.3-hi-IN.xpi 378749 BLAKE2B e7093dec07b16145e20fd5adf6ada699a1a7b78f98719506c3ab4a10b02d67986f03cc626106e592504d85efeb5a40c6b1622da6b1eae4896761fb2dac75b75a SHA512 539e891b56e534b6a15ff04adad073a0ebbde30697c723255ffa2c78d470b331b312c435c97d1c9853d908178cbbc9d37dc60d405eee347047432af794594afa +DIST firefox-136.0.3-hr.xpi 430737 BLAKE2B 3e8c8f901b1bbe41ed979b9ac46ba6edf611eaa030549bdd236f99815d7802d05740454c18e8f2c77aa5fc0a5701e13dc9e8391902fc5735c050f3de27be8c36 SHA512 3269ba07631f769388770bbfcd8b623a71b96d13463e9417150880140d32ca6d02c319ea52cd24129355f0f418ceabd055305d534774e74562e32330a9af1546 +DIST firefox-136.0.3-hsb.xpi 456438 BLAKE2B baee65fdd955c89c42badcced45dfc9a610f4343dbf3b8c328d0d3d2bd1966df52208f15c634467f069c69657552c2045bd6cd3227044975f841bb7fce4a9daa SHA512 6664b5d1c393a0d64a8e5f7d412f49f736b61c1be01aa6010f6a15b61cf2a4781a13b3d02c22b2fe66820a3cd32748857ac4aea6032740ee38ed7ff414585071 +DIST firefox-136.0.3-hu.xpi 460487 BLAKE2B 7d2a064eb4113e1bb61f4889cde8bb4ae62e7c98b52776ec64b9c81e1e11257e792a72a59b14d5df9f246635283230e2756991fffee63c337afdb53e70bac54d SHA512 0a49cff61ce0dd1d8250e3a19d23fdde68d1b131082b1d5e72a5ae40570ff46b45e82a0c346c3ffbd75044bb37f6bdde34b2791c2c57924e74c2faf141fe6dc4 +DIST firefox-136.0.3-hy-AM.xpi 447323 BLAKE2B 8789647c8f456f16969ad89db8f326123eb0a8fe416d09d41b7b4b771e9008cfbc9d37931ce2cf4189af02b5c2ce750df2245de7fe19e25ac98c4ef614d65b02 SHA512 3ee4cd6367dc243939b8dc182b5d6b739b4486ac864f2287058efaf2d91432a67ecab10ef7a81499940368d75f83fd428c42c919a7838f1e04cc311f85b62e9d +DIST firefox-136.0.3-ia.xpi 424467 BLAKE2B aeefa7e2ba4d2e836e5c9e42ee94e13daaed310853ec4383e0ea4c2e3d6f6880d3e11320777b98c2f5bfc87bc4226048ff614ffa446b864ab8c98042ea84b7f5 SHA512 93d21ba9d2ac6c9a9df7004736872f592f0fb13f0a11e364386abf5702998b0d254daa0963f368e1f626ac1d0b1d93168d04d81788ce284fa35a3f91b3978da5 +DIST firefox-136.0.3-id.xpi 414324 BLAKE2B d4b97cbb189cdba80ebb7fddd39a9c91d8d0220d1e9b132c5d22616a22b23204e049b5fc997183cb25a083a9a5ccc4897fe7f7b4d4564afb0afb86c4575fcbfe SHA512 5a671b2b254cebea177750c788a00ac513d7aa67b126a50fbfb2514bbe6dfa23ef4839361ffa8d60360a70632b95073ca7ac2337fad04bb758dce1215dcbacf8 +DIST firefox-136.0.3-is.xpi 429696 BLAKE2B bef458e812bc3cf4ed4461efc29a61b9f42c5cdf335687cb69542bc59b745b4bd32a08ebbe023a034c0ef64f7704de871d5b4b47e49e9c4ab85d5b67df0a7661 SHA512 ef838d6d7f83f0922ff79a61a978cbc755a6be9dd2d1b384aa4a5230602db51f30d23cea1513adb5fd391b7241e8f227355d56bae7ace532c77b8938c50f2597 +DIST firefox-136.0.3-it.xpi 434986 BLAKE2B 0dab34e170e738267090e6be86914372277e20b3a81eda82f39033bc6bf24d69ee8ee5eb015b3ccb3ad3ce01049c43f94fed75ebdec04a1cf4c866505361b539 SHA512 10cf4c20c91ad48db45caa739af3e9429eb4b64852ddd8f056e868096d4f8985a3e822b97f9357b9ffdd9f16bc71200776d32c9331ccd7f209a9732171431fec +DIST firefox-136.0.3-ja.xpi 475081 BLAKE2B b0b6ec2f7685de9168b3afb81e05fe1fe98c5ffc00de9a3f67206074b42381bd302300b872dbb2edb399b86e39f2a2ccb5621bee356c675d0b92ba36770685be SHA512 c63f3ab3949448c9dc6a8bc509f310892f610c2ce956777f0926b9dd3c898d666bcc621d1ada334cca5b26fe6b55a771ebc86c20faccd3f6837f3f3de730f820 +DIST firefox-136.0.3-ka.xpi 487960 BLAKE2B 10accb224a275607ad50f7bafd4c37d4e7ffdcaa37056d4e04d87dd921bc7758c04ba846a5435b1cae5867c6b0fc78558d04397f5a9ef17ac7c11da99de595ef SHA512 8b971047565e06e6bf19ce14797ef4bc90094d52ae5b2c2c333763c1cf80a527e6fff83324261b17e650d9ac9469eb2aa7442c1e64b592df2bc775275b3abf49 +DIST firefox-136.0.3-kab.xpi 414028 BLAKE2B edc2f0e07bffba634e1e5324d9effadbe89c8f9ab47b6084b3d3f177037b30e63857412033a190f5f0f4680a1ff5f8240be5a327340fd982230096d43f2482a4 SHA512 3d35920d85961e5d5ecaa0e8e01d7d426025fbd10e90957ef5f1a2e1c74a93373a5af40a93dbb02d929efb61d44236b814996c02ff525e5940ed54911b663373 +DIST firefox-136.0.3-kk.xpi 501975 BLAKE2B 1359a5604acbb21a1d806aa347758f0b4b500ba30d2e2e1c6e5b0a48fe7abbdcea24a54ae5f00840cecf5d6b00273fc0e26dcc8ddf047e5c33b2dc0b36e4159e SHA512 75257eb521d9a6afa54807a9ea343705351d957cf297256820f5f325647ae7afe337c6acc6868ef3f8b9438ded36dd2468bc70ecffae3046f6bb7fd51d36e0c3 +DIST firefox-136.0.3-km.xpi 350114 BLAKE2B 3b769b814f6145e006f0dc257ec96e133ce308ffee69c4fbc35968effd00c7ac4f7f10cc7b79fce7e8bf271523d11d8a9e3cf3fb6ab84cf5e79310b777f25aad SHA512 944fb8face7c4451b9e3e235479f97bfc3515fde798e263be4c996d456338d1eb63df864f23a8bf3c2ea6ce849d8f015dedc76130fc1a3cbb1df15f3e215fdad +DIST firefox-136.0.3-kn.xpi 332812 BLAKE2B b8710c5502d865bb8cf5d1183207de63cf786984accd4b1373a406e83e935ff5ad63fd52c0e078d533a2f0b681ab785d9b7c7cfa7c4a9c4fe41a9d9124578cba SHA512 d26fca1a8d2cfff9d42075b475314e2a961497a43848b4385b4d266a1968fa04e405aa773dc5b9e2845a94109f6438b3d6f9ceb29747dfa7dc6a887be964023a +DIST firefox-136.0.3-ko.xpi 461336 BLAKE2B b1888825be6737b958d09919f2279603c55ab04ed4011adfd087d5c84ce9830a6af6105b05b592dd1f9caccfe63ff0430d73b0ae1d758aa650a8d99e0bbb362f SHA512 841e44de495d6eb2b056b35187aa112a32a2d05a74819700032efaf4aa473a841aae3109f9fa6343e31cad1387c15eb3321e5081ccf6aab7f1ddf7d4becc733b +DIST firefox-136.0.3-lij.xpi 319133 BLAKE2B cb981e1c1515af763302a53a5c7d8442b95cbb6e53ec92c67ddd395a806212da65f1d7f56fc8c61376c3ffe4cb290810723d14345785d967ce0009ab4f758f33 SHA512 59c2a3c1d95dcdd2e3c8f710193c03bf1be5855baa5e36637ef9fc229fae38db6a9b20cc18f5b89b66b1440a6b24f715ef39f755f1b17bcfbae5026bb8a711f5 +DIST firefox-136.0.3-lt.xpi 382131 BLAKE2B cce17ffde8e8be4d21e7a32cb4ee5f937b3be50375190a92f20954ccccd95dc3c94cc51da368777d66163d25b4810e8f58e7af7312df061469734c6255729747 SHA512 b92e6f2b0933af9d1931a2ff7a11b4c4a32cdc9cbb94390ae83b0e29dfe2203430b37d8bbb5ddd86c0b723fa21c30c2c205601c46f98b9d52646210542a3203e +DIST firefox-136.0.3-lv.xpi 390656 BLAKE2B 4873e1ea8ec0585975de9f18a83e95679cd85a54c29b50a560ba7d49bec5df3b65274d0dcfb0af79247ea27771eeabcb465be2d6d8fad79f6ed4a9cae3b2a4fd SHA512 d77d010db0799df9cb866dd2f4cc7a4cce93cda235f4ee483bd05041231526cdc2b738348b731fecfd385ef88866eb05a5f46913429294f9d57218afa4ac578a +DIST firefox-136.0.3-mk.xpi 318440 BLAKE2B e83a4b425cdb89e6e67564b1b5ff59b1305866668a331902e8b7c994d1fc3b93e090c3cd4c7fe3b86601ae4ead7658214a6c0d37805a761c1ab76e84a17672ad SHA512 821d6494e4ec363e2ff1d40a5c9a5bf22f197347e735ee48ad9e4ad545f0c729510794acd12cd6954c2fc835564e901029dc55ea8c62833791e1cb1e19dd73ba +DIST firefox-136.0.3-mr.xpi 357289 BLAKE2B 6c074e9a773b62d6362b4b312c979b471b1b61f07f79ff660693296219c52da85b8e11f927f299042fe3163a7e3c4562c139d8703168c81cc4583dfa2c744322 SHA512 0e46f472e5e660984af2a5535cef35d23ad25fbaea615cc7e45bee4fd517a6fb06017868bb02360368ff4cf56476247cca1e6e7c9484c8e75187cb0ab76c4090 +DIST firefox-136.0.3-ms.xpi 296095 BLAKE2B 02d4492799d4039fa4d264895ff6d69af1b507587f9b09d5efd3f33ac77aa1d3f0de9e35ae6278cdbb03f380a97d1cc664cdc73b0f73de3f3588b936c3725aca SHA512 5ee737abbbbfa32c64e72d79331d2887991e9213d9192b33b7c007fcd597a926713f4780a565753ef720008ea238cb2716ccfe52ae412a36c55dd9cb14eae6ef +DIST firefox-136.0.3-my.xpi 344217 BLAKE2B 46f2249efde9bca166184fcfe022e7b9e0e14e2e5692a081d7606d6c3773d46faaf929737a52dbef10776c3fcb88703c516843dd189cb2469a0b34759eb0c128 SHA512 704837ee10bb40a247af2c238a205a07cf126c2d90c451960587f96359d1cd509c3d30853384d19e321d63d375fff9110f31a6260619967e82013b5b54491704 +DIST firefox-136.0.3-nb-NO.xpi 416130 BLAKE2B c85b71c9c58dcfb131193c49c218a3690043761e446808fd1df4d2e9c25e4d6c76eb05597763af9b687ea443e04fb3fbc0a879c3fa05184f5b63ebf145f4edee SHA512 9785e8c752b5fd8916b08340fef68b6c7d16f1477838879b0ddf0371c1652a2cd1347a42ad09eaba6ed9be991d6aa1fb14b2b54b6b3b94164bf2f6303c9076f5 +DIST firefox-136.0.3-ne-NP.xpi 350381 BLAKE2B d82caa196e527fa6fd13478c57afea270b8320cfd1d46db5050bab77e0e0de1bbdac5b9a95438f041d3aa1d38718dbca6061e191de8c5d15d7a2284f24cb185e SHA512 ea8ced5f421ce003130f318bde40976e4c1572f7bb5a2ea9effeb5eabce78f3d89753ae52e1efe522740cf1a5dbc898424883850b248128569bc737274a4d0ba +DIST firefox-136.0.3-nl.xpi 430398 BLAKE2B b0198234179b211d8800724a9465c52de7cf4e6bbedfb81f3fcd47a445bf6504f1b41474345ca7208aa2cfc616f4418549e99bc740ff65ee945e7a2a343260f0 SHA512 a2a7a55e022124ce53eb8d2b523f2f097ef784afcc51786ce928b7b718556f94948207de7de9c9da10869a74332326f929cbbcb4b1a6ef23bfadb8a9449f7c33 +DIST firefox-136.0.3-nn-NO.xpi 421304 BLAKE2B 47d1fffa1f1e9e7de18090d48c22a14e2681492d0f2005ea2c7ecfb07c7842c32aa635f64db6465e04cb5f9cda09173e2e3685ee80130abf4d2cb766b1c3a1c5 SHA512 38bec1f55a34da708dfe4b52991f19d6043385a8ef53f22a6392b99e89ea5b521544f2338e52560077910fd3e54bcee753df247758655151ecc35c179fcda324 +DIST firefox-136.0.3-oc.xpi 415669 BLAKE2B 39b5c16dff9daa37d0b3d7aa7517d10342807fc5921d71b4c554a490db5ac411df90baabcb942dc65514cf84c1f738baba5aa616b5b185cd83c387fb0005fe94 SHA512 ecd926858b25e4b3af19647c0b8616a6c94c45d316423ac119255026b50bd440cf13ee84226b07e7f69ec32a250dddcb06cc396e635afa874bf47dd4fa7f45d9 +DIST firefox-136.0.3-pa-IN.xpi 489828 BLAKE2B aeaa4b7409b0e99c76230fb5eb35f6f78e901b2790478441b1647edd302bbcaafc6795ff7033e661ec7385b585fa7dc01461a5ce400140b9548a128b196ba07f SHA512 a10e4bcab3f6b58f8a212657e801ab1db287d406c9a7a265def3ba78e4670bea4514cb0bd5d5894d1cbd98031ffbbe4ccf4165d58d345fca39396df9c1ec6cd0 +DIST firefox-136.0.3-pl.xpi 450704 BLAKE2B 71380684cff158bb7123e677f0cde2e865fc46ea4396fc20cee9f4ec406840483bbac11f2536465ecb96a5b5e3a45e73b22158e32be1480c8bad608d9cf0fdd2 SHA512 e55edca8b10a1b2bfc4774e0d5de27a053fff16ce8d3a9f463564fce3d71e89f1f06a089a1529010980242115c723517c6a98a7045f603ff1bdd919f9ec64415 +DIST firefox-136.0.3-pt-BR.xpi 434768 BLAKE2B 5aefb80df5eb1d9bdb8e3ac394e166e0076e1db1f368b0f1c05e03732117a65deb6ee729d035c16fd41be68ce78b9629bef46e71642bfaabf34c91379bf4d480 SHA512 671984bdf834248a7f337eab7da6cc6127474fec6bad08216af5ba56aea5aa6503f94f1f7d398474440ab87e4e82b7fecd666fdd8308baab192809db7705918b +DIST firefox-136.0.3-pt-PT.xpi 440561 BLAKE2B 6938e7e3783eafc6e4af29e067d06717dee80fed06344c7d697f29afbc9b133870dc65a0e1d3d1328c06d0781bae61e7d9a0d729ac9893734744b1062effeaf1 SHA512 a8da88632439488a1f2cd2c0a475229b52b48608b5fe1209fa5b131af4dc1a81ed5ce1136a6190cb82ed21e50a28655a87d99a48adf00c81f3e5a5583eb01ed4 +DIST firefox-136.0.3-rm.xpi 434100 BLAKE2B b3a8f2324ef1de92d0a4eccdeccdcd7237d1989ebdf496ad653aabab7bfc1a8a4e6e87e853d18b04b260860f5af93317cea6675f08bab5b27bc1095f8057c45a SHA512 78ce9a2d4b946af6979faee9cb6ad6243e68d884c439e15d9e8a4aba45527e875623ae2af1ee3142dbe2a5ff8c756c0f1de313444091b8661518fc8f4825896b +DIST firefox-136.0.3-ro.xpi 363419 BLAKE2B f4ab573730d2c37f8dcb62b27774a6068529d05ff3827f67d8ef69cf59a6c6f3608f8f81efa6db90fb57b71a7d1b96c1affa590ca477b2bcbd473c90a990a02f SHA512 4dd0a01c79e3a8f24539504e05540d09c76d01ba177e549970823c206d1b1a6fafd02b066409b4a8de657eebbfb12fec555ede612a858c57cb5821c4098f295e +DIST firefox-136.0.3-ru.xpi 517926 BLAKE2B 6aa92a103890481c1906b57d660d49994644a40107efe9fd26e3a17c62494b7a449da8e0b6701cbc308fa431acdf1480d3ddb74da82c437828bac12cfe2036d1 SHA512 a3bce1ec6d80e754fba868156c1807d80f78230b360203c1a5e2059e56bcbe801f93c48901ff3df58394ebe61a44ca11128c409e50050071713844632237d635 +DIST firefox-136.0.3-sc.xpi 403791 BLAKE2B 832522f36c99cefeb4efd8ce93cda5602493fc5c36746acb1d7e45801a82c9d09c9339d5936cc16ff86eb50b36f4cbb2f2df076096ae668366952a8bae50fba9 SHA512 a3e6da24c158867580d68b584d6fe45d36564a09b5fe59e905e4b78a24c511188d29dd16c80d092b3f300a17369e1fd04e4006a4007985f662b577ee387c341e +DIST firefox-136.0.3-sco.xpi 324878 BLAKE2B e335fc051fd3e162f5a6a7e16376c4ae3bdc3dd7acb1d4f3b3f0da635f16eb7c907fc8dd51e6c3750cb897237e21d86ea0cc98bdeba31aff5ae6377548d08c53 SHA512 8bb02225d06907bf52741689644dda3ce8503aee25417ab064e04cd32ae4e56b86f91d8d9e5f5105a38e3a74b78ca57db6d8c5eac065ac518030e218b5a7f822 +DIST firefox-136.0.3-si.xpi 414024 BLAKE2B bd05d3804fbe8a010192a57bff7709415776631cff83af8fa75b794c81f8350bd31f3a04ed8222fc66dda50760df2058403c78b4c0e049b9942776141f76ee06 SHA512 e1676fa4b804b8966167722a5e67634ecd5570bbe28559586eb909fce08eaf9569b72a74945b63ef61081a7a5d7093679435b30af5f68836e174d5087c48a391 +DIST firefox-136.0.3-sk.xpi 461607 BLAKE2B ab44c6f6811fc0a4761450f109d55d3cd2a8c6204c5e3ec15a146aeef634be1e67cff11d078ff13233edf7266641d834b5d0927b0fbf1460e235c5d59ca5a83a SHA512 3a723adbd99d7a729606a74f66f02504238bcfe4d5e308b9d3c35c7dfa1866755cdc6087dcb22e1085ff3c7b070bce7ba7962d12a8177a5088d08b268c72054d +DIST firefox-136.0.3-skr.xpi 494197 BLAKE2B 2504b5e7d716c852a65d95899287423b1fc8415efd5f390b1430916a252560f06180eb8c556603cb54cd2b0a36e5141d4a0da254a636b4ed03e813a0d0619ece SHA512 aa6337457cf4371f5abdfac18162bcf2786c6b68b673428815108ca6278c7483e0dab6a1d4c23b430250c3314dbdfb0ac6383839ae55bdab92ae7439dd5b85a0 +DIST firefox-136.0.3-sl.xpi 433456 BLAKE2B 76168f960c96a164c2a537252dfed16ba21176c79bd0635c657b34311f1fabefc4a7f6f8c6fd0c058c03aaa6246ad181aba4d1329fc8bc7e40d19ad2940e4831 SHA512 7d15a2d8d15f0537feff9f604c04781abf24c9b25072edc845d13a435e07967a560137e9bcf34bf1ee3e90fb32edda350282af64243bd83a08ba1f0762299bd4 +DIST firefox-136.0.3-son.xpi 273291 BLAKE2B 5f3900c6aee4cbcaac461aaf78d41573d9b87a6b5dab6c3e60259997aa4e5479f0439e3ccfa41551b69331e00e95d4d55013b0a5f2c51b44d590c2336af03c78 SHA512 287bd9bae2bbfdad26696ce9d7908e23117b474b53e07dbe32aacf79e66fecf69f96ed82729914635d04c91325e43306fff26e28f669461551c2119d0244637c +DIST firefox-136.0.3-sq.xpi 449806 BLAKE2B 5f316c3630d20cf3b010a25f6ac36511926e9fb65facf22f8af381c81fcbe69b2b6a6c24c6a23e339dc74699a01d742c275ecf1e3a633acea335399d271d38fd SHA512 572f23aefd09e341f221b87c36ea40ee45b65636fab1cb558f5077b74809f0a53a02239ed6c6ce6468ff45fc919944cdb7c507b63d213a39ccb5dc32a15390ab +DIST firefox-136.0.3-sr.xpi 456465 BLAKE2B 87e5ae899ce05164e36f11c2101bb7d849720048f8abc7130c5864f20c54b7388c0f20f0367e28dd1845773a11d48682a57d7f608e3a755052ae4f0821ef88bc SHA512 8765d8a202b1a1daf86a8ee4f4fcd50e280cdb8acfc0fbe8abc85d95b1bd3c244c32a2947e65fa92a5a52442cd3011e85773423d6a7509cc05b9ab28818b3721 +DIST firefox-136.0.3-sv-SE.xpi 430473 BLAKE2B 2d54227db526243b8e770cdb3a552eaf7656783e0a0788bef6d4dc9eff3d2b7a048107b4af2ff2ae3f12cc88243e503080aad5491d5881ea0d2c1b1f04b45cd7 SHA512 f64ee0109c8f32ef248e7ecfaea548c91e1edb752f4aae55a9749bd97d7a26aae621f20483b42321fd8824f0412c5e8c3da36729110396e051254dd039b77c26 +DIST firefox-136.0.3-szl.xpi 344458 BLAKE2B 3448c07a1e056ffccbb6cf8a4966d86104db9085cf286f83763d4433985b444540fca64bf1d2f7c776cae4148cf449b7eb7f7938bdd6fc721a723ecaf312a6dd SHA512 e8db97dcb55ef89c300db983d9bca05f2636656c4ecacf01afbabb40607015f56c7d56b7e62a5b18c283d327ba8236d6cb6665e303717c60d6bf2619c0b491ea +DIST firefox-136.0.3-ta.xpi 338590 BLAKE2B 7832f87265c7848240c26f2edebb01acea66325245a63e3f76bbc987a723d4fd45fb049e2f1f533b9a03c37d9cfb73f50fd11ecb4c3a1778e12c9010a91a1338 SHA512 6275603506f6e0037989738c1b4d8c2b9e00236e2723d74b5b2e60e8c75b4070292ec1b46b151d47163271506b0880661c61ca51d980224d6f814a98409a3646 +DIST firefox-136.0.3-te.xpi 384063 BLAKE2B 662d04be0133034cf20a17208886da46154b0e3ae968f59a06632f89e055b6c3019a0b04a106d02a4af2238675caf5ba7c5edfb997f1cceb438240a948323697 SHA512 57b7b50e1d4a6b02389413d42a22172b4b47cf125078da88828adb217c2b3886560eef3d74e1d271762423bfdc55df063ecb9868f288778b0e504f186a91e0b9 +DIST firefox-136.0.3-th.xpi 499238 BLAKE2B e05bcff53307bf0f1365850bccfd682bc97050c3eedc22e95eee40e67dec806891dca6ed14f5ac5b877f3a8a99e211e5b5705f7e6c22771c1285e5dee5529bdc SHA512 44687dc78ad7ec477455ca01709e2d3dcb8f7210a23095fb33d7efdeca70f8eee50c6013af539f95922661a3a493d0887ff0059d7972601d29cbf9dd912868fd +DIST firefox-136.0.3-tl.xpi 351841 BLAKE2B 688c213e92e2345e50893e44a63065e1c3078812cba900302ac4313dc60905d456b8f9566affd10c1092088c1e84be62c846105a6237fcc3dde5456b2113e221 SHA512 baa8e86bf24f38e09175101a95c3b8d88167bc43f39d7b5cad781397105dd3ba179970c9b5ae155207bc216fd292f0b953f925c7a50e1a8899cf52014b2c237c +DIST firefox-136.0.3-tr.xpi 442291 BLAKE2B b0c569dcaac5eb9dc893f046d4aed66065c8d083bbe439935ee51da0c550759acdd36bc29aa76b7d060979e50825f492ca3d4a32f2bf901310d6f6dcd88fe584 SHA512 c28d360e7653ff24ee49188458c60d2ed04727f393009056d9e9298998c1f0d007688660f9374f2d2138711cfd9919bc64a1c20e72a4306fb3a22c977b3ba9ab +DIST firefox-136.0.3-trs.xpi 323925 BLAKE2B c09086565dcce723788478f41883fbdc51187b52926eb1040a17224b6459916212787a70143ff11838d62fd8e8913f74107295ba8232c9b0f80040462c69aa36 SHA512 2b9f0065fb8c160786e1300be00e1621fec1685af2862392e86ff96b88a925fede9876ca7115009ebad714428833fbb2717f9b56b87d3cd3dd0c26da2e877ea7 +DIST firefox-136.0.3-uk.xpi 508667 BLAKE2B a013e34b0f60a01dc2ddf466e4c4904b02496bfd72daf1a3c39e84d46bbdf06a376b6ffa54086f8a300175433beedb1ccc906d62bc405f35f3c9986d1d4f3339 SHA512 7fe22549a186d6325ffc2c3fa8fdcaee8270b4dacb32800c1d8a9eaa6b5b0ff66c29cda1ed1cace53b96f48d1c2bfe3c54cd53768feb36aae4e354eb1ec8f13d +DIST firefox-136.0.3-ur.xpi 371885 BLAKE2B 83fdbe70899b7a778aa477897a2e78a6ec46727e14b1f71ef6128c4271ecd1f85e8deaf72d8abf2eae243e206f839d4f5d4b015be2c98967eacbc72a9c30c7ae SHA512 a2d22e1c2cd4fc3a80eb3182d57a1c5fe702b012bf9554d5370e77d448dd8e59a11829651dd87582ca2b2e2c1905995508c5f057d61da9ce12547204c5b321e5 +DIST firefox-136.0.3-uz.xpi 305443 BLAKE2B f030fb0a26ba3dad3bb3e0bda4c8d6631e7f7d62554f78e0063fc1ba5776680a13ec16a2d8b98112f176258fa7f111ccff43438759ea88413ba04963b3349d3f SHA512 250a64dedcf7b46b167a8c84a633f4deb1073c5c5f1db04b22467a8b76b996b74a4e8bc2d0c03c94475570a77eb092b90cb871d46ad31a16b8973436e37dbc80 +DIST firefox-136.0.3-vi.xpi 463340 BLAKE2B cc36c247d4c03a5c975e93827915d1a872dcdfcb66553349317514b673a6b69cbc19d3db81184a5bb7a207f0d0b0c5c80c3afdc6ac1cebca35e39e7fe6377169 SHA512 58210aaa2521db00e7be263047f3491033204754ee6fde919b710909601c27044049e3cc62bcc8caa4006541dfe93be08e52a75993a17358da8ab1a97a7271cd +DIST firefox-136.0.3-xh.xpi 273257 BLAKE2B 6e07dd72d826ad4f42d9f40620ec20cb8d942f5987d963f73bc68116897977373e8a799bd02888aa667dd509935f8f4e163f4112fda951b184e597e14220c5cd SHA512 babbe1dc060a9724e3385938933b40a3c81418e6b979c39cfe0bf11a46c1533e111b243290403b4d9d844e05cc69a39e2197c0c1e9c8de00fb5ca663331b04c8 +DIST firefox-136.0.3-zh-CN.xpi 454860 BLAKE2B 7e348fc0966edc49d5846385e3cfc9dd07298ce54732bb2b7e39942620c513e4fe0eccba3eda01e1d0d3dd437dcf55a14d6e9eb76614a514c8df13c08f93ca19 SHA512 9dad343d44c142283731b86feb7736bc977d0e695321090840405a88130b064f75aee5d57e3254b5de3109ef877589964d0b96159f0e168c30aacc46c03c0d3e +DIST firefox-136.0.3-zh-TW.xpi 457685 BLAKE2B acd6fcf01ca1a18132b89f3f519684200ae8cc4ccb961abc0bfc416a61d2a567556bc4b8f762b8fdc4a48ff90bdfc58e0b049c3c6f7843eb4462d77cc4d04716 SHA512 4a033670cd88cda125543846deebfe49b2a6377bf514d3677688c50fb1425bb19e44f6d2c5ee99f04cd3ff949710fa8f09266bbe6fa16f778b751ac825e64553 +DIST firefox-136.0.3.source.tar.xz 601432848 BLAKE2B 7f9c686744273ae00edfb64f0ba12dc46bab901e3a23e8ece1e9633bbbda9e83d03c6373a76596a2d9126b541d25311d40204240d6220354820264346a485e2d SHA512 59cb54bc946aecea810169970aad4ba3f7b3092e56f15f86ff3d51fa2752c89632a057a1bda016f0005665ec5099d9b9f9a4786b9c02e3f5656eb2003b6a1747 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.3.ebuild b/www-client/firefox/firefox-136.0.3.ebuild new file mode 100644 index 000000000000..c1e39e2f2cfb --- /dev/null +++ b/www-client/firefox/firefox-136.0.3.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-04.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 +}