commit:     880cdb21cb85a208b5b405c8d7dafb7afe0659be
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 12 08:31:18 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jul 12 08:37:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=880cdb21

www-client/firefox: add 115.0.2

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

 www-client/firefox/Manifest               |  100 ++
 www-client/firefox/firefox-115.0.2.ebuild | 1458 +++++++++++++++++++++++++++++
 2 files changed, 1558 insertions(+)

diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 52e524d746b9..fef7099aeb10 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -497,4 +497,104 @@ DIST firefox-115.0-vi.xpi 631054 BLAKE2B 
78293b383d62796d9731cfa669671c3405faba2
 DIST firefox-115.0-xh.xpi 429450 BLAKE2B 
206183f10758acde849aaddf3ac261c49fc49c274ca643ae46b0609779b18b85391df3a2f3e34b4854f4234860df374c8aadb2711a0220f8414dcd0988c0fd9a
 SHA512 
e696b5a960f12173e6766002f6cb8b743c422ea13d0067ca1c78b6626846fb42216dec1fac536407c3a4466cbc48c25cc7526544537a3be4215882f6beceeb24
 DIST firefox-115.0-zh-CN.xpi 629739 BLAKE2B 
4fdd9f7534512796b5540aa08a0519bebeb12b1d41ebfa6b7669de94a68769b53bbb90535c5b7473f3791378fdd92a7bd3901189dcf93e6a8a5fa437a45ba9bc
 SHA512 
9ba2ccfe09104ee005f39a6171724f0fdfa89d11dac3d1747c77d431513ac4cec1b5cd869ad003f8b07249fdff7bdc335e7596a5326b4e6d738809d1d79a610e
 DIST firefox-115.0-zh-TW.xpi 631510 BLAKE2B 
ceb95485fd162e056a4d02b310d751d3023963d4cd64d11205fd06198ee4757c83601cfa65163ecb2c1868fdf7d8872beb0b1dc491dd4b59fba98330398d8fb0
 SHA512 
afa77b7e710329af3cb1c8b1fd65a42e5c2bac52495a3917047b7fa7e5d813cb4e39d03e649e6aed34449011926cd82baa2c7fa31eefb969f9806c1d9485b052
+DIST firefox-115.0.2-ach.xpi 469325 BLAKE2B 
a2989debc49362fabba6dc6d7d47cb4fb65aeb898e52e45d7ecb7bd7b5343c94600adad3e614f57c14491cc5c62e3dedf38839b8b06fcdf0dc1f62d220953d4b
 SHA512 
373ad7914d4cf2348faa21f8539bbea2583d8e35bc00c647d8c68bfdaf59f67dc9aa413d62d45c1f4ddc120d92e854cec34721d5e4238f3abeb1fda95970c3bb
+DIST firefox-115.0.2-af.xpi 430126 BLAKE2B 
87f2a05edc259b463261be7e6115df4a69facce3b49c766f7b3f55b6f3540ddd4e3c24b880e2f4da054fc5fa004ac7bde1bc6627f9804282e9b28a7e3f0577fa
 SHA512 
2e79fd92f8ef924aae69cfabe86aabaf0cd9aca96e37e651fee5981a22336fed801a490ce0b4cf74e41966a24f88148384eec2b36054b35ec0a5c38b5f055b84
+DIST firefox-115.0.2-an.xpi 514826 BLAKE2B 
32441bf332e8e5aa66c6df851084c6dfb28faa5fa1bd45b46ef6fba15882694d689314109482027402fb8fffe9fc3a037a2ee3a185450096dd339e871b230989
 SHA512 
c462a6e9cd53db577ea705801c4492fd9cf74ce0a218bc13d828591caddc8a9ff1811a0c404bb97ac0a0152abc9e811dd4d7eac285242b7361275c785dec99cf
+DIST firefox-115.0.2-ar.xpi 583866 BLAKE2B 
63bedd4422ab32507b140d75cd4a2ffface755e05e517ede985a33e7527bee3b177cd5b9d9b528031ab4b3f1bfd114282f07a4be28f0460c02cd8a2f23a619e1
 SHA512 
a77b2633b73a1fdf12a5976393138439ee570827b7d46f4621671af65e0ae6fa4cf43d9750c67754df8d8697faeeb2ab50fa68ed73a91f0f6f89b4067a050bed
+DIST firefox-115.0.2-ast.xpi 496707 BLAKE2B 
f69c446391774c52e5b166602dc7b4fd16ae91a3acbce8161b45016c0152052fcf9e3670953421f0af2932272c9d4cbb0d1d15679a1613a0af4f07950b4c6e2c
 SHA512 
25a593d4acddac84b8c5695e9ca717170edb2a6d767b2e838d796c217ac96bd065f16d49952963d362e8c96af5b03a32b6003fd74f767e0a0435a6ae7b572102
+DIST firefox-115.0.2-az.xpi 501990 BLAKE2B 
9ee2a25ae11d0dc2da4e0601a14bddcd8762c3759312261af473161c67f80908e266ed21f35ea2fcb24adf648b592605741856175077a41f8ccdd93ffa4c4a57
 SHA512 
6afcc1a5c2884b60cc0f92319bd75f881c6b797f1652adab9a66ca5a1df208221eceae5ed925606f166f59885e172697b080cd51db7139e6f89a2d1aada7dcb2
+DIST firefox-115.0.2-be.xpi 686956 BLAKE2B 
95a0635ae23590a8026edb45fff7245b240deccfbac1a7e7b0d3cdbc37f45cb62d5ac4c2dbb657fcfaa06e1a5915763b3037bf174605d113396a901c72520dfd
 SHA512 
3ca9fc2fb5ff86f17a44362e36ab8c73bc6c65063c05b80cb869223b9d65d6ba5d1575ed2d547bfcd5ba206733b2af96ca5802aa8f6a339f2e7c38b1c7e7d1c7
+DIST firefox-115.0.2-bg.xpi 600445 BLAKE2B 
a640ac8eefaff06015cb47c9f7ae92977713d28b9bc73b1525fb680aa175ea4d4ca6ada1427da40cf6b36d71b02cdbcb7d247fcfdb70e786964172dac07da272
 SHA512 
c246ab14009b239a9ad0116762a582b414efd3dc7468f087af56a697de927404ca8e56a972d1607b2782ff58a3278414754437a0a739cd997045c6d86b9a0bfe
+DIST firefox-115.0.2-bn.xpi 593735 BLAKE2B 
67d45b26eb96ead3caaaa6a1ae10f5674abb3b11299e4d8864c0548c62345b1faa535ce3a855db5784d88e9268a024e3e7dd4e10d0f2840e4087af06e5fc6aa8
 SHA512 
3758151cbb3f56806483195f4cfea74abb472af3b2764168c57ac05d5add559711ed338b76f2ae7f8dab50c0a4c65288912d602b9c389dcdebdf1c2f07969916
+DIST firefox-115.0.2-br.xpi 565393 BLAKE2B 
b183ed667e283357579e762e138cf6ca002dd3d37bdcba2e307c30e08cbac9af058be29aac758892bdb285ddef46260df65b5ca0de614be2f95a16bc874fc54b
 SHA512 
f29bc850977cb2aff30c6454374877abddaeea687cf67ce35d0b804954face525a25da7c80984cf09e052e4566c908722cd29266a0b8c468668eeefb4cea5f65
+DIST firefox-115.0.2-bs.xpi 474036 BLAKE2B 
0ec155ca400736938631c25cb37eebbaf6c4643dcab6e8f01a679f81609c8940f14ac782adc967fa3b57c07d546eb5627ee638453a98a3b60498f3538b764065
 SHA512 
576f31e6914d718fc4df365f7ed1d8308a4f0ecda979a4a6b8410d96cc77154d2dd135c360ee8b313f2a442bbe7cec6cfc6c862d38eb73464125cf91fad76aa0
+DIST firefox-115.0.2-ca-valencia.xpi 554623 BLAKE2B 
409f82c2f25580637b909e71e0ecd6e4535b2c54ee61e53cc2ee00a0e88e9372ba1404a6448c4e9e4fa35cafa416a4702c8392e660a89fd3f7c8e23ed3b703b9
 SHA512 
2daf6d4a6f581274e9afe7535af2ae0708e2e12d5c25bb03a70471e1a284961465913350e8c7f5877a3717569fd220c308e08500d22ef00f9d3ed0cc2b5c456f
+DIST firefox-115.0.2-ca.xpi 576657 BLAKE2B 
92cab038b49a04af05497768681e280674bf1aa30acf46cdcccc4baf9bd3fcf847f62cbac3fa1374a572b4344e10826c5701c67f258ad6f95a9a504adf2bed6a
 SHA512 
