commit:     7d23d45fa5b8d455d06731db5aa81a5e2235ef4a
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 15 09:13:19 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Nov 15 09:19:15 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d23d45f

www-client/firefox: add 107.0

 - depend on newly created virtual/rust:0/llvm-* in order to try and avoid
   mixing these sensitive rust-llvm-lld mismatches - esr and tb will follow,
 - update LLVM compatibility to 15.

Closes: https://bugs.gentoo.org/881157
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 www-client/firefox/Manifest             |   99 +++
 www-client/firefox/firefox-107.0.ebuild | 1324 +++++++++++++++++++++++++++++++
 2 files changed, 1423 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 2d71cd49ff9f..5dd3987d5644 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -196,3 +196,102 @@ DIST firefox-106.0.5-xh.xpi 426998 BLAKE2B 
233fffe6c5cae7492d9ed68434a2d8728d163
 DIST firefox-106.0.5-zh-CN.xpi 595327 BLAKE2B 
8ec7d74b482bb78aeddc5549bc4dcfb61c8a6c0aacba208ec107dde36a5798b79abc6258fd1b9180922ddcf59beee8c144ed8bd53d14fefa3f909d3657e64c6f
 SHA512 
54261aaee801365967968f97f3658bc34a91a8c068c563fc31de54f5fbe5e4d20bc8be4995ea5a74719b9efd2d0b38719c5ff19b2826f042db5ded80f1847e27
 DIST firefox-106.0.5-zh-TW.xpi 596097 BLAKE2B 
12f423ad06d9424cf0e08d960bcb43291e205bde5555a52e0f9351c3590c7b6f66c84e9b49fdd7b722df101c7c7fa65f80a6e8df3369a24869395ee8d3c41c2e
 SHA512 
73ebf18f10a31877e9423c9bd1a04c0bcca9a091a3d8cdcadcb6a11cf9f5b29c94b7c19b57560734ee71f79ca296b0e589f85054527498cb7c5027ebb246353f
 DIST firefox-106.0.5.source.tar.xz 500379208 BLAKE2B 
76cbb04bd0555cdf69d9c29fdcd57745eceaca581224d0a4c3de14735baca72632f800485749184eb7ccb183adf0a706010bda651b7c3a293cedb3f90ec9e207
 SHA512 
879b054340d632c5d972888ceb67da0d02f28f6755e9683c8e4e7fb71b55bde0e588b98e24bae448ffea8ddd3e30c44dc0563554ecd69506862796a64ca040d7
+DIST firefox-107-patches-01j.tar.xz 19232 BLAKE2B 
164e14547df3f83cecf4b1d57b2dab8c7cd094cac7c1617207b953d000fc024a3c14aa8ed2af2a3db7043521fa754799b50d061e499e0bc8005e9aa327a71092
 SHA512 
aac8b1d6dae0db5be5c4f5627d07492a85b0b1f26ae98fba518b2728df2757f88ad8f1be4d3719636f2159dc3c98a4379bc3f41845395240018a3220abbb5ccb
+DIST firefox-107.0-ach.xpi 449030 BLAKE2B 
c42353b58c950407340ad9ce0b050ec55826339e7311fe1068b66986d738b33a5c3d96f23ea77affbfc3085b7d296424d8d4c76df476e71f3b631ca9f2690087
 SHA512 
46c3aa8e93428136e33e331092784897b255dec806185777179aa65a7ef596bd4369349af0b42531f16a218734b661faa292183a6d7e61d12f2bb6a75bb3c2b5
+DIST firefox-107.0-af.xpi 416150 BLAKE2B 
fbdb13894cd6288c19b2d83cb9381ad9336ab9db9935094cdb4a8bd8ea787e880a534eaef2a717cbd0a55396bef1dfecf0ae3a17c1959adcf6e9163e85cf5d1e
 SHA512 
e1c174ee43033a1274903dbc884a2f9646b288eae994fa14eebf220ef6c65834ce79d0a4bca3b924113f896c89ed2e40e87366b80d39434200b1f62dc06ae739
+DIST firefox-107.0-an.xpi 495687 BLAKE2B 
727d2a2034b2bb24fbc37161aa040ff4c8239f05744193c06b2b002e7dcc9dd879b2b71df579828748b16a00c82df45118f518b0885fec2214c35dc9b181676b
 SHA512 
cfd3e2626b86771a1cd8bef430e39386a10258dbc3f8b1b574d098ef3f5b55b576acdfe4bf0d55cefa103a062b45eb21d227aa4818f76827102f76b28bed755b
+DIST firefox-107.0-ar.xpi 561802 BLAKE2B 
082afdd6be876ffdb3fa0c375f9ad09382a0320c736de97b5c88dca41d5743fe3bf289c1b8f9728658b91eda6b70d5fcd49c913528af5ff713304d581df5ffd4
 SHA512 
f72bccff84e49af3ee5105c6f31acd438fe851b2096b94d6243e7f96842c4f1c751ac5b17ba7754da7e16c0e3e180604a859e4d2342d7d60dec5ea66272ec7a1
+DIST firefox-107.0-ast.xpi 482601 BLAKE2B 
18618dbff248c01bccc185fbc2dcb8c4f2618bfef8b5820cb6d41ce8e2257d852e7417fa4e53ff75f261f8a6b2be8a1aed597f9c905d9c6c79433c817836c976
 SHA512 
60d1456ff43b8c146afe0055b3050cbd7c0774f513243ca8ea03c8c9a5d164fcd8ace255a93e0b07d691187d696e129e20cdf5d758d81ce5b8ec3d4fae2312c2
+DIST firefox-107.0-az.xpi 485086 BLAKE2B 
933fd73e0ed94a4638ea56a2ff1eef541127e890474a8789421bc19d42ee3c067ce3361057e8404793aa9f63c8d6658808127fa8570eb5fc586811bdd1364d92
 SHA512 
c5d5d813d42f2a7ade5f1b66df2014bdce9b4e8823b8e16b7418ce7778486a27124ad345cbbdda502929c4e1e5661ab69516bd0b474dc1744629392033204af2
+DIST firefox-107.0-be.xpi 636869 BLAKE2B 
2fe7ad585f2a120bbfe38831820b2376d90544b88a5adbe98b6d62da35555cd0ac275ae95099c4fff4549e23a8a4407029fcfea7209866ea05fee209320c28c8
 SHA512 
5551f23604560475eb951529ccc150ebb85718be730ef8ca07e8bbf3a489f3ece198f986c88686867a6e3d5750c5f116294ca093038bd3b3ca12393826f0e322
+DIST firefox-107.0-bg.xpi 574260 BLAKE2B 
f8ba4d7f5ba7bd7392eafb86c7867703051699fe7b1851eb9340f75061c85574f90afcda4736d2dfe9b4f60c77bf147983b2dc2158390d9dc071470d7c3fd77a
 SHA512 
