commit:     f6d753b272715a709a6ecc5c66e72487db69c37e
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 21 19:42:19 2025 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Jul 21 19:42:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f6d753b2

www-client/firefox: add 141.0

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest             |  101 +++
 www-client/firefox/firefox-141.0.ebuild | 1404 +++++++++++++++++++++++++++++++
 2 files changed, 1505 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 864ca0278391..1ef7d9c1db2a 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -608,5 +608,106 @@ DIST firefox-140.0.4-zh-CN.xpi 460037 BLAKE2B 
ba60349550da85791de7b52b822a7de35b
 DIST firefox-140.0.4-zh-TW.xpi 462993 BLAKE2B 
ec676369121967ca711921b9b7c90448df1398f44b401c311c2107217d5d6a1fe5a6cf5b3a584bbcae5bb421dba1ded1f7ff40746d290726d5bf2ad595f0d54d
 SHA512 
31f4a7377548cd3c4f6e8aa3dc6b0ecd6fd35dcd72f7899531eed367462ffb88a793b32f229851748303bb9b851e470b5a745243c3162f1994237ebeabc9c761
 DIST firefox-140.0.4.source.tar.xz 642671864 BLAKE2B 
7cdcf5ff710860c1e0e2c7fb8e1ceebbe4211dfcb847b4f2e547eebf991214e00a8306452fa30899b7b731f1c89cd7af1efc005203871fc59e4bb597822b3b24
 SHA512 
3de7c0871b8a45683f5c226fb3e91e597e8f89ef154b208b2a57c4d3ea9f39cb5c69ecbd5eca3b6da68d3775688d2289c1360c7d110c67bb1be1cf26ef8cf36d
 DIST firefox-140.0.source.tar.xz 639951312 BLAKE2B 
588d290e3ff70e47a0235ff8abe22c17a76c28389ff9bcbbfaf05efa9fc37ec29a5f64c2fb736f270f8b0c0467c0ce7ba1b5c7f186c86ba1528a4d362ff1c2d4
 SHA512 
ef209827a422bab443e2b6fc59ac16f0ad99293b3c8f10a978f222ac8da5ff568b2fadfb97784feeafa4a24883d44ea2f34b47b2bb19863a27e00d2d787b8ad3
+DIST firefox-141.0-ach.xpi 293971 BLAKE2B 
0a7e5f30d0894687ed16129a610a5cb5cb4b3b7a8620b10c2da6610f97e238273dbbdb473d16a85ea6eca93315bd4a7c8421b30856d23baa52c3b9e19b780d4c
 SHA512 
ae7507bc62eee58eff42dec17a89d5bbdbe4ba8ba1498c301ab75484f99159194ccccd06bdb548443fc05f8322113c58b44af8b943c08f549892fb9d64506232
+DIST firefox-141.0-af.xpi 267008 BLAKE2B 
9ae2f362e2b27a578c18eb5894e3b885408b4b5df9ca643acadc67b1193bc16a2082915b74cbffb45064ad1390f535f58b47306e032b538762fe1f8172421d7d
 SHA512 
e1ea09e1f53ec02908939feaa4ef836c47e3b5d59d1742fece1775bfe299274396f3e0cce0a689de69f7f0bfc4fb80e3e0b8eb7c99b9a24a902366e9481990a4
+DIST firefox-141.0-an.xpi 331809 BLAKE2B 
39843f4276abd0d4370ca3a47231385b3459f2cf7b9852ada1cb2af17bab3ed123c81f05283c1f135ddab3366b95d0f1ce07aed7aa1ce4ed57513c9ad3b4ab8a
 SHA512 
82ddb23224d8a5cfb22339539d19feb06d9373920751359da9e0a18649749e42096cde16df8891b40aaba66dcb2bbb4a5ed8582fd540263a3af2fb8ff748ab0f
+DIST firefox-141.0-ar.xpi 442744 BLAKE2B 
4a4a44be7eb752683da18d70d444fa6bf4d1b206ea9a4148407e108c87ddd47f481d0d058af721f0ebd72c36e2c6a34e29335220461f5b49b13b35611f2bb9cd
 SHA512 
35849eb4b0ccee7273bb6808a27d266b07dc6a6b761084eebb9942667d216862932bc763b4fb18d8d7b8165b2842663f714f968030920c67c5dfd65bc9b115b7
+DIST firefox-141.0-ast.xpi 311755 BLAKE2B 
2c7fcf982b506856c45d461d146fecd1c9e5e839a3de2872f5b0144c9fb7fe470161b96c24f7d5ea850779235337dd009b52deac9865f2444116a69746400597
 SHA512 
397f5bef626100df5005a77a27a3350382ac156916ad8ac91834d8bf87dd21b3f8f88c3e703c324de2fe854963cc11cd8286a603d42cb883fd915c4155d5513a
+DIST firefox-141.0-az.xpi 318280 BLAKE2B 
8ce7d9496d57e61a4bb6fd505c09cafedf525ff9e42b80db622f2fcdae95035edadaa1e28326e7eb83faec74aade5ba76095789bffd9b48d8cc85bc207891301
 SHA512 
b8ce461e431fb16ee883498508f8c02c7d56752609e1ed18d5c36697d2a21809d8b074a47bb66eb794a6f1f24b35b44e9f25f489f7c7d755111f7c2ab355c10a
+DIST firefox-141.0-be.xpi 520937 BLAKE2B 
ba90cf8e7c8ace665b0a1426ab29da09a7207d3bfc24cab6cb5f6aa1bf18db73bf00135e3616d869c970a262a332927bb265b623a648dcbae1d2ec3f3d830890
 SHA512 
dcaafe44dfd5a56cb90fc48df90aa3a802dff2c0cdd9120b4ea4b230f78b49128ca82dd3f096cd33c8f517caede73a0bd30b397569d7dcf10207eaeda11e5577
+DIST firefox-141.0-bg.xpi 449770 BLAKE2B 
f5121ed2165c9a214f0617c7299297c0cfe727e0c7c16faf605636ca5a4f472dc7ff0a83f7d517f27f3389f23e9cd58745db9543206bdc85203402ec843572bd
 SHA512 
dc731721108b3fa1bce1fcb522820087a36f95b2e73e1af73f662aed4880b67207c00240bca59d9f93479f354c79b72d2cbae4dc5b6564c3c8d2845f60a3af4b
+DIST firefox-141.0-bn.xpi 410921 BLAKE2B 
7af667c4b6e5ad03e2106ad0d259b82ee034e6c4d40f9ab7c0dd28b6842a123732ccc216ca14465be89486b7e6191da548c0c4ca4a45eeeb3c0a7997129d8add
 SHA512 
6d407c0f31f45b3a319149ccf9cfb775e45405fc3d4e5543bee562c5ce2b189d87a6d59dcb0dd7365435cbc59628298d499f57bed7b6eb051abb962b2ed64a51
+DIST firefox-141.0-br.xpi 394765 BLAKE2B 
0b981d9ead7eaa468d7a980d6c3593de855174ca40a64fc2971f6f8f8117a13c78d762fb7b0d8e881e1cbf2468ccdab3345e19dc3c4ef564839abc5dc61ccc81
 SHA512 