09a909f5288ce7042e990cc1126a1ef3f1576c689966bec773190bddca457da0ec4552170ce53ed6fdcb54071480da088b552e1ea0e6ccd422aab86bdb72e384
+DIST firefox-115.0.2-cak.xpi 599844 BLAKE2B 
fe73402612e13a60d76a925667fa67e382bbef39c2f47238ee2f47148f71c9268a263e38a68fb0bf1042c25d4f8fc3801cb070e742dc0b49ac783f6b9abd5411
 SHA512 
0060763719f3518313be9d6e3d31389312e20cae45fe4910120f5d1c2d1efd1f5cb19194ee71dbcf830b8c3023750bccde93399cc90a30bddc00224169f09cbd
+DIST firefox-115.0.2-cs.xpi 627667 BLAKE2B 
13a5afc9bf3021c11c63f36e287e2476ee5a470e4ece17bf0b5d094e20efe6ab567c222892ca4f0f4676f656d211ef7916bdf5d3af9c8e49b6badc14bbc4857c
 SHA512 
bf19071bb096882cf6656d838f76ea8e2687b6ec8f7a38c04cb4d2c7592c9396540caff9d04c8c7376629163dc1f42469e5526fd2df416abddf3c411044da97f
+DIST firefox-115.0.2-cy.xpi 598167 BLAKE2B 
4e89041f9beba76d33e42ba29ac81e93e997d617316dd1bbad2e7f15c5ec0bf05b55f22f56bb49257113ee441f9d46abd1dff144fd1263be3040b0ac69f4a061
 SHA512 
a60bd9023a36e56f356fc5d795be23a7ef2aaa78bbc6be68e29f70f6eff8551c6c776f68080dbf88d6501bb4cdfad144f9c14456b632d6b7186a7c0fac83c4e2
+DIST firefox-115.0.2-da.xpi 587172 BLAKE2B 
72df606c66251326c924e1e374368258dcb6d70276986a9312bee6ceeec2037b7d132a637c5c8ffbb891e8cc0d20bb9644c592baa294d7fb26800bebb98fcbf6
 SHA512 
c674ac961295b3726677e261dd48bc45975d97cc835d2af5b8ceda6154368629dbb9c4fa4a51bdfa5571e9025aa58881f7c513966227ba32d94f13ad1632a980
+DIST firefox-115.0.2-de.xpi 608957 BLAKE2B 
23d0a1cb8eb302c9fded9c3e48187b7846a2c3512506798eb8d3f0ca0e3a74c03a5395d78caa913a5b599479152952c6b8c067abb6fe172f230dd480a5b42653
 SHA512 
0d4aacea6bd9a3fd2fb0a65f8deb54f7e01f8e038a7b8ebb357de5c7dd711446f0234160d35de98564288cfafd8b608ac4cf9a845723a47170fb647d1e1cdfdc
+DIST firefox-115.0.2-dsb.xpi 620451 BLAKE2B 
072c4dab4c8b251afef55ee32c86e732e3782ffa871a7515a64197547aaf9696601c6e74e8582f3782e21ea4b0b9374f119f75563c531d8c30903c48ff9e6db4
 SHA512 
d49282c9c94aade87c90702d66274f06a55ab5513cdf045ea785a9dab5f2e0569eaf2bb296702620c6ad10a153b23d11e5927b62adae629167784779ad6db58e
+DIST firefox-115.0.2-el.xpi 703017 BLAKE2B 
e950f5e12e724fabf1131263c7f248dcd80d1e959ceb2458ac25f02b6e7a7666dc0ea46e20b22043ad16320716cd24a45c12f2e51c54c4ee82101a8cf9d0e19a
 SHA512 
a1b608a18d333d7b7a38b7e281007fcd979d8fc61ee2e35a0bc21baa0d341c9f1afe7d712c1ebc3ca7488a68660f747d757a2a5df9927b329af6f36ed9b4ebd5
+DIST firefox-115.0.2-en-CA.xpi 551507 BLAKE2B 
19537f42ab2409578a1f3dbea46dbe027fcf136923e554c0242d28ecdb0812732e563451c0db2f461ff33bad1c309c46a6ed1f2e0ee8dc1c6d99f419d7233c80
 SHA512 
5a568950255cb24f9ed8e97f157108aa6dc939f0f9733f2ee45deabc0d3c2fa57ed42c1302306ac58523889c9eb0d960b47a47e8bc0af0094518395f17390cf0
+DIST firefox-115.0.2-en-GB.xpi 561372 BLAKE2B 
c9ec9a60cf9f0b8f52e50f5b83a6fced6fd6435fb7cfb822e98bf9914a843495f38191214f3734257732f0876eac7ab74bd8f4664b281dc23965457558d77294
 SHA512 
9dbc16cfc19e0e40eae29a721261ebbfdfab8861bcf9abf05f1048d73567a2c6608b52cbb95128a876f8784de13cf91441da0af2196445f62c008b0405d9faab
+DIST firefox-115.0.2-eo.xpi 583959 BLAKE2B 
76f240466b7bb3940241a84fc0be313abb039dddff30b7311a601486caee68ffd2834cdaceeef9c8c3220af67d0d774fc72a3c57c14d29c6676e0e86f5068487
 SHA512 
7c0bccf25d24ce3a54b2aea37cfea33139d87daaa5814ee450e9b72e1b0cefa72216aa914d791c7bca6d22446bc84642b6d65faaa24692c7ef18b1d2b4e158f3
+DIST firefox-115.0.2-es-AR.xpi 602639 BLAKE2B 
4f0229d3c3f686b461a44857861cac71222e4dfd5704cfa4fa53e447204096386c4e0bfd81d216447880a55174f72b6000ea1c408356a5ab2098614954c1c55c
 SHA512 
0f72ab773cd0fd029babb4b8616a2c1f2bf298acc0a6d684b7c111b3596dfc36963f5e84062034b5b54a24f4418e7807c235d42319d5e285bf2f1065b5280bdf
+DIST firefox-115.0.2-es-CL.xpi 601312 BLAKE2B 
1aa8caa081a2c8e466e97e59c89279f8fb998ad588cfb0a494e8846c7a7daf1190436940c2218ff96a52c02285c47878c2aeee828f52c64b893005f3c8189fa4
 SHA512 
3f7a9b722cf70eb8992ed41f79eb8343670227948010aeb603981acfc077e189502201e9ffe93520134bf4a20087d02c4803589f79bdefc888f0d0e7a272859a
+DIST firefox-115.0.2-es-ES.xpi 595249 BLAKE2B 
73db55faeffd60a1c32455ec72c6d8c041638ac29b55d7c3a2e7af295f34a1202037115617f3e23c36f325024029d244c5c5292d322daa9c9da71557040a16e0
 SHA512 
2e5d37fcbd4e190e9fd8a1661f220a413e67551f78eef161d29ce88ac1cf23e655eead773c12e811194f4b4627590cfe24e0741b3a9946482af479bc4008c271
+DIST firefox-115.0.2-es-MX.xpi 600973 BLAKE2B 
4e5a336b614e813e0d7509f01bf8d3fe928ece17d7c67af4316d0bbd4125587c3c5a7f41aae644251267cf789573e99436b2d78bdc885916821e8a8116bd8177
 SHA512 
b627379565450e69cd5c589b10844d4020d786a5887f77e33d0c49c13a4caa9b1110b2f1970531811663ce63b7a680dcaca0007fe9f2dd03d6bb5152d4cf4519
+DIST firefox-115.0.2-et.xpi 548992 BLAKE2B 
0c37cd9113383074c4ce2d3a13fd38fd4f263373fd717669b5b28db36df017263af1546962b58f12113d0205323d941679cfe8963b6e678596ae9ee127652473
 SHA512 
f7928347a5d1ed4e87807a7bdb5a213cc27110d4e438ff2ef3e61bfb03e4826249a6cb6cfbe6d6d4ce34d72e661ddb15d460d15dc5914ce0a55837ffb368a721
+DIST firefox-115.0.2-eu.xpi 586432 BLAKE2B 
046bdcf7fd6d480fd5669e845aea41a90cc42db223c685c608cf6724c817b00359ed2c7fc3b78fdd177c472fdd2c8482e60b98b60ea8e89feea53b111864f7b5
 SHA512 