055faf3a2f5b3df67e6ad4b64707d242d924c0aac7c44610d84927f85845e982ea1c7b8cb31b0831bad47c6854d18c1c64426461f90b1b20dc44d336aee5bd31
+DIST firefox-107.0-bn.xpi 573782 BLAKE2B 
fc762a9e765b0f75e26e8b571c21f27a9ad057ec4f798d36b9edd24ed5c433c7aad329518774c8460cfb573b93a28c78dff16126a497c3964a1a9cb841597ea8
 SHA512 
7c8490d09b7c6af6e966778faf01e14796e03998885f4b4cf7f73cc2e4b6c24fdc284bca7bfee1410ade1f22f7f4d5613ee8ec04fcca217c60b42ea1593ab975
+DIST firefox-107.0-br.xpi 534499 BLAKE2B 
fcf7fabdf19090c9281ff81b2df1d7d518ee0186ea053d7ce072a95101dac36754868c7746679aabb4519e2b42291ae9d2e7b6b88c04de1933bc875ce5d7a6fb
 SHA512 
90e5d2309b3fff388d5b46530385da58db59f4d0d82878b3346ae4ad1073025a866cdc3cbb15f44a2612aabad1d6ea59e19d08392b1a6af9e6cf3db402be62af
+DIST firefox-107.0-bs.xpi 457078 BLAKE2B 
6f6e2cb0b4a44a1e2f2bfb044818343752227a2a974350410590bc90a1613d2b528aebcfa765be105b4c526c81018c059b8d8e7dc9885459a6c70d77e614fe64
 SHA512 
d9b96e7b37f129cddf944e8c137b58b45e84423340bc77c4592c66183327ae2d1fc876d09504737fbdcab39f8985dae0595f71fa979f74cb4aebc2bbba220e90
+DIST firefox-107.0-ca-valencia.xpi 534196 BLAKE2B 
7433680be7e0252ca43a8bf64073b16e4282bd704032c771a9dfe0e026c880455858083e51a2a24670467b55eaa81aecc5f62e58e3fbad6751519ff2d74e9731
 SHA512 
14b8c035f5ef264dc55e0e80c036fc891c12abd7a18e30363088512e5ecbcfca8567930bdfbd2493073284019a19c5174374d9067b41b78a6ffcd6ad40c4bdc1
+DIST firefox-107.0-ca.xpi 537732 BLAKE2B 
9922fcdf1eacb175922a59bae2515ecb3eb1327af059628b3ae741a6cfea1e1cc212592530234fd61a6b60af3668eea03ed48e67de3cabf01bdec900ddcfe390
 SHA512 
feffd764166f9b5db983f540fcc32dc0a72053f5a5c4e4a3fb622129dfe2ad4f4270826727dc47730d86c7628c72c3d351bd27e627c7fa393015265cef673bdf
+DIST firefox-107.0-cak.xpi 549260 BLAKE2B 
0d0f747c5e5fb439588628e0b5eee54ca01abcdc4fc9f658ea6a54e14293ad3f3a628166098f2c6dcb717e6d8c5abc2b6749d7e8c8a8276d3dc259442ccd9ed1
 SHA512 
2583e3918f503a2ddef9da5122d99762435b8f07288c96887d01112698ef3435d8f0168c78dd3db8fc0254b02c22bd825b1c19bcb835659af0b784cec21ebf5f
+DIST firefox-107.0-cs.xpi 569282 BLAKE2B 
0d91e785399585ea813efcdfbdac7c98776c6b5d366ed8e945c872f6016a68b798cf5815450cc1670e11fe01852f736b34443e76175111c7b6cb1617084ab608
 SHA512 
950a256fa72a5d2b444279442ad332662ccae6183bdb501393402aa869fd1a4ff9e3f4c19309e0feac656a6dc46fc022b69e904b8776bcd5d24e6ddfe560c647
+DIST firefox-107.0-cy.xpi 553182 BLAKE2B 
5c79db02e1ef9c28f79f987a7bebde04756bdf982d9bbe1b4e5e64e5eb984d85356b32e817d6e4d3dc0fc6609dac105f209dee5fd6b39ff4ff72ea57540493b5
 SHA512 
c6c3e21c92dd9bd3dd92f057f37e91cdf7453033d19423997684e85f1ae47ddca52c156d01676a9467f1492fa914fd7b9da52ce79901196f29cd462fd97a0ca8
+DIST firefox-107.0-da.xpi 543647 BLAKE2B 
bd7488a9e183dbc8815ac3e3c75edb5c98fb4c553fbe33bccb1b30941716d032c23da2cd7898c675706f628d8511375741606cd6ed14ba9f0f33c0cde9f8a59b
 SHA512 
0da44b39296643473951a5b66a8ee666fa6fd4d81f420ada8b5947148405b34ab0717bdacd77b140c7a9fae509cde1d3c38dd23454a99eefdd08d863008adb36
+DIST firefox-107.0-de.xpi 564611 BLAKE2B 
f883ead7566fdc544a81b14f4f682b6314de70dc87f01cf9c476bffc31ee9200bae406a724259e78965c991de3ca8fd2edb89a6df9804bd3803c55f873a4c990
 SHA512 
d9325b3fe21433f110028505a8eff286b3b19242839de9847fc27cadca10ed329e3266b52e7470bc7c760f3179b95dcad30624cef2152a792c365c37089e87d7
+DIST firefox-107.0-dsb.xpi 576821 BLAKE2B 
8c537a616ed3409b196d5e7735604533614ff9335295bbb723ff92cc84b05e587b9a0664500bab6b98c0ddb8fdd8dd6d0cc474c5e9c0f5d8a7382f955ebf76c5
 SHA512 
03fc956e24c1a6a2d7a4a262068d76a76488f4771524b55667d4be50b61629377ddfa8919b4a8082483a052ca29925c13dbb71dedacb21bb8aa1f2f73b24c104
+DIST firefox-107.0-el.xpi 651473 BLAKE2B 
903bf46b796583b21a2ba6b63920b17f76b2b78314f26a4cd54afce6f098dda71c50b783ec6277a01402b302d5c674e1edd27e7c5bec312198965eabb6a27eef
 SHA512 
d865e8663ade2f9dae2c8532e41c53c635765f04c5ab40349f194a495f8ec03b667a4bf61549d0138db6bb2d48c723ebdc3250a28bde22b6152ec2acb9fd823f
+DIST firefox-107.0-en-CA.xpi 518724 BLAKE2B 
64d0f74c63fcf7416c2063195f5befbac14f77b0045cdea9ee8679d744a442dc344938347fa90defb25b5087d8c339fa7ae2cef713bf9e09f6dc5723e522823b
 SHA512 
