commit: 731b2af1addc26e09b0f3a1c2cfb6246bad0f474 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Tue Dec 9 12:53:16 2025 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Tue Dec 9 12:53:16 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=731b2af1
www-client/firefox: add 140.6.0 - bump nspr requirement to 4.36, - remove <ffmpeg-8 restriction with an upstream patch that landed for 146.0, but was rebased for 140.6.0 (bmo#1962139#c27) by the OpenBSD team. Closes: https://bugs.gentoo.org/962454 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 102 +++ www-client/firefox/firefox-140.6.0.ebuild | 1387 +++++++++++++++++++++++++++++ 2 files changed, 1489 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 0bc08fb897b1..9ec4458ed361 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -302,7 +302,109 @@ DIST firefox-140.5.0esr-xh.xpi 272595 BLAKE2B c15bcbc156fa3262341d39cd5722bd24fb DIST firefox-140.5.0esr-zh-CN.xpi 460318 BLAKE2B 2f8162c471f0226943fce4d96d6be345f1b4b0eb3f49b6f457a17cf9a50423a66b079a8effbbfae58c5f7ca6b74f52a7c0bfac84cc2ef483c99c0a3d12825e29 SHA512 a5e6d15b413ba5e0dcdb6488e5c53c069b7da4010e52ec43dfde1becec12475063ec9397ac040e963ed21db35f1bd0cbe65f30f6e7c1f1cdb3e13f5c975f322f DIST firefox-140.5.0esr-zh-TW.xpi 463318 BLAKE2B a237bd2b8c1706ba3acf7cdee328e66f8de5305c618c4d4e8fc15fb2c69227997428987912823abc8b98685247c0a2e4b1cc0ae72c89a62217eb056030230f4f SHA512 1e2097af872a7d6f6c7b8319174e9ca304a2fdfe8a1072fbd6997e50a31333607c86404abe182e160de06b517d10ef28553c1d5e444c0a1b114d646437f24f50 DIST firefox-140.5.0esr.source.tar.xz 636823136 BLAKE2B d36cd45f5c0f6f83fbc081441f9b7fa80947dd4f48b9414e0e800d50afe79c89be70503cb5fc7be3dc1874df0e698fbad92dc4e5e893e0c8baf19efbe43189de SHA512 412236a25cbea171bd5bd535e45c3ba40957a94e1f8dd3ab74241e0aa1c4075fcb8d394b9619599d60ce3e4563e712c825fa8bec441794f229356802f72b2861 +DIST firefox-140.6.0esr-ach.xpi 294361 BLAKE2B 7d3fa7ae23bff7d952852de7f92e8ad7fd527b42bd1e917e7c71c9e674feca871494c456352a873618af2b532e02a4f3fd84988cbf322e18414a84a0c8973019 SHA512 325b967a684f5aaee8c6df5db6ce1315500f57f80123b8b1876b37fc4c416204cc0443fae65730be474c8068705f3090be83c97644cb693311883bc3aeb80c69 +DIST firefox-140.6.0esr-af.xpi 266636 BLAKE2B 5a0981cfb8063589434981676afbbd21d724f8ab9970f6cb02a630695f93394c2a1875510b90aa87c7c3ffc046be253f6bb4fd69242bb758acd65e41838a5352 SHA512 1dbe7c2f6623250dbbdb5e846d78311132d0d0e083c103255ba6790a649d7c719f8256b40eb70c3be0e279c15e15f820e0e9087ef6f32c2ba6d49e08cf705ddd +DIST firefox-140.6.0esr-an.xpi 332301 BLAKE2B bd1402c619330083d637b7b87463d80a403337ee5ed822ff64046e9b6ca4f8bcc06e334c59045ac785ca7cd3e71d52b0d84f53ba9409a49534e81c4ed9727ceb SHA512 281fe9f3491d0445e51bc37f6a4e8a69c6cdb44aa8ef5a264c9e1435cd474e380163b38b0745de1fa5d810deffea53ffd95242d0d03c4a536d471fdc8e6e5b7b +DIST firefox-140.6.0esr-ar.xpi 445293 BLAKE2B 9fb6752969cde42fffe8a0880ca48ce2cca74d39e29e672d2d0ec7e7ac373854a0c59b0debc56d612f2a4061c207660debcd77cdb89d5be23ce903fbb0748fa2 SHA512 1bc3862c4261a046aa5cc30a57fbc23d04f06fac82a5975f218bf4fa509f6600c4d310f31e37c77874badfd5815cbade21b3713123100e2a0addbb53fc3e97f7 +DIST firefox-140.6.0esr-ast.xpi 312218 BLAKE2B 5c821e74f4dc68716fbca07432ab88a0aa10fb6ec3a27a639c322c9a894cd6fc914e7e1713eaea78b4b615945a0af74d9a6b20e859d18fd4c370f46c8de5ce62 SHA512 da43d8b07fc219336918aacb9ead52cb95c5d48aca565c6b8c68c22193d7176583e9b01acea699315126839f6beb057fa8ca3229d9cb3839e663be4e32050ff4 +DIST firefox-140.6.0esr-az.xpi 318403 BLAKE2B 10daff1de2e105b35767e98042f90537a12d113b9743c590e267ed2a394b16cb9487a9ed8f4b701d897cfef4ae3834c2c57c2ef157242a93bd2018713cd7fafe SHA512 e635f09f5cbfe847dcdaa0bbd76ebba50ca7528df777eaf90629d1d72dfb1b9652467ba1f632ca9eb4ffac4773658f624b0cc2e12bb2288de8f4f335d12afc39 +DIST firefox-140.6.0esr-be.xpi 521204 BLAKE2B ef3b2f2a44da16cecaf752eb4fa7151736b6dc1580158c2c29b531ad0ec68acf1ac396619e22a3244288325b4fbe382cec3577efc9f6084ca87ec53a5a3f8cff SHA512 24aaf3f3906f9fe4999c6db9118666872845799faec277b2a3eb08a050324dde891ca738e2b0a2ffe7c8382c97945a92912b70f0597b585981ce3932a0cb3c23 +DIST firefox-140.6.0esr-bg.xpi 457567 BLAKE2B 4a7dc956a404735bf6982bbb04a67ca2494ee857313f9cf42038343eb2edccaf52e1bb8dfedd754eadf6aee4159bf69facb4cc6edffa8248ce3711b261ff1c60 SHA512 96c1bb882a7e64151be1eaeb1199846c87170b12f31166ab6cd4ff7c83753dd56667583bc831713dda132e04b20429191ec8ed2544fa1293d8028e0a15dd2827 +DIST firefox-140.6.0esr-bn.xpi 413376 BLAKE2B b743aacf3934c3874b442061f4a52052ea45173a5aa18f4ff8901804b3096d0a12b30f628196aed6a53a2f1b995c3f02da1635b4f3fa0e3ca788872cadb01af9 SHA512 e4c536ba3ab528eb635688d6b01013abbadf9d409dc144273188d6dd2715599181f615abd63c91987454ec3d7c5192ee0eabe151ab8872ab4120247da9cb78cc +DIST firefox-140.6.0esr-br.xpi 395315 BLAKE2B 7de3c84e35e02af75b574f57445618599d9371c800d4e07f2f1a1221c5a982681d3054ea87e57db041f5cf6bd4991f92af501cc7db680f8d2278edaa26ba778f SHA512 b698403c519c25c57c97444f3d95d2902c83380ae16f750e43d123256726bbbbac4a2525f858d3a7b2a45c4a66fac7ade9ce7ec1210dd4ed87acc0708af5ac3f +DIST firefox-140.6.0esr-bs.xpi 447186 BLAKE2B d326d5044b73bcdbf3b4bdd662836556031c5cbbd4a2f509f136c9d7f8b3b74e7b8d4bdc94220cd999a32e880a5ce3d97cc525fe83807ea62de7dde6ecf5dc80 SHA512 ab5b68a7ec0263a3fb76628f00ecfbfb2b95830cc984d1a2abe4cf5f43f1d0ac92d9eb59043aea76bc4744891ca43b2b04b82054cd43fac7e770d0a326d3d4fb +DIST firefox-140.6.0esr-ca-valencia.xpi 357941 BLAKE2B 9a854da4b40b53db21959aea9ca3b8a9b6ed5efd92f6ccdd4d3ebe209db6989709cb0668cc776607678f2192b73b3fac7d446669f64fe1fdf333de23f55f34ee SHA512 55be8686f4c9e514ba95ea6505c520a0cfe50b5aec1e56b564b06ff3dc100adc3b4a55dcf4b01b913291fe7d1ed254e7b859e97ceca3c25769b341fbe4cc56e2 +DIST firefox-140.6.0esr-ca.xpi 404836 BLAKE2B 452e19d348e6fd1efb5f2a6015e60de464edbfcf89bdc96929820a5358982d43041dff01919a8ca8ebebc2449c9f7b68f36adcff64420cb862efa7aa187e4c7f SHA512 0fd9160b08489312c7194ada5e829fe54a6b29c8553420dcfbbc4c164ddc859ed916c289af2d57010f404eadef4eec0dc1200bff01341dca74d460327980a201 +DIST firefox-140.6.0esr-cak.xpi 390852 BLAKE2B 523dc81ea34d5c862b6306d346ffcc4d98a1285f88a097577121fe5cbfc1d3d75609437a5bb60da904eced654653f41375897de7b53d25e517bf3a560ff2f864 SHA512 007d93fa6a7845a3b41f20a1902e1b0720608609d3e63c490dbcd519495e033665b40d0b7d3fedd901011ce2b8226733459b0fc5d0abe8210908fa5a0b31165d +DIST firefox-140.6.0esr-cs.xpi 475926 BLAKE2B 225cd6786d8853158da92fa1843d42369896db4dd69448ecf26e1f74fc349e6d35b603dc51f0f50df14d29286dabad2dc0213797bc7cbb0047837c7fc4468eea SHA512 bc48e1bb1afe6caa4034845de3612febe36322579ee49edbbca723e64efc314860d11d45a59da52f5c7189945b295d21dc0a87b030b23ee49ff109210b56ea87 +DIST firefox-140.6.0esr-cy.xpi 441966 BLAKE2B e9df3e8cb141b352f02144a7808c7d3436b5081c85450b20a9f3cf6d06e147cd9e8af8ecdf41bee14ada1497714fe4bcea08ae586e6758170535d5baca838d2d SHA512 b077711270082ff67c92e8fc0f0b4cde770bbb5bf9a06ced5fccf9b97dc4a0e5435c7ad1c7aedd931075b44a1a1a85717af242828774917652ca40ea29fb4a27 +DIST firefox-140.6.0esr-da.xpi 431130 BLAKE2B 0e57bd35930c5a2bffc97e37b03925f25a2eef9f59fa502905262a7afd08759cb114ba1fe1eba844a89598e5e40b839ebfac0cbb9a53196a2180883ec129aeaf SHA512 1ca5895d6f7e07b753cead9c2c630dc18fe90e985cfb1d9ac1b8587226d2b2d099e5bc210f4a441266b2b8fd3502f9d6f7af0fd7dd0220d2d14cf16b3c94c60a +DIST firefox-140.6.0esr-de.xpi 452701 BLAKE2B 8982dacdc0b0244a14c7a1b50123ce13b18c8bc4ef64f146228dc9ece06c8aebab2430b7190dd2788ec66fcba18b43507637660af216c6ef6534d34485429465 SHA512 940f215281a2b4653c6abaec195c21ba277ac5f35e448822cef1902cf989c00ea9f52f023a95b33f2ec1318b2b17a58ab6bcdfe60301adfaa5d0570b730ab387 +DIST firefox-140.6.0esr-dsb.xpi 466068 BLAKE2B ce8e1c0f049ffb9037ed29283f0d5397044cdfdc55dc7f969ebab51afa92de58559b9789758bee1273f8b35a6e1f87a3a33f3c830cb1d6fd81712e89890834b4 SHA512 0a1d140213ff95e0d6a35772f3ffb3c8314a852b2f806f4d517d9ee1dad1e65648685e0e4aca896d3bc91265f89e64a749ba79d2d5db3facfc7ba011d9509db8 +DIST firefox-140.6.0esr-el.xpi 536817 BLAKE2B 8882b0bae250d7b71d33717427102bbe560982909bdefcc19f57a8d93ce49f2f6af4fee786086ad3f95ad963b9a7724c7402332a364fd940dfe44160c7116f8b SHA512 00e70b869f9a4b787e741ff1591a4d3ba3eeef856e38f475d53eb8bf43a32284d757f5db430a88cd9166700a4bde7c2efd112399050f41eb161363233a38eeb3 +DIST firefox-140.6.0esr-en-CA.xpi 411061 BLAKE2B c07734150dd9f749a2bfdb7554d9a6a3d4007b43113f5776d157a11aa4cebdcd8b062eb8cff60669139af8c5ea9f7df6fe5131ea1426210aeaf547e00c847c65 SHA512 a77708add8bec6cf971178b19ebcbcf4b53f1f2fc98ebc41334fc625ba1bb4e4c596a0e258cd513e7490f5151b4beeaf7fe50015e7471b0d29bbb26a4940a2dc +DIST firefox-140.6.0esr-en-GB.xpi 411406 BLAKE2B bb4d28c96bfdfa377aa2b5e284918fa11b1c84c9dd0e1c0e8c31e6d2360fd9b02865d974a6a69b2d4e4fdd95c76b46aedb3b31509640497e5e14ce0a4c07a4ef SHA512 8a9208844e57b9c7b4f2b07dc6781e1d2652cd63688b9a5da25d544b6e0876b70ea5b58d5712fa7bfc271c72883bc178ae2d70c460e9b5066288b9160a02ea30 +DIST firefox-140.6.0esr-eo.xpi 433473 BLAKE2B 3ab168f0d323d44fec844fa05c387af1d791689ed4722825cab7ab2ea07055c3ca2f3a74434d9a483a4cb704813f9656ff965b18ab138a23e18b714181db7441 SHA512 878b90f7eb9a506695e32ad8daf6164dc909e6c4640ac01bbf13cce78ad02002717dc8872b320c1500c9627f9f9233327ecbb96a00326662256c640c144bb559 +DIST firefox-140.6.0esr-es-AR.xpi 445512 BLAKE2B 0d1ed06d31d3c9257b360fc929b7248f872fbf6469205536cf84d1af152217597ead1f8460bf43822c47581df9272e67b82281608172b0f3829cf5901b6b7060 SHA512 43aa1e098dc7db1e6993b75b38e17de707c1c6db4818683f8ae43022d541abf32fe743b87c39b71e7355f01b93deb3323b8e657df3b9f4eaf583bdb64213f8ed +DIST firefox-140.6.0esr-es-CL.xpi 446296 BLAKE2B e5dcc2c795b673ecd1e0af2f114f7e4a40cc383067c0b57c53d83b107d132c689ff3136cdb08ad59bc0fac3c508ba16ad4608ccf8948d1a44950f7759e7210d6 SHA512 11d4c2576b7dd01eb7959b141fb999e18b9c0eb1fa026c0bb0a3644e3524efe77994358aaf5239619a7296a94d9334587b00b07c29e256915b025976a9aa0532 +DIST firefox-140.6.0esr-es-ES.xpi 447018 BLAKE2B 0f0bfc5c2797d9a687e2134c2f9b727d1533978a811975ac8340a0dd0a41d5bc3c45c3b49114f9646db056611c2bc64a1a8b9e50bc64fcd438134eee740dd5c8 SHA512 a8e6f33e129d7d95063615a77f9777026554ae057567b3c4566c172217838d58f2ccdadd44173ab62be218084bddb050c3e1ae5c157dd4d209827bfc6773cc3e +DIST firefox-140.6.0esr-es-MX.xpi 446249 BLAKE2B d93990200c7946d12bf3a875a03eaf7c732d849e088af239e61fe4097f90bf2696b3b7804e073bd172737ac54f1afdb49d685aa5fe247c0f86cd304b264697c0 SHA512 5a4cb84a417ad1a0d0fd90d1b468a506b9145f6deb9457e20e16f41ec493a86bdb34cdb6ae5292a79597966856f23114b3302ab425e270fa46609fd09a175354 +DIST firefox-140.6.0esr-et.xpi 359327 BLAKE2B e259bb8c3b9686ea3be9164336b0a65a0758880f4870a729b9081a648d167a794880797084ab5ddefa9123bab4be793f11a7b6e09e6723d5bf57d90adf667bea SHA512 a180923c86f0ebe45f5150b365395a6ff261e38c768ea5746fe3259eeff41810b654ca09a3bc3d5c47b84a99a6b3100d39bfbd70dc19f192fc43d7e022ed64b0 +DIST firefox-140.6.0esr-eu.xpi 417291 BLAKE2B bb947d25173cc4738c8381e076f74a513339b425eb8a1881a1dc4de4a36bb2f838400ad3409001936d3e7fc3314d563fc3ceb06f86afa2db56c2992815bee67b SHA512 18f1a999ead8c4768349a62f0f162f969c7f5e64af5ca9e2bd7b840766d93f120dfcbad0fc33b71bbc3c643ed79924158336f929e7f0a6807ed4a32764a51c00 +DIST firefox-140.6.0esr-fa.xpi 421640 BLAKE2B b948a0da3d54a84822d73dc320254c19129aafb3c09c948e503dc1e744421e1418073a73aaeb19983d7506b0143212d38d3405917876138f585207c20a9e2137 SHA512 d963f112e95bb1f1baff64ae4d836b2af54d1f5df96f6d5a3a351549bb3398ad26620eb32686d5bb92cb91c6f852e35cf1dc2f357b745200b5681f4fe079cee1 +DIST firefox-140.6.0esr-ff.xpi 310184 BLAKE2B e045bf10f8518ecb327b59e8de98c57967f6a81d000a08be604d18c76e99cab91f4ed9bd3dd67640bd45bd82e3ac033f023cd5a10f3e200a671d48a26e4a12e4 SHA512 479669f1e818e420aeba866e38bd5b813914a5066229fdc29d471322fbea69e41fe3c8428e4e633a219ee9c4bcaf87f6acf7dac48e6b459ffe403888adebd7c9 +DIST firefox-140.6.0esr-fi.xpi 430173 BLAKE2B 66c8a84e4d524775854c23db8c05c1f5876165d1c8e7c1d4807518cb7e249c4841cb4c482b3a8c1df1d8b898c5d88e6a68275a598c1d5823f99a8953bf96e4b7 SHA512 70780894b0092ed07da49c2691502bb81ee0dc9e1dcf84dcb22aab3df3a4125f1de0667eccfe748b6564e367b994a39d0f9471167fc8c8def7026d8bbe4df9e8 +DIST firefox-140.6.0esr-fr.xpi 458446 BLAKE2B be2015a016d0dd2b0a3175bce2da4f5ab3cfaef83690f31a994b42f8e94af1dd74d20e9ecf624833a155c7f768449139d78a02db850bc65edb1ce1ec3a01acba SHA512 bf4d5e2922431f63e859665627c76db19b4e0b7d103c35664b1443964a247c57b0537172e14e00f084e160bc9ddefc8cde10205954d850017968be93648d9a37 +DIST firefox-140.6.0esr-fur.xpi 451830 BLAKE2B 7e8d023fd044e1ee836a85f376ff1490bbc5d2d728cf4e96fc58142f5dab795d97ea3a7b4d6adc941f828d077956059f8e32a6d3ff570bdc179f4a1d435ca165 SHA512 f0e9b0132f6496042bd343124ca754a52e131ab2bd8b75999a6dd243d49770e654c86290f99bc6157bedbaf494882d2f5021f35dbed4bc3b3c8a56e0013f9113 +DIST firefox-140.6.0esr-fy-NL.xpi 442168 BLAKE2B 29677f2917de514963c27083808b57aa6b1a3a94cc90afdcbf1cfb253b38b365d21db1ee8090e8ee6c7670407cf6f50265e61628260a099e813ff7814bedf9db SHA512 872c32ed554fc9e659937bfa7bb7945e03e5d41aa451d936ad93315295a65f54a9313ee8f92f42edb24982c3052d3df5be6320029a0394138bec77a96d13068c +DIST firefox-140.6.0esr-ga-IE.xpi 315283 BLAKE2B 98452ea23956e7d2105551e8b0105692bbcb4fc3cd89861ac794b3067dab1edea1390ac7a4e1613e6862ef711ae501e1c718d126b10cf29c31f9d5f02e3670e0 SHA512 5ad3bf646861ea9ab2174ddacb418259abeeeeb62bea159f93ef35d21a93aacc75a7112ca3572e03ec6406b7d065db2fcf841b58a6e7a90e85a47d41091fad1b +DIST firefox-140.6.0esr-gd.xpi 399438 BLAKE2B 5984f00d8bebfef632bb1d00105712447e916194e72c9bcb9fb563e35c99996b522b68362b7a203c496f500b15eef3a963669725d04abb2ecf13d30451a51590 SHA512 d1dc1ae468959467baad86abf2f930eb0860fd4f180512b30be205f68021b4460dbce4719f8e999dc1ea7c2b58c754b1a9d16d8f8d44bfbe4d270d621ed74bcc +DIST firefox-140.6.0esr-gl.xpi 442912 BLAKE2B 7c44bda67b7f0a0c01f565ca5d49726dd9c9b08ef864560208407aba00af5a6ec8c08d927ed90214876e3cb1bcd025c45eb23e4d27bee3a3590f0d971e547417 SHA512 f046c92f0fdf3d5a0f41bbe0e749807c3af28f5cbaab1fec83c7627d888594863e2bbfa14e376021ec796ac598ce5a7fdb85b5568560267d9eb162f531e9cbf0 +DIST firefox-140.6.0esr-gn.xpi 451082 BLAKE2B a5e94682ee959be77cdc10b17bc85fef1922c923ef1e072972f8620f76a76a8af3fa14c4afd3f07a7dd9ba9ba9411abd502b18fc379bf831378dfd0df768ec9f SHA512 064e4b97d63e5c9699d0ff1de058354a949c19348f81aba951d37a07c4007fca99182254a6ef53b5d488010beae261517f04a42f05a849e7aea9380ad4e15de4 +DIST firefox-140.6.0esr-gu-IN.xpi 358973 BLAKE2B f1fb89c0d48ea4761664cd71814159f714256924cf505816007bd844425f377ecc0c317a99198feb518a2aa84e079ed30907097fc2e14f1b05493c7bfef1e6e2 SHA512 b6e6b15210dc0be5c9d3b914a679cc43a281dbfd9ae44be141d61be38593fbe07b9358bd94b0285a352d914e561cd3b51dbc21098e760868edb78f36464d2f0f +DIST firefox-140.6.0esr-he.xpi 444990 BLAKE2B 493fbe39ddd0b614f9aa9be84fd54d7dc14e0057443b6faca8c1b7c35f1d29f2977b20389c638ea56b4423fc6088c836f7c3909e57ce1e1db7b849c0df9d74b9 SHA512 8fdc596381b0c90d77b3e3a280958027e5640ebaf0f66bcde20d9eb9e5a7795079d100d8f32633f273d608fd296dcdb6b9a4b88a17f69339a41916a81d3c088b +DIST firefox-140.6.0esr-hi-IN.xpi 377461 BLAKE2B 512d12e4ca265311548d6146dbd44e4d5a9b9676ba94be906e0e79178e00b1d921eb7a84cfe354f05822cdb3176a651ccb0dba7c68837c105a47e386d72d6175 SHA512 4e2a1c9e859c25a174ad91e4c73860352724093072a3dc86c85c60e9b9df8aa6a605117f8a2375302c80ba05b860412d46a8c0bf2624b713d2d28c749ce69150 +DIST firefox-140.6.0esr-hr.xpi 437694 BLAKE2B 0f1eeafceaef30ce7ff4995d455cb96b6012dce4889c95dde5481d20d416b72b9d7b8b8c3f6a4eb3838db4dbf794302c83275133473bc5406d777f2ee163fda2 SHA512 cfac8882954f35cf57c150efb076a9a1980b6df3b65331c41d6b5af665b0e1459d871d75d57a7cd25e8ea39f4fdb303bc7eef1974b12e8fbeb3066cd8e6e54e5 +DIST firefox-140.6.0esr-hsb.xpi 462697 BLAKE2B 1b5ef70be018d33a1f0050ab2b641618bbc25bec0dbc40be3490f339bf102bf6b33774eec861873796519d03c3ebdb8d19436db441ddc95a0875813a90260f55 SHA512 625a45f1a122320497aa27dc69deffffb6da1e1f2a164fec2b34ffcfce15e94b481fa34c99caa0e5ddea68ad6d7520d8e67c5a31285e89d8692ae5437e2d0fd6 +DIST firefox-140.6.0esr-hu.xpi 466176 BLAKE2B 0f84593e08d0997c1c5a0f8048d6838d31d2270ac1b32784884d1e2f6bd52a687ac37459acddaff58e635b5dfdf11da319f46243837f10ca30ec913c2c4e6baf SHA512 8a1e915098a42b5c15fbb2705026a96b2afede35dc6f99b36bccbbae4cd13420682f3fba4c98d6ff021034ae1f514bf00923c22582498ec68289ba57194a6b20 +DIST firefox-140.6.0esr-hy-AM.xpi 461616 BLAKE2B 9a96c07afb43fe345b851d8d90602127d03852e26ca4c0a7fb490e7ab8d6bc87fb535d3d2dcf1d92cccdcf19e9a0c7fa4868bf617779098ac860a3da29ee9ff7 SHA512 e1035ee56191d63ac95c445f324ace7741c22fd19eefd52a9f9a975a282ebbadf99f7675455ab171bb86ce710b955ed0c5de1dd8cb42b548b2fffb7bf3412bd0 +DIST firefox-140.6.0esr-ia.xpi 430114 BLAKE2B 5724be8b02b9c129fc9c137802c5d42bcff8a3c19f71b555c57787188f431e2798c353d6e0b7de39f5ddfcae34888d2ec083bd26935af7b6602abc6d157d0c95 SHA512 7fbfeee050beb8f5e5f20fed3faeb219ed3160e31fd868be1485929bc494b3c0a63bd5c8a8d6fcbe1a209cd42f47bf8ceddfe6c6a70c834e6f02ade4f7aaf9dd +DIST firefox-140.6.0esr-id.xpi 422745 BLAKE2B b06fa55caadd59418103f4e43aa20d5f904b8c938608e8e8b1bae1adcfdb8c65e110e82eca73ce265865d08c847dd6f52629519b56ed0334f65663edfe7ab28d SHA512 5d0b0e71046fc979043378255047403392c790b5d2ccf5bac8fcfedefb1f45d14c3552ce67dc850d31eef2563a234186581e53217ddc63609d8482066c5a64f8 +DIST firefox-140.6.0esr-is.xpi 432683 BLAKE2B 4a2ff8286a50ef8b78d3165c2ca9961178a5e8df40527c96a77badfee49a0c512856153f00a9a580f750edb7aab01ace984426a36c3217207e6a7e1cc32f8272 SHA512 ba42345bbeaa89b64a3a3d4ae1ff5e5336c0932d36f79048ffb35a8e27dee06f96e62e14ff908ddca47d33a6388e18de54a6853155df98a1c8ab900143d5af19 +DIST firefox-140.6.0esr-it.xpi 440908 BLAKE2B 2f6ee305c2354b8446cf6f6763df5b3cc24d981d4b7f342b0bd9eb7cc6c5d0a9e55d09123b773d2cb6b89e06e9a1e86546bf7974f2d2b933d2d2c687d6bcd6de SHA512 6fec19107f01da97bc4d9a4c67534397169b13d6b1dc2a5ba64a47b2a5c06d1d314a4630dc1af21d2f26afbed3aff44921dcbd96e08de8312d79232a7f58f2d2 +DIST firefox-140.6.0esr-ja.xpi 481314 BLAKE2B 1455e28f1a617f81eb6a62f044a032a58e9179117b2cdd3776ffb65ff2a9525e60804bff3c20a761b5289a2a5af5c54f1e28897165370ad35839f7b92e04a4bd SHA512 bd2f65723cd0f5697674e157ccebad24d104e3005f6a84880430d4f247b70a2cce636af43e0fb37db725e66a6f3ae3ae86899a52743687ca6776ce3d978d3b54 +DIST firefox-140.6.0esr-ka.xpi 494872 BLAKE2B 09ab5cfbde5a6c7430b2a71af51de4dc867650a4324d9977ff100a91dbb5c769ccd364126c3048b8c8141a965e479ebd56c8cf85dd2a92c84ef2cf342ce529c6 SHA512 866a5caea48a1dd27c40d91c50741ac87a20edc13a6220d264ed78e986eb03a2fa913b48724b0a4447cb70bf2c5b99ece6dddcb005be9dce2f62cb09d8ac3512 +DIST firefox-140.6.0esr-kab.xpi 422852 BLAKE2B 47359ba6e32e8f63582588cda040839dae7bbd19e784cdbe6e03015d3debb9c92015de59c030d05ea89219f23da0c4d4eb4db007a205dd5307d512192a31d247 SHA512 5c14183c630e0676b148ff5ca5d8f03fd8e8cdc4c15f24e7aa48fa81832d453e3727e35594f309a5674c1fc52b8c2d36b22744bacd29f528a5515d1acf01c18e +DIST firefox-140.6.0esr-kk.xpi 506691 BLAKE2B 4f9779656ebd8ed425a9d4fd58edd8dce18f4fff7f21fdfb99e6e16af0ef5de63704c4fd79d675e34768880e02ce66a0557fb7c0716d4b049a612e318fee788c SHA512 2bfc1188f5d415c459e67610d5d548031779598402084b7a10937bf031359e28b786b8f481da96044de67f8cc31f45a268925baaaf020be86280603982c7b15b +DIST firefox-140.6.0esr-km.xpi 348774 BLAKE2B 014b5ebb118008f82741736db28677d296c5ce0f3a39810262c37cb872a1191cb57203d1df6c9efd38b6393b28873762942272df7967ced9d1fd995a64f7736d SHA512 94d2b42cdd962b066084d73346a23fd2730cdd3cec714923340caa88ae07e3c2c2f17411d3265e69adcbc5bf51f59452d0aeafff15a075068bb09d91685a1766 +DIST firefox-140.6.0esr-kn.xpi 331781 BLAKE2B eeee5cbfa2ca1ab2ad6ce11dbd57ae04476d47fddba7a7583081756ccb91e7cff91dbd39b05823498b7dc967f644d8577bf133804e24c9db391781ca54d1077c SHA512 7e2378b6ea004c6a4196127e12bf8643edb73782acbb6b113a85bf76637c1d1f1ac8601d5dcd34aa59ba34fca43424d7d63b1fc7a940f34c89081c3527f619be +DIST firefox-140.6.0esr-ko.xpi 467541 BLAKE2B f9911c47a2c3b611f8cb5d84d10899c158b637e7cf93fdb315e7c0f714f418a5b3ab298d190d70fb71b921a2427688373bafb7d3996a7c2b51a0aa7a33290b8b SHA512 c41474525dd6d2e223cda8483dee0c1901e86917b4a11f4566c4b2addc22a72362b22bc2c02bbaf6300f41e8a1039d4c127e6623148ac3e5c59b0d26dd734b6f +DIST firefox-140.6.0esr-lij.xpi 319288 BLAKE2B 9814627f30509b94585046a82a4f864329982073509662574fde4f53b034e4a85c62f8c3eeedcf3be40cda9acd813203ee1b42a0944b139f45992eded184f6db SHA512 a9578f37f54a1780558c5bb8e28b5b2ea411c46e9d902c43a1be6bbc223fc3d59747ba2ee86085801f93271cce666008733f7162881554fbd8159700e76d663d +DIST firefox-140.6.0esr-lt.xpi 379969 BLAKE2B 4de9b192a7a8b661bb6e94ae8d6832fcd967e3dffded645dfe02f7588259472de54c037f2287dab7269830ba9b800b9d7a62c6ce68dfa1c27e35427e040bb82c SHA512 02e233d89506f646de826f2a2aa17665875f38beb6e1a0eab2b6ff3f46c4629872668e99938738548ddcd7ca636ae46466f0909d87128d22afbd49fad467a0fc +DIST firefox-140.6.0esr-lv.xpi 389083 BLAKE2B 01c6a7e21ab43ac893fb19034bdfa5ab291da9712784f6218104b50b65595d79476fd81f13bd7f23c823c46a068fd6dfbc17aea60279eec22e8d2136e9c969ee SHA512 4142d507a25fa908a0f8db19b63c57a324ed21586538587992fcab56013da0314a34dba05387caa04404f1689d2063915f4ae773fbb714b589c5d21378d5348e +DIST firefox-140.6.0esr-mk.xpi 316828 BLAKE2B 5d667974aa931fb33f8c05b276bad51764734a72210c011fa39b6b68b9dea17ef8efcea2d627f217de2b10e9d6cb2d8567a4b3c0987ed7914bc577afe133555a SHA512 d2d3d0efc0d2a6c10e8f5da006ec57dcea135a2d43489053cd112f5197a179f90546fedc75fb6b2d8c4342e5267b050c82a6c32e2b26dd3261b3a5a99eeee4bb +DIST firefox-140.6.0esr-mr.xpi 356256 BLAKE2B 29f7eeff6e4bdee843f7b9b17cbb1cdb5c5fdb39e54f6a338b9a5a3d6797666b5840022ecd02ab38d90a6eb840a8809a3eefce12ddcfb9bd1ee547f0ac6a3b88 SHA512 96c7606eb711206a7c7d0f495aed81a358e23e0df5f3bb92ad5df93fca3d42ea3c0a89ee9fe85db2a3d86cc6565b29e20193ca560d48d992d345f19ac1149992 +DIST firefox-140.6.0esr-ms.xpi 295388 BLAKE2B a0dfbe6b361feef33edac5dee5198bc8cb95ff0af226982ea2e51aab26b6da8d33a5c920132eeb986f01190a5b7540364341842b0abbd12e9c1c326dadea5f4c SHA512 e653e0794a3ead76dd103881bc9bebcb03441229a2bc395ac1ae48dcca96fb7f7e60481434fd5aa9f0a0f68991e9e3be64c26c99ce23a2846bf3560933d3b9eb +DIST firefox-140.6.0esr-my.xpi 343031 BLAKE2B be5ccce4b24c64d0933eb94bd35f6669bcab63b4c8a252cadaa40506be9e64700f130ab8ee16ca777255d8edbf7fae60d7c94c4ee2862a2501d99634d3f0b075 SHA512 577c4b250d3d4f9814c01ff5e8387af3ae56b8ce6ed121902593eaf800f1c44b20ca80d3fcef38a71047309578a35476b64a8f135b2d3ecf60330f14401a291d +DIST firefox-140.6.0esr-nb-NO.xpi 429343 BLAKE2B 2d1cefdc94b953913ec23f225aa39667a8a1e396c124ec9a1a226066608219c64922e33477aec8d30b6737d10f55108e900fed15bed539291cc5a26c819b98ab SHA512 67727112aee7a8fe837eda864fdd62ecd3628f2b375ed9fe4d58803d097a3f33790541330bff70af379143be694369e665620b344739abdbd81d8e3840850a72 +DIST firefox-140.6.0esr-ne-NP.xpi 349010 BLAKE2B 2dd496caf0f965acf8e494130c008811c46921978ebd6eb9e63390b27cefd3e6eab291a794bd73fd272ea7a970c33b729366c60cd9a6fd8b9560405d64273450 SHA512 6162b766e2b732f0d5b571ff691794ad78f64fc2f3f7ab393182ac5dfe8a79ce9221d81fa66372564e87e3430b0b32fcc5fdbdb9c561aefd486e466814410d16 +DIST firefox-140.6.0esr-nl.xpi 436184 BLAKE2B fbc13ad57f2cf7c75c1fd8583a674cfed5577c206fb4f0199d49b8c7affbefe30f6afd03f7fb8e1c3a0d5259c64013dfa77e774d9d20a0c4f95bff2711c6d7b0 SHA512 611d4213e26966978d87fbd377ca85bf62ff338927e47049b66411f463bfe8dd9a40f8cd379b76217fd27785b35be8a1c9385e51af5eae8b913dca0114602d97 +DIST firefox-140.6.0esr-nn-NO.xpi 432221 BLAKE2B 10a2670447b390fea3f80b60a829d8f859ce258b2697f3172ad94082703646616f3f603509b3ba45b04e4b82082127dd13a12e6a33d92f2d5b53ddd635ba6dc0 SHA512 8f52fb0130a6a36c6179c1922677a41211045afb181ba43ee393d98f0753902d78b088b6bdfc2f984aa752f24b901db1e6613f077a75ae16633f5918e3186bc1 +DIST firefox-140.6.0esr-oc.xpi 410937 BLAKE2B a3462d2e10a10b71340fe1c8ff705569a9f731a12a8d8104b0c7a09a220a9032a0de81d76146ea1d750031e85149ad03641ba6e9d2c7c34a89f5a9c500e5c03c SHA512 6cfdcb5af955784d65530b280c176dd21f624b9831fba88a488a882c50206657aee195e261b4aa640639345301e34f8d650289dafeeeea6b9a089d2cda30cff9 +DIST firefox-140.6.0esr-pa-IN.xpi 494412 BLAKE2B 547ec6a29ee792e941775877db2f6b063986044bdaac19b26f190ace6f211c8cf301c73500a3628ce6193db2c363b129ab264b7c37a384a36e74addf601088b9 SHA512 467b941397cd65f1fa633ccebf6f7ac52667584f015acaa4863f5121e726393fccde78046e2daddfa104cc098d8e9b380df4f938695325873c6eaae078c1e6bf +DIST firefox-140.6.0esr-pl.xpi 460930 BLAKE2B d2c053e0f4c2a5f5205ea37483ce44ac3deacc999d1f44caf45e3ff20f093e692b819ba37d4648dc3a721af43ee661927ce79bcf957cd388e2437fc14a943508 SHA512 593e5faded835c1790072fffb13c3c44a63fc7ce8678224751ac321f72fe4f354f0db1d1e23b8179cbe4576ab968cfd5238885e779773d16b6c3d9159aa4f56d +DIST firefox-140.6.0esr-pt-BR.xpi 440763 BLAKE2B 36a260002761a216c35387c89daa1cf3415c38e3cacd8410213c1e5982764174130bc2e1434b7239cfaa82e781f5497883a0970ccfc7e9ae0d1676d3c2e7e458 SHA512 bd9e7706646a720a0239a67112ac1f3ded6977778e4dfdcdbf2225df705d6069dbf33ba7637d7a61be477bc15e95ad7021b7d2c2671aeafa0d92b0b9f54d6ff7 +DIST firefox-140.6.0esr-pt-PT.xpi 446414 BLAKE2B 6f4080bcbb5fa315d863ce12cad9a5275c036994ada5070358cc5646fdb390799886382e539a48b33b5d46e06f50327245868e9e3345d1261a513834b0b05569 SHA512 d1684c310d57446c6e58f40ae2de31c88c875f8288837f28ee9af1c4a68f79730a9f93ba316300a8c8081f8e53a84bf91ddcb21f6246c48ae098abb187e644d3 +DIST firefox-140.6.0esr-rm.xpi 438021 BLAKE2B 95f63c6668f2d1e83438e1ca5e97063436543cd357b97b9df9a556f0aee10411fb9454cec0667015a115c248402de681923ee482a3ea1939a6dd4a7d01f87d5f SHA512 c31804efb4e230e87187c53f977ff62b2be1c2a7f9e97368324bd335d919853090dbb03ce8b65b870ab6512192bf53d911ae6972ffbfed3929972dcc23a24e0c +DIST firefox-140.6.0esr-ro.xpi 452836 BLAKE2B 5939db892f5cfbe7ffed8b2ca6e9a0c69087e60c10b1ede28db597b2d191e83633f53fe82a441081f7b3884f9214b3792ad25cb0b22f1a45467703361f78dd53 SHA512 c98996d47cf3002847eddbcfe05cd46dd47190f2ff38cef3c4ca56a4f4571a272e3aeae676b5bf498c22dfcdba2389d8d96405592a143646e5cb388dd6808bb8 +DIST firefox-140.6.0esr-ru.xpi 525181 BLAKE2B 96e82c74c0c780dc36e46222c887f59d7ea67fcb20c1ae6733f71fa1ac5f3bfff2d92469fb06dc7fd26c24070739a786ff54925e620e2e187b96d6b35258b29b SHA512 93c4422d081c99065eb5f9b64e120b776da13133df697ca2361ce65ccb422331a52b87093ebe9b312aa33f3e7f4f40a1351b1b55938d878e13fa6d828a8b323c +DIST firefox-140.6.0esr-sc.xpi 410464 BLAKE2B 7c870f8205e642fcb7d55880b3539b9c8315b87f865bac0dac42182a7a5a14d230949dedac2279a17dddce9c30d50721d532ec862f5bb2875ba81ad66695d0ae SHA512 63843bce85c9f69e455c86faef472a35ff03cf2d2d62d1578f09ddebd2f4c77bb62b7a81c4ead7bc02fafa1d1ebff4439b1e24e6fd03f7e5bccda3c905960e88 +DIST firefox-140.6.0esr-sco.xpi 322660 BLAKE2B 10ce732161a6fc52612a7b96da756a692c3f3bcb1be63a6392d45ffd4359a1cc7e776bbf8cc552879d1be96ffa72d07d7424bb098bf47e92915d71a43db888f2 SHA512 dfa7827fee752b3670cae48cb58e6823306354486d300bded0ff1a1ea021c7ce817126cc749c98f34d7259cb65cb8ff0100b8ba38151d04a9e947ea9516d9dc6 +DIST firefox-140.6.0esr-si.xpi 411608 BLAKE2B a3b443a5e70b9b8ac1234eb0f4e79abe5984a4516ca313ff07b90930572e2167122b824001ee35fcbd830ec00d3d033ff9687cc91f781c1132fefec2678edb60 SHA512 b2056e77eeb82d9bf97be65fefcaa538d6ad9d9ef8dd8d7ca1579b50f1d730aa7a5b6a0d4159bcbce37f68bfd8e7e8556465edb8325b9233226fdfa531b6519b +DIST firefox-140.6.0esr-sk.xpi 468228 BLAKE2B 52026a9608bd3f7900e86a35f52af90cb072ab5f3072db6eb64602849eebcd4168b255fc466dd5a2f9507d961b40aff549493c312fd543e1d751b44f841cd438 SHA512 8f9cbfba18bb23705ef7b4dd88c6d312f523bdfcc3379a577ea333a96d55fde55d8be76a2b4dc29c80820704e81a6ea7373997aab7db3907848da37487bde6b9 +DIST firefox-140.6.0esr-skr.xpi 485878 BLAKE2B b82dbcf9643ec0e3159f3f9e1260c0dae654f721ac799a906f6575a181be652d9cc8dfd5224982bc83fc78941c8f8f320f28a0fd2c2dd86cec40cc8ecec9346d SHA512 18b723698b520d95bdb105e9c9af4c6bebdfda062d8b6ac391720fa87b19dfb0b49fcbbf9b7bbc6dbeceefeb394179682f5b0943356557fa765a058dcfbe86a2 +DIST firefox-140.6.0esr-sl.xpi 441207 BLAKE2B 6e3620a131cf9c03cc7a0bd31fccaa7e6318208c17b78bef9aa3aec29bd0f5999203ac28aeb7528c5b2850156138a95d130e20bdab5ff121d1353c5e9ddb4932 SHA512 64a8b42c8ad1c5421e69cf7922efe615d8e710f31d6a4163c4ee821c35d610984ee0ae7a91db598d590599e3c4488da91ac84447055993e24f0a23bcd6616a8f +DIST firefox-140.6.0esr-son.xpi 273129 BLAKE2B 322838abaaf62428ffdd02f3c76b6ca46c7428e664275d4e9e929c694843ee69f253551a07be96870fe3dc2d1cb62496df759ecdf621e32e96d212cbad3d8e1e SHA512 fc941061711a2e81be3989e0117c8a6f529f94da0b467c10361f8ae14979ddb6e4bc1c44f01b7c7d41f09a864bc79632aa5eba837abe1025586bd34fe5943a29 +DIST firefox-140.6.0esr-sq.xpi 456019 BLAKE2B de8be49963fc92ef954f7488a606664b6e6b514e7719f616ac8dbf801872dfb5475461657c0538d34fa9084409ed37cd895923c418dbd4a30d6fe18551bbe9a1 SHA512 37408442a10262816e7b489c1f8f62a3ee527d738b3483ca2475a836999fb1d0f6f29568d5e6326fdc60e4ebc5212409de95fcdaa2647ca5839c8fb128dfed7b +DIST firefox-140.6.0esr-sr.xpi 453365 BLAKE2B 1470b1378c72b8fa471d0cd6d427135b791bc6a4e1884446c99704976978e47b45afd7014071ee2abd1e4705e706c569cd23269f929b2097ebad92937295832b SHA512 05dde12c266736b56d7788255815eea4ea5206bc083ec9a782c24004da17fa3e27378c9c2ef6bea0691e8ca997edd1b60d13fd470f7ea4ca97c755a967f34222 +DIST firefox-140.6.0esr-sv-SE.xpi 436153 BLAKE2B 136907e6e08a22773c2a63b674d5bed573ca59703b1a74a82e2a3bcc78696f660c8da0dc70ee3f857fe5a3ac8a05e97cf8bc1f7f5a0b438549f807561b5221e5 SHA512 524ece8d548002132921e8a764f5705f7438a081fd0a2590dc9bb9de4778af8e3e05018d4ba21c928aa8b3cc27a7439eb8455a584f36a25e066aa6e8389b731e +DIST firefox-140.6.0esr-szl.xpi 341683 BLAKE2B e924618178e57ede8476005afae501b1c7430fc2334af64472c7d67b19107f556a129066b4887a26ea46b557aeeffb75c1c546727ccebaa3b3fce036e83e087e SHA512 2b27309f477d59ada6f6f6c78d3527a00d3c42ea5f97e251d1e536a5292760b309de388c2202219075df1871c255f76dd8f137a945b2a4c3db7169b7b4498833 +DIST firefox-140.6.0esr-ta.xpi 338151 BLAKE2B 5513842f415fd3629e1792fa688bfc67fed30f51fb9a31ce79659170f11d3adc00a3249c4547bd28720bdeadb1ce9f8f3de70e83883e618665319f1140c32346 SHA512 87e5ce182efe37d528c8b3e4171c5a259fec5aa3ef8ace167d526216d87ea6bc9dcf570f0a19bfb21dccaa4cd9c0ed213667c39b6a0aae8b169b3a3cc4b416e4 +DIST firefox-140.6.0esr-te.xpi 382203 BLAKE2B 9f83f10e013e8e44cd38df231d795b5d6629635dcd2fcd296454ac4df8b9fa96187483c1c74928a89d6873ab067dcc9bdcc5de3b1ee2e0a0e9a341d863fc81af SHA512 3bdaec9499972c8fac71c6b0706c29af18a6c04d5035b06408252906e799c2daf00093c7fd1bf81f2189b3d4d2323cccb59141b9658ba4f0423f13f1e67bb3f8 +DIST firefox-140.6.0esr-th.xpi 505496 BLAKE2B 4db0a0e974b733210c8255c0663c0d416a41d249beea1702547f6345f7a8bd388397ff637ed92bc9c3fbd2a67265fc376b03407c520ecbcdd9c878cd0d64f860 SHA512 5679fee8cf51779428e2a0fdda2fafbaa83f8d44f0fb77cb981ed1cfea1455637a3b0e3fe0d7bbfea76a9857aeb387d051a1dddd54482b63993bb3de0c606051 +DIST firefox-140.6.0esr-tl.xpi 356657 BLAKE2B 517c3b9d67f63e8f41455b67f50b38ce9f67f01173e9b79c507ee182452754133fa423d375224c3f2360c9dfbb3b630a8d9108ab4b63d5be06fa8401321898cf SHA512 8aca069fe2f94cb643a21acbe325fb7826a14e7c7f22b677e2f6bc4ba5cb03163451dc06bc1a740d10a2612de7a9478d3133b8788d0f3c288f6eb9f87783a750 +DIST firefox-140.6.0esr-tr.xpi 449316 BLAKE2B 56a93a53b6a29420328546a082e10e8beef440b8e9956fceb45f7991df22f5edab71ae57c73f2d1ca036edd2b3c7ad98473d1ebbc1521ea4db2accdf69bd6274 SHA512 66997e21ead845f401366522237a08b611c7c13278ce4e538bf34c5188feb866394cd2e608e8f844e2b20f15266dbafede68982f55e97ad634802f684c30fb04 +DIST firefox-140.6.0esr-trs.xpi 324524 BLAKE2B 776cb893b91d3728dfba019c2a29a57cbc13ddeb9de9358ee2821dbaec0b4abf3804655ffe8b81b34d78fc4a77b25ea1219f06def7d2d47ff03b745e2c55abd8 SHA512 f9cc848bcbc8b77563c7359cb1660b88e9ff25575ca89ef249bfeb5b2c613f917dfa895b7e4ecb2e4b9b0c8d99cbef1a325008b4761e44224434f274180d70de +DIST firefox-140.6.0esr-uk.xpi 516731 BLAKE2B bd7202621a2eb8618aec1e55b1a8829ef16dee303fca5487713a350a4da49988661499e462d4e6777a4a25dfd22956b66fbc6627ba5f261ec0210ebc5ae7ee92 SHA512 3ff48809b272d5f529c7c96e9e238938d0b4ff369204c0d37c8dddf34ae8e5e1591bf24a63fad01303c8b7bccca70bfb03cfe56036426864cedff4f2ab64b5f6 +DIST firefox-140.6.0esr-ur.xpi 370187 BLAKE2B 16b7fd95f406863372edaff24998b192a99ddbf7d99d98a1fa88350af1680162c35d6b8f63a6abc312be637ead062ed7f7f7f4fb857436535b48f83c41304d9c SHA512 62f16ed2d599c9e997771db32b230e3cb5b45365f737ca787e6a16a6a002d6488ca0f575ae54bf2b0f8548941f042fdc79e2e4cb3f8deb007b754d1c2acb4f9e +DIST firefox-140.6.0esr-uz.xpi 303481 BLAKE2B f2b6283869e48335ef4eb64a74082fcfc046a35bac498c5dcc226b9a051881cdfc941b16f458180a9195cb4944489bd1d059356fd837ab941ced4fe9b16b8c63 SHA512 a7f0efe469871a06e0176565f799078f10b61a3364672eed01a2df520bd0d5c27e0d6f86476cba8bb9077fbca0f5909a1770e3d8763980ae66f45f282a4fc64a +DIST firefox-140.6.0esr-vi.xpi 469148 BLAKE2B 7171e0ee857e88a369b12256c258c92b1ee2d47802618fe081b83c896802a8679835f714cabc0f276c7412f8ca6993ee144db099bc8d3f407d002f0b7d6ff2fe SHA512 b0983b9e47c7ef44c5611a084ae1a63699708c30e57a86ead62f98cfaebf84246d2b2a72c9c2af806769b9ab885a736a7efb054aeaf3e3b20e6d88a163143af8 +DIST firefox-140.6.0esr-xh.xpi 272800 BLAKE2B 1ce6d989565a7dca641e271cfd3a6a1c8e2ca94949b21aa7a22111178d709b3b5150d88b86b2bdb060de1d053b5ba35e8bebe36911d174485222acaa3c7ddaf8 SHA512 8f50649c72259fc5b5399f72fada263e4e9b925cbac09215897f160c7b2e4f978e45adc7a354104f494967be41efa9b85c81a36f4307a9c79cfecdef2431fa79 +DIST firefox-140.6.0esr-zh-CN.xpi 460706 BLAKE2B d979874915bb90b0fe73144705a73771f3c37294f7e7080a58ccd9b6c37b4a36e71484c3b0a4171ca28b41af644b3f31b666ac8988d190e6c428f90406c59604 SHA512 e4ae028b1eb5a7400f512bfd053cb6cd55f6fdc79e5da5ea6f9f12e4078278579faee8bc9d359ce267bab460639443d0fe1d8c9a4f86cddb1de48ebb8fb20597 +DIST firefox-140.6.0esr-zh-TW.xpi 463740 BLAKE2B 8de0c2679b3b733a5bf7829a51015c4142d0a96ade0137e3910d573291d4e166c25ffd83c4615c28452fba5cf4bfeb900fd58887d1bfec34f801c896e84a84f2 SHA512 b444ae7db7c1853653367ddf885e739cbfcc4beeb39745b0c5175d9daf14f3e892ae2e86fa0f0a54a4729cbd8139d37161173abdb7335d76c729c97a65f776f7 +DIST firefox-140.6.0esr.source.tar.xz 643086844 BLAKE2B 1613e232f6d423c2758122148eb0575496002dc8bb8ae82ed850275621904f9a50581fc1b82395e57fb4f6ca221d32672c33956a09b87ba4c094aae408a11c0c SHA512 ed66657bd4b2d94791892261d7c0c0d950b4f630d12ab28a777d93393427451a9aa125e5a01ee15f2ac0ff378d0be074a08583dcffd35609112ba4e6f9ada798 DIST firefox-140esr-patches-03.tar.xz 13452 BLAKE2B f1e5da9400ae5d15dec852f0d68d470f40cff11764813bb7429f320d82cbf838e4e6cc7097f42d154a4a67061a66ad31c0749020067fd2a7f891c9003d163b80 SHA512 966aa2d0b8472bd4c002676572b0755cbf0ecce8709776d07fa2cfec512d942ebc735c6ac20c5a5a19af8e00d762e8967c7d43325987c3b331c8c86183eec044 +DIST firefox-140esr-patches-04.tar.xz 124424 BLAKE2B 89fd2cedb67a9d82c339fed01b79c9c4b3f58051b68764121f982d4eba04d979c9d16238a7599fbab4f9d3965253f3ec4886f2da590b05116bc6ea0ee027e935 SHA512 b8c268fd5118007490edb7ef99f90148af4fa88ec7cdec03d028630476c85862e896b1ad3a6964215835f6f442aa71df96d6dd9aab632802773792bced8dc17b DIST firefox-143-patches-02.tar.xz 13704 BLAKE2B 72376ddcc74f97b448e86d464f74bfdb9dbabdf973bf2da6424ab9c78eacf69167114d54867ac3c1c0e39a2bc2efc2e66f2995b3200e3ab72f6f7f795257a03b SHA512 d05a04bebe67a465f43c26492d34bb98ac473b4bdaf98831ed75483842a745fd34ba678e783e7708443f358eb8b0520f263b2a0710c264cef9fffcab30646708 DIST firefox-143.0-ach.xpi 293829 BLAKE2B 465d4e8b99eaa790014f87844e8d65d6b20a629023a14447c959ab97d4c19dc2020f6582b80e4e213db28d415179a9bc5b3d2aacb29a0908654c9bbabac97f8c SHA512 f1beacab86215f12dc3884aa07950f788e5836105cbd1f3edcf87ae858060642620d5615bf72d123233c669ec7f3a92a35d67a3d9f2d807d2d326e32ffc01c75 DIST firefox-143.0-af.xpi 267098 BLAKE2B f602110d567b6429ce52f176481e0f653d86fd8aca7dabae2099ad3b3d5665c0e818498acf0a67124fa556ccb26ce98597b90f1c733d0cbd303eb06aff1a1c84 SHA512 adf4e5fef87b1633daac1ca085cf1816453872eca3b9a83cb516a024ece6ae5dc07cfd58f287487e12b0734da0310332b0f09e961835b5a401c3d9ffcd533e36 diff --git a/www-client/firefox/firefox-140.6.0.ebuild b/www-client/firefox/firefox-140.6.0.ebuild new file mode 100644 index 000000000000..f273fee2820a --- /dev/null +++ b/www-client/firefox/firefox-140.6.0.ebuild @@ -0,0 +1,1387 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-140esr-patches-04.tar.xz" +FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz" + +LLVM_COMPAT=( 19 20 21 ) + +# 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.82.0 + +PYTHON_COMPAT=( python3_{11..14} ) +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=28.0 +WASI_SDK_LLVM_VER=21 + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.firefox.com" + 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 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 selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp test wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +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.27.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 + 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.112.2 + >=dev-libs/nspr-4.36 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + 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-3.10.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + 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-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --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-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # 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 + 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-pipewire + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + 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 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=tar + + 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 + + # 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 + + mozconfig_use_enable test tests + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${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_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +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}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.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 +}