23035d8561e8dac308aa4bddae742967ee8d8bdb21ee7ad8b038c28c4cc04f0c2113c28a7a503e744c1335cb8aa761721b0c60717786df07de47ad1b64beaeb6
+DIST firefox-115.0.2-fa.xpi 601519 BLAKE2B 
bfb1e114636b6e9c89055b10e475c15891e68ca006e40f9c9dc8e4d281b1f8fb8c1321f6ccf89793e9f9b14142f0c9115a17599a625a53a0b58c12f231261c36
 SHA512 
9dea16dbb2de3a54e598c8a894e3fafae385115b952fe15090cf6964acbc91a583802194b17fd012e219cb360026dd14ce0fdfdf8f1b1235d53d5a41e3d2d919
+DIST firefox-115.0.2-ff.xpi 485924 BLAKE2B 
07a350d2a6d10eb5bd241971d184d8bfeb674e441d899324c4a2792eafacd36cf32d96ca0db83f877668d777d9c607b1ddf5a1f3a22bf5237a03455e888d82fd
 SHA512 
3a65e4a9af80c78060e8585dbf17e4c71b17f1bcdf4e80d83be8c8edf4851e11b0591206206fd1d40af303adf6d0611ca58f900a35cbd52e2cba36392baa47ca
+DIST firefox-115.0.2-fi.xpi 586044 BLAKE2B 
4825eaf6c606f48ed4c30ec9d3414a638d2ef284aea7381a8db3937d7495f03453e5d4e43c3a8ab62790fc6b446904ca79cee184099e42e2c9a5c826b62a1c5d
 SHA512 
019c0c62d97935363cd1c4491d1f4706746db85acdcefbc62d2c894a817a0b91119a8c205710ceeeccefa626b5315e3d28d035357c73ba99ae39007bf780a67f
+DIST firefox-115.0.2-fr.xpi 615065 BLAKE2B 
1b4c52b298f64873968e702f6869dc5afbb152883111c6a41e5c2b7e85522aa39458027bbdaa4d4b1e574e3ae2b76f10190c1ed980b65952b1d2fa50b09549d3
 SHA512 
cb21fc64c995f81d3bd63530000ea93d7a754afeda0a1186727827cd581979ce1a44d8af6c2675583ef378dd414542d02cd70dd39b9563f1f6d98bfe51bdd4ad
+DIST firefox-115.0.2-fur.xpi 606893 BLAKE2B 
e70c153aa38a9c05c100ff4dde4e2b1d698fae75b67262b467606aa06ab6b5686f699dd21c555ebc8bea1e98cf2b123c12754fcdbce12e1a95d67e9512700a09
 SHA512 
df49d308abea65372bbb70e9ed1754400f0e1d698d4f10d4534b297ca3436898ee8829bf207d4d390f7e67ee11874d2fa10be843d912c5a106c924038bcd6295
+DIST firefox-115.0.2-fy-NL.xpi 598092 BLAKE2B 
25ebfcf9ea937df000f8d6f769090bf2daac98ba6cea58bc521d44a29143236c833fa8f33d61bb1236a9d7b5457726704bc65528eac895ec115d96a51999332c
 SHA512 
3e62903a42e0ef7f1e1d505682d2265b6965c665e91b6bae3f9e0bc41db8578db927b23a71d5d2368de8cdf89acd64a72b775380278b65905f41d078d54c4a86
+DIST firefox-115.0.2-ga-IE.xpi 482378 BLAKE2B 
a1c441657c2d54888bb0fd7e510c6468dc5ebd22f6d083f80c988e49dbcec2ef0a0c0be9c708852aa0b6080a6914cc6960aec5214a77fbb66eebfd6a7e808371
 SHA512 
c109a715d26fedf0988bde2bc59d71ad777daa25ff72b52cfb8ce618e5d40ffd8d10bbd21fda392f48db41e7ca7b0ff74cb6aed2141e25418e3bfacc0307fe5f
+DIST firefox-115.0.2-gd.xpi 603644 BLAKE2B 
701b6f55ec2c4f057fca46bc8cebb5620450c258fbd90dc8ba410eb50826bea84711d38d329a1630f9e12ad84703e823e3934d37083f8a5d43c56a4d00359c29
 SHA512 
0cf517f49731ff84155d107f7a4395e831472f2e6e59add23f3bb1015ae407f4aabe20d3b0d2cdaa67681d5787d4a3c9d6e2ee62f64624b69ba1b7bb517cbe2a
+DIST firefox-115.0.2-gl.xpi 598452 BLAKE2B 
703ad7847e2d05f91f0c4b7eb3679a3089c2a88bb7227ec92626b72b3e7cde703e929109e987cf8f9148472b8322468e4c38ecd2e88f83a9b1e81166e268ed64
 SHA512 
f8081ff7351dab63c57cdd01f8c0ac4bc336b938e459fb814e2b2f33d7358346155ed7ec639df2f704b1478c6fe7c549173d749d02ae797b0c8fad199e365989
+DIST firefox-115.0.2-gn.xpi 612070 BLAKE2B 
35a832f0d83bf0b3415f5b7b9aa1cec156e2512d3a623d6a4c71015d7d3dc4b5d42f84ae6dda8339d2e0d72739d802675ad5f41666b8102ba88ed26635aba122
 SHA512 
704db298cb8ac2e4a4be1e7bc97d40af2f6dae2afd5c8d95a9d2664ebe330b3b7afb003d4af68e24cad1886a85c4b9ce4c8e4c98d6bbf44dbd57257c56f4a7c7
+DIST firefox-115.0.2-gu-IN.xpi 541878 BLAKE2B 
94b810381d77c70c29b62d2c7c74ca0aa2e196cc18dd5f76a5dcd41cd0641841c7955e339e5fd6bd8ec540f084f34a17c624c6fa5ea118eba1b79a5aa898fe53
 SHA512 
806320d55b9ddf4d6553e33dafa02f59077e98195730817f610b7141562e6647d8b206464be090e4506e1ce4471c5db1e180bef555db02edd6199b79b4ee522b
+DIST firefox-115.0.2-he.xpi 608008 BLAKE2B 
9bf87beab18def740dd36c4f8252de0ce4e98b15511030b7599def08d215e5e97a94835048e687630bfdad4c77090004aa2d4edcb49a0863e57e04a7f1e63256
 SHA512 
45cace25db06c29ecc71f1d5c36549a19482791e1adb48a47337a9a0fe83440915f0c69276c70c8fd3d76813f87afb9b73d2fc0528d3b7a01376d44cb5421725
+DIST firefox-115.0.2-hi-IN.xpi 571178 BLAKE2B 
89075cc02cf73326a00316506de53f4a2373c727021680e844186784d5c3be5bc4fb95f49b355a8e8f1584ca2478480579aaf50c983f682fff31d56958b2c1b7
 SHA512 
04790eb258b6cff286ab21e49d03ab337c2acdffef867ab1da26027bb88900505a035f760ee10933bcfcb4012c9b5a8683882b2565531eafae327537efa10203
+DIST firefox-115.0.2-hr.xpi 564502 BLAKE2B 
c8a5285986d56cf25a4b258167c57cb818c256551549d62802adf99e08e7ae25955a2a53278c08f7002d73db147be37adbfa1e16f5e0abfea3f85a1a2e36d18c
 SHA512 
2f6657adb3c2f07f8019038e4b2e0884d7cfdb6dfcd5af564c55ebbecb696d6bedc9eb9b1a0f00b3b7b11803bb6723b6bb4cac18be2ce820121582bf143a1bea
+DIST firefox-115.0.2-hsb.xpi 620455 BLAKE2B 
532263be4501e6c81c36e07bc9bcbde160b71608b8258facc90902e9102882ef5cebd4dbf1b9a8e8362469ee7112db3d421e227984dd520ee7bd8b40af9e8f49
 SHA512 
bd7a9b33a47ccbe18422f4001d7d3bd26de2f4fc7c8d4df5899b052bdf5dba6288f1c2aa2d5588ceb21207cb8f580082ae4621ca0c9126b1ba0847ae5cb3508b
+DIST firefox-115.0.2-hu.xpi 623869 BLAKE2B 
2ce5cc06c7c9f468d25d4fecb32326492869e9a13ae4c28bcfb47f4c6f50f367f7683c0b3d022c9887f499ad7bd818356bd7437a7d428604d73669cab5987c26
 SHA512 
6a514ecbdba45d0eba46b2b15c163d194ed26047f823ecb8926c36ead2fa3ee7a4d67f7b6b7899f8d60142f0df05c3b30180f0e576bf8fbabf0e57f8a8961af8
+DIST firefox-115.0.2-hy-AM.xpi 614932 BLAKE2B 
42d59371799f66a3af652c6bf4906720623854031d83fba4b59858a29eb7ebb0205e00296464a11a312029256628efd152f86781161620db1c495f741b1ee735
 SHA512 
