commit:     a82c221f9acb89117deea8aaca1e50f5436b21f3
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 23 12:52:49 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Fri Sep 23 12:52:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a82c221f

www-client/firefox: add 105.0.1

 - update patchset to include some ppc{64?} patches.

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

 www-client/firefox/Manifest               |   99 +++
 www-client/firefox/firefox-105.0.1.ebuild | 1287 +++++++++++++++++++++++++++++
 2 files changed, 1386 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 1292987c1a45..76e21669f3b6 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -295,6 +295,7 @@ DIST firefox-104.0.2-zh-CN.xpi 587664 BLAKE2B 
0c210fe7c503a579b860ecc328033b3e54
 DIST firefox-104.0.2-zh-TW.xpi 588467 BLAKE2B 
67bbf28ecb6f4a8305c551893fde3e4a8771c47d02928fb06e003c8e6badc1af9bbec131759446c76da571084857c27566e90b5bf99dd6f5d024398b5bc66163
 SHA512 
8421fd070afd584f933b0912e74cfa9f62ee5c007749bbea44ea0a20ece130570a2450463da136ff9b00bea010872dedf47e21aff51de9e21bf87bbae2f911cf
 DIST firefox-104.0.2.source.tar.xz 478270500 BLAKE2B 
1a8317a2880fd412449f18868b0ed7b5a757083a7622ec06fb48c01314774e5645527a217e38a98279494f3140d55414bb3fbe3c0731690e383aa5b617607dd5
 SHA512 
bf0d972add11566f5ef6402a22abd82122945de9fa9aab6ed7bb7e41d0843d41948a6d95c0769b0b704c066c8ff6e3f3bf26fcf288c64cd3b3f09a13d4dd467d
 DIST firefox-105-patches-01j.tar.xz 18160 BLAKE2B 
2acbe25186abb4830db69af6aafee4b63c84e22ba5114d111439f7cab6c49884ab96ce0c62d619d0e8892c84a1fcba7d5e6f0700c0ad45cd7307393b42c14fb1
 SHA512 
77adbf56f48ba0da5b0e790765a5a1399151337f7945359b861c96bea5e6e4429fcade52a337c04ae2e7dcbf296658ef8c835d48c15ea19491f43137a2159784
+DIST firefox-105-patches-04j.tar.xz 18812 BLAKE2B 
13457e8abc4f23b85e651d8ffc9b8d76ea802428b26818e9d969ae432ffd4d941226044e31c54717533b2a531996755aa81ec55414704a7037c81788e4dd37f0
 SHA512 
c0ef77a99866b26d74a8c789bc70d0519cc587585bb5d32457e0f179d1fb251a0e5f9f8368900f3f14306426d3cc9d68fa6f07fd21639bfe1dd9d8035bfe3205
 DIST firefox-105.0-ach.xpi 462391 BLAKE2B 
518b3592cb9fbbf816850c04a6ff88646a588cc9e611d8e2deb035b0ba1f0ea54f838cc0315b932e3ac0b3890a5c5a2ac0dc66246d9dec2f502d43d6a274b0a1
 SHA512 
b4ee588178257cc2bb3a4a782680a00697fe0caf5e5751be3aee3414df08c20ba8feb0514dd0fe53c0d9fee335c38d5eaad226fbe2dca048b83203baba23030e
 DIST firefox-105.0-af.xpi 426869 BLAKE2B 
31ab4be151e5d7a11fc6ea6ab4434932d795b6440490fa8f68869dffa4c55dbf0f9bbe9ca85e0d71a26f86e34fdeb4bfc11d647bebd60080c274015234012be1
 SHA512 
ccedfe2193f0dd2b4d895851742b00cdca7d347ca10522a5f1bd32dafe89a4ec030f271eaa22b1f9e7029012ea4c11fcc798cdd6d8f540783aa72336517b4522
 DIST firefox-105.0-an.xpi 507324 BLAKE2B 
24b911cb0f68c0e0b354fb915ba81d14c1c7c57d7252c50563145b25a9a1f8cb921c83c6a9f58821b7465e9aa168e5c2af9c9fdb51005699b83e8a6c09e063a2
 SHA512 
e6220b2d71503c5e131ebeffbeb0a573ce48d15cb9714524de970ce52925c40adca7f2829b615924421a8d4185da03b892613c63107bbc7d8a9d9d6e2a31686f
@@ -392,6 +393,104 @@ DIST firefox-105.0-vi.xpi 595124 BLAKE2B 
c27899ee403a140819545214ec94c76511b0329
 DIST firefox-105.0-xh.xpi 435737 BLAKE2B 
f879915c310fd039863708758ec14da34d38ae5f4db79f03e054a626f2a9214394131f4e2caf4b5a899e23a97aaf14e5f6b338c80333cf648ee9a5b7f58ae8af
 SHA512 
a7256f6529f3b60ba3807f0ed02fd5089aa81b7972ab0918c2822717c672ef3946d236c55dd03292c88a871c9fca665b6d0d2ffc75d173304348d07b56426339
 DIST firefox-105.0-zh-CN.xpi 596363 BLAKE2B 
dfd583934ee29157fb45212dc842135f945b0a05a246982d49c11a1e044c7d75fd501e7ce449336936a4a8115b7e9bd1d3570ba57bd3cb9d5275009c7ac2572e
 SHA512 
0ea263baada245adb5bfa850a83018ef42e9d4f8b0ac4bb8459281d5f179a9dc0a2d2a64505e115ffc15ea37243411b8630d3c83a885c4b84c922e128b48cf4f
 DIST firefox-105.0-zh-TW.xpi 597428 BLAKE2B 
7fc6a94076a5031292c52de3bbe3bffd463d7ce8ac0ab2fe08df38ceb2c7fe011c91171fe569ffd79c4eaf1d0b1b11688f6c64db55f204d735c43908f2db4f15
 SHA512 
dba7949b44d3429f6b14525862f4ac7aee43e90c8f9b8485db7d1eef82d37da38c817873cdf56f555481999b0ed32264a76e4430cd65c112768b072226506df1
+DIST firefox-105.0.1-ach.xpi 462395 BLAKE2B 
ce1c579e09fca70c69e12120744c4c8064fb4c341237cb9dbaab65f0ae7b506d51325d9319694e010d8deb9d882def54e2796f3fd268833823c88471990414e4
 SHA512 
802acfdb41cf7f08aef47280c4c9c371c5e445c53b95d1d66b59f94d4ce4b60420d468af9efa9d30530cec411b931759b7eb057fb49396bb12897a5ee05df662
+DIST firefox-105.0.1-af.xpi 426884 BLAKE2B 
869356a1a29749128266ff2e206310fa8cb3acd88b4b4fa31d0a1f23b1e1f0d13df6b824f4a14522582babb50862ecd04ebf2acc9d9dbe3d35f4a1939bc2fd47
 SHA512 
a650df3751203592574e358b9f591a8b7e01db86bc3e3ae95765024a42a1afe6c009f6b22d18243bf4e7e976731cc412e972ce6d60b79d2a48badee4e6970880
+DIST firefox-105.0.1-an.xpi 507329 BLAKE2B 
f6e6d5a3663dd81de2abb949ed8ab04cce2797d36cb7d34c42efe7136a7ee7cb3495ce139508c8704d58c9216a4fc9288710160b71198bedd32008b6e653a319
 SHA512 
93eb1cd05cc575581ce5fe344564053e6d6cf328952f85b9b5937f5b8af047eec4b322a94c5de254bce4f240cade090591a48372ff402b77562adbf53b422a2a
+DIST firefox-105.0.1-ar.xpi 571517 BLAKE2B 
19dc855c7e2a2ec712278858ac98b4101d36ab5cf8fb26c1bb5b7dce8cb7ff5e56b274a32d136cbbe202a7ff5a7c5677a333be68e769f5a2053d2cf4ac106639
 SHA512 
26324ca59ee6b607c3c811a0722772e4152688ff8e70fe32efc3e15b396f5164ec9594e5d54515d1be98e3b01357bed9f54affdccceaa17fd90b8ea2f278d23f
+DIST firefox-105.0.1-ast.xpi 502223 BLAKE2B 
9765d684c3e2b37e1640a73c382eba64351fa99232fae2528bcd293c7ef74695aa16d3fd10412cfb60495d4aa7c5bdf07f118257510da3884413600ac558a679
 SHA512 
61afc9a174b95ac085b75c39e092976e49d3bfcd10bdac24263494f48e75d6b199988a4aa82227cb23bad11e207e55d84ccbaa58abd9a886141b68fb09c5ba50
+DIST firefox-105.0.1-az.xpi 494479 BLAKE2B 
0fb8e49e0c3ef534aaec2c26d18433a984bdafd49059c36490334b6266de452554d0d54515c94220d04ff4dfc7154efd28b2fc5d35b863b6e00a6cb100edda3c
 SHA512 
d623dc143d20b8d3a0eb66833b2373702221d673b4a2ecefa145096d4fbbf0d871770cbea6d2086126a43c55294e6a9af90430d3a4684409e07d22ad1bceb8e3
+DIST firefox-105.0.1-be.xpi 647131 BLAKE2B 
e33f9263e56b6566adedd496dde6ba3d5f1a48ad8ac13bb841165d876db555a150c57843b95d2c8a0fa0bba898f6b69e9c2dbf3fbc1795f2d327d72664d58d75
 SHA512 