539c7a67256a99ae4eb063e5605b138cb11ad87f08148a5d7bdea9c318ac32449a05ddd1df2ff39e9757d3432a13f4deaaaf1cdce461f7bcf2fa8a97c72aa7de
+DIST firefox-107.0-en-GB.xpi 520250 BLAKE2B 
f7732ba880c656fbc652bc02de13685ed46fcba8d210dad6ffff8498a104196b21d61dd607c7e7164a8a401f03bccf40167a785f4cfdaf7dc60b9b1455ff0824
 SHA512 
8f7536a4c1598ca1a1a15924c5c31799287ddc95ab7bc06daf6202eb6404123abfbd9f4322f31731466bcd6288d1652c9377d5cfbe481a0d239333f01fadbbbf
+DIST firefox-107.0-eo.xpi 546704 BLAKE2B 
68867e6777d190e8f242ac322704f317fb9d719c4e229a91c91634fc6faf0290bb107d99f71a67de144155d4c28c89170e78b5ca1748f4737462be843ff2ea75
 SHA512 
1c8b178f355cd84220371e6a399f4704e86a175dfded506f583f90ef2c296a53f4babe1e1fa94c839d6c76ac20604372d7b223068b63da1d02dbc3f298f4ad5d
+DIST firefox-107.0-es-AR.xpi 558787 BLAKE2B 
3d143ffe807f7517032c115f60f915d5ea1b1e23c411c0c3a9d31d6868d8e9f8253f210bf51e98a0079fdf567d6ad966ba48afab81431775d9f5544e3126cbee
 SHA512 
b2d3c53c2bd853e66b641da5f5213112e5f100463e3e8331fc05f36cfbb566039feab27a48bbfcf30eb49cb2b815e8ebf93cf67262184931a4d3edb63af5117d
+DIST firefox-107.0-es-CL.xpi 557624 BLAKE2B 
b91abf3675a3bbf6b95e99fa048d15a12e37256a4b63f0c50a965ab454df7173c51db1fc3813960239ba2a57d33b84411fbe21c27a61f6513bf145515c77c23d
 SHA512 
8204971d1f8673562d8b2321af59c6a959e7427c9e54537a3cc29b1e883e07bd792565cc761b012ca256662ba4c66bc8124d55cac5dcb7f79e8bb6f96e769c58
+DIST firefox-107.0-es-ES.xpi 550462 BLAKE2B 
7bfcff828227ee5b775cc661dc76c575db0727215813ba04deda18aa3ba779fd52708f66e10caaf32db434e5d5c2245c476068ea72396fc378719a10a771d65d
 SHA512 
f25648af3a7828d083b240151b20297c507ee9a70f407049ac39abd1670739643fa13613ee6b4f4d13c2b683074706f87c09e3068b5e2cab6644e371941af326
+DIST firefox-107.0-es-MX.xpi 561147 BLAKE2B 
aa07170f45d6b20279e8fe97e599865e512e3c51dd4e8e953a276017097f93e53290c3abcd01636e81845497a2585f2fe207a2ae1d19cb6cca799130f8952ac6
 SHA512 
79672b92cde0d234b302d01cff938786c6f1d7dbf610a5da9594c6392181789acf5e118f3dad009323f65d7d23a21bdb14ab54de304979505846b1f86edb8546
+DIST firefox-107.0-et.xpi 528236 BLAKE2B 
c4b8f41408be750633797bd41fd29e89288d4b8e0128fa31545cb8d82880f9f7816448f19bb40b6e8b20c3e305604caedd54e475a1cbd460f4ce2c4efe74684c
 SHA512 
705f55bbd7880403627b18c342b62c8e67c7bc09667de765150d1c4de6b79b6fbe21887ed012d68458a4f1533ba1374c108ee3a34e523b06f7c856c3bd1c05d9
+DIST firefox-107.0-eu.xpi 547845 BLAKE2B 
8e63f5e3b38b0b8cfccc36fe9d81209db5f62321ddd2f20ea94143c7a27841c3380cc60db0cab4bcc21c305768c55c936e3566b2e73d46889d7020c8e4ba562a
 SHA512 
f3f0a307ae4a9c99bf790747925b26c376e0caffa3f915011a86cb1742cff558dbab4ea8c7ca1e28d6051e752c7b827c4ddbe0f6a55a941231e4a69a953c97ee
+DIST firefox-107.0-fa.xpi 565788 BLAKE2B 
8a2288b48cd57d986cdd711393a8d1c6367e2de17bea79b29ddfc887e4f37850189e40d6603f7f9137343203bae5ca719bbebba804ddfcb1c5f57de31b908289
 SHA512 
b4700f6bca5284dac2f89179aa9d19ab9c68ba244bad705a9a07d2a961413df74fbef9ebd199a9a4811fa7cde2c497ea45d3d66be9640f3834e2d596206c6d51
+DIST firefox-107.0-ff.xpi 469110 BLAKE2B 
dc77d01cbb7326da2d1e72207f4c4b2c9cd80949f3d7851838347caabd8558e9ec88aa0a21ee5a78b7a4df1a3c596c33fba72dec21aa23ce6f3d4026cc7721da
 SHA512 
02de85d903606f941c65607c3038277d1e24b44340cc9958bcc5bed29af9e82ee2549849a8d6d60e233482204fdb1d95c90f6a0332cd7edbfbf0155c0b4cc709
+DIST firefox-107.0-fi.xpi 543799 BLAKE2B 
07ccf57a771bcfe4aa90bcfd1cb9b4c1b1d76ed09f3f5956162306c136d9e31371cd3a98126c71e76682d3d9e286104a33080a3068c28cca9b6c7e4e20fbd319
 SHA512 
323c3f19506806366e30b6c6872a2e554acf07243ebb4b9c384a79aa629e76290b6d1e3174be19981b94f8f1a202a62b0c6b4536ad5fccb791a7b227a33f5725
+DIST firefox-107.0-fr.xpi 569050 BLAKE2B 
818dedfff98c1d78fbe95d3b886153f01528456680631033fba872eb417e442938b8d29d33dca44dd59480c7f192bfcca9f859da71ba242607e146ab88eb038d
 SHA512 
77830616787ffcb9e58093f2c2a9bdbf442e13893f649da97ee3625a997b02d8a1ba9dace899d3a8ff3aaf66c74dcd4968ccba949cd582055616ab39c9db9712
+DIST firefox-107.0-fy-NL.xpi 554249 BLAKE2B 
55bb2ea1c001999391aa86515c069efad2485dacf2d040f483f1a3d92b4768212040b3945afeaf14404b6a7d6f82d83135936958974813ec6e445e0a993b73c9
 SHA512 
fbe0dab45e04a38b1dce99059d7c9a9c4b9c1ee63068be678f5de5cff070b7bf67f651dce25e6388ae0f2da0f1fdfedf91f1cf0fb710a33554ddfe60e8cbf8da
+DIST firefox-107.0-ga-IE.xpi 464764 BLAKE2B 
84a5d449b23869aeb9b304286d16c92be03a64f35ed257cbf8b5a6a00e0a9d3091f197a55c48adb0fca23972fd46d1974b7161cc10ac05832ee33accac7b7239
 SHA512 