d57a00eb27c0c6b658f0e1b3c1b0598a0ee300fb2a3afdc676d3bc489b86425758b09f696e0dd8d5f62132624a4e633007bd46874bd12a413cca47f1f94c5950
+DIST firefox-141.0-bs.xpi 447980 BLAKE2B 
4d9bab84db1f239763b65760a1d604fd4abf9334fa61b311099736d076c4920a8a89de5794ed2783b2c39db7749d59c722d125168381610ff34af2b6b8b0dffc
 SHA512 
0144027898630e8051298e58adb88ec7275647e7245af7d6ca3ee1d84739fca8ec448ff74a638d0daf52a1cdbc9d9d399e95a50f539735f4d431d4e4544b77d5
+DIST firefox-141.0-ca-valencia.xpi 357401 BLAKE2B 
9c92ea60161ddc786e17c6c8ce4a8c5fcc05172ca16d58738c4fa597088a160bcf8cdadd51577d0b6891f0a6c470c833a9d5ec3d4dff6ffba1250fb7d6720d9f
 SHA512 
3a65a0fb68d359bd4c7e005fbbd109bbdd07e911dd90242b26c43788470dbdea061ab10d513f6667a8539c4166547823c4214aa114a96fd031f383c66636d839
+DIST firefox-141.0-ca.xpi 396437 BLAKE2B 
2fcc19b7d1b77f60425b3ee71e0a09b94fd88f4ae26cec65e0333743ef6d27270fd19c236b813e2ba697e07f26ee238e0b8d9616c784f1313713adee119d1456
 SHA512 
3aaf47adeb5d9e99678c7eb038e92bdbc5447cdad8a51ea67f7acf4ff504327862b7f6eb188aa39cc74792fb2b239d94eb83f93e3f83734077e83f7f25caa3b6
+DIST firefox-141.0-cak.xpi 390003 BLAKE2B 
4d4435dc1849d5efa469767e422ac0967fdbb9c7048b753a61b4dbb0ae6ee256e9f97ba24b1a5aebc8192b27e4a81bcfd9ece288b6734839c78f510bbef2aca2
 SHA512 
510be706910596871813c54d043471d0ff2e46700ce2342822999d50fc2afb08bd3a6a38d7ead97d65847b40372ba5931c3536a9a84dbed068138a2330051516
+DIST firefox-141.0-cs.xpi 476677 BLAKE2B 
c1bb009d0060086837730ae38d42bc5e1970febdf81303478e4dba1c8b030d16913baa2281d755430440068646ffc8b721b625b93728a3461d6883bb886fa218
 SHA512 
66cda12513dae42bb3f22ef54f9434621f0d9d5fd9bf83553e6214fa6d8454fae31a6722327fd6ef46311dc9985424962e16e490f95ebc2000eedd57491efda1
+DIST firefox-141.0-cy.xpi 442729 BLAKE2B 
1383e420fc032f7e0fc925f6d44926d604f38be3bd16f78c7cd93958db4e37a5632b89b85705036e6bd083af9e5ebb40c22f0f4e006557b5b0b4ed5229923855
 SHA512 
6533a7f0eef6a4b7afcf1382ce07d545fe91b1c165e9c576dfd988eb4c7fcfc4418aad2ad4baf6a99f351c9233c9cbc9e6aafd5ba2204e979af5d4a37be754ca
+DIST firefox-141.0-da.xpi 431866 BLAKE2B 
c3f5ae9d50dc583829964aeabdfc61ebb9bbd3cbe59709806f0138b4e7d7e6705ef6be88a43e0d9faaee999f22107b6e979aa82b29ceced4acdcb492f77d68e9
 SHA512 
ba1349b306c229c7cefe35e98976c4082edef03904a7ccf276be6fc75e556b061176482e1abbc3c143bb421716040cfd7a691d3b14da9f8c3f3aa5005cc73b87
+DIST firefox-141.0-de.xpi 453337 BLAKE2B 
f86bb17997085858c96fa743bb53150c7a80b93545a0712ca7b27ba616147d4cc2e9f8925e4610d80f7ecc4df0e4d18fb33a3e37ff76de6285753f3780283440
 SHA512 
ea38a55226157dac3daf4dce5759ee911d37b1848b952e11b9e646582fea0dddc577bbfdce70e83e0bcecb031a970af0e735c8c0b85686cc84164d4a8316c63d
+DIST firefox-141.0-dsb.xpi 466730 BLAKE2B 
b44fa968e14dee7c2778a4f610677a13cd1a90b6237e6cc0b0673d749119b283f4edf152d6f30cf4e153fc0e4521ea198caa17b43c23e7d10efda3de8720cdd5
 SHA512 
cbd0cf4e28b8ed2555e696b7e92ec636b482df276f90188d1d82a188aaae9cafac4831db34723a8112de4bd6bb9dcd429d3b7327307bb3c30ea41c7b9be2f206
+DIST firefox-141.0-el.xpi 537398 BLAKE2B 
eb0d518f6a91dc5f3936713a533a7531925ac625e3e7b829bbfe98a77a1586f4daefb46ed0a28a991bbb06306179d8f910d8944f63d225af77f42fbecf04d847
 SHA512 
c208edc21c931616e344f0cf125a564a0253ec8a4cfa60eadd913f7b85b0f1ac7d3fa3c813a128c237aaf79e265b940b6a6afab32a9f7959897372499c5b12ca
+DIST firefox-141.0-en-CA.xpi 411863 BLAKE2B 
17591fa4f0898357034bd3fda4f9515dfe946726cc59267681473e06a0e923ae139d88d3a149450d6a09777a8a35ec79423994f42c05502809e1c75a9f025728
 SHA512 
83431a3769345573690f055ee7683f8cc3f11007e873f62b61dcef1dcf4d206c6410e7e64d645600772328068a863e83b2b38849ca881e965e96317f5f7e37b1
+DIST firefox-141.0-en-GB.xpi 412159 BLAKE2B 
477c2a5c857b87e0d0c8cfca189b2af6f8b24bec8f4fc9de3ccf8e3164678ca8161a473a392a58d94ea4a82ff84c9ed8c3486fa526b44ab55af39be2d2c0bd0f
 SHA512 
32f590fe36aa3b889ec329f1f49824891407f8533cd3e5588f7686427f357eb559a536f985bc0f7e6a68a672720ef875ee3ce132d585ecc3edb3633c6d1c48a4
+DIST firefox-141.0-eo.xpi 434184 BLAKE2B 
4577344b339fdfcdd786e112e83354442921d31b53635a55c86c98d1f40bce0f740a0ec06d67f14ffca25b715aed4de52488c1fe71bebaf07438ad2f768fc0cf
 SHA512 
775e023d028a70a1bec4642c22c996fd0f50d80c8078da27187e01a4c2da840e61202e63c4fd15374b64c7f3609408dd1c5b633bee6707796e334198b992a529
+DIST firefox-141.0-es-AR.xpi 446245 BLAKE2B 
5cefbc220dfaf73ffb9683a587d8a95bf69b9c5c90a7f02a72ccdfdef9f2b6df5ad7b3a5e5a579406f22f2a8d393b5fdf6b57cc4502e1e42dd7a2c072cfaa994
 SHA512 