ad832b9afceec554f6fe89e93b4b98057d13acc235d98ff7aae7596936f070f9fad6da65b2f396bebfc527667cfec7926c8866c65f732814f1fbf334472bd153
+DIST firefox-105.0.1-bg.xpi 587141 BLAKE2B 
1e144c7ba8a464e61ebab0f18e03241e5402f34465e7cfc448293b49dee60f4bb01c4dd6078ad173f9231bbbc5a2c562cd21e8349f954811bcad937460025127
 SHA512 
5ee951ed2a477293d7cec42e76ca38248250bf747c2b0564418b0533ce66f35a78e0bfae261adf132772c3bf7e9e80b9b7f891519d7c3a4e0e35e7dfc713c552
+DIST firefox-105.0.1-bn.xpi 585359 BLAKE2B 
17dac7fbe9579bc677b7c4884c54e420d569197750b2642707ea5ffb7a8361726e3d51a2a133cbd1c5285a3961dd0d9d2a3ee31fc85adb69e5f777ebdab28913
 SHA512 
cbb09aae1383e4627fe6ce14392506ceaa9bb296f94f341b62baedca154671b2679a37f76961ecdada55af123df45b4a859a1693506d6f3e6065b68313c4bbbb
+DIST firefox-105.0.1-br.xpi 539953 BLAKE2B 
cf605b3ae5e1c13454c720a57b8b3eced0310ad44eb5fd333f0d5cd18d938d5f6db86e31f3a46d73d20df548f1b6ec6b10f9a437e76fffb4061cde278503d401
 SHA512 
12163f2e7bd0ec958bd70f95948aac07cfe47b71ad6906728f8f0b8a9cf921d26a92aac0faa520d23e09980a127e45b1453ada2a20c054626852ed8a2553159f
+DIST firefox-105.0.1-bs.xpi 470942 BLAKE2B 
f2fc66ede3a0a5e26b0684d1e76fbaf4f4a6864b448cfb5bdd786ace9435faf11d3a521df243f6d3a103133b3463b8a6190784edb9fb8310e36a855918df666f
 SHA512 
a488009bce63393aa4c967f39f1132d1ad19da7ff0d07d400560d38c2d788e0c4e24b2b1917aa86ed6f1f83a3c6532ad6201d0297d935ab5238019a857b3f846
+DIST firefox-105.0.1-ca-valencia.xpi 546422 BLAKE2B 
6bc88951bf265c3ad447b830d050c5f16f5a87f5a67790c79ec35b0e1c377471ce3cb630d2d272714c008588d5c677b507c9c7f903ef4b7a4bdb7eabdf518cc9
 SHA512 
069fd4dbc76494d958c3f26fcebeed3912ae042e904aba59cce55f02944d2ebe31799e7237638d097562871f12667d34790649447abf47517599c16c595670a7
+DIST firefox-105.0.1-ca.xpi 549866 BLAKE2B 
9b725b12677248a9adc693c665b4f9751508df8b3fde58408806d126cd7e744eaf83c0e9bf75eb42ab4c78d9b060c81e79a4bd38cbe3a19269ae0f40c1a4653a
 SHA512 
30ae7eb14f1ca7aec631df450c89cd7d6c36437fdffd140807ac28347b131807a98fc4c7dae50fd3208f37972db287fc2e1d1c2ff303c855b4eb4c8a00165d9d
+DIST firefox-105.0.1-cak.xpi 559990 BLAKE2B 
d3245f05776a40b3367d4e3d7a20861bb4b62f00b5ac4781573d6401cf89ad4feec8d20a024444f6dfb454fec81a73adf2133fae78178a7281db1af16ef67f42
 SHA512 
9371eca6655d8c5cb769f1b7009a1d730f52da8ff5b118108933a3097750ce261db6bcd597d226358e8582bfb8f95bc9fc9bf970121b74a752589099e5ffbf5c
+DIST firefox-105.0.1-cs.xpi 581742 BLAKE2B 
0a768cb4562bd5060ae3d6f52cf0e48cddcf52ef0e74ab86bd817511f092ded28bcf91e97454316bc02f2f056683a7b208b07639f7e26616975843f8d586fc27
 SHA512 
bb0d3ba875ecce7992fe799a072f8f97d429c00bafb2f32671a3c84422369275a6939bf7f4dc88746cd2e461309eda798866a287615289a023c072a293258ce7
+DIST firefox-105.0.1-cy.xpi 562733 BLAKE2B 
a1318a7e76b497219bd7ec4220fa41225b731c504a5358faa32ff06271aae65b34ff9ac2cd7b697122c965cacdf4c9b80499f32993bdae92c70f748ddca3c0f8
 SHA512 
b4383ee24139d6f956f5da0db7ab35df9a2904b058d232bacc3407222ed04ada530b5abafefad1a75105f1f77ac6bf260b8d50ba528a82764154b9f155466c52
+DIST firefox-105.0.1-da.xpi 553598 BLAKE2B 
0e06d83eb66a95b58e950c3e624aa9c36b775760667cf8d3a2a5c7e2875333fcf56cb9b09105422379dba01aedd1b7d0b2ce3cab67e46c6e3524ef7b7bfbfc54
 SHA512 
639de62d0f0e9cd7e5ed6fbe1de259c863537b09cfb829dce2e68261767c066551762ccb222f9217c86b3c98ef99eb55a17c79f4b7623156ef6870d87be759a8
+DIST firefox-105.0.1-de.xpi 574355 BLAKE2B 
adc3dc57f9c819f7fdfb7c33f3cabac3efd8f7c898ef1cdfa032d23c74de17ff809e6f9d1e63de2948b975638ba30312e59c17b9507cc6d948e4742bc2591ebb
 SHA512 
834fcf649728c04d9d7c8ef515853a97f5508e9c9e92f3bd8db0c9f2e69d4c573c3058fd1c8212b604b4e75cc9b6c6530ea47e627cfd1dfab44cf37377c53868
+DIST firefox-105.0.1-dsb.xpi 587698 BLAKE2B 
004a88885b3a2eecac82217f8fdf648958b94af1ac244521197fe915f649fd09126babdce38f2f31413f888c98e46a2a8a158c7f609307c01c4c3514d52f47df
 SHA512 
8664b259c63bcd564577f5aeaf831e0bfdeb4ec535059d3414b044191f4ae511712772b50e0d60be443096c66c644aa636b38d19407515ad71e140ddc6983473
+DIST firefox-105.0.1-el.xpi 663193 BLAKE2B 
93bacd2751ca07ea77816cc8bf38a1746465b50d807afd4101e29e01a79e12848bfe6fd3d31f8ef2eef5f68bbfa35579a3fcb559d4c89b0c080cbc4cd1f1f6d7
 SHA512 
9393a336b9fec3142c3cf63c4dddd3165840927847ef9066e091ebe43082414226626052a58c099888347eb1f47158a4c0d93e85a5f3bf0e080ad09d240d56e2
+DIST firefox-105.0.1-en-CA.xpi 523068 BLAKE2B 
294d1d32bf08dad370c94d0550b8e4710e8580f5bf1714bc45728de010c2a192dcdb768e932d61b5a8cc7a2831ea71737eae1c32101b3529ccd51e6d608cecd1
 SHA512 
35ebd07c00ef0e9823797d3521b6972609ec4a6012e56fcbb13dd68eee6ca36ad77a4385f76ee702dd50fc099113a3a3bd58e96561b16ea38dba3fd7f1fea6e2
+DIST firefox-105.0.1-en-GB.xpi 530694 BLAKE2B 
c70d854e3cbf1fa5fcee775d87df4a4a2b9fda239b00c81456dadb277efd04de4f03f010f2fa562ae40b29109aa41235986279d96f18e8b10262d1bb5e28358d
 SHA512 
db90f6c84aef3d184581764e3dd7e87c62f68c51a7312a3d05928568b4c61fd8d9fd543632cac1aa41e7acd46b265dcd4c8689b893203f681013e57ef2c0e734
+DIST firefox-105.0.1-eo.xpi 554048 BLAKE2B 
39d7d977234178c67ba8bfb1a923699d12af5d9d0882e4b45af77548df8d64ce6f7ec91efbf998a5bc6862e813d893436d66f0f5d9659deb472d5394203f5c07
 SHA512 
fabd89263f0f7d65d3f7448f2af14c342aaf668f3a582aa6f26219a3b79218209e35f81ee6de61cf346c6c0f61c9841ab43922209573240f1c9dec266f697062
+DIST firefox-105.0.1-es-AR.xpi 568709 BLAKE2B 
6e5dff0708a8011a9e984d131558ebeeafc2cfa8b420733af4bb1decb136c1df40951e30e9e3bb261d1c1f289cff55bf543c88182006778d72693736dff1fe37
 SHA512 
d3d9e5827e1aab3057ec9d9f79ca62ce5bc32f76d886212e6b64034076c9747fa8f3d75d88ffaa1996a07f93fe0fc35277d2a1f5b5025fdd194d57ef4a51d27e
+DIST firefox-105.0.1-es-CL.xpi 567814 BLAKE2B 
e84282536a52a066e09d847a8cbdd713c243415fbd8536bb3230b2aa37d55380e85260f3fb0bb9d3539105cfac60f8ae40f5b3a7a4dc3dcd61a125e522263b28
 SHA512 