61ea2b16ee8ff8ae60a25e3a0263fe01124a7739e203114c05392d73ce0f5242ca19844a4b808174c6b22e161aeb8eb9c86e4d41a83adbfa08dee1043e34afbd
+DIST firefox-107.0-gd.xpi 542588 BLAKE2B 
3aeb775760faf014da2b899889175db22e9cbcada4ecee90c931574bfa78922d80176279e4eff8b72a19bb9770787cbe18682467b4fa1ce54256e9f07a01ddf8
 SHA512 
07e09ac11f04ca1960ac6dda8c9ddc5ffe6766a857b7540354155717f97b7e11eb4415cf7359046d084161feb5b7939ac81386274adf6684e528683bb5157196
+DIST firefox-107.0-gl.xpi 537433 BLAKE2B 
365f436c90f148562df19933bf587ddeef2caec4236189ed6bff97360c42d3f99ee6e02bdad2b9f4048d6726573018d952f0bfe5f6181b3df798a833236ddf4f
 SHA512 
3beda5232d6b81d5ed3e51af9a5b0247b497a802ba8959b73eb3e394f726cd401ab923b455ee7746d3176403fb34bdaca2cad9116cfa21f4514c6be71bd9a003
+DIST firefox-107.0-gn.xpi 567608 BLAKE2B 
4e026a314d99f36e9fbf632b3d9e27b6c48c90f16a08089df54804c59ae54c02357ef4e043da583f4daf34097c0e49e35b541846c8ed2bfe651eaafc19d3e8dd
 SHA512 
88bc0e2a7e0aa9306f8031162b09733a649b41b2fb1b8891674777f18bf5d64782174483502fbeef179f870c266496cf77cbef02c51808bcdec97af62777be62
+DIST firefox-107.0-gu-IN.xpi 523496 BLAKE2B 
dbf912f8aa07cd68b30d7fed2d3b75179a4dc7d4cf0fc834f39bc37ef628b0b9b91b206f1490e46edb90eabefca53a73255150f212598b45e67544e38f59a50a
 SHA512 
37507560f300c63e84f05da008b6c12c92139ff58791eb44d3e51fbdcb36dc353485251a82dac9180b296e9eb6b7bc8cc3f4142b9943de30ace272c89ca63231
+DIST firefox-107.0-he.xpi 564227 BLAKE2B 
93b0a20acb87a9b598f95e60906a6f7b17a805fa8c528f1364d0bd025354e113cf8366a6c0423a51f99355b874c78bafb25ff3727dc4ca97027377c387e20395
 SHA512 
a46d0a9155eb2508e5930ed01564eb66720756c65525e6ef5b169412dd09b9ab848f13735996408b5ca8d1ef5a779ab9a39baedffafeb0e3a0bdfee221864a46
+DIST firefox-107.0-hi-IN.xpi 552206 BLAKE2B 
b1a4edb6f4081e8e8fe2f0cd21cc695cb710f4ad3580590bcf9354bac6eb9f97c7c8fe2bd58a2828c64c56fe877032981468869f075fb75622cadc333370910e
 SHA512 
841c2c9373528f8127ab54bc24a004f76193f0909b30c420dfc234ff13e66e7e9f29c3285b2fc052be327b6c56b996942e0de08d122a65cc7cef032461a0c1b9
+DIST firefox-107.0-hr.xpi 532334 BLAKE2B 
140a877deabc4447c88a5e56b0f1e5db291f705f9bcbf4e221052b21f5a68048ebe6f427e8547e97ddd4c91da8e35577e4850c3184667482f4aee2c90059e038
 SHA512 
74006c0080dc7fb26cfff2c27b79d07b2beef840d9afb844e824bcafbc7fdaee1c155c6234a39b81e4b24699db9e281ce9c6399fa4096ed5a21636e42e0c1903
+DIST firefox-107.0-hsb.xpi 573038 BLAKE2B 
8e34489d9acbb90c181863bb390b088f2398db854393b68540328e1af367cb4280bcb508029988bf111ed47f675e74dcc8a25f772becb11f8932a504b02f8347
 SHA512 
19d8d8425480e91b195c289e93a220017971285d4fac2208bea293448ca21599d5bc99c1ad87a9a867bd51f009c3ad09e4a53a01861d6eba0732b45314432aa6
+DIST firefox-107.0-hu.xpi 578351 BLAKE2B 
e39c62d6c95826cb6998994d77a892c4f88355bd1ffb690ce6434129489e94eeb4153c081fac3070732f2b09efd6b1a1724152ff78aa254068984956baf29100
 SHA512 
e251d0a350bcb2a970e75c07457b01e3a1b66be206dec02a13ec6feefdc5071ba37989bdd5cea42a19268551bf8377f4b615bb3121e9c890924e4f4b2a32eca1
+DIST firefox-107.0-hy-AM.xpi 588066 BLAKE2B 
4f6cf0a4a80b9f90dc27851e9d8025bb3806f160b6420ea1577d7c4ca5bea6a70e04e1f3a5452be305a47e75d8d989e63a68df00b6f065164cd42650d43497b2
 SHA512 
a2781357bb12880368a35c3ed72f58fda63eb53863feae9644de2aeae69c4eb33578895dfb6ff2b64a807c1345d64ae34320d1832a4611f5364435f2c6382515
+DIST firefox-107.0-ia.xpi 543059 BLAKE2B 
a890f0add45a90547cfa5b2a0a5f8ba6d697ea9891f0ea95be25bea9598b0cde21ceadb9b3057c8f76982517ef510b867d7a205b4f2dc767df58a2fb6a8882c4
 SHA512 
ee5527994c85d095b37fb229768706e9dbc42b336f8f8e37abeb320d51b867ff613426226529de3e20894700ba675c3f5a3ac68d5f1d812b04f1424d00af5d22
+DIST firefox-107.0-id.xpi 540019 BLAKE2B 
a3a0faff9a8ef2259f4e638c23101ece9348c6b9c13f842e9136572803468d65db33c7ffd7709be86a6e573270750a61b84876ea95c5642e41b8faf6f35c52c9
 SHA512 
586da37bf1f6b66f6cff3173349bf6309e5b05d10ee051a6bd0a2eb7d3b562fba677fa5d1930a7c2b97ebed53f6192b421d0a48b226902ca1e7d763c8545527a
+DIST firefox-107.0-is.xpi 552256 BLAKE2B 
49e45834afc4ffd0722bb17eefbd69cb0a8dec31ac9bcecfbbe5fb213b6efa46a6f261c0f971af7d5ae5adb15e53106fd933681a52e8478df76e2e1af976a3f1
 SHA512 