35a12ce1209892d0eab149bc72d51dc129edbfe8d3e680a39bf7016963749383111c59862cdc1f48f57f9d308493013700c94ce79423739bb32713e29120ad0b
+DIST firefox-141.0-es-CL.xpi 447061 BLAKE2B 
56c753e952abd00e831744f2cb17f365edfeab9c512af8e657575504989c9abb856926804dc10507705b4c67cd326c7729ff174133db89be5787e6a81efc6678
 SHA512 
a0711cb867cd60980a0a9275e22b7faff60ed2c318007d9aafccbeafb06012ee0c58442bb49a62e77b53707dff2246f9d7c64abf77dc67470ede3bca430ae7c2
+DIST firefox-141.0-es-ES.xpi 447790 BLAKE2B 
bc68a106cc0f7b3763e8fd898ae5b87a7d221621f4d2c4243b39d750acdda79fb7fd214e8f3e9c803b9aa9ef25a05688033f7c1ec06b982e98a734213d269023
 SHA512 
05fb0dcfd3a12e300f6f71ab3078255415f4c03bccfe173b66ea0cffe5166734f87239f17eeb7a381febde8826cf69ce92ef23a0705d4f74186d3ec930cfaaef
+DIST firefox-141.0-es-MX.xpi 436345 BLAKE2B 
6cb3d3075e16ed406a5f0728bcc859d009d69221c9a80e779db12f1f7f615fd5b2665a84397c446c21e93e667ff2aa70000ad0335374ca3a0862f07d4c8d946f
 SHA512 
98c39d94c64a02c2deefa8bbe76e51247d7fd6a42f4c0b06771955cda3fa6df5288c8c54696570c14c7d4b8699a78c03c5e1908fbe18ad3adeadb78c9a3b4739
+DIST firefox-141.0-et.xpi 358589 BLAKE2B 
4b04f7b7f67d15ec94029c8900658eab463e2f4452fb298db0278aae81bffc451e53cc07441ca4904583c11e8eec720356f7e4044606b984b54b63d16c6e1f90
 SHA512 
94ee3018bec56bfd860f615674577fe0152524c057250871791994b63e29de6fe0fb95ed08852b3b58ae8632501866e60fe48666260b309a6059e778c4038708
+DIST firefox-141.0-eu.xpi 414513 BLAKE2B 
97a3c72f03f10778b65e0f749e874c655080f60d98a5c826b6caa026f70ea58960bcac2adbe44c49b3b8cc81f3dd81cadc754ed59a042133ccdfc3a5b0b9584c
 SHA512 
7285a335376f90754864c0e9f2a9067d42a73baedf229eadd4a69d1ec67412722fe6b872b3c0d0bf97c0fcb649d237e252c629dc54baed5a92a92fe7c7561fd0
+DIST firefox-141.0-fa.xpi 420270 BLAKE2B 
d108c41bf94227e88e4076190f77d77942e9dc78f3533bb5dcb7743bd87730ed282b03d48c9048c0092d0be4d61d6ce76e8021d95cb5ad5b2b94dbc11bc71d4a
 SHA512 
209b2111e96f4a2cdbfffc00863e38bb62b87b247a05af1b657eeb032249933c11347a2e5d275c39e99e8f06690a421feba7ab1ab68d2c85c877b25464f948bc
+DIST firefox-141.0-ff.xpi 309817 BLAKE2B 
586ee1d78e8e20f08edacdaf320760e8794526b613eb90eafd5a38001cb2b53154a8289cbfc6f8da2c66ed5f5163bff3c67d1894389bcafe08b162747380ce20
 SHA512 
a8ddbe0144ca7c0036a5cacb030cd62376b9fa9994a6c6e950611cdb29a0d658ce619b4e856c350dc512d095e39919ecd3e4f756249ff2345218b1661bb5de86
+DIST firefox-141.0-fi.xpi 430020 BLAKE2B 
740a463fe1ed6a340a96ca6f9e64e36e89ce7d7a56eccee637701d83270fddb1c3840313331399dd5abc125762b7eaf8d2a9fb37386b15c85f5c5d3c99c55c1f
 SHA512 
3d181c4f9576dce57c6ea488a261ddef98c64cad5bce0667945f6e73088412263945c6054c1ebd24c0b7b39377fbaf5d3f768c91d0631e0c5a288048b6c7a5bd
+DIST firefox-141.0-fr.xpi 458897 BLAKE2B 
115fb4771158e25b46a08f4f929dcafcce985fc5562e2d35bcfde12da446f9edf8ee2f869729293c276f816c8a8e5a35f623a0819af3b618979e09d9d954e993
 SHA512 
701cfbb1789e72f1e65691e8fedf7e1797ca2e1320ea352ed00209c092b8b85a87d844ecd1d04e991b0e67a2b42f947bd633a13395ef738e0e9981564227af3a
+DIST firefox-141.0-fur.xpi 452545 BLAKE2B 
96990225f7f366f3ea420f3aa73e380cc1e65456eea6894bc44dd394e8d234ac84df308398e48eece82d55f5ec01e85b4b136732531c7f7f89f9b8dfe11b4e1d
 SHA512 
a74b593b8133d26f1868f37f7a8396ea35125e67b904503013cdc1ea834cd7c4c4604a901a6c9b25cdf7652b43ad128f89220cb3eb2ae234ee154b9207cf57f6
+DIST firefox-141.0-fy-NL.xpi 442841 BLAKE2B 
03b845e62341c8fe0502ffb35f312aae674c6e53b7d449719d80833021121d6efccaf33fb6d69a3286729fc473fa6dbbbf69219bd1f29dcbd661176a00e28d2b
 SHA512 
784c9a7ef9da81132b17fedb782ac96a916817751411d410089df4e88e683ac7c9e06f73711c6a1458755922502b282b7c392c0546ae5cdebc314244bbe642bc
+DIST firefox-141.0-ga-IE.xpi 315185 BLAKE2B 
d2a37bc1a58c90709111eb2e362f5214df02326ac25e79511c475945c67b489eb2fd367dd43ee9a7b86d7bcd1cc40996e97daf41efe9fbf30a4af8cb06c87e7e
 SHA512 
0500dc51c32815946d383cacc2920690f67a3c76f1129de9a03df82be05abe810b421c9c98a529711c7424fde26e03f597e39b40568c3590caf4a4bb1e8fa003
+DIST firefox-141.0-gd.xpi 398525 BLAKE2B 
c22ff2df504bab61c5850d030fa4c13ede7dbdbbaaf651c30edaa3b4999bc7b8f74275b6a1c87545fdcff75958514dbb9e43e35a35436e7c7912efa5614e616e
 SHA512 