2b7c85383640b57b544084b8041f407be622d2a32b16c618ba2af55e36e27e1d2f5da4aab5d5434dd7c258234a06e2e54f403ce310486d71d26157ceacc44353
+DIST firefox-105.0.1-es-ES.xpi 553322 BLAKE2B 
76b58f3e513b0a7de60aaaf6aa4de3e1de4959c5a41a244f90e557bd160590e99e26321109972b29fe105c05fe29d6c08fb8d158fd96d7975a1f1b09e45e7b60
 SHA512 
0b06f97b9fe7623ad27d78a18a23818e82c8632619c33db18e02570d36d337d9aabcf7ce0c5b9674a251d0d455fa65741940d6406cce9a57b726466850cfcaac
+DIST firefox-105.0.1-es-MX.xpi 571860 BLAKE2B 
2d587e09c001dbfca85b3f4cb037e6cce01f4a8076f125a2e0a1583a3869a1912b5174fa1f379ae6db5ef5f129aa86f8fe2308d71da1833b9694464e2efc930c
 SHA512 
fde5903d934cc43bd02619026b8a6847f6db9403cb7fb7e4dd89dd5a1c6cbae696e71a60a3d5b5b00e89b5278d33ab03176250643641981bfbdda7f5a408dc06
+DIST firefox-105.0.1-et.xpi 539886 BLAKE2B 
d886e47dd809fa5f6bc893455a8b3fd766a9ce6c702c2896a4333c5681cecf5b43001a73e64cbe81c220c679ca60bb07a8eaecdc42cd90d616954ff335c169a8
 SHA512 
5183f68f69588d3c8aba7264be6381c298975eeb93e83b13f98daf8622f8470ff4c0617b4c2f626457fbf5442d4ad13baa3d600057fd86d8fe3b2e37d5886d75
+DIST firefox-105.0.1-eu.xpi 556245 BLAKE2B 
161fea54c446be16c08118a31574dd670ccee1da25fc0ec362b20ea039a32d843f3894c8de3739609b71e49cbe5c6b2d319d46306e29475dce84474cc071efbf
 SHA512 
a0d1e937038dcdddad0293f6b9304d7e83381857d0d846e5010b5b350918723cd8c67d5291553fa3926f360d3687a5243a5e6bfadee53eb3fc2edd7f9d0c0cc8
+DIST firefox-105.0.1-fa.xpi 571118 BLAKE2B 
5219fabd543b2abc0caf3996f939e2aca4efc2a1f03c924dcc5309595987e2902a21d6a690cc4eaa7de3dee60f8975276c1f93dfe0ae1c7b25eebbf8e34feb4f
 SHA512 
f0ed46bc6d877d257a473149fe4e3b828a8cabc86d4f77c8f1345f4844db3ffd3249757bcecafb96fb2bf2e22a4d345ef0b717be4bcd33f29ad2a83be7156c2a
+DIST firefox-105.0.1-ff.xpi 481136 BLAKE2B 
51ee4f4c829cf5ffea7468205b4040a8ca0b4dc8d23f2c499552f590654d379abbb4b74662b8813dd22b1dbdf7adeb26517d7b31ad9668e4e2cf81bc1a057449
 SHA512 
957a34430b53a4b30acfff228d7457889bbc0b70110e205258a908fc0c7166e9648b32d15243621b2804e0a59841ec955c54995c9d1ce4963ed6c0f3ef9f39ea
+DIST firefox-105.0.1-fi.xpi 552065 BLAKE2B 
2fe6535f51ac585a9cd2573a8ad346a62ee6b2645288f38e641d8cda85a7e3fec4b528211ac4c27c91a689d585fc84e1769ac3965a3dd0ecef6f8d1050bcbff3
 SHA512 
1fe97855000585886931d6f71d01c7f45c191595a3f9d3ebfd342da925a896712682bb17bf488a150fa92a7c20ea62965881173938c0cdcb2a0b7562f2ea2de1
+DIST firefox-105.0.1-fr.xpi 580216 BLAKE2B 
25646a99b5dc3fb813ffabb73df1e35acaead0df40216773334b248f48d2ec229f864db6e712162ebbd3e04c4e4a1a3b26adaf01f0dd727457f16bcdb6f82060
 SHA512 
8ec98573c52bf05baf8d69957d58952a13c10fc8cc96029439a061ab14a3016968ae50e849837f05bc29897dbddeb179f66a4953e9b4bb0e4f606d5d88cb65f7
+DIST firefox-105.0.1-fy-NL.xpi 564511 BLAKE2B 
e341da66506a4a673a5a005f7e7e27496f776b97e1e563ae4d7a2211b883ba75fe95459b17ee709eb50b683af1c361802424c023c10583d1436d6dcc1eea3e39
 SHA512 
7392b48fa7c96471bf68390c7d7a00600e442165b20e1b7f8349b2c4ad7917f5c8084057e36dd5238f4064556a4eefb02c978c16715c475183bf2818827ab50c
+DIST firefox-105.0.1-ga-IE.xpi 479303 BLAKE2B 
059d5c8a08d42f4defb6772866d47d962d2a318fa5805385d308d3d1a09459455d91d474526ff68914905e5d761f586c7506656b2588dd5971105aaa7afaa250
 SHA512 
b219078eee2ec8ae9fde1b3f68ad19b4e99542b0f46e91fb59ec15c97d088ba4b85b967fb2c9ead9a882ee0cb9ef7b0c28b59aa6281b60bc8b118389bd55b37a
+DIST firefox-105.0.1-gd.xpi 552652 BLAKE2B 
ab9c81b8c058bc0d4a6456bee85bcd7fbc23a83323f9a78ba6637dc8806f7ddc2c2c157643471d9b4618f5308a957678e9c8e2c5eafcfaa35cce6e7ea1fb159d
 SHA512 
503e75cfc778ee05072dad305c7fe93dac159d3ed2c041c5f4d296894e9977265a51f8af586b5f22dbab7a2d2ed529674c567f6fa68a3e767d16540b5c2e7457
+DIST firefox-105.0.1-gl.xpi 548786 BLAKE2B 
cf96dfa6814e534b607ac211641c44fb0c90a883b5ba5597799da216e766604a9ce803d9ef85550cd91a86fcba6683a3b0109b34f67b39dbb6228e02d9a426d2
 SHA512 
57641eca1b1f30070a8bb6b49e8893c8df22cb0e3764799595b791ad55bc499a88e3c5af68af63cc95b5b70816e1b0e7ac0ae591245b3d7e8d11886bfd218671
+DIST firefox-105.0.1-gn.xpi 579010 BLAKE2B 
6a73fca69d57b447b8906b1f300c61c9344db18454ac35b4ce226b20a9dc2af297dd10ebbec2bafbcb6a735f3f734ed4fd4e5a0d8a601f937fb5cc531d23dca6
 SHA512 
e112e22f3a1cdae8328f55d8bfbf51db26f01cd160b6ada3a0d3cd22a8b5eba6d54e843004b6d88c9e7ccfc40e2ad0d221e74b1cc3be8a041ed6eb2e7ea1635f
+DIST firefox-105.0.1-gu-IN.xpi 536348 BLAKE2B 
0de946a1a403d9b8d659725c22512b14a7e40a9967c10663f81e8b89cc46c05f168ea4288944f4ce035e09a7f1e7d731acf1715d30ee498bc92b8e562d55b76d
 SHA512 
4a7fe0b54cb74cebaefde042ebbeeb27db9277fd3cd4fd3ec66221edffbc57766edbe18f5cc968a85d4d37d659a73005f138dbaa0e4e596c09052f2690c03740
+DIST firefox-105.0.1-he.xpi 575466 BLAKE2B 
2429e79512023a3d77fc56a543a2634eb991742f45be29ecfb3211a557b60162cc27cc26a3ab86585c36a8ae0d5cb527d80a8643a3bee95cedf4ce678339b248
 SHA512 
d0dce1ee96e7472a552690f1f58cb87debe531166303e5e975b99be1a1709455c62206020bb4c0f16eba29802d5970d8d6b0a9d046b47838f3a690b8a7171474
+DIST firefox-105.0.1-hi-IN.xpi 566805 BLAKE2B 
f67a2d781d258bd98cdb1d016893ae6498decf8bf18f86a4a712d96908d92283b13c13b51be8373c6f3a3496fd0255b55c9035b2d33d4aa367afe4d1a0e61f5a
 SHA512 
4b45e6c35471624926be986eb96b6a27f51b851517af69c0bd6e70f13f70c69c4fc159dc96ade081ec2bedb20daf5775ec27dc507bbbba98caeea54922aa2f64
+DIST firefox-105.0.1-hr.xpi 539462 BLAKE2B 
f881ca413bf77008400a233a659f9eafcba5b38512cf5d9bae3e9e1701cc76635609691fe4c435bd01674c506527c7c63f9934ff1e8780902ec10677a5bc5c33
 SHA512 