60ce4ab8bba5df45076b49825c36c7ad031e8763ebe444a52ff1e60155a10e2db488c775d41f345a098054bbcdf20f9c10c14eb7f795accff2717c2cf69c0341
+DIST firefox-115.0.2-ia.xpi 585626 BLAKE2B 
b80a17e165fde31d5717ad727974d0d6e8d5085d80f355f7fef4ed2a39851e78c4dd1c4567c7a14683cc04fca13d9cef40a16c90e8e789eec59fd63c6cd55e92
 SHA512 
9bc9f1ba0145467af8e576c054d4d14f6e7ec1cd2d0973ec833783c9325e1d9f9766d88dd95149d0b24246372f63ce03720f4b20b18c2927d0cc396839afecee
+DIST firefox-115.0.2-id.xpi 571364 BLAKE2B 
eb410dfe06827e40b366e1451c383a9c85ec840f1d4a70ee6cbadf0fd892605bd6de29df636c2a0ac7a9fd8a915589cfb299e7f8a6a136a2a71233d22ad975f6
 SHA512 
5ee61e5132a41f097ed1baa656491472127b532245c0a1d392005545e12d4d19a7b9de7a3659cca008f7c49fff105015e02067597a1c1ded50079017bffbc9a6
+DIST firefox-115.0.2-is.xpi 593531 BLAKE2B 
ca271d1f7e307d70c311d2a197dbfce2d811ab716944b8e33e8a53c95f072aa75d73c14809f802aa67d079641c36b1666e2c8d124edea795e6d43ebc6f113875
 SHA512 
e3116f989453acc4290bafda837da1cc7fb3d3ea722a7644a49ea43906ed7c7981fc46928a27a8f0a8fb9eafccdcbbc2dd65500a45535251a80600d8d7d0d46f
+DIST firefox-115.0.2-it.xpi 536403 BLAKE2B 
f58d3db9ca072d74215af30084595be32afbd62a04942d7bb770f455be862211160b675a6373b97c628f35026072f1872011992d2f5767a26ba87d57da04f196
 SHA512 
b433fad7dd79f9ef0a7991fc2792275b9e46441d67f4cd3c2f2b5623917de14f586f7fe6d0edcb3572cd4e457fa7c117433f4eca534a6178f74f33397a61a511
+DIST firefox-115.0.2-ja.xpi 648087 BLAKE2B 
5b6415626654ca2b94961989bbe0301c55d41157f92c8002b466523275d596c4aaed409da148e06ceb24b121a4447ffc40f70b8b3fcfb4373804bf89d5bdf214
 SHA512 
54960e93304c79f092d7b5e47f88e47df4786cfd491d7c9ce808e1d6ce62db9a0daa1b473e7a4176c86481e204dda3ec15be2d6c8e32241f9458f283e23bfc00
+DIST firefox-115.0.2-ka.xpi 651358 BLAKE2B 
4c5f2a9ad96a0591cebe10fabd07ec1971563f47df5b3a5722f2d21df4a602ac47336ac02fa4908aa1af144b218d2748d159f07a60ab09d9041967f1093fbcf0
 SHA512 
1eb62092a36f637b1f7392917df9d17249e57a0327ae41267dd9325c3eb5338f8b68eb2884029fbe65e14149a020c5bea111c7c4e3582f113b284727080ba1a8
+DIST firefox-115.0.2-kab.xpi 598573 BLAKE2B 
e063ada93e0ae33690ca1b24029b9b25629505d4a034c2b4f7f928e39afb54c12dbe6f2041a5f49f01d72e53a196dec5cce4be2fecea54deff128024c887538d
 SHA512 
eb31a2e7249e5d67c0dea8cad1d7c6f7e7d97da350145285f82ef4a238420cdcafbad851a469413d1c70264928b2e5a61720e877d5334e3628c060d4a275a22a
+DIST firefox-115.0.2-kk.xpi 674099 BLAKE2B 
b71ef3b9e08f6a7fc4cd94bacd510454d24536fd79b476d16e828403592883a44bd56cc11b740175bd325a0cd56aae249da577a23952b78e9a3a20602def3053
 SHA512 
5ed5d4132ead0bfa8fb83d2beaff819c2cb976ad5eeb94a6e94abd373a192d8545d5123fb3d9aafbf3a12f3e82e9912501c2d0fcf83503bf2bb27c0e1e3f2ceb
+DIST firefox-115.0.2-km.xpi 543687 BLAKE2B 
c9bf1c03a40f45e1c9de6e6f4c31acc2f3194576cd93cce0704b2a61f10560f75a31c912e78a1ab69a835a4d1bb7bc8e12a6cc4110f3347c1ef31dc82c08d327
 SHA512 
0f64c1a9b1cd29c4c8c5781f3db5f8a3a532562791a6c0a91aa3b3649721da7493261b0e3498a1480c5cc809490f55bf86939f09f36e0b8bf77c33189250b5b3
+DIST firefox-115.0.2-kn.xpi 508139 BLAKE2B 
2eb74980b827b283d7429f9c3f2d4031c25a69baf9083918b18a4b8391dcb28b2e1f80140e7e389e150338d6d0848abfd176d719cca7c635d4775feb6bb1d87b
 SHA512 
d73872fa9c3a009dcb2a53a168cda5d5d19a85c43fdb8016a6bb6c71fec3237d126a04952147b3d8eaabc41d89f93c70fe22264e83492c280915b5e4631b9518
+DIST firefox-115.0.2-ko.xpi 634989 BLAKE2B 
d11df0bb37c8f44612883b2f52e4b7b39b30d26bf89e419e56217ab522581158668ae40eab00ffbb2c46db979d63e5022e53fe69a4a91773a3043d1e0a5dcecb
 SHA512 
0fb8ad2bebdf174597c7e9a1ccb74b5351c6dcbf9267b17b7d891b80ce13d3d0f1f3e3edfe3f7dcb374e42ff20b8ca00980e42715be61fed7ddf1d9b0840a11c
+DIST firefox-115.0.2-lij.xpi 493481 BLAKE2B 
1ff7fc073e057f95b7cce18f55a219396d125429eb5c73002caabd37ea6eb87434df11f3135ee3c23cee0165fbc5e5007ecf8a503e08309592cb2fef32d1d527
 SHA512 
2b68b75fc91b9f0286e804616f00d97b40e02be14d4ba7f874e27cf47c6d1f7bb47863eb8e776b859cfaa91d339c55b04fac3b1106084076c9a41412b738de40
+DIST firefox-115.0.2-lt.xpi 583774 BLAKE2B 
c1d7f2a4af6e4c599d7f472c82fa95964e5641fd8c7f6a54c3e2b0fef41406be7d61ab6968f8786a4541768abbeafa38942d42ccb2d7dd5f1cf8ebd4d70ebdec
 SHA512 
4f5272a28efc6fe5657a6b56a6e86291bcd8fbfde65fd165ffd75aa6ae75b07c9c0c2a7dac69d2ece739bf5e00fe1c0b7970c68a92a8a64abb0002fafe627233
+DIST firefox-115.0.2-lv.xpi 481435 BLAKE2B 
e644e0f10ff3bfb638ae127655bc7f121b445a1cc3cd6f31bd8b5210238ccd1703f68cecb46d49bd5d9cb1471a41091ff5e309cd2a6d2474d7340effddbaf425
 SHA512 
6a83c38f0d784e248fe6ec38878a4e4e8322e1fd555b174e74aaf36a3cdc6ce5c601e1e80ef184d219bcc1b7e277f72dc3bc915e3526eb4573e7de1971a74a08
+DIST firefox-115.0.2-mk.xpi 496390 BLAKE2B 
4f54dc80cdc04f0151ebaa3bea9d16a2de6a9bf26976f87cbdf6d10189e2d1d98c11fb31ec62daf3035021c099c28d2bac6d461d95872603b8825ae8461f9be4
 SHA512 
ff6675271cc64aa1952064e92561cf5729b7f00e4307602d126a593b2da595b0253bf6fceaf57afa57e6e11901424883d3f681afe297a8f34fbe3a6cce173f23
+DIST firefox-115.0.2-mr.xpi 544675 BLAKE2B 
1e92a85f609da23885bd2b6e2ced69e8afc9a6e461e5e4d8a4723395d0d6f38b4a14d7beb92885b96c87c5c51182270efecf07585b58c3bcaabe9c9bc4345ab4
 SHA512 