7feaa00b27e782c61257cf1204d14539ecfc508f73768a4b1ab7c78407441b56438e5c71abdf62d8170f33a71e7853f795793ced1e9cb8abac320c956b315aeb
+DIST firefox-141.0-gl.xpi 443724 BLAKE2B 
d0f06edd6c57e10aaeee252db1e32e0b00cbc2b0ac0e0c94e3fe98db90c07009bfdc7bdb42a566abd54ff20e34328913a15e8a50567e694291d62db061dfe9de
 SHA512 
d8a4af064b42cd0446f66d5b8f7b07341a86c05f76e9e15c0a0f442e2ca9d50035506868ca890711a06ad2ae9c50bb7a258172d77169a6f89c4d387a70c8f53e
+DIST firefox-141.0-gn.xpi 451632 BLAKE2B 
a40d6d7fc4a2eeeb5ebc05c4b8a63257b3688ae5a0d09973aac85cec0644a3c5b25b05bee9c4e39a6dcce95caf5eaf1f6df6716ed6942e9bc8268605e2ddaa1b
 SHA512 
77d17169220f5af611e177d01240ae89e43e3ab2be2ffb27b372b9d9337b46439181b10c54959da2ef6ebcd66f7c47df216b42e7107016e0e03c5803844ff66c
+DIST firefox-141.0-gu-IN.xpi 358281 BLAKE2B 
a8322c0c7d71650e18e197c90e81b3a61985aefef72fe2b4a992f02f1327fef8e0857ea9fe24f4cafef8ca50f803ef6c9e1a4fa1566fb0a5bf7b68d576d6b81e
 SHA512 
151ce0bc1163e03d9f1cce5c16c654a5ae0bd6b5ad8a8e235bf2bca8fde30dd6a8126ce192c20b3ef3456732d891af68cecc1fbd8e7641ec2fa3fa393b236e6e
+DIST firefox-141.0-he.xpi 445389 BLAKE2B 
52a2a1f5906bad9785f61e6d005c30a9336f75afca6048175ee9be3b9895e14842f703b233c74847afb3871c5ad084d26e49d7b0bd5564d177eb2caaba7a0335
 SHA512 
1252b60a648fd92259fc21779a96c432fa7ea2b1f307ec34f69ecf787298c0adfb1c5740376fe99ba0b3f4c732bc3f909a78862b3cf3dbd66ab00ec35bf9339a
+DIST firefox-141.0-hi-IN.xpi 376932 BLAKE2B 
e9fcb60ac216773b3234da32836b805f4d7a864415fc1c45613c34cea8bad0304eafb269268e3ff8304f54279300a869e6318119d7e36bae618b15a40f615535
 SHA512 
3e1aa7dcee81d4fa461f2eb026d34c4774d7f9a8994b2d749af0a574f7d818fde2059877ec7f0c8ef63c0b1a9edcbbea0867b07acc62673eee502b53a1c88168
+DIST firefox-141.0-hr.xpi 437736 BLAKE2B 
908db593721aa8e6857566384cd74298ed337fe0a0dbee079e97c8f098e3fcdd0b6c6302c06f7b0a666f8a0ae679f008919542c975d3fe0cdfcd0cae95f65f41
 SHA512 
c06c92ca4f94d9fb91b8eb2662c311c4c8f8dfb820fb2701e5e26b4b1e72ce7ff9c1d5defb5aaf746182d09955a4d1b40c6dd53a6f73c1dff1834b13e0659cb0
+DIST firefox-141.0-hsb.xpi 463341 BLAKE2B 
f73005fbb370a72843e2dac3a25858cbac03c49d7823938ec344d3bfee5f63e2977de04fc470be542604a3306a845db13ba68738f2fe5e75bcbd6dd5628a4423
 SHA512 
ea6ee6f1d0938189e43e2192fd32f20a651f465340a99ec4275748dcdcf1a4400634b59744c440bd74642fc86ae01a2b79e1d079bee75d660f05a5bd3c32dcc7
+DIST firefox-141.0-hu.xpi 466843 BLAKE2B 
4624b578f00d4748e3fdf294afa72c096f764fa5827daa99fd31660e5185ca9194c8be6ee3c54978b4d7853cc33bebea789702143b793a7fa2f498f1d649c7c4
 SHA512 
b0c4faf3a9743d493c52be11ba12027ce4c605bd8c4756649b87758e7b6bafb0bf4af6eaeda0c7645cffb12aa5df989b3a3146653fed7e0f621bf474909b333c
+DIST firefox-141.0-hy-AM.xpi 453318 BLAKE2B 
977adeabf4204c3e8a8ff79425865c22a11574c7974add848013264b66f872b47cec810e256c9003293145448a6dc795765a14dd39ff3c4c6223b19529972cd8
 SHA512 
31ed0580cf0f83d24774494694a264e4f18bc4b92a8938debcaf79eed629b148eb8e8ad1367da8d8780633b18ee5ac46b5c7712dc95632f61bd4b2c5d1623ac0
+DIST firefox-141.0-ia.xpi 430845 BLAKE2B 
6a647de43cc00208a6400a20733f2564b1079074f0df7334ae975e1177a6bfc34743c0aec46c354b9890e042374dabe7310e9ce4af210b851798fe67108db80b
 SHA512 
05748480b06c5b97d4119671e44a48de765acdb40018ab3bd6293d747fba8333cb18103c670f779c5e7ec62d88dc435ba6a019a474e95f9ff7cb3fe1f04a51b7
+DIST firefox-141.0-id.xpi 417975 BLAKE2B 
82a2c9c738bed490eee03d0079b343930c875b144d3db51f7b8a782bb9ac74111a0923536595850d039aa159ef86630c9d2fdd4b6b807cc6738fe5089dd87b7a
 SHA512 
66d3abb6adc8f63796127d114a3ee2c4f67abaa5263e344cf41db32bc80e6ec899f12dbcf0b5d092b0fa794d31e7e8bc10748cce9c89fa91bd365a1daf889588
+DIST firefox-141.0-is.xpi 430671 BLAKE2B 
cc75cb934dfbc5e55afa96bfb9c0ef0e96ce427a1e817c3b981a93b176550d9a585d7b58150e2ed3dfcb4bda9402cd890807d22d9b20eedb4abaa722452e56bf
 SHA512 
05af793737ad5af1a80e86d5faefa072b647dad0a7e3098d3dc0f2e37cf97e3902238e1bfa46ebeba85531395fda43c32c5bce517ffc711e8bbd71f52f961ae7
+DIST firefox-141.0-it.xpi 441657 BLAKE2B 
726904c10a506175b54a4738edf7e90780471387aa08a48edb7b0434ce2752a5a7c7100651d58bee09b33216785fb55144eae50f7555c1a91bc646547f37d6b5
 SHA512 
4485676b7aff679a9aafd77491ba6094f7b32b502f98fb1f9db3cb1a73bc496444aa53ae411e4be645abf86bb147fdd76606d6dd83a0a5386d2dc43824d54918
+DIST firefox-141.0-ja.xpi 481902 BLAKE2B 
85b5c460f207bda0f81825a6ca00710a2a4fe90e08fd8cea3e19c8dc63e4b2e448cf40fe558b4ef29eaadd1223537871092cd1c3850c073fb75e28bd0b65ceb4
 SHA512 