c5806d2fcd77b987acbf5f2ab4166507a318743dd0bc4e991a7620d90472413676ac9d82bf29c95741b309f338811643c596db0a71fa50adc6275654ddf65dcc
+DIST firefox-107.0-it.xpi 481512 BLAKE2B 
2c8dbfcc002e9735df406130f41480398ffd8bf40b3e8843f66cc43aaa4ec82c08a042d988ea8e79ab23c58d843add4768d9bb4ce02d2b1a224703e438a70a3c
 SHA512 
82d43ebcce598c0bcc84d744a4817c773411eea886b2ece1639ea6a79437fea529bceebf4d5901c6d77886ac512073246afeda41b1022bf54d76a9d3ba898154
+DIST firefox-107.0-ja.xpi 603796 BLAKE2B 
9925e035f6636a057cec358b8f3b976536138d8a460670fb1f4306cb875040940ef111ab6b29bdd723028238349a23286dc41825b76119fc17c0027f317b7eb9
 SHA512 
764367e92575aa8dd9910d646f6980378fed4c0ef13b77834b7cef0e56c657eff58fa730861c22f5bcc05bbbc5878cd6e799094945ca2987e07070c55c44782b
+DIST firefox-107.0-ka.xpi 606232 BLAKE2B 
7e936f11a2eb7cdc9b64257fd011f539bc95fa0e4029d61ef1896509d6532daee98058747620960f0e13708e0533fe353a9f8da3be8989d6f9c9e10a5ae12616
 SHA512 
b11a39bfff86b418cd986c1eee6779d0bb541e091e11adc6cf38b10d93d4cc4362cb97d2d3dd0bd0d97936cc1f40a08e26649687d0a835b5bb20a8bc67d53581
+DIST firefox-107.0-kab.xpi 562221 BLAKE2B 
393197146e376ef611c5e928296e3f8087a87b5dba3ce5b1c66e66bbc467aee90e3c7be956909d66a8ca34b19cf5dcecee6de5aec64a127be02b342445202e26
 SHA512 
a139ef3afd027728ff1372a787a8c420675b550ddac469b7aea007b104804f710ba86e22b691345f306eb87a8e975fedc2ea7b7780862e3e10b59adb22f97a19
+DIST firefox-107.0-kk.xpi 625499 BLAKE2B 
2cd02d34e366936582c09241a89024e5da82908d00ca54b6cc285227ca7450bc9f965a6d709a93c86c611fdd16caac7dc77fb1adc47cb8561bd0689eba8968c0
 SHA512 
65a6d814ecd5d9f2d5370e0ff6e7dc7180882ce56a36ba72c2465c843f4990d12144c94f6045f03d736dae004f749c79891d1dce13f7d3d191ee00302a7492c5
+DIST firefox-107.0-km.xpi 525703 BLAKE2B 
8aeb0be1e340c90f3f09eb268b0a237c0128732a141827fb5e5120d74b0e2ccc3bf037d9df1155c02963734b44061c9e89b6611436cd0cf2f9ebaf73f256ed8e
 SHA512 
248c5d5663a80fa01d0a1a84338d69760f71b82775171eab554274d849339b2bdbd69ce6c03bd9298f319bf9cd2e7a41aa7810754db025bed02fbb977e630718
+DIST firefox-107.0-kn.xpi 491415 BLAKE2B 
5dfedc0fca400f0f9e53643dc6a78205066395d9805baf19a7fa2963e6aa752781ed06c0682c0f0c9164ec20454a5ec51334b2130a09c2c0b944e3ce98d94578
 SHA512 
42883b387f1f39cbc95b901657480ec838ad223f926e19c54a349c18890fe0673a0fc1adb5d5e6b5e629adba4c9f3ddfc67aabf650e46e609680c4c0d8b624fb
+DIST firefox-107.0-ko.xpi 589132 BLAKE2B 
5c42eb45b85d1f15a0b5e92d3a57a2a9416cf674e2358ee4294341563fe2088774b15e7921287d9eb2b6d6544bd6a1725fb267fa333a1e129a34369212833bef
 SHA512 
7a620aed12a7d7bd41754ad14d32505873aa8459c5bd7573a2ebe60712203fa2ce52b114389b7119d1349ceeb8f17f60d422c7d997d869895a7698d0cebccc77
+DIST firefox-107.0-lij.xpi 465956 BLAKE2B 
5bbf775cf6263fa443cf5d4b25056baf28954b9bb2f9afabb0081f4c1dc1a16d839b14e77523106ed315b133617f8dfecbb048727e18b3dc1e4eab5256e70d2e
 SHA512 
32843541c6d1968131253e43ae2708b2a8447999b09eded591651a0bdf670d450edd6b1e02dfd043edc319e608ae51a65771e4b3b778965af7a5238db5817ef0
+DIST firefox-107.0-lt.xpi 558414 BLAKE2B 
883e1d0f2ae5822041d41a42539d953d78722f9555460a2ed81a6d000374ca3e39b8566d008dec2a1762372f18fb36c7c791714b30a869a4475d90dd58598d99
 SHA512 
435869e713ceefb0e32462004c0fe573f3211c5dcfc81d3d08d68d797cd6b046555b931063c160c6a40566a19f02f0d4dd546fb0698f9914b848a0d6ee31e87b
+DIST firefox-107.0-lv.xpi 460735 BLAKE2B 
213e2f9cafc7a2fb23d313827f561ce8a7214d3fcffa01289f8cbd5f640d80d3bcc950b7eee353434572bfdc6912111403b36ef1580d18bf2b323541c1d30354
 SHA512 
e4e57c23f13679e932a1c7d0d0d902150f02aa8f30d89b47b4bba23e8042c58db907d637e54b045c28286dafdbb037bda1c7703ff596b418daaab3856ebe1e56
+DIST firefox-107.0-mk.xpi 481443 BLAKE2B 
1398df35f9953b2ea691c85ce0ce9ad7c3c4a6689a23e9f5ec22104a1c185987501dfb35b0197db157fe3d365155d72f11543dfa7f01288fb6451d18cb5c06a5
 SHA512 
81de7e52ac83a4bd5f234f16d31584ecc76f087695071595e4f07dde8ff1c2894dab73d08e06296535fd3f26a8d226ae5901f51cce683571a61b266da3da35cd
+DIST firefox-107.0-mr.xpi 526051 BLAKE2B 
364f6dda7743c42850a6062ec4ecd58aa2b5ba4c7e2d8296ddaef79a10daf5e2d894c27186707f03178ae19116554b05667d97829731b4192b4ed11db61dc547
 SHA512 
63ace2c1da72cc0cb2470287a25d9ef92364fa4018c0539c5e2fe2c2a56efd04cd0448949c718be2a910dabd92028357f397e75ab570585d27909f73ac0cb9bc
+DIST firefox-107.0-ms.xpi 445488 BLAKE2B 
fb76a76ecc74ae01d5b10053d8c4fdbc8e4cfdcf9a657fd87bfb55fe4e289704f4ac6dd599a90b4ed47fb68cb7f202ec5e961639884ce3e21c3c772c664591ec
 SHA512 
