commit: 8db5cf174190be4a1046109d7438d57e7d7c77d4
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 24 07:52:22 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Sep 24 07:52:22 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8db5cf17
www-client/firefox: add 140.3.1
Pushing straight-to-stable since there are only a handful of commits between
140.3.0 and 140.3.1 (which were meant to land on 140.4.0), and I tested this
already on stable amd64 with 3 different build configurations. This point
release fixes (a runtime-critical) upstream bug #1980812.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 +++
www-client/firefox/firefox-140.3.1.ebuild | 1387 +++++++++++++++++++++++++++++
2 files changed, 1488 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index ea314bb16c64..f5ebf4862c91 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -303,6 +303,107 @@ DIST firefox-140.3.0esr-xh.xpi 272584 BLAKE2B
7fe4ea7e481978a1551976a0448da60472
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-140.3.1esr-ach.xpi 294146 BLAKE2B
14ab202940d1fa2c813b0ae3d63283f60fe5970e1eac4fc53a2708d65090bbb453fbcf376c215abc0ddcf679baf6503d495791cd39ffccc71dc62b48fd31a463
SHA512
5cf84dffd58d5eb36edae65eb599c0b444bc915044c82ecba51c178b8482d00be70ec4941b721b33a157e233e803c55db9f9f52ff3eb50be8c448c0a8acb0b4a
+DIST firefox-140.3.1esr-af.xpi 266430 BLAKE2B
fb9f798f738ec9b0dbd7f701375cdc7a8b855d393ce47b71e38491bc24d9c96394139eadc35dbc55f9243a1c089c635c85c3e005ca28aeb158e6aa47981d6d7b
SHA512
074273c8364c36364571c5400c1ed0e683088eba3e0f652036e99674075f41460368dd61c16fbc4a1a5a74d2d7d626cfc2068f67e863d0a8c8e2a39d37fc6742
+DIST firefox-140.3.1esr-an.xpi 332086 BLAKE2B
e8f9a020ca05d2fe1ab7d2f07937c7fc877640fc7f0c318c558622aa0dc4d6849fa77405840916a02b2fedabfedca277f71deeb1dd2df5c9ebc09aae07c89767
SHA512
e4d0d2d38e5bc7111845525884ccaec82479e45d804462ee846f75defbb8bd569df4bbcbe45422532c09a80c57004718c68696be4961c455c3bbccd40004cfa4
+DIST firefox-140.3.1esr-ar.xpi 444592 BLAKE2B
5ec495a204fc38279d149467b04734894eb80ee256134291e5acb1e48add26ae9cd9c27907ffa11f3fb9d6ab88c4ffeaa8580190c7476be635b35a1758dc9937
SHA512
42c1d73bacfb7642faf870f67749a30cb68353198198691d1cc07eb014468c04615ac226fe7dd356d54fcdf530d94cffbe2c8f1847b1ae9f3d7689c2333bed2f
+DIST firefox-140.3.1esr-ast.xpi 312004 BLAKE2B
fe997b74b2708426a778280636553c8f61fa824b8bf194392c8aa6681bed37287b8facd186acfb44ff01b969dd8680bd0f3f16fe49fddebf3a86648bf72b3016
SHA512
9eb5944ee1485ba858036e54e0f60e6d33914717e7cc6ab20d89b060e5de25dfcf1fb8c51cb54e51881c804209fe821d91b71c3f681ed50af77ff794261bd8ab
+DIST firefox-140.3.1esr-az.xpi 318191 BLAKE2B
fe48813dde754d9fabfeb86174d8b758997433ed9cb42700a8b20fb8233efe09651e7112d36a6bd20225ad26186ce715a49ead29719caef18700e54aba785452
SHA512
20c69cad45a447e320fbca5027980e67814871d29dbfffea0f87e9250d1ee18f8c2c209e256dc89c8119177de446dba1bdee5a789c564f110768fbef29edbdda
+DIST firefox-140.3.1esr-be.xpi 520748 BLAKE2B
ed918739721039779fbc5d9ef33e1639e593c28dcd498fb17d8a182308c60d5f4b1963a98eda91b2bf56333893a27e8ff2df4439a24a2a2a7b9c08c91c39d884
SHA512
25b5ad9f6839b9e6885c88805bac583333a090a2d9540dae9239302998614264a590c4b4ab71c0d6b2cc861f3f81d73b05a1bae9754f10963aa384299a203005
+DIST firefox-140.3.1esr-bg.xpi 454649 BLAKE2B
820d7bb4b4a14467f5ebecb17e8ec0be4fefda29886090a110ee247d7e5d8d8bf682302404c07a9b65ef1875ad1a025868a3eb897a12d5c658964700ffda421b
SHA512
0361337c53d4ad940e688b82ccffabf86b52b5fbd24a59b174fe54a31f1f7662b6c6a157560c16afa487488c1c86ffe68f3e23acc1533c2e82b0f1a4b546a131
+DIST firefox-140.3.1esr-bn.xpi 413155 BLAKE2B
ca626f0da45bd32217e7b292ce582df9cec06da0ff773929e06933ac16deec123f8b846020233ca0543a5ce51ef436af62e5ca48daa766affc83362724f0bafc
SHA512
5ff9ffaed70493c485ca34fb11253a1c8f4ad95d5e5408b5d0425a2d5a711cb499b16e97e21987196b17cd01bd61c27fea2e6cb8a39f995d571059ed1f80d1be
+DIST firefox-140.3.1esr-br.xpi 395174 BLAKE2B
8a4c9fa61c72ce487250a21071ab0ed7b486aadc8188de43aad1ae91d744998fb50fc0b06dc7cd1432b9fbc9c9bb354c410b550be0b7c6142d8ce154339706ba
SHA512
8b43a146fe2f9b9e38133f18e59a556db48c6d5bd392956e9836ed61bbf61e43719e17cc74a3ffaae3c2c87bded573d71c0aac3ad548e9a0b08e3a474e00cc77
+DIST firefox-140.3.1esr-bs.xpi 446849 BLAKE2B
e5815313ce8baf43917276d90cd864ee10ea671e84d42a91d884491d33529a1921244ebebca5c10efdbcd06d4129056dfebbb34dd06ead05b3ae06f951fda88f
SHA512
f7d5a26e703e14be00a3609c42acc963de0758ea9d11380036e90028a88c72a69fb113f23b66cef43af908a39fc07e035cce9e451099c8c3058638b490144f97
+DIST firefox-140.3.1esr-ca-valencia.xpi 357675 BLAKE2B
084fad59a45fe6a34967a7f51fe9155c3035fc6829f4baf4e68eaecd6b17ffdb84803762a1f2f858b03e28ba78e1a3e2b03fcf8839f8a906cb26145cf7e393cf
SHA512
6e497d5d3253fcf35b0477116ed01b6e5e4356ec49cdf26c57e68e04d3d0099b7b8e242b2eb75daa0ba0ddc4a44dfabd51283763bfd6afb49cf49e194364b49c
+DIST firefox-140.3.1esr-ca.xpi 401491 BLAKE2B
ffafc445929a910caf98744909e9bb406bbc1490efc67cbfe328d6d58237c667e1b7b05e979dcae0e0e730193334ca4dae1cb85e5c18b2d203b4ec01f72c0e5e
SHA512
0345def8339d41df850a5d42bc4705d20deb2c0e3fe722c413d0787dc305799942e511ec5caab0524dd1b2251885c420a68f7353694d0aa2408cac0e71d624d1
+DIST firefox-140.3.1esr-cak.xpi 390630 BLAKE2B
7750e0c298a59090daf648e1e50b04697ba4d50a5ba15621222fd71e838d1413b7f021389d6aec23037227164b15a4cd8538e787e4e9964dc3f2714b4a4d7a1d
SHA512
f9b1b458654ae40a67d51fbe24c2e80eb8c3c62068263f7a9e19fcd61e655ff44b37979edaeadfc038a29f749283cdc2c878c7019e01645eb4747ae97761d818
+DIST firefox-140.3.1esr-cs.xpi 475506 BLAKE2B
c10e8c0977fe6030a7f701a5f777f0bc13b360b76d57a9947b483b6793e8013fbef479bfab40d2645d555ee7c3bac3ba2e12d652df3f0180278b1da14346487c
SHA512
2a9aa250be0e72467cc11e4440ba970576c0a681b4d5abf3eaddef315af7ada77cce5ec68660a4030ff206e4f5c276829b224fe229ab1fd3adc71e1ba71966fd
+DIST firefox-140.3.1esr-cy.xpi 441564 BLAKE2B
be36e7fa718b515e379f0b564eec50111119615ef1fe72269251bc0bd6bb3abda2b47f8054b0aa9517e87c1c2af1494fe4329a28f2b12107123f3880902d7906
SHA512
745703108064f85e169431a5ddedce3fc16a3dd8d8e5a0e824111452a7770eb34868b1722df681227cc0307ca50806a7422091b1715bcf2962deaea3525766fc
+DIST firefox-140.3.1esr-da.xpi 430729 BLAKE2B
23cc5913863e99f624c4ad9643ae6005c08788c6e89567f2acc4d429eb0465b5dcc1f4818881340cf0a80a016ec2a1f0c9919db207f7fae42084927a55bf5429
SHA512
34022284ec07451193bd84fe4daf4bf9ef7869fd8049084cbe7a8afe37bbcf31b8b7eeba3eb30f17ea2643f23cebb8926df1c1bf77f8fb6f7fdf95bfdc2740b9
+DIST firefox-140.3.1esr-de.xpi 452244 BLAKE2B
091c7d71ec7aa59fd4ad8ce6c9956a94eb2220559a10eec48cb211b81c079ef6332c68bd85d89db2fb820fc0f63bddd0a0940983315678eabdc6490b5db4a1e0
SHA512
eadfab64d9b9fe634ed520cc8a7382247286820c78bd8d516d503971a47ffee174f673f83586ea67cbd894b682d57dfd0ef0acc76dbad9ce0a42234c55905740
+DIST firefox-140.3.1esr-dsb.xpi 465653 BLAKE2B
4eab0a7f1fb55df6d2ff8e9ac2c8fec6de40fc5ee8704ec19849e842c328dc6af2ab54bc05b65d71d2b2e733362bc59724ac5a007b4ce3f4e2a19e76def0b333
SHA512
38da8c5fee3945d3bfd1bb5595ebfb70a9efbbddf3301d2219fc21b68a08963050cd898ca4cb561a8115846cacc2c63ceab3471395927bb87a49ab69a8b63809
+DIST firefox-140.3.1esr-el.xpi 536370 BLAKE2B
74bf69984912e7d89483a6c760182a698655dd9b999f6798f973c62d6ae55750d89164e7cf54dfa9143a1a3173ceff7c704a18b5824762d32971290ad5307d5e
SHA512
c69441ab32d81411318bf90f023f457b99c0b487cb17be7fe9b639b054fe24115f784698b612f47f56f02616208ab110aede4500a13a80be2d1c4756eb1e9ba5
+DIST firefox-140.3.1esr-en-CA.xpi 410687 BLAKE2B
a6fd49b088e41c761c15b1f2eaa8cf71db52d41222980478527963af78a330d22e0f8eefc4330230bf394508bd3ceb56a5c3806b4af075c8b4c7a009517036b6
SHA512
2f38890d859cf86d07a04a43bbfc7e9f1dee638290e8399bfaf184ef76521a436d9a7869151ea608e191c159e93b26b023555518641209a040b25f0a70153394
+DIST firefox-140.3.1esr-en-GB.xpi 411011 BLAKE2B
68fc02b9aab1e6fc8e26dda7a3c60567f50112ab7c091f08970402f5c39300b4947da7cbfb08ef5a9709fa35bb4c8bcf72179543e2ced9609b93d9246bc83a21
SHA512
c08f983e1878fd69d416eca838552cfb8ee4505504166c5dd40a5eb7271d57b57ee5dd41d5db3dacaf532f97b9da4c05672b55102f36f270adc8c30e0333d2f7
+DIST firefox-140.3.1esr-eo.xpi 433066 BLAKE2B
d7a032220ed3a7a135c95f785fe6cca96421c1045a151885ff6859732b249a11b9b6e08054c11d92bcd0bb56beec0f24244a7bb6d2182a4191c3d471f1af8459
SHA512
b751397de3c56eb3fd39f7488756aa49103824e7538da79d321b65a7c93bb58b17e14babd4ea7bcacff5252e0fdca6044dbe74b99092c549f6368f00f887741c
+DIST firefox-140.3.1esr-es-AR.xpi 445125 BLAKE2B
380a121e0f1233088893b985abe4ad660e085b980185e379604ed3ff2e1f39fd05b3c8707a2c296fb1ba1d5cda0dd6b2a6444af3dfc983954ae2a2bddda341f1
SHA512
44a8a0ff8e9b524fd0f6ff6aff28376944b8bc4d7f95cf0645a35939d55f584a3a5d57a8e44f83ea4f971010fcc4dc81bbf1b4d17eca718f932b118ad4f740bd
+DIST firefox-140.3.1esr-es-CL.xpi 445893 BLAKE2B
57f75be68759e98e8325ae293ed10d9b2fc319d1b4fd33dadab7ea2df4f391bffd8ad5ed5245c5fd3ac5981af279e9adf5140cf588cfded5c19d6e0f147c418a
SHA512
e9ce5b0c6691a3906a25f83ea37cc95e782fe6fbf7aef745b52d5bc1cbb24fbec4082825b3da86a3dcf6b70ecc67ee8bfacc72ce0887c5eddfa1b93451558044
+DIST firefox-140.3.1esr-es-ES.xpi 446615 BLAKE2B
3cb04faa21e1d776301341401f99ab000029a1ea233a140fd2c80f011f73ab12efdcb7237070539cf8994237201878daa4a0c4d3e34a7d1b834932d7da2b8f9d
SHA512
b2c7c0e94bb978b6de770b6df3ac86dd0b11c558e0d7c1c3888618b0df2c72ddca515ff4848e0d4a33b6762c962af633d28186cbd5b967f3e2cc007bb40738ea
+DIST firefox-140.3.1esr-es-MX.xpi 436933 BLAKE2B
c126f847a51643f32a33fdacc43401051854209f3410a8fd1921295f5dfeada4fb40d157d62aead3df21adbff340baf04810d65a894156a4748095182074a925
SHA512
3ee8138f1a170f4aaa2fb5705bc6bfd15ded528787048bc22838476d097cb5ca50886db9682b175b93f9e17e0f84bfd34096e276beddc551adc59b1884a7d595
+DIST firefox-140.3.1esr-et.xpi 359105 BLAKE2B
17e666a83ddfa1215e8e930e0d1bf29735f75c1d069b3f2135df22c3b462b4e0ed1ac034fc5424fa997aed5839bf17135d2555bd4c884d05f7cf8137cfc042c0
SHA512
33efe7c1b093f714acb6dd0eaef38cf42203a735b2967de24f2733fe84517ad836ffaa48470ced704ab8c44667ee60caf3d1d3b6999ae773cb63d617851392c6
+DIST firefox-140.3.1esr-eu.xpi 416440 BLAKE2B
cf4882ae84cd5ba64e725505b01a5b7ff7d26db3bfd4a90717497271f137b99596b53c328a6b1bc952f891dd67adaad0cdbd86961d2b0a52ef0688a98b8b1dbe
SHA512
5e2f8dc448e6c1fcff65834befd631af12ccee5fe568053bc55b16570176c30c85e235489bfe80bac0049264a2e26839df6cce6627468f29d7267d69d41b211f
+DIST firefox-140.3.1esr-fa.xpi 421321 BLAKE2B
38f34a580803da078eb5b8d5abb0c2375fde055a1753a67f684b5f74028c4e45910116f4f4b279e5713c6ad97e5135b3deeb3d58aeb1e93719e03af2d2934bcd
SHA512
657c4d66a211759ce095a598f0e0a5e375e4ca60d0851f968c39ef5b31b3132ae919e36b814cee10a3da0b97c60a8b3dc39ccc0971ddb264d774f0e37812c0bf
+DIST firefox-140.3.1esr-ff.xpi 309965 BLAKE2B
bd3a71ac1b17bdcc6e3becc145c126952ec32247275b04ca1794dd5023e1bbaf2c475210d0ba255e5faeb0b7c3cbd17fe72fd8b5ea920b8a21e26a0f3f37883e
SHA512
0c68e1f4b5477d396f2c8107b5d58b76f773a93a6fa91048fb0dfbd704f65d167ab4e1a6fe2508713cf4fe5a9d8301361e9f266eb00988f8d48ab847434d510e
+DIST firefox-140.3.1esr-fi.xpi 429726 BLAKE2B
623bd2205add7f508734bc1e0f6bf54c55662c1c473ae2b5c0c9d8f35436c8d1cf318d9c9bd4c89b0564c2bf41beed215c1d21046c6755edcc572c2b47b72c78
SHA512
4cb14b14a0792a7b0db812f9218cdaa73a0dc79887cf2e008a9b3d5f1b01ed10d58eb55164bfef1c7288de8f2636021f8e3ed59e053a949eb0ad10f95d30beb6
+DIST firefox-140.3.1esr-fr.xpi 458048 BLAKE2B
5323fd7f311af1cb5ccbdc06e65d073037eaf8c0ae99606563f4a4ac0c6cf9fadb9dcd4e187f8c7f4d1d0157e1ababb4faeb10a62b660817fe5890fdc535f23e
SHA512
3465debf3d74c5a365f0db4dff4a981e4dba96d383718fe83fefc860d68cea859b0d477e260af10c1afccd97c81deebfe8d2bb68e521b8d368aebf27b13504dd
+DIST firefox-140.3.1esr-fur.xpi 451398 BLAKE2B
4462adbf0e1214bee0e832bdf91673b7359af9648f1e0187bf146478a4ba6ac472e6594748b255fb739d68f99a7fe960a9579d150ee1b56e2e9d75ba49314d97
SHA512
2a233944717253ea68a02d1f061736ebe20c0feff8ff404b13f3a457c0990cbafec8770697d32fb543acd355ee6bd5947b64873f22f55472a03d5926397fd27a
+DIST firefox-140.3.1esr-fy-NL.xpi 441744 BLAKE2B
686206844818ba8921121b99717926b02d12229946acee4e5a93baa874d31b45a1db8a4539115d4b2bc50291b80fbde87d707d26a20fc941fe6615e822fd46f0
SHA512
3e2039fefae48c38a49cf124167da96b6023940f369cb7a77b326d5f6d25df24cd9a8138712c7bee24f279c24a3afc001480b57a8944f5a4a66ba59a1d145fb0
+DIST firefox-140.3.1esr-ga-IE.xpi 315059 BLAKE2B
5bf88c6fac699f3c41bbae7cca37852d20210a3d4f19cc180917f17ca7b2b15c0ea2e7409dd3deec3b7f6774ea948133b8f53f9c742cf2c47b25caf8718ce5eb
SHA512
8a0cdef6419809e368f5c313b361cfb07c243282d24bac93c7e1fd89a51248ff240edc143c464691daa81a38612bf3fece9f9e5e532e8d5a376a134f62c8725d
+DIST firefox-140.3.1esr-gd.xpi 399216 BLAKE2B
07e4ad407510a90e124e8c9dc0f653ed92dad686a959de73bde528c6981c2bccf8883c7269a748e58fc81eaa946748a31125d69e5dc24eb4a27a5d5ab2029508
SHA512
e51d6bd9e17a027331cabdc68cf38b99ebe0ecd97bcde56858e45f83af946d9b197cf5be4230a5826d78b972fac9e4d51254dec2cae87c0722922ed75dd4a483
+DIST firefox-140.3.1esr-gl.xpi 442547 BLAKE2B
3fc734b5b79a8fc2190edc5babbe84b9bffe55ad739bcf0feb5ab881517b17939c9f1aad93a0a3b4ac59a4b46a69f9c0898277cfa0678943909597c85f4cf6f0
SHA512
278d043da2625ab1e8644cc0c13b6c1dc705e1acb6376d54d7f9167d763f6f2dba98fe8e33501245922962fa24bcfe6bd0cc87cc4ddb8c1c478a409754d06bb5
+DIST firefox-140.3.1esr-gn.xpi 450642 BLAKE2B
a51f9890e6e626cb4e864422d6b64e118a3749a4369a27bf0d2527d0e43275c1484695f2c3547475ee2f8bfb4a8c4dfb6ae74af20e18874312702252defcdeb1
SHA512
0d3d88fc56abddc49dc6c150c7f386684d2dd9c6821d088f27517e1843bf05b31e49e1b52c75034907175f7696bed99f3d3eea378df20ebff5ab0145707c6882
+DIST firefox-140.3.1esr-gu-IN.xpi 358762 BLAKE2B
eb61692a7a7c419ffe291cf31f892ed84977785ecb81126e200c92f2a97a240f5015a349f1082fa016f536fc8b57f9af49f205d1075473055bacd2f5c71395c3
SHA512
3763780ddf876cfe087c5c9153e01efeb83a31d54fe897cd084216f327c9eaf0bc872ada8ff6edd8d01f2cbe1ed4d65695597b9f043d41c92c296563f857d755
+DIST firefox-140.3.1esr-he.xpi 444491 BLAKE2B
7fca12403fe4dfa8f7add6eafd3c9cfecb3cc6a83403708988e582c5e5a2e10ba7fd27172e8921199a73c8b5ff4080123e5a2c60a780e49ab2c911922e92f607
SHA512
27313d4a12584370eca7ce12d1b878b55edfa9f4995b84e6b5ad7bb8f4373c1136d1f61b0f3ab06866f4e973506a0f1694ade1c05111e2429266eb02f6dd0554
+DIST firefox-140.3.1esr-hi-IN.xpi 377253 BLAKE2B
c6d3169fccd87fbdc440517e567990bbedf08aa72c3f685a3bbe0da842799bb2edf329cef413c86ad3422ac595c77beb05cdbddbbcccb9193b7bf5c817fd63e0
SHA512
ec1716c5a1ea40423e443a0342072bfea2455cadc7df82b936f154117f328d8dfc2139d9f0f67556c3fca5a04cca89982deb85528da8abbc8c0f9e7eeadda7cc
+DIST firefox-140.3.1esr-hr.xpi 437478 BLAKE2B
43a2c111dbf1fa49837f01f81b106e6d0d7d3f08ca650cc5312251392d7d413a35c2a6c2491de5536c35a1c1d36117df1e9a446e00c7b4dd48c0e57efd95861d
SHA512
bd65d40ba366c4f4296da579c63157f01ff72d0352e4876b1ce29aa98c95dcaf0ac126e672133bb8b4de44c344e2c4ba510ed19200c8cd6b79fca6c064337a88
+DIST firefox-140.3.1esr-hsb.xpi 462273 BLAKE2B
90234a2ac935ca0300f66d72777b53841ef87aa4c4bbf05afbd8dc9e20c96f5a9214c31fc70faa826fe14bb114f488b17aded9ee2787b223402fa5ef22881115
SHA512
a18e778a1e93c583cae12d9d8f4bfc1b2f04ae9f1dbfcf65cc1b60051775ef9f15a8ad289efb6894e95f5485741f46c9f7f63668936c4036954134ee08ac1052
+DIST firefox-140.3.1esr-hu.xpi 465760 BLAKE2B
2a2cfe0691f8281f2df6967548da7eed71e7ee486e09e6f1d78da960024876a6a37d9aeee76a17a0975b8995b32a98b1aa63d444b8b09c70e9e5e64274807f9c
SHA512
6ae37aa0db624b78b163a55dcd4d9263a53ea12183b8572a54fca0d4d464a3ab4f0c6ff13b54668b96d986718e6abed32c3c4e87ebe0ced109c89ff25cec56a2
+DIST firefox-140.3.1esr-hy-AM.xpi 458363 BLAKE2B
3c233dd765ab2aede65a171833ff283300d57931f6c2dd0e1aeec5f35fa3c6290a9935c0feb03d342938a186529966b08ebac307ba3853f418e434d023074259
SHA512
880fc2d9d59cf9ce4666e3c91ef1fc0ba76a4c936f3b6c7e116bdf3717e2842bfa2314935b39a7afba6bb32f889aca4921328067a391e11214a3d69c0203ac4d
+DIST firefox-140.3.1esr-ia.xpi 429684 BLAKE2B
1d63ff9678dfe0ee11c36222ca475088f3a03c983c39bd3d9bbcb7d670a9326c77a156e503d95a2a623f93650b89029425bae08034e466c91ebd73940bc3388a
SHA512
ecb5bbdd1ba1a348b14c1f6c32b2ece49b4395d6119ca624c7fba3e67cde4f1653dcd3d02b7b03f061d0988d7924830cd22fa2e95e034085a4aab9de20954f7f
+DIST firefox-140.3.1esr-id.xpi 419332 BLAKE2B
7b0f7c20586d0c5efd236afe518f9a45fd98b20dc2f370012dd3a8c7c5d7b2455d5a3b756d688915307200d3bb9bdc11953dfd61361e08f027d7638dcb66e345
SHA512
720a61f68815924e7462171a77d2783a5047d9139daa42cf4c84fb69a9c0685281a4516af09066495b976249b9fba107a6e701d7965e3cf781d85625491e7e6e
+DIST firefox-140.3.1esr-is.xpi 432234 BLAKE2B
df5ad782fdb71945d0e126ca38d4e39e4f6d8510603601f978a75e4cd191ef9756387a36e2e75b473ff722b14e1b2f47fadca0668a12d9c02d576bf2b99524a7
SHA512
0496f3925b3d7c0fa3cf03d9240de4f9ee989d77056d55cef60b337b6f1bcd60f2d150df1075ddefb6688cf4aa9c75520161046dd75f83705ea0647cecdafd87
+DIST firefox-140.3.1esr-it.xpi 440515 BLAKE2B
8a722d6aa8c5a3d1c76cb0479e69ed767c29ca3a2cc3a3137e74f16c22e4b2090e924028c20afffbf569cd329811910427f35e76fdd14ed93ea35b7348f67c17
SHA512
70d7c5c1da59ca1a3ae61d7a2fccf8a8a3628835b3539b9ce346b0cff971ac9742dd8f5c3a4421c024ed8276657ddb5da17da87497e4c13de8765e2971ec977c
+DIST firefox-140.3.1esr-ja.xpi 480923 BLAKE2B
67e9b096be033f032c07ea1daf2bb55db851b9308a436622465735caa773eb33251db8c3eeba03206fe34d69428c37b97e3aa11360c6790d13c1477edcd07a3b
SHA512
b37f5b1281bac2ebd970c68786d4ada6a93f0b383610c5c88eb3279213c60d54fd2fa7d31fe1cbfd39581716d226a099848cf566259793ddbb2c7a4bb80e6a00
+DIST firefox-140.3.1esr-ka.xpi 494452 BLAKE2B
e5032f84be8ffb22fc2a3637caad3b6bef4e9bb932d544746d253890cddb04bbb2d765a530b7a6558f570479caa164f29c9ee01f78f671e9a8797f8675b0d27b
SHA512
88cf649ce273aee175b5fd6ab34045559096dc80a94087bf17b6ffdff22d7e0dd01a30d2ce5444704d81110b0ff775bedee5f7eb218e14e875292c0318c6b5eb
+DIST firefox-140.3.1esr-kab.xpi 421080 BLAKE2B
df7a60ac0b573ee0e8e362b84e3eb2548677817333c1e02edee9075fdb1b25958970c283ac7d19a07a950c62e2d578db45e61c12f9a39c2441f1b32ead5f2f81
SHA512
cced9e738b8529009b19f70a8105c9f780c976e19218d55a84bc1d88361f46dc5325e6529d05db7200351a7ff007adde4c09d95b4aaeab5f5caba1aeb2aa46a1
+DIST firefox-140.3.1esr-kk.xpi 505978 BLAKE2B
de6ce6be076f49f9c1a67066d2da8db3c9f3163f437eb1ffa4cd92470cecd53e80a1e3e6a286d5db0d18be575765a569a68a03d689235ec2aa13555fafedd003
SHA512
6935ac289af15eb48ab42c8fe69f83270408b6bce4e7e0ec25ff298eb0e73cda7863cd5825eca286c4e2febc83835e1651425f194620785c111e5dc72b8f3aa1
+DIST firefox-140.3.1esr-km.xpi 348568 BLAKE2B
f81bc8bc1c78bee5fb62925204f144b1606f2f7d3c255ffdca95daa77f055f5db6c2f32f928cf61e5546c7859f84456bb0b39f689608cf93dee28d6d22e324b4
SHA512
1d8397e75c2eb032d8543f44bffff527287ca79caeb7f3c834694df6b0ac6a078c432ee055e7aa55ca8e3181eff0b12ce9cea5de37a0966712340c0cc65e636b
+DIST firefox-140.3.1esr-kn.xpi 331569 BLAKE2B
39656e3ad105e457c206fa345f95dd4c288c88b5f9c0ba3fd117c245bc2cef517cbc04a9be85820dc327850c2689849503e3796d1c0a97915e17cbb442fb0146
SHA512
1d28066d32fc590a238954b79bff3a33b9d9f8c8761317c68798831be51ad909baab68ff23fb5173758a0f013065ffb9397c41f364b55dd242446310fc054c9f
+DIST firefox-140.3.1esr-ko.xpi 467171 BLAKE2B
90d1fd00e775e9d3efea01c1d2e3e0d03e7c740f0d1f4f87914dd8fef0cae40b42fdb233a53f9a50a9e03116b10d768643b715ecbe7a96fc5634829938c0b134
SHA512
ea359a07c2b7496f670dfed21549e4af9909aa21a809c954bd0482e74ac00ef17d7ca32756c57fa414efd711ff1c777be049ca041a584f9dcc6064c192c756a7
+DIST firefox-140.3.1esr-lij.xpi 319072 BLAKE2B
fee33424bbec1c0aa8ab39b46980ae8e02366db2f70e687002d4a9f7630e897c6d3a97628ade8bd25c0fd0889d44547ed5ceff45307e763b3dd8c08392aceeaf
SHA512
dc50755a016c407154fc74dbb0a291a925772a13ca3b4121e53bb4e1d377fb0ff6cc7390b71f31e031738d87f92c2278ac8bf436a86fc07b0ee8f73c7f61b5d7
+DIST firefox-140.3.1esr-lt.xpi 379737 BLAKE2B
af3244fef76eb6c5a33493c5c5728846d9b71d3740fbca4e0db9be2428d8d4070753fabdaa63ba5b237ab1b52d69d8d9c96dd366a0b0a8b51bde7c7ff3c48e10
SHA512
030d2699320aa8ca703dbada4b1a2f42fec3ae2bfb5f9d7b54e70194826d896fec37a4b7a9945c18a1bd953f60177164658328004e541657a1f662e10b2d8705
+DIST firefox-140.3.1esr-lv.xpi 386109 BLAKE2B
f0dd52b792620121c0b0586365e0de72127c899939cc3e0f3f915c2d9fabe32f86c29ae7b1f8526b09679fb25bd545c0fa65496845eb072b7fe114789f983af6
SHA512
c7d1602324ffcf3db50d662945ea9a0426a8d2d428e2f63b27a00d4935b69da350d0c0bfe2eb3a45916952b189543cbc1af85e8609a2e20fa630aa4dd659946c
+DIST firefox-140.3.1esr-mk.xpi 316628 BLAKE2B
c76fdd1ea23cff6232863c3889f422385b11543fb4a99436ed9cde109cac24b48bc6a1c1dc87a46a665e2eee8181df3c2dfa28ee085ef9f899735897b2f9db79
SHA512
a63e802dbaab59999ee391ad7132571c4261c48a55007c2e69c501c84c7a0533c32f282f7f43fc187ace0193fa67ded2ce93ef0c4da0d995176c8940c8d01a4a
+DIST firefox-140.3.1esr-mr.xpi 356040 BLAKE2B
6b1ae59da2bee2290995ef47c7e15ee77ba7b89a3d06ffc053969fa10bbf9e1146ad45f35afae87c7d8ee4dd9d2f774953eba90fb8f7ea38ee5f60eeea2e66a2
SHA512
5ee05eb0b72413f11177adb651f386ce697cffa3e1e07ad5103cfb7b8de285aea946f3292a340b86215702b3758324a4aad0e5fbb301d6630f32f01cad6a6028
+DIST firefox-140.3.1esr-ms.xpi 295179 BLAKE2B
695e64b8a78890198756362921dd8f8b91c8d73f4c82238033bf692476206df9a28d6d1036bb49700417aeb42ea71f6079989873fc489bf85d9f153a401d60cf
SHA512
d208f93586d22c4c29622bb2061dfc45195f72d3cae382e58d262cc847113f9d8ca5e45b8269add4d815d6547cf02d4f6c4b6e2e795a46b33dbeb6cb36d6ecf8
+DIST firefox-140.3.1esr-my.xpi 342820 BLAKE2B
45c78ecc5ceaac8f832f217aa02f4d190ab5fcd5f6352258886412a6367f5b2ffc99ca270a2525665fb8d703446c7be7e46694a101ab6c692bf56454b92438a2
SHA512
98e15812f436c2feaf2f2339e63cdd4ebb1ad6497f317bec128c2790418fbfa8b8d968646b3f07a9b21bfa99eeaec6842b7cdccc60544fc41c72b5985263eb39
+DIST firefox-140.3.1esr-nb-NO.xpi 428934 BLAKE2B
8fbb216dc138ce2188533e7264d1c9d51114d72badef4068eb3aec0836746660209c1669bcfb897d3f90346bc51a762d23a981951d11a7baf3ebe979584168a7
SHA512
d46ac57428e367b76a93e36ac17ab92d4fd6f8a8842da998ab528aa0527bf9053c1c9b9e73ebd16f23b1c6329a266de921ff28e9d8d96da2203ca47e37297981
+DIST firefox-140.3.1esr-ne-NP.xpi 348797 BLAKE2B
4c6b0d27f6ce965c34f1bd087f24e8df4e19fb82d6c977137b7febb6fb4cf2b45d1eb2e9df70929fee5fac40bd192913823c66acbc80d5df6600747d08818058
SHA512
e6745d8cab994a89a7ef8d973da52fbbf65e6c5fff4e6a705d95fcedf7ce2cfcc3911f79a03921dc5dde6f8bce969e53a5368ed3455ae7b750e1791d8c329f59
+DIST firefox-140.3.1esr-nl.xpi 435786 BLAKE2B
4f988904b82e8becdd16cd5a8ffea5d9895d6ef438c1e80f7481edd8e7c6a19b30d829a269c7143092a06ace9d4a5fb4bc69f49760c80a45c8a6656b2cd7520c
SHA512
035357af0ce21fa641db0256545a80bf9b2571b8128e95a185516e42e5c11cfbd8f61d4ad30224decdf993dd0a4b830977e40ef0a3bf049b336697cdda9f98e2
+DIST firefox-140.3.1esr-nn-NO.xpi 431811 BLAKE2B
b4db42c9d78995d8e15c1263576adcc87a747a4b0d43a744e3c7d395fd1f9c02e7e1c9235b3a23ea202e593fe7a7d59d758a234eee8d283c7178767e97a92b4d
SHA512
94b4ab762b6a96c4c8fde46c64db8ccdc9805114c748261a5b772492c564017634594d7d3fbd1824f82d8e880385bb390846f8d0d5ab4f9e97d4f0c5a3fff823
+DIST firefox-140.3.1esr-oc.xpi 410726 BLAKE2B
2445157d9c0c8b403b1b2d453ab9e55aadf4c088221d9914c14f50ae60a78d540eccba4c06b802558c3a581a03a0fe2dc902bbf8f53560013fdb4cec0e3496f1
SHA512
8e22700a3c3f78d8ede1e0a38029cf21ee476c29c1c2ab77a7d4eb59c078894d895b84e17fba1ca25bc891f155c3f97521bcd1d0b5716744dc0e5f22557085bf
+DIST firefox-140.3.1esr-pa-IN.xpi 493387 BLAKE2B
4a4abc572d05d257ba30d138a5666b36c6c1b8e6e8ffc541ed08da6e18eb57aab7e217602280fdc8fe6d1f8cfebd88bc152e32b2804267106ca228aadb4126a4
SHA512
4c1cfa3bdea2b3664e5f979ed840fbfad6225bbd67c3b62b1fa02e877fb4e104315ad690033a4278db53ef504e56cec7d125dda1597228b89e005bdf32dc5c41
+DIST firefox-140.3.1esr-pl.xpi 460176 BLAKE2B
6428041f0f2bbace3a2807e1eedac867c835a0116ef5580732d4976da4c281aa7172ddd23adb1161a4efbe4f9a3ba61cf3923a37237f068060aa3b6cedd20ad1
SHA512
208d2bfb82594a336fdf4f3d26d509ff232c59c203cf1427f4733e264e2aeb0b2f5410d2ee47904b300d0396aed9ae895015b222f805b5ca86382a41b4420e96
+DIST firefox-140.3.1esr-pt-BR.xpi 440298 BLAKE2B
e198c4be5658a9ee179d238c5ed350cf9c197034567fc8c18af692f8a95bc22b20be171ebb09100437ee4a340d5de2f9cc25f2a6991873196669fb28241ffbc5
SHA512
97a7fb2fe9a1cd4367bcaef63f292f3b7325a4207b347e86719f158885eb1f3590665e71cfc8a494ce17d1c2f08f9aa170949727108188fa9147b84a80ef1eab
+DIST firefox-140.3.1esr-pt-PT.xpi 446028 BLAKE2B
8b5d1671f2bd6f26e3d5a3cc199a103326bca57b5f9ddd9a4be3230fb966474b520fff7ee39d40f6128cc8fc8651e70a7de613192dd328c1d7fada797f339fe8
SHA512
1f8ce94cbf86cfb80d749fe84b48afaafa774aee41d6e830226d4193d6ebedf34ea508df4ce6c3f466fcba0d43b6d67dea3ebdc6bef13eb51216c06335731c56
+DIST firefox-140.3.1esr-rm.xpi 436306 BLAKE2B
29234c75de44a62ed6500bff457eeed74b0af230d2abb487c87c174197ac097e8caadb143193fa2c337f9ebfe34ecae3e937244ae26f481dfe1d0487005c1a37
SHA512
9c75f5e8095a551a7e9d06294d2ac02f196311a1ef816c8cae312bbf63222970244ebe6561dba980f5a794e59fcd528624949f97a7693e977d4bcd81aa4b8a93
+DIST firefox-140.3.1esr-ro.xpi 452376 BLAKE2B
74bc224482fe9d0966f1cb2dcebf40b4d9a2deba9031c99c6adca9b7bf30c582f9aabbde9a3378c9f30ef65c394b2d8a9432b2a344d3bee37a05c6a3be79ef56
SHA512
8347ab8fdec849032d4429eb2ce40346867fd98df30401ce21890a4cb5de116e3ce440cfdf35ba35e6f0f3222541d11eb4802b39843498c3c4cb049805b1e823
+DIST firefox-140.3.1esr-ru.xpi 524709 BLAKE2B
2b99c469112c04bf309a4008cb93f5cb5f2ccef2f6319cdbfa8324cae3f5595f60cbf4d02d2a6c61d52b51cc00eb30a7224ee503bf7111b56b40c255a84490b8
SHA512
9bede0546f26daaa552141c21840e59ac7d4ba1d5bda6c635d147afbb872912d00a0a9033471f1c1f0727ff8004fb025322b59c9b71746cd632b613500f57e1b
+DIST firefox-140.3.1esr-sc.xpi 408006 BLAKE2B
6301697b8cae528f7776f3dad9c5fdef3db150bfbf2c1100402e455f2d24bbec9ce820221a2ae8b3212b2e99f45ab4cd17770322130500cf23db58a304f707c5
SHA512
873f8fbe897b1887b2e66978258d4714ad9f35fd08837c3e6c3a95f0e8f4bf43f98c865c9ebe84f5aa367019cc12e2c97e82588b76a101e9b6632014de2388ea
+DIST firefox-140.3.1esr-sco.xpi 322435 BLAKE2B
65e8cf137dd10baacc8f4ade8c94533f61e65ecf828914fcd616ab9ae0b600c5fa0e60aeb20b3b57beeb08916369346ce86b199c8cfd29f8fa5a3baf23ec41ea
SHA512
2cf62d55eaeed4466ea792824d6f737415a6ead6dbc843c2b2e51448064957296d73d5e6dd729e9151bf66e972226e468e119bd337a9d82124f57986fe48bb40
+DIST firefox-140.3.1esr-si.xpi 411387 BLAKE2B
a29263cf9f1050aa51e5f56b8184838e3f9f87231e95bea8fb07b54c836496afe5c191e2f14f7fd51bceba3203af2000f9a4e919444b50f088c63b139b7c9000
SHA512
2e0e8bf8a5a9f9f36d8bc0657619cbe8d9d671691a8d23494d3db83df1b88cfc98140ed93a76424e484a1d1c08f7a442f2158187e9830ee9095d5640a88662bf
+DIST firefox-140.3.1esr-sk.xpi 467570 BLAKE2B
1528e3212ce2d46386e26656941431724df33d09d4a7a7dcb89099c5e01758ac8eb7782a1a93aa6a951156cce7f7b51fc9ac5af3874f31d59f0ba9b843aea914
SHA512
cd68046d71de6471df59ef765a7c2576a627f93776b02ac63b6bc5806dacafd60fcd50cf9f6944de133c776f9f05a2ecad7070fce3f20071f03f3271cfe00d98
+DIST firefox-140.3.1esr-skr.xpi 485665 BLAKE2B
78cd54bd110a217780b2acc1bdffc70c6bbd371f0ced90fc90d072c7b938ae2812ad616fce8cec8dfe5e05052a1ee44beb9707be5fb8b0d10e51b05835214444
SHA512
b55af21979d4934ff1c05957d77c462a0212bda68e0c21c14270fd5710e37e5d4fce0bf138c52957356ff9660a6d82ecd386324dd44171bae2111c16f997277d
+DIST firefox-140.3.1esr-sl.xpi 440780 BLAKE2B
3f8c326c5d136968d8f4a4dcd387d80e129dd9a94d0cfefa82ada274904d13bafe00dd9bdd21663547f8097a04bf17354a1984d32da374d63f3b16e4f9bc2707
SHA512
a4251c1c3c254fb07f4c5fbd6ee2f18b45256308cda20a3ddf55f80dedf9a51db33d7159a5299347561673888dc251f8e76d9d87090c8eafdfa743535c11b383
+DIST firefox-140.3.1esr-son.xpi 272924 BLAKE2B
7d339d2f2be7766dbaead16a450fac8e9b3e54cfaa3dedfedc38c146577f693740e33fb31439d344077bd72bc259798ecca8419e3efa20393b03012d764ff8d4
SHA512
302ba773919d48070a139f75a04aac091be1ad5991fc3d2b2b1d0ecaa848987353557b80512aa0e1bd4d46e6ce42dfe2729a2f1a713d7d09d7fbdd12390a7b0f
+DIST firefox-140.3.1esr-sq.xpi 452871 BLAKE2B
4bb014ee37db3d6b04ff7eee24414925fbc15e6fab5af67707e999f0e628e069fb563d9ea2c5fb46076ff060ba8b53bb0d836e01f16455cbb627a6d5ec611781
SHA512
7879d283707b1d73057e3bf3ec382eb31bc1e604fcc9270548bd7ab095d97c0f9a8cee7b29b7b5c76ef640f45fd00e3942443bf14b20d701ea10cf92756e803b
+DIST firefox-140.3.1esr-sr.xpi 453158 BLAKE2B
7d4d9bf64464103beec258034273de3715d6979d0d932f6b2da71940e9f832a9740f3f0f2d573afa4a8b8baa24850a4b1c57ebbf161c1407e05867d088153881
SHA512
a24d8e35c61efa16be6aff9eba3ebef2ceb37585dd3948a7b8c090361047c63e80f854fdda7720920ab94fe4fd823d4d1d823cf3a08d3045fbeb003c9cd1a41c
+DIST firefox-140.3.1esr-sv-SE.xpi 435743 BLAKE2B
0162023f5c8ca97f5ee8d3046a7595cf696760615726c5739d3c6f44667003b6f65c4dd7792cda4a3e616d248822630141b7f4c674ef773f324c3843aea9860c
SHA512
aec286ba8e0673bd74e42525b49fe4044332b88e1849f30bcda569a674b972c33fd0bdab9d9d625bf5b7a35d417322942a584cfa639113850081ef5e4e53220c
+DIST firefox-140.3.1esr-szl.xpi 341470 BLAKE2B
dccb0a285f0d1a930e80fa171717831702a32c522a644492f738c1b369b2ab112d4c8e71936186c95d1ed64d416f0f7e9c88f447e1dd9b27fbbabdcc26d666ae
SHA512
81049cd7fda95311d0721d529de851d6f6e1c0eb55d42c42e3f583a94eb0f1959e2fa4cffb074ce21d2d394ce1bb9dbee6eebf0326b19323a683bbfd58f04c95
+DIST firefox-140.3.1esr-ta.xpi 337939 BLAKE2B
3f3da289c625d62241ee3274eeb45b1e23dcbc4ecaf79d0e7c5bed89e84033deec3e46bf4f2a59c9853ebf5e4540c661c3e7253f7e3ca4f60a539d2bdc09990c
SHA512
3086498ea4ee78daeff59f851572bacc409cd018f8a7fccef58845cf413d291157215597d0b554db6c5bf39a0c21dc268c9286be80c9610c948c9fab0256e470
+DIST firefox-140.3.1esr-te.xpi 381988 BLAKE2B
092c9100e6d9e9fe756e1aa161ceb39484446540ce95d478b54e40ffa14a77b3041750a199c9adda5ab9eb050b9328d1b457aff3c2af84fff34d9532e33f8eb4
SHA512
24d269940b001f20867006a27c976fbe079e387fbf7d80f623126a2093244bd974f6e070ad11a4d46871b9fedabc4d335387c0237c5975223b64fc92e99721d1
+DIST firefox-140.3.1esr-th.xpi 505282 BLAKE2B
fa419d1f5cd90b2afd5f45b6e92f0785992153f3188024a03f0c289c9503eb3c1051707788ab0c645cb3def5fe22c7241320c4163a1c084dc60e06196e1858fb
SHA512
156a35b8472719c66f20b75a758d16bf063f7371f1b89154dcc57f1cbe29e9b6db9efa55cd17eea784e7e173b3006f64f3a492219da4e8d40c4994d9b537c470
+DIST firefox-140.3.1esr-tl.xpi 356446 BLAKE2B
64c3764ca0d7e40f0e067b11c88a81b4f3cdcec5cb8f9ded5cbfc3d87dccfe3b885a6cb6dd1bd425723af13379c214e32dfa14355b8895ec850a500e613374a6
SHA512
8f7a3f4705071e18569d516c71b55ea2c1f00d5bd78946f4e2b034cbf832ea5dfd47e86360b185fe4607263f753136aca317f222093f6cd1cd60c6d56cd5b54a
+DIST firefox-140.3.1esr-tr.xpi 448874 BLAKE2B
23c94846bd4f88340dfb7409906c609e21a5fa8e77da5ec9b5b15962069ca3aaeccb339ae4577953c10c8e18d3b69151fd929dc0933603b11826e792fdb48871
SHA512
1214323a6e6ff14bf6d47cc201ccc6a35ad3a8b1a590a8def5fac26bce51030c3200cf6560c752538972de218a9d2a226392d86dafe060755d06fa16ac1c1c24
+DIST firefox-140.3.1esr-trs.xpi 323787 BLAKE2B
359c48a2d14ba35a844d63ddc274f58ff0f6961f2465780d13fb416baac71bf43956d49d872fd1bc7fa8a984a87b7842bb3c21a39f59f8dffffe1003c560407c
SHA512
37db2d0eca11f3f684edf25588e791450c7c162384f2ab641c846655bcd33533caa5eb9e27d87f62612a91059ece25b516a8534ebe2ee124327366fc5201f841
+DIST firefox-140.3.1esr-uk.xpi 516293 BLAKE2B
ebb07cd0176db2505abcb22541a4bcc8306a19265acdc0d6603a79c22ff37aff757fbfc852bc2b0ba65b7702cf08714ecf2536a97e9c39e21ab2bb4569b9dd34
SHA512
32023773df68958fcb4abe620ceb975e0319d9212205ea3d5e5745852956b04c93842bd9429ea31b25e1bdc8ca561aed8f8cde671696165b27ebcd7a09d86ab0
+DIST firefox-140.3.1esr-ur.xpi 369973 BLAKE2B
2b4158c6aef8c0ba7814fc4b2544668ceabd7ff666ba1b9804f30a08fb0c25f65c30ba649bcbe8e4fbed900dd982c529ee5ca76a1ba66d91646742d4d96673bf
SHA512
94167f389c5b0672c55d380110d31f82c587141d88b1fde86d764d6da1645ace7047048a73f6139ef257003d13671cd7ecb71a19899e0cd00f44651e67b6b50c
+DIST firefox-140.3.1esr-uz.xpi 303272 BLAKE2B
7b7dbf5e5cd2e64d2bf7a4f55ac03a53073ca84083c7463756b4384ccf49f7a21869a1472a866cec3774d04d0481ac5f46f210387dc540c3cc7474ec995a5578
SHA512
ddfbd774305f355754d512b874d419fedf9e1c88baf61e87a4b8b075c5b70009cb175bbec6e014f70b87e1cdf47624f21789e3c93a80ece7d0455d4713e13672
+DIST firefox-140.3.1esr-vi.xpi 468690 BLAKE2B
760ef3ea4aa72f5eb317987838d40cee1d30c424cc0a9d6c1ff6828e56938140761dfaad0a34692a5f13938701811ce64696dd306ddb783db5368858645a4d24
SHA512
52048018306eace2428605149bc642cb75c46cf3b4c275d614a731fbce4cf4076a95798b8310be7ab5fc71ae22d98f3622ea8f0f75c5948f1e74cbabcb8701dc
+DIST firefox-140.3.1esr-xh.xpi 272592 BLAKE2B
ee164a3a014638719bf756cbc7d7a427298f2f1fafc494b08f8149094afee64adbde322333d10c9bac7c209196999a272187f750755a22ab1a5b0664f9adc905
SHA512
af1fe21dbf477f6d638fed60d3dff6a460ef7a5fc4b6ff3bc98c6ab66139ef53b8f9e38736ce365e09149e306458b469e3862fb58ee63aeb51fe698888b82431
+DIST firefox-140.3.1esr-zh-CN.xpi 460319 BLAKE2B
fc796b2423d40d93dd59812c359b2326b595c98686c1b228fe42fdee66fb2557f894c983cdf4c0bf9fb3de7e6f2ff8fdfb5c58064f8c0ca29f56d4844a189741
SHA512
0d9f1879b8edb8a871d011d89a6f0aeb7e900fca1d53ac9262f68facdc030f535edb5a297cae4234f70a794cbd4c95f43cccf7a03d4bc680cfeccad55d7f4a9b
+DIST firefox-140.3.1esr-zh-TW.xpi 463325 BLAKE2B
67468c6d1b30b7f1a1379c9315d63909ed2e28a98842c55cb8d02ddb9d337155a38508fd2b3b7a34746cbf3110cfb66054c6fae56cd2ee776c837c5cf7ba0770
SHA512
ef47196b8fa9f92bfd609823e41f95e207b6dd29963d9733276fead5b597698c1f9127d5c96cdc1d3333dfa7f1a845b0b6693e2cc8be349a8fbf13a9daeb301d
+DIST firefox-140.3.1esr.source.tar.xz 634713368 BLAKE2B
20879e302ec685b782b49356543b4edaf96ad41ae5f62d33deccd43d80789487f8de9922a095672c312c98f279f2c06d45d6ed55c3c22ee583c936d1d172b3b9
SHA512
a9302d99d7f07f4b250aa214635814964dd083204268e05fe877a3d8330b9c0caa6c29ed19da71bd88979b7cf39ed52f17698968b0da5b0d7430b6764b43b6cc
DIST firefox-140esr-patches-01.tar.xz 11100 BLAKE2B
7a433e80efab15386ea69fdabae0354fb7ca431e0370fd642a864e20b2a6b558a187580513bbdd92b2eea98059eb4ebc5eb2117ebdab810643a842eeb0d82da7
SHA512
50a33f760d57c52a233fe6769931a5c869f72e68af2492fb068f2e3f2a3de5acdf21beea01dc6069911bd00f15c16b26e40e58a9c4f332d3247bbdceac4cde93
DIST firefox-140esr-patches-03.tar.xz 13452 BLAKE2B
f1e5da9400ae5d15dec852f0d68d470f40cff11764813bb7429f320d82cbf838e4e6cc7097f42d154a4a67061a66ad31c0749020067fd2a7f891c9003d163b80
SHA512
966aa2d0b8472bd4c002676572b0755cbf0ecce8709776d07fa2cfec512d942ebc735c6ac20c5a5a19af8e00d762e8967c7d43325987c3b331c8c86183eec044
DIST firefox-141-patches-02.tar.xz 11400 BLAKE2B
0986721d628294f2ee9b7b0a417a146418137abfdcda312ececd47ff35d5cfffb098a91e159501100704fe0301481687d2fd24ae76039c384ef41405f21513c7
SHA512
320ed49fbf3edec18de396f7b67a605c01335b8d1634b3a7408437db4b99ea633f50298c111e81218ee33535b344b047e7cfcf7dcc7345004af303eda387536e
diff --git a/www-client/firefox/firefox-140.3.1.ebuild
b/www-client/firefox/firefox-140.3.1.ebuild
new file mode 100644
index 000000000000..117a34efe0df
--- /dev/null
+++ b/www-client/firefox/firefox-140.3.1.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 )
+
+# 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
+}