5b0a515c3e6d0454689fa554f382f1c204d9854f9f7a9c8af7c7f590286255b2aef342a706572498aeb359947c13bd25bc4e414906b59f412ef237987b3a4fb4
+DIST firefox-141.0-ka.xpi 495434 BLAKE2B 
7d6e26a9538db34e05342f0a35eeccbd1ceac9d099fe20b3ce683c705273375a7d02c424231ce93432743ae94973d1a7e99f5424d328e82998388dad9bd9d630
 SHA512 
0ad49d597f70244a48a4da86aa0d1f7b1bf6a6118b9d3c761efea85b6b33fa9ddc27796d5c1069ba74ef4b8ab2408ee51c0135e7a34a06045b01e4166010c309
+DIST firefox-141.0-kab.xpi 420780 BLAKE2B 
406b2d50bc8cbf1a3934fd28ed1934a6a3d61326f56be7ab65f37b24e9ae4b562b41b0c21d9d534698e2ed11e975929ec5ea0168e86b3bdc9ab36fc9d1d3acff
 SHA512 
491c9f868691acd066055b12991d1cfec1e03dc056b9576c1e21fec37928f0d78f1ee410e2191b717aaee34cf3d01972e88f127392f96bf62b6741c9c4afbfd6
+DIST firefox-141.0-kk.xpi 501230 BLAKE2B 
30ad1c32843742a658033788cc5197d06172cf8489a635f977d0ab1b90c9726c799a57fde17c4ae6c7e620904f391455dbe54d712d3af01f4e6ece16058ab979
 SHA512 
49c3805c8bd0494628355c83354be9af359f8f4b86aac3b25a3c801895d21083cc997f795625cc3ef7ac76ae4a82f2688c9ba9d06b588f399407e7b31444d62d
+DIST firefox-141.0-km.xpi 347595 BLAKE2B 
c47277f0ce4562a1804c561b54190a1f684d0a86fca872047566222674456660ea44ed90618231b5464ea908e068c72e7987ac42534d60e693b38a8f141905ce
 SHA512 
ff6eca7f779fce94d35256fd1c67604b040e6d9ea4181fafb0698e3ec22ddaf4c0271e32dec565d4d021ddb1f7777cb6c7b90d6b756d6286965500a2ed2ce76f
+DIST firefox-141.0-kn.xpi 331589 BLAKE2B 
3685e4087ef9a222ec4bd6b7795fc8d6d08e5aaed276bc071cd405d8a5968452897b5acdbda866eb26130f234b2ee179b54bd58eaebea48075429853cf456d4e
 SHA512 
2b37182109b0708e46b6048e0a6cfcf0fd458dc18b770b09515533df7144b9d1feb64c985b548019d591b6d0960b567f1f8998ca24c52f6f3640bf6bfe50c75c
+DIST firefox-141.0-ko.xpi 468123 BLAKE2B 
16a83a3a97ca7037f604efe2112d3b9f366f1883b5081e4700296be37d2de718acfe6f0d38c92ce2a06ee2ad3da80c913bfb71ad584d1c39e4424e9cee6a01ee
 SHA512 
89d3f7dbc228739a040adb5889ebbac1eb33f0fcd3602647d95faa752cd76ef1189584108e35a9eb9c3c53eda6b047679df9dbdc144282404b3568260cb92628
+DIST firefox-141.0-lij.xpi 318793 BLAKE2B 
211659005c803d9454418b15c784e3e1e4a51b7e038fd290781bafbac47ad03ec3efc3a81257cd4e04b84b10d4d89d75a70bb77e2ee5b77c7ba904ddcadc0ffa
 SHA512 
d6292bb3acab3bb45092c1735ba2cde2b735610df1b0d8a4d21c87235445c19deb34b71bdf738ca8561596ccbde037a4e87bb894ae143a69b0cbf1e417bdec06
+DIST firefox-141.0-lt.xpi 379061 BLAKE2B 
be98f2a0b6389bf0cf2c20b3f279c5abc35fb85c53c6d15775f8b10fc29aedcb0d2fdd22323a3612cb48f70846786a035b8397a877ba3dcdea331173d5d70edf
 SHA512 
3dc463e77392ed92cda0ebb787a4bebbee3e564ac78209f05860501c10548313dacd133fad2382f2183374dfc04c1bc51ef6e371db7f2a19c0175cf19fc4468a
+DIST firefox-141.0-lv.xpi 383661 BLAKE2B 
4005c34f119964d0787e5ffecc56918a0ee0887445a635cf6d5bad0ea8bc8a43d7ed05556fa703f54af02f5628e4a2b4b771cef1ce4e02d955feb0c38e849b44
 SHA512 
f68255883789b506e8c635dc926a42fb7cd0b5c542cb48a78ad8be10b042062c4e04fa5d600e38c380abc5290599b0ae127cc54ff82f478cb20ba48738a079be
+DIST firefox-141.0-mk.xpi 316330 BLAKE2B 
e1a89693690141a6cd6e9de5bf9d447dd81a78b56d7f40ecdce9deaad8dfcae4eaab115ccbee574debc2af15850a88dded4112325c69b342c8a9ce4623497edf
 SHA512 
908ef2935ab3ec7afdbf9574ddb7638a77735f612c1340576b2be3ff1b17a120642fbe19147067d0b91741534b73c71865c0247ab9a16541d4956d7d80bb4d5c
+DIST firefox-141.0-mr.xpi 355987 BLAKE2B 
fd25f8414a0383e198045f58222737e7230b60cac8597b02316ebe93dccb9d14afa6cafd3cce22a50b8cbf2d52fa1558dca5b1c674d29dec3fa91c85f6ce8c28
 SHA512 
fa8c7ab02b1993284a54edce2317d25c2a2bcbd97dfc7a09c7d6bcae24d0cdb9311b26ddc300f59146e2c772128bb2d8dff8e95185b6f1b10ec93aa487aefb6a
+DIST firefox-141.0-ms.xpi 295303 BLAKE2B 
d5935483da1e2e3bfc6f13f0ac0bed86c52b0f1989cd14652234c5a642af9a7a1278bdf4ee4756ff3f96a61d768f514bc34401cc4788d412d9c2cd160a8d8cc2
 SHA512 
f89f598a887b05e6a0ca6a6e350a2074c9893f6ab85eccc2bb7ebd24017300543ce9affbdf0ff550c6be7675d23108d42f6934e1534aaac8687e33336e173f3a
+DIST firefox-141.0-my.xpi 342780 BLAKE2B 
9c497bf726cbd8342cf988ddedf21ebe50b54d1635c1acd9970c4ee159cbbb193a362a7e68408c9229374450e4e21ef82e7e6cc17b25ed3902c6bc751e9bc235
 SHA512 
835e4327cfb3fe00f77e137518574c1d220570bc1de69f196910d0d60320d85fc469cca2c7fc61f08ba73be15d4ea7080481cf73635df1d097ef681846b6bfbe
+DIST firefox-141.0-nb-NO.xpi 430012 BLAKE2B 
c0be3d608ec80f23dc2f3eedb3292e70780285687d7981ee72d1726e9652be65b128c5ee43944f204717b271d29438c78358b3f3578b8f53ff3613a9d505c85f
 SHA512 