f3bdf6bba16405da1c9330297de126e93a2e9606e4eb591b8776e5379324abdba5bc9cb923f286ef34c7b7fba51ab6d2f7033f2094f3fdd1ed9ebb1303125f0f
+DIST firefox-115.0.2-ms.xpi 461878 BLAKE2B 
c5c45396738529d31c538d7524354ec91d4be846930a0c0979900266602f579541f2bee5c8aa648b3013f3fc2ab3068cd3a892d1864080a900602a0f54d6bc2f
 SHA512 
56047c7854896e9111ce1ac0a461193fb6fe8db2a6cc81cb0d497b45588ab0d67171e9394f1b1564cb4f0265313ffb23e50b575131eaff19a598d6c2cc1b7708
+DIST firefox-115.0.2-my.xpi 529053 BLAKE2B 
65dd164728b8fdb3be329d8388405c51b57d8617dbafed078d8574cfb8e0faa8d9a1c0e22757e61a11d5aa62518261c1618e7a2135fa751b8073a398cf735cdd
 SHA512 
053d1f49ef5623426ece6eebccdd87aecf2cbf4b8490d471e6ce37d4debdc9d1678cbfe820784b79952dfdfea6d264ff8a69ef1d4f5a930b088e3698955b224a
+DIST firefox-115.0.2-nb-NO.xpi 582793 BLAKE2B 
8c4d139e424054462657889f55a65291d22bd57213b99f928431835d380b5c1f1a8b20d7611f58e0be7bbc3e743c47b46d59289880cf7b2e3cd9c4c9d12f7076
 SHA512 
8ba35aa456a4ac062a9d08cebc0e31a16934263f7a1cfcd077e192d5ce12cb3c5998eff7877046427fbb957a6af886371d39ac7a1ec2bd7077781578a73290cf
+DIST firefox-115.0.2-ne-NP.xpi 496638 BLAKE2B 
2d28a4d74a417de9b355e21c455285b264cf13ac137c8e5235531ea50cc359d8a75bee0be7a4b66804380b8b98a5da3ac6cbf1ad005ebe534414849d0f717584
 SHA512 
5c76db88eaa89fc146c0a28a12c3f4f615037bff848f65b839bb273f34d0830b8ee740bf1273c5cc8facf8519caae97bda563f5ff3e422269f9212537eb22e67
+DIST firefox-115.0.2-nl.xpi 591933 BLAKE2B 
c33268fb5eb867999b5275e7cd3ad6f0fae3b534ffeb1c3bb53a0b82cf03d3e1a6aff374a99b46a11034546a920f86f69a313aec78a3715ea9f453bbfa2120d4
 SHA512 
c1ef253f70a82ab1a49d83da5a78e4e1a1b36444dec5c30f846c12d89b0d6c84ee332d5774eff0ad10cfe104fe92d2bcce6c5ade195210371e3adeac2b0769b4
+DIST firefox-115.0.2-nn-NO.xpi 585564 BLAKE2B 
ce5d2022f1b9458f0b0b36d67e182a3dc6d77927e83cb315db330abae1a12e3902b49efc4f9d3350b39f93a6cb48c33c471e622a9579faecd126998697461aea
 SHA512 
12dab0e4a5dba09c25b3d57313460a6b210d7b95c4c14c3222c740e5e8a2a692aab4f5ab4c753391c92a720c04b73b840171ed7b5e8e7865f70aea5bcdce227b
+DIST firefox-115.0.2-oc.xpi 606885 BLAKE2B 
f37b67625d39fd15eca7a558d94fc39266441dd5c5bef40b58dacd50ac4a82d26c982e94f3bddb7dda2e763e047ec956987053967c52638610965d3de1195c2d
 SHA512 
8dfb54e7e2b47120a91d3a30f35ef9fd580bed48a4b74f8a2c0c9a414ebc6af244278f301cc45ca894436684a3712c4a609242b12b646aa7ca34b42f54eb621f
+DIST firefox-115.0.2-pa-IN.xpi 665207 BLAKE2B 
90a20eab9d087d30089ab5b101692106ed8468e06f255d9a741db22caa8280f080c49623b84786d605eb049a3bc9bdabb3eeb1b7a39080290d3db907e86165d1
 SHA512 
57e343fec82fbfc3a4ef1b1ba2c655ede756f7b2b1d45705110c5484a960aa4fd7260d4741eb70abb0de2c6dea6c83dc374836f07786bd38a79901d131ef08a7
+DIST firefox-115.0.2-pl.xpi 617012 BLAKE2B 
f845086b34edacc47f2cb542f245998b6566a6922696fae9548bb9e8e6c1ae46659ee30c9ed6ad958ea3bb0ea93fc0319ce6047160f6d8dc5bb6405cd18d72e4
 SHA512 
2447c08f02bd33026768cc738e2310e5ae0464307dcbe581bcf83de734c8fc24fb20c0140072c4b80e8f35dc9ff8a34ad45d5eb41cc2f6619007624a420b3009
+DIST firefox-115.0.2-pt-BR.xpi 596732 BLAKE2B 
2e47dcbc7c008a3ecd61e117106c2bf39c3dbbcfd28e6ab2d60a6c619edc7ca5f895969132e391a3a9492a922b7ee50b6b5e63de17e6c51f4ed41ec85cffb87b
 SHA512 
0da0ce733270d1d40c95f4eb90655efe95ff2d22e6ac882391b442fc0aea1654c2b0c683bed1c57ba52ab54539af50de376be77b9df5613ffd6cf93aa44ac313
+DIST firefox-115.0.2-pt-PT.xpi 598863 BLAKE2B 
0c5d3ac8bf414457e70d8bdcce6673e778082ca784b8136bb2b4aa1e0007dfcfb4bcd12e399cd5f7d2b07569b56ebc9d7fdd0ff0618fabb4342db816d761f900
 SHA512 
348f3431f94c99c0f774204da106a0186c041114fcbaa9c865e9b028079e8726f09d5d46d75dbd814df3989cc0f93ec765e31f616549148d1b92f592978ed491
+DIST firefox-115.0.2-rm.xpi 592653 BLAKE2B 
aeab853de10dc3f47bfd76cc355710e27f0c1a5e63eb506e15d1380d6ffa710aa62c5ffb9fdb195963621d8ebaa68b350c6222039c17fbab40eed773cd8965d1
 SHA512 
728f33814d9a358012091be24ecc7e60c333ada93722f1c8836423a87957a8a427951c0305ddc850c41ad1263de5de9b5115f4540ba9b1286cd923546983c571
+DIST firefox-115.0.2-ro.xpi 557000 BLAKE2B 
09eb80370f7b9f37885cf5d51d6fdf783ba0a524219aa707f85fe1f1f620a4958e49449dbe228eaea5ee8edea7fd118bd930bfea81e07a49757f8f2af7ad6b78
 SHA512 
adf99f33fa74fe79f68ea05b7f64486e9ce0ee329e36ef3d9558a897642f33e859011ec638ca50e02a54f661bdd3ac10a17812fa3f56bf8a80f662a8d7067933
+DIST firefox-115.0.2-ru.xpi 691641 BLAKE2B 
a5383c6c6e10ca79fe9cbbb626eb1ae5cdbe1c8a3db6f8e37e17bb5358f78c4169d78cc1a19c753936f3811e0fa237925c48eb6d2a2bc93ca019088e5c3b9dc4
 SHA512 
c4fbba17427c069f01f02d4604f605f41c5eafb4630777565090c2c6834a1c0191425014bbaff19ad886d90c51cf8f8de6570260bdab5f3f4462606c6c10a975
+DIST firefox-115.0.2-sc.xpi 567083 BLAKE2B 
ac6e0c2d3f3b3beb35b15b9e5f68ddec713a27e09e5cc1fe78c7831bd503dbeca90dc48a802bb52e4cf9385d604c34c7f25645f75472693a13d7c52e04b28acd
 SHA512 
9233e352a1a6cd44b8b3e96087a6a3ba18aa924a2f78d077d6d1679ce911e06a79ce9eee6246ef9466d8082636bfae7e38f0e323d437586644f097b489d718b9
+DIST firefox-115.0.2-sco.xpi 518348 BLAKE2B 
484d4c714f9d150d71de1373d2ded6163639aa86d93d7b19190d324141c29b546a3890ac9078313a64be50e07f43d110bea2fec9cd22c502846b018cd62b46e5
 SHA512 
