commit: 1080693a6f5438662b599d4bb833dc40c3bb53f6
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 16 09:23:54 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Sep 16 09:26:13 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1080693a
www-client/firefox: add 140.3.0
- add python-3.14 support with upstream patches (bmo#1970223),
- bump wasi-sdk to 27.0 (with a rebased patch from firefox:rapid),
- fix libcxx-21 compatibility (bgo#962129),
- nss requirement is 3.112.1.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 102 +++
www-client/firefox/firefox-140.3.0.ebuild | 1387 +++++++++++++++++++++++++++++
2 files changed, 1489 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 1e31e7f7aee4..9e07279bf4e2 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -202,7 +202,109 @@ DIST firefox-140.2.0esr-xh.xpi 272610 BLAKE2B
433b05dfb38bbec8e6e94b804d20e326e4
DIST firefox-140.2.0esr-zh-CN.xpi 460380 BLAKE2B
e11f0b20410bf7f84b62c654dea5ec9d45f6206ef59e0cfce41c7c7540d734ad96f84d9e8703436003a09b7e2cb03d86e4a253b70067a72563e9b2815732fc5d
SHA512
288445e656875bc9cf1607b47eaff302e3b6976ba29bd36d2891849e60ccc88e741fee0295840da8d36c344a304028dd1035774dcc6a728e54b6537dd0b52ba4
DIST firefox-140.2.0esr-zh-TW.xpi 463358 BLAKE2B
8a3048b676db66f20e250c5db357a1ca4e97087f2a68474389d3246f82ec05341ee7b48f9bd2eba29acb78c0d25bf5fc75e06598933019dae83cfad80da7bb85
SHA512
aaf00a34f0d6b69a342edc43a23d028f246c2ce5fd8273b4ba088ae8ceace513dfa38f4c7d7a09186e92bc586b0188ca1ee240c8ab6dc3b5439080dbb7dc345a
DIST firefox-140.2.0esr.source.tar.xz 631022940 BLAKE2B
aa3517f07e1b632ceed33e2765929742151852efb7ecfa6d432b7d63679b07df48151ade6a6acd42b06bd48b405b59d52aacd56ddde60bf85ad8c985cf6ca551
SHA512
e4597c4d83ae1a84fce9248fe6ca652af6c3615607fc8973bd917bfdbd2abbceca937fe4c629c0cdc89fa0a5c846b5e2d8a4b44dabf7feb201deb382de0ccc5b
+DIST firefox-140.3.0esr-ach.xpi 294158 BLAKE2B
e5c9768867bc893f7588813f697f67f369fe77d57d0f678febe0ab597dee8efb8b7b3f2e57d4eac054e7981a96c9c9b7fb988553c547427146ab0397e71041a1
SHA512
d4a3999f3bdc97ceef042cfd60dfffea790ac6c4fbfea441aaf054f21c8f3177ba7f5d9d2ad26a04b28d59ce9f86326d92853909772f90f76e863ff0e54bd79c
+DIST firefox-140.3.0esr-af.xpi 266428 BLAKE2B
b8bae7f55fe4e578e82fd1fe979a3775e8697010d62db2fccb81f427b4eec691259968c9bcb042ee90b43dba2cb6d98967def6d60181352b8e98803f871b23e4
SHA512
7ef5fa6a87a6cb3891e1e227b291bcb981afb77974d67c6b03d9f47116a05833d2adbf6192fd1bdcc7360d5edc97043fb3ecc74042da2f40af1787b693cbccc5
+DIST firefox-140.3.0esr-an.xpi 332095 BLAKE2B
14e168da5558662ceebea0c362a3e508280b71ea2b389ad6b3bd7d8344c9c7ffec26d6d8f36e93b39d53c05c2ec9f58b77e0c74951a47a28a4f3f40ba8903c53
SHA512
30e6ef2881df1f10c9b6a5c12624c42f8671a99fda1d4b257af22bced7baa006d7dac73cfc0dd5ff9e97a6edf88191410b2ac7e29de99c04899abe68f7ab6a76
+DIST firefox-140.3.0esr-ar.xpi 444596 BLAKE2B
d874a2f2e6b721825512eef9a6033ec1831a9b6ad50de3399bf81fdf82838d4869b1b08064da9ecee2910f6d8e52347494024ddd3a783b08dd23012e7462ee4f
SHA512
9f37232c0f14e7bd1894ddc6537f7de1fe0676478887c0c525c625257a996d5bade54ad6eed25a9f777027cad65a2fc0719ae96ed27f708c58bf819e5f0ffcf1
+DIST firefox-140.3.0esr-ast.xpi 312002 BLAKE2B
e278f0fdf418363d14eb67504b94540607c9d3a94ad8db4bd5045b7987a70a31645114ad36b6b5f1c518b95781c292ece5063af8ff43289b199c66306a199a2e
SHA512
96578c48a772fcae8e343dcba7f34c6e3ba621e8844bf370e7e843b906e31840c2a81391620a8330032c7ef5e9a7b80520a8b3360c4e6645f64be486bf605c55
+DIST firefox-140.3.0esr-az.xpi 318190 BLAKE2B
b05291cb54deacdf55b4c7dff8552c1282c95ef34b77fe912c773b2ae1821e5cc2062de7c4b066259f9f6379b87055b88476dc5d10c660895e7e96df85b18d3a
SHA512
912183e6ec079fa64ed014f68fcfb96f0aabf03d04524810b7f6cd3dd41699e79b9a8b1f6eb8a9f4edac4cf1f78328bf02bb0916425cc5ba3cd7cbd1a5114df2
+DIST firefox-140.3.0esr-be.xpi 520752 BLAKE2B
c86cc56f6296c5b8442cf8f14814243749207eb582a3f90c89243a72f8e24b457c97227e00fe24c0b6fb5c0647cf05fd4b8e198a8717dd4110880b1b363a18bb
SHA512
751cda98f04472979929c408ae6248edb9ef0243968ff9210bc85100f0223c55b58fbecd7588c9608250cc49fd8cd9a275a3d77810a84fe4e15b7ea4f5a288cd
+DIST firefox-140.3.0esr-bg.xpi 454654 BLAKE2B
b700212b93d8467cb14e1ad88860bb6e9d09ed648db163c53f75d5550fd535afbcbe2bfdeeb1b89b45185dd09f55c383506c399521acfd18e8b13666bfaca64a
SHA512
52eaca46d471d918b8a59f7ef384137bed7cf61a43be03a035ff26abaae35c87c5f687543cab2485b5cdb5463ed703b355fbb447f0dacf56ae726041bcf277c3
+DIST firefox-140.3.0esr-bn.xpi 413151 BLAKE2B
823df27958b33f32e3fa4f38cc2f8330057fceeff1ad4d7a2b71f1c06e076739c272e8b02e6a2a8ec4d20e901786288d1f39574dd89b608a493d64b4aa086b79
SHA512
c64715b02c4de0cd35088a299a23e7bea3561c52ddc34d23797b113d8acbab894afd827daf1bc5371e43beafacb72763b718590b185b838e1ef461e30ae10ab6
+DIST firefox-140.3.0esr-br.xpi 395184 BLAKE2B
9ddf669637d5f83296d870d97568b48bba0b9e7ed98467de83af566d93c3ce928b24c1b6e93e6287b6b1f49d683933178f1f640672893f3d85a97f459f2ff06c
SHA512
c2ebc2e731f90e2d62a40996f9d6886faf42e2286cb9b85c7a46be4ecd22dd4df4f39fab6fae0393f948998d7ce72717dcc5394923afd76f199f5328b94804a9
+DIST firefox-140.3.0esr-bs.xpi 446850 BLAKE2B
b73586e16ecc3c394ebe68059a90dd8649ea41c6365cb76331736b81a523ea6386c617b381ea9df000ff1f32380d3b53429eae2c8c6c8df07f633e336cbfd000
SHA512
476a3064d199da9eef3d8bdd3df7158b34a383308b76c7bf79c9631e28f08420a2bd411abb174a721e37d5c0fc881ec4351608e1a3863d5ec1d6ed9b81986f6f
+DIST firefox-140.3.0esr-ca-valencia.xpi 357686 BLAKE2B
a9ba5366cacf3576e7ea04f4abb5cf69d1a5ae460d3ab356a8ff0a85e4f5589db180f54228f1edd6e9134adf8294945d2d070ff7596747c34e6a3c2c8caf9ae0
SHA512
403574d4423bc5bb06133130e73741ea88c1d20f6993dd7149dd4fbed26e84cd747127b747e0f99f47c1310c6dde5451fcd04aae2ae9ae3231aaf20ab5d1a2fe
+DIST firefox-140.3.0esr-ca.xpi 401494 BLAKE2B
f2fdd8acf026d21c2a18d3f573e09730fe53c100ffbbd01e96496c2865168232af688958526524fce94c5c66dfd0cdcb4c0f251ec559f2a42c3c08a8a8f41a4b
SHA512
a09ebd82642e36056d0fc1c15de4b19693d352c626fb2c093c9d80e36561008d6bbda41b5ecb553347cf8bae0801200fe79a5aa99a25bdc54256ef0f9148c963
+DIST firefox-140.3.0esr-cak.xpi 390633 BLAKE2B
1443855079010ed90dd5aa3c535cfc6d3efd98f710ee6b6f2cd155f31c8cfcd3263afa8e50199db5548408e8dd7b9e4331dc72fa16d50525f0472efa52ed19bb
SHA512
9c59add22a5de11434d4d56a4685286cee8b54e7f27ff36452f858e67722ec71ab92b6d0b3b8c91556963afba13c548d94d808941bc73a65c8f3d3374346ed7f
+DIST firefox-140.3.0esr-cs.xpi 475500 BLAKE2B
c4750740ba8546f9acc690c54ea118414dfdc7325409a4f96ca70d381fb2b01833e227d6087317f572c25dfae402fa7ab2304371a1275ebe09f479549912d004
SHA512
682eb8190802207c5c3a6b828ae521547f29565e8cb92c92c8da8f65f31c3b63ccdba6d40a93ba19a50d272e152155cf97126d2a6dc4f93af9672a82af178f27
+DIST firefox-140.3.0esr-cy.xpi 441562 BLAKE2B
18d4a27f2923764b20ae6fc6efcfcb845faac60d4ed34f8994e02837769ed1fe2c3dc931cd9cd160e95f4439f5bd0b86e7e61c119553aab88b11d50ecc636f0b
SHA512
e7be74473b3d1d48fa2b36ecaccb7b20b7c89db0d9f103af2a9a0f66c700ab4b8538ed1f674a6a2f76a8372c29e466c98e2cb598b3e8a705c0abd21839925e59
+DIST firefox-140.3.0esr-da.xpi 430732 BLAKE2B
1368075f9b1a27a6c7f07ba89f3625863c3fd7d5810fab8af8075ae9a163a382544bb2c482db6ac8344402ebfeb3590648f81218f6767d3b1447ace8b9f50217
SHA512
369f227415cf8469e74aed11dd26b76eac7471c41e590c39bf0a6cbb0a6baa8e0bb83899d3a519c805c655c22b6a12fa2a98d8f18e3fd927d7aed08e9f82ac31
+DIST firefox-140.3.0esr-de.xpi 452249 BLAKE2B
c2e4ac7fd58c3077beda5f4015b1e2599eeae7bd0d0fffa23ad73e69f57a3446e057012c239eb148052d3271e32d381082cebe12757c431cd4b924e13906e4c0
SHA512
6167253b1d236bacde90ecf3704574096ee230cae05cb57bfbe07f01a3d31906701d00496d6e490caeb8b3dedd65c0f802989c825addd5febe3964d1e91c86e2
+DIST firefox-140.3.0esr-dsb.xpi 465663 BLAKE2B
65bc83415d6d07427b0aca773e625476fe80f536a5eafb366337961d0c403d9cb5b85962d94fc274873a0b7e75052052eda236042b478feb81912b7a4e90b72a
SHA512
09e43dfbb4a878591ce333f80457ae2b0d85488224ea7a794f2c306e131e4ff2c488dae47573a68385dba43317924efb6871b88d15d80183a09aa3ba4bac87a4
+DIST firefox-140.3.0esr-el.xpi 536368 BLAKE2B
36bd98d2116168c9bb9d413c32c89ed2d6ea1f4fa2877076d0a4f443ab34252e088081c468c1281b416f1e7ddbc370a64d511984c3cd1e0e1f490cf83172f632
SHA512
fffd509746b20a6ddcdc53fa23452e9dd761192b535f3fb041a363d00ef0cfd2655285e8d2414e8f18e5d083c327d8743a7dc3358bdb473cd309d5c4dff07ff9
+DIST firefox-140.3.0esr-en-CA.xpi 410696 BLAKE2B
40746617461c5667546cb2062444b8b2cb9ecbb820383f510b3e5d1cf2b42b24a253e77eb0167014bbce950e2574e595ef0f57f989a9a66d7d1b89bf1316ce47
SHA512
025691532e851051a27454f8f410630069abdf0d2aa59f40d353f6d7787b02650b8658e7eeb881b30bd996a81baec9179c019dbc6df70aae840c78d558964668
+DIST firefox-140.3.0esr-en-GB.xpi 411006 BLAKE2B
581c694d9e39cd53dd5cd94b12311abd3b37d6091a71c3eeab05a9aec7f651d4f7d36af674edbc1c4cabe1e8614d8da09f88e8e061bde82ac8dfd79de85ae61a
SHA512
915c9d8fc80b890b158d87c70726c4072c593c47b62f23d06c5f19e79382360d5c5a40812f500d9207389f30f4bffcc62b8b5f804ee41b6e5061d682fb3e7ca9
+DIST firefox-140.3.0esr-eo.xpi 433073 BLAKE2B
bd7ba00065d9c274385c80cbe5310bcedd7576d84827ecd19fe12f9da59ba84ab6f9cdda3c37b25e7c58bbce6b68c8ce64ba80aeffb3a98056855f3cbf5e3e33
SHA512
a2459c54b7e9e8912066d499138af6b7a6888c8d874ce185032d70667ecdd2e46744b041d95ca4031c4a844a338e9669fb8c47428ae0968c689649bcf56e3ed2
+DIST firefox-140.3.0esr-es-AR.xpi 445122 BLAKE2B
3100c6d65d520eadc9c6870c10c2ab73acd084ff96aa041fa70a7ebc8527fd699368b061314c5e27e89bc710bd9f5cabf4c3bab6af901c12b34e8f3550718e15
SHA512
7f9c8749475f1b15ca2a3e6386237e2a36bafd7e727de86bbf76888a92bda29730a9395071ee923d3a34914277c55c849ea2d8f00b30b98ceb1825f977105585
+DIST firefox-140.3.0esr-es-CL.xpi 445900 BLAKE2B
b72f16bb4b3d6f92fd52f87ea9c86f3a9c03a4a15c61ffa1b87c77a9a2f2753a04db11c0b1688664fa6a56f38589921ba02e795011a3aeccc6cd7c858e5488aa
SHA512
b94a4ea4ffbd9c0274e1a0282c1cb717f0db11fbf7ca96870398849bceb70e425e58a696d4b9c77ee533a178a19630002d7e5eac88e71a2d198579c38eb8cbff
+DIST firefox-140.3.0esr-es-ES.xpi 446604 BLAKE2B
883a88814fcf1b23525b9a486769ddee0f16f7a724386e8d446c9b2a752298fca8851fd543bfb8bf7b0ca9b04c2bc9126da2c74fccf44de2d617bfa6f8b851a0
SHA512
fa58d89f4cb683d2de2be320e4e674585d5b3297a37051ee5a17f699c0f929beb2a2273ae1a6a5cd52e7955520d3ca5e1286ec96eb6c21fae93d8f12b0cb37a4
+DIST firefox-140.3.0esr-es-MX.xpi 436929 BLAKE2B
2576a0d29878d7689ed0b5c64fd0984af811509f39aad6985dfa4a212625fec2ed3ee0057ae4b2e0a659b9f79fc862f0b74e954322a5b6c8c54ab37456edfe08
SHA512
5a36cbb380ae2411aa0489e9ea2ad7dd2e191d3e0f36231f05f9ac4160d3a3ab7cf280872b9294cac3bb884082f372422166f80b4534536a440d7daab9b9e50f
+DIST firefox-140.3.0esr-et.xpi 359104 BLAKE2B
63a2b47643d3ea853b69fbd99858598f5eb4189b426bd5521ccd5f3ce65915eb1dcf7e6cad5e95f7fcdb802ddb68e3bc7cdd860fa5a59caab8e9893816b812b7
SHA512
3070de7228c1fd0795ef212cd4bf239143533182288b3fe73da6edae8fbf8f33a91b566cfd1ef758b4c2c09eb10929691a59ab18da1135b7d911eb3689bce0e2
+DIST firefox-140.3.0esr-eu.xpi 416441 BLAKE2B
e42ea0ad31250dc4329862f60cf8bd6c8d7be95006fc83c2b103022e2ebde7c6472bf259ef71def37c52689d8168d96873a70776226ffcf548074e9bb3e5207d
SHA512
bb65c97276dcbfe2b518bb962d6a9e517568dd568b68b7a2d8d40b26010e995e42bd5f7b27e1e6feb1add154e4c9d587c594302834de7de2b922b477ba6b041f
+DIST firefox-140.3.0esr-fa.xpi 421327 BLAKE2B
2636810cc7ae50aa400c3ff7d64a8874a5e6463b25a4ab65513aad427f8c7d2b16f524c8284cd871f12de9c9bb05747cb65fefe75897d0a9a58a0f9ad21b4892
SHA512
4310db90aca3effd3312bbf7fb7fb33ab6d1826379e9807eb46e104dc3d4183bf4c8ad98ab893a73d877b37019164e8b9d0e6485ef6c412173af636af658bdaa
+DIST firefox-140.3.0esr-ff.xpi 309976 BLAKE2B
fdbb0524fe96a06a78861a99973feca4122291f8de67549fec885eb8355bade9d0121caec5d75bee0ceb86393260960dd72eff08ecd1787b0d23aa29325e9ff1
SHA512
09a934e49c433b8f2b47f8064506e568d4f88d4f11da0a0e4d6c86f2027254ebe9f4e2f41b520a4c4af6ab4bebdd0a046d08e8c1863a3b87feedaaa79397b4c2
+DIST firefox-140.3.0esr-fi.xpi 429729 BLAKE2B
153e521eaa134e87fa72c3cf00bdd2daf1c7206053e4e0f85b40d599e4d4e86d81146e65c1af03cbe546b42b81fa0dddb578f404ba342ffbf0f423142bf6beba
SHA512
4044aea681cd84ea6d6e9fc445329fbd5dc05dad35383cdf4578b6a26268cd091cc89749853e9c318f65187bf415cfbaa26f57db3c98b085eb377aacfbbaa3fc
+DIST firefox-140.3.0esr-fr.xpi 458052 BLAKE2B
7e3988772cb4ba8cfccc44adb8cc45ad554387321c77dfd79e6cb8105b58f080ebdfee90880f3b3965837adbc0019f5994c90204079b922a8ef28b8cb2a50b65
SHA512
70301316a12bdbed748213727144ac7e7f48bcedd528c9fdcad4136f411302dbc6573b17d165fc02969a76e78c3adcfd18a9e5c40c358c95cfca2414d79dd366
+DIST firefox-140.3.0esr-fur.xpi 451393 BLAKE2B
7bb15877746d41e128178eb768e1e53c8749b2e70880054d074311119ab981cf91e5509061ba6b86eeab8e17f6b547a22b898e0da0b67a9e4f00a84765a875bd
SHA512
d21e91e7234b2a147d6fc6b4fe24de802b32989fe59495acdc2f2370b928882183b17a7b0081cc6cc26317e2c2feb341efd92556bf0f6d73fdcd6e43b7f9dbac
+DIST firefox-140.3.0esr-fy-NL.xpi 441752 BLAKE2B
546d4fc57f2f4e02a60c6db23f9593178c857cc8dcdfcfa3cd27746851855a41fd024a8e02996ec079ad5045c0057d1888ab9f954db75ccc5cff48f29666d790
SHA512
23e57305a29f581172fcb9dc407c273acd9b06c0bb117c1842dbf80bf1672c4377bf1cd8d8420d2ba0505e5b99d3ce270d836620471524bf4914152828705e67
+DIST firefox-140.3.0esr-ga-IE.xpi 315053 BLAKE2B
8950e0f55495b43b351f44e823401aee81868a829f523e4ec85039d3b9a0a9a9d4524cf39c4d82a8d61627b22d17363d5135b675fbc48d081b5f5bbe6b6f345a
SHA512
da0c78a408139f5c17e9705d2bd71f89353f9efb0ad1752a85febe131ea205a4eaf60513d328fffcbedb301e672a93ba5b2c2d9531abcec975134e9bbdb8096c
+DIST firefox-140.3.0esr-gd.xpi 399225 BLAKE2B
ae2d85b5514dfcde737874cbc0d049e17168df1dcba6eb691efc341783d3afbb7ac0b25b74e4d95ca88f04d000acfb3540278092ad62cf4640c3e6ad16f30d62
SHA512
b0e5e77a7e98c2d10d3fa6d4ac0d9044dd85f55030300b49d6eae14905100e1e73caca453316fcdf0e897d7e2f58df68d2b7fba8a6da0b5ae0cb941d29e62be9
+DIST firefox-140.3.0esr-gl.xpi 442556 BLAKE2B
091418b30a628321e8097d01b17d32dec51af53ab0ca606bcd4a676a6d7baedfa4cde9fbf7d1fb961a68e74e2ed38f97ae79ccc974a9a3322c97eaf637ef3fdb
SHA512
c625e92aae13ec445626b4c941cd01eebf6e0c4c654dd56902e92ed8bf5a1470ee2d0a6a814dd1d8e6475a915deabb9f8190e2b809dadd813369d8f089ca34a5
+DIST firefox-140.3.0esr-gn.xpi 450644 BLAKE2B
15da30ac632a6cf35f7a895aad2be7f1d58d93bccd1d553e62dfd9d1a3f3ba6881d5efb06dbbd2ebb01fb8063c5054787f69db9868fed6ac3c40459f6e83057b
SHA512
6cd9c1a8d1cf485960633d56d355d44ef84508457495751509aa2b86a1af2b5fd9c8d1580f6a5132481de6b4ea6631dfd77dfd6cb414ba86dc1a8db45a5b4f54
+DIST firefox-140.3.0esr-gu-IN.xpi 358761 BLAKE2B
cc3d3cea5acd68fda494d64f51cdce4b226a5a0f36d12d7e121690cb1ae9453483a0e57a18860e83c36a245ee149dc9537b580f859443fd0ecce23dd47df04bf
SHA512
9ff92dd99454fc295acd38d72272fb777c4c6abcfa255997886c4fb3fe0f0c88083b3117c33da4eda753609c9f45577682ae30877968b60752f0ace2054eba1d
+DIST firefox-140.3.0esr-he.xpi 444491 BLAKE2B
e508ed97c4743592ae8370d0fbab6d415cea339e27d2a1c86bdd7ac345c9db4ae8559b747716b6f8fd8ca065e26be8185fbbce27a018520085c4af14a190868e
SHA512
28b83594bd4159a18587666e731ec3637547daaaef3f838e02ebc1f31e5dd3acc09cedcd7e76fbc44cec1cfcdd419e51473911abba607e618aafd6c36ceafd5b
+DIST firefox-140.3.0esr-hi-IN.xpi 377243 BLAKE2B
64e7b1b2ad5fce8d63385cd0bb534240cfda81a42a6ee6294f7c8a07093d84e5b041c62b13217e56f07d28302392207eb779f846f91a1903eca55ebc85034af3
SHA512
6626ea3f25088da2c38fcb1529995ae36f48f0e50bb7235138f11e9bbea547a4fbeb88022bb9e8cd3dfbe6b44b02b432e95aa9c1daba4298a69efd37df3c20e8
+DIST firefox-140.3.0esr-hr.xpi 437469 BLAKE2B
a87b293bd46dcd0543ad3cf135c065b96e42243006641b6e8e217509f4a8911cbdc2559419ce854bb17d493f35a8827c358461dd72ce0b7fb5d3deb654cf5b08
SHA512
c68000b7aed31fb8a5463a255255f19322503d5bf5f5b309e4aced170836ec09f1cb7f19573845946db4be87dbb721a47b27d32e2070c2e09f64de99947c0689
+DIST firefox-140.3.0esr-hsb.xpi 462276 BLAKE2B
b37e07c9720d241a93d3619ecff90a7289be41d501396154a7860d3d246f21e6be506fb92f47b383d9b1d239e3682f3f9febb5da79c0c95bd0e2f192d9ae0e97
SHA512
c15a1eba1d0244359fd2abfa2f1a6aa6b36a46c53f65b2f5cdc24bcd694fbe2762a4692a4c07174899289b4ece1fe40d4a777f7bb7ac6ef28d3de719157e7355
+DIST firefox-140.3.0esr-hu.xpi 465774 BLAKE2B
0cb48a5f34744edb74b896ffcd727b9a360e98f0178efeebd5d47c1b313f9e1ee8c6fa4044c226e8f415ca2327731d03577e5bfdacb29c619089481db3a1b5ca
SHA512
c77ea76c4ee8674549442e3575fb2e233ec3d9bba6ae99d4222b72e6f8da04d8217c81247efcf773c5c41827480f10c577364002fc9dc25b0e2d4a0a179f87c5
+DIST firefox-140.3.0esr-hy-AM.xpi 458368 BLAKE2B
6d2620e17c015e1e0ca8ef3596b0f3b090283a46009a874c12bb82a690307ea434952124a55d9480061959b1ed107d272e80050bac1f09689fe5633a7e406b23
SHA512
90ce2a3974d757a84cdbad6d0660770a1bed38915308827a18b809264e50a790eba294e2f01ef5e72ce01b23978b3bb555d42f264a9dc898c4f02958c6182091
+DIST firefox-140.3.0esr-ia.xpi 429696 BLAKE2B
f5eebb650b10ebda69e4d176cec686f4729baddd0333f8751897f3f657fc33a8b9a17eae3778b33289897dc0cb2e3bb39aa047c3842e64fe847888429b324096
SHA512
9593014a5c82eb79e383bebbbd7aca4e65afde76ffa6bb96e57db07d72b952bdab97eff9318d32d37bace596a2d42062847ea84da0857041c69fb34cbef97e34
+DIST firefox-140.3.0esr-id.xpi 419337 BLAKE2B
606151b3506fb8be0d30a3a54f95e8f0be62923005129beb5906237fd84b258ed41ad6bc072b2e124caa165ed1bd527c870c2aa7d2e7bbc8662d31c27be84c03
SHA512
2d2d398b5ec9f7e407542df13ce56f1ddccbea5c68faddf18ff74aa0676600e670d1a48fc7ef18cb517e97345c6fa2ce0c8ab64f7e76c63362597f49025c2b17
+DIST firefox-140.3.0esr-is.xpi 432240 BLAKE2B
368f938c80be878d7a432010591ccd2b0f5874518b977c1ea2a4e15d79bf17aa99856851aae4ee181fc1f4e6848e3a016fbcd6e601355f3a63867a59a034e4d1
SHA512
b292e644bb767619f6165bc17538e3bb3ae23f34db6635f0c47c5a5a360484c6062bea08f9f3425799226ed4cbcd8e917847bd70da855dffb8fd704dca98756a
+DIST firefox-140.3.0esr-it.xpi 440509 BLAKE2B
fa9ed4f60d9a675335ce941e9c00753aea6874b53a9d21e2d75ef4509872737346653de9fc8cc9c37b83dd16096803ad605ec67dde1e08490baf78060e114ec4
SHA512
01c550c9a323cd7124919cbc73a0c85ba0521deaf1e4e3d83b7741bb0a14e21b9306d7ff326c07341251c600f28bfa0fb4a3dc38f8082cac3d838fab9ff83724
+DIST firefox-140.3.0esr-ja.xpi 480922 BLAKE2B
e21965486ce64fbc951824d9824d98b95e4b75a895a7d3c8df1ed83a090302b65ef89c9040230895dcd810a1aace6530693aea92cbe8c76f8f52ee46472f035c
SHA512
ca1bc8b3b684d59bad9daca075ef1c78cd7cf5a3d670eb220e18ba9c7e38b7a3e3d323eac7b02d9c6aedf9996c967ac899121a2b308cb9f0c5303f09ee9a694b
+DIST firefox-140.3.0esr-ka.xpi 494450 BLAKE2B
096154bfd9bda3b0cdc1dce57c637c4cd145bf6658abbd2a2b490b20a62f02b81c9fe103e7d7a2e4894dd61c29397c5ee6e4c0c8027b48e868d8cb743e7068dc
SHA512
84daca641126a6ce6725ef2cbe0c3c1a96af1e88d529e9d1d9aaafc014b9dd80ad5b77f0f816db6b9bfab2ee1567d65efa32d29f83eef5ec3a5fdd22bf94295f
+DIST firefox-140.3.0esr-kab.xpi 421077 BLAKE2B
3e3ae635cba940057147f75be4cbed7de6555e5eee5988af1b88f4b493650e2c11338a09540bbcaad3ece8c463e28e299d2e010c9f8794ef2a948d295e9af88e
SHA512
a3d4874076b391cf7026ffe5a12d8a96f45dd24b5a1da086bc4f0b68da3bccc813cf48ec7b5b0692e9a9e609f96b31af13bbd0f9d3585d85a8ee095fa9826a71
+DIST firefox-140.3.0esr-kk.xpi 505973 BLAKE2B
dea6d0e5036ba6f8d36c74e7b9cd359136d4196f7260e3f5ea45e3621e4051a8109cad289e7a8ffca24d5030577468d0b4a13a6b7ad712efbf2c0f1ea917dbdc
SHA512
9775553cf632acffeb35836ad07afa14556d0ff121a4a00c0b9fe635423f510741f3913eb4edcbd520e1759b6f5c777150a35ef810d1c271317bd592cd69aaa8
+DIST firefox-140.3.0esr-km.xpi 348560 BLAKE2B
c019c229f636d44baf3a543e77ddfb831c735716972fb92ecb97648dc6a47b492971573347dcff314489b25edb1859d524e42aeaff1bb690095ac30e578fc2fc
SHA512
e84404620b1f0f8c97faf03c52a69ec2d0442f94c2b404a60d573fd7e59598ff30f85c9050f68e7472570c1c1d874d31c19d71768b8b60038b03bab93dec7585
+DIST firefox-140.3.0esr-kn.xpi 331571 BLAKE2B
54e99f370e6c38ebdb25cd3b6f8fd98e2a72f31dd85d38f3ce4a889d9fb9ccd9158a8d0b4b940ecbf5d2a5f9413b544983bbbf0ae2b2197d1090435eb7d6499e
SHA512
58ee7d70e529e61a309369a80c7f55810751ae833492f56a471cf0b336ea71530b34ffa6179c365a54445eb2fb5013d1e309ae17585ef4316494741be9138743
+DIST firefox-140.3.0esr-ko.xpi 467182 BLAKE2B
7bd2f2e2338d2fd5cf375ba199f184188cb6a3b33120b2a6bc47d4f7f234eae0cc6f8d067e4106a7ac5a5256e54528a05e48d872afdb0e591efc2e6aa06fde41
SHA512
097cadf98c5a5123c9e21d1076a2f60eb1a6778585c02284b46e3b47740edb0d45fa8d128bb3e21798de5b0bd98f081fa3589e3f571a865ec7db4ab7b9cc3987
+DIST firefox-140.3.0esr-lij.xpi 319073 BLAKE2B
f27d91ce2bd7116e948bdd5cde28cde52526f5dbe5a334f336e63d7eb474420ff513cf970cbbeea8c18df50c2c24a684fdde7262834185f56de1f21e600aa50d
SHA512
86f22b13ba2bbe109b058b5763cf675810f37eb8de1164a9833d394323b8ee234699cd446052f55e14709b07581fad1d5c259933dc79aec9d2237864152939d8
+DIST firefox-140.3.0esr-lt.xpi 379748 BLAKE2B
b803a2017b1a450d760921f193f7764ea76637295b556126df919a2eeb53e4ac158ad550bb202dd17a05cf28995f5eab58b47f61b1a4567028f198be4e963e9a
SHA512
5b94844c0d7f5db0fabc12c9247beea8a3a648d028ec4ec920afc5cc1d6d84965a7101799b92b1b3bc85378bcb2219e89d2ef96b5fbbe06aed7e8712062ae942
+DIST firefox-140.3.0esr-lv.xpi 386111 BLAKE2B
2ccd38cf9e7d9d71628635a71297afb4243fbe22ce3167635dbfd1aa3f55a9fe93940cbac168b7a8f62a9a9962db5ac3becd7dae69ef534fa47d929f677b0361
SHA512
93a727092b74f4c1eecdd18398fa694a37232a739f89a1bdfb76f93c279afefdcc4aa158148c74f823f012377d49c20ed4fe44c5fb2a9679a6b9c2eac5a3b828
+DIST firefox-140.3.0esr-mk.xpi 316629 BLAKE2B
ebf549a038a85349212500f7671eb5b6b0a92c496704b742cfbe6e6b7b7929795c37fe1d294b2f6336a5622a7b97ff792430ec705368d345dc97abdad4532645
SHA512
15da32da7a3837e8f3911ce52c6d2394d5a4b95355b470ce7f2f55291300c37a3c9cb53e1f7f723fefadbdead16c3e5f5a06a9662511b7758c147cdbb5d43700
+DIST firefox-140.3.0esr-mr.xpi 356038 BLAKE2B
984e2dd072218bfa5c7ca85a02eb952a93d56bcfd289deba6a8a5cd1d7a1e787fe0b02e0d26e3c140b0a0bc2b4617e72d3b5ca190a69a3c6d8b745e5deee16f3
SHA512
d56e62713eb2cbe01022a8cf4db9406be822bf802794c0f7d9424ebf9ac30ced84ea6babac601fd2f1f808f76e1bd017484ebda60d56cdbe1dc0503bc98ef4e8
+DIST firefox-140.3.0esr-ms.xpi 295170 BLAKE2B
745855709f57346fec3abca861afd64b0e1047a76873eae4a78cb32538ac6865c2ee24cac5bcd4a4983eb5581ce52e3396f9b874cbd7bb38476935c034b01759
SHA512
e97bdcd71943213525596cad242584cfcf3821d18eba4d01ccc125ae03c5fbf3ebafe53535039ac7b9e4cf36090034f9df60b0299dffb3da7bd6a46f7817959c
+DIST firefox-140.3.0esr-my.xpi 342823 BLAKE2B
f7275e6e217f7dd7b8bf4708e266bee4e783b5f5481a270f8f6ae3dd59a38551dce45ead8e0b19231da1a61797d7585b1eec50973dca3e1726f61a89f3da349b
SHA512
8b4b87f7ebfb46576ac8fddce8cb17ea979af74feacdea70713a21fc46f5db3d4fe54e54b9183c31823e06ffaf25f20a5c0e80d5012a9dd95a03d5c615e0b608
+DIST firefox-140.3.0esr-nb-NO.xpi 428929 BLAKE2B
1af4d2d74e68c1908652d948d003296c0cbb4e15629aa7848a0e31ed77dcea4c99f15c264d767a6e60f72ec33515678f214b7d0f0b4a9b50db88c58aaddbeccf
SHA512
0fc475b1af6203f1d32f727d5bf0714564ee40adbe39193e6615b6c137e8ec5df57391a6b583fbbca347525d618baf250235373824f23f0df5a880fe6521551b
+DIST firefox-140.3.0esr-ne-NP.xpi 348798 BLAKE2B
6035905004bc9ce1a2ff3fb5e75bd85eda83f93168646ac9872f893217d76025ad93eb8f535ab17742dd1dca8dc31b62dfc0c7338831767725750fc0913c2dc4
SHA512
21ca1d860c0f253c07b06a721c2a8d1bdad4b15919618356e2b39ad3061d1b3f51b95eb2dbef988464d50ba3c665cfaafbeb91964ff4ece29c9a903c549b31cc
+DIST firefox-140.3.0esr-nl.xpi 435794 BLAKE2B
cbc87c00f6892b34b48e078b0e96dc3876ec7767a3ef165f49b0e10cad3b60a0314fd1512963bf00e9c667a09c54fd4c96577b117f4dc790160d996493b51086
SHA512
2f2b66235e2f5e1e4fa38503935d9d4e062b75dfc633992f650ecec1e45d406f429c25fd0eca8893093d55fbbca0146a15c6ef858407f9a9293349bdaa361891
+DIST firefox-140.3.0esr-nn-NO.xpi 431815 BLAKE2B
e838744a623b242df75db8a2079ee309699ebccfc2c53c403348c201faf6196e3e8d1527d5ceca2486a4580fe942080bdbf78961b75f7fb6d95eb5211c96a82c
SHA512
63e8947d008721857c812cda1b883ab2a7e54c6e40aa985d4843c0d9daa9bdadb519124ffd507156509dc0c736c31b8b7298a75d333b51f146d8f7fc8171c297
+DIST firefox-140.3.0esr-oc.xpi 410730 BLAKE2B
705643cd3f4c3af13ea80cc4a9f1a86b19c5480c8c0fdbde9e76adccfd6942b9a60f099454779c331c6f1c4cf57f3bc739218da20d0fee979aa1943787166543
SHA512
468652de3c0748875b0898a7ff111f42e6c66f1f95c700c7518716fa4f21498a9d865965637c463c0dca10645103a09b2610efcabf3fc17f836b14d2e26788a0
+DIST firefox-140.3.0esr-pa-IN.xpi 493394 BLAKE2B
ade9a81614c04cdf06071cab83abfd4e04b8000216172d4903175b434987383c7f18d341c35f78acb255c4cff67cfeb144c524a8b88777de23752315932cd469
SHA512
1108d5251d55056e22c41ef38385b69f44b322d6f822d8cecc8ab5eaf845f83e1cdfff85105aa1ec75f3d7f96afc8a625bfe5c0df226e481abb0a577d12b63db
+DIST firefox-140.3.0esr-pl.xpi 460179 BLAKE2B
cc348c6df2fc25d680b0b4b800bacb9ad87b6f0054a22f4a27fde390a1a8d64a359cc76cc6011f90dd8c85d58f23b0aa2b6f6ac0ed53d11d58374094ac0e4d0e
SHA512
2554bf18e8759a2fade2f0353f265907e196807d2b59b79ffb3bf2dd456bccdd433d43bf02ecf662eba49d5f1b960525825ac936809b6ab29f4fe6cbf2dd8c0b
+DIST firefox-140.3.0esr-pt-BR.xpi 440312 BLAKE2B
2e1c7639c47c426ba0f1cce87b53d23ecf14d6612d4c16f4515b96ef0546846d93f6c67a9a4fa4017f2b80fc88dc32a0c5d8e54238dfb3d0761fafa91b399440
SHA512
79792d5efc428b2a12f186aa967ef0d31684dccee3e030390ee079e8da5a3ce529bc822363748f25ea029643c6f6b4238b5dc6c505ea1767e25b7f5ed8638c5b
+DIST firefox-140.3.0esr-pt-PT.xpi 446032 BLAKE2B
a14824b41d4836ebe1c0313a479ed356c7a8a525274565a63f7003845669c283b22478d038942cbe74a6558d06c6832df1b8092072800ae4b673c724e3472222
SHA512
b722d64f79d7c8bd621b0cf7f697aba5f13ebd664687d25a31ec25deb4afc71c3452d96685e310449815e83586aacd664197d0e7c5255baf1d337d59798ee3c0
+DIST firefox-140.3.0esr-rm.xpi 436304 BLAKE2B
7ed1b0cd5b55c53550173f4b4c91fe16ba102c75eb3b901d7b3b16953e53679bd5d78008c398edc6fed992472660c5ec121f6762e600bb679e4188c148060a51
SHA512
d4c3792443d0f0f040d871484fa6e55bbe456ed8b479e37966f8bbc46f2b16c044adfb8d8f80278a5bca15caa3f7e45831c7c6ae50b43c1d6fa7127173801414
+DIST firefox-140.3.0esr-ro.xpi 452385 BLAKE2B
9bf53ca19783e2837c785e0eff31036943fc1ed2f972bee821bd3809beea095f82aa297aae7c57ae18ff6098e74349eebda7e72f892f582ce216b740157eb55a
SHA512
754b7087d3c152c2441e992b704684eac3ec4cffb5dbaeaa7ac82d25764613638b61fad39f987df252dc3dfb6c86cace1164140f215757eecf4217e3042780f3
+DIST firefox-140.3.0esr-ru.xpi 524710 BLAKE2B
08e23059e9cc58b2b58de754a7cb2eb8f1e0f7152e300853dd5438963890f59efe8d3487343249bbb556c41d85c7d2e5b8ee9341deaab11c516246cab0d3278f
SHA512
efdd6f17f878e16a2b2514b7c95b6279b4a7941140920c48d35b872edccbff682b3506df44fda66b0c3f225519d7c5d645ded8d916b81a59a387eb8962519b3f
+DIST firefox-140.3.0esr-sc.xpi 408023 BLAKE2B
a7fc9b858f921bd091fd342299b849d7db743434968807835214c512604a40b2da9b48fd22235aba51de707afad8d0cb99c9e4ccf7cfbb6bf0943f7e5aa22b69
SHA512
0573f5d65f49353f8f2b71d342cde25465e7136d57929728c603e7bd71a4e569b86bcce3927a3f13e29510d04c75edf6733d2e2e9eb73ab3404914075f3d5552
+DIST firefox-140.3.0esr-sco.xpi 322446 BLAKE2B
591f72a07c249968f721993464c253235b8dcf754fd2a05b977fd5bc365a6df85624886cd001a27246ee57e26b7b0c61d10da81a74d9d78854e9926a334043cb
SHA512
f6f93efb7571dd7c9b343e546777d35d51ad4ae1b8fc272b1bbd60738ccb6cd35dcff610ae92f3e47d367c80f811f8946d391abb738e25084b66fc240793fc2c
+DIST firefox-140.3.0esr-si.xpi 411394 BLAKE2B
58efe7e1fbef1664d29d726aafeb93865235348bcb520d267d3c7d08222d47009cbee76b97cf183d002949a323462c467ca1723575c2bcb6ff9ed7dd04d779a2
SHA512
2b98a8b99e4f9c0a4e35bf3ea19f10fffb55a3d415881f57ec46a0f509ae8f81a2a6e2378501116cddd22cd58f16fd6eb7af38e720c8c9b52fc425097902faec
+DIST firefox-140.3.0esr-sk.xpi 467563 BLAKE2B
d89be6571383554d2fc90cadcbc9c931142cec73949115a546e8a993f0999d3811f7e6b11b67b9461d52e3b5486b8e86c2454b99f601ec56e77218ca11f559ef
SHA512
66de347072a59ed69261098ec56fd445c7f300978b0a00caa482d618c45a0d23a2489af82df643843203194af57a301f000d6c542961e7145d28d972c64b618c
+DIST firefox-140.3.0esr-skr.xpi 485660 BLAKE2B
ae40ebb8037a2fafa4bb4bf63bbfde359be9ae9bbaa99c2e9ef5a717f1186b0cd89fdf0f69246f75cca7ec4cb434fd7b892dac17d661fb58c0e7106429fe6051
SHA512
077f875701d97bb5c55ca7cbe91f29b46e051720d2189a3a9b20b5795f5ab338300efa6d53e0955f2be0a76e1ecddcfa5bc986b8ab46a42630acec457f2fe6a8
+DIST firefox-140.3.0esr-sl.xpi 440788 BLAKE2B
b640320fdd88a92d12a5d943598339285dd73820058d41ed3e61f9180cdcb2786cedc765fff89f1d3926ada5f24e365c311454452e5128cbc84fe46517b912a9
SHA512
04368b2da7e656ed35a61d0077228f45f9cc32d945b2d83722789a6ab201d82eb4034e2c7ecd78eb8372c949ac6664e3f665cbe99c20e88d1d4ca2d313c7ccce
+DIST firefox-140.3.0esr-son.xpi 272919 BLAKE2B
ebee9d040e5c4634d404aaef4a0e4b1935670a0ecbe226cbaeab34d76c0fa58fecf1ef7b8fb2e2eebdf3db2f27af9de6e11112450719917f06b304f6bcbc05e5
SHA512
6c9ccf615cdd7b45b4dbd6c5ab297bd09eb8b172273e3edadfd62054eb2328582013623500cddd21f74bbadf2844891570208f99c3b9bf2e03a48e30fcd8fd97
+DIST firefox-140.3.0esr-sq.xpi 452858 BLAKE2B
df1afe6595ce03763650f7871f794c26c85b651f1717bf15f966f6cf24805133dc09e2e567b90f833e7128c41edc4cd0dc6c181402e73f53a15261379aab5737
SHA512
f3f0355b49d92b1e2f8e6280a713816a69bc61e57850ebd10187ca3509c6e81d790bbb05730c7b03d94a310b17166a3397dcfaac447d162e10709933b9bebf34
+DIST firefox-140.3.0esr-sr.xpi 453160 BLAKE2B
8d9db2f1a6d620640285431ee9bec9307a4753eb103abcc51223da114e14c54144aa34d6941f24bb3bdad9f44a81496289a77cc6f4fd0c7aa8612a37469a6e9f
SHA512
63492b3c802bafef24e6d01c04bb9118530afae86b4e0d52c719f836a5bb75c6dea5dd3bb7d8618d06690d9a0b8f361ca47812f697b5f69958320d1c95311339
+DIST firefox-140.3.0esr-sv-SE.xpi 435738 BLAKE2B
367d6c07f65d5b9fb1eb8a56374ac45f7d11bb8198dbb51446124387a884aa22e83721951811ad3f663f3b12f18be7c84d2a2f0a4ed7c5898bcc43542edf3f25
SHA512
3c8ae7719ecfda6c6571205abb78d640f79b7bd60e2d6e0a14249e6cde515ec33135b41bc9f34fdb5ca826d4647b3467702f9c1b13d8a8e4a9ec9eff8d3a8a68
+DIST firefox-140.3.0esr-szl.xpi 341475 BLAKE2B
5a3fe1bb8298e8a5be2c1171681f65fa90c6579c2de813bc80eb0a376f987502fab137719935129d890a99a5722d1af0cd8b65953e25eadeb9f1e0fe59f67a15
SHA512
55a28d777fb19edd2ed37b65e64490f1b16b5e2fa685293d7665cd660eb4a4ef59b1407027bfea97c36f1bc1c21ff9018fac65f1bae7d0c4e37e794e4a8cea90
+DIST firefox-140.3.0esr-ta.xpi 337938 BLAKE2B
c08bac9057b9ccb3cc3c05dee16755dd020fffc57592e98334fab31d26d8ea6ce29180b8c2e9a57b1dcff217581e0de175327b4eda4f3025465455f64a50749d
SHA512
6624399d9cad317c63652862ee417509186ff62d418ba2363161dd2a9bcbdf375c0558a1615d359ed8102861384190842d8ca81137b3c535a3afc6ed78af400d
+DIST firefox-140.3.0esr-te.xpi 381990 BLAKE2B
2c69e7244943664c5bcd05fd7ae8ff14c4a133c8f86a7843cc6367e122d242a16c7e8005cd6973f5f7f86c421f73f793529f4237bfb830fc55bfea7eb6b7f244
SHA512
4225d6d5b9a3ec8e9da10caadc3d29a70315f019deefde4fdc2fd63b7c9a5105e8dbf0c7126093a0a2ac4be0c549c75d6e550731902aae6714243afff8283a93
+DIST firefox-140.3.0esr-th.xpi 505273 BLAKE2B
eb00b3c6f6b4bf58c4de9558d0192e3406d990ca8f66b0bc5fcbba5d77d86251893ba5ad104b9c29a5e7d89b89164fc0573d98a06845c53e4f90160ed4466463
SHA512
f98dd8ef6eb9afe93dc4fb55238bb4ad5c06d55828aca597456e2de7b5e47d9af2abd4d9e0978d218636925c7d3aabcca7d27ff79711bce1796f5c9ffeb80a04
+DIST firefox-140.3.0esr-tl.xpi 356440 BLAKE2B
2130aca73a2ced55f7e95724eef3d29e2f3834dae441dd52b575b0334bc59359edf0f9916b1f8e8d4beaf7dce64950cd6b2bd158c471130f169a0caee32b5d81
SHA512
6d59c5bff3bdce81f3424e4d4d6ef1121310c28e82088d03016d0ea47ae14dcaa6bf41b274de14132720c0d6d90727a88cb01939c524045544c6acc1ec7f616a
+DIST firefox-140.3.0esr-tr.xpi 448876 BLAKE2B
d8bcb0ad7af116dd53262e0291a95e59d122bcdd1dc55d3994a932474f3bbae0f900354618909f89c8b961765dfaa05f4ea1a2a9083f49745993769afa9e959f
SHA512
1590132110a5df015f5608ae13696f657f01541d02663676a949119f632bb56ddfae192664659ad0fda82b4510bf3dce36ed5070e4c5b5cf249cccf15c909e0e
+DIST firefox-140.3.0esr-trs.xpi 323799 BLAKE2B
eab9f3d29c493abe0bda5682e08e088a363e811901bb185d9a08eb058054f04fb007ba87e3ec0193455c08d544b10397cdbd44d272c89a62eadc24e0ce2b2e22
SHA512
617de510bcba7a49070833dcd657ebd6e0273bc65ee8dbb4863b9ceeddd0ddc076c641b3111221f8c6387c8fc0b88ebc53fdca7a0e0807bb95354bd5525b5478
+DIST firefox-140.3.0esr-uk.xpi 516298 BLAKE2B
fda84cb9d12e4791ab6343650d8bc72ceaf39e93d3edbfe09e2146ad6faecd67e03120086f78d0d5ca5f0a6d4a87a7084cd38d8c73fd01dc4756c17892c5f204
SHA512
7b063b63bb0b1e71231426f68a7bc00489cd36902baba75f58b0877af4fe9c7cbb3af74df80f2d35c46e3238eb40a0a4b6c924518a64385146af74a5b28b69c3
+DIST firefox-140.3.0esr-ur.xpi 369969 BLAKE2B
e362fede5912043986b60a17efab226c9d826baa6025d545fa7fe2e4785a68f3cddcdab8d18b7548a6c3fd35c9e86b3ed4514d5c4cad10fe990db16042a824ea
SHA512
41cffd7e22d217597d0fe402a89c3cfe3e850578b03e37f64c27d9b7aaefce6b3c132a878a9ccf00ffea2d2ca2f18abdf8e1a1d55c40dc6829d0bf746bc8558c
+DIST firefox-140.3.0esr-uz.xpi 303273 BLAKE2B
68d7fff0fa745cd67a88cec36ff535117fd5027faeec3b3a092eda9ffca49061d5cbef805d03f8f9a530aa78bd39c333155667fe4cab2404fd825631564afa5e
SHA512
d0934b3aa72ae4bce7c188b8ea01388099d5aa197bc2d3289ae6362550be0cd41e1349538e0c3335ddaa0f2ea3cea9668e99eef661f18e7d688d0a987191e323
+DIST firefox-140.3.0esr-vi.xpi 468684 BLAKE2B
a8cfb92960bfa4c62840b8778f7d7c6ce2a997d7733dfdd077be2403bc70b1c9e007bf88a64a7e9e77b81107de9be2f1b297d7ac63037fd4d5142ef35f8b2434
SHA512
9151df2be8f82d6e64eff7bb77dfd009dbbccaaf905e019591b4c70efe2376d7a9b7fadc1600762882eb82f62c5ffc2c447fecd00ede0226ccc2d3ac6b0310a6
+DIST firefox-140.3.0esr-xh.xpi 272584 BLAKE2B
7fe4ea7e481978a1551976a0448da604722f1449a59cdee5d5b080023fbd5d907b9f8b597ebec13280df8b0dbb66cae5ac3bacaedc918d7f5d50c8bfb5e9c774
SHA512
61b017c9d6162767549416d24a195c44c968502b89691ac98da4afe28eac187336bd4da89df238ffe36de1e5a59c103e84b543512b334ef3bae1cad45ba9d7a4
+DIST firefox-140.3.0esr-zh-CN.xpi 460318 BLAKE2B
ae3fc439620d4a9bfb2a536e07c0056ff45145a72f97be5d26e648b5b1d33fa11946afe57ccfd730f8f87138a74c06c5f9795c124c5065a4f7d15ee799e1a575
SHA512
3e1ae976719328205ed5c86d787a25ccd546aa1b877ff86301f682e141277ea7467a3e3ac0835b9e299cce15f6390a4dcd814018d81488692321395c7da849b0
+DIST firefox-140.3.0esr-zh-TW.xpi 463322 BLAKE2B
bb0279737e060046913db76b9d7990bc0012f256d0cbe02a7f38bcbe48416c8576fb29c771c01cd629f17ba69372091151c62afeb0822e2fc12fcd9568fa5b55
SHA512
888d39a834e72651d86315605762231902ad51b3a72bb8fece0144b327d52ced6b8adfb00024af9e9402af74c3c152d82c219cd667cebc201e056d8c3ee57fee
+DIST firefox-140.3.0esr.source.tar.xz 645261332 BLAKE2B
ec39c0409535aed81b90fbe6bedbbae25f2c2962f36317e433688c8699dd6f6d792f260757b46d1e42c40c48d6ebba4bdeb3e3093bc837768cafe794020224ff
SHA512
f2a45352372a7c54bfc3a07652098b55634d111ea88550d33e7e2710d15524d689ee39fbd3b2049643436530e13c237d03e05fb7abd3970c9c18b66e5a84c85a
DIST firefox-140esr-patches-01.tar.xz 11100 BLAKE2B
7a433e80efab15386ea69fdabae0354fb7ca431e0370fd642a864e20b2a6b558a187580513bbdd92b2eea98059eb4ebc5eb2117ebdab810643a842eeb0d82da7
SHA512
50a33f760d57c52a233fe6769931a5c869f72e68af2492fb068f2e3f2a3de5acdf21beea01dc6069911bd00f15c16b26e40e58a9c4f332d3247bbdceac4cde93
+DIST firefox-140esr-patches-02.tar.xz 13080 BLAKE2B
36bab07dedb7eed599cd1e5745ce25ad65a49a518482ab895a2302c3f0b179a289bf641673660a27261390a65482e6450ae70998e7811687e7bca08384431ce6
SHA512
958a95eaa221ae100f4de81d929365486f4d374a326b91d601d1a1eda0171646330474c802c255b4e4959694563de8b02e3464a1520c2a12f65a25ebac629d89
DIST firefox-141-patches-02.tar.xz 11400 BLAKE2B
0986721d628294f2ee9b7b0a417a146418137abfdcda312ececd47ff35d5cfffb098a91e159501100704fe0301481687d2fd24ae76039c384ef41405f21513c7
SHA512
320ed49fbf3edec18de396f7b67a605c01335b8d1634b3a7408437db4b99ea633f50298c111e81218ee33535b344b047e7cfcf7dcc7345004af303eda387536e
DIST firefox-142.0-ach.xpi 294514 BLAKE2B
33b9b09abb247c47e3dd7969d9aaf280e22255fa638515a8ddf2531185d6331bbf53b1f321a6bd7961e8799e802693a3c5cd57db9b59afa9d7d1487c34315268
SHA512
2c5c438e34bd8b1e3a3f2ff532216863d775d0b278a9fe0cbe03bfd0ff8e709537d95328555a021713f1f952d8f5e8ab61242d01c692331d151e3ff8064c1e17
DIST firefox-142.0-af.xpi 267768 BLAKE2B
a9297948c524ee96b7642e61944ea9adb6c1f339f4a341791a3381a48fe522ecb8bf06bddc3f256d0bc06762f98e39c0bf76131722713daad90bd685bd521e74
SHA512
6ca90764821f482cb8fc43b3f06e8bc9b45724d7a4a4d7779053a9fb19b2fcde7ae2b34e5c87a934fb93686427a0b7db03b7a5ce2164f92fffe73c8d258353fa
diff --git a/www-client/firefox/firefox-140.3.0.ebuild
b/www-client/firefox/firefox-140.3.0.ebuild
new file mode 100644
index 000000000000..7bfa18cc22d2
--- /dev/null
+++ b/www-client/firefox/firefox-140.3.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-02.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 19 20 )
+
+# 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=27.0
+WASI_SDK_LLVM_VER=20
+
+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.1
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/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-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ system-icu? ( >=dev-libs/icu-76.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-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
+}