commit: c28fe11ba09cda4e045bbb7d9d1b027dd7a66d70 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Tue Feb 24 12:40:47 2026 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Tue Feb 24 12:40:47 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c28fe11b
www-client/firefox: add 140.8.0 - bump nss requirement to 3.112.3, - include a patch for +system-pipewire when pipewire-1.6.0 is installed, - include a patch for glibc-2.43. Closes: https://bugs.gentoo.org/964012 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 102 +++ www-client/firefox/firefox-140.8.0.ebuild | 1393 +++++++++++++++++++++++++++++ 2 files changed, 1495 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index f6fc575ab138..229c99da01b6 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -302,8 +302,110 @@ DIST firefox-140.7.1esr-xh.xpi 272785 BLAKE2B 5acef7ca961284fdbba06598188a06d8e5 DIST firefox-140.7.1esr-zh-CN.xpi 460698 BLAKE2B cd5387a47a820d774815527e0ba8fe8f7b6fb210b12f8b399fb9cc36d31392797f89b45729b61cbc329e9536823d0dcff010904f43e09038e1a1e1ce0e9287bd SHA512 42f2658a7b130dcb917ae887673019d438fc59d0ee7dd273853fbd846bfdb47fa872d07bac16b4b8d512c2f411d149782131e8f32a8883593e9b6cbd7cd66469 DIST firefox-140.7.1esr-zh-TW.xpi 463741 BLAKE2B 18aa719aa26d660d0ced096aea783e5318b411633bbc9635ee9218015d8e4cfe6db7c1c57f3a8e2ce275d11e4b5eab5459f915b0bdfc6c4be792b3feeaad5ea0 SHA512 8b4683a7a1518293bebff1ee1a4648dd828152569535d2a82f815ee0a0379bd7e485785c690633889ca03827c15b5ca59c0cc9779af138c8a06e9d57c333e10d DIST firefox-140.7.1esr.source.tar.xz 635535480 BLAKE2B 89699f1200a913205ef93aac5ce24aeed1be41f2befa7d5fcb4d5a7a0124ad8b42fb7075243ee09efb0de7e793df1e753bb8b275515d5b3efa690d49be28b249 SHA512 7d867fa3c9c94903f6583be75ad4aa8d918f98f74c99c6615a0e40caf21c545a30149115214876693ef1758a320ebdccef017c484365c195e55998cce088663c +DIST firefox-140.8.0esr-ach.xpi 294361 BLAKE2B d062b9c2f1c9cf242001ef07d5e15a293827e9e868e7589a4824426eebc44d829e4cc4c0509fd8b1baeaca7efc0e172544e12e582f97746e0f0d4eb5469e8768 SHA512 a8335db2d65d9bd76302732cd2c255a204d6f3880d5ea4841d1cb25dcb88a4c881d8e141b41e0e3cd4c1496e582e29a7cfcd7a159ed638467fb609bee542b9c0 +DIST firefox-140.8.0esr-af.xpi 266633 BLAKE2B 355f0d66e5a0222af7ab18f6a9b436e8abb3b0a8fadd0fdc262e1f0878dd8cd606583b41c460d7c12fcc118253108bb00264c0995f4377b8a5a402611737fcae SHA512 40f869d7698a0ab6b3ec613987a50e34de9abc5515c49f85d65e4196f9b3756bb06cad6a70a22a718dcbf13c0cc147217727101366553a505f047809d5a60ece +DIST firefox-140.8.0esr-an.xpi 332291 BLAKE2B 7d86c9d00527617e1d55098145b05390fd4200f3cc7bad1df86979e6996ec4f476543e6241dbd168d9c8fbc8176e1e283e3eb6141885422d58d20ce032bc5ab3 SHA512 de61a15083f162a7a49ec86d66aa31c2ac150e0b63d55e41939f6569858303f63699fc177b74e1fa300effe753ed890ec47c4ca57e2df4bb9942154bf526b122 +DIST firefox-140.8.0esr-ar.xpi 445288 BLAKE2B c32b043bb6080e3f81883f2cf44bc66b503589ef9b7878cd66c7151a263921c496063bf8b9fc8cd697d0ad1464d4f3fa1856f4a6b8b5d872253f80c120dd3c5c SHA512 56f17b2e17472c366578c42588e3105ca4af6ddff680021b683fbccc24cf4ccbe2c3c1be34af0d18d3b1f32a0ccb31e30274e1acb35cb11d233260c3799431ca +DIST firefox-140.8.0esr-ast.xpi 312217 BLAKE2B 162bd6e75613f91d2775744a75904b2e26589b12a971704c86de8a73f621040f55db69b14a076edc9e3b12754521a26bd0e4dde0f6409892750d797d4e2a4b75 SHA512 f91425ece35da1dc644d7f5eae632a7d517d43a325114b860a52dd3759fd3127fe79833638e889151991ecb251fdfab65a79da00c342e0b097c3118f0616fe4d +DIST firefox-140.8.0esr-az.xpi 318415 BLAKE2B 46e3fca26302de23e92d9e954d54176948cdd9711f5397723365b814d0b36c8d0b3696f3992f827c079f66453a3e490459d922c32fe0810f4ecc2b1164b2525b SHA512 2eb2be8dc2f04e16989aefb2be20f1490d051e11ac16af2a244a14e3a90b7e575cd1a258800a844f8b00ac76e629b315acb8c8dcf8a62dba294eb73a9c7d4f9d +DIST firefox-140.8.0esr-be.xpi 521202 BLAKE2B 9e0e0ab0bdc46937c0f0d67e35e3b86dee52c869df29d072c25d7af5cb47ee8175d7cc47cd6d088d641133953723db4a74c616ec036b1c870558c9fafaa313b4 SHA512 1702967115e1df19b2a3644ee5cf84d6ec1da982dbeefeaddd23fabab130a016c7c60d32e4581f401b84fb1d2a67e24fccfa80951899b4ccf13ede02d592ddf0 +DIST firefox-140.8.0esr-bg.xpi 457550 BLAKE2B 7886e94c312ede6a2831b68a4ef2cceb16141acff8d156d566c2646aa5de012ae33378bf95a5c09cc6072382c103ffa9474ce7ffac2efce08cb88cf5d7f05d40 SHA512 44000d6475ba524eed7d541ee3ebc7ef2c4734213a5b887534b528aa00efc826595763e94c670726657cb421ca785aa47d07c17cc121187ead884af533dcc15f +DIST firefox-140.8.0esr-bn.xpi 413371 BLAKE2B b4f9f50a7c29149562ab1cde2fbe4f810b028cb9ebfe4c939e9736405c3a976256f9bab09ece7f1ac1524712d3095cd259a72c50a936af2a367c439d3c7bdc3d SHA512 aa837999cdac1676881eca05baaadd8c61526761730440ec3cb2db8f2badf41b4f533604a0d2257bfbc8423a7db4ed4e633a07b2052a6bf75bd5cf6905c2903e +DIST firefox-140.8.0esr-br.xpi 395314 BLAKE2B c5f312301a372510f34fa381c59ba68bb077ac40950e7e4e7055f7b89fa52e1800c8ba5d2dfedbd62ec470d198a2ee092514719aa75ff7f9fdc123c7cd68b52c SHA512 0621cab1c06215caefeec6aef75dbeb9a8bfa4f5141f93546ea43b56e35ebb4bb448e84fd3735dd12822ee16941deec1abb0874aefdcdce9bf073b0684d24336 +DIST firefox-140.8.0esr-bs.xpi 447169 BLAKE2B f47110510e10cfbe3cfb3cdcfad9619ad6906e2ee83fa8f466dbbedb07d07c588ae07d773982a8874e9a179bc3903418b78bb5e4002397e69c3e379ef9010f2d SHA512 f8d24701eb437e162c2228821967b51735c94213be05ae5a177b5bc8a481937c251eb91d3d0b6b5eac0ac8d20b21db9e8adf2cdcf1f46b331b294ef08c04b054 +DIST firefox-140.8.0esr-ca-valencia.xpi 357929 BLAKE2B 5586472a853865e9a034ecb18af2c03c8bbd8e8de106ba357c0803cc5b6eaee6df622f9b83a0fcf1d05381600bc161e907b727d9eab89224870ba2d9c4e7dcc2 SHA512 c5b7943be1f38cdcf11e7be1e4e2803317b49374b146130c0baaeccd6023c922803a03589de4cf16bb80499958125d0a40bc3cac112dcde565850d9a27e84809 +DIST firefox-140.8.0esr-ca.xpi 404816 BLAKE2B b9e46573854672fc2d673e307f1fed0dce844f3ffbe9115c4ded6055c788f57c45385632d8562cc3f30f218b80db90c56da7baf516eedcaa7a92b1441d12483d SHA512 abd7aef35e933231dab2079c46a7b86952d3da95111c8774af491b059efbe432a47d055a8ec00df00762d62df35ac7a30166ee3008add1c24d0493e4b39f357f +DIST firefox-140.8.0esr-cak.xpi 390831 BLAKE2B f2742f538346e0b64ae11b26d61831f636e4e856717e87e6d7f9a3bf334924f8047b7bddb9abf152898cebc50c619507061e9b2ffef5a8d4a9bfe5c9d31ea138 SHA512 a42ecbbc87cb99c907605bb04114f202e956f56895c51324d5d49d232f87601f39d5db706738cba0dde425f412ba05a2aac8e5b9e32203e19a2788c57e49f882 +DIST firefox-140.8.0esr-cs.xpi 475918 BLAKE2B 8961b774b23e955d6954c1de2b82e5582e9accd6a796c770d70cdaeb2246ed5fc8e78aa5d92fd604b4043ff4d9de1e1a85b6bd723807266521e92bf603c31b1e SHA512 a86fb4e74ad726ce9cfae0de2d6eb8878e12e13519451038a8fc12fa615fbfad1e6562ad30728ca4613d052e4f709b99f87ca41d9f6990bd141ebc2d0567a4d9 +DIST firefox-140.8.0esr-cy.xpi 441960 BLAKE2B 79cdf3ea5ac7d4ac360a28d1d52fd0fa939598fc4ac87d7f9c5f8ae051fd13c6be6e54b4e60053b7597998b05a16cc72e256b617f44f70b108fddb440aea50ec SHA512 76c30c0ef14796e75691e87fdbb3f16d75ec5fb0d3df703761d4ee23db3af04302dc02cacaf44f54aee4d9e704be8aacad9596b785c25e863404d4f2f8aee7ca +DIST firefox-140.8.0esr-da.xpi 431125 BLAKE2B 62ac1460b0a07e90cdb02e610323466821e7c8323ccffbd445ac050ed7729834ed0ca50566575491ebf62164781911423845e3b0e6a45a0ddcb9ad12c81e70ba SHA512 1d22e4fe44f73f89fdb07571dff646bc00b4daa28f48eddb5192a14f0c807a3dd0a0766c976d3153e7250c41a8a006216c2434d0a58181afef6e37e88e30da3a +DIST firefox-140.8.0esr-de.xpi 452701 BLAKE2B 7c2595970fe620408583720a2e5ec7081c18f456c6c964d00fc6dd7295a073b507d21613a22e72bf00ee2c4a6127d24372463ea109f544d1f8b09e5759da0f63 SHA512 0e36521e68423657ae42f70c3b1165dbd92151dfd99caa90d7824f702536307cf181fe71d2685b5c0d4250eb46cb82058f43c7de8e8248f60d44235a1a2338e3 +DIST firefox-140.8.0esr-dsb.xpi 466063 BLAKE2B 7a85bbeb333bbf169b6136e55a7109bfcd9cee0db9a3c32ff747d2ed5f724824526d7a53a3962982d11d1fe140a2c662c31250082b06aff2a971831e02589f0a SHA512 a2f5136eaf53509baff062f9cfae82e84d64f921375eb7f5d092553716545b7b7827df3c2ca220ba4b74c5579da2eeb0001e9f5e2685243ffcf9cda8dd3b65d9 +DIST firefox-140.8.0esr-el.xpi 536814 BLAKE2B fa7602891b995fb431fe7a33dde43d9c858b1227cbd185ba0a4efcc65459bf1a381f70475c4f2c9ba355df6cfab9c6a2b82b9f249416b8c14be862bcf0e87c11 SHA512 330afbd26a7ed10959611124b2644f7dde01b650076bb6b60b527e4d907c59c18076a41c0ab0442a3bacdb4eb340a62e84ea525ff4af9d957f4ae78f1db42135 +DIST firefox-140.8.0esr-en-CA.xpi 411059 BLAKE2B 82851ff1edadfb664867a3c0d163614033cfb7462f49f3027e2133cff132fa19be66fd64a1e1934069aaded9ad361f385362acdf8e1ef69a58adf5cc8a01a2ea SHA512 3b4c7b30c482246f490c90334ae64ae82b0fdacec89f22c8cc6ca6f564159ea66b22299416d038eca8039292fa81aff8bfc461313c6e7d0ec20144d57b613a99 +DIST firefox-140.8.0esr-en-GB.xpi 411404 BLAKE2B a6484aa9c9b0702deadd3c3cbdd1396840569cf72e91b0f4f6ccab898b0fcc939485b7545caeae73a38d874f303c8460a3193d779e3643422ccc07c0c01c9b47 SHA512 8b070d4c892d9a992a4d01176fe2d6bc89ebceda5f76fe135eb5a752565fdfabae8d4f8a01df40952134c0b00871cd691071efb7b4f7811f7bea82cfd379d864 +DIST firefox-140.8.0esr-eo.xpi 433467 BLAKE2B bd5469133f7b765e0b400e503a15551aeb0bf0a8c47dbc103545a714f05efd22bf2b4005c6202fb2640b8340135c6453d724ba6bc018dcc74c74089400e2c9ed SHA512 d820751f24ccb6d12a79d1d132cb442bc5de83fe9744ee80fe702d0beca051662b2a87f4e077654db6402cbb2c642faeb32624b0d74c7f3d1c760b49e586c3ec +DIST firefox-140.8.0esr-es-AR.xpi 445513 BLAKE2B 6ffded6429f7056b4170392cbab5c21fbce0cb0f922124a3493cbc96702c7eecd45b65b8726865ddc3da4d64953513f22d20a44808bdb4512f91ab07d15712ef SHA512 1adbb344d7bb3e9305d596007097c7b6c1714442f84cf3842af2606a739e8c04576812ea7aa76979df9913817e7e8b88426692c2c17e530058a45f424846d7da +DIST firefox-140.8.0esr-es-CL.xpi 446298 BLAKE2B d9cc4d96d359e76db9914a849d55179fcf99822bfa99571a7413776749a7c289f4260d4b37eb8b36aa3578bef72afb27d2bc9c85f5122f6e3b16405eb4833cb8 SHA512 a8154a01632793143a8b3aefb2015c6241a7fb308645ee99f926c56dc1f8f16bb25d30f0df5b13992663a8fd310a4e86e3892a098e0484facf2484f589683424 +DIST firefox-140.8.0esr-es-ES.xpi 447018 BLAKE2B deb099dc990e123b70ab6ee79c65edeb2483d141a15b8abcca1c580ea2dd5d4638d74066b6d6c9e7b88057b5b0c8099667160af17fae8e5feb4ca36128b77e7e SHA512 58e888cafec87a9ab28e3c26fdb0db9b5e2d2bdd6f3d8c43da1575f5bc8d21bffa05bcdcb6aa6ad2ab17592556452126b9324a667e3884d018b07457da366e99 +DIST firefox-140.8.0esr-es-MX.xpi 446241 BLAKE2B 72d7749a292c6ef9bd5425e36c3ec94227f00ea325681c05a849c16779855733ef257b49bd00746a0348ae5d76ee0a2e719741a91b297e0bdab552e6f09efbd2 SHA512 b63362b65afbd437aa614a0ac5877f5f254b2fc8f1420f516d7e548ecd5fb596441d0d9445e433e801ef226ccb485fd848d0941440c93647edac7bb505a455d1 +DIST firefox-140.8.0esr-et.xpi 359324 BLAKE2B 57c4d465a64af90098fe348e21be8740d0c19351ce63d5beb871a765b426172b07f3fc19e5a4fdc6303b7933c178fef39e341c543a713ed549871cf9556f26df SHA512 f48cb2410b48c029aef2f047cf1fce688e748f841e17752596e65148ce439f81daeefd6aa304c5bea75f44480cbdb62fb534e4a9e83c9735a1388bb7a2431a3b +DIST firefox-140.8.0esr-eu.xpi 417295 BLAKE2B ad607b2664110db37d2e461bdfd82df3ada9ab51bd14f71f2c86f06ef5370fc8239ad7f6c6d309b8de651fe297fc1b5df4c2542ba8623071c594335d7564c433 SHA512 f92e34db8898344cd38f1eb603fbe5f2efc83bc9120cb60cf2c80a497ad20c553bdb79bce76b16972bb15362c4c8a11925e3f66553e4b57b9cb578084897c336 +DIST firefox-140.8.0esr-fa.xpi 421640 BLAKE2B 50cbadeb07ef8d310d57fffd77d4209fbf00162d4a8c3e622ed5e8f8a82e282c0a7d0f829f3d783a0d37a198808d431b9e7e4866a507b463254284f773214fc9 SHA512 6baf0b584379f90cc95c035adeaaafd83912b6005aea8c6a5523bcc400b5a81f16570a495aea2e40c12fdc2c8332e2cbd4f3280257ae04f2578d02721390bf30 +DIST firefox-140.8.0esr-ff.xpi 310180 BLAKE2B 4a4be5ff09276f39b5a1fefc7e5f73790e64d1a8cda6702ddc542fb545d6372cd88cf14feae829d643a8289f48d054f650a9e03bac45eb0a1efe0eb7fe3c0422 SHA512 28b3ef5b3bf1a9a67c2e54f1251cc72f2a6fc7a638813354e5b04a92ac7bde0d85dc7e60983f89d0ceb0bebcf12c0f5ef2a182541db2e135371b81a4a4fcb603 +DIST firefox-140.8.0esr-fi.xpi 430166 BLAKE2B 4e28f2686d42fc6424dde6227dc32675c11eb808a47fef1a65e75ce9b5a1c4accf60b5f4321fe1f8ee4f8cafdb6d7432868bee848fa5e1ea2282065681f2d9d2 SHA512 c49b2e7eea39ac2f4f08c9038bd3ef7f4bf7ab6ae113ea16f86a3d2e7452329bb8f265583e310078e10b4f6434ea129009607f294d9a0476753fe8a0da248d13 +DIST firefox-140.8.0esr-fr.xpi 458439 BLAKE2B 8d217ba917f4c6e466fbbc91cb652ee9b803e38b49638583e62e7dd47b9a3229b6770093236078966554e18550d60dfa4502c7cddc6c5a984195973e01c4a1d8 SHA512 49047ee0b2d73985496ad0889bc6ebeeee960dd36150a268f680bc0f524c7d37ff56eccf153a314020a24c6724a194e47465f84117f7d1f9b75991267d0028d7 +DIST firefox-140.8.0esr-fur.xpi 451826 BLAKE2B 9b53ed2c78051168179941bac67181f87b90d44aac742bf055e4d9401a41ea26bd8f89228694e0d08190ba96a294f9dfab8767d783ac68ea8ca1beebc79bd496 SHA512 a84f682061c4ca66f67a70be75242c215aa6629ab143990fb98bb36e9bdc942ece42b7b086c952f4cadb6c31355fbb47d01f806ca6ed16ddeb5b51b344a5cb0f +DIST firefox-140.8.0esr-fy-NL.xpi 442163 BLAKE2B d5e109b8ba86b6ec14e0f8da0771bd4924f490608a99efed6c07a789038cf75b39e22d439a17bb00ec058f23a0ace0bbc89bc9332b89cec5d5f6e5d5b119bb1e SHA512 8e86021bbb5fd7452039f1c5cdc39af5a871f114a64165a073a91e6cf267b57f7522d63fe25e353549cbb8da4147a2aeaabab3cfa8538dad478f884c1942d978 +DIST firefox-140.8.0esr-ga-IE.xpi 315281 BLAKE2B e14f3efc2975981b677e75534f3ed792feb2d63c399d61450af2f218ad1d092104589cbd7aa8d8b466564e61429f0366a51cd64db9ae3fc7be32d4b72205ba2e SHA512 58730e0ec87c8eadabde327694cf77bf2e6c5ecc54f83a562acc85ca23efc0a8df8b4d78d87c16f9bc502b67236b16c8c5c8628f6073a7eeea5800de6f2a2ea2 +DIST firefox-140.8.0esr-gd.xpi 399420 BLAKE2B d9c9b28098a0ee50da32e6c8578a3c6d731f0e06116b09e6a0112419017744abf7a590a4efadb0468501f5c8435eff0c8b5b20ad4b397ef679033631ea71de2c SHA512 6562f2935f4d059e6dce29cf7d9d43de8d33cdcf2ca2abbf837ba86280778b738c06e6b312a134b8f17f58f47a6e190560079ab18e107c79d6f4be083eb856be +DIST firefox-140.8.0esr-gl.xpi 442901 BLAKE2B ed27a2ff6f7e9ce35ddc9dda0ed645c7e0e2650fb39c22a505ddf3e81940c8cab0d8045ee0ecceb18fdcdff09d82f67504b014d57a0214557794607a49cc57b0 SHA512 e3cd6b40e8e50193424b694fa44163f8113537377ce3e213475b91fdbeb99c10a8a3c637242252945f8136861f471928c00bd3c162536582a604caa684a5888d +DIST firefox-140.8.0esr-gn.xpi 451079 BLAKE2B 901259f1c4b1a963ac7da6de7d11f61c757b7bf7e093ff0e1362db08eddf526e8b9d4bc8aeb62da60a8076c0f1be71b6e74e68f58eabb586147af67079058985 SHA512 a9051afcf5d996d3519cb673922266f0a6d2506067e5da67ced850998b38656218f10db78ba59d9814048a981b4b669a5ba0ce58ad8a15428876c38fe04f15f8 +DIST firefox-140.8.0esr-gu-IN.xpi 358970 BLAKE2B 98e2a21d82f9162df5fd6a6c2e1ed3c6e24bb833be1c6da4702bbae77d072acbecc8277fd6cca823e3b74c0d26a5028159aba15a6bf42b3df204e3fa9d0050ae SHA512 7a9cd174a69638467bf7a231873d3852bf85d608602b8ca29e2dd6046e3c9e8f30810dc74d0bc6b2f7b78aa262da6940f8a0f4722d04bd3368a3a98314a3a2e9 +DIST firefox-140.8.0esr-he.xpi 444983 BLAKE2B f13dd8575e72ea73d38d37d0b09d7da47bf33d0a19661d5f4a0c076a5a7224cd80912f8f09a3724e67579dccff960f483bac67cc00393731d0723f10a1c14785 SHA512 28ae46db45d138f81fce33a7dfd4976d3d2cb996cd5a67d3a290b73ffaee738bbf2b66a72ead8d69ce756c50676bf0475312e06fd98d09b7a7fd5abb4787f49b +DIST firefox-140.8.0esr-hi-IN.xpi 377458 BLAKE2B 5a09778fd8ca51da5b12b75de399af5a4cb5769c31bcae11a0ab2f81dc9cb29675ffde7ff9dff249b56ccfa053618e16f09cee890f6ad17d1306ac095a6481ee SHA512 f5191aca424160623ed5b3e934164b5495a2bb2df0849484cef8aff9edba25100a0727c97a3a6a2dadae9d2e57197fa6b2b140eb450073d6d403646df7e98f1e +DIST firefox-140.8.0esr-hr.xpi 437690 BLAKE2B 09cc3c26445827f2ecc2acd5d5b4f04d71bd8b9dc18674712915b9555f0e70d5cebec3a8e60ad6afe3ed554bc3a71a6c5d375a1e67bb7f281030f253c74f0fcf SHA512 725414c87a2a20093ea6d65427c679a0740f223631b91b1655ba5ef9b865ce3e09fca0a5b26898049864589742dfe0e693a29b636e60a3dafe71920aef2e2895 +DIST firefox-140.8.0esr-hsb.xpi 462704 BLAKE2B 99d0375a68821a7896667cae060f1b4f30018e4b196c49080b4959e6a2b9408b5331d4460d437b58abf5a1ad645acc69671987d98d4dc3bff267eeafb38bef01 SHA512 bfc9ec703bdaa29eb64309a962175a480e70a129089ff808320fb19912da941f42a0c86458e9dfd76194d88b25ed537aff2295a598c668615d0835087946e2c6 +DIST firefox-140.8.0esr-hu.xpi 466176 BLAKE2B ab1fb8406861ba31a39a1861c8e3b083eec51b643bac1412e9c3a045ad1db599cad9ef9efa1cd238d7fbf57dc24b57d57d40d5d6d73666d1cf805d0f0acba162 SHA512 196c044211c6e30c76e66f0675f9c54f0f3b707e4c7adddd8634c2887daf08c323f46b178b5e5096c3da3ffdbc43d0f070048515d67fb5cfa8373462da961f3a +DIST firefox-140.8.0esr-hy-AM.xpi 461612 BLAKE2B 3d4e791d064447ab5f2a9e9466fa44eb4024bfb7736ee95d9f5599559517e4866e62ee1047b6153a1e281726dd8e63edc7ce5a3517805370c1ab449770c8c26d SHA512 1b54bf8b2e9ae42d6c5c62eb09fc3194e15553f579325efb3ddcbd62f1d0990e6567a06816ab8031ef3df0704924aea666e04a25fdde231bbc65fa5e0da8f230 +DIST firefox-140.8.0esr-ia.xpi 430109 BLAKE2B 8e20186ab62ac20e6d0b96109b85242828e859bc1c3d42a59a6b1d89959ef8106c39bf2d7ef8e375d7f36222c5b2fb02128fd9dd841cf15009cb3bb7764a59b7 SHA512 eef92991047cb9cce61087ed30cf4caad5d43bddbb1856cc4865289a14a5c938a727c83ddee5fbd27e530ffc23f160df6dc95d54ea996ef3bfaf885a4a40507a +DIST firefox-140.8.0esr-id.xpi 422741 BLAKE2B 83fec717b8d32a1bf95a74d5087af3b90619da1851a9d62189de959b24b468eb63fe1372ea9fe718a06224854a0fc002263f55c9b2783c83c2f8469ee3c98ada SHA512 6f0b3ac37b01b2f34907afbde41316330854e4c7879aceffda6c86cfd85573bd9977180a70544e7c9c639f4a8999d206cbb55debd8844e4a87eccb4c99426594 +DIST firefox-140.8.0esr-is.xpi 432677 BLAKE2B e1d150a561cd7f3925f5493387f53b6a0ad4d36530aca28cb07cd916510c45b34b7e47dc955f261268fefb89ceb5c1f1f99dbb0e995a5cef87acf97825bf62f8 SHA512 642910bb481920a3a7e1ce1bcf4a6591d9740e4e5dc5491832661fb21869a2def62eff10d110e70d7f5d87efcb2224517d791ac0e70b15e04a8f143080f87264 +DIST firefox-140.8.0esr-it.xpi 440900 BLAKE2B d243e08edd3aa1612b4fc6ac524804276914cbc728d6e84c89058cd2aec50d675cb3b402974d6b4252e84fd37c38c0aa9853d6aaf40efefb979ce468a061cd62 SHA512 7b6755cabe8338eb31d1bc0ab83697a82cd8fce5c475356eccb045e20da355e430cfb8cce2cd04aa6de0907fba913c83d229433a1cb115e2d77d855a5521c0de +DIST firefox-140.8.0esr-ja.xpi 481304 BLAKE2B 8d6f028e87eb8e325ba212602681b4acc9edcfb9d8c51b1f18996498dca0c9f6b3e6dcbd1a30e243469813b51121a682c1cec1d98daf215f30f793d57d3e7106 SHA512 463028876ff3b48f84e39fb736714368efc020f1a143843a8aa09a19d47d73fc495b1777f7074e42757d42de65b35e3e5e063d3b5b2b81cc8aa4806562298130 +DIST firefox-140.8.0esr-ka.xpi 494868 BLAKE2B 651908162e8081a8211e514e05e477eefe12a537a0d0589b23bdbcce8bbbda800b303c2cde07fc7d343776108a4765c9b15351a35476d95ff1dede43ab9736fe SHA512 16bb707b84a65064bb1c9e407b5f6c42f3b2230cee1eb8244eaef51880d5945b6780d676391eb2caf855a3863ea26646b04e83e3b663ae759b2a66320ed447cb +DIST firefox-140.8.0esr-kab.xpi 422844 BLAKE2B d2e9fd37ac87872df71f6f8a502c70f59eb4b3a214fd03de981699ea03ceabc3450a489b1ddc766b6dbd0b6dda743ada35819a6cc5a5f3ab1ffef7ed18ea0a36 SHA512 a5dd42cd6189062d411185ee9d45092bfc8fee7c67dd2e14a458dab41f7636bf3f9916bb8dc8650ce9f27ba917c7850a6a824f282505ae702be570b2f46b688b +DIST firefox-140.8.0esr-kk.xpi 506682 BLAKE2B c487a7a7edb59f7afbf36f9fab5e2a17de1869ac8e5ada2a2640cbd23678f826e150a599f631e191619f84ce4213eeda6d7257bb75d6e3f4323116ac75ff74d0 SHA512 54a7d749341edda44a4ca344d156f4364454bbf8392b4d7a2fbe5812238cd135511e191c1a819d296fa6855ae0def6a44c381e82cf1125b8490bc8f6fbc0a542 +DIST firefox-140.8.0esr-km.xpi 348768 BLAKE2B 2dfdae9df7ba4b2894a03ef208c40aef6dfe483c98bcbbd6c6ee8fb26160ea25ac9045dad937f9f324ed52a5d9846491d3bb25cf7163d4eebe40c233533747b6 SHA512 d66bb2da7ba03fce859d24ca922add5a82775140fae31142c1647aef3eecbe00efd85d44daa405d3476928a9ef455ba5ee541713588c2fa8562c430345474a7e +DIST firefox-140.8.0esr-kn.xpi 331777 BLAKE2B b9c345f570f3dbf3d0438f0b1ecab67b8e5ab659066fa51190759d36767c3a90a295e18b3d91e0749e92aef5d75e7bc0abcfa8721bf8b02b61381d23d09cd5d3 SHA512 8d9570cbf4194e763e36ec44e49b18538c9a8545cf27a43327201378c9e652dbca51797e353d1c0bc30bc1cbfffc6d1533ba235c0882b55411d362941410ed15 +DIST firefox-140.8.0esr-ko.xpi 467542 BLAKE2B ab6b22534fd27ba61561b30a4e4b64ca880944d43c29e8dc420c9cef02d8b88b7ef651f10cfe3a2a16f014e909a1415d942930d20ac8b8adcd79943386dc04bd SHA512 5843128167aa92e36a2deebbaf25175e2070accee4c1d2a4874e5dc8bb184aa816797395629d106e1957f1455cccce90a0769d8f8b6b300f43f5712f51e7cbbf +DIST firefox-140.8.0esr-lij.xpi 319282 BLAKE2B f22bdc00792d2723b39720ccc44f3216a12c1a8af0df046836d9709d46fad5228cac4a464cd95be94afbdbe510fd020c28ec3191faac5ec32f97f77b659106cb SHA512 43ac4082b0ca300b4d034af5c152f07fd8d8d127f4b6f9867e6e13b8ca8bef9f19d74d9a1de5aa18c90fec4d5f275cf38509228099ff37426818ab0d1829b657 +DIST firefox-140.8.0esr-lt.xpi 379954 BLAKE2B 98041fd66a15594e23a43cc44f8a6ce110903fb49bbeb0d0679db5c8481b286a5f18f12ae8b3af8e5738404f1cecd290ded3da8319c831a03aa62f9dfd2f3c33 SHA512 1c4d575836a4e8ac81bece8b214e959e58bd17a45b1790b9bc25e71c16f09a362ffafb5e2e896bfbb551a8a12a61027a94a4a65a0c32288b4e4af5d53330828e +DIST firefox-140.8.0esr-lv.xpi 389080 BLAKE2B 12179b0581b9a95538b8f56bc898b23f063046901787e3b86452346b00d1150d97ac32fdf1816930826744f4dc0107f7edb1e56c980cf6bcbef9c96333d6d59c SHA512 b3ac6b69dd3f33c0bf402639c34dfc720865538149e0d23df37bf539b2275c5523d79072f543751adc10ddb05325ec95b39eada6d838d11390ec171075f9dc1f +DIST firefox-140.8.0esr-mk.xpi 316826 BLAKE2B 86947b26593394dc2cb6f5e074849c99725ec205fa258d3866ff031c7b16fa3e8dcf8a35a8745d720b0169a59bc2f1f281648f3d4cf7b8bdcf1a8e2bffdc15e9 SHA512 a614f9c228f78261fc18e66a7a3458a05b07068e3e692545835bdc195c66e7f89cdc80d0beef51d6c3b7ee73c31ad44c7dc275a362d80f76c711ff68c326fd7a +DIST firefox-140.8.0esr-mr.xpi 356258 BLAKE2B 24ce64526fad91425e83ddde8f26d0998ff6aa33b601b89be23b3b45c3da26f578e23e19730bd6ef790f662d5572d742378378069ac22529dbbca92a60bbb1e7 SHA512 6de54242742aba6886b40ab29ac3a7d13153cdc9fa8b671fef74130401413fab87687c188f823006acb1b08a529a9ae6f22a98f9b100521a8f6ab5436a19324f +DIST firefox-140.8.0esr-ms.xpi 295393 BLAKE2B 06bb96ecc440db3f4c6dd3fdb14be3c60b62c21640c5609532b97539cb19938a203406ff069fa8e18a41c5ef1342b2845aef964bef15afea07d2f78251033f72 SHA512 a21c1d5b6436fce65818bc7ca5cb34e320226c03279541522c3f5c2819954cf4cdc0c45b3773bc2e3406b84b9f0a7bd94bd4327f9306afa9a76f2925d2abc848 +DIST firefox-140.8.0esr-my.xpi 343030 BLAKE2B 6b808ddcb82da5e3b6584894f55004c2187dcf443f475066cb4c8442ce3d5de990731a75ab1e1f5a230ddc678c94a0c924bbdbdd7c075f169f0f0c9d1e351c72 SHA512 46ecb9c232881647258f2e8f8de4328960aeb21228f83fce20d7d39214e285700720e3a86ffb2926d584d5b8961fdece77119213deeb58be099a19ea24120d9a +DIST firefox-140.8.0esr-nb-NO.xpi 429331 BLAKE2B c0c2556f353079abbf8f0b2200a70663d67f889af3c13cfb962dc361b1637b8137b9583752a5cbab97695f0e347bf086bcd1ab0a75796ed0c41e3b36cb0e5e62 SHA512 dc119a660cfacd26628f2ecbe63baa3e7e52f8dd104733af344262e39a12d67a31270b337e8f37b5aa43bb26a50c4382165605ce32011e3653c5b7765cba9950 +DIST firefox-140.8.0esr-ne-NP.xpi 349014 BLAKE2B 574b0b1ce9bdd80f3665ebe072f465c10c7c9940afe982a87b27ac36fea59eb3775364623d2644446793e265b5c4bd5fdffb6427e8201dea32021c18fe5f44fe SHA512 7f78810d1e54d212294c9329788c7549541cda0efdc4921cf23a302c1e06b8ce56cfac389a5abf58d6823333daa713efbaa6630e0f2ef35905251d3d5e4441db +DIST firefox-140.8.0esr-nl.xpi 436182 BLAKE2B 5e691c129e842d6890bdd452561c90febed5b63aa052936fa6cadafc57ff31eea23636360f58a63cf348d20c7793d3672f73d14dba6642bae7b1ac0ffcea0f29 SHA512 764460a90f03d86589fb98097ec72cc8830b8c0f88b14c73d05cc6fc7b67848e74b403dfaf5fd4874f979e8fca3452df942020e8c4ad010b1130c55db594e8c8 +DIST firefox-140.8.0esr-nn-NO.xpi 432230 BLAKE2B 40717de6658f9942dbc24c89123598e43b2ef204f854a740e99100539db8176a384819d097f1b9295ffaa6f2f4830d87c6a19f172eb31cc750494d8137df718e SHA512 357787925b350a2504a3b3bbe42ce308c525ffcb8f8ebbf7472de69a6a0556b13f59586a7b044c24356689685244ab14bc88ba8235a6a17f08c67fad44a401c1 +DIST firefox-140.8.0esr-oc.xpi 410939 BLAKE2B 073c3df3bf55e5ca358b84bb571a7a3520d8127a0e64d208fd4ace351d68440ab959079d7fb50ddfedc7985734b92fbd5ebd16dbf965b3d2517345a744792bef SHA512 18621bf715dae8ddbf9d946e4588ffc36f422c247ab7a69437587d8648a1a0a8d902dd5c3fa9580baa99ad98434bbda8fe274b9d3e9f7656a3e8b40fbc840601 +DIST firefox-140.8.0esr-pa-IN.xpi 494406 BLAKE2B c1a71478dc7c7768171fc7ccbcba260989ebe3f41cffdd2539f9af026117f8a320dd50d2893b6cd098ddd533f23d8430530dc7766cfcbde7e8b1d1d35d558c41 SHA512 bfa87046f26b1a0c994f6045f71f1b3d41de2bae1089fd65e43ea926a1697fd21c778ca71bec8884ad7fa96a24774e137ef49f3e64cd884434df29673f1c5101 +DIST firefox-140.8.0esr-pl.xpi 460934 BLAKE2B ae54909f9e2ba6ff120fe53e7bfdcb34afa75fb6d6b2d4fea862b4583846a183d2d85f06b8f363cd3bfadaead791152f429b4319f839bba3408878c8e369ee32 SHA512 4990ef4eeb9ff505a4e2c67146b355f878d0b83a5b214ce2f4d1d5d86d3c667336293df461725f684810ea8d5ba2bf33923b73f9cbc75e4833c6a6f461781d69 +DIST firefox-140.8.0esr-pt-BR.xpi 440752 BLAKE2B 94535b82c0294882819f3072dbe347c05f8d67db1e193715e0575f88fc4a3cb7f3274e7b0842e553b0418ca416d027bca439726e48d1e785d7a72f1ef9b8f4f0 SHA512 54e0b5e70e9744ad9730436e10302d1b6dfcfd35a136a41f0c36dcaf81707fa25515924a73baa2290b15b02aea467c9f879feedede973bcd05c1ed97df35a2ee +DIST firefox-140.8.0esr-pt-PT.xpi 446405 BLAKE2B 2aa99b69f2377e9f890f0fbb49105ce548af42ec027245397705d6d5cac6ad6b5aab7b8983373be8aa0e7f53a88a86b19b65e78fde52288be19f9f8609bdf191 SHA512 79a5a3334d4d5be6c19c4ef3e52a5da6b470a44dacab8b2e16a4dd73c652912bbb47e2ac2879b52d7460b4745d40d13c23f2da7f3c178c5d951cda2066c6545b +DIST firefox-140.8.0esr-rm.xpi 438019 BLAKE2B 0ca613273fdcd9d54326b4d5a92daa357b21516723975a1bed64e2575096522a38f6ca512e06ed84bcb1f7ca08c912cd7a6b36b8db367d770a4c35f8bd575dbc SHA512 2b18e426959ba7161eb7a8a4407681ba35b2ab53cdc3d7a82341e64531374cd2f7b6eb381192538e7d1504b7dc467066d02a8b600d65505c877924777ade4e2c +DIST firefox-140.8.0esr-ro.xpi 452828 BLAKE2B 4547fb3379eb909b2f139085ff11c0a2be0e4e9e377c67157a621ae329628748839a4600c8861ef8bcd8e574019fb8812a92e018affc81d44f8684ca88a50573 SHA512 ba2682a73089a33d6a6ccb8ac70d2f795f60d9e7d6a363e33e9aae45147a0944f33c15d3ff7d216179ab492b22d06b807a6d236bf0f81362a2ebbaf26f64cf6a +DIST firefox-140.8.0esr-ru.xpi 525187 BLAKE2B 0ea9740bf1785c991d9dbdf6301cf67f034b56d716a167ad41c204d1efa9b1a093a4eb802735d3ef5ebc41048ab095bb9e5a9740446b344a57abd57334fa00fb SHA512 31b3885dfee6275446a9cf0023af1b9d215516ee6c75c21b2081c0511f41ad08b7044e153b9650fbf3c25c8aa38ee6d50cd3aae0aeede2e5b853c8303abd5c82 +DIST firefox-140.8.0esr-sc.xpi 410464 BLAKE2B fc5cc46150d58783197831c6d4da81e263cb83b57f303458a59e5c4dec1a5dfcd3225b103cdda72f1e9805ceaee60ade62f609b4d9e5774ef121582f93ef324c SHA512 51fa1a0b5280dfe6e7c880943aaaa7790ec8a3a626f5fc05087999c073cabd6accd291c93e2f8efdd3f51a05bab473927c01cc99ab5fd6911884968d380facc6 +DIST firefox-140.8.0esr-sco.xpi 322649 BLAKE2B 465d286d33840b68f36772bebb40b269ef9e180587bf0a256be0e7d916864b02aa23a63d170b9282a3dccacc93d4ed7141295106565381a669752bf34e9d66df SHA512 d3c60af07350ad4a84b2e266e6613dfe791efeaf1e6f3124d6709c403038a7d33ef3ec47ef4b15dfb6e78f59722a26990ef905b45fd2c37b80d4e0a77acdbf60 +DIST firefox-140.8.0esr-si.xpi 411612 BLAKE2B 3dd89dc14e1fdbc13543e9da1c81852bf36437d79b7639a3d58341bd3eb44544565322c23cbc426899885b1eb08b5b5345663926860122643c193087a8ef5ca1 SHA512 b33bbbd26e4cb9b1ad4b30916a495f889b8788333f8182cd4f9f915d7bc1a5c8cc051abf0cf7b7ef0af6e4433eefd024249fa0c56ac4adb09241161e22d05bb5 +DIST firefox-140.8.0esr-sk.xpi 468224 BLAKE2B 89e8244138302e6bee5274f7799bdb07f0d94ae74129748b4a7ede4e5fc2e392fa34a491e90c1cbd533e3d8ee538d3e5d76918f51b5fded370a503e82d0768d0 SHA512 522c2e4a8daf3efc41b7d52d672a0042c29558a3ce74fbc50e7637d05c6d96302092e799f353294aaad9f45909ece2d5c542dcbe1bee98a54602021a7a648aa6 +DIST firefox-140.8.0esr-skr.xpi 485875 BLAKE2B c27bb0466132d8475441ad7dbea0a9862adf4b79eb3df1e01dd72e963fe20fe602e81a8621f37067978d2412030f0f5eef51a700a8181bab9afb6e0bb6f46555 SHA512 85a9298e4d493b629410534075093a5a96e923f97fecd116f42a31b5a36e8a61e095e6d997bda3808270163de0b960f214be09de101cc8a63f75b8567c05858b +DIST firefox-140.8.0esr-sl.xpi 441206 BLAKE2B 1f1bb63125ae3f037a2c947c71767a88401a67e17a6fc50154c373bf1cb6acf75d69ed274a3e544775e0524e6ab6e4da7727ffdc95e28b07fb7658ea9e8bc04f SHA512 fb90408bde050b5eb3cfa190bf8f3fc4712d3a5931b362080bad67735455e7efc4af633a10b9b1380ce1f6461e127ab48b98ff048cbdc766c14e67810ee12bdf +DIST firefox-140.8.0esr-son.xpi 273128 BLAKE2B 72e19717e509dc41ea176c0833c22d09214006c7ec57d81bd665173b2e80a7b3762347589abe26189bc7596483dff6382aae88ffcac7319ed25bb8163f243edf SHA512 593b4a40dbdc584d192951f36aff191010822aae08bf649ab37632d78ac51a37a9b011e71b7b13bcdd12713e160a6a3931b7cdcfbcf8d400d2a391ce22300420 +DIST firefox-140.8.0esr-sq.xpi 456010 BLAKE2B f301032f1be4bf7ff13478c79b2c7a7862b83807f6487badaf21efcca63c5fba3f6ebaaf11a780d4de4824fc30311113159fda5e3dc4f9aa6304110e1c67daf6 SHA512 768650233627307073df800d30669468e6a7ce2f400addfd8b9e68b6cf15337caecb6365a94aba7650cbde1e902315f572549624ca2a052551a5ee5bce8598a5 +DIST firefox-140.8.0esr-sr.xpi 453367 BLAKE2B d5e647054c96c6082e66b36e0b70f2f40f81966e0457bba7c606c0952c15dd0e3c589f96e1e2865ead439f9aa45dd4ae412b77874243c516e2fafc3e90c3660d SHA512 31ee81d767b112faa59c93aa05bd8ea36d97df979af13d3b5d18a4e03245c621062e58ad268d0f7fe67b42fb5e817473723e13b46a34529cd2babfd31d4a2295 +DIST firefox-140.8.0esr-sv-SE.xpi 436150 BLAKE2B 13769f5971cffbbdac096a8e81351520ac1e5fdde3b6427e018c88d53db6b40dd1f5f861ff7fbaa9e3f344d779b98c076c74501044b428d7f4c601eea9596c67 SHA512 70e5568b975d6c9852ae869ba06ba9a1a73ec52a64547d8e8b32e2fc231b343eccde171b984ed61f3d1d25bb9581e658065bdd5cfffbebbf2d08087dddf56363 +DIST firefox-140.8.0esr-szl.xpi 341674 BLAKE2B b7992252c485f2750253faf4e6f0675966f3113c8f93640f811a623051dcfbe16e0a6c14c4d07508e5029abb140334e9f025e9415a7f8437b994c4b8f0e071c0 SHA512 37b3b84c92f1299ba73612db852029de03f9361ceeec9611263ea86d53eb4d6b6053f98c2c468071397d03f7fa604b309f7b3429ab2fea931b55d0bc1e9bc8e4 +DIST firefox-140.8.0esr-ta.xpi 338145 BLAKE2B e789324820a62bcf34d442fd49d5059ac1db410e79d39b3688d163d9d4624a1e07b7fc0f5095768af1ace6c2aaec56fa8c1683eecd9287b24597dac18ed929fc SHA512 a4f91fedde9855013d35b0c8ea21e752415f137076597920304612405c71e603ec7729d2d46f162496e58c62d8bdf12ffd52349ba24012fd948f3312d22896f4 +DIST firefox-140.8.0esr-te.xpi 382196 BLAKE2B 156512dc31df142bd1ebda866d07ba79ec91831aa8414a9b1ab1e2ea8671ff8f34384191434c96cb8f576f4803712ab73194bcf355dd582b9036e809fa4d1543 SHA512 b291df537f2f043c60714d381218074bf67c6696f8faf6d5621aa9294845d6f4cbc509137f19c29d55547f46162d0120a1c524bda5b6002782fa3bca92ff2d31 +DIST firefox-140.8.0esr-th.xpi 505490 BLAKE2B 4dc2b9005b6343e799ef0e6a0acba7ed6eca39988c9bf23ade12e6a70383c5638047e2cf96e496e1acea3e44864d95cbf21a32092e9285d535da1a6144bef96c SHA512 ff3f962c0014bbb744e1dbefc6db65c73131d4ac8b1f314f7a82a5a775eb09caeca24f1c08180c5cb1a9e9995c8110df384a0c07a933d1a6f14842233eb02598 +DIST firefox-140.8.0esr-tl.xpi 356654 BLAKE2B edf4140886c8fe2eece95f9683cff310304d22f22bf8d19c1b54487baf6d0ea0d915af4fd7bc309ad50590c04d5a6916f94f04d318f7de517d5a8a34ca5da84f SHA512 e33b7a0023b460504c1327927d45c7115a4a98cd04d5cbfa38ecd1eb9dfbc263b6395ce9b9bf295954aed528433e7df73561f0a6b48a6fc11a27b79e60201d90 +DIST firefox-140.8.0esr-tr.xpi 449311 BLAKE2B 4e42a3e60bd456a82ff6d99852946c7d6c1a2e38dca5592a1d29f9c77b330ae525b95081403eb2fb5896dfda72f8f6786770df3b3c683d5dc64edac570fb2b51 SHA512 c0376b1c3adf18cf93da0d9303c92e1952cb0c374b0b3a1b21a895541a3d1e9d9c969f6f4e5f7412404bbd9b85262a3df0b373f96d1fe4806bac2532000013b3 +DIST firefox-140.8.0esr-trs.xpi 324521 BLAKE2B c0e351196030380a1a3acc5a09c7130dcce5bd39a726b9ba307816e1dc19f1531c4aa793e5d18905d25d984f9ea471d822f5625e08d05da0010f7bc80a3bc9cb SHA512 072c7d3ebb171bd9be82b70232aceeb5cd8ad80c000c9c5bf44df97e8a70b04dade9a516e5bf8047d209c401400b9d60a290deb6c4ae0f24aa8bad7f6fb7e5e7 +DIST firefox-140.8.0esr-uk.xpi 516731 BLAKE2B cc042d6b52c55e4310a4c96b6e191c9049cccb69833e12e8ed4a2aa8c5f1ce26ef8ef87ad17ab02af75130e9935710ef4f1c8feee2b3aad88294c390750f83e8 SHA512 cb63a2ad57d819ac17ded9dbe65cbb73009fe149dd131d6ed5a9f2a9d513bc121e9267d1e308af9e79fe9d51385519472a183bf7425cbf6537c72b71dcb2e0c6 +DIST firefox-140.8.0esr-ur.xpi 370173 BLAKE2B 62f910aa9ccf417edad93fc02353a29f206437fd82856fdf67bad923e4d5ae5b5bed9de419992134a2ebc0eea9a3292b546dca675350825c12f6df16387e46f8 SHA512 e3dd70bb4dfbe3915a5357a0b716292042a8d0cf01f18f9b50bfc60ee21a420baf78e49d4cf168450c89776d2ec98caf9ea72e6cd6d04a48a80f86bab91e1a98 +DIST firefox-140.8.0esr-uz.xpi 303486 BLAKE2B 1d7325a577b957cdd0b06079af1c7c9676aa23a4fbd710ca056af9f383173cd6c3990210929c12e16e56787aab9454ff89c36cf3a6097d03035ec66b95b0d51e SHA512 d2053ab4ebec388bca8f22009636520f85539499ef13299dddf1ca32278ed5f7bdf9b6b0b67621d6a0219aa073fad37820a0916545aaeec2f49e507edacccb52 +DIST firefox-140.8.0esr-vi.xpi 469141 BLAKE2B aa0171731101ecdb55fefe7a5f71392e9af61a3e1445d01ab6a1bd2351a8ec65b87c2a3065eda80e38efe3f4b2e1d16cbfe56d3440519cc7b9e0aef441a063e9 SHA512 0c2d5b8121fee3e30a11e0ce9beca3bf4e36d06dfbcb18e59c585fb38eec233c951107ddad0ea2508f6714d81c3a812540dd104ce385ec49d197b3448c174a8a +DIST firefox-140.8.0esr-xh.xpi 272795 BLAKE2B d2d1fd48616e85c0489935a203592dfa2dd81a9465b0381dac5ff96878b6b289c3250ee10116edb4dfaf6756174cf74cff271e73ccafb91e77327e7439c524ff SHA512 bb0ac20b97b8272a8ef041c1a3f7fbbac510886163115d4981f29dbf1cfedfef8abdc96d381a2dbf9675c823fe5f1285b8dfbecd7a5fd0a614918323974ab1f5 +DIST firefox-140.8.0esr-zh-CN.xpi 460699 BLAKE2B 3976260e1335824a5b93c619e46e9bdcf29eb580ecebf68295f771cca04a577919e72d7603002a421adc840091172dfd8449c45fa6a0c2a4e8e94b6bcd565314 SHA512 f8ac0773fcd77b6daec1016d50589a6139261db3fc32eb45baf0097e2276fc414ca783c52f816468ab514363da4b90e0f33ac7b4f847fbd48c410942894424ae +DIST firefox-140.8.0esr-zh-TW.xpi 463741 BLAKE2B 7c2b0ed8a7f7c1ae9ebe448ee4925e25de7916398e259a07fbed1e812920980719162fa4ae15356f5dbac8b82f6ad334ae87f45861bd409c2e2208571059227a SHA512 a6cf29d586170508031ba18f0b7a8cd4c0d931b29ad819b371c08534528d4d7346a0c142dc397a6469d65ea38ada7d84bbb9c041002ba687ad4d80decf9bec25 +DIST firefox-140.8.0esr.source.tar.xz 633564864 BLAKE2B dbbf560ae20c6eb384cce577d49fc71152dc3c72dde64efadfa12d975dda2e13aa1c6da7517e435d3e72b0501f440a5cb3a35a75796a42256627620572bf85f3 SHA512 3baca73c5c264884afa4b1d76ded4417119640e1161b8fed4ca406f0ec44e7f685258f5085f473dc9eff9057a6548a9b59cec3c696358dd1032503aa75f91d05 DIST firefox-140esr-patches-04.tar.xz 124424 BLAKE2B 89fd2cedb67a9d82c339fed01b79c9c4b3f58051b68764121f982d4eba04d979c9d16238a7599fbab4f9d3965253f3ec4886f2da590b05116bc6ea0ee027e935 SHA512 b8c268fd5118007490edb7ef99f90148af4fa88ec7cdec03d028630476c85862e896b1ad3a6964215835f6f442aa71df96d6dd9aab632802773792bced8dc17b DIST firefox-140esr-patches-05.tar.xz 124432 BLAKE2B 9281214dcf3da5d2e288112a99dc1fbee44ee93c4b83e30d73e8383805bd9c8ad9b1918d11351398cd963fdc30ec3cb50d7f6b5c9905d7c1303d21fdef440fbe SHA512 70551bb7eea2a50bbd30418438a78a8ace07467fe852b7655c24373c651f816df89fceeb98b6fa6c7d95944b0c5deef76b89b3e742795a8ac04259f02bd25c10 +DIST firefox-140esr-patches-07.tar.xz 125712 BLAKE2B df8cb80104d816966723de33c79aa56f2a0ff54bf1a8a0668b76c4bb1bf3a7fa181011850c3030c04c2b8abcd69bec2dc23d500cfb6a624704b0797b76af8062 SHA512 6735b7f00048a24f313f2a09a17c785d045b3ebc0e640c9b7932fd1e65b84284344adee73d058855aff6bf93384933323031799565838a6339b9d20684e162d4 DIST firefox-146-patches-01.tar.xz 10568 BLAKE2B 643ed4298d7ab2251ae1f813473a7b461aa386dfb72984e46201b22b6cb0f69f28e92b44a4783dda32a81b4b0dacbe8b47a25b9232481ecd79a19550e74e4812 SHA512 9e2474eedda1c2644ddcb0f9fd2d90ede764469337eab1267d3d4dbe8e3487bb519106449acf1da9798050d61a51e96a882f365e4587f88747161f6418203e4e DIST firefox-146-patches-03.tar.xz 11228 BLAKE2B 4c016627aeaf68f36ae4bb7d8e3dbd4dcf75ec616dedbf9931bd5f11fdb1ff15b93c7e3dcaa9fc0025279de4d3d503c38dddc6e6fa74d546f1c04322073ae91c SHA512 0e117abd73062baa58d004368b84a3a541a521c0097e11735d3cd4e61772cd57d2482dbef8aeeeff085d51c35cde5a8253288803150aa501678392c057a7a9d3 DIST firefox-146.0-ach.xpi 293906 BLAKE2B 805c65104451b5736880d3f2e04784f8824fd96ba4ae9274304222dfa7965e65a7617b9579c4529577f8ebcd638a3d054ae83b22ff55e23456f546a2528f5b17 SHA512 ff2d360795e20bce2aa924a68bc7f07637a8565de5f7268641562a319ba78e1d499e62c07bcebd2e01e4fbe941830b11a21b7630067ddc7417d5da49f78010f2 diff --git a/www-client/firefox/firefox-140.8.0.ebuild b/www-client/firefox/firefox-140.8.0.ebuild new file mode 100644 index 000000000000..3b75e965d0b6 --- /dev/null +++ b/www-client/firefox/firefox-140.8.0.ebuild @@ -0,0 +1,1393 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-140esr-patches-07.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=30.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/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.112.3 + >=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" + + # ICU's subslot change should trigger rebuild on Firefox if it is updated 77->78. + if use system-icu && has_version ">=dev-libs/icu-78.1" ; then + eapply "${FILESDIR}/firefox-146.0.1-icu78.patch" # bgo#967261 + fi + + # 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 + # glslopt: bgo#969412 + moz_clear_vendor_checksums glslopt + + # 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 +}
