commit: 8c0a8e1a1829535947a234aa18fb716c9b819fb4
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 12 17:30:59 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Nov 12 17:37:57 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c0a8e1a
www-client/firefox: add 140.5.0
- add llvm-21 compatibility,
- update wasi-sdk to 28.0.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 +++
www-client/firefox/firefox-140.5.0.ebuild | 1387 +++++++++++++++++++++++++++++
2 files changed, 1488 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 2e1098860655..62ccbd10b24a 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -201,6 +201,107 @@ DIST firefox-140.4.0esr-xh.xpi 272579 BLAKE2B
672dc72fff8b52d558d86101adebb1d8e9
DIST firefox-140.4.0esr-zh-CN.xpi 460317 BLAKE2B
1e2250c84c42b5cc48bfde84096e36288448bc03ad9c910de8a910b35630c9b33702a311c35aba11d677215c358d8c86b66433f46215239d7e750cc9330c5595
SHA512
74791ad7dc92cf1ff3803b0e08918a341fa5763502847e99dced949031c86221af3fbbc8b7865d5e736ee8944a234f3e0589048f7cf2b7f665df9ac761546f63
DIST firefox-140.4.0esr-zh-TW.xpi 463323 BLAKE2B
e78ceec28b02d7cda0911729e22cdacd171cf53ad1a844bb0d29c3e7e861868f2b8847612e66c365f84be3ddbe69015c372465ba83c936cb9d1ee0276c3a3f4b
SHA512
33116c70803669c7cb0bcdb9ec12d9ae1347c6ed0b846dd2a0f64f3542b6def11b80e4b03cc34d5b6eb79ffcd00804a8b818c99a72959d1e78acfea60a6a2bb0
DIST firefox-140.4.0esr.source.tar.xz 639276460 BLAKE2B
4b4851f65e16363225b5ce8f43a41b9acb930832ce935b20c728e77603c5fb64ca6a292db03ee0ae186968d5514409f1011ccc5972184550b3eab7bef0cd0bf3
SHA512
cfce0bdcf6d4599c7b96bccd9fd1390bfb3645db9276a369a30760ce6819850aaa4251869e6bd3c5d8582ea3728b920762c5f16f7ce12ce151c3e74327b8c811
+DIST firefox-140.5.0esr-ach.xpi 294162 BLAKE2B
c05e4de90bc1bf6ea62a64343ad1dc6fd9134c788c33f60f0fd8927c19b4c51685adb508f06deefcaa00077f178f24f831630eebec7edacf8af68991b637e27a
SHA512
1f9d61ea9f068f63c71b0b63ac8c89c5a00da954d25098ba4c9305b21b910aa7784fbe42b326e58b5bdc2844ddcaba2ecd076c1e487f8a79aa8008e197f93d34
+DIST firefox-140.5.0esr-af.xpi 266427 BLAKE2B
cbc98cc0d10992faa7129e802b7b4ab55902d43ec52f25547ad5bd7f6c1cd5ca3f72fb82b57ce1c24720dfc263db1e3e9d44a6b98667d7dbbde9c4b80ab4a762
SHA512
442132e62aa63ec3616df5747e378a729cbc4b67b21ec075dafb8f980b051958fa70e59d1dc8248eac30c6447ac80015e13002eb583318790a2cd9f0c19835a2
+DIST firefox-140.5.0esr-an.xpi 332087 BLAKE2B
dde5e9b33dd1021171acc4a3d59c45c22d434fa88cc87f7ab0c512fd13db949af399359d9b875c5c950ef622b1d9fb7003747586f0d06c0fab3ae9bee6bd1e90
SHA512
28866be47bdb4792c7749db1c5fc7a689cf0e1064d85934915542b68bee9a61efd7465fe094d7f3b7f81736e60504c36d5109d868e931a2cf1595cfa6fa24ce9
+DIST firefox-140.5.0esr-ar.xpi 444590 BLAKE2B
e0c3f0910029aac7eef8dea2a045b0a648dbe8de56f9dcf6c60516a68d53a3fa6c9d27689bd0e223aa2285e1e7a415a9b4c8f3299557e08c87f2a10acef82214
SHA512
55d756a869ef8431c1bac713acc8ddb64f9b31da9b942a8431b272a4d596d47ed5054b8ea899abe3508935391fcbbf8fca6efd7a98276f39b48ff65ca852f708
+DIST firefox-140.5.0esr-ast.xpi 312007 BLAKE2B
177eefc8183879577a96e346fa3d6d869d6c3555501b641ea60b3bce0ee1afdfe252f33b89a670618f9f38acaaa9eb2d94a4e5ec4e03bf7fed74f0c54e46c185
SHA512
cda270c4a2a82fb5e99a022657c8d1ee8007733ba1c88404af5db6201363771168d4a65bbcf24cd0cb2a78205d96259351f7a5f795d0504f976e840a67fc2fcf
+DIST firefox-140.5.0esr-az.xpi 318186 BLAKE2B
62b0cd50f786dc32897b94d31588bb442b0e2894e39c9a19505a2a9727fab377ea6c48c094a95a14f1def1f65cf817b7106382575b24db1db1378f99fa744362
SHA512
5a7993573b9854c7ba93ea4419b0478fba0134105ecd63ea4a8bef6d9d16264d1242790e37d56c1739188c2fd5273b58af927ec77e777c78fc816d8f350d9b21
+DIST firefox-140.5.0esr-be.xpi 520758 BLAKE2B
b96a496c49d99a312ca835f3c35663e19098ee753a3bb0ce2f8dc16ee2acb89ccf43cef10cb542d36156d8ee6ebbc8f771947b4142b923fd9ad5a4f213d8fd74
SHA512
3d37b65432e366443f6c359c80d89b82e00bd7f56d4124521fd321bd2e9487c9abe6645eb55a316478579dd7230a1a3732d5d215b8d149447ed0f93d75bb7c7c
+DIST firefox-140.5.0esr-bg.xpi 454666 BLAKE2B
511d9e282e0187b080e7ebffcb823c624b717ea47a149e4e498cfe93bcfaca7f4723c712d0e66f637cc77aa0311fada2f4d4bfee9a3a64a4b484df029cc8473b
SHA512
0ce515f081753e8bff2743b6dcba8be28814f5c4baa14b68cb72267c90a4634eb3a9d466a62ea63ffc805d0282580ccae9531faa6478de63e46ae973ea4ee655
+DIST firefox-140.5.0esr-bn.xpi 413153 BLAKE2B
23175cd5ae530eab716f26e5f25d5075ff15daf1bbfa84a4c672a5915d638f8b71c6dfaf61af98dae8612b1c606daf9982a2d0ce879efa20b1827919ec43552d
SHA512
1cc9f18fe3aaa87d04cb6238d319059a4567e762519bab666c5e1eecfb15dd1279bda7e390dce30b5fa2288528d2bf57bfa1b6c2673e680d6705835bab538680
+DIST firefox-140.5.0esr-br.xpi 395177 BLAKE2B
541b5068fe975c073a88c38ace3c8feffc16a56874dc61b41a113f0518bac9cc4410496af1fab06ab437ba0678ceb73f4fcbab8b97bc760b62ef99226319aafa
SHA512
1ad95241af3d3b78b8d8506f366b160e9261fa4f54cb6f4d9ac8835872e51291c1e93bab88672145d9df28f8127e4cfaa7d2fd6d80e86799794a1fef064d9a29
+DIST firefox-140.5.0esr-bs.xpi 446849 BLAKE2B
f4b8fdfa0c821d756e226bfb947a793ba43ee8e1c3f0ef5eac570cdf2e54315205503755acc4789dcf6c3d56406ab6797ab4a1b13027e1113462dd8478c724f7
SHA512
43f9bf7005221658dc42ac95c3793ba33ec4193504efcea67d9d38bd831befe860331d5a64125cd9ed9e3f8441813d93a529288e2f33c3a06de3a0fefbb72474
+DIST firefox-140.5.0esr-ca-valencia.xpi 357678 BLAKE2B
f829b0750b542bd5864808406d9aa8ccd3edd2b68414dc3df21cf310c91812f3c9462db8302540adfe82433f2cd1bfc7ce80b4358a7a479901ae279e6ff37719
SHA512
fb7eaf24360a9573d09dd2e3d0ad40c4155a78400cc763a2b07fbeee997fed4a2cc2866219e69e63d21ea0828d50cb8d97dee21536adc49780a16d03e46fc418
+DIST firefox-140.5.0esr-ca.xpi 401485 BLAKE2B
d53d34f463a9ceb7e7db9115015f510d569be20363ced2726ad43a4cb4c97894752a7f64ade3aa0cd61819bad434ec7e2d93116b28d5de8d452d42e60fc23b84
SHA512
ed65c7b3496e42593f4852099908e6c95757257a6634f597b2e1c7abd871197a7c25f2d625d1c285f7e748c0e559a34b2746b7af1dee22f0e0ee18ca7cecb649
+DIST firefox-140.5.0esr-cak.xpi 390629 BLAKE2B
41716e8fe16476146f117fb875231f7093808134f95b318dd25b81ac3c1ed32424d15f57980502d7553f8f369688568b2dcdb692861d40178fa9105f6e7ad6a9
SHA512
d2ac893f65ca0b5b9585c6736c1110ca70f0f24ef93be36018af541a62e70121d94681d3a5d4cd772c4b3e38d8c31d496ebcaed671887aed79946d86d77d7b46
+DIST firefox-140.5.0esr-cs.xpi 475499 BLAKE2B
b5ab87279af3fd99eaef5b816ab9c99f1d7bfebedb60f863118d1b3fe4d090ea4dfdc4f0d9265769f8997444e0e6036a33a41da3edb62a17f43720c401b726b3
SHA512
00a8a8a11dcc43b18f03a8d634d9f927ce04a2b64441bfbadad579a392420c464acef919bc2ec5208f4521ae6bdd4a7e8d378e819790395b8ab22f1e9246a8a4
+DIST firefox-140.5.0esr-cy.xpi 441562 BLAKE2B
015f72c440569feaaa2af2ac1b3aa866a8a14ed8440b3aa152449503d59715f52a7b31fae5fa191dda2a0a6738401456273b6b7f070b3a8e802ad20547769742
SHA512
4133c89f761fe3cf63563d299c6fe4db151247c0cdf085e3a7697c8ea38b50eed4229330c78846baa3950d3b618afcbc35d869b20f8ab81039c07f31857aba00
+DIST firefox-140.5.0esr-da.xpi 430740 BLAKE2B
664d935cb3dcb7c6ad676509cdd11ee39a482e8d8b299ec7913f8c0c470944ec06f18c9c0ce87bba2e75ef936910636bacc32a836276365f504fef23d81e4960
SHA512
e8fda1ffebd542152039980a81d0f83e21d36208b209d55e5178457bb10f23d5e48b03dba810260ba5294817652c16fcefb6d43b082532e3635920e96b4657db
+DIST firefox-140.5.0esr-de.xpi 452242 BLAKE2B
c2965c5e58c817485274efacf7aa1f19b000aeea1db583742f72e3e6cc9cb67a11ce9926b446194c8a013a83011b2abf8708436231347651ea7aeae988b721d5
SHA512
c9ac6df49ccfe21909b64d9eea130c601eb24880dce268091b2055e322958f3bc60b7b17b1032160c1ee3d7d7343b09dc0a39eaad67edccb01f318e55e74dc84
+DIST firefox-140.5.0esr-dsb.xpi 465662 BLAKE2B
677146234229662e0ab2a4c8b0d0aa279a086a557f93d60e514c75586c30e381a4eff4e770c66bb8c82befcc7888a2ec38151dba36abe0c5dde00f70b90ee77e
SHA512
a4cbe41e8169f25d4529374de6f59c7b6d4e760f491276aa94097ce780cee16bf247b43d03b1fd25f28a022c4783092beb4df291fc1ed6a771aa85107c66f0c1
+DIST firefox-140.5.0esr-el.xpi 536366 BLAKE2B
6990cd2a9193ad56eb1731699f660b86558b71a8b7fbbc6ae8481c9297caa7493476f7e1ae0b8a33dac24b56316b25034cfaa7097802aa6a1df13c29dec9f7fe
SHA512
01676d7f8ea52a7a96cb5bae3ff8e51532322704f0935e0b7574b7e8463a4faccf12ff54381bbabf22640de4cae04707a4ae1a17a0298abbe574316b57d73121
+DIST firefox-140.5.0esr-en-CA.xpi 410696 BLAKE2B
ce9892ba4350fe02e5a9a3a4419fe2ce9b0481be5af7b09778d1142110b8f96e3c112445a6f8912b8436b4c4493490f52f83b105a6ec6aee5a747f4a773fa873
SHA512
cfa78ce867e445f8d87cffb98ee6d9f30275649ba447be0ec4811695d1aa63e4cab36280f0c394961be4431c2a05890b51aa19d8e0fc402c85d4da999377aca4
+DIST firefox-140.5.0esr-en-GB.xpi 411008 BLAKE2B
9b49796aaf8b64607bb20c290e3fd389173151ff55d071b5cfacd4899c7bf98abc1b41e08262d9afc9982ab4a69615b36ce41e0c48af8134ad9481391b47bb1d
SHA512
80e09b466b162bab5719051189ffadab584ae5032dcd877a46247959f73c69142d855cd65658de1ab2960bbd708d0db7adf3c442002bbdc4762a83466c6c4dec
+DIST firefox-140.5.0esr-eo.xpi 433066 BLAKE2B
f41fc08cd68c3a891aa4d4a3329b16df0b665426d3854784d4bddb0c63795abbb05c091cc37aea8927bd78583f35f700283458e8a049b115b0d1df5cd4e16fcd
SHA512
835adb9b7036f4edaf70f57596363802f76eb23497891e801d1516cb4b3d52c3eaf83c02e2790323e950c6952466d9c4c2ca3ae4707db07043e346394e275f09
+DIST firefox-140.5.0esr-es-AR.xpi 445127 BLAKE2B
ffee0f918f28884df139400821700fb3aa2c83a334ba6311686d3961c30362d2805962cb29641fb1b68fb6fe6758c8a7306fc2e6912a2aca0e996b742034435f
SHA512
c8eb7eae373fd4512dffc3932b986885330086fb50957b40cf3f8c9fe34146b5a20aad33e8aaa614976f81d9206b18a202ee1c7d7232ebd64b3feee874a47c7c
+DIST firefox-140.5.0esr-es-CL.xpi 445893 BLAKE2B
f0327ff09f115bc98c1aa3e29e0bfb63d0c7c4564933d0decf686ccf514610b76585065ad6ff1ced86998724b18d856ea2d844a2049d1d864334b4dc005c8e23
SHA512
e7f227e1db07d1f40d82298ba3457abfe389e6e44c48c60eb8397612f0038fb6695163224ee199ad29d8b3e0561f641a0f513ff8de5e1c9885983cd8a90ca533
+DIST firefox-140.5.0esr-es-ES.xpi 446610 BLAKE2B
85cac5adcd949d71ceec5889724eb152268d6a0b7dfbb7f952e2412c9824f7b7f739a6ea7d77c559f6edf55939d356877785b451b07df945fed8f1e51f7cd7bc
SHA512
3970887f1dabb3b43b8ea29270daa2d053fcb4d9b233953d0544e5d8e1209f48a3f57c101cac88d411b1e160ef593324b9c028b30949cccbfd64308a51102571
+DIST firefox-140.5.0esr-es-MX.xpi 436934 BLAKE2B
3dd01e274ad8c17845c4241eb791749065ebe374b8c0daca0e77d747749be855457d56eeb22828edb3ced24e6182e626ff22a63f0d9739a0221944fb57faac2c
SHA512
425330a271e39fc35f4c828a710e24acbdb62371c1101c1769ac1487668d4df1cb0069e7977ad21aaa2daccdc87bb57c2804986df4e19dec86f23fb57164f99f
+DIST firefox-140.5.0esr-et.xpi 359114 BLAKE2B
0252c052f705711195d04f7f4e208ff334054e8e1dad525a795c90abc28eef7c6eac7c84167b39513ab664c1b5e67b9fc076fffd8201aea2f50ebe86682fb0aa
SHA512
da66a09e8f20cb9cacd0a96ff51bff9b86c17579b6524c036498ee90c1fd75259050bf113f4a5c22bcb0c674ec8e7c05909cc959da6c30b3a822b7e7b72f97e0
+DIST firefox-140.5.0esr-eu.xpi 416440 BLAKE2B
14bf60a256b51d8c1cab13c9a2521936ed397025377c7fbf789e78e4389812458e87303a277fb278be6b3dbe23381d55aae1848468f9995b0c3d03b7f15c7774
SHA512
c3478daa89bcb140dc526ab172e92a99ca2863b7fdaf7cf736f042f69237eecc61da3bb3c301d6c87b1216122603efc06b6d652900677f6c34edeb4bc8279586
+DIST firefox-140.5.0esr-fa.xpi 421324 BLAKE2B
d806f52a04cab22c44bf7e4f53f31b709e35cae9c3a6c04a7792677fb22e9eb196dd299b930a06d4a1fc2e4b052ada5509dbf26a5d08a920c31967e106aacec7
SHA512
0fdcb9d43fa8b2ecde07307b640e7b701fca288a94f2bb0b1ba6b7cfb92da4eeba5df10ca9f1c55701e2d500e35b4bd1f3be419d48f5467158badf08d5751246
+DIST firefox-140.5.0esr-ff.xpi 309972 BLAKE2B
37fcc8cd501b2fa4d57d040733c8b6be84dc3b1731c9451c6233ed94cd34d44c86644725061dc3f6e650318cde8c402e94adcc5ee19901aef1e620eb7c91a525
SHA512
d3f0c9297aedaddf89436843d277891c4cc645223ded967ef6280149c42c6b66197309dc004d30caf6f9377b8325da93dd47fdbd6bcd5cd335b08da4b2595b5c
+DIST firefox-140.5.0esr-fi.xpi 429726 BLAKE2B
f0c50142799f779a4d65ad1f2804587d3ee5bb110f0c0e8d5bdee58e861845f8c29d7e6b286730f3437d7eb35a86c6a120806225e3564ba24b16e219145f3fa0
SHA512
85562e8b7338d4270f1a7ed8c28253c8febdedcea8140e27600fcaa7acdc3188d2690466ad54fb6aa642d104546c09e0413d70c569fac04d5978759895692193
+DIST firefox-140.5.0esr-fr.xpi 458056 BLAKE2B
5885246491e0baabc925739ce9e9f87a45d3506740c9e8c1f2009260dca34c0f7eabb8857848994e24e5116e1bd8c497ad310c6296ac41f8c4441d05df295498
SHA512
701cbf346602955157236f95fdfc6dafc7d4fcfc7bbcbbf2d922de3f69f556a9c3aa4ec3b781c4a3268a91ad0a228931f970839c7c6624db48c0ed10a03a1ca5
+DIST firefox-140.5.0esr-fur.xpi 451398 BLAKE2B
79be413ad10c0454926ad8637ebcaf86bf21608bfea24e058bd977962c763fe9a78eff2dc3bcda94759203ec0c8c1cdc3f38dd5d1bceca6efe860d7c2f2063bb
SHA512
8168af24165a79e967e3f7fbf104f7437f5d6f3c8a4c859981f7be58c656bd27aa1691a7871d875f3d7180c092649b7e84c97fb6b7ce73eb5c83a1a27ca51e16
+DIST firefox-140.5.0esr-fy-NL.xpi 441764 BLAKE2B
7246e8e9a79ab5d4af3a786898e5139737922896c4b99a657db1874a60a5d322cbf0c047124c495d9468236d47c7f6f53d769dce15443778b9ef184badcd45ba
SHA512
7f92bfe0533c4ff4f5dbc5a6d67aea2a77a3880ed5a396d7cd90792949746585a36efcf05ddcc0618c919ce9b75b39f611df26bc7d5cedaba7e6413a154ce7ed
+DIST firefox-140.5.0esr-ga-IE.xpi 315064 BLAKE2B
fcee802d31db392acf07eb39a861e101a47f9a26366b7fe213b472f06223dbc3e0edb54ae6fa0418b638980e3ec250273b3bfc81882ecc54a0277d88b950adee
SHA512
ac0ac36548a2f294fc1791eca8ac1e914ef4141bcb445b00aa2a27fbd2085d74e22f94e552f9ce7296499b4527e99cbbf48cdbfe795f94720e8d07f1fbccb783
+DIST firefox-140.5.0esr-gd.xpi 399217 BLAKE2B
f1f3b7d09d356d6412f32b1e567f0ca383418a6195e53c6f403ed17e0e8d1f5d829d3f18390c9d694dda984c303c7317ae5266ac5b1b9933384939da5020ca52
SHA512
79c5a1a972602a8fcd0d64064d89f3386d8ac480698cc16dbae159333e5c6dfe522815d30336145455f5be7ce19c993bf615e6fd314635306d68c105f82e4d21
+DIST firefox-140.5.0esr-gl.xpi 442556 BLAKE2B
fd3fba777b2c8ff0d866d963a9bc534af51f8f76df381398a8913a1c476b2bd5a3d1cf70e70d154a389708c73e83faca4d75000a489f2e36c2f9918c94d04c83
SHA512
e4ab5d82e4532b30468355f221812e999e3379f99630f8eb5e49b5cfd3a444bc29188c2c357c7b7e433b9e42d64a274a77416f2736dc26e267cc7067432234be
+DIST firefox-140.5.0esr-gn.xpi 450639 BLAKE2B
78afb8d435ad842d527845b80201ab4aff4a222c977b363fb54c4cdd7e874e34b121b08ff5311955d05473d57bac884f60d7aa490091f98183e847464e03a06a
SHA512
cb8fe077fcf2687a919cc473c74b190a7491ae9ee562a7f75d3b32347889edf80ce40f5d946a75114c0fba0343ee276c3891242d18abebdb37a6d42a4f521f11
+DIST firefox-140.5.0esr-gu-IN.xpi 358749 BLAKE2B
de9d61f480260a9816ecee2bb517058d91462c3dc8d78bda846cfef7636106ce5638db2eabaf8a38f112ff681703dcc621319efc06887856367da19adbaa9952
SHA512
d69ebd7c90add2a8d07b1b452b9f838914c0956fdb37d50f91e7884983a5af2f35b2cd7071032ab096d4acbd2dc6454969924bb7fea230334a6d83cd6c878226
+DIST firefox-140.5.0esr-he.xpi 444490 BLAKE2B
dae07e296800379cc8179076aa7cd1095901cc8f4a0eb87474595f3907044797b4e5b9b702d372264aa7ed104cbf2b847b8e2119bd13ec44a771d91384eca286
SHA512
73bf24e348d120f55f79a43b799ad80345983c116471c82ba1229542238d962a3868e62970614c1ac4b488ae5fc8c50e743db8f0f09f59baf29a37ac8c975492
+DIST firefox-140.5.0esr-hi-IN.xpi 377246 BLAKE2B
cf329a6db703883106f36107239146f3ad8d6105e04da6cccaa7d819f7d02024941a776aa91d7b45bc7d340179071eeadf95fd3af284556820877716ca57950f
SHA512
03f701b4c49271771bf4ff734e9d5cf1ca0dc82c021f026100ffab2afb458349c1ab4aa6ad46d9892f8170ea1b78fb4b8de8432453001772c6bda1a01a48581c
+DIST firefox-140.5.0esr-hr.xpi 437466 BLAKE2B
78b7cd073390d59d4c97ac0a694552536326be36afebe1880b766002722830ad9f64bf02a9cb6dddf5b246bc8ed1760aa9894dc4f4bc3f55f89885d4348b9095
SHA512
e7320965cbca0adea924af90d8c6f7ae6ea40710aaba99a1a7c592041e52da0422c3f707826641379b1dadfa93987b43ffd59451073e9956a6e50de98ea4cc83
+DIST firefox-140.5.0esr-hsb.xpi 462274 BLAKE2B
5963ee6f148b0e6cb47cbf65e0ec84fd46189536a56af879180323b3e04edf246db126351619afae574452836a4f87a1cc8f48f2bc20059ddae208667ac90ca1
SHA512
f73ad1c9500e9aeb9898dad7eea58a6afdd34cba9b06147a33746d7dcb88bfdb5d4d6415dea642a133b18ee8a3d217dbbc9de76d1ba6d1df30079d25cf02c069
+DIST firefox-140.5.0esr-hu.xpi 465779 BLAKE2B
90880f35450059af63c990b3bd921337981492de96ce4269d1d93ea420c2a65d62f9cdb7a6fca795c6775b5cbda8d7dd65560c6a5a87e16cfa13a327c838fa68
SHA512
83c23b54a72ce31ac3e1453a80db5166b6bdb3afc4f75c8c568c003ac278bb9a71250a07a528c8c74c63b2728bd46d193019d4394e2fd2afb5750f82b06baa8c
+DIST firefox-140.5.0esr-hy-AM.xpi 458373 BLAKE2B
c2eefef5da6568610f4172de8b18eaccecf76cadd2c9b796c29fc483bf5ba68676fcbd36dfbceb86093fc08293a1a4b3fa9c9d54db65382f8246656861a4553f
SHA512
316fb9585ae6f705e92c9d814187f25499b4244d7660594645a1d04d825018565f557f68ad1bb31cb0d764b4628f31a5feba39b7087dba9af7ff63c241d8fd73
+DIST firefox-140.5.0esr-ia.xpi 429697 BLAKE2B
8358ab04b280a73678fb4e3ad19e5dd9ebeaa69c4a177911924f88a72008deead6f189376157d923eb65ae15723f6c81d412f37e1aef94c86a18fe356654ec57
SHA512
5edafa3656d2765f896d0a1315c90d3d96fd75fcfb70df37f66f617f6f64e82b2c693c60142374397820261aae5eeabf2c5c02a65ce74291042b1ebc0e8f1297
+DIST firefox-140.5.0esr-id.xpi 419332 BLAKE2B
ccd067374e6b09441a552d08f88c4ba637fb6bef6ee00abd85a232a4f54b31c8996397e19bb61c6dc519cd18495e331541ab7ce529b8dfe213bdc1d95860a865
SHA512
cfbbbf3b43da8aabdfacf5577fd0c86c0b613f45d6e3e734cbedbfec8bb27dbfcff15ca2b2b9f8704d3e44f019464a411f0c191b9aea975c11e523a84f7ae152
+DIST firefox-140.5.0esr-is.xpi 432242 BLAKE2B
dd4fd7044537a1874c442c967a405ada494ff9e760ea04821035f20f1fa7a0098bc9b3168cfdcc34592b396adef47130fd7ea7995bcab7fbdf3952187913820e
SHA512
92f8e8f9e4509b7d7e8dd8b6d682ae2b82eee4fe6d1c4ca17ac644580a1d1220e89608567c9e0efc47ab1dee13334ad0f3b258179b7161f4e365c68402d3472f
+DIST firefox-140.5.0esr-it.xpi 440516 BLAKE2B
dad850742a2f8698accb9a81146167c2cad676d73fcec8c265b20b17333ba4fd7df81cfa95cb13576d76384fc1539dbd0ba946b5803a0ddac19ac1e56ff107ec
SHA512
6bc9b1dd4f9dcd81a814a3c729f3a300af27b2d8a21966ac4e654d2c70c1597311243d5e923aed833e03dc082c1234416c724bbbd8cb02df2b7e21d2abef0624
+DIST firefox-140.5.0esr-ja.xpi 480917 BLAKE2B
be0515becc40134b497ca64d9505d2f07c8ea1e676432ca282f435d872cfa6e1cc38505b4224f2e6e03c4ec3ff929408a2012779a00f07b7fdb3e7f613b15281
SHA512
11785a78816e55934068ca2bb33799382daf71d7bb476333045d2aa03b4939e466d2e2327da528bc0ab7db9b701d2ba2d8a38c3f7032771fcf5f35dc62bc3b97
+DIST firefox-140.5.0esr-ka.xpi 494448 BLAKE2B
e06007dbbd1ef2f160dc99545353827892d349ce05f832db46d27006d8e6b675737d24e867da406fe998b3777ea3690eb88c433d7b522fd810305ee8bfbae498
SHA512
1ff694fb1565944fe9c249abc45716e9abc4ad386a6f98191f36c22ffc8c604eb4a13409d8e8a87357e98eac120c0b988efa05ecb67c04b86ec472ecb451df8d
+DIST firefox-140.5.0esr-kab.xpi 421079 BLAKE2B
c60a770d359b6281e7c75525c713b1708f2916d71d7be60ff05f4cc1e9537d4beee8ec986f3b41f7e61e9d94871968451f48d384f5cbeb342941256deecefc79
SHA512
4516683152c0513919b595f66a34f1150233d0c898aab7d3e5f67ffb417c5c7ba6dcb44e0c26a07fe71850da70305babf2564733db6d27d119a0fc974dc331d2
+DIST firefox-140.5.0esr-kk.xpi 505970 BLAKE2B
ffd0422702beedec56a75dade95a8359b3782b5fc8a7f7c588e66171de7620285a8152ec5e1d7112612b173c2ef5ba845b015c715688a28fb44e288612a055fd
SHA512
daed8b0a07f14550ed8bd31944832364c8fe6d33472d5af8cedf9472f96f4dc0f062c0805ab341fded798f7785d68adc15f35dc7fe6c2eedd277b9098ed6623a
+DIST firefox-140.5.0esr-km.xpi 348565 BLAKE2B
65807608aba73c6394a95bf24f6a767fddaeb2528c04694044eef299f0a1439937cb21d9e33317e4f7df6029ebf3a440200c4be19584bebdd3a91e8801ac5354
SHA512
58a7db7d1196ed5c6d4be5689553b6baaac1e25aa2f2e52fe140ba78bcdc78893cae54beefd9158a25612a7d723a2ce63cb9a885b14faf9f7b1536f15d268b9d
+DIST firefox-140.5.0esr-kn.xpi 331572 BLAKE2B
c0c6215d7579e2aa0c913a00f0f76c08a025ca296dbdfe8107b3d32523001cdc16d241b4eb36465807a9593abf791d34752443d5ed27a4698a5e2e7eb364c221
SHA512
f53206e7fb478fa35bcdddaf0662a77340b27a3712fdf289da1a9bf1c5488966f4c2f0dd22cd79dd58d0708e9854f2cada469bcc2d9c5ede0b920d09d699e7fe
+DIST firefox-140.5.0esr-ko.xpi 467168 BLAKE2B
3142b70f3e1c8be6bc024687f4de2650fde623f18a89834e41bdf5efe5a7cf5948b03fbbcd407202d7387c53df3f38c08d3125043417a2a2bd6d6e97c402c7bd
SHA512
9d546bcb042d06885068236a8b3b271a330d53fb0bb54a03ea93b8a89740f3c58dc8f5dffab41df58bf21de1ea5026834e18a9c58e50024dd90c10411150a937
+DIST firefox-140.5.0esr-lij.xpi 319075 BLAKE2B
6237d13258366ae44ee49e88684e8416327660bab9115de63faf0b279dbac8cbdc77f8ea73920bad00089d632d7dfcf66484065e10a6ee9636d12abd87ce2000
SHA512
cf49d171b3be9e7ae294b55b389194082a6fbc996613560cf22bb51debf401960f3b25a33f74bd4c3c7857f90f364bd840eb313f66e84fbabadbdaebcdb5bc9c
+DIST firefox-140.5.0esr-lt.xpi 379742 BLAKE2B
826366d42fc3305b7e0b1331cf9d51925f32bf495d345a7aa6fc2b1d7b5d65e17916e80aa14d8eb1c61fc57ddb53c1f6dff04407a5b6e0712815f30043fe91de
SHA512
774a0268c268e33c44cb32bddcdca1257414869d9293ca833fea9e6d7377897d38a7bd52c2c5dd93598a8272de019e7fbd0f75930eede45005fc52fb1c3aff5c
+DIST firefox-140.5.0esr-lv.xpi 386100 BLAKE2B
8ae29795e7439d6ef6a23c6145c64929d15413ea5b53dfeff61ea3532f3774baf30b947a7bf68c4e8494d359ab9350ecffc9178a2082c51d8f62b65817e0d4c1
SHA512
aa7a8ddad99fbc80cfa9d311b40811307eb16d699d30e1228a9b0f239183bfe02af67503d017cbb270eaa38580005d2ca48064c444dea09cee0c0b7272aec8b1
+DIST firefox-140.5.0esr-mk.xpi 316627 BLAKE2B
f6970c1931c0d50d2b9bf998d0cb71ac5139da48ab565de31454c19cf86804c01f9f7926e3a9034235cb1ff2817f84536b69b84ec6d6d547cc1c3d8c1b52e216
SHA512
8849ab12046f3fa9bfe02d89a4c96585635ee95a086b3c2dcb5a7f35ed8b86afca8f3fc1cd57177d33b9ab8dc1c5f6b9331bce0634bbe806c76ca62a61bede5f
+DIST firefox-140.5.0esr-mr.xpi 356031 BLAKE2B
e4502b8c6aa2e8e4a7a2b074fd7ec7b8b773708e00f76e4915ff68f538630e3b95bbcec4b726cf11647819474e6b98c381454405d87d24a6f15905a56281350d
SHA512
f48efff9c4fcf4a2d347c64ac24db314b266a205956acbee8242cc8103022e091ae9e9ab33327b934dffc206241e9a698f0e33b05a3cf17c1de2de3b0105d143
+DIST firefox-140.5.0esr-ms.xpi 295177 BLAKE2B
fa26e9018c2a60393018fc66ba4b71342cdaae0ff06a150b799b3a270f9e1ba1a3eb09d46688f11daecbb3d2cba695eacd6652ebd9c16e2b588ab7206c2ae060
SHA512
46c8910be11f54faa1be34c3dbfad151648994a4a3637bc5a290b6bc08d3ce773c3b2d99e98a79201b54b23de04877f9a7a5eafab19436430561f5e0e162d7b9
+DIST firefox-140.5.0esr-my.xpi 342821 BLAKE2B
ef401c7413000e441ead8cdafb14b6b36201fd50ae950e50dd3cfe2de23e1c0979b59431130fae37ed2fd1125abcc4e843060ac9466fff0a648ecd1633357030
SHA512
94999278996805dabccbf04b5dd31b1ef673c06149371e763fa07650798daeceee61181d1edd66fcd709ca8dcc044ca652d0b3d4fe2eec36d1079597b90dd3e2
+DIST firefox-140.5.0esr-nb-NO.xpi 428926 BLAKE2B
d15448a76a3c4a42821fed6f5d778050bc6e22524a0acf6066a01dbba1865c79172ef87fa17fa288e31e812a56042cafcfba70b218595db23fac5dc23cd91e78
SHA512
680b51949b5553e4f7e82a7e853a5abdb27f1d150a41a5956dff316b714ee24185959886650eceaf99aed5b0bd9315d16b5033e032da9772f0fcbfb704118ee3
+DIST firefox-140.5.0esr-ne-NP.xpi 348807 BLAKE2B
2b1188db4e104354d66fe476403d13927990e31e771181865733e334d32c4f93235b12272454d7da624c037c57975ffadbb35e2a069d6f5a0dd238ee5235287a
SHA512
678308871718987fe10c7a040882ba4d353ab52f385c160622a92fed59b46028fe0fa9a5f070f4b98d42eece02ec33d53a21afeb778e1aceff208a679d85c7cf
+DIST firefox-140.5.0esr-nl.xpi 435791 BLAKE2B
85a831885a2fce4566db04fcd3b09f9db8e086ba95c3fb5fe68b80050df26fafb66b7328a187a1a1abbf68a13ee03b6004639d371f17e9525f969cf4065e41b2
SHA512
11256c252f2e8a5565cf226fe3ebdf08255e32b6aa338809a2592ccfef34dd986213b0e9615012170735992ec49115e0dc0a81c134f9a2afb8c75332c269b517
+DIST firefox-140.5.0esr-nn-NO.xpi 431815 BLAKE2B
f597cb6ee79519a49acab14dcc3462506a29c3b7fac28f3febd52b49ea1b59d9812818e4c74a4bd6feb6821e724669d3e3e5c20f9f423162ed2dfef5d8b3b864
SHA512
68dbc7f4426d804681210a37a95d70f345386ed6b6134cadfe18fc5164912a6e426275bc66b59f147468aeb33d1f88da0f39426d274e283f26f5ae3e7fd2f3ba
+DIST firefox-140.5.0esr-oc.xpi 410731 BLAKE2B
ba6428269d59db4610ec169c0a90a00400a3b859cb51eb9a9af21d83082e1740c4dfa3ae65181ca139591c19498aaf568dffa86acb19706a346736b54797f941
SHA512
037cea472c36b6bd9d9a602b802ac903ad0d6618804b825a81e60bb73e46935ec2be9b522d1bbe820b2e20be4750d9fa49e65bcd6495d563558b735593ff173d
+DIST firefox-140.5.0esr-pa-IN.xpi 493387 BLAKE2B
b6ec5fcd9a5deb0a200ad7c246b6a1fc423f5c72d07c76cf8acaae8704c67abedc567d6392341fc243a57ce412412972a257a8c6de355d39609693f671b52d59
SHA512
ffd8a52a9527b97550138573eea5e88a950cb6f38b1aa085af7e261d76beebb242eecce1e7e4673dd5e32fdde2986d5061613883b34c9ab9e18671ed4b307ded
+DIST firefox-140.5.0esr-pl.xpi 460175 BLAKE2B
1bc18a51c51d03f220838a4f9134f2597d9d58efb6f77a323dbcb6b3e0d47f7a87aafa322c9d93cef54dfcc7f55fe0df1bb444b16677f8df00bb8716be9ba190
SHA512
2f6f429b902d6f53a477af236ab61c88a200df68efee43ccd8bcd7303fd3ef1cbed19e8403b41a62dfcfc2be3657ec281ab06450748e3431851b6cc6d077125b
+DIST firefox-140.5.0esr-pt-BR.xpi 440307 BLAKE2B
ddea7c647bf23282547858d53e05c3db329301e21f329c16af5522f2f9377f38da4a2589d61b00d79385f940e87c9f377fa3bc2c1d74570b55d446fdd4b5ecae
SHA512
2a078eb00029799639cceef4264cff3493cf1bf0416ab7614c059c45e8133ac37a7dae5ec9d47d9443519526aa5809b3bd0e76a30011c760cecf3cbe0561cf4f
+DIST firefox-140.5.0esr-pt-PT.xpi 446037 BLAKE2B
335d70b37f40644f176deba307a1517b76d873c1d1579cb2a9de7d37d1e82ed31c95b81de31eca1391c6b3947164ddfdbc77f4fc6507c880fc0fa8e5ab9eb9ec
SHA512
cb5524e40ba8765a0e335b7ca17c769e7126ee64f8ff84f5bcb3d743b1cb09ccd459f4a817086d733dd31421557ba94066289d309e2a939af01525172858497a
+DIST firefox-140.5.0esr-rm.xpi 436304 BLAKE2B
2accbe16c16339ff883736c5893b9b8502f5f6a900ff34d7cb5533031f7af56409539dc3fb0905d35a3954defed60828ae7988ff9449534e523d4f1742da5225
SHA512
72db3d1f4bf337e296a57be00aa8b121d09f2948f835ba8aa81628b38bdf07cf0c3667432eeada9de11102404f6b106236d2f94bb0813c6a759d7789cc57a1ea
+DIST firefox-140.5.0esr-ro.xpi 452382 BLAKE2B
575493fd764bbbf8e7eadd844a800cf83bd8b0d47817018fdb9e3b2b1129a83e8abe02c5147d665b73902c9de4f88be10b35897348121efdbd9b609c5bd58180
SHA512
6a21e2b2007a8d05582aa4e9226cca2eedcbbaf5b70500620cf14878ce2993cfc72a8ea8b3ce296858835e584305623a78bcd0944c545f5caaca114beed68304
+DIST firefox-140.5.0esr-ru.xpi 524717 BLAKE2B
ad5f953a92cb1849257c7153db5d6f744aca2da6274823cc50709b596de19e2fd1e34490a582546f42a0c1e7d8048e7666f738c1585f329cdc0a37f646b3763a
SHA512
b9ab62c36e952e6351b8c545a3dee45d06b8d046f156a90e75e709ada7d69c548e89c37ab5765b2acaf199688a005a19ca1bc47dd7da69b6baa8da2c20a225fb
+DIST firefox-140.5.0esr-sc.xpi 408015 BLAKE2B
0172cb6f0ee31ddf2b75be047c896fac0f30c1cfd35b469be9d9cebc9a4ef774619e5f95f835c609fcd3ee95eb9138d36efa56c9c583d6be1387ae430a5638e5
SHA512
3cf32f35f42b3c1bae1571c102ff68f285b7bf3ceb4735935150dbb7bd5f446031dd4ef2c089190db620553fb385e973cf9cbf8725c3e9bea4d9ec58c39f9f76
+DIST firefox-140.5.0esr-sco.xpi 322437 BLAKE2B
2b86303105994c5e0cae2d7a63e35274e66883f89d12d5f7f71319f59c8edbfe2a74f766a5b1785b1aa87624f3a9e7a4b5ee0d88f2e5ff2f124c452dbb4be6dc
SHA512
2f2ebf97bb8174f0a6a140046126f6d8f5c706933f289d9e2232d62f3013324301f22be0e408aeb14dfded9c661a37bb9052e673dc27a26023e9c7438949ee41
+DIST firefox-140.5.0esr-si.xpi 411396 BLAKE2B
cc57b02fa4c993553361775d914b1cdbd81d736a3a7357cc18cfb0282e14138a8893bca46a15fec86b9c91ab7a217576fa0da760954e7cff92e376e5a2876a2c
SHA512
27a634aa47232c642bfc34c51f88cc4d2974d65f9f645eadc5769fdc9360dc491dab367ed0659bf9d4a284c46916b00a9450cec065b9d5f1f8f1cb355e42f9e7
+DIST firefox-140.5.0esr-sk.xpi 467560 BLAKE2B
7246d9a2059d1dc06391b222c3208bcc02f76f91f0e7f166524ac5affb28454e24ec701b73845c8e687d0697f9d179e11055a4a127979ed90c53b479fa8540be
SHA512
7ad38670f0ba15a1c209230d2fd90d14ca6d911a9a7954aa58671ac19880c540169161a1092de7b124af32516f4f1de632154639f0cf515b6ae1ccf61ffd79a0
+DIST firefox-140.5.0esr-skr.xpi 485664 BLAKE2B
164b756ec94d5dd9469c08b61ee390dc0dde065f63b1554364dc40f99b74702beca57e1ce01ea936aa4961d0413eb753321880d5e5f7a8ee7a18ed7caf832288
SHA512
cd97f4e20a3a9aeedcf13f8c7ab21aaf6bdc87645984eae6bf1070712b88d5444a73765535371140e736e1e5d910ca66ea5a8e9d1f91c15e01e920591e9ae2df
+DIST firefox-140.5.0esr-sl.xpi 440789 BLAKE2B
ac19a39e778f96c8fba113c8dea7c56028d7622392b5107a443f97804cb4f0065a3cc5b9d34a9bda5ed5b1348298cc5afaddb0a20e80627fca5a17165ff7f6f4
SHA512
79a9b668cf6dac83c5ef65cc9c5c97f5c859506945cf093435b56a45d7310d29f6cd93d6a6d9b1a3c40a5eef6e0977bb6493f619afadb7a0d379dba9c7d28ff2
+DIST firefox-140.5.0esr-son.xpi 272927 BLAKE2B
3fc0e1bac1692f0bc2264cccf65f4ff0b92381e17598ea090be60e9d5957af08699628d2e58924cd97ffa0948b5759e948e17665f7a8bc957a908e520531b8e9
SHA512
89823f7731a7615f057b289c8e108dab5937b75ee4c05798b7c3dac43e0fdf2da06a503436f2eefa77ceb41df5b56e44963b30f60f87d01b4854cec5a7906305
+DIST firefox-140.5.0esr-sq.xpi 452870 BLAKE2B
601d464f6ab9806f9b7eb19668933e3579dcca656ff3924a37da31b4620eb27ede48a8e9043e62f84023f969b646dce3adf6eef0a781be598b10058b04b5d7bc
SHA512
c35ae7dd0123e455b38611feb986e32b92161771731c1b1190c183ce0552f12d9efd2679f536fe99a9d60a7c4013ad64391439adb764622736c29d1c8528d87b
+DIST firefox-140.5.0esr-sr.xpi 453156 BLAKE2B
a81042a9d6dd3bd284ad39cf9a42dee8aa991a4884f61d01de0023728a3dffafa1dcb21aa8987ce242c643360feeaab858ac2890be51f15be5fb8c935f1d9e82
SHA512
668a55c26f86190b0e2017924145caa3c5588b4088f1b34f8939330515622724d457bdd8110d9b0bbf8c014f8cf385d14225f91086c4f1eea22e2d42726c65ba
+DIST firefox-140.5.0esr-sv-SE.xpi 435746 BLAKE2B
8ad416403fc9845603476fd145370d2a5f56e3d41f0e5bfe286cf40ac907515c822b4e35252460d5bb5555015b6f7f8fd2890f999c140ca96805841ce99e56ba
SHA512
c244bfe17d3cc18ce17263ffca3155ef27cc29976fb29cebd52dae1e0fb46fe04711e2ab38f53f96f93499ae2b00f804eaa4c0462b8399615959b4011a059255
+DIST firefox-140.5.0esr-szl.xpi 341470 BLAKE2B
285d4752237de52511a999a50a177e7c16a5e134c2bddb5338e591646bde5f5c937c8b343f3696c7fb6d93e93e0a9f1b606c952e910a6bd7195c1a4170c3012a
SHA512
0937d6118a11a518f7532f4e443fbfcf0a5266909601aab19ef45c7cdafbfb4f4a6ba86d5f6a61443969caf57556260c00c48ee4b4710fe688bcb72f895c6804
+DIST firefox-140.5.0esr-ta.xpi 337942 BLAKE2B
d712483bf45b71313661c6e261649160056d989efe470fc02af1fb74f4d3b4dd660c1e58421d46069688314a521210d6f3f980a995cc47d46b4f538d96b96e56
SHA512
45edd284aa32b0cffc1eff3e574d9683ba238e5cc21201457dd6b0155c46f1496ee3683d87472215d422beca8da6df79efceb19de50747332662c6771e346dec
+DIST firefox-140.5.0esr-te.xpi 381980 BLAKE2B
6a2eb9d50a098a1b600b96e7d25f49a710c48a2ccbb2ad335eee7181b5126a9afa876d904408ec9e68a2a67c9195206d9efca88db922985a43790f6263859e3d
SHA512
e95e9452a563f7db69eb7bca731452749c5caa199ebf0c6a5af38f132b6df65e1b9a684e7f8a3f0e54902a5aa5f4a86e0b40018bc0fd459bb29ca02b4e8c876a
+DIST firefox-140.5.0esr-th.xpi 505275 BLAKE2B
ca63b2aceedfe4182e6bcfad96ad4c70d6d621af3213ad74f4dcca2d697125c37a6a9819e4d5f4b64831fa3800ee1a8c03bd98905b8fd4b037664338124ee319
SHA512
5d76e1ea40e73613241a64b91f49faeb3ca6780d8dab3c1a157e0c52dbed43168f7089d5cd7b322d43fd7cf81e66548ffb9286c1d2b3dc3925f322a1ead08bf2
+DIST firefox-140.5.0esr-tl.xpi 356450 BLAKE2B
31b43a62aa1b24044d9fe27bc033a90be498d138d5947e5eb7f3f7f228ca7bdb35b232aa06b5f3335a1a2a3fc8be26fabd160403afd2cfcda71944227c78b85e
SHA512
efee13190c0cbedf5f811052363132f0ace6119e8e3bcef5bb912a3d31d2ac0811ff0eaa38884d7c7f4a1537ccf1dfb6c2a81edc45f69f461dcc893f6206c777
+DIST firefox-140.5.0esr-tr.xpi 448868 BLAKE2B
2a734a64e750880dcb9ad174b4da6bacd7924da61ca9e13afc93ec32ff15c040c2a020b0fa1351e4bb693c55673f684ef99c39571ef263073c619f8ec49483cc
SHA512
e03c87d765345a5b1d6a7a931f9ce31d6bd4ac658b79eabed0763f8ce90bd9f7268eeec412f6e8f5bf8c6199037859f007caee8b0a8aaca879269777f1c35adb
+DIST firefox-140.5.0esr-trs.xpi 323790 BLAKE2B
44ee63733966aad317d571881436a9f73f260e9d538051afd1dd0c958fd4278bedd6872371cf26dccdcb0cb3c4ff3d7cffa1c892a31e82d787504a681a37aa10
SHA512
e4bf6f54a6a8105b0aadf49d1f0d1552120da67b8ff58dd2357a6b3d7a80854765dff791b88241dbc05af0ad5bc12df184132207c60408c0effb5fdc06db18f2
+DIST firefox-140.5.0esr-uk.xpi 516290 BLAKE2B
dbf97b19fdf898d8af1cc791bba76dd69f013d88d8b501e2ca8f98fa3ee3c789856f514318235cc59bbfac84f8d1be4f39a21ada5d1d81d30acd73c20bfe83f2
SHA512
3746954ff8a33065c0c38cfed714600d44dedd57aa7ac22acfa919e6fd42d291d73a237bdc3d2ac9eb2f4e9b0889b62fe1e4b11631a572088b04011787b7d9c6
+DIST firefox-140.5.0esr-ur.xpi 369965 BLAKE2B
9bf2ecf44318970f52834ec1c3e54403977110d081045c49f34c6e3105d79f94237b64edb417dbd05028239b4e9afbaa4950a3a9f7d51eb35a7fccd636d49840
SHA512
e22e3cb2a2fe2c86051799304b97924597b17bf3d0b94ab6a5145747486cb93a909c300a292b0ffdbb4c362513546d26f6a7ec16ca2495973f0f1c03a535e7e2
+DIST firefox-140.5.0esr-uz.xpi 303271 BLAKE2B
6de9274ce10b0147088051d9192d8dcc754d416c22865c93597366d8ce3ad96ea1a2784ed1c45d754da3af3d00ec26b8b8304921d95e4871664b7b54012b02d9
SHA512
bc00cdd93e7528b7d3d055d9f30c17f8a43d1101a126d208341f89178a4e281679b97c0dfd7ffa0044ae160e61e77d4758895345ef5d541f786fbfa131c93206
+DIST firefox-140.5.0esr-vi.xpi 468689 BLAKE2B
df549e2ceb5dfec2c368a4ded30e992b088df59c808dcb52abb6bb0c8c0ccd828522d776090b70c2609597e11570bf2d19e8d0e62d9f49c94d77b7295c44072f
SHA512
26c9784c4c0736b65772ed1763d6d911057a80ab346e2a03455595e14e15562d22bd65ed17b31711d5ed18b728189f7dd5b790fa3ae8ee26b5ecefc8fd35ad3b
+DIST firefox-140.5.0esr-xh.xpi 272595 BLAKE2B
c15bcbc156fa3262341d39cd5722bd24fb344b4cf218fc9bc3736bddc8487df2d55ff9f18bda4f002c2c37a48ae830957eecac6f95a587cbb3a9c9ccb06bcbf5
SHA512
444c2fe26e469ac21e167c2ea78ef7a56daf3b60c7c07094a1df4636923bb0375ebce2c0d7fc1160a4355569e2dfaff13845ccc83636dfc7c44849057370c501
+DIST firefox-140.5.0esr-zh-CN.xpi 460318 BLAKE2B
2f8162c471f0226943fce4d96d6be345f1b4b0eb3f49b6f457a17cf9a50423a66b079a8effbbfae58c5f7ca6b74f52a7c0bfac84cc2ef483c99c0a3d12825e29
SHA512
a5e6d15b413ba5e0dcdb6488e5c53c069b7da4010e52ec43dfde1becec12475063ec9397ac040e963ed21db35f1bd0cbe65f30f6e7c1f1cdb3e13f5c975f322f
+DIST firefox-140.5.0esr-zh-TW.xpi 463318 BLAKE2B
a237bd2b8c1706ba3acf7cdee328e66f8de5305c618c4d4e8fc15fb2c69227997428987912823abc8b98685247c0a2e4b1cc0ae72c89a62217eb056030230f4f
SHA512
1e2097af872a7d6f6c7b8319174e9ca304a2fdfe8a1072fbd6997e50a31333607c86404abe182e160de06b517d10ef28553c1d5e444c0a1b114d646437f24f50
+DIST firefox-140.5.0esr.source.tar.xz 636823136 BLAKE2B
d36cd45f5c0f6f83fbc081441f9b7fa80947dd4f48b9414e0e800d50afe79c89be70503cb5fc7be3dc1874df0e698fbad92dc4e5e893e0c8baf19efbe43189de
SHA512
412236a25cbea171bd5bd535e45c3ba40957a94e1f8dd3ab74241e0aa1c4075fcb8d394b9619599d60ce3e4563e712c825fa8bec441794f229356802f72b2861
DIST firefox-140esr-patches-03.tar.xz 13452 BLAKE2B
f1e5da9400ae5d15dec852f0d68d470f40cff11764813bb7429f320d82cbf838e4e6cc7097f42d154a4a67061a66ad31c0749020067fd2a7f891c9003d163b80
SHA512
966aa2d0b8472bd4c002676572b0755cbf0ecce8709776d07fa2cfec512d942ebc735c6ac20c5a5a19af8e00d762e8967c7d43325987c3b331c8c86183eec044
DIST firefox-143-patches-02.tar.xz 13704 BLAKE2B
72376ddcc74f97b448e86d464f74bfdb9dbabdf973bf2da6424ab9c78eacf69167114d54867ac3c1c0e39a2bc2efc2e66f2995b3200e3ab72f6f7f795257a03b
SHA512
d05a04bebe67a465f43c26492d34bb98ac473b4bdaf98831ed75483842a745fd34ba678e783e7708443f358eb8b0520f263b2a0710c264cef9fffcab30646708
DIST firefox-143.0-ach.xpi 293829 BLAKE2B
465d4e8b99eaa790014f87844e8d65d6b20a629023a14447c959ab97d4c19dc2020f6582b80e4e213db28d415179a9bc5b3d2aacb29a0908654c9bbabac97f8c
SHA512
f1beacab86215f12dc3884aa07950f788e5836105cbd1f3edcf87ae858060642620d5615bf72d123233c669ec7f3a92a35d67a3d9f2d807d2d326e32ffc01c75
diff --git a/www-client/firefox/firefox-140.5.0.ebuild
b/www-client/firefox/firefox-140.5.0.ebuild
new file mode 100644
index 000000000000..fbdeaa4290f5
--- /dev/null
+++ b/www-client/firefox/firefox-140.5.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-03.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 19 20 21 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.82.0
+
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=28.0
+WASI_SDK_LLVM_VER=21
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+ HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1
multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 rust
toolchain-funcs virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+DESCRIPTION="Firefox Web Browser"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz ->
${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}
+ loong? (
+
https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+ )
+ wasm-sandbox? (
+ amd64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
)
+ arm64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
)
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio
selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+system-libvpx"
+IUSE+=" system-pipewire system-png +system-webp test wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry
wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wayland? ( dbus )
+ wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? (
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.27.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ !X? (
+ gui-wm/tinywl
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.112.2
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ <media-video/ffmpeg-8.0
+ virtual/zlib:=
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libdrm
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-3.10.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ system-icu? ( >=dev-libs/icu-76.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+ system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ || (
+ net-misc/networkmanager
+ net-misc/connman[networkmanager]
+ )
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ hwaccel? (
+ media-video/libva-utils
+ sys-apps/pciutils
+ )
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+# ESR and rapid dependencies.
+if [[ -n ${MOZ_ESR} ]] ; then
+ RDEPEND+=" !www-client/firefox:rapid"
+else
+ RDEPEND+=" !www-client/firefox:esr"
+fi
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM
slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! tc-ld-is-mold ; then
+ if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has_version -b
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( skr )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi ->
${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d;
s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine
extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p'
"${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine
extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})"
"${flag}"
+}
+
+virtwl() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+ [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to
be set; try xdg_environment_reset"
+ tinywl -h >/dev/null || die 'tinywl -h failed'
+
+ local VIRTWL VIRTWL_PID
+ coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo
$WAYLAND_DISPLAY; read _; kill $PPID'; }
+ local -x WAYLAND_DISPLAY
+ read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+ debug-print "${FUNCNAME}: $@"
+ "$@"
+ local r=$?
+
+ [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+ exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+ return $r
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="14300M"
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="10600M"
+ else
+ CHECKREQS_DISK_BUILD="7400M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in
src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and
FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ if [[ ${use_lto} = yes ]]; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="14300M"
+ elif [[ ${use_lto} == "yes" ]] ; then
+ CHECKREQS_DISK_BUILD="10600M"
+ else
+ CHECKREQS_DISK_BUILD="7400M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough
anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox
(bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # Clear tons of conditions, since PGO is
hardware-dependant.
+ addpredict /dev
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to
fail with
+ # a traceback report referencing
/usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build
failures!"
+ fi
+
+ # Google API keys (see
http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own
distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+
MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+
MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see
https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own
distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+
MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ export use_lto
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to
play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die
"Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ if [[ ${use_lto} == "yes" ]]; then
+ rm -v
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo#915651 on musl
+ if use elibc_glibc ; then
+ rm -v
"${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}/firefox-patches"
+ use loong && eapply "${WORKDIR}/firefox-loong-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo#915651
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use loong; then
+ # Only the LP64D ABI of LoongArch64 is actively
supported among
+ # the wider Linux ecosystem, so the assumption is safe.
+ export RUST_TARGET="loongarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ elif use riscv ; then
+ # We can pretty safely rule out any 32-bit riscvs, but
64-bit riscvs also have tons of
+ # different ABIs available.
riscv64gc-unknown-linux-musl seems to be the best working
+ # guess right now though.
+ elog "riscv detected, forcing a riscv64 target for now."
+ export RUST_TARGET="riscv64gc-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post a new bug with
your rustc -vV along with emerge --info"
+ fi
+ fi
+
+ # Pre-built wasm-sandbox path manipulation.
+ if use wasm-sandbox ; then
+ if use amd64 ; then
+ export wasi_arch="x86_64"
+ elif use arm64 ; then
+ export wasi_arch="arm64"
+ else
+ die "wasm-sandbox enabled on unknown/unsupported arch!"
+ fi
+
+ sed -i \
+ -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+ -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+ -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+ -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+ toolkit/moz.configure || die "Failed to update
wasi-related paths."
+ fi
+
+ # Make LTO respect MAKEOPTS
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure || die "Failed
sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/chromium/build/toolchain/get_cpu_count.py ||
die "Failed sedding multiprocessing.cpu_count"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed
sedding multiprocessing.cpu_count"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py
|| die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py || die
"sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \)
-print -delete || die
+
+ # Clear checksums from cargo crates we've manually patched.
+ # moz_clear_vendor_checksums xyz
+
+ # Respect choice for "jumbo-build"
+ # Changing the value for FILES_PER_UNIFIED_FILE may not work, see
#905431
+ if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+ local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+ elog ""
+ elog "jumbo-build defaults modified to
${my_files_per_unified_file}."
+ elog "if you get a build failure, try undefining
FILES_PER_UNIFIED_FILE,"
+ elog "if that fails try -jumbo-build before opening a bug
report."
+ elog ""
+
+ sed -i -e "s/\"FILES_PER_UNIFIED_FILE\",
16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \
+ python/mozbuild/mozbuild/frontend/data.py ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in
python/mozbuild/mozbuild/frontend/data.py"
+ sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE
= "${my_files_per_unified_file}"/" \
+ js/src/moz.build ||
+ die "Failed to adjust FILES_PER_UNIFIED_FILE in
js/src/moz.build"
+ fi
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key ||
die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F --
'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1
"${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ # Configuration tests expect llvm-readelf output, bug 913130
+ READELF="llvm-readelf"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}}
--target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+ mozconfig_add_options_ac '' --enable-project=browser
+
+ # Set Gentoo defaults
+ if use telemetry; then
+ export MOZILLA_OFFICIAL=1
+ fi
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-disk-remnant-avoidance \
+ --disable-geckodriver \
+ --disable-install-strip \
+ --disable-legacy-profile-creation \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --disable-wmf \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-packed-relative-relocs \
+ --enable-release \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-ffi \
+ --with-system-gbm \
+ --with-system-libdrm \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+ # Whitelist to allow unkeyworded arches to build with
"--disable-rust-simd" by default.
+ if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more
arches.
+ # bug 833001, bug 903411#c8
+ if use loong || use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # riscv-related options, bgo#947337, bgo#947338
+ if use riscv ; then
+ mozconfig_add_options_ac 'Disable JIT for RISC-V 64'
--disable-jit
+ mozconfig_add_options_ac 'Disable webrtc for RISC-V'
--disable-webrtc
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1
}') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+
--with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1
}') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+
--with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1
}') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-pipewire
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+
+ # Increase the FORTIFY_SOURCE value, #910071.
+ sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:'
"${S}"/build/moz.configure/toolchain.configure || die
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends'
--enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build'
--disable-unified-build
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland'
--enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland'
--enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11'
--enable-default-toolkit=cairo-gtk3-x11-only
+ fi
+
+ # wasm-sandbox
+ # Since graphite2 is one of the sandboxed libraries, system-graphite2
obviously can't work with +wasm-sandbox.
+ if use wasm-sandbox ; then
+ mozconfig_add_options_ac '+wasm-sandbox'
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+ else
+ mozconfig_add_options_ac 'no wasm-sandbox'
--without-wasm-sandboxed-libraries
+ mozconfig_use_with system-harfbuzz system-graphite2
+ fi
+
+ if [[ ${use_lto} == "yes" ]] ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ # mold expects the -flto line from *FLAGS
configuration, bgo#923119
+ append-ldflags "-flto=thin"
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to
USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd"
--enable-linker=bfd
+ fi
+
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to
USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to
system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd
due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ # PGO was moved outside lto block to allow building pgo without lto.
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ # Avoid compressing just-built instrumented Firefox with
+ # high levels of compression. Just use tar as a container
+ # to save >=10 minutes.
+ export MOZ_PKG_FORMAT=tar
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-jemalloc
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults'
--disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS'
--enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS'
--enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default'
--disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS"
--enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default"
--enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # elf-hack
+ # Filter "-z,pack-relative-relocs" and let the build system handle it
instead.
+ if use amd64 || use x86 ; then
+ filter-flags "-z,pack-relative-relocs"
+
+ if tc-ld-is-mold ; then
+ # relr-elf-hack is currently broken with mold,
bgo#916259
+ mozconfig_add_options_ac 'disable elf-hack with mold
linker' --disable-elf-hack
+ else
+ mozconfig_add_options_ac 'relr elf-hack'
--enable-elf-hack=relr
+ fi
+ elif use loong || use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on loong/ppc64/riscv,
+ # see bgo #917049, #930046
+ :;
+ else
+ mozconfig_add_options_ac 'disable elf-hack on non-supported
arches' --disable-elf-hack
+ fi
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # System-av1 fix
+ use system-av1 && append-ldflags "-Wl,--undefined-version"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+
+ if ! use telemetry; then
+ mozconfig_add_options_mk '-telemetry setting'
"MOZ_CRASHREPORTER=0"
+ mozconfig_add_options_mk '-telemetry setting'
"MOZ_DATA_REPORTING=0"
+ mozconfig_add_options_mk '-telemetry setting'
"MOZ_SERVICES_HEALTHREPORT=0"
+ mozconfig_add_options_mk '-telemetry setting'
"MOZ_TELEMETRY_REPORTING=0"
+ fi
+
+ mozconfig_use_enable test tests
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support
arguments
+ mozconfig_add_options_ac 'Gentoo default'
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash}
${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org
default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then
+ # increase ulimit with mold+lto, bugs #892641, #907485
+ if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+ ewarn "Unable to modify ulimits - building with
mold+lto might fail due to low ulimit -n resources."
+ ewarn "Please see bugs #892641 & #907485."
+ else
+ ulimit -n 16384
+ fi
+ fi
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_test() {
+ #
https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+ local -a failures=()
+
+ # Some tests respect this
+ local -x MOZ_HEADLESS=1
+
+ # Check testing/mach_commands.py
+ einfo "Testing with cppunittest ..."
+ ./mach cppunittest
+ local ret=$?
+ if [[ ${ret} -ne 0 ]]; then
+ eerror "Test suite cppunittest failed with error code ${ret}"
+ failures+=( cppunittest )
+ fi
+
+ if [[ ${#failures} -eq 0 ]]; then
+ einfo "Test suites succeeded"
+ else
+ die "Test suites failed: ${failures[@]}"
+ fi
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from llvm-core/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated
rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+
+ # Install the vaapitest binary on supported arches (122.0
supports all platforms, bmo#1865969)
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/vaapitest
+
+ # Install the v4l2test on supported arches (+ arm, + riscv64
when keyworded)
+ if use arm64 ; then
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/v4l2test
+ fi
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to
disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the
pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set
gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Add telemetry config prefs, just in case something happens in future
and telemetry build
+ # options stop working.
+ if ! use telemetry ; then
+ cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}"
|| die "failed to set telemetry prefs"
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name
'*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions"
"${langpacks[@]}"
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+
+ # Prefer the upstream svg file they use when packaging flatpak so it's
always up-to-date.
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins
"${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
firefox-symbolic.svg
+ dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg
/usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if [[ -n ${MOZ_ESR} ]] ; then
+ local desktop_filename="${PN}-esr.desktop"
+ else
+ local desktop_filename="${PN}.desktop"
+ fi
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ if use gnome-shell ; then
+ # Install search provider for Gnome
+ insinto /usr/share/gnome-shell/search-providers/
+ doins
browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini
+
+ insinto /usr/share/dbus-1/services/
+ doins
browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service
+
+ # Toggle between rapid and esr desktop file names
+ if [[ -n ${MOZ_ESR} ]] ; then
+ sed -e "s/firefox.desktop/${desktop_filename}/g" \
+ -i
"${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini"
||
+ die "Failed to sed
org.mozilla.firefox.search-provider.ini file."
+ fi
+
+ # Make the dbus service aware of a previous session, bgo#939196
+ sed -e \
+
"s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox
--dbus-service \/usr\/bin\/firefox/g" \
+ -i
"${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" ||
+ die "Failed to sed
org.mozilla.firefox.SearchProvider.service dbus file"
+
+ # Update prefs to enable Gnome search provider
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable
gnome-search-provider via prefs"
+ pref("browser.gnome-search-provider.enabled", true);
+ EOF
+ fi
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins
from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ # bug 835078
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and
'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not
support the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the
workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if
Firefox crashes."
+ fi
+
+ readme.gentoo_print_elog
+
+ optfeature_header "Optional programs for extra features:"
+ optfeature "desktop notifications" x11-libs/libnotify
+ optfeature "fallback mouse cursor theme e.g. on WMs"
gnome-base/gsettings-desktop-schemas
+ optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal
+ if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then
+ optfeature "hardware acceleration with NVIDIA cards"
media-libs/nvidia-vaapi-driver
+ fi
+
+ if ! has_version "sys-libs/glibc"; then
+ elog
+ elog "glibc not found! You won't be able to play DRM content."
+ elog "See Gentoo bug #910309 or upstream bug #1843683."
+ elog
+ fi
+}