83baf646740f50f0abf9258f692956f34b96abc8019d8d48d3206161aa9c25d552deb3c51f36cc0e3f321aa66adc20279a6b3da5d0ecc9f08726813ac1556e29
+DIST firefox-107.0-my.xpi 512004 BLAKE2B 
698a012c6de3473e45904d63f68f98bc677f73e25104ace0948950beb57783d80a8bf67d364d8270b12db0a62a2166c44454566ceda3b2bc3525367480833a5a
 SHA512 
416bac7788b0df186bc57a39be5dcef6a1a2b5f25ec5a86cc90d30ec70a64f003581a7e108248c98a5dde6db09e0848af1116d6c94a79eaa1db247d97cb29145
+DIST firefox-107.0-nb-NO.xpi 540804 BLAKE2B 
d112e3be71cfbbbeed77c9d764c1ef9d1a649b17b1409dca3196a8b9a11939b083afe7116acdb36267d8b2576e11dbe435a9ce2f434fe470c0551d536f417017
 SHA512 
5b216851f477e3fe257278e96a1a7c22f015ea01ac6b0eb0232e5d8122bfa3b77bebfc5d75bcfbb9d072ad9764c21c0405bef2c9adf183196d427394ae0da680
+DIST firefox-107.0-ne-NP.xpi 480177 BLAKE2B 
fb3501b97349e53f772ac34086bfba6d44f887033d35cb9c98a9c34ce86e006e4791c0a813822813c7a3e8e3735f575c9b96cb47545d3a0f0f9008110647beca
 SHA512 
18f6eec4bfedf4adb5eaba35be2db0327131354ccd03a823ab8415f5fbbd40b06b59f346f4f6250f3a3e318569d7011e54fccf3dfa80aafe10f8775d4f925dd3
+DIST firefox-107.0-nl.xpi 548542 BLAKE2B 
2be8dea06ce52279b864d78d31df4cea4cdddbfb8d19d133247781116a9b220c8c6f672558bf56dbda09d459c7e063e8a8f1d71099cf9e74550ed4886b02b952
 SHA512 
946a09f5319d293fcd2614a8c55f962de71e8576db21a572d01d8c237c8491363358bec805d8226271c8cb42ceed69701613d65c93f3230d12b4c03509c9ce49
+DIST firefox-107.0-nn-NO.xpi 543205 BLAKE2B 
00ee62491a8f08736861f458620be85fe6762b9d87fe937d1870a769051783d17323f34695b29d2a23baad157888c35fd1e835c934836e2c9de3a52be543e3b5
 SHA512 
0494d61cf24a7a9074e4d723e6b5f4ec6096f41c98b3932fdf184b29b77550c95012e383f413aeed9e541cf930f30a788e9c14519457420e97a07826cdc2c048
+DIST firefox-107.0-oc.xpi 564162 BLAKE2B 
0671534f23e5c03e57fd3b579852f2914a140343d66f970389767fe581a36a371cb3cda19c60ba02c8e0c274113df46bf85a9e0f01f9d8f79b24712635646a5f
 SHA512 
58b2681bcab0d95880bc314a1fbb33d122c9b3f3855f63d10f8f00c7f20b60511c6abddbbd6c42f3d1d74327b2d186e003d583b96a6063e0bdb95313daa31492
+DIST firefox-107.0-pa-IN.xpi 618923 BLAKE2B 
4bd2a61a4636befb277ec776ecdef0fa7f3312ac17c41367972a618788d6f8e4bb2eb7eaa05594b761cc1ac286e2507f9633755830b79291ffe525fc4c4d9a4d
 SHA512 
4fece7905c51fb414f48fdbe964b5c245736ed15b399365ab2b82640a2573c7585cf2c7b815c26c382027d4db2d6b5f24129513a33fb5645af4c67d5c3c921ad
+DIST firefox-107.0-pl.xpi 570594 BLAKE2B 
c34ca1b3a9dc8c13f3a1262efaa56ea250b00bcb33b33c499d2e6929fed5ab3dba2df7b2eea1759aada0ed4f4c6567ad9b2035729ffdcb1555dc5092cea5e62a
 SHA512 
6c560777bea8cf0dfd2e65adbca04ed21316cf6e2e7999828479cb082a413f93c8059594bda01278002ba70db050dd74848a3ff3a6c2b6c1a2f52581c53941b1
+DIST firefox-107.0-pt-BR.xpi 553411 BLAKE2B 
c5abb06740186d26864a86d35c4bd3fc0c40ea926240c4ecab338484779dfa6df4d269d2e63fd72fd9099222d3ee4a7647d8bd597a63f3d6b7c4beac36f04f7c
 SHA512 
eab8e718f8f7491c2800e429a9cafceb46203eb094032347900beab8e34096567e5cc0338c9d6e9e41db96aa6f4c9ad95105ac2b5b060f04b5796555e8b99318
+DIST firefox-107.0-pt-PT.xpi 558225 BLAKE2B 
4e190dd1aa381cc3d70b671b92a115bb7a7e09e27dde4a2f070d21f17509a32f13c9ba4e363b810dc38480225f8ab7b3fdf1ca62fd29c1eb9dbac30267f05425
 SHA512 
4ad02eb623c4caf337df89de1edf3b3d06de1d5a913b337bafaffd06828ac1aa5e6e57d98969453e6288617317ea2d51b9a1f834e11045834f72f5fa1a35a9c4
+DIST firefox-107.0-rm.xpi 548609 BLAKE2B 
12220f7fdf4619f165fe28d438bee17c63e4f9f910a43121044fa094736d7af7ba1caa63a28ce13365ade5585b2cf693a2b1594e985ed9d1aa2c74bee716992d
 SHA512 
ec8bb2d9e91f6e8136d4f48459ca586dfa1114789e0d125c98adfca0883477e824ee99c8db9a7f605687c55a5ad60f5a2c20c82213b4db1618f778d6a93a3cb9
+DIST firefox-107.0-ro.xpi 528279 BLAKE2B 
05fe02e76490ebf93cd6e8f1b1f582ff74ec4b0c912031b4c753619c52dfea3cd0edf435ed1bb0a9b538b2dbb7c5b3687a2e502cd44afe1296e9ed7a68cfc3ad
 SHA512 
5c5b18e41b9a6205a2c071d5cc9bc28bcf7ea4eb5e86d7bf1e39de1df2ae40cb4a5f56ef812338ef8067ac5753a9b1cf33cec2a93dc59295a3d0e8c279f410aa
+DIST firefox-107.0-ru.xpi 640920 BLAKE2B 
e7cafd266d1d7573ee50459aeb12074bef5140fa8810dbb9fe8855b236e239f672b84fa42324a72c54a3f7abf91cc1dd8278c77395f9dfbd35e53d505a3e9cbd
 SHA512 