e66af46cda0392b465f9482cd969f871e3600415db573b186c0433957022b7ed67c1117c90fb66f0311dae2b70374930bb17912d23fe34d51ba60d39c85e9b50
+DIST firefox-105.0.1-hsb.xpi 583868 BLAKE2B 
351b9caf490e0e76eb18c39c656308d129cde9bbf4df71ad52ceb0d1b3e3342961410fb3999802f8c7ca1646b108f563e5a86f36dfe073b56c8aad74f429bb5c
 SHA512 
0f4e8e1b18eabc8a3f0f02ac1de4dc9c3e3b6b7ac138a7a9c25c5b7b6aa3a5a4bafa0a8d0101b3c4577fd5cfa1f015114b02f25245006a170d212d85e59a9e44
+DIST firefox-105.0.1-hu.xpi 588455 BLAKE2B 
a593e84c2104937266227b806b910e7b2730e8bf792022e93a6cb3f2f8c999c8547dc3f638ae4d63df179115f14f127ed7f005eafbc85aa34268192574e0ea17
 SHA512 
15465694c0376210d7656c32c50cf52a0e1c490bf1732adf5ef32c56ed5420b5163874ff905224a77f4a00b504bd960355edd25804fc5be4c3c06b0a4554876d
+DIST firefox-105.0.1-hy-AM.xpi 591360 BLAKE2B 
612c3adc14956e41c0e8bfb83e0b4181544678fc08c507aaf2f2a1eb480abfbfbfbb40f99488439687133dabe8917616acd710d14e733a87c726bdf95c537343
 SHA512 
1bba630b0a145ad58c687f9b24cd627aa95ea3d1520196187829c983112477eee514284a3452dd7b6ad3ebc79130fc78c101c49687a2223e42fbce2278e3756d
+DIST firefox-105.0.1-ia.xpi 553263 BLAKE2B 
74fbd55452d514f9b04f119ed17b2ad7d1268ad3f96f1550495e2ace0dbf079c4403b71a997d2158fdfcd864a497db0edc705432abe3fce9599713c09bf89cc4
 SHA512 
fd4251f058d4ace91e63bb3b276325bef572552ff2502d95e5c302a33fb6d41c497b3cb300430835d164d68233d60b404bbe0146c9db1087ed6fa45a287f18a3
+DIST firefox-105.0.1-id.xpi 550328 BLAKE2B 
cc5672391fb4b94d498aaf5879c64ca958664fa5b65da829ba31019b66f2d0c9a1e85d2f77dac831f14defe8b3fed4e9a1ba07eb687f78e943e00f23712f5293
 SHA512 
8566e3d58949968be49c56b8cbd0a065770791693ceb0431a66d4a6528f600e2885cc9f4fd38a163b29532a7539c7dbd143d182076ced080de1e46268bd2e3d7
+DIST firefox-105.0.1-is.xpi 560804 BLAKE2B 
aeefaafdd1e10ae7d1fd1cb496ca0dfd6778581a2a970a3d8fb33da673a50e830109ebf66fb372eb04c04cbac92408e38b36be2e238d48ce0ffd5028d95c4a98
 SHA512 
5fe9d1b543f592364d8e5487d7f6096c202304f9bbe211f407866e56ecd88425616c3078890e3722359f156928680ba80b508fc4647aae5cde349cc2344faa67
+DIST firefox-105.0.1-it.xpi 471261 BLAKE2B 
053974af8ca970443c3d2a41c16d4e49d0e9ea87f556f950e9ae45a77232367608f41b3f4071316f2287dbe76428bbfd29025b1552d4654776fca17fa3433b77
 SHA512 
a7c1525046707a14529b2e133eee7de6295c75399f901d94fa66fec535f29fab5185ed20462c7b411f26a30200204c4a054a3f107c2c711731cf778a3835ada6
+DIST firefox-105.0.1-ja.xpi 593772 BLAKE2B 
0b7c8ef62406df4818bad282f379d1f5299afbecbb766aed95e02e3383f4e2b3f28cebf8e32335025b1b38832ec1a43e3cd781a929611207369b541a25286d2e
 SHA512 
bc049b6c1c69388fd9fa2c34480980d94cd9831749061b335cb9a1531b294d135a9a3f88fc5cd944e13c20eb38b264e8a162151d99ecd39df2350a0a4aca5902
+DIST firefox-105.0.1-ka.xpi 614607 BLAKE2B 
7ec15482e4eb615dc1af5345713bd41ecef79b1c3d1cc9ee89de95bf5be223c2be8b229a4a13bc5524bd0b2ff0afc2631f71c8bf9095b9c30ad09a8f7461af1a
 SHA512 
f5c2c998e4a925c102a8d6951237e5735c6974e74a83a5b34c65db54072fb90365be1910b014455e16a51c77950068591713b15635e83b72449580ac39a8c870
+DIST firefox-105.0.1-kab.xpi 573731 BLAKE2B 
3ec28b0dfd59120d57dde3d4b1bcc5a747f75a18ea03b9172ac6cb2c238abffae0f251525e8405812c798c6c85befcca501de759d4875984108409ed55d58fe5
 SHA512 
0c7e866eef184194739011131d509cbe281e5a063f338e0a0ca9fc230d8eb77549a6331664f2d5ee39f0f37144c82b90bc62cb9cfd90638f821ffac5ac2f5da3
+DIST firefox-105.0.1-kk.xpi 631195 BLAKE2B 
30452ae407104d16e4c422896938b5d62dbb622e47a3a00437ed99665a525f61ea45911fee8ca47b66d316a08b0b6365ce69a4b482ccb442652ef622d78c8f59
 SHA512 
3edb981b56c23880f7f352aa1a48cfdf60e982bc2e219203803bd51444e801d631828f2846f28e771a6b6d9d64edecebeaa7f260244d6d107f5f6b0a6b71d2ba
+DIST firefox-105.0.1-km.xpi 540646 BLAKE2B 
e66705fefbba13cc4d9196b6302cd079ef80f4707021b5e052c9cc70048cb9f7fc9c83eb6ae6d5137faf69c23aeb944292a855f36abc37a567ab51ad91eb4719
 SHA512 
5af76916d9006af7c8726e94c7cb710c883fd3b1603c28c4ea82fb3c1e1602cc17b98a3dbd45fe9d26a3a1bd553b29b9a7454679c1b12a06fef969345dd720e6
+DIST firefox-105.0.1-kn.xpi 506462 BLAKE2B 
33bbe6086bded85da62940ff916e4f4fd0da12463973d47e51fe226033de4f93aeb3562ab040e66738f04165ce9c3f6dbce005982acdab4e163926a93b58f2a4
 SHA512 
7288924a7bbd54d306c63ad42479b123ecffe73085114863adaed8c7b9d3fe16bb5774284b8b3cc498ddce6312ba7c97e019b73c7bc39c3ef46243f140ce90f8
+DIST firefox-105.0.1-ko.xpi 600512 BLAKE2B 
16b703d8da64a0b39f6de9afa888f5f3b2054760b6364ed88857ceadc7053c1c0256a175fcfc1aafce4e5df4aee0fd1d8e090e3f9e7d10f08d0db22627dc66a3
 SHA512 
5a7a0d9511abb46f172264378ee0c19b6e54f55193ac3091b285678ea13974cee66680d5d431e61949df5e13b5fb1fc00635331d0802aba4229b3e706a1b681c
+DIST firefox-105.0.1-lij.xpi 479007 BLAKE2B 
00f1e3ba54e049a1f9bafd2f00d2011ffbd0c14cdff60f46b4a38607483963a754f52fe0aaaacc2655bed8be50926056912188d355cf21b82b67f35279cb8a5b
 SHA512 
ed1ac7cbd981e580aafdde9d20d71aff4a6a738bc2002a8eee60fbf487b482a3815aae12fae7f59afeeeafde007739f43ae14f4955e7c9d143614fbe8367c462
+DIST firefox-105.0.1-lt.xpi 570049 BLAKE2B 
0c4364974255272a2e79e83e173437efff25dd408edbcfaa70e8e8c0d2f5df03d9d86b20fa5c73ff867318b8c56415c4445b3567fad7e5ea0816468e2e982b82
 SHA512 
bf38944e0381ed7295ea579a668a3baed97660ad9e6cd7a1c26531756d924dbdccd357e63641af76712170638905a60479c0d3bc78f953a0e4fd650832228428
+DIST firefox-105.0.1-lv.xpi 472212 BLAKE2B 
104a30d12d21231d3c252c4b6e231ee1ce27455adfa73b942506797ec51e756725ba753ac7ebe0105db6aec9769175d6e0259a28894c26b121c6fbffa6e79272
 SHA512 
25c64f81d25f0869355db649942f48b26e55755310060ac4225ec1a7d8e4bd5cdeac11ef44d0528788b32e0dee75cd4212285f0f4d9aa410ebacb9a91065e2db
+DIST firefox-105.0.1-mk.xpi 490872 BLAKE2B 
145380cae47cfbef653a99516be2ea65dccc9dfce30a2c3929d4585f751982c183c4efcdc480b0defa30af541bcc51c3492e4b6f943d649444560714adff9c0c
 SHA512 
2f0e0c9ad415fe413a1c82416116eb99cf99dfc51f2b979578bb8828aeff240837e52696b452225ae6be89ac46445bfeaff24a313cf1231c2c3033898cd69201
+DIST firefox-105.0.1-mr.xpi 539882 BLAKE2B 
ff817d83caae25dda54c60b3f59dde9c950bb6774942b160746fd63026bca189ca5611330f641bdb627d49aed65515662b7e22dffd5a64bee6e02395b4826833
 SHA512 