ed5ca916f92b8bf09af1ba8dbd0e6164d05cd5f77d6c2b04ad59d75c9a5c9140a82f5aeae8305201788a6e28ea45f08209da4ce42af4f157b3d420d4da203f32
+DIST firefox-115.0.2-si.xpi 593134 BLAKE2B 
e556c5a7e3f87a1750ea0da86a3bc8f7f9e7f100870c385686726c97b234273499189bedebbf20a2b9acebb48488e8ed9aa6d9218e1b89240692fa2eb30e1fa8
 SHA512 
d8e7cecf091a5c11638dd6c773001a832100cf388f8d5a7eea83917ac2b7d74b12262ebd4a90a85f978403f3eb3f7c11b7d6ced19a7895c0f4cb4bcce0eee146
+DIST firefox-115.0.2-sk.xpi 625406 BLAKE2B 
e25723c0556c7625aabab5a6fc8000fcdaa8f6615b4061fdc59a39a8e78403801fe039f63b0efe543f68a78f8b685e366b9d38e305fb5c6b4d61e9e7173c743b
 SHA512 
0073be603a752de4e0065b4337e381d854997c6f3be22867b141fe2840b154793452eae1d68fd4098becf043fe5eb65b61283fc59d8fd433cf794ff69a4fbe2a
+DIST firefox-115.0.2-sl.xpi 596055 BLAKE2B 
b2b9bec22f431acfc10937d54e09c8055c3d2e68ac9ef3ad5d93a4f5a49ac060790950e9f724d540565244ee9aba9d1165fe563d228ac358a215ded493f4f244
 SHA512 
974fbf13d0f81892ccea42c0295625b0f9b0964aa397a5a628838699c70c4454e2b4cec748a800fa874f5e043ed72943cc2817c9b46c09500960c8dbccf5521d
+DIST firefox-115.0.2-son.xpi 432506 BLAKE2B 
d159d2aa59902f13a5544bf77acc00218719da623865fdc1235101afa88ac6c49e80d9eff091db3cd04ff5d30b55a7dee3200270f1194e644cd1b41e5975b10d
 SHA512 
79543f2af6d0202cd3550a007faa68554b1da56a6b21f14e78be756a6eeb18b0634f7d7e575e17e6e96002739c1d59ae16b9885084083a645ac4a6667e3f2dcc
+DIST firefox-115.0.2-sq.xpi 600796 BLAKE2B 
9ff833d4ae555165c1c4c15129f72e014f95dcab6b938ce1facf98aa995991c7f702e1e62e8471e396adf537f65d5038ae4c63178a6a40a85404d10318ecba2e
 SHA512 
6436f525fc46108861f65f5985f8529ddc101aa10ec05170b5f8b5755e41e84cd0d66eb52c0cff5798abcdf495b08cfa95da5d260e2299d14925f67c1bea2573
+DIST firefox-115.0.2-sr.xpi 653902 BLAKE2B 
93938a0afa9d085515b917ae3aac0ac55be1976ec0a3588360147bbabb2b6e5ddff1f4285f5369c67346c635e1d7428e48673e54ab58bb4682a1065d78b71a13
 SHA512 
e8de6cc852238f67d13e70f2839aa80ccaa33ed615912a8fc3c14540b3f0ec48c547add3864e253f3c9d9783ed6789f1145b16a2ef99c3b89d315788857ffd0e
+DIST firefox-115.0.2-sv-SE.xpi 593897 BLAKE2B 
78d4fd7579d92f38c3075ff2b3b6239501c526760da708399aeb1154a8e08902f1a6c851a7cbd5bcfa93d89e203e1c663bfc559a82b73f7e1075907ebb36983b
 SHA512 
a43b21340bf262a139f3ad01baf75e37392619b596a5119aa9505c90b5619614f89293a8a37a8454f76331295dc99ea0e2f778417d6512288fb036957265f60f
+DIST firefox-115.0.2-szl.xpi 534134 BLAKE2B 
88827046938d884c62f1f2c8b9f6a188172a1833ae22201b72949eff6d71a4b9c60afde3b94f5e8407360c239ca73cb2b94805ae531f1bd71623c5041cdab187
 SHA512 
2d18b8ca39f9ba955365e8d59cdedcc6e5f7ea238c7cb36d000a8b739fc0a40b45a14520bfe6039bcd24cdd3efc76e7bc0b19b052e741ebdd578a27a02555ab2
+DIST firefox-115.0.2-ta.xpi 520713 BLAKE2B 
eb9024c0355df9bc49d33aae1b413a67fef1d9a50d1b3df9315a0edc497753a6f944ae57b97abceba94f966d2498c5ca9f4b1e49978cdf0de3a63910f490b85d
 SHA512 
46d0128e3859978a2e389717bcb4ff77b0399d604e38da931d0a3b9625fd2a4ab88b30acff22cc8cef6c457190cfc26a753265afe747693ff25f81602670e2e9
+DIST firefox-115.0.2-te.xpi 570038 BLAKE2B 
a29503eb758dd3862dcef8627370be362cf591043fcb39fc5443ea60305fc7ad5eb4cc4fd9048715f7eb0c107179550571c89082057570898fb7565aebca3a9c
 SHA512 
d077e3d423db5180d51393ddca9b56d4585e0952ae0de86d5f645e9c4083885550164357a1fa000fe78a9fe2b4e219321a31694062526044e2a6605ed2b02335
+DIST firefox-115.0.2-th.xpi 667035 BLAKE2B 
5255e412daa96efb0c5e1aa3020fd1c36137e3e842bfb0c3c5002119567f9818bf04dd0e775ac5e7ce461d8ac65c84be34d0dccfc52168aa1a6bb44b92e04ae0
 SHA512 
9f2da5722adfae75f3bf07d3395b2c87bed5ee585c133b285bf834549810f97c734e413dc786e1d71e8c85cd59d31c907f1c2d5a25a358b0fc66e6dcb999b4ba
+DIST firefox-115.0.2-tl.xpi 541134 BLAKE2B 
2eb6d6d9ee41ceaead4fb98dbf99be97a4bf959adbb445c0b05aab09a740ce6cd6ed9b72d5c7152ec39929079fd07c2336c6d6a6278019d330c2670647969988
 SHA512 
e464934793ad5bd72382dcfee6f68a2ab68c457d9f99d0e7aa1c42dd93839a67710492e26effd9018eb4966c66de6bd174f374587396061cc94394e408eacbc2
+DIST firefox-115.0.2-tr.xpi 607281 BLAKE2B 
e6dae804ca1fd61b3a47b1bb55536feed69987d2e9027448bf54c1a6a664ac24ff87f503628eac26397a44ed8adbaa7344a5a66f0e4b40c844dc5b20c9a2b314
 SHA512 
1565c75ad9d639658435243effe27ef5b20f417a692eaf5e80584630ea5eec7e7d264880d6b10dcb76bd178e666885afbbec492d30976d3ef23ffbb8cff21c72
+DIST firefox-115.0.2-trs.xpi 501900 BLAKE2B 
ce39bfd00e6b6ac901029e63829a0eae60c8d163029f7ce04201d3bcc19dc6dd91562ff9a6789250b257af5b0dbf8247f62bf213c10f1525517517b85a27ac70
 SHA512 
b5fdfa42c87acd0c4678f349b8b27d10eb9ea37574bf322a2a310c98034e99bd00a157f6f72777147574425f32c64bf699639b3291e0b15e9c30c5cea0acea63
+DIST firefox-115.0.2-uk.xpi 684822 BLAKE2B 
26d3154fc14aed34ad9b8118910e8286489775ab7ef0a978f025a711cdfdc13e763bbb6305880b9397bd32fe54379649153eb38240fa077fdd0e2204339b310f
 SHA512 
d83008065cd119f77f2700472248ba38028ab9116eb34cf9e25cdb67b0af4ce19029398f56c90cd1621f0a606c278d0ef093448c65cef88ed356100ec9e4d62b
+DIST firefox-115.0.2-ur.xpi 570580 BLAKE2B 
60a7a711673e15cf745de0d0ad5cf83aeb6c64f7704e957605d61cebc04aedb87b089516b74e22cde5ae993548aab5f503bd203cf66a29ce47821bb196ffce9e
 SHA512 
31d0ca8e43a6df9396319b86c9bc2aca8896738ecd46ed271ed9216943fbdb29323b4e8d78313e7b6993c81148d434496257695affc2c43cb1aeb2020e632c2f
+DIST firefox-115.0.2-uz.xpi 488309 BLAKE2B 
6f183856712caeede2d5497920a4da5c686cb8f350fb6d2bafe2cd721fd37849ea5f5f96e24d677e9daabc9ef681685c25cceba6843aa8eef5f3cfdb3dda1d7a
 SHA512 