b2bdba1a4e9e7c493956d57df08c7c81137d1c14d5bcbd04891a2078f490d5a6c01ef7f7cd06be4d87c3b0bc1290557907544157e168bcf13c4763dc2bcdd746
+DIST firefox-107.0-sco.xpi 498950 BLAKE2B 
e9800eb5d0417b56c7ce5334f40166a27e93e2a4729e50d303947e7da35b058111f776657f73afb3300c104b2c41c8e45aabb06517f6575378ef35d2aa189d00
 SHA512 
d5a540fdff878ce5e31ef4e0afc4ca8714321c16c7d4db721cbc0b5d0b85190bead70240801b5459f16b0f1eabee06eb593a9a094246f8d1963fd3688f15c7a1
+DIST firefox-107.0-si.xpi 564924 BLAKE2B 
6e203b238c3d44783f9c8efbf429e4fb824e3410e52164a78ff2451a88fe1f0866a5328bd10d8b90a8591f5b55ebdbccc1abe51078466aabf9f8314fb83cbe6d
 SHA512 
6dc4525860c2dc0cb884d698bceada17e57a968c7fd6c0e348b7d117efc36561a4f64c885185270833c96ec7e3b3ab82d3f61e933b5e913e92aa4e679ea50f06
+DIST firefox-107.0-sk.xpi 578145 BLAKE2B 
7ac2120b6659d79e82b2c228c2f81f5414f68366ff0e240b7ee44607b8c7f141b0d9c5fd5c01788cbbb78643c28162eed6f5f742a652a87edbd6abbee21b6978
 SHA512 
02c1fd94fcc1b8bf20ff031ed6aa71d5d505ccd01f60bffff4c88cb422f98f37e6b3185f3ac1fa49349c82d7cc25ce19a0c5fecf79f30849ea19fb29a35e867a
+DIST firefox-107.0-sl.xpi 551907 BLAKE2B 
c688d2c748e97ceb74b9eb58d0c687f3a35ce5096a49c427f002e36bfad884b7398d521df1948283d9a139bd70dd019a5f6094329a469115fb05eb73be09900c
 SHA512 
2a2440745ab036c740fab0952651e39e40b95f20e2f9f8db4d7a4aa3082d51611e05510ead34b4f4545c3acf0c07c0d4fd48983952174393d1d68cbd7f8d93e1
+DIST firefox-107.0-son.xpi 418047 BLAKE2B 
2dc917762a97bcacb0da26ad7252f9680714ec387f932a296771abaccf326c739a0ce69bef5579fe7947c8adb47f8e9076e0e9543dfb8f12257b8ea894e2204c
 SHA512 
c93ae6cfed402c1e2d385a603c59df4ac0e219c4afb691f9dcf80885d6a35f32b0ec9c6c7306f7ff9d9488eddb6cb1baf92683a81df4ebdd140787ee3e3acbf9
+DIST firefox-107.0-sq.xpi 554271 BLAKE2B 
086f58758435ae045161c8ab52ec3281f393ef7870be2fc9bde5c80a50bfe93432db9d7eb9e40d3a429878094e68259a4a3ddc12f535d18611a6fae9940a4772
 SHA512 
65b86f9fbdc7da4d688a70224b889068cede2a69fa2ae024e83c7c007f653664e9d91f6dd8c6a7dadf95a14834a125b86b2547e1f9c0b87002ae56c02c9b72f3
+DIST firefox-107.0-sr.xpi 594622 BLAKE2B 
a236ffce3594edc40d9149621a02737f8996aa8cec6551cb5625576a75a8cc5d67e24260c3959ac978cc94c46f35bec88097903f7811f240925cb884bf22628a
 SHA512 
dcffbbc0ad2a8b0d749e634f37b23a1e70082c484ece3ba3c35483cfa0e10b07d2a5ac65d94dcb461347d807b22ec2d68628ef34ca0793f055a982be07ef1317
+DIST firefox-107.0-sv-SE.xpi 550425 BLAKE2B 
35c683e7dac14ca1dbc8d99c1c2fcb104d153eaa2ae5bf44d8f3d9bace16ca53e7909a3592e8aa380ef8ddd3f6fa57f880951751e484dc5c0c4673795fc906db
 SHA512 
44483f835b640d7fe0586f9e7982dee67264fd8604ae86bdb72158fd6295b6d08246615c940ea7b0b50f4d37317d16f4daae8dacc701c926eb3569caa87193f7
+DIST firefox-107.0-szl.xpi 511808 BLAKE2B 
62a9575c7ba954ee40210aeb284366518e0539c2e49db5aa0c10121b2f71d101c60b2866b832a50eb11f081e23fd3690bda4375b7142fa2ac7de28068dbb8ebd
 SHA512 
c9e8b4a21a4fe73ad48bbaaa1c90325f63b270fbbdf47a4939ddb5c5995b413c206b0ddc7e0f81459ccc162b0a14f9c22832a6d40b1d48466cf1820025fcfef7
+DIST firefox-107.0-ta.xpi 503962 BLAKE2B 
99735b6b8a07864bfb0cd0d6e3b1814993d4646118a6ab69078ee27f8482926aa1e9e1c1b47e35e7e886f92d53b8502d2089ed5ed6e50896f98038d79f63611e
 SHA512 
a777b432d775efd75e3cc4a6f1a45f7c73a8d1c59955f57f23b41421a90c1fa7d95f2f4518284f6ddb5af07e561812359004c97bf4081e2b23c2a9013db40aa8
+DIST firefox-107.0-te.xpi 550791 BLAKE2B 
168fd92164f7806f14df6cad9701d4695f7896d71901888f3795e036412d3802ffe2eae970d035893bea18876c9de396ee4243a79aa9f1f7537557f73e40041e
 SHA512 
fff4b8b59b8f40dbb771813909c053fc318d1c34e4bf185b1dd6abf2dd1335e2a07d01db2083311a0a392da2dbfcab4f8bc7a7e1f8f5e7b2fc083cc6565ecd67
+DIST firefox-107.0-th.xpi 617229 BLAKE2B 
ca70ba01ed26ac33c130d484d7bd6ac771105ca7ccaab25f4f1a457b53cbe32e28a28e2b2fd90085076e659cea242c356c951ba2a92fa5f7865a44866371aad1
 SHA512 
4ceecd2fdd1b487018def904ec90732cd58e05c703ffc9da2b5c12b471beaf6c63b449bf50a1e1a62dd4f67f6ad315f3eecb66146dc89567179896d3fd175e59
+DIST firefox-107.0-tl.xpi 517172 BLAKE2B 
6df6a3c5a74b494cb27e34a29c800c6a7f0b454920d7686ec7df9cb2d8f8425a843bfa5f5ffe41c814c51e645e04fd3339dcd3c16dd9520ca0093415dae42a5c
 SHA512 