5a459091441310d22075586589f85fa5350622ca4321f6aeeedd57e9ac91f497e6218a7b1ceb46db69fb8e81483cfde984f8c922135a4edeeb6298f41a9163d2
+DIST firefox-105.0.1-ms.xpi 457111 BLAKE2B 
20f52d2c649607c6ddc2b7a554b9e3e58c0869e8c75fef3a19e5c7a809397d5f84395b87d102ac084c7b96182b0bef82a1efd4a8ff227d289894d55f6a8a8448
 SHA512 
0b9012f5ce8b724bf6178d1260a06136a6e04a0c595e53b178cfa1dbe31e978ace6c5203d82cb344aafd4e907c33be5e120e08a53de322609aeafd25bf5bc3e0
+DIST firefox-105.0.1-my.xpi 520853 BLAKE2B 
611ddaf0a8e19c0571c5c757db8640f9cb43b34a8f975663c1eb02262e418a7f9dcbf40c5405380dbb12bb247973e7bd5c5451ecf30ca3df06dda0ccf28908fe
 SHA512 
fe2fe095dd6c21103815aea2a03b08257af4220bdc5356c4c7c0c0cfef418c40710ab7b19101086ad484d7a2f0ba91ff5e35f7960d42839db45e0369e7042fe5
+DIST firefox-105.0.1-nb-NO.xpi 549448 BLAKE2B 
1175fe9b8fa2e73d116acf211fa40466b24e66235414a7b2da77fd92ec047741602eb6284906a52722260f2d52233de2acaa9dc529f7ad9b409622e9f6ea81eb
 SHA512 
bb59f1f89a88e81f52cb2a0ee172ae0ceb04a3cc355db5ff6c5a50786e71830b281b03505349ea910b2d7b2cd7c36d7d71172cd931e230e392c723bad5d6710a
+DIST firefox-105.0.1-ne-NP.xpi 498110 BLAKE2B 
f9762022db47c1e1c306a8be75df1b70fd0666c4b6d081d98df9b72a334d26934ea35ba08c98cb417015e11e50fc820b7ea54d11bd0a2bc6d46e6bdf2dcc75ba
 SHA512 
7a734c12bb08a751ffa57c23f3d6bb0ba13b2ea1750e7abbecda29cca663725ec0a88aa4b834b3d496b2bd555b754fbc0a391e7201da3067a7a73b0e1325f83c
+DIST firefox-105.0.1-nl.xpi 558694 BLAKE2B 
1233697b72e10bb5d7bbc0dc1eb2a3fb44223e75ec24eddcc7d3ff5dd6d69199fc086cc720e2525cf2431f34f95ce96a4557e08016e97afd6eed49332403f160
 SHA512 
ebaf57c1141c6aa571fd4306436a58f9d6c35db2b7c1ee81012b508e7ca6a0b635824e81f8c28241ba3a5ac4e6dac36a92ccfa39a85d3d7c717ecc7d5bc43b1e
+DIST firefox-105.0.1-nn-NO.xpi 549963 BLAKE2B 
a95731f9ddc8a4c05699f4cbf96aeda1d7c81dbfdeb0a9b277a8a39f401f3e5a63358023821cc8ab9fb384c88432a10fc13d8801792cd80b247625902f138d41
 SHA512 
0095f6701319a43a0a63dda3c0b2025e1da5fdf34e869ee438b764391a4b0727e69388491d0fbbb46505931614f1aa3877bb3e8d0858f1235d3a38d1dda334e8
+DIST firefox-105.0.1-oc.xpi 569615 BLAKE2B 
72ed4104daf5048582a2d7e3ba0090187aa1d897e9cfc259ff75236d79760aa8d37f175e4decfef3d3476bc8f0c283b218107bf62f9fa4b64e3a14510ce6c709
 SHA512 
cb83daef5d00393e943cef6b321da957f53fffa1dd614955f2b772cb69317b758fdc5494f72380b0d5901ba35578c2b0cf1f0784eacb9ce5d20243b858612d51
+DIST firefox-105.0.1-pa-IN.xpi 621215 BLAKE2B 
acb33a45b1aac57f18fd38198548b2fe4eea9a4c0a3e8515247d4f59356d7f715c9af1e5359fae6576d374ba014e53750b411694fe8d9215b41444a60c94238a
 SHA512 
636c8799c6bc61e3492fb74b3314f574a65c5d7b414b1bd00ca745e86f62ffa36de9c992d5ad4601a00b7bf2d2333cc056d579f47c38db297b23971de2c4adc4
+DIST firefox-105.0.1-pl.xpi 579341 BLAKE2B 
5155069da06df120cf91b2f74a56a89a41113cde7e9bf06e0f7a24c441bf5bc46ef7abf6892aa877ee197f035c9440a6888105abec592e110aed4b2f778eebe3
 SHA512 
b2d7ac86172c964d78005a05b1eafed2e2b21afff584768c8686c048f2505c8c8591b8105810c3ef152340b3ffaf46e03fbda5f77b505f71a85fc447208a9c8c
+DIST firefox-105.0.1-pt-BR.xpi 563717 BLAKE2B 
1911060723eb8df959f514e4dec63307c3e662bdd3b74c729eec63634bf284b0391a2f4d0cb1f1c4290ca639e5f9d7e5692988ad990f68343d096987913af80a
 SHA512 
ec41c51a7f61266c05a4395424bcf7b3331e04fd79b9a0aae575bb37cd21a8fe11cd2678b164bbd070b5b8b63a917f54a594502b362413fbc20dd0c608d7fce7
+DIST firefox-105.0.1-pt-PT.xpi 563884 BLAKE2B 
2317a7e95606a5c3581c5acc75aaab5f6a4b77d03e7cf318bc623a4f6ae8df826bfc21299cd51f652738f2517c2160678b6d233e80be35ff66fac775baad1a51
 SHA512 
8067bda5d2bc69ec9b2326b906249b9f478c35f3ad59d3a5576fb157396cb5123ccc153610c4d754a7bed45cb64b57b319aaf8c93f3ab4e637a71f68c66931a5
+DIST firefox-105.0.1-rm.xpi 547530 BLAKE2B 
30b61933d1c7d2446199ff0a62f9c9f89da6fd9d850e7d195477dcd1f99a73d8ee88f7b1d6164e5b51879022986a1116b6d1ed38b0cb0269ed5db1ff4897c85f
 SHA512 
42a83b322ebc33597db7d03c7fdb84168887c27621658e707651231e770b2dd3da3117dd21b313c66f44b74abfb9836696c873737a9e6bad3c40be3f8c4a3c6a
+DIST firefox-105.0.1-ro.xpi 537786 BLAKE2B 
26c79e9ed2f902390b86dc0d29cc94966a3393c286267b80509de7d309eefdf3e206bb022a9b9bde5471b9cb8e11cff694bbb90303167960bb393d81f0e062b4
 SHA512 
8a86d6f33a480d4ee6d576ec240da5196d6542d0f83163a382a14edf361c1c9687cdc13a96e10ff5df157c04608c6e0e1c77e5b0b7237d65ee7e3e540015c83d
+DIST firefox-105.0.1-ru.xpi 651159 BLAKE2B 
d8e555d1d30fe299fd91e230191a5aaa54f3139d05a8d9042bb7eb2a5eb9f052b8a71d919feeb8245c6fccff505f1a2eaec16080a41e5d8c454190d3fad99293
 SHA512 
c74d078295c2343af5f7eb5fd824381b135504afff0f50cd2f14e1b02ea1aa4e94edf553d72580c0ae9b96c1722867c2df3d9bf1170a943c8b63563ee618563e
+DIST firefox-105.0.1-sco.xpi 505207 BLAKE2B 
0dd0d97d9d108e7d70274a8c6573d9215045bdb2b804b2d793aed8dd5a3b6831bf5c080a536992beee2d9fdc007b40978ac6ef4d4f84721c75e7c2ed86d3f4d4
 SHA512 
63c4bda75f29ab1cdc83e6723a7ae42977b345208211efa5198e11e52799664026fb36a92673e382860468e1f5f6b3583f9e02fcabf33d37d3c311a9ad0fd4b4
+DIST firefox-105.0.1-si.xpi 573138 BLAKE2B 
3057034ec4a2ae31381c2a58766640e45ee9b6cae9144eff21aab4b779c4a81fba10141a87285565beaed85bf188a9dcdb61a34d336cb9e6e359367d2f7d5c5d
 SHA512 
97c026bc8ce5cb9f01d3a5642a3142d116674e792bc2b10eb9270959a46c1d3c39ed43385ab44d589a1c46428fb8e346130988ea8a17ba07247a15463a01fb0d
+DIST firefox-105.0.1-sk.xpi 588225 BLAKE2B 
c6dbba67c914b797aff727fd2d6d04c95b888c14c97d2a1afecc2095517fb05e8290e6ada9f82101d4135fbd2289ea19835f86d94593e51d77a90bc4ce650ea0
 SHA512 