8265353f566f89df7e58a6a917cfd9a65be46084c0c4b14313979903d6bcb385834311a5c6e938043a019ff461c55d079a4f01fc0d680d6adfcd94bde018e989
+DIST firefox-141.0-ne-NP.xpi 348171 BLAKE2B 
a7b19c9ad23674db3b4ddef8dd48c5a39cff02fdd0331f9029d0b7f3a713268aa18caefc7978ab0444ef2943b21b0fcffad2ccec11394d80067518b1223f39c3
 SHA512 
6dbe02dde51cf67b6cc8b69fe50f55db9a51ad447557647eebd2ba641149a0af0f10be787a35f94ca65531dc1d2ed9d96d1c1838ae69344cf70b07b59f061c42
+DIST firefox-141.0-nl.xpi 436910 BLAKE2B 
f5d2dcd456d3a4d32fffacf99586e92dd57efc4bf7506b60f6221ceb4cf17aa563890fba2523b73504683633442eed4d842e37305351369a867cbb8db3d38426
 SHA512 
ddb51e605002853565be2843c3a85e35c39e91fe65e55e2f7c285effbeaf72ee42bb24086d725f3f4becd9c6070f426415f58451a32c7fa2fb9b4e4187afb376
+DIST firefox-141.0-nn-NO.xpi 429298 BLAKE2B 
29a8743d87eaa1d6a373b3171c5a89fa7b10d06393141ec822c7ab2b8d4383200294b75333535e287a68964beff3d2e79a964c8bb6dc71211d4b9e7c0b6db009
 SHA512 
862da595aeffd7bccc79a03c1873b93d0c0add292f3f1152d266cf11e568bbea4634f28c63f4bfd789578060a1a4be7052c249e204f62440402a55a040dc3baa
+DIST firefox-141.0-oc.xpi 410045 BLAKE2B 
3bc25be493cacc8014c056179c427f11fe4e9c6c28a94b61c082cdc0cbbb1e616fe2f672657ca13e4a4d1a57b5f80f1ea441726a6bfbfa987efffdcc7f802808
 SHA512 
d833b393e6a5a2571b68bfea14e97fd994bbf2789fe64c08851ede53892adfa87529d6f6b5d4ae35101bf9f3b87dc207732cdfa12f343bceab74c805dca0e099
+DIST firefox-141.0-pa-IN.xpi 492728 BLAKE2B 
54ec8722c6e1b5e8b0df5b48acda03184f4930330885ba4c6a941285d17cac350ea0960a48f25b930267b6c01354b6979a65a178fca96d0eca3442ea80f076f5
 SHA512 
f2b6f4e6be599c0d621db50a1db9e5cc52a2f69b54f3fe574a0b2e99ed005d261637689c082b726ebdf52ca89722894297202b82e42f3ffba785b3c81b8ceba0
+DIST firefox-141.0-pl.xpi 461008 BLAKE2B 
0fcf1fc48611f3277a61a1724293fb8046cda931d97c1d6dde852ee844df8f0ee5f807288c85ad0d986db55da434041d1a5e9e104255acbc7b9f9da32a438d82
 SHA512 
28501dbeb956809c32bfdf1f807dec434290fbdea931e304b4572845c25a6123bddc279aa2c38689ff520047b30abdbd10549354d9215f2b14e5c1f849aed462
+DIST firefox-141.0-pt-BR.xpi 441531 BLAKE2B 
dacb811abe67073b9d7fe69ecce0ca9f0064cc9c230be3fd070089fe3ecc591df6d787eaf6c14e2b4817f275dc703eecbb502192e78c92cf9b45425c5261e0f3
 SHA512 
c417f45d404ac4e3c71402437d56e7548d709dc44c49cd4df41af749fce73462d4100a5d995b5936e9dada45a43eadf992b898869c1e0304445e47f426a213b0
+DIST firefox-141.0-pt-PT.xpi 446452 BLAKE2B 
d3831f8264ad08d53e182f660eec795488c9b6f609e55bbf5497a6964c186c5a2cae74072357584cd1b775c2c8047edc3011be27406300df617519e49513a6b5
 SHA512 
e37fec2737d027093b52d062ae6d0a12c818b0c3c4aaa35ebb587bc50de496bd849c9ed9933811ab72c177c534ed64fb3332ca7be27453f483126fd96a7e5282
+DIST firefox-141.0-rm.xpi 436623 BLAKE2B 
1280b2736665a856df3cae641a94d4c9770c8b47fea3e92bdbbe7fb5b15c6d6be92ec53df359b9ad2105485018d59cee29e70c407a735599036a28db3774d429
 SHA512 
763f9c7c78400d545c23f200706502307fc45daa60fe879bc373a5e65ce5386128a8c247c6b966f8722f37eb99f65eaccd90bdde1f46036ad2a387bbc9977a17
+DIST firefox-141.0-ro.xpi 365444 BLAKE2B 
6e7f0d3cc2e721b5924809f19c37975c0603d4bde5c82ab9408a134802101c85f4a45dd2401fcb9f02df3541f4b1109a4d2613f441ce4c260f09c9e92b30a816
 SHA512 
ec4e5b62afa5e7f55ec3cafadc6f668534e72bb469fe8a9084020c2cff565226c15e0c8f82984054f3d07645cee509fac645f314394d3ae11fae7d54901e0fb3
+DIST firefox-141.0-ru.xpi 525912 BLAKE2B 
8b47a8c1f6c56ef54808440daa483dd8265f120e7fbf6b7cd2cf2d16882641fa232830043c2823b41f01f36e3e3c6bebf6fa543b994d15b06d1f4b65136a2a9b
 SHA512 
349dd291043d5b238a495b83199e5abf885c7f566ce00c1aaf5965f9398fdc40d9b4b454032804a071dd13a5b3a482ae5ba685c7aaaf20291da1168df2966f9b
+DIST firefox-141.0-sc.xpi 405325 BLAKE2B 
93c293c82b52f592f7c18cb2645fc1c77abecfde0cfc0e329b91c3c45a2162206523d1c7238532c428e39f9e667e9eba4b9253adc4f8c1104df3037629015fa9
 SHA512 
ce393ae675eea8accfd47493db1fb52ae06b43e1140733fc3931d222d07b6f6a6519b3ef0f93d0064d41d9e60cea2a91eb3558c2822b09c629d68908271cbcaf
+DIST firefox-141.0-sco.xpi 322279 BLAKE2B 
39602b927005020dd1c7b350890069cd7b3495cd148d5e65d29d9965b23d95bda9b460bb4c26eda64035e3cd25dff3cb83d2059dafd43ff3ffaaba825cccb551
 SHA512 
