commit:     c978c52a8769b370679776bbd8855be8018016e5
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 26 10:31:41 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Jul 26 10:35:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c978c52a

www-client/firefox: add 103.0

 - drop _all_ recent vaapi-related patches (merged upstream),
 - drop most wayland-only build-related patches (merged upstream),
 - rebase openh264 patch (based on fedora's patches).

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

 www-client/firefox/Manifest             |   99 +++
 www-client/firefox/firefox-103.0.ebuild | 1282 +++++++++++++++++++++++++++++++
 2 files changed, 1381 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index a43bc78b932a..a328b9b9e8a0 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -97,6 +97,105 @@ DIST firefox-102.0.1-xh.xpi 418245 BLAKE2B 
98dd31f5e54089e623e9fb3f27be33b8e1fd2
 DIST firefox-102.0.1-zh-CN.xpi 566194 BLAKE2B 
aa405e8beb475726c1a041afc455858ecc52a2f9a26b98b730bc88d51f8067eec1bf9772c361de47d9c1a6147302c8e5f05f266417b49c6bbaad9d21fa8356e9
 SHA512 
f408b895ab5fbde63fd764a030ca6b54c387aab2bfd106eb146802378130a15fa867ede47e9e7afb5934488a648777b21eda493e9aa2189b3a03b3b4378f020f
 DIST firefox-102.0.1-zh-TW.xpi 567164 BLAKE2B 
ae898adb1bba36de80168f2a589affebc9e78c9db67cb3d26bade74686b5349bf214f2e7b1b7818f758c14c4ca6c10bea4beffc85ca9eaed40774808947f1bb6
 SHA512 
fd38490ebf8d4ce2479d943e840a30b246f54a8fc4cc804b39a7286355f37b55a20c857ad4752b71d1266784fff5a7cd196048a9447f9e65fdc2580c252cfa1d
 DIST firefox-102.0.1.source.tar.xz 477609884 BLAKE2B 
20ff263286f5e14b3c69e09e40fd102a726b7396f5d04a5ae982a41212f4e1cd07d21435631fd655698bf03071118555a3dc53c4a889a323b9d11be2c993ec74
 SHA512 
a930d359fb81e473b963a93f6db5110871e9fd57f6d0f352513047d363d930dd4811e8dd786c2f6f3541c3871eb1c0169b718652d9ee076fd13a20f52af30417
+DIST firefox-103-patches-01j.tar.xz 17936 BLAKE2B 
64c4f74c7e5a78bf9107e343384868084a0d75181d8068db1a5f782434f884ac03b33e03666fa53b9a48f89cb6ce8ae6d83a903c66e928bdca99d24f6554937d
 SHA512 
1b9fd0dfbfffebd8c43c5ae80cb5fc5caa5a1658a3f287342709dcb7a92b9586c3c2c7c33d6dc68dc4eedd8a2d5444f4a2d6f58a510b74e144481e33dd88e54b
+DIST firefox-103.0-ach.xpi 454180 BLAKE2B 
e67d540246e321dca27cc7bad4f7f7e537d1da2c8db5c54143045a47568f6dc0b298d2cbd07dd9a6aa2aeee62f00759e8cbefeb17fd34399bf5ff0ad33424b9a
 SHA512 
9d0bc239526b0ecb4f920b184fdc7682ec8dda7fb43b96dfb199ae94db9041326598fafc2676ce8e9f48c49f459f4ad6bbc5ad4166f3deb465cd6673cac6f84b
+DIST firefox-103.0-af.xpi 419562 BLAKE2B 
85518c77505ebfd1a038f811b69052454e7675f5ce99b7708532925b6a246d3e28fc35946a91e529da093b6e4f75665163e4a89841f65e4fa6167fe49895687b
 SHA512 
c4582ef1254141aeccc5e93f6ff9b1405e7f742e5d766c6ea83ee68ac9f2cb4e9ff5960cda5b92ce9da6a933aa71ab00e40ee00e006640129e69463fd7f53e73
+DIST firefox-103.0-an.xpi 498026 BLAKE2B 
13ac12f537bf2ad7762841dfb6da5fd0a33445b2e2e5043a02cde7a74fe802492849607516ac3529746865986ba14d156958a30d47454a5b0af737ae05688eed
 SHA512 
7f4fe332a6b33c4da9aa20c3a51de759fccfd47e051751b32473b9803319587c7cb2593e6d6ed02d702e317d59efa3e255ec3a10671e3257d7299644dd66003f
+DIST firefox-103.0-ar.xpi 561675 BLAKE2B 
fc6a5a854c978447e14049f6634acfa42cb197945027c94d99289104a74d77d740199e25bffef6631e0ed284504217e5f9d351497bc73c9c1dc75457e35acb7a
 SHA512 
147870082d90ca54afa470fb9397d98ea04f6106f9c7ff610395b4964f4707ed0a01b28a8893b2ef68a51e4219d042fea3e9633d0cb4f540b7d0b3bd3df79204
+DIST firefox-103.0-ast.xpi 494286 BLAKE2B 
1e345030fb9ceea95f501524f65c23fb27c445974c28085f22e99a3e47008e8e6bcee3f78ab4275c5257109adfbc8bf4c1f70892654528a2de26da5dd43a9889
 SHA512 
2eba14b4c83bf55c1b03943e5bb25d1401c659809a4b5d186917274ba91a54a6801b05a18eb517ab672c7d7e2491573674e6c62d6b61426f0d0578c3217147c6
+DIST firefox-103.0-az.xpi 485452 BLAKE2B 
ae5246f5fec480702c88268f2249c6110d472f885e743923c5b11c4ea970c88d0d6bc75a17f42170a024636c15af6ae461571292c6a7ccfa42d7f79b6ff44a8b
 SHA512 
de5807ea5e3c240691a63632bb6be5d30d7b1087a33230108a8a5041427cb1787d0ee45b2831399c600574ec5f208b076493804d8af8ee5e791090d4941d6502
+DIST firefox-103.0-be.xpi 625932 BLAKE2B 
92f1450d7e3f59b840ed37b4fa6f433e5f393811288bfb42c8bc9fb7229696ce44cab476d6b018941dd1f9e7e28106233b7c747f365b3b4d406470ef5d46f1fa
 SHA512 
0a29dddf1df17985016e180e2e6f12b137486599602a2eca7bd856ef0003b226d48a94163a97bbc6f7bf4cf271a29aea98ed9c529447ed9d9689079da19ea356
+DIST firefox-103.0-bg.xpi 574190 BLAKE2B 
a92ff339c6f6fcd7e9400e110db89162e7273d1389d3592fbc9b9bf0fb0c13d03984120cb796fa0398155b24a8c194307f0b3d8b8037ec7da9456c8ad1629c1b
 SHA512 
90fc1140a9c50b5626d43574caa87db93449449411b00f25bf05ff3d63f4a4d718b3bab27b7edfa1474d3eb90b257c3cd6c784a0c7c06bd98705a8d83acb2096
+DIST firefox-103.0-bn.xpi 576225 BLAKE2B 
d5cd81a37225d644eb64e42404505de27b498688db48c5fbec1674079844cb2c12c61ab136e75499df32ef7c5378e9a90773ac6ad8eb479c5224807e5c5a5343
 SHA512 
0ccc915b43f3e93da06036a3fd87714436feccbe8a0f6a33bbcc52b6eb3be4c6391fe29a783515097e35632e24bd8bb075d22e5ee5330d935af5300354fd303c
+DIST firefox-103.0-br.xpi 532117 BLAKE2B 
0dcc378b81b001343b422e6474162057fa9801883fc032c0052b66c16beaeecd4db39bced3858bcfd25447d1d21508b8d8916c7fdb5d663583ac80e2a1069ce7
 SHA512 
ab977195985135b55e975eee10402319b328b605deb9d70b7e13a13657aaefe80f5d69083b28b8d02c65322fc8d2ab4889d1b0214afcc98a4d6c2ae0f9d2ec05
+DIST firefox-103.0-bs.xpi 462888 BLAKE2B 
fe4b442c255492a9dfb8221263efe26055c1b271aa95f5d0e3046b3641f07be1b6c4f765df72d83aa1da3777852772b41cfb26f797484693e94d98014fe58adf
 SHA512 
dc1c28187793c6096461b0095235082e73178aa3b5e12016f107351758a62c6598fc6557141408a80bb6212e0f5b19d3cb6c575f032cd1fcff501a522546ad35
+DIST firefox-103.0-ca-valencia.xpi 537345 BLAKE2B 
73b92fd25e8b6285e06faab9f2de71aeb9d631ce4fdc103b4dbdc49f8b362ea5a2a586d0dae24339d289f5dfece3e063f548fec9c47a1ba858686f936cc60574
 SHA512 
9ad4c3f268d3c9508ae417a0b36c26532116a3dc6572cfd4382aafb540b3843d1c724ce79695d7110f03808d64642ef52d1a646cc121f25689ba6ff438ad0189
+DIST firefox-103.0-ca.xpi 534085 BLAKE2B 
695a9fe0084b3d395f4b2a26a0c11f8a45008b7fa1cf6869a78a74e2ac8499f7b26b06591cdf167863f07d78891b3ca326c4038214b299832d7f5002bdf9ccd4
 SHA512 
d9d12048c87058bdf87c54400bdf286cb7c6b78debf69d45e35c67aeebbcbcbf8541db9ca2b9c0050d847b35121041ed5a06f384fcfe107a95a6cab3cf3be52a
+DIST firefox-103.0-cak.xpi 550800 BLAKE2B 
b7b165e902490ed79f6b25e7a2a63e40cfdb66f7080ef679ea98eaeba6a911ef4503342d7d892d25a6db7a50908cf4d2a3a31e527f8b0df9d2ef9e4c748a8a4f
 SHA512 
fe47dbac7e41da05207b104fdff2535cd136194e0c53bb81ca3c63f9eddafd83128362c77f033d00dc31308881e896d53760348d41905714ad63385f183068e3
+DIST firefox-103.0-cs.xpi 567604 BLAKE2B 
3b4a003cbbfa848562a84cd18c1b144089528fce57b2687ad2b25fdf60cc4f8084aa0bed30c17cadb4ab60333d333f28b18b4aa561b898007633b75f71052c5a
 SHA512 
b8a0c94e903500eb37e51bd26e3f664707db5a15690a3a1dd66b6945c80662de82ca25c7f58bfb8cea3064b8b7456f8297224b30f66825f318bc873d378f270b
+DIST firefox-103.0-cy.xpi 545481 BLAKE2B 
b55d663b1fbd28a66c45ea34fd7cc67afc99f02e28330298d91bc37da81e876a9028019103a9f3e9745aae600812cff8488323eca70b8c522816f6a6679514a9
 SHA512 
24c415505ac11c632c383ead10223db392352f9501093e0b46f83861dea1cda23a27508da4990388e254d76c248e62aa42c1312af06988fb02afb1d1440d7df3
+DIST firefox-103.0-da.xpi 535882 BLAKE2B 
b377ee1c25c2d9d405080cd307e9f6db242d47b4468e8ae83c335961be312b87f37235d2465fc794c1794dc2f86e7fd89ef29008b0673877f675c988dbd3b2e7
 SHA512 
c05de859cbc20f1d68c5cc3361857000f9aaf31f358795ca8e6167263fe1bea9911a0acfc8a82352edbad940d9822b3d1d734c9760a3d4e208b0eb9a71f0777a
+DIST firefox-103.0-de.xpi 555983 BLAKE2B 
7a3c54b5dfb20c1f87971ecf820ee42cd94ffd65666509fb8ee0a30e06dfd61e829c40330d74444f90b5379a7563d37eee7f1308a156024332035c1252da56f4
 SHA512 
72e7bc5e8f6e91e080a03849c781fbd21d580ad1629f700528defd62992e34a66f3fbc00be59cf5da2514587adb57dc375ec23d9fa000ff23f9a33c615acf8df
+DIST firefox-103.0-dsb.xpi 569470 BLAKE2B 
f52b4920e1e0d800bd77959656b74ddcb547de8fdbaee1c53a9c82eec6d3892c2929f4d146cef1c8110bdab88d963a0952a11b0e0e40f977c2a65603ae219f6d
 SHA512 
7d3ca48b6a90689d7d103c0fbf376cb5b606eaac99d6e9589760929372ece770fa51bf88a12250191452cd48cf86916748febabdb65e4b0b25401c37a359d2db
+DIST firefox-103.0-el.xpi 640794 BLAKE2B 
3c9f5443340d0e40834ea8d469ee52afd1e92742089ec696886e6a868240e787ba83c073c6126d1bb8daa9eeb28e770059d880acc6d21ffa56a029a01e9350f0
 SHA512 
e6e87c4cd6c4538397a735ce98f84a9fdd43a3eb1f6dfd56115bbe004d297032acc8011e1d8f1fcd20ae538b2b5ab49c6b047a4393e8395c475cd9381a6ebdec
+DIST firefox-103.0-en-CA.xpi 513837 BLAKE2B 
4f7ec3418d14d8ed12ffb32be4dd28517db12228002f6391b4878759af828501ae1d4b61f3dc1b35cd9fa978b96252b3bafdd225ad23b6152aff121dccfa0394
 SHA512 
dd3de690ab566997fe566ad8c04f416f924d038e094c33e5d9c30eb18b3b848c74c89c7c4b47893a4e64196e724a1cf8c0d9ed5cfdeea2ddbf8439daebacaf07
+DIST firefox-103.0-en-GB.xpi 514045 BLAKE2B 
312b6bc40c7e191cbd81844730f89c4a704b6cf8fd1e213a0294e346ab93af3c7422ab396c4fc2d61f3fc0b2899b29b468fe521cb353c096188298f1c865d698
 SHA512 
1b27aa14acd2280080e416dc41961f0d1793ae434561d030c415c8611d7dfb59dc1cedeed40dde36a1f4b0a8c47ab67ea66a6993008b5f858cc56dc228635eab
+DIST firefox-103.0-eo.xpi 540156 BLAKE2B 
f91e41612fee0788724573e8efc58c701efd5cb0e8e6f3a83651e986ab25968365576c70387c6dec479db8427b3cc9cc9d0ed3fddd3f384de075023b45a73048
 SHA512 
356b1bdd1eb8492c0ff468e90d248c2efe6804209e55ee1bfd8aeac4d746631492a6c83c6b9973450cda711937eff1f40d7dca8136266be6e6705b57552dc61a
+DIST firefox-103.0-es-AR.xpi 550478 BLAKE2B 
41a9ddfd6cd8f8f713ecc294f0369fc32faa681f765f8f57443dab0c25b0bdea52e4c166a6c8eb640f4391581c5d08f1f3795abfa7ef834826ac2224b1311e87
 SHA512 
653de5a93825d88a5be1595b988e99ef07d2c381ffbe4b638cbc9329addfd8756129ced971242bee2c7daa8232092b989e46aee04e4361d25b504dfd3e0929c2
+DIST firefox-103.0-es-CL.xpi 549850 BLAKE2B 
d12ebb50e46e9535da5fb940a980808a3ba96539b14e2a4cf9893eff004edbda1fbfe40fc067a236eba99cd78b9c3df66ac919deb8f616974d810353b41a9ecf
 SHA512 
34c3842f7d5d8ec80a7e4c18622e64371b2f5aa59c7e43b72885c96fa58c184896ed1f31e8d20be06184bdb6067e2a7a6bf987f17fd8cde4481f3654402d6d0a
+DIST firefox-103.0-es-ES.xpi 541257 BLAKE2B 
300dec6f29c24d4b89e96be4f564faaa4b17473e81afc1463f606ddb9c49c2ca2cf0bda555f911c3eb44dedece7704999811cceaba50c4091e722a924385c522
 SHA512 
7c67f146ad6cc9e07dea938e77a07e7b2d3bb6e76efc93304c1fd4ff6bb62d111232b1a2949122572b00b4092de50dfb10e3a4593467c1c14a7e3901990eab33
+DIST firefox-103.0-es-MX.xpi 553698 BLAKE2B 
64695b2e2cf0fe2e7b749eea46e7d7ed88651cd58511efae5de09a3e59c16cde9bb92e01fe9a8b6e4472010c067f4ce9b3d7d4f853b33fd3976863b320c49a86
 SHA512 
3c0c987d2452d0f0113ec804045e9e8e18fbc74907ea5b2d90420f509a8c393cd8b6923aff6c6c9df17d039d4127d405c92b4cdd64015ee7a8e0170f687bdae6
+DIST firefox-103.0-et.xpi 530726 BLAKE2B 
cc205ec3cd951b8533580d7c5a08d30c7fdaf47a57cbea7cc627c0ea86a24b06443a02841e4fe56423c7a838d42de69169cd1aea836cb7dd754250f31c27d840
 SHA512 
4292aed7788599d90d61fa90977e855a1a565d8dbe8ae7c524fd0c937bd1d724d3b16cf02430de7c59816bb0f66b251dd2c6592693127be8616526f196c2eaf5
+DIST firefox-103.0-eu.xpi 540016 BLAKE2B 
af25871d271d7dc1ae12d525dbb6b41fe8f67d9557d04c58b4fdf29c8a3836cc0947fc9fd17b0d47b4aba94232e8b0b2a818afcdb686aee05e84d19e0bc9bd7c
 SHA512 
b0ee85a92e55d02716f6169b15402a8de671bad3ed9f18d01fb960009ab7b4cb19a99c84cc4483bc2ead90c953d28e54f29c7085b2cd036c7fdce89f4f8db396
+DIST firefox-103.0-fa.xpi 561838 BLAKE2B 
8ddc0c3e21e89ab4b5766d53e8fba9fe597aefaf76d88a9b090d7fcb1421f304f9ad1e744060908dcb75d43c70e9860751b5c9e710d68929f501de4ff23b01cc
 SHA512 
0c946530f45391661b9f38f7eb056c27b7b744843f8b51d0178862b575b1f5fe1c338c7ca27f40dbe49ef4a05056468d5495d47e6e39705d766a7de9b56b10cb
+DIST firefox-103.0-ff.xpi 472341 BLAKE2B 
27c0fd7335ae606ede1fe6f21aaa340d21b2abd342e692b5d1f34d5b781c8128cab2d7a4bba98b4dee9ca081dd599f29b141cd9ba269acd69ed6f418dade4c3e
 SHA512 
b5fb20b90c3c5468aeb32112e2cdf902bcffdad1bb45834db97a34d10fef2df1af5467b37729268c018cf3a2b715bf8b31312b9fdcc2046f2af620f691da9640
+DIST firefox-103.0-fi.xpi 534459 BLAKE2B 
b737b96e20151cbf722b400e63ceb22a9506168acd1359b750ba885743903b3fdfc816abe74834980fe3d05758dec1ef2c5a3910f4383d6f6c0824e97b4036ba
 SHA512 
4a056b54f20943d9e7e41ecbefac43921ab39e4a80b0d272821b3d41e2229a102b4acf2633306bc2fcb7122c656f6fadfe369da6949d53ea3a7dbf8a9cfd8e01
+DIST firefox-103.0-fr.xpi 561671 BLAKE2B 
a31e688462d777e5f5d622130dbd626786e4cc718a9ef6025bc341c17527b0c3b94d1d30ed9fc8cee548a06d46d3d463adacafba3e3831a49cc1ed6be9e741c8
 SHA512 
a766ecf77d8806fe04253c4d3abb4c03b25c118d357b6bae5ccbfc47afe68ebdf03fab7342d1f34ac8d6e31557566852cc4e0e899f53eb0f947abc16ca2f099a
+DIST firefox-103.0-fy-NL.xpi 546740 BLAKE2B 
78a2cbcf9925db0c1d22ceb365268e57c67b913ad0889d93cce63fa543923f3895b3802e9178c9f7db4a75c41a2d30a86d21880dfeec46bce3482c0dc6bfac88
 SHA512 
3c0a6eee201c68b3a0a9d3c199d8c3ca0136ee72d4ca81f9b1827ae3cf372edf97f852786a15599c89aacedaa188d08d35cc5f283be9ce7e3800e81a936e4efa
+DIST firefox-103.0-ga-IE.xpi 471798 BLAKE2B 
952b792cddd7d3a29e9a263a6597a0a3a144905c26f5fe3e1d00ec7720936b77a3a706451c36e22b017c933af2e0f3013c27e33d02c37cbfffc82a0ee6f58bb0
 SHA512 
8fa4e6d1a56f9ea72197206995d02725b07ba92d0f75570ca082817e3f00795bd74709cf29f9ae660635897588d72ac2b8314bde816fc0218ae5db25f96b931d
+DIST firefox-103.0-gd.xpi 533651 BLAKE2B 
46828b2f74ad2214620fd5ca21ed014817e9ea03c84d2e3d60626b8a72220717b6bf95088e624c5e87c8eaab9bc89eb3794feb7f8504c6db3a628c869858661d
 SHA512 
d907598e8dc90f5253ced27dc113b41aecb9395a945ff2b750e9eb673bcfb0450120ab4e4b7b746fd97dd16d0d7a9549728839670b9d3185a5ea69079c39f6ba
+DIST firefox-103.0-gl.xpi 540047 BLAKE2B 
fa2c466c86e4f914685fc4379aa7a733bcd21360318acc7a350777380f82c4864410b29e84f8c6d42e158e363ebc79a54f57767b71cb48f8fb1077362a7bac4d
 SHA512 
c6ee320a99ee02044f1a82cdc9b6e8fb4da859e96e9384b6277dd8f4ffe4b995c708f277fb8ce9957a754885cfe15712d15e7bb213c17a7b1ce074e6e8f8c737
+DIST firefox-103.0-gn.xpi 561557 BLAKE2B 
0d6749ba29b5c863487a69cadbf2d6714e63716af9916a3a95f2cf759c2339c2655a91dca9480fb4a6f4a1e89efacd1bb47376e2e093b1b74dcc248e2255c013
 SHA512 
b1951cb10000b01f2112c4565ea6174ea8015d035cc61ee1c83e6a9c93fbfcb60a5c4f5c4a10649b47d8da5c9e15dc38488317e659862c9ae83535a06acc5642
+DIST firefox-103.0-gu-IN.xpi 526876 BLAKE2B 
927890b272bce0398d94db6e235d1e2422313be87e3f7fbce20df750be936d48b55089a769d20486cb87ede4c04b690604ee003409b235a05300439b623abd2f
 SHA512 
58b0fa54bc18ffc190b51647d364f55f9c863bc703bba1ff192c248d24db2c76d4caf4d06a2c9c103f69f0e12525d79f1160162b44b0a39927d9f52bbd24b93c
+DIST firefox-103.0-he.xpi 559703 BLAKE2B 
b47faa07309fd02bf180c817f2e2d8a68a313a00f8716d398d495dd560dbbb123424a3f25203f7973aea96dd3111c486222b28b11e4100a20364bbfe34d80d6d
 SHA512 
b1bd5f66bf574280a62e7804f554c6dc3856110993a318bac54c4384b434ac328208df131d9a055a4a1acaafc6c53dfdd58b383f432fb9dba2f71a2a25c134b8
+DIST firefox-103.0-hi-IN.xpi 556912 BLAKE2B 
e5484dbbf59a07fee9114e4579a6c8d88c5c7a6b3972436c295debb67b67d1af15d9a317ecb6aa440f8f1bdaf44028350a9edc30c0f3e51c5fe667cd0f98e0f7
 SHA512 
cfb5d1daf75a6a6bac34660dd7481b3ff5e5be52fefc2430e3aa2a1ea44eda5bbfbbcfdda436df688fb1f236fc098d36236b6a7437eda088bf2dab828bcaf492
+DIST firefox-103.0-hr.xpi 530621 BLAKE2B 
3a3e2fc003edcc1d50978aee740db6bc3659f4ee62d172fe0d8d89adaf96b0d63a78f3a62911f020af11e37a1a971c17adc350931cb3de94b62f7d5cc24fbfb5
 SHA512 
56d767e848ee25bff34940d32de802e988337f38fe96b2e382d44eaf70f4560f234bf56d5a7c0e5960a7a91d00abafc80d4e75eb9f6ef4a3d2c792894b4c44fe
+DIST firefox-103.0-hsb.xpi 565689 BLAKE2B 
5d1d12e96b70369aab0ddd7124bbdd45f3753c8b8680b536cdd6f0d858e9fe1d696c8f28edbbbb8e2f2b24b45a30c2db265930a48344bf6d766284ddc80530ed
 SHA512 
f5f24fa35977621fa2e7d77bdc0f09fdd0bbb1155b3cdef044ad3cc4fab2223e76e875a9fdff430f50080de15a8dcd200e81597436a17df213a3c931f043efe1
+DIST firefox-103.0-hu.xpi 568980 BLAKE2B 
39c6c6c2e8c2d409cf8413065e431bc4400fb3598cec426c7a073d336a367ebe93f16cd014a7594ee0ff04854d7d1a594e8088a3c76b992da7e942d0ecee0423
 SHA512 
bba1a371adcabf60a8c12bd2f4357199b5119d369c220e002c8d123d96c65c9102a9bbeebd3d16b1246443f0f7c5c32ba04ad9025163370251d7a18430fc027e
+DIST firefox-103.0-hy-AM.xpi 581564 BLAKE2B 
ee4d4eed161ab315fffbe33d71470719e29ad45954a8f998d440fae0514952b648fb6772dc9e0534ca3cd33286edb9e28e6dfcc3c5e660deef149efa27b080b6
 SHA512 
e98eddc8f1103508b2989ba71261d62052aa8c27e22445976854fbb8a01af0eb7d09aafe35cdc18bfd978a50bc55ed393bc1b56ff0e5d8e2981c3cd13195edcf
+DIST firefox-103.0-ia.xpi 535623 BLAKE2B 
346cc6a85b6e22b5a7df02dffaba86884e50ca2dd4907ff0b6f7fd1174f5e1e3d6f22c52482441fd582d6e28b6e26eee22f4fda1c3e769897d76cfa69c9abda1
 SHA512 
2bb51dee578c5de7b48fc4854b2747008aa15bd1b7a43405135992891ce8b5df8b7412cd520731ff73ef900c6a601bb42c392a7064c5c116d04cf52e26419902
+DIST firefox-103.0-id.xpi 532809 BLAKE2B 
3da30cbde94c11227ddef07f9d7b70071a5759956fc262f1fc8f9b837b412006b7814655dbbe72378fc3e6e15cd015e500f7c9a8b8b74498bbad0a63f7e2e2f8
 SHA512 
4702d910e67f544087a0565b15c9c89b8758a923c9e465e7d00a4e3c3b65d978b9bd8386509f182ed5994715905bbdd2f4dc8ddf1c8b52daa5aba41632a7cf30
+DIST firefox-103.0-is.xpi 540838 BLAKE2B 
523023110ff656f1dd9d0fabd3443d8a4fc31a5b1f3736b2ee2a688d7aa58934bab934069174ae24aed68de78de3032d41cec07b63aa4f2c37b9917c06f9bc54
 SHA512 
a0795f691c67f1cd049fce8b8aa531ad3b69adadc57f8ccca866e4f56c30bfc20187103dedc7223448bbb346166cc431d945196264d79abae20d54f0d35db61c
+DIST firefox-103.0-it.xpi 454424 BLAKE2B 
a2fa1d2f39e2bced7487fb9df947a290da17cb7d90ce10109e1601404a4d880dd49e1fbb2494dc76b8de67ac81cf2b8ae2ed7c5149492c055cc242a310f0c84e
 SHA512 
8c7d3af04c4417134cc0c7dd9389710827c8f2f727449e1f3f288fffe20e32fa50e048733d5c69265c8b6513dcb7935f719aaef1ab3c7f4fbc622cbbd1604bf8
+DIST firefox-103.0-ja.xpi 574511 BLAKE2B 
1f08655891bc86256e08c95354c14f43f4a4e74f31352de7bcf7caf79dd2caa897417ac541e98cfea86997f996ce7d3b94aff5193400cfe3d05cfd88a442172d
 SHA512 
b6b643876d983513a40df16f7ccfde7a28cd01dadf812eb7e1d1cae74ba8c5148df294ba031d38e2c402850614df82f7b7626d526d55960bc16a979da6aa214c
+DIST firefox-103.0-ka.xpi 594026 BLAKE2B 
60faf9dc9aaafdd108402daa8788d9dbe78596a68f7344c0a99cc9d07d78c5af32288d01a175addf026bfd95b8e0bad07dcd611bf0b3b61b9708aba846dfdc7e
 SHA512 
2b68beda724ac86a87ca4dcc643166deda7f0273bb63bcfeb739a856f2852a6581c2c1fdcb02214fd80203e34e1d8dac305030ce29ebb236eb064ccc1dbfe4bd
+DIST firefox-103.0-kab.xpi 554258 BLAKE2B 
5792132babd2ba98591d73b0e1e9d65a630e418e5315e4baadf57eda3b9e9fe998701245c723c9f6340708efcb8da4f695400997bacea59bf4b69174671e8081
 SHA512 
dc2610292133539e4872be1a9b43b8544cf08ffbb698d471898a35f073dda64024a50d67d88e676b1f2db365b98726ea3a020fd1d41e0147d1144dfe94ac37a5
+DIST firefox-103.0-kk.xpi 616958 BLAKE2B 
3388a8dd6ea0d13f4e7621047a44fb9a6d569ef4ff035a4bdd5b5659d03ee1351bae2eb92d8b169431e8d10f867b9ab24c1ee4c3b79213366169463e02465835
 SHA512 
c628986d69bc92e4313a8c3e85cd981a07f7dad119296aeeee3d53749bf3c07f62205935c36b29e4ad1cbb15108375b9c5093f59a684d62f6362101b4d6edd07
+DIST firefox-103.0-km.xpi 531380 BLAKE2B 
d09be94f66cfba85c66a89028818563fdf49ae8fcea38a1dcaf7a11371642578b532b71cab1219e5afbcf2bf83b3cc6409279a8545af85af283fe12eb65a15f0
 SHA512 
ca456664a58e09b30e1b1157f286348c23832f9637611bface4da58cda910a9fe52f0b783db69279e501d04c2c6df66c00865024ba322dd4f7e204eb2f356f09
+DIST firefox-103.0-kn.xpi 497490 BLAKE2B 
16227ec4b20da8544d8a3418545b84eadeb8a14958effeeb2f68eada668565f1de34e9e7e6bc5170b065346a0ac283ef016ee1ecaa086f7690bdad3a5e434315
 SHA512 
2291597d181e80409c9b14de933a10ff2d61053b66a8e03783293c087c00d1e443c7d46f2bd1e914fa0556c838d3e3a00855749abfd7a3822acadf51a5a25ab2
+DIST firefox-103.0-ko.xpi 581111 BLAKE2B 
de034001a123a4da2efaa3af8ce08325a1b5e59a3bcbdcdfe61aabc072b728ffa953b6dc96b0a533f5a56719dc57ad62fbe264a08cfe347b72223a164389160e
 SHA512 
435df17768947439b0af7e46d49d3c702d2ca800798fe7861e8f9c9922d5bacbad8e0f49db250130d9536bdfbfd86709021e4a62628084a86eb61eb2ca2d9a99
+DIST firefox-103.0-lij.xpi 470241 BLAKE2B 
14d3d1cb1354bbe38b529676b1b75c0ae8bff484e5194368a7cbbfa0213e645f6a4b8279f5cdaea4734a8a7bdb2e791c9d786782bb7d127aa2af216923828887
 SHA512 
0e6dcf9f2ebb097a7893b5134f762614495b3c5c25cd2a81180fc9dc653ba94ef952d85a4ea0424c9547f565c976a1deebd237408dac1b9c03143675de16e100
+DIST firefox-103.0-lt.xpi 562005 BLAKE2B 
0e68193284dd1924ad5df392b3f4d839fc0a0d7470d9bd904ac43e9d374318027eb8671b8b9a046ffed2e74484607fdb3f7674c8cd2328fc32e37bc00ef6c77a
 SHA512 
32ffa868ee98251b04f14484905fda22b47ee882e21566db8fde6908806ef5b9e1f6ae7bce0fe4cd1d23bd5a6f52b31ab7654b647dd80da50a9132e5a7f3f612
+DIST firefox-103.0-lv.xpi 463412 BLAKE2B 
3fe7a2d1f8ebcecb75b48e6db1c0471c4556054b09b34ea3d4dad4ee7ac199df5c9b814d6cfc2b97586c821955fd78560f6bf90f30f691bc41487f2a48812094
 SHA512 
1ff45cf9f49ea4603efdf1411f010536041920a76a44e38902171d45938631a3d499e1b5ed1aabfc5188d41d538e5117f5e79bac6ec3e95a45e91fc555a0574d
+DIST firefox-103.0-mk.xpi 474768 BLAKE2B 
2dd37eecacae7a8b171ee050d0741ea2b6ef4d470ac182bfb9b92e14671e575d6190b0f6291451eb972aebac5c29b18d1a69c9c61f95006e3876b838b29f9727
 SHA512 
0769cb8f7d842422e27afc24aadfb728b7a0953e845759fb44531e554aaa9f2724394d3388f95563798db536ca0a67bf838ea23778db42e76a24c1c483f52a69
+DIST firefox-103.0-mr.xpi 530630 BLAKE2B 
93cd5d476acfa393b9ebcb116f55f6883e54139158af1315ed2355b28d5d7b75b335a21773e1913727163d8989932f1859665068eb6b0492101e916d2caef03e
 SHA512 
60c472c7764692355d81b3ea54b16a985b653f59067d320a13117ae93e816abd64e84babf8a3a02d9154798709803c7adfd9fbc074fa4df069526fe31779c7ca
+DIST firefox-103.0-ms.xpi 448408 BLAKE2B 
a0f2f1bcf85abfd595886b47728e6470d2700cd037130c313bd644806ac2dd316a12f7475799d57fe9814576cbb3fc1425b2e039617cc9debc696ee684c4a15a
 SHA512 
602d031fe939b64f37eadefaf26313b7125cb8f9096ae4b96107cfeff04a2bf9ad3a8b442ba274493565d43e41234d7316bfed74c08f0782b29dde464e95094f
+DIST firefox-103.0-my.xpi 510283 BLAKE2B 
ef084c5e04a9fc54516f95d18a6bd3f2ab16313e61b5d784999cb0d317b4647f3764c34edb4e5f48f3f9e243d4e77df9e525a48b36b5e9c12934211f45533d86
 SHA512 
b6b1bfc7ef95b6b3f9f79d4999902dd382c4a753719bd8bf782dcf70563c255d0b04e764d67154891f0aba30c568c4cb6b80b3ff316ef63beece06ea82eb4769
+DIST firefox-103.0-nb-NO.xpi 533222 BLAKE2B 
41d138d029a20fdbdcd39b91d7eba90c579db9e7ed6937f4f20aaf4bb21510e2209ee821160e03fc10b8023eecc191a902a89f5299419385a4edf2d5e761e1ac
 SHA512 
d2960991952a886f34f0d3a1cf9c37363d37ba5f9ba99f7219dc75ea6297aaee2b5905ff5e2190f69cb545bee65e0f065e346d1d86150057e0b573897c244bf7
+DIST firefox-103.0-ne-NP.xpi 489026 BLAKE2B 
170ae14a33d9bbb29c9c0675e0b0d38a9a23e7cfa46aec58fdd9d776fcc184856f2dc5073dcbd43bff43cc122431a0c29a7f784d8d921ed5e0758c6cca4ccc85
 SHA512 
0c7a58e36dfddf5b11875af33472a5fd8bd3f2580291380fdf39781978c2459cfc374ab85cfdde5cf6b5934d4d72194f3df71314b370dd573d9dec7a8eb15c98
+DIST firefox-103.0-nl.xpi 541038 BLAKE2B 
a4375b84cdfb5217408f3045436713f1769bc0419ad5a040aed13e4e79c57794847e328589af107cb2d815aba425bbe8d6e7f9c204bcb5e5220f7cf744c63adc
 SHA512 
0111a5d245f8ccb5f53b6d855d1122a9fdd5163c4405c5b936ee42fa987c5cd10e42d9782531b89bf2b86e990bd011cd9c7a8020c812e1328274ddf755274524
+DIST firefox-103.0-nn-NO.xpi 535170 BLAKE2B 
3e29bcca2eaac42300499139625048ce5e0523db03bb3f34c30e61a38dcd2223b0fe436113957a5e337a412351fdd16e4df33c0b943e934791f412cc39418c5a
 SHA512 
4518489e3b12f3c91acca6d408c279e7394e5814f063510c48d4c34397436ee740e4a89f2df1af6b4fb03b0e300ef8b8895ad960d3dbf8d7c257b364bc501310
+DIST firefox-103.0-oc.xpi 556224 BLAKE2B 
c991eb07e41605c9e2d8ec8bb6ba9a7e43199ed53ba05e84cec3d4d7a9bdf1306f3bbe49fd616f275db4d17541d56d00263165ed7077fe29823b3751e3a2de69
 SHA512 
217d89393072e4eb782c8c1b391aa85009c93e24fc63ec66a8c62f00a9aa3f393478e7066cf8749743ce54750eded8b0d8291e0c5c5462fa8b93f36a0a279c9b
+DIST firefox-103.0-pa-IN.xpi 599783 BLAKE2B 
4df8e9ff8f4f40f17019281fc1482999625bd48b32b2d864ea864415afd0ab4146778038a3f19f3bafb5a7d78f353e73fc734459e596c41cf9068a0832916fd1
 SHA512 
5f5310c72ca2906de6521240240c5df29154b2a5345e6fe3d7f13b7881912e0faf1427ff95686fb576742b59069f7107478e871f59cd74cd1dbf08168a89a7da
+DIST firefox-103.0-pl.xpi 560469 BLAKE2B 
a405409d1e627fb7e9cc7685c99d1b10a65e2145085622c53f5abdeb6eeac7281a6dcdf9771e7603d4b3613999ba80a6b313d4502a00ef1b5da7d62c2b42eda4
 SHA512 
22a5360c7cdc2338df224c188e8ebab66a0ecfe914c2be1be11ac977b48fa2797a91fc673a28d5fb6c2c4d47942e48c667523ace29f18a2359a1f06e111f4f45
+DIST firefox-103.0-pt-BR.xpi 545993 BLAKE2B 
0b8785c60a616e1add399426715ae6ef639409b735af10d69f0a196f94562255d17059611bdeffecb71370fe66acb350c739d3f56ac6434e6371dc2b87607170
 SHA512 
f8cdeb1190190f33d176bf946bb4e6ceaa5512c4240d6b5569431f1ab6f05c8fbf408ee654dfc7c2aa8ceee9bcb18adbacf38639b077f05cf5810edd6be07193
+DIST firefox-103.0-pt-PT.xpi 550405 BLAKE2B 
b744bb3fc09f75c0241d61e10a9de04049e6d4cd7fd1836bf33ed1294ad4268af292714f5e05a0ab8fb2d7fb820bbeb867dab19831c72d2c6518c296782f8965
 SHA512 
e475de833d1dcaefcebce330bba28eb3c8414b37394210e6eb7120fe47a56054380c0873448977830e01800dcae912178ef9096abdc465ec9f817a0ea093ad30
+DIST firefox-103.0-rm.xpi 539552 BLAKE2B 
9a43853cb41ecc64dc00ab345e897884cf1bfa675ea4ba73545b639902ea3bb9c767677e8ef44d9a5b780167928aa435d055a328911d5d0c54bd670d2fe58c10
 SHA512 
1aef703589b4fd169dcf775dde432fa7982a4d662b45bf8631afee2fea4d06cc4c83307b5b4fb0265b0e0c5369f10bb3572128a6126adbb5dfd3239f274bc9a8
+DIST firefox-103.0-ro.xpi 528566 BLAKE2B 
15ff8468ac0df29ab478553c7e18e4268f92d4303e074864271b2f098e88391bba9a4588fdaa30ee5bb0581bdf501625c47718166c93ab4d598aa03d72a78c06
 SHA512 
d27207dd29c485bf3797254f4c1704afce261f9d10a4240fd6852dd84c86c9360dcf07031d1e837a0035c564c3074c004b978e0ab048087fcd2bbb2ecad9def3
+DIST firefox-103.0-ru.xpi 630081 BLAKE2B 
9ea8332c316ee53044327f1b2c42ae576b8c463c780e77bc9902bab1a16a95ff1aeac601ab14f357e785d98ac38d6675167943a4e0ceab5bf62af08e9456bc3a
 SHA512 
948169bb81be21dacb96d47803532e894dc4bd5d2d5df25a1487c8265ca074eb18981a069fe58d89489dbfc73d036f890f028410a60fb265a65ae334b3b38fde
+DIST firefox-103.0-sco.xpi 496686 BLAKE2B 
35a0165e8ba7a06d809a860c0f2adda3c44aa2d4365ac735aade885f886404dc49666af1ca8f6322d0992b57dd8a7b1a6e37d5ee8ab728fb33064a337be3c8a8
 SHA512 
206c43f76ceda1d25928f31c30b1db93b2f8604e8f740c906f254020141134293d3e950629e91f782ef8ee984118ca71bc7727d24a613be9efb939a700e135e4
+DIST firefox-103.0-si.xpi 485250 BLAKE2B 
2a3460279152b5cbec65baadc9df5af9c0239234c9d1c7e31f56906260a66b2d53507e43f6046a4352de2fb228ab1b5551820356c1d1665d9730f6955595a3b1
 SHA512 
17374ce03c2c4e8241a15a9f512d3142d9e38ae71dde1d3e592336784aecf49aa597e641188275da97da5eb0769412681b28f69c222f60bf53ae518e9930e196
+DIST firefox-103.0-sk.xpi 569080 BLAKE2B 
497005662be62a57e207388ef182f046501b84b5fb6ee4aa46d0c939c7b34b51d264bf2b2f317c14f60d08619f6da991705a10dac37ba79b4ad98ec3fb3b784a
 SHA512 
2a45647583019483f8041a2ad83a211fa612772cd23aaadb36ee8e69bc2043dd663479fca564f702402ab2171325c7ac13cdd232109f706fa2a08ca679fd1fd5
+DIST firefox-103.0-sl.xpi 542270 BLAKE2B 
7a1abf6d84cab18f84e63a4311073a9092c3733a016d8d4698ef755d04f5ca208727e0da60974efc8a3add1deffa2443d18e0872a721a4677010eecb6f128c18
 SHA512 
e17f58a756e993e24ae8f822d36555513a54008ab5778b0929212c8fe0a2d3d0d272a14d45f00631bc4a4e93c4b277c0be3539e394f5168f6dbf7b45831a124c
+DIST firefox-103.0-son.xpi 426217 BLAKE2B 
0c252ae8e28ca80113f109a5f6a761a5fd0b7f2455d409e03f3352b767c413c74be7ae053915738f12fbe47209552f4a62637c29c5c211958ec4acc0905a3a2d
 SHA512 
25360b5e636b56f45de6377944f8038124c49b28ab0ec975580b0eb0fb0d4e5940f134672151dad38569d66b67bdd82301f4ea3c4e33d0017a6805136b459d0c
+DIST firefox-103.0-sq.xpi 557260 BLAKE2B 
f3dd19957d99d73b02ede2b6e28d9061691c037d7a066e27855bbb0f7251d7a46d9d1b3d1f198136452fd2c3530a0933f9654ce063cefb9800d119a8c1dcd75b
 SHA512 
6ed08c308e5f5b150f95f281a0196a576f57653a6c12717aef07fbb0a34ee3e1c65644e86b4fc147d21827c8b3aa6d7dbd92ab72e565078b3e13b32c6bcdf413
+DIST firefox-103.0-sr.xpi 582542 BLAKE2B 
4bc38b8454874f1ad087b6cc2b8142178f1ccdefc88fa589a4542faa7c9a75bec9d1b019e4ea16aa0e110a62c95b6348275f868d170ba16eb4c7e844a42f5196
 SHA512 
763a27867a57aa1af4934e727465c6032179bc77b0d183f89ebeffbc61a3154e147ca2ae35c2c3afd36e0e69f8cc2bc66dc86aa973b9c21ae101c6ae58af3787
+DIST firefox-103.0-sv-SE.xpi 542868 BLAKE2B 
b7d23979e497f3365a30f6cd74a5ede2011d27e02f6b6f09a42152aa5093f9dcf1f76ce1108a2ed425ac289973c24f1bc5bc4138f3c61ddce08ffcc85728f490
 SHA512 
353fa3c14f3434ec9a973f7fd0f935e41421ad98698604703e856012d88f363e8c1c4871c3120e951dbbd46d40999dc744fe0bd15bf8e14c675419dbc1a88e85
+DIST firefox-103.0-szl.xpi 508459 BLAKE2B 
09d32fb4e47512881535a167d4a5296b82001e250fefffe36a9d560d6bdc33f958673c90895009e13abf7632dc02dd4ee98b9df390422050ac9257890c17f52b
 SHA512 
bd456e0b6cf17f20de93fc6336522aed8c2eae9cd2cbfdcea2ae86c28779dd64e60a65d64439e4b38c3f89d77b49d793f8d5ac29f8915ff657323b7c2eeb3230
+DIST firefox-103.0-ta.xpi 510669 BLAKE2B 
669681718b5e0b21026113f002cfbb8a91fd6548a97bde855762722bc58ec86967f2a97eb4fe9658998ec9c8e98746873f7153af8930103303e4c9c75bd2190b
 SHA512 
d85ddb313acd2781b4868ff6a9a91f191da7a41c1d28be528167d59b39bd206f01887bdacf95a9d5f1af483a8dd499eaa71b49b1dd7cd52aeb62ba64411231f2
+DIST firefox-103.0-te.xpi 551777 BLAKE2B 
c0feec32f074c0f730ed0c087f3ad5af96ef688f9bfe4ae1068117e80f8f77f41e59b167a3a29f389ebec26ab627b69d080620d4b1acbc5fdfc504348b9fa95b
 SHA512 
2bef973f42f44fabe1d280c6f2c0f0061d910f06f2d015750366f480a8e98afae5bf0b23db2d4ed765fd6827a34d9a5e6e8711f80b5af54178182fff81b48d41
+DIST firefox-103.0-th.xpi 610634 BLAKE2B 
1ef6900e8bbdcf012c1230a588e4452bd352d7d8a5d9238e251f09d3deab77fd18327d5ebea422cace5ec8b326f2a28a4f95a01f26f746ade6a78085a0a56432
 SHA512 
91aeeb628b71c309ea9c838975a4f235188d61144bc334550cfc0ee77f8527d18c75d390cf2fd2c890122cb09fe5d361149aa9ee4e839f2cba53d21e726056a6
+DIST firefox-103.0-tl.xpi 518725 BLAKE2B 
2dc449dae967fe01ea0bb2a3ce530940cb961ada3613c8ddd63423df9d654aa21ea4100ee7e824358072c80797b1b3833e1603c2d292ca583cf5db7e174c2338
 SHA512 
fd3e3d822ef987eb6a2bef1af06d5b532b02bfab9f30b2a943303dff94e035e4e00cc4a0b0894684e0bbd166ad93f1660b39a198c21e52e455a2c8939d552302
+DIST firefox-103.0-tr.xpi 555670 BLAKE2B 
b94e7df7dc36fc1ce95054d9b7e5f98c776ebad41c0732c3ad04cb1ed5867fe48287ac34b770b17a82ab65fb93e445da57fe0995b150fcef9e7c2bad45e7d989
 SHA512 
d7fe1c053f904e3ce278ffac760c3efdd280954e7ba923094e2e646a51fe8aafc432a1e1764259d6f4a69f57713b35e97d6a86ef140a43d31a289d2cbf239864
+DIST firefox-103.0-trs.xpi 488884 BLAKE2B 
9067507b2929b91f2038640b5685f3111b27ccfa612fd575e4c794678a1bd1bf714b8ae6e35f6c1448e13c78f73c0175f47b9c7e18da1139ac756fd63527ccdb
 SHA512 
f5ec6c01fbf0d951e851a794ccccad3909a7c8ff46aa8af19a4068acfeb1843985d801aa355130d52e37c1050ec4746a8042010bfc26c9dbda89a93bde786e3a
+DIST firefox-103.0-uk.xpi 623499 BLAKE2B 
0964ea78a573d514a27e398e819a0e5b7d4efee7c55daa26b2416deef2afe064d950b34c8c4aeefe5161b0268e4aa3b5929fab410e53460d59425c45ad699d01
 SHA512 
f55a1149c6f117317ea2b57841818b2281860d917b4a3e5c6783820443eb2d2a092654fabfcd07b47fcdbd6d0ea2e5545e31d833b795560b4301ecbd47351e74
+DIST firefox-103.0-ur.xpi 558759 BLAKE2B 
19f8c0c4fa9fd3d2ad2b9ff1b71b13d446fbc0228450ee0e5bf5b691fcdc2ed7f2c78d7b56103ff123bbb12a0b1a9c29e9d8557508f5fcccca10092775eaa368
 SHA512 
4365a741d6703032ad87af674de9840c6b5648bbfee75a4714c039a0fb34d390e5a4f9158c64b45adab7186b0a8ced81c73242832e1eef0359bc869a87986821
+DIST firefox-103.0-uz.xpi 478414 BLAKE2B 
37c096e036ee43b8208394e5b46e8a3e364321e8788a488fcf735c86f6c118a1a75c899e45af726818d14b9a31f0e75611e8d279b6ac85b76b22839178bc1def
 SHA512 
9791dd946560239a0bd788e9595ea5f3b3d7698dbe75aaf6e3a60a0eb72cd269dcd30aaef4018c5cde03f2897d7bf1e17cce267869119086b87f89495f9d795d
+DIST firefox-103.0-vi.xpi 576268 BLAKE2B 
c1d15f1c5997414bd966b1e4e30519814170c71f4ceecf94eaafe0a71733e6caa4bd41e58494f132997e3111e213aa96a26d3708cff7b1aaf4d099873ea231ea
 SHA512 
3dd86163abcab3f081fda8845441d43aa51d4dfdfab1158c32504289c7e71d80fada058e6cc223843dada71464e236dd1a044411919b918ff0a5288a5a2c3d4e
+DIST firefox-103.0-xh.xpi 429255 BLAKE2B 
939711d49643893b976cc5aae107150e20bb241cf607b984fd5270161ff7738bca1302d4e722f1f7d0bce4b305e87ab223d9494e0806657380cd96367f9fe74c
 SHA512 
7bbbd031be037b13f327bbf35314e8d1539589251abc830695b0e5d9938a968bed449202e7d3e77139303ff920d948e3313432f9b27dda118f15c3ad86cfe795
+DIST firefox-103.0-zh-CN.xpi 577420 BLAKE2B 
00a60f769b3cb57ab9afc2465ee7b5eb90d53ac624aa4276397cb0fb41df5e6e17f55297940d686ca7c1eb453ad85d65b8c1a5138583ea4e358672f7098ccdc3
 SHA512 
8a45b12ff2a46265f4a7838417abc3afc1e8f23c32dc7cff3304d3812d575f914bcd4affe0a8240a92cce7ca42e4a61a5b7d1a79505a7f5792e69fd52b54b7fc
+DIST firefox-103.0-zh-TW.xpi 578009 BLAKE2B 
d5ce598183b1e8fe76d96ac291b7bfa4f15d19e8abe5f048e28c5d6e7ab2db62c255902fbde43ab65342f6c1933246e3d284f8818f8b3be7b08c22bdcc4f5ff9
 SHA512 
17591afa03fda1ce3212a27f1521327f96607a8705d8354002f7c30f108d46adc7d9f1ed56c9aebf3a92f08e956d77b55d2e76bc4970fa9b1dc75e90719f7211
+DIST firefox-103.0.source.tar.xz 475708060 BLAKE2B 
a8f34699e0cb3a1ffe8823f33484c7646bbc6e2cd16608c74b36b0fa287534beb0aca88008fcb2482737e53edfaa989ebabee53555d2bd06b128fac513733815
 SHA512 
016c2f276fb94e5174626f7d8b1a821b2de0f5a07f8a10f00a7ea4d4285591b0c23dd3ef45306579de79b3dfa99ccc527224c33f3319f61cf088b1f4bd097f9e
 DIST firefox-91.11.0esr-ach.xpi 453206 BLAKE2B 
f639628151e4891ee209548962ca86de34f4ea124703db73ebb14fa266b2fd74282c256b74c8cb9b2f4fb0b4d41998f3d7b3447be4cf6cb45dbb231fe6b57ce4
 SHA512 
515e8424da6d1505480f15451c56363bf72471fa4d0e47b3e43b4cac261b088b82a85ad2f3234edfb8499beabf392e0636b227d0d7cc7285e544b1e2bdcdf395
 DIST firefox-91.11.0esr-af.xpi 426914 BLAKE2B 
1b999eb321f8bf49fc73bfe399030bdc167ba2822ed32e9ebcec3c6648a2c960dc4469a1dc9fc3553db8f3bf65efe5444aaa220bf50fa4d890c89b2542cdf25e
 SHA512 
04bcc68b861a7c9b2e18fc4fdfde0247ff51879f04e8dba9c2998e0cd93ca156f8cf56fb63de63bcf92c56c92da9b7e0379ed0847d251faade20b9e1df968d60
 DIST firefox-91.11.0esr-an.xpi 499896 BLAKE2B 
115adbb6a2a916fb3281c2b352f29b560308fed65dfa7b215e3e2f35f7a90f527a7ef16d6066731cc2f802acf60d6d53f299e2c703d079ea344ff3c6fffe2182
 SHA512 
7f8f56d3334bbecb3be2f780a60304df06313a6d7dbd0fc3af2e6d5b0c93fe787c36f7a4e62364893f53a03815d7845006263b1000db56d817fed8be5903b3fd

diff --git a/www-client/firefox/firefox-103.0.ebuild 
b/www-client/firefox/firefox-103.0.ebuild
new file mode 100644
index 000000000000..61a5b0bb828b
--- /dev/null
+++ b/www-client/firefox/firefox-103.0.ebuild
@@ -0,0 +1,1282 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-103-patches-01j.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 )
+       wayland? ( dbus )
+       wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" pgo? ( X )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       virtual/rust
+       || (
+               (
+                       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="
+       dev-libs/atk
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.80
+       >=dev-libs/nspr-4.34
+       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-0.9.3:=
+               >=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}
+       !www-client/firefox:0
+       !www-client/firefox:esr
+       jack? ( virtual/jack )
+       openh264? ( media-libs/openh264:*[plugin] )
+       pulseaudio? (
+               || (
+                       media-sound/pulseaudio
+                       >=media-sound/apulse-0.1.12-r4
+               )
+       )
+       selinux? ( sec-policy/selinux-mozilla )"
+
+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
+
+               if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+                       && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+                       # bug 792705
+                       eerror "Using GCC 11 to compile firefox is currently 
known to be broken (see bug #792705)."
+                       die "Set USE=clang or select <gcc-11 to build 
${CATEGORY}/${P}."
+               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
+                       # 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
+       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 && ! 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 \
+               --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 
supported 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