e1cb37b88c8c6bc78225df39903f48e8b34e731eb5775bd9329cf41dea9b0ce7332ddb71ef41fdd4840d66a17b55e319027fe50795ccce51ea97e6e2732902cd
+DIST firefox-105.0.1-sl.xpi 561128 BLAKE2B 
bec6290725b2c8f91dc21ca880fefd03f8a2bbbd1f5522625565f89075e2469648f5ae4e43edea16cc00b0c147f0f87c1fc3a9e301c3cb867ac552ee5f9e2543
 SHA512 
f3e30eda30f29fdee94339d06cb27bf4308303e9c4ded7840a7e98502baad7ca4d31128744bc753c7962e29bf85cb81e9cb58b4d9161dfd6e24466a78fef846d
+DIST firefox-105.0.1-son.xpi 433327 BLAKE2B 
0ff68e70a8753837a487ecee9aea7c95a7f912af5050cd1c7d79438c63d7becba0ff31790db48b80caf064df8e55d1d8a0bd6b8715545e90c0f930b8a6e38031
 SHA512 
2254e6578bf2d646a533aa91d0a371a0cdf9b6affd366ded96a70887db6ed8f0f095dd1663658818d64f34fff4ccdefcc9449de7ef3f28357e9b28e3ef99e9d3
+DIST firefox-105.0.1-sq.xpi 565444 BLAKE2B 
f605539724883ba39d05feb941188223b91a2e5fbc9c1ed2c8c66638e5480c59ef00b6e66997defbaa2e2869d0e0e9a3beaf15def95dac9abbbd56d5e3eff357
 SHA512 
802b3e109450ab64809e971ee15424f2dda2d9e1023797472d1e6faebfd0d77e93f140ab841dc985e191698e6a18a9b63303b31a6c35826a4c944d67d970449a
+DIST firefox-105.0.1-sr.xpi 604656 BLAKE2B 
80453225ec2941d6b492ea42e356bc3f59d8c8b83dc7cd83954440fb4f8b0f1dfbf908ffc4ed8bbecb7d11ddad984c08b293a8da2b86d2eae76bdea8b88c9763
 SHA512 
294e56550105c32c29a73fc1130fd127a4872ac309fbb148c6fd7d07372dcde6617b37c77205a588e5135ebad10d652072cd5398d76df96aefd2e556e2f27d28
+DIST firefox-105.0.1-sv-SE.xpi 560615 BLAKE2B 
9be16630ca720fc406fa68c16302b47c06ea4fb78ab91c826a7afa4a63cb87242c4eda4f1312796cd8f5985e6a57d17d360c878dc3025f61a77a8b280a819b63
 SHA512 
f97008efb6eb8352677860363e40f1ac308916b476b4183e1e4b26a21811159ed588ee49628b752961a63fdc4481efcc514ae6caf10821a11a0c7bfe7c9a126b
+DIST firefox-105.0.1-szl.xpi 520752 BLAKE2B 
9f61912b630ffc38ddfe8183c4898dba59550da1523ed3a712d044c403c989108541b630db68f36e694f528eb95ba852e8ec62f15007f47dc9428b830ba62862
 SHA512 
fb898ed0e039396124f6aad5ac9ee5e744802e902dad769072746d1a9e9b15b93570b9f282f190e7b5e9fd3cb5fa8828fe5603e2fbfdfcdbfeafab15cbc4b542
+DIST firefox-105.0.1-ta.xpi 519025 BLAKE2B 
cbf63da461c775c06630795d8634ebda4f53f9f1a305aba74fc1a510d0f838474037d7c084099945ee36ca86ca9de2ae6888bff477df50b05daf529423e3077e
 SHA512 
3b74ac701f72696268951fc513cc4e0b2bc6af7a31b32ba60ced948f15a6e8e9bf4d136d5c335a6ed153ed43486d61104f15b5d3014f0a0ddcc63d869fed9ae2
+DIST firefox-105.0.1-te.xpi 560557 BLAKE2B 
d0a3422beca894c110e646e140bec441bb203b6610232ba568f84a1d0577d880a6c22c7259c038586f49a41a72c271e7e724b4f8671b517ae1f238b5ccaea256
 SHA512 
06131f674d56ce01b51dfeef18a8a99bbd5e624d85410ecc0247f702b396f9cb6a5cc504559a05d93c83ca06185343092e7793b93c1578539e55cc471c2a74cb
+DIST firefox-105.0.1-th.xpi 621826 BLAKE2B 
ede1d44f710372b8f76f3c3feefcca647faecc045a8e2e31ef20c60458d78ca71d688741003df243c3763fa6eacaacf7cb4babf9b42c3380dcbc8b1ed880b37a
 SHA512 
5879c00c0f069138893656e69b32a860a3379eb9dc7244ce78203bec187cdf27614e6f1c0bce57194af99dcebea23f5be35c24eeb5690f7ef5c5d2f15269d1d6
+DIST firefox-105.0.1-tl.xpi 527995 BLAKE2B 
4bd1776d8103baa63065a099c1815c9252aaab4686841c04197cb02948ca8a1418a37fc8cd6bb3fadcdabd0de1555535a5b77c4f9d8ac49a19e979c5eecb9364
 SHA512 
4ef538668822107b5b85c94a6c6390c5638034bf83a8a342a427434a32c9de379a6c39be069ad638db5455529123e02b531d2cba950366a56714afdf5fb6d3b1
+DIST firefox-105.0.1-tr.xpi 574332 BLAKE2B 
026e1ae8badd160aeb4e3f4a052fb769d747fdaf704670fdd82ee6e29d65ebd2ef0cedc1c5840e30eb3b7d484648f49ac4f3aa383c9272933aae5994c2ee5034
 SHA512 
bd8a521088db01d9f6fd06a785833e19c548557704ff874f0ba28b30cc08fe77565d36a4d3d0d19d93afda52cb0fc7a7cb9621c62cc44be2b1b62654cc889e66
+DIST firefox-105.0.1-trs.xpi 498809 BLAKE2B 
27f9f3161595f74dd1d6376d803270fbcb7068b36172d8f5bb5965535023efa6061edfe9c23fd3f064cda5227527d1be75ea17c42adcf9563d826470be54fae4
 SHA512 
6ddb519fd12023f1769b4d4c79ec7e0c6d74d1c00979b096676cff7cf350f65e9a3ab4f5bf8c858ecb367b6120bcf484db6bbc552efedefee01cb7f593d54838
+DIST firefox-105.0.1-uk.xpi 644349 BLAKE2B 
ca8e445436c0d6f7cac1cc601fc52814998653248c0f5dd45ec0f686cf2ac5a06a19fb92aadc4dfb62490a7a0b8d289041ba7a91763313645e2f275b08c0bec4
 SHA512 
0db821e82343020aa020176605b5ea99a6d8f8b3366e8c38ea00920c741f01da9d64e54cd65e8c3420cfb687fe7114835e26542ad9fecf5229f68c3af16bb077
+DIST firefox-105.0.1-ur.xpi 566537 BLAKE2B 
aa3d98f429baf0bbaa00181a9fb4492b9d2341bd2aea5aa60f6b934038e814a18c4214940ea706999548144bc76390c4e2e5072a3f0fe437972c026e7dd3dd41
 SHA512 
57590cb75e0e71eb7f974c5979902b797011775928cafa2dff2220319e728880269354b464299647f68fd8ea9e0c56c38699411dcc662796da297a85eaa8513e
+DIST firefox-105.0.1-uz.xpi 486876 BLAKE2B 
49daedd12980f3c51a23708b6c765b8449df9f8b2965450dc7de0120605433b823399cb689319ba37c47b89653573b418a1d86b47fc7ad19dd03ec7ba3c52433
 SHA512 
40134507decb0ce395597c58c99c12a52d234bf273f686d8960135bdcc80e2ebed62b4536eb6da6a5eddf9bac28326f8abd630dd395b2fdbd70b2502c9542418
+DIST firefox-105.0.1-vi.xpi 595135 BLAKE2B 
7328350b96c64a83c9077bbc71d42f7d8825835460b25226e61b35ebe39ebff2ed4032f7208d7bcefca2798327cef911098a4c5704e3d4e819ef24dac022e878
 SHA512 
d3c690da21315a4262b41d36c6c25c276cbdc1118ae116d021b5306e7307b4368d9aa5a99efab910ee992d350ec891e9c5b68a341474c4d164d19907b4ad92e9
+DIST firefox-105.0.1-xh.xpi 435741 BLAKE2B 
4cc4ab55df561b95948dd6b5e389bf6a1e3575574d5a7d0072968bfc4548a90e0e507848f1f7161a84c2d9c3dd115bf2699713ec9900361224b23cce0a19f61f
 SHA512 
0a67fb125fa6c511ffa5f1f7772f2679d959be04ae98f65726b1491756678cd8e6be6c9a43495f3bb78a67a00edc2464104c4397553a34bbc6a9bf90c32eab01
+DIST firefox-105.0.1-zh-CN.xpi 596364 BLAKE2B 
18c80655c480efedd506922bfc0d4430eda525a1b4a15db66851032c25dd0e103efd8e246003699996a01137972ceff1b60ca50cafa8ee8c9ac8b2657726654f
 SHA512 