c79ef2a7740e8cc022ff5d44b38870e45f4d43bcf74c965060469762802b800a762a390d9642f75ffa747cb70dba51f66ef06a0b6894a5d3136345b9d651a6c3
+DIST firefox-115.0.2-vi.xpi 631053 BLAKE2B 
51c993480f0e1e29da0183fbd79f569ded109c99f3f24513e4e7608f3b4a7385028e990040281df2637ec37ac2aa313e06a90a33acc8d939651ef8ba4ee71289
 SHA512 
750cb780405f8433552bdc0e58d6d43b43be21950ba301de297d110ce8b79d113cc8b355a2d2dceef6b19147a529eb7253867edda152b662347d25d080aecffc
+DIST firefox-115.0.2-xh.xpi 429442 BLAKE2B 
ab34436e2c2c9dcde04f38f638be7cdcba5939228bed9d24a7caed0d29f25d3efb08ae1a7286b223289e44aa1f4a3bff7196ad0d75eb34d694cdc4fde2aa3583
 SHA512 
36f165e0841c76b6c181fba1536e69a8d28d554e4e04a3eed05925906870122ae21cb4811bbc3c9e29304884e9a765b08b6dd32000eb861c3db2ea817c96d511
+DIST firefox-115.0.2-zh-CN.xpi 629741 BLAKE2B 
7ac24b4ecd0c9d96ec0fe8a4e068845295c43104c50077e0eec7ece976b787042e762d1f2d08045d4888cb4efc77b96457cd448a45312c05812511090e000017
 SHA512 
6d1cd6f0815694e3f6dfcb10ac7082752f479ac5e5b6ae6f1cadeda79c531dd41114e5ebd2b8ff987a8e136d9311ef77fe78c1992f983a774937f0e65e3d9a2e
+DIST firefox-115.0.2-zh-TW.xpi 631509 BLAKE2B 
70e0c60f846c7ec864b956fcca6c209169abdac3e791bc7e60ce9c0c113b8367d49f699afe4938d58fae1c0fff5667bb01c85444ac6078d8fedaa6826e76d617
 SHA512 
a2aebe7ef10f371a56a52c29cb878274135cec914dc639b29f9433a462cf95e0b88234098ccd2fdd426f2e39ac8ae9c9504e87a55612d0e6e02b52738dbadcff
+DIST firefox-115.0.2.source.tar.xz 506385780 BLAKE2B 
ca602d102f2b7b7fc7bebb6ca4b21e548d4542727da94410497ad6774b6dc7a9eba778c9b6e269beabdbf647e3447f621103cb68fbcac77c4beca1829cbfc535
 SHA512 
de6ce8a2512e862c69a7d5c557d6168498d0d40e9c4b54b775f81c444e863a64c43130d57b51b360db4224c34b64a93f3ad263441caee713243b97750ec1eb4b
 DIST firefox-115.0.source.tar.xz 505151516 BLAKE2B 
f5489d96be60f3ed5f5657cb43142a876a7ef2bfe46b2ebb54df2b9be8262ab8c8d3aa342adf84fa68ffe0abc63e3b4671f310e0a3dd4c53c137a612e9e67932
 SHA512 
ed5d150e4dfdc01026beb3ae502a0b04321dd130084fdef63afce79a8a7a4898741d08f77716ba720c24f31b9c732c00ad0f1cd408b35b5eb6601a10014fb1a2