7fe2ef06e181ef52f4007d0b7e3dd3ce08238daffa34647b2ca52f42aaa7cd9ed0ee93485949cfcb8c9438d3f2b7e940319ed17ae60a87a952a53fef4b8d5fb1
+DIST firefox-141.0-si.xpi 410601 BLAKE2B 
18433b8459335b364f025bbfbd6281e657b7fab34b98cdde3653028485d15bf5aab9dcd56d9cf9226e6b8c2104a8e7921464b10a864967f809c2d91e961990c6
 SHA512 
3ef23ff5ea18070d0cf95df384b888c2a7dd8db48290dc87dffec487a1cbc3140ddb1d5d93966b4edf24dd81a2a4c983508fe9f970d3529547d390276165df64
+DIST firefox-141.0-sk.xpi 468639 BLAKE2B 
7b10cbf439e3240ba4a7670dac8e324216d34743df37570dffc41d7ab078feb10359298dac2cfcef7aa418c138a815752fe7d183b9d7e93a2d44baae5fff7cb4
 SHA512 
d29268fd4a9a89f15c8c04efd67eaf220b7ac2b73257578d004287137c0bd6553348c2243070ed8fe13abfc6ae38caa26da6418a6f849191322779daeb2e092e
+DIST firefox-141.0-skr.xpi 484673 BLAKE2B 
95a5afa0408dc7caaa8cc82bdeac020c7592ca4abfb00095e66e6c983a9a42d94a16602cd5b1f211838569b773cca1429a2baed6425825a4cee7266ebeb15ef7
 SHA512 
99aa0e3b9a189a73a1e2c2c90adda26270bddd712ab9772b2149974647a866d1fc9c29ddfde372f19f7ec1b9a7d39cb65b260bb906126830607e3ecfbdc145ed
+DIST firefox-141.0-sl.xpi 441721 BLAKE2B 
10bd9141517fc2b3c61204059fd33fa95eff8712af0b5b079c53a988c30052c514a1a4eb818d3c877cdb223d639e6c2ee629383e763800efe501b61470ec2986
 SHA512 
a69dc67cf8efad5832c3a29aaa28dd78fbfbdc4bcdf193e12862e1ac38103ef7928555ae8d0086064c000b90de580ad0809f59353511c7b44e516a5a954b0c01
+DIST firefox-141.0-son.xpi 273502 BLAKE2B 
58c577ef228ce4faacbc88c7ceefdf00a7d9067e4ee232e3dde41a109b80c10e2d40225bcd58a2193ce9966df76b08726a4399c38773a6e57ecb8f081036df3f
 SHA512 
82885857837b9ce2eef28d5f46fe8670fe4d6d79a70216001150970f0338346ff9eff2f42a5c7a0f48f221eb297a531e7723980f049d31c688ca6bb0e903a129
+DIST firefox-141.0-sq.xpi 452370 BLAKE2B 
f4f86cc0892f34d2e348f9386dd59c4261fe63583cb0ec8f32587ab837aa7a63e0b20325d124fc441275145609ef1f2d4be1bedb73904edd30028bf23c6b8c20
 SHA512 
d9ca0213a38086ba251e007e9c869f7074e0fef3cc46f1817a0d2b169dd25b776e84f70a0ebd1487c0b8a92ff909fc2eb2dcd6bd9bc111e662dd3cd3ef6c3392
+DIST firefox-141.0-sr.xpi 449530 BLAKE2B 
08dfc56e105930643fdb54db9d87249aa52fb09772b89835554707743d360b7e58a24d70dcd191f27415f13890440c77acc62454a80af115e81e76951ac2b44f
 SHA512 
5e929022e2bd8a3ee7358c3e15e141511652abf1e0af316adc7e70a8422002c462422120fc3fa53314814ecc1ec2bc02aa0ee702a85bbfdba7dc0bc674e781ce
+DIST firefox-141.0-sv-SE.xpi 436854 BLAKE2B 
b28e54ddc8122d9f0c15ba21bb76d8a5c3aa10145a73502a591a6f96735b92bef51c000f3b9c3550bfe89fb1c292b504551eed01a01b1eda6814886c705ba1b1
 SHA512 
3bea188214c86e61e9b8771aa03c7edd0b9b273a41c81fba66920adf07112dc6b57891fd97f6dc8c07c87c154652dce29c204a294fbbfc164e1e61863ee6e044
+DIST firefox-141.0-szl.xpi 340864 BLAKE2B 
83f34063c37d6f7977304edd0e6921db0761bc09e834b3f5b6748cf058d4aef8d7058a7a26663c143a492cd7ad856858e70dd082fb925b62c1b5bcb4d9737dd1
 SHA512 
a9e56a6c4b39e924af322b679fc2ece96b604f051ebe8f4429069551e072dd49cde91976f5c6be5e58052094d2a28a502eebd125b86666fb8b4013505a777499
+DIST firefox-141.0-ta.xpi 337956 BLAKE2B 
a2c725346d181006d14bf49ac0ad7c01654c0222652dbdb1682ad2247a26be95e8ff367f4d46e21a87532cd5c5cdf0c4f6303efc52e956225882d8371a416843
 SHA512 
e5528bac1149e0fbf05ac1895dfc3f16f2d80826b3033a6b07ab25bf8eec8ee3a57aadbcf0840353b117d393d14c6ba48b256ddfe3ef045b21edc358b3b38d63
+DIST firefox-141.0-te.xpi 381443 BLAKE2B 
86341ca4128d3e28bfa458322d69a2022e1e561a3926a41b7e9f162db3155516bc58595f43944c6def9c50b2048ae44a73d4bcd08d46e158e39b7e782657533c
 SHA512 
a0c40b8771ae939e560bf9ee3105dbcc842a02949607b6c3a6803e98d277e00af18c383fcba0f6cb7d9a2e4aa85e9ed50179a8070cfcbae13ea32e91c732220e
+DIST firefox-141.0-th.xpi 505572 BLAKE2B 
4326aa0280995de53d50a41bb31307eadd461b2790588699634af31a6ddf17c287a088458cfb2507d06fda4995676340d912debfe0f53f94622b5a1d1a60e235
 SHA512 
858d7328cc4bb70e7216cbad81020be75331c5051211e7d5f7b972224f6129d4e43355e928e7be07a1d329de48734a3996ab549372af130b45f955e9211ac6bd
+DIST firefox-141.0-tl.xpi 355898 BLAKE2B 
d47115355fd0a032c9292a41b794110d70e4a4b5f2ab35eaed3ec898e7333be72dfc1f8f9e3584497bb53f6800cbea4b33a2ac7f4879420ce3596f7c24c9564d
 SHA512 
8f1d79ba294d428253f42733377a972d74399fa96347fa45eaa126376280ab6df8e13b1cd53e42ceb8b450ed28137cc5030c6e6d48d7270c098d68b5ba565b2f
+DIST firefox-141.0-tr.xpi 449436 BLAKE2B 
a1e6832c3bc203deaf936ef802609f7a12c65cf95150e0b3fa8b64681461f4ae2eda88aa25f6ac504884ee89768a2c9b6a1f5417e7cd70da8e3984f6209bd832
 SHA512 