51a8bcd726e46f28e404f3866abb8ef36b01163ffaa42e23ff73cf596b920b7225f0bafa2f587389f585577aca379c4ab1805c808dedb36ddf05dc90468417c7
+DIST firefox-105.0.1-zh-TW.xpi 597433 BLAKE2B 
904ba9a3e987c3cde42aec94017000d5744e69195dc7382891f6443aa748f26f670bcc7c6e9da8f1954da8bc295c2f469fa666ca02141caa71fc467d5b4715f7
 SHA512 
c39cf3d846c43a1942ced5ead5c70610faa6089b8d87dd32a16d7d5909a28e051b122699947a8117e2ea34a8ba463d5b481f68fb231b33872b5c4b4d70e25024
+DIST firefox-105.0.1.source.tar.xz 475536540 BLAKE2B 
9ee260d5fbebf48fa3158e917e04707ceadf21961623b323d7f3c598ae754bf7cb9280d9cfe009c48ca52e9dd2d6c40d1b788f429bb0e3e9d620163dad3b2b4b
 SHA512 
66ef7cd5028953e7da9d55e127135739c9d85be68ec633b71c52d6c9427edb0bd8a38504148484cd322adcefb57bfefe6e57cb15855f195508fe438864f4322b
 DIST firefox-105.0.source.tar.xz 487471648 BLAKE2B 
fb911cfb117433994927bfc0b05cd31ea86993be0b728d3b9dcda7dd3608c8b8a3a6eb6b4dada643abd2e109e9c551495a7bc92909bbb6db93763c0a66ac465a
 SHA512 
a48f323f874b538402630a9094daa83189b3ca319feddc80fd66d087eca13f21c8b2d85be9c29e948c18cb7c524adac44e135adcde4d4592738e104ae9c1a734
 DIST firefox-91.13.0esr-ach.xpi 453223 BLAKE2B 
88b43c79620d3e0263f7e251a41c8ee88f10798982d8a0db3d8d545b83aa4e3da75140f5d9bf879f2229ea831668344cefddf6c67ee45f3169c7d854cf53a90d
 SHA512 
795ca4fced227f29861de8fe2e93acb339d41de8b09c941244f4b62c8e7835971ec4366bcb3a35aaa75e779087248df459364c262f2fd7b294a6d7176b74e1ef
 DIST firefox-91.13.0esr-af.xpi 426921 BLAKE2B 
c0a89908f46ba666c9d3c9e916636e5aeff7564a0f2132213aa443c5dfed474006dd65dc8f47d0e0fa30d5435c810937da98536b3408dae62c428a5f1f4bbe78
 SHA512 
8c8a40cb2117479c08c13077eeffcd3473b4e2fd9164269da58a68b3c0e77c339184a2edca79ae80480f2b7e41c42e598a9350f01061b424cef1aab35a7480bd