5d9a074d42f344e97a1e3d7c0f9ea9660f3b32e6547c3ff5494248fe34415d9354180f152df41e758be8339faddcd475e13383e2f3d12ab8473157fe9efcef5c
+DIST firefox-107.0-tr.xpi 564022 BLAKE2B 
0e4c0bb1be373d5cc190ca63364cdd1049b157a00279b7d34d178bbedf5f4733e9fc0c9e2874495d00c46571c64d5899e797bb81126c368b034934a059c8c2ea
 SHA512 
73560f4625e203cf5d1d5c6f24039f5e74fa5d55ca8d6507a33c0c1cb4ef49ea1aa4e80358d404c4e6323131e2d22ca4b3a706ae276572bcc98b077298001d51
+DIST firefox-107.0-trs.xpi 481802 BLAKE2B 
a8cbb071c8526a6c0a328947e565340b6a59a4dbd3fd5b85ad403a56e533e60d329a7826e147baf7242b26f687873475148edbf15bd53bd38887a49e6c880fea
 SHA512 
edd52e15ec01f05db3ca7a76e988c6ab01001644d921e36c4aed209822d2b1070ee6b00e94a064f4f4030ee0953cd7174c204edb3d96c2a2d31b5ebe79820efc
+DIST firefox-107.0-uk.xpi 634113 BLAKE2B 
2a9f3de8386cd54cf0b9a5cbdc9cb092d0b2fcc9e9649e215a4604f6cc3465a9509b8430f0d34c52fa5c13b89294162301b073217c99f6ac0e7e60aa39bf9e9f
 SHA512 
5595ddae050d74fc325906f15411d7a672124cc9ef1ba51d8a831dbdc350b78622cac4dcdd084937a963f9a2f9158f7faf04e6332ec0417b99aec91c9dd12ff6
+DIST firefox-107.0-ur.xpi 553079 BLAKE2B 
e5f88cb32e2706f8fed09fd943b5054746165d26ac928028c7d8a2268ff1dee8bd446e04cb69a0897362b2de47a697787788599c6d32be35a39c90aea521efd5
 SHA512 
f6c32ef5f7b84433b5943ea789b8534c334743ebc5d4a703151b4e69eb6458f07f15f0dd29ea6dffca2bbca97b5e07b9a6abdaf0a61f24308423923e28415b44
+DIST firefox-107.0-uz.xpi 473053 BLAKE2B 
494f7ed5e856eef809ab520ac552219470a92a00ae37f19d1ba17fcb17cd5ca9d27abba48603424cd60661141a59b20c3fcd50e4dc89d0f81396b6bf28f5c0b8
 SHA512 
4c23e113bda8ae26839a04903b0a1d6d3d8b2ea77b8415964f3edba8b4e226e3f8899580df7d82cea3abc8cc492b735681e0b020bcb200641aa959cf69ee0530
+DIST firefox-107.0-vi.xpi 585162 BLAKE2B 
9401ecb5bb339cc22002d890510fb5d921c3104a4ff920b5cacfae0786031655f9d475e03a461b97770f7408c186d4abdbc6d406c3cf6364b2b935c924a67211
 SHA512 
4ee1e9bd1168ca7109eac07e1db3a60e30c7a4621eb8dfa575c2d513c6c33161ec20c4c6a6c631a78c46deb86c7f64db0723a06a03405008da244a0b0b897f16
+DIST firefox-107.0-xh.xpi 414831 BLAKE2B 
a082cfdd8e73e6e84529a1e609063547a58bac559022ea2d9f8691a8771abf1a6f9f6f75489225081e23bad1599cc55c0f2a78dbefa20a586ee453ec36899c16
 SHA512 
34e63019f3e62eacfc6da7b648cb939a8b81a75e7751c5fcd4b6509b8fc2513e3c073593f31b08d42e8230fad4a22e02029a160228dd42fbdcc82e7a25e67fe7
+DIST firefox-107.0-zh-CN.xpi 585092 BLAKE2B 
d1b48117604df85a097f6f46c4554f0ddcdf2adb1c692cac7211de3b3e2e0428e96d37a50ec39b6933c9112fa1d7f624b378f8786289c336d3102402d9fd0c4e
 SHA512 
c352b5a9988ff823e3a43c3b6a97a5d1a25da842e61f23e52ec3fc9b044cab43e246e478fe83e83b10ed13932a677a79f5cab1eab78cf84268d64e0fc2a010aa
+DIST firefox-107.0-zh-TW.xpi 586218 BLAKE2B 
2ed318648e4fe0371c43860a67c72a005c52470759562788ef8ce68eab118db16c55580173106f287131b8888ff597664d40a819ca30d0c125ae8a43ca087866
 SHA512 
4e44e5937717ffc71680cc33aa144e0c8270f1dd085aaeafd3482c8da38012c3a24535e9cc5a9997ca8924ef037aa98269476947a69b86c7ddbfc5e395d51235
+DIST firefox-107.0.source.tar.xz 510848468 BLAKE2B 
3266e1dafb3e0befe746f6ae33679474e70335b32baafc25981c7a13f385d6080a313887c7828d76a47d2e456056c6d93140b84f1eee502dc9590247d31ecff2
 SHA512 
4b442631079a13e1d11223499b1d8daf622d9d84b38898f9084670ddcb5738b73e0d967a5050d5930bf862aa69e8d46ebf6d751ac6d0f075a1d75ff4738bdb6e

diff --git a/www-client/firefox/firefox-107.0.ebuild 
b/www-client/firefox/firefox-107.0.ebuild
new file mode 100644
index 000000000000..9e3ee21d03b8
--- /dev/null
+++ b/www-client/firefox/firefox-107.0.ebuild
@@ -0,0 +1,1324 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-107-patches-01j.tar.xz"
+
+LLVM_MAX_SLOT=15
+
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+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 +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+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}
+       || (
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               sys-devel/lld:15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:14
+                       sys-devel/llvm:14
+                       clang? (
+                               sys-devel/lld:14
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-14*[profile] )
+                       )
+               )
+       )
+       || (
+               virtual/rust:0/llvm-15
+               virtual/rust:0/llvm-14
+       )
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               wayland? (
+                       >=gui-libs/wlroots-0.15.1-r1[tinywl]
+                       x11-misc/xkeyboard-config
+               )
+       )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+       || (
+               >=app-accessibility/at-spi2-core-2.46.0:2
+               dev-libs/atk
+       )
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.84
+       >=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
+       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.1.12: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}"
+}
+
+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'
+
+       # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman 
doesn't work
+       addpredict /dev/dri
+       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}: $@"
+       "$@"
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+}
+
+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
+
+       # 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 ..."
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+               AR=llvm-ar
+               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,
+       # 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"
+       tc-export CC CXX LD AR AS 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
+       export 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
+               # 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_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