diff --git a/www-client/firefox/firefox-115.0.2.ebuild 
b/www-client/firefox/firefox-115.0.2.ebuild
new file mode 100644
index 000000000000..7a883003468e
--- /dev/null
+++ b/www-client/firefox/firefox-115.0.2.ebuild
@@ -0,0 +1,1458 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-115-patches-04.tar.xz"
+
+LLVM_MAX_SLOT=16
+
+PYTHON_COMPAT=( python3_{9..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 optfeature 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/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 ~riscv ~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 +jumbo-build 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+=" +telemetry valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+       debug? ( !system-av1 )
+       pgo? ( lto )
+       wifi? ( dbus )"
+
+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:16
+                       sys-devel/llvm:16
+                       clang? (
+                               || (
+                                       sys-devel/lld:16
+                                       sys-devel/mold
+                               )
+                               virtual/rust:0/llvm-16
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-16*[profile] )
+                       )
+               )
+               (
+                       sys-devel/clang:15
+                       sys-devel/llvm:15
+                       clang? (
+                               || (
+                                       sys-devel/lld:15
+                                       sys-devel/mold
+                               )
+                               virtual/rust:0/llvm-15
+                               pgo? ( 
=sys-libs/compiler-rt-sanitizers-15*[profile] )
+                       )
+               )
+       )
+       app-alternatives/awk
+       app-arch/unzip
+       app-arch/zip
+       >=dev-util/cbindgen-0.24.3
+       net-libs/nodejs
+       virtual/pkgconfig
+       !clang? ( >=virtual/rust-1.65 )
+       amd64? ( >=dev-lang/nasm-2.14 )
+       x86? ( >=dev-lang/nasm-2.14 )
+       pgo? (
+               X? (
+                       sys-devel/gettext
+                       x11-base/xorg-server[xvfb]
+                       x11-apps/xhost
+               )
+               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/expat
+       dev-libs/glib:2
+       dev-libs/libffi:=
+       >=dev-libs/nss-3.90
+       >=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 )
+       pulseaudio? (
+               || (
+                       media-libs/libpulse
+                       >=media-sound/apulse-0.1.12-r4[sdk]
+               )
+       )
+       libproxy? ( net-libs/libproxy )
+       selinux? ( sec-policy/selinux-mozilla )
+       sndio? ( >=media-sound/sndio-1.8.0-r1 )
+       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-73.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= )
+       valgrind? ( dev-util/valgrind )
+       wayland? (
+               >=media-libs/libepoxy-1.5.10-r1
+               x11-libs/gtk+:3[wayland]
+               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] )"
+DEPEND="${COMMON_DEPEND}
+       X? (
+               x11-base/xorg-proto
+               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 && ! tc-ld-is-mold ; 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 ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+                       einfo "virtual/rust:0/llvm-${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}*[profile]" ; then
+                               einfo 
"=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] 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+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( 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}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', 
and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold 
linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+       local out
+
+       # Ensure ld output is in English.
+       local -x LC_ALL=C
+
+       # First check the linker directly.
+       out=$($(tc-getLD "$@") --version 2>&1)
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # Then see if they're selecting mold via compiler flags.
+       # Note: We're assuming they're using LDFLAGS to hold the
+       # options and not CFLAGS/CXXFLAGS.
+       local base="${T}/test-tc-linker"
+       cat <<-EOF > "${base}.c"
+       int main() { return 0; }
+       EOF
+       out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version 
"${base}.c" -o "${base}" 2>&1)
+       rm -f "${base}"*
+       if [[ ${out} == *"mold"* ]] ; then
+               return 0
+       fi
+
+       # No mold here!
+       return 1
+}
+
+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}: $@"
+       "$@"
+       local r=$?
+
+       [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+       exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+       return $r
+}
+
+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 && tc-ld-is-lld ; 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() {
+       if use lto; then
+               rm -v 
"${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+       fi
+
+       if ! use ppc64; then
+               rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
+       fi
+
+       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
+
+       # Respect choice for "jumbo-build"
+       # Changing the value for FILES_PER_UNIFIED_FILE may not work, see 
#905431
+       if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then
+               local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16}
+               elog ""
+               elog "jumbo-build defaults modified to 
${my_files_per_unified_file}."
+               elog "if you get a build failure, try undefining 
FILES_PER_UNIFIED_FILE,"
+               elog "if that fails try -jumbo-build before opening a bug 
report."
+               elog ""
+
+               sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 
16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" 
python/mozbuild/mozbuild/frontend/data.py ||
+                       die "Failed to adjust FILES_PER_UNIFIED_FILE in 
python/mozbuild/mozbuild/frontend/data.py"
+               sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE 
= "${my_files_per_unified_file}"/" js/src/moz.build ||
+                       die "Failed to adjust FILES_PER_UNIFIED_FILE in 
js/src/moz.build"
+       fi
+
+       # Create build dir
+       BUILD_DIR="${WORKDIR}/${PN}_build"
+       mkdir -p "${BUILD_DIR}" || die
+
+       # Write API keys to disk
+       echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+       echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || 
die
+       echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+       xdg_environment_reset
+}
+
+src_configure() {
+       # Show flags set at the beginning
+       einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       local have_switched_compiler=
+       if use clang; then
+               # Force clang
+               einfo "Enforcing the use of clang due to USE=clang ..."
+
+               local version_clang=$(clang --version 2>/dev/null | grep -F -- 
'clang version' | awk '{ print $3 }')
+               [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 
"${version_clang}")
+               [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+               if tc-is-gcc; then
+                       have_switched_compiler=yes
+               fi
+
+               AR=llvm-ar
+               CC=${CHOST}-clang-${version_clang}
+               CXX=${CHOST}-clang++-${version_clang}
+               NM=llvm-nm
+               RANLIB=llvm-ranlib
+       elif ! use clang && ! tc-is-gcc ; then
+               # Force gcc
+               have_switched_compiler=yes
+               einfo "Enforcing the use of gcc due to USE=-clang ..."
+               AR=gcc-ar
+               CC=${CHOST}-gcc
+               CXX=${CHOST}-g++
+               NM=gcc-nm
+               RANLIB=gcc-ranlib
+       fi
+
+       if [[ -n "${have_switched_compiler}" ]] ; then
+               # Because we switched active compiler we have to ensure
+               # that no unsupported flags are set
+               strip-unsupported-flags
+       fi
+
+       # Ensure we use correct toolchain,
+       # AS is used in a non-standard way by upstream, #bmo1654031
+       export HOST_CC="$(tc-getBUILD_CC)"
+       export HOST_CXX="$(tc-getBUILD_CXX)"
+       export AS="$(tc-getCC) -c"
+       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
+       mozconfig_add_options_ac '' --enable-project=browser
+
+       # Set Gentoo defaults
+       if use telemetry; then
+               export MOZILLA_OFFICIAL=1
+       fi
+
+       mozconfig_add_options_ac 'Gentoo default' \
+               --allow-addon-sideload \
+               --disable-cargo-incremental \
+               --disable-crashreporter \
+               --disable-gpsd \
+               --disable-install-strip \
+               --disable-legacy-profile-creation \
+               --disable-parental-controls \
+               --disable-strip \
+               --disable-tests \
+               --disable-updater \
+               --disable-wmf \
+               --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.
+       # bug 833001, bug 903411#c8
+       if use ppc64 || use riscv; then
+               mozconfig_add_options_ac '' --disable-sandbox
+       elif use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--disable-sandbox
+       else
+               mozconfig_add_options_ac '' --enable-sandbox
+       fi
+
+       # Enable JIT on riscv64 explicitly
+       # Can be removed once upstream enable it by default in the future.
+       use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' 
--enable-jit
+
+       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
+       mozconfig_use_enable valgrind
+
+       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
+
+       ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' 
--disable-unified-build
+
+       if use X && use wayland ; then
+               mozconfig_add_options_ac '+x11+wayland' 
--enable-default-toolkit=cairo-gtk3-x11-wayland
+       elif ! use X && use wayland ; then
+               mozconfig_add_options_ac '+wayland' 
--enable-default-toolkit=cairo-gtk3-wayland-only
+       else
+               mozconfig_add_options_ac '+x11' 
--enable-default-toolkit=cairo-gtk3
+       fi
+
+       if use lto ; then
+               if use clang ; then
+                       # Upstream only supports lld or mold when using clang.
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang and USE=lto" --enable-linker=lld
+                       fi
+
+                       mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+               else
+                       # ThinLTO is currently broken, see bmo#1644409.
+                       # mold does not support gcc+lto combination.
+                       mozconfig_add_options_ac '+lto' --enable-lto=full
+                       mozconfig_add_options_ac "linker is set to bfd" 
--enable-linker=bfd
+               fi
+
+               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
+                       # lld is upstream's default
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "forcing ld=lld due to 
USE=clang" --enable-linker=lld
+                       fi
+
+               else
+                       if tc-ld-is-mold ; then
+                               mozconfig_add_options_ac "using ld=mold due to 
system selection" --enable-linker=mold
+                       else
+                               mozconfig_add_options_ac "linker is set to bfd 
due to USE=-clang" --enable-linker=bfd
+                       fi
+               fi
+       fi
+
+       # LTO flag was handled via configure
+       filter-lto
+
+       mozconfig_use_enable debug
+       if use debug ; then
+               mozconfig_add_options_ac '+debug' --disable-optimize
+               mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+       else
+               mozconfig_add_options_ac 'Gentoo defaults' 
--disable-real-time-tracing
+
+               if is-flag '-g*' ; then
+                       if use clang ; then
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols=$(get-flag '-g*')
+                       else
+                               mozconfig_add_options_ac 'from CFLAGS' 
--enable-debug-symbols
+                       fi
+               else
+                       mozconfig_add_options_ac 'Gentoo default' 
--disable-debug-symbols
+               fi
+
+               if is-flag '-O0' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O0
+               elif is-flag '-O4' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O4
+               elif is-flag '-O3' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O3
+               elif is-flag '-O1' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-O1
+               elif is-flag '-Os' ; then
+                       mozconfig_add_options_ac "from CFLAGS" 
--enable-optimize=-Os
+               else
+                       mozconfig_add_options_ac "Gentoo default" 
--enable-optimize=-O2
+               fi
+       fi
+
+       # Debug flag was handled via configure
+       filter-flags '-g*'
+
+       # Optimization flag was handled via configure
+       filter-flags '-O*'
+
+       # 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
+
+       if use elibc_musl && use arm64 ; then
+               mozconfig_add_options_ac 'elf-hack is broken when using 
musl/arm64' --disable-elf-hack
+       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
+
+       if use valgrind; then
+               mozconfig_add_options_ac 'valgrind requirement' 
--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
+
+       if ! use telemetry; then
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_CRASHREPORTER=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_DATA_REPORTING=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_SERVICES_HEALTHREPORT=0"
+               mozconfig_add_options_mk '-telemetry setting' 
"MOZ_TELEMETRY_REPORTING=0"
+       fi
+
+       # Disable notification when build system has finished
+       export MOZ_NOSPAM=1
+
+       # Portage sets XARGS environment variable to "xargs -r" by default which
+       # breaks build system's check_prog() function which doesn't support 
arguments
+       mozconfig_add_options_ac 'Gentoo default' 
"XARGS=${EPREFIX}/usr/bin/xargs"
+
+       # Set build dir
+       mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+       # Show flags we will use
+       einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+       einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+       einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+       einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+       einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+       # Handle EXTRA_CONF and show summary
+       local ac opt hash reason
+
+       # Apply EXTRA_ECONF entries to $MOZCONFIG
+       if [[ -n ${EXTRA_ECONF} ]] ; then
+               IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+               for opt in "${ac[@]}"; do
+                       mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+               done
+       fi
+
+       echo
+       echo "=========================================================="
+       echo "Building ${PF} with the following configuration"
+       grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+               [[ -z ${hash} || ${hash} == \# ]] \
+                       || die "error reading mozconfig: ${ac} ${opt} ${hash} 
${reason}"
+               printf "    %-30s  %s\n" "${opt}" "${reason:-mozilla.org 
default}"
+       done
+       echo "=========================================================="
+       echo
+
+       if use valgrind; then
+               sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g 
-O2"/' .mozconfig || die
+       fi
+
+       ./mach configure || die
+}
+
+src_compile() {
+       local virtx_cmd=
+
+       if tc-ld-is-mold && use lto; then
+               # increase ulimit with mold+lto, bugs #892641, #907485
+               if ! ulimit -n 16384 1>/dev/null 2>&1 ; then
+                       ewarn "Unable to modify ulimits - building with 
mold+lto might fail due to low ulimit -n resources."
+                       ewarn "Please see bugs #892641 & #907485."
+               else
+                       ulimit -n 16384
+               fi
+       fi
+
+       if use pgo; then
+               # Reset and cleanup environment variables used by GNOME/XDG
+               gnome2_environment_reset
+
+               addpredict /root
+
+               if ! use X; then
+                       virtx_cmd=virtwl
+               else
+                       virtx_cmd=virtx
+               fi
+       fi
+
+       if ! use X; then
+               local -x GDK_BACKEND=wayland
+       else
+               local -x GDK_BACKEND=x11
+       fi
+
+       ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_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
+
+       optfeature_header "Optional programs for extra features:"
+       optfeature "desktop notifications" x11-libs/libnotify
+       optfeature "fallback mouse cursor theme e.g. on WMs" 
gnome-base/gsettings-desktop-schemas
+}

Reply via email to