diff --git a/www-client/firefox/firefox-105.0.1.ebuild 
b/www-client/firefox/firefox-105.0.1.ebuild
new file mode 100644
index 000000000000..cda48c99705b
--- /dev/null
+++ b/www-client/firefox/firefox-105.0.1.ebuild
@@ -0,0 +1,1287 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-105-patches-04j.tar.xz"
+
+LLVM_MAX_SLOT=14
+
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+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"
+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 autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+       llvm multiprocessing pax-utils python-any-r1 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,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> 
${MOZ_P_DISTFILES}.source.tar.xz
+       ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox";
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent 
+system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast +X"
+
+REQUIRED_USE="debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" pgo? ( X )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+       !www-client/firefox:esr
+       screencast? ( media-video/pipewire:= )
+       selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       >=virtual/rust-1.61.0
+       || (
+               (
+                       sys-devel/clang:14
+                       sys-devel/llvm:14
+                       clang? (
+                               =sys-devel/lld-14*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-14*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:13
+                       sys-devel/llvm:13
+                       clang? (
+                               =sys-devel/lld-13*
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-13*[profile] )
+                       )
+               )
+       )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       dev-libs/atk
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.82
+       >=dev-libs/nspr-4.34.1
+       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
+       x11-libs/pango
+       x11-libs/pixman
+       dbus? (
+               dev-libs/dbus-glib
+               sys-apps/dbus
+       )
+       jack? ( virtual/jack )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       screencast? ( media-video/pipewire:= )
+       system-av1? (
+               >=media-libs/dav1d-1.0.0:=
+               >=media-libs/libaom-1.0.0:=
+       )
+       system-harfbuzz? (
+               >=media-gfx/graphite2-1.3.13
+               >=media-libs/harfbuzz-2.8.1:0=
+       )
+       system-icu? ( >=dev-libs/icu-71.1:= )
+       system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+       system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+       system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+       system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+       system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               x11-libs/libdrm
+               x11-libs/libxkbcommon[wayland]
+       )
+       wifi? (
+               kernel_linux? (
+                       dev-libs/dbus-glib
+                       net-misc/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/libxkbcommon[X]
+               x11-libs/libXrandr
+               x11-libs/libXtst
+               x11-libs/libxcb:=
+       )"
+RDEPEND="${COMMON_DEPEND}
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )"
+DEPEND="${COMMON_DEPEND}
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       X? (
+               x11-libs/libICE
+               x11-libs/libSM
+       )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# 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 "sys-devel/clang:${LLVM_SLOT}" ; then
+               einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+               return 1
+       fi
+
+       if use clang ; then
+               if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+                       einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot 
use LLVM slot ${LLVM_SLOT} ..." >&2
+                       return 1
+               fi
+
+               if use pgo ; then
+                       if ! has_version -b 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM 
slot ${LLVM_SLOT} ..." >&2
+                               return 1
+                       fi
+               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+=( 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+=( sco )
+MOZ_LANGS+=( si )
+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}"
+}
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has usersandbox $FEATURES ; then
+                               die "You must enable usersandbox as X server 
can not run as root!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6600M"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] ; then
+               if use pgo ; then
+                       if ! has userpriv ${FEATURES} ; then
+                               eerror "Building ${PN} with USE=pgo and 
FEATURES=-userpriv is not supported!"
+                       fi
+               fi
+
+               # Ensure we have enough disk space to compile
+               if use pgo || use lto || use debug ; then
+                       CHECKREQS_DISK_BUILD="13500M"
+               else
+                       CHECKREQS_DISK_BUILD="6400M"
+               fi
+
+               check-reqs_pkg_setup
+
+               llvm_pkg_setup
+
+               if use clang && use lto ; then
+                       local version_lld=$(ld.lld --version 2>/dev/null | awk 
'{ print $2 }')
+                       [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 
"${version_lld}")
+                       [[ -z ${version_lld} ]] && die "Failed to read ld.lld 
version!"
+
+                       local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep 
-F -- 'LLVM version:' | awk '{ print $3 }')
+                       [[ -n ${version_llvm_rust} ]] && 
version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+                       [[ -z ${version_llvm_rust} ]] && die "Failed to read 
used LLVM version from rustc!"
+
+                       if ver_test "${version_lld}" -ne "${version_llvm_rust}" 
; then
+                               eerror "Rust is using LLVM version 
${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+                               eerror "You will be unable to link 
${CATEGORY}/${PN}. To proceed you have the following options:"
+                               eerror "  - Manually switch rust version using 
'eselect rust' to match used LLVM version"
+                               eerror "  - Switch to 
dev-lang/rust[system-llvm] which will guarantee matching version"
+                               eerror "  - Build ${CATEGORY}/${PN} without 
USE=lto"
+                               eerror "  - Rebuild lld with llvm that was used 
to build rust (may need to rebuild the whole "
+                               eerror "    llvm/clang/lld/rust chain depending 
on your @world updates)"
+                               die "LLVM version used by Rust 
(${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+                       fi
+               fi
+
+               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
+
+                       # May need a wider addpredict when using wayland+pgo.
+                       # addpredict /dev/dri
+
+                       # Allow access to GPU during PGO run
+                       local ati_cards mesa_cards nvidia_cards render_cards
+                       shopt -s nullglob
+
+                       ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+                       if [[ -n "${ati_cards}" ]] ; then
+                               addpredict "${ati_cards}"
+                       fi
+
+                       mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+                       if [[ -n "${mesa_cards}" ]] ; then
+                               addpredict "${mesa_cards}"
+                       fi
+
+                       nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+                       if [[ -n "${nvidia_cards}" ]] ; then
+                               addpredict "${nvidia_cards}"
+                       fi
+
+                       render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ 
/:/g')
+                       if [[ -n "${render_cards}" ]] ; then
+                               addpredict "${render_cards}"
+                       fi
+
+                       shopt -u nullglob
+               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
+
+       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() {
+       use lto && rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+       ! use ppc64 && rm -v 
"${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+       eapply "${WORKDIR}/firefox-patches"
+
+       # Allow user to apply any additional patches without modifing ebuild
+       eapply_user
+
+       # Make cargo respect MAKEOPTS
+       export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+       # Make LTO respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/build/moz.configure/lto-pgo.configure \
+               || die "sed failed to set num_cores"
+
+       # Make ICU respect MAKEOPTS
+       sed -i \
+               -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+               "${S}"/intl/icu_sources_data.py \
+               || die "sed failed to set num_cores"
+
+       # 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
+
+       # Clearing checksums where we have applied patches
+       moz_clear_vendor_checksums audioipc
+       moz_clear_vendor_checksums audioipc-client
+       moz_clear_vendor_checksums audioipc-server
+
+       # 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 && ! tc-is-clang ; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+               have_switched_compiler=yes
+               AR=llvm-ar
+               AS=llvm-as
+               CC=${CHOST}-clang
+               CXX=${CHOST}-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
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       tc-export CC CXX LD AR NM OBJDUMP RANLIB 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
+
+       # Set Gentoo defaults
+       export MOZILLA_OFFICIAL=1
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-gpsd \
+               --disable-install-strip \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-updater \
+               --enable-negotiateauth \
+               --enable-new-pass-manager \
+               --enable-official-branding \
+               --enable-release \
+               --enable-system-ffi \
+               --enable-system-pixman \
+               --enable-system-policies \
+               --host="${CBUILD:-${CHOST}}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --prefix="${EPREFIX}/usr" \
+               --target="${CHOST}" \
+               --without-ccache \
+               --without-wasm-sandboxed-libraries \
+               --with-intl-api \
+               --with-libclang-path="$(llvm-config --libdir)" \
+               --with-system-nspr \
+               --with-system-nss \
+               --with-system-zlib \
+               --with-toolchain-prefix="${CHOST}-" \
+               --with-unsigned-addon-scopes=app,system \
+               --x-includes="${ESYSROOT}/usr/include" \
+               --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+       # Set update channel
+       local update_channel=release
+       [[ -n ${MOZ_ESR} ]] && update_channel=esr
+       mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+       if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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.
+       if use ppc64; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       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-harfbuzz system-graphite2
+       mozconfig_use_with system-icu
+       mozconfig_use_with system-jpeg
+       mozconfig_use_with system-libevent
+       mozconfig_use_with system-libvpx
+       mozconfig_use_with system-png
+       mozconfig_use_with system-webp
+
+       mozconfig_use_enable dbus
+       mozconfig_use_enable libproxy
+
+       use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+       mozconfig_use_enable geckodriver
+
+       if use hardened ; then
+               mozconfig_add_options_ac "+hardened" --enable-hardening
+               append-ldflags "-Wl,-z,relro -Wl,-z,now"
+       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
+
+       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
+       fi
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld when using clang
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+               if use pgo ; then
+                       mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+                       if use clang ; then
+                               # Used in build/pgo/profileserver.py
+                               export LLVM_PROFDATA="llvm-profdata"
+                       fi
+               fi
+       else
+               # Avoid auto-magic on linker
+               if use clang ; then
+                       # This is upstream's default
+                       mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+               else
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-flags '-flto*'
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+       else
+               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*'
+
+       # Modifications to better support ARM, bug #553364
+       if use cpu_flags_arm_neon ; then
+               mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+               if ! tc-is-clang ; then
+                       # thumb options aren't supported when using clang, bug 
666966
+                       mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+                               --with-thumb=yes \
+                               --with-thumb-interwork=no
+               fi
+       fi
+
+       if [[ ${CHOST} == armv*h* ]] ; then
+               mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+               if ! use system-libvpx ; then
+                       sed -i \
+                               -e "s|softfp|hard|" \
+                               "${S}"/media/libvpx/moz.build \
+                               || die
+               fi
+       fi
+
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+               # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 
'x86', 'x86_64')
+               local disable_elf_hack=
+               if use amd64 ; then
+                       disable_elf_hack=yes
+               elif use x86 ; then
+                       disable_elf_hack=yes
+               elif use arm ; then
+                       disable_elf_hack=yes
+               fi
+
+               if [[ -n ${disable_elf_hack} ]] ; then
+                       mozconfig_add_options_ac 'elf-hack is broken when using 
Clang' --disable-elf-hack
+               fi
+       elif tc-is-gcc ; then
+               if ver_test $(gcc-fullversion) -ge 10 ; then
+                       einfo "Forcing -fno-tree-loop-vectorize to workaround 
GCC bug, see bug 758446 ..."
+                       append-cxxflags -fno-tree-loop-vectorize
+               fi
+       fi
+
+       # Additional ARCH support
+       case "${ARCH}" in
+               arm)
+                       # Reduce the memory requirements for linking
+                       if use clang ; then
+                               # Nothing to do
+                               :;
+                       elif use lto ; then
+                               append-ldflags -Wl,--no-keep-memory
+                       else
+                               append-ldflags -Wl,--no-keep-memory 
-Wl,--reduce-memory-overheads
+                       fi
+                       ;;
+       esac
+
+       if ! use elibc_glibc ; then
+               mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+       fi
+
+       # Allow elfhack to work in combination with unstripped binaries
+       # when they would normally be larger than 2GiB.
+       append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+       # 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
+       PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+       if use system-python-libs; then
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+       else
+               export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+       fi
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Portage sets XARGS environment variable to "xargs -r" by default which
+       # breaks build system's check_prog() function which doesn't support 
arguments
+       mozconfig_add_options_ac 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if use pgo ; then
+               virtx_cmd=virtx
+
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+       fi
+
+       if ! use X && use wayland; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose \
+               || die
+}
+
+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 sys-devel/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
+       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
+
+       # 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 geckodriver
+       if use geckodriver ; then
+               einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} 
..."
+               pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+               exeinto "${MOZILLA_FIVE_HOME}"
+               doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+               dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+       fi
+
+       # Install icons
+       local icon_srcdir="${S}/browser/branding/official"
+       local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+       insinto /usr/share/icons/hicolor/symbolic/apps
+       newins "${icon_symbolic_file}" ${PN}-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 desktop_filename="${PN}.desktop"
+       local exec_command="${PN}"
+       local icon="${PN}"
+       local use_wayland="false"
+
+       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
+
+       # 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:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+               -e "s:@APULSELIB_DIR@:${apulselib}:" \
+               -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+               "${ED}/usr/bin/${PN}" \
+               || die
+}
+
+pkg_preinst() {
+       xdg_pkg_preinst
+
+       # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+       # does not need to be forced into the LD_LIBRARY_PATH
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               einfo "APULSE found; Generating library symlinks for sound 
support ..."
+               local lib
+               pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+               for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+                       # A quickpkg rolled by hand will grab symlinks as part 
of the package,
+                       # so we need to avoid creating them if they already 
exist.
+                       if [[ ! -L ${lib##*/} ]] ; then
+                               ln -s "${lib}" ${lib##*/} || die
+                       fi
+               done
+               popd &>/dev/null || die
+       fi
+}
+
+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
+
+       if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+               elog "Apulse was detected at merge time on this system and so 
it will always be"
+               elog "used for sound.  If you wish to use pulseaudio instead 
please unmerge"
+               elog "media-sound/apulse."
+               elog
+       fi
+
+       local show_doh_information
+       local show_normandy_information
+       local show_shortcut_information
+
+       if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+               # New install; Tell user that DoH is disabled by default
+               show_doh_information=yes
+               show_normandy_information=yes
+               show_shortcut_information=no
+       else
+               local replacing_version
+               for replacing_version in ${REPLACING_VERSIONS} ; do
+                       if ver_test "${replacing_version}" -lt 91.0 ; then
+                               # Tell user that we no longer install a shortcut
+                               # per supported display protocol
+                               show_shortcut_information=yes
+                       fi
+               done
+       fi
+
+       if [[ -n "${show_doh_information}" ]] ; then
+               elog
+               elog "Note regarding Trusted Recursive Resolver aka 
DNS-over-HTTPS (DoH):"
+               elog "Due to privacy concerns (encrypting DNS might be a good 
thing, sending all"
+               elog "DNS traffic to Cloudflare by default is not a good idea 
and applications"
+               elog "should respect OS configured settings), 
\"network.trr.mode\" was set to 5"
+               elog "(\"Off by choice\") by default."
+               elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+       fi
+
+       # bug 713782
+       if [[ -n "${show_normandy_information}" ]] ; then
+               elog
+               elog "Upstream operates a service named Normandy which allows 
Mozilla to"
+               elog "push changes for default settings or even install new 
add-ons remotely."
+               elog "While this can be useful to address problems like 
'Armagadd-on 2.0' or"
+               elog "revert previous decisions to disable TLS 1.0/1.1, privacy 
and security"
+               elog "concerns prevail, which is why we have switched off the 
use of this"
+               elog "service by default."
+               elog
+               elog "To re-enable this service set"
+               elog
+               elog "    app.normandy.enabled=true"
+               elog
+               elog "in about:config."
+       fi
+
+       if [[ -n "${show_shortcut_information}" ]] ; then
+               elog
+               elog "Since ${PN}-91.0 we no longer install multiple shortcuts 
for"
+               elog "each supported display protocol.  Instead we will only 
install"
+               elog "one generic Mozilla ${PN^} shortcut."
+               elog "If you still want to be able to select between running 
Mozilla ${PN^}"
+               elog "on X11 or Wayland, you have to re-create these shortcuts 
on your own."
+       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
+
+       elog
+       elog "Unfortunately Firefox-100.0 breaks compatibility with some sites 
using "
+       elog "useragent checks. To temporarily fix this, enter about:config and 
modify "
+       elog "network.http.useragent.forceVersion preference to \"99\"."
+       elog "Or install an addon to change your useragent."
+       elog "See: 
https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100";
+       elog
+}

Reply via email to