ad64c55ae04c2a6866553f1269156ab388c9556c71c5abdf495deb59a5763b26226a39b120ffb764f7dc50214b7a08494c55a8991d4f211ee33d936c6df351fe
+DIST firefox-141.0-trs.xpi 321980 BLAKE2B 
46ac45a2ad5a6ea8a9051d813171d81f55597a52c835ebf3f88aee759afb14ca05edb612019958a825f2d53bc77928e1f9253fc238617dfef126c8a2c5e0f68a
 SHA512 
20799c95d5bc82f7eb30f808ebb0ff1cf51e992589998a8ca5716bb936ede0d4ec7ae4b1c48361de8f49f5fb61b4ed210b12f93cd4babcbadcef7b5a5a230f52
+DIST firefox-141.0-uk.xpi 517496 BLAKE2B 
6b4c35bc605740a43b89d3a1ee4ba96ea7564079df29229eccba9aadad70c4c6c437414f700716cc062da947216199becd76c7f3a2a412dd356f506e0d3a7cdd
 SHA512 
2e338f6f9768d827fb8c864dbe88bc946689cec0baa8f8888065cb5f0013d855349e4ff57f83f8ddcad7ffe55a67b0895e03b30607a2698fabfdaa3bbc270c1c
+DIST firefox-141.0-ur.xpi 369709 BLAKE2B 
2b1bc9b88015b5299947d76dde5dc2e337d7d3291353d0f0b950cd10a1eb44d487f312ecc74fd59b89beb67c49e951da078ffab72f104ba7c2c6c1c44cb69e71
 SHA512 
8f06e390ee034b8e07b87328d0c20758ee133a638c2a4c0fd997c9108ef0fc05c888b032c5b02f13ccb48196b3514ad815ce4c9f630d86f0be1aa6722b4340c8
+DIST firefox-141.0-uz.xpi 303347 BLAKE2B 
60998b212fcee11c47c235a3fcb7272e7109963292ff06d751a622164288bb4a6fe71ec92ca62b821333b6f5b9f02dea6bc6ea874dbd814db599a3575df8bee5
 SHA512 
3351cd3c949919082af5e40ae2b43a0822d92670e8e299450ec3715881bed0f5c020dc13c3513337ed3e7381f1c1a3e25d67176d9335ac94afaf8984e95f802f
+DIST firefox-141.0-vi.xpi 469642 BLAKE2B 
6708fb3d8f255f86409cf51b5227aa690e1413c3047c5109aaa16843a22d81845ded5608f0ddd34e7b5151095ce7acc475d0289ebe9d74fd5b6e21b062b3b3fb
 SHA512 
b1dd639e7dfd385225bec81de9e0fbde7487fc2b2a381e8de8db8f49d5dfc9a2142b9c71e19d42f47c387c8ae83814dbe0eccbf89dbb3c074966231f00a8247c
+DIST firefox-141.0-xh.xpi 273186 BLAKE2B 
c874f54efb0dc3b374faf810c3ef282fef84ba995a5fbc50d8b368bb3f710a825082786570aa9ebc9f46480e9a447fb30412ba949941ea4f07c26a48f6d7d56f
 SHA512 
ca85ee79e25aea439f1ee49706292e998c70c247b59d7484045744e29685e4fa4150cb1b9c0b60f20dd83781264eb648d14d826fd1f0cba2dde267d2824dbf05
+DIST firefox-141.0-zh-CN.xpi 461367 BLAKE2B 
71b9404cc31c25acb8f3b4f2b60d4f20a4b1eb643484a18474a689e07670684e596b5f87ecd2847d2afa535766f5c5b35c00b856ca0e9ae5f9ee2079a6a08d5d
 SHA512 
13d314d0b269a6d1630e9e44f7e6d2d200ea4fb885de1f96e3b7c3c16e7cc7a155d4f97fa7d6e12e646132c8639a527e4aef5ece54178cd7899b0fc040ca02c8
+DIST firefox-141.0-zh-TW.xpi 464394 BLAKE2B 
58acc18177d198a3ddded3e0ed4db7b8f99c41ff5f74ea1e8ca597ed4379e02233d9925728e0f82e8af7b28dc9c7a4ed580d625f641c52d456396395c2394f2c
 SHA512 
daf88519653219399bbc381817da6ffd9b0da1dff73828293f99c5776a2584ef536723d0c3b1f7fa402421c1fd501fcb726e8abee000a1aa1300c25a990042e1
+DIST firefox-141.0.source.tar.xz 640751136 BLAKE2B 
c65fc01879474a0934343289430f8b6d4c38091b4d98dd0689e5f0c8782d6b200296da093ed6e9de4055d51b9bc6fb66164df70336ae5b2094096d717c9cf0bc
 SHA512 
bd6998bce927c5b5c186537bd41475fc9e3809829ceadb2277bb382d02d3780d2a5e5749487567a75b7c9e3726f97662c4ec28924bc491c5a3f21e2ec4828d63
 DIST wasi-sdk-25.0-arm64-linux.tar.gz 115160800 BLAKE2B 
1ce22aaea87d0720d40d46ebdd96508c8fb0593b53c4489022fd5a1a9afb043a26a6e162a992d73454f612f2b6ab01e17a99c189c0c8b8c2d2d68fd96fabee1b
 SHA512 
ef4eff22c1efec4dc5ab199d09d93ee0004f9fa67b32cac0030f8b6a40def10f714391cec8e803c200995dd8bfad3ebad9ec79b4195aa6b2ea61ea47a8b9e61f
 DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 
07618828d4c25d67421aa72d38fc49bbff9052b8ecfe0fa9f4207e71880e9c650f458567cfa5bd389d5f830fcfee89142a77d33c29e7bccd1da7ddba2bc47b95
 SHA512 
716acc4b737ad6f51c6b32c3423612c03df9a3165bde3d6e24df5c86779b8be9463f5a79e620f2fc49707275563a6c9710242caca27e1ad9dd2c69e8fce8a766

diff --git a/www-client/firefox/firefox-141.0.ebuild 
b/www-client/firefox/firefox-141.0.ebuild
new file mode 100644
index 000000000000..af10d96d3d73
--- /dev/null
+++ b/www-client/firefox/firefox-141.0.ebuild
@@ -0,0 +1,1404 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-139-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..13} )
+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=25.0
+WASI_SDK_LLVM_VER=19
+
+MOZ_ESR=
+
+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.mozilla.org/firefox 
https://www.mozilla.org/firefox/enterprise/";
+       SLOT="esr"
+else
+       HOMEPAGE="https://www.mozilla.org/firefox";
+       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 
sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-jpeg 
+system-libevent"
+IUSE+=" +system-libvpx system-pipewire system-png +system-webp test valgrind 
wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell jpegxl +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
+                               <gui-libs/wlroots-0.17.3[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
+       >=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:= )
+       system-png? ( >=media-libs/libpng-1.6.45:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       valgrind? ( dev-debug/valgrind )
+       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
+       elif use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--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
+       mozconfig_use_enable valgrind
+
+       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
+
+       ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl
+
+       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
+
+       if use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--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
+
+       if use valgrind; then
+               sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g 
-O2"/' .mozconfig || die
+       fi
+
+       ./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
+}

Reply via email to