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
+}