Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/firefox/
Date: Tue, 23 Aug 2022 13:11:33
Message-Id: 1661260279.176797fff0a75d188671dec46d93c837a7b4e28c.juippis@gentoo
1 commit: 176797fff0a75d188671dec46d93c837a7b4e28c
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 23 13:08:13 2022 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Tue Aug 23 13:11:19 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=176797ff
7
8 www-client/firefox: add 104.0
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 www-client/firefox/Manifest | 99 +++
13 www-client/firefox/firefox-104.0.ebuild | 1279 +++++++++++++++++++++++++++++++
14 2 files changed, 1378 insertions(+)
15
16 diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
17 index ab289e009f5e..3ea65affcc80 100644
18 --- a/www-client/firefox/Manifest
19 +++ b/www-client/firefox/Manifest
20 @@ -196,6 +196,105 @@ DIST firefox-103.0.2-xh.xpi 429254 BLAKE2B ee70a4e3eb38484c15c67299d9bdce588b672
21 DIST firefox-103.0.2-zh-CN.xpi 577419 BLAKE2B 787347109e5f8c3c1ac6f5584f83fe5ee923d85d3c6e690e348e1a39589dcb880620f1a538e220a0fbb6a465c62fc5c04c91aa6900df713b65be17d369af4402 SHA512 cdbbc43b338b81f54ac987b3b5d1de2c0300dcc2a9f07f0a519aa4a7727f43edf3f638e58080af129e29aa9a4a5247fb0f7089c4aefc121056edc9e548a4f2e3
22 DIST firefox-103.0.2-zh-TW.xpi 578012 BLAKE2B ea13d0d50b919e3bcc65b95cdb7f6f1162493f6fab4ba083586b980ea737558ebebb49110b14775ee0f2fe680789edfb05dd20241e0887a62ee89cdcc307d5b4 SHA512 594ded581f530dabd461df11e1d0d5639a7da0e58f4546c1a82347b96d181dc4b2bd7a77751eb540553815443343a1e3432de7ff1175962b3c1671463ab91188
23 DIST firefox-103.0.2.source.tar.xz 481280156 BLAKE2B 597d5ede55d857409dd2efdd377250b8a50fceb3eb704de4a664fc2a128a09ef18d86d4c58bc18d19a395784a553ecb80eaf83c4654857ea317d2f044cd05c69 SHA512 f13984bb551039c80ef731931f08a284f070142ecb479b31a4caad026a6b535e3fc7ae506b629e933ba5f5a1676f14b6b36d031d22584170492676f8727c822a
24 +DIST firefox-104-patches-01j.tar.xz 18388 BLAKE2B 97386c544a6ca776476e3398c621b8ab56eb39742403f73578aa09ba4c9dc015a752fa5f67f20a16afffafa6f85616e385d181b8c8110d681a95c3ef072438ee SHA512 f3ee1ad35a623874e03462840afcd3674a20f024378a0c0ee49d643bd0e39e063234cc0c4fa83d978c13349fe3cee9d8ce9b859f609912713560b1fcfa39a7ab
25 +DIST firefox-104.0-ach.xpi 458331 BLAKE2B 94db0b3efe8d7e68696d1624fd81fa6cbf6754e419a571f9a4e7d07b8570584516da895ccc8b8d657e0aea94160f9aec40456bafdece0ba3e2d66223959f04e4 SHA512 49516fd2f7b5e6cec5c8f708c53a47e9ee4fb6197a50b80fc79d244943b56111f7dbd9cf37912299d375a51227c5a94f8ce241eb742168e393e09c439f0bb822
26 +DIST firefox-104.0-af.xpi 423655 BLAKE2B 13763a97729c2ab8e9512cc4317ac1f95e82dbf1adb36a3cdd9068f66bc01da66cdee8f9a708ee06d59a80bafb7391707ef31eeb59a6c532a64885610ac8e072 SHA512 dda32a490d324c50a62e4d7fd3e1ac8317f910deb6826c39eb3cc8979ec1fa9d41c53d23e96a8a9797ab043e97d37074ed15e0125b1dbe05c120615a25940d95
27 +DIST firefox-104.0-an.xpi 502551 BLAKE2B 4db69efe6897180263e93be24515ee0157cb9fb622b7f68b8d28902da0a12ea9d4c60b021fec348e7934e7a17620e1656c3bf52b3855fbda6bc70dc833a8590a SHA512 b12e54842696b7add05016d147026a5e9c2acf5714ab086d3b8fa9ae53640896a064971d35e026f9b7019ae7afcda05527c72eba5209e9c7c3b7e9a07fc51e8a
28 +DIST firefox-104.0-ar.xpi 565451 BLAKE2B 520e7c8def1587c768a440d36ba8aa62328635cea13ba709371fb633210200ae092163c09ff67cf6559369f495309c5df5cb27acc944181479de774279044f34 SHA512 65723573ab141e9fefd13ded93c97c8f3bdb01a7076663cd60a3988e34a1a1d4c9f3fa388166cd51acbcccd4d7289d6499eb210ccff9495c08f1c90db43db6f1
29 +DIST firefox-104.0-ast.xpi 498352 BLAKE2B f220cadb69532410ff499b1ea45b68e9b465006ab802febdae4cd785add5c62055689598f9c0be25b3d4cc504d5eafe7bb8d5d9dfa6d70389ddede823be11b79 SHA512 f8c3800523d2e5b1629a771dcfe0a4c2dd0176be1b886eefd0dd3901f936c591f456b4b022d10842804859931b33bbde026f3816743df69deb9888b1b9e69b8e
30 +DIST firefox-104.0-az.xpi 489596 BLAKE2B 40165413ba2135485d10418d44a6fc2a5f79fedf94efb7aafb44e16f079add2804ad3eba7cb76681f26fdc7a69e561476b6ed721e2a5b77bbf684983b0dfadb7 SHA512 b25a6a6e7ccc9a2ba29b9172474a0edea307fcd05efc3d4d3c11b7b586dfb5c37e33352959a3f03337bc1fd11969c53e62acdc8dd4a46a3b62095bf996aa3d22
31 +DIST firefox-104.0-be.xpi 637258 BLAKE2B 9afb6204fe6fc4b0fead747227a3957f607dff11f023daa11f5877035e3177d7abe563074f63327f2344cf1bd45c6fa6a3df39670084dad384a97865c2b7cdfb SHA512 b4aeedc167268bd4f769b1147ca2b968806343b0d3e7ea70475fed52a3656fd0e4d8b881e6f5c5a4d8dae06423c2cc4e91532555ea1fa8ea42b7f15971be11e0
32 +DIST firefox-104.0-bg.xpi 581957 BLAKE2B c74be58e377ee9e16c73252fd572ade670d1d8f850fd17ca8e4e4eabe6a56086a37fd9b4d3f630c6b93fc7bd32451fde9b313ce51c9e595624034b9a4c06db31 SHA512 e489927fa4a4ac26257b7424df543d3180ea0e20b72667bcf6fff591f2a32ea9f744c0ef0ba0b9bb544fb628cabe117dfb67e350f100a7aa9552eea5f1a32307
33 +DIST firefox-104.0-bn.xpi 580164 BLAKE2B aaaa821ed62c3f1eda70441bd5513364f7003558eb08703e36b654de578ba457f145170be93338a1924f6c2f33b01e4e3a0b72214422c2029e0cce2073558924 SHA512 74a28095852498379c177b8c5a4385767a716d097ec542d4ea07f76112c70bd2f18217d2490f62a3b970a4ca8916b7ab66a0624b7cde06b3a8d12ef47a582e36
34 +DIST firefox-104.0-br.xpi 535100 BLAKE2B a2ca33190c8ded85b82ab0c2028662e5facdb1da6ae9f4ac04a2285cd416378cfdb9a510f18df008f5e5ff3fa263422c00f8de741c0360a40c04e4aa26f8ed9a SHA512 28633560e8e2ee5b0c5ffa296a5fa7f7a5c6d04e0931cd7be598c75d9a215d18a476365a5f48ec44e0f9b93c0d7677b00102d8c956c5e148708f1a37eff59242
35 +DIST firefox-104.0-bs.xpi 466917 BLAKE2B d051953ce0682f4f59602b99343f7bff3d8620b3587f292dfd46a621256d5089887b12833d00ff149014b5c065af3b22901e26525eb40d4724509ce69fe0bf62 SHA512 2ba990cb2bdfc119a1fcd19c6f175961e17d9954c66dded49a34265117a87579b9d8207ac70db585c0e3f0da35405a731bcb959fa60e12d99fcd01010d22bbf9
36 +DIST firefox-104.0-ca-valencia.xpi 541638 BLAKE2B 97f4e798ebbfa1987d67db2edb74c87ad296cece2da0ca6ad28493f31f97a88a5f926f886a6526d5729c14b0c72d9a2a0c9169bf599855ce0d942aefb1341724 SHA512 ef3da0ef9e275fedf9f09bdb55d9c2640e6895889173f3963a03f051af581ae5c4c05889f3ec1fb56d8ecc3e42946d91cb85f6eec5e08dfc75671f7e2e40ac25
37 +DIST firefox-104.0-ca.xpi 538202 BLAKE2B 69f1515cd46dcd57f984b3aaf99fb68bc187bcbc614fb918d108f16e6fe26683ab450e67ef41bc92ad7f4a08f9fe108867b1ab895f8cdba9db481b43fc443a67 SHA512 91e45bfd364819ed988be36082ba093340b19f72961d64fd04d0b0050c6354de5c89217cb523c7ff526ad274215f4cc7e0bf624bd071e815d5d2307cf704f24a
38 +DIST firefox-104.0-cak.xpi 555058 BLAKE2B 9715bbc3d7a76e803de1000d753cec6e33dbeeae0b70adfcf358aac1cf6c27ec35ef1de6b39c5481e84a5f4573e3afc0e4b4a12efbfbab3500c6a3d154f52d4a SHA512 507b65a072142277752b5a894595e2a9b6c25b1d843219a0e4f328b3050422b4e3f6a099f8d1f457c114c4635dd76d20f68d09b3d566b7e0d2d45a7f37b0c798
39 +DIST firefox-104.0-cs.xpi 575354 BLAKE2B 0d4e980cf270415848e3861e18861d551b0e221fd1103da111ad334c2bafb8c35f6aa948d607e8660a8f8ffb6620fc5e1fc073c38a4a506576f83b346fe4e8c5 SHA512 4767396742d3d766b834dd6918fd03cdf6613b5cd55ffbb98b7ced2aba72e9f83285b6fc445458978277403d6a4270ad5981df9d95916aad71524ce22dca1f9c
40 +DIST firefox-104.0-cy.xpi 551508 BLAKE2B f903850a6fc34d7478c4062fed1253dc187234ea49675920f69224617fdfa4460dceb6db657589d852c423f18add36439c2a213571b91c6f52fce405694f598c SHA512 5e5b0ac86d60a2c32e5ea89dcecb8bd3f0f18b0c8e57e38efe06568f848b93be84e5564cc4b22e0218fbbdf90571e2e81c4fdd41c586679cbb861084b373d653
41 +DIST firefox-104.0-da.xpi 538910 BLAKE2B 93e8d2c8c9ab53d2b3317c38f4d3253e25f5585e2dde6f61227be8a10277439d3b371db5b71fba8792258b542c0a10aade70c6977c8b3dfad8e079642daecf6a SHA512 e933be4947341879f20d37faa272b14f9f04f6dfa7919a1c3f93f20c537d45edcbcf8ae739406756acc46cd425af7f08399de714b167eb2d9af61d3085b6e01b
42 +DIST firefox-104.0-de.xpi 565788 BLAKE2B 5ae3ca6565bb484cc139d3122e1c912e62360f23f2e5e797a8feb3cf28376d0848bbf6a8f69c91cc7a62b2655517035ba08de2b9bb7fb121c3edfc360e1dae60 SHA512 df56817eba67e834e7d26641f3d3be03d4a6ed83da02b6c82254a0c53a888014eb8b936d07d57e6cf77122c40b1771b6f92b1610a6bc16c4733545cf2f7d9ba1
43 +DIST firefox-104.0-dsb.xpi 579604 BLAKE2B 83b5aa3ae72dafbb0f9b5ddc5d168c096df43b52a8b8e37f2ee42dbc78a38252890f17906b26314957d85fb9739f2fa9221f1728ccd938720b2a68eec7a19a99 SHA512 526f129baa549860989ea5dae89f320c4a28bc2c4bb951db79d2c60be81db24489900ae42541f653f5e58e7d24a91030bd8af4c53d1dc1e2b31d690e746337ae
44 +DIST firefox-104.0-el.xpi 650585 BLAKE2B 1a4ab7f072563b49ecdb9fde51e6e22f581dc5094b9a7a8d32014fa32af23d7eab75d438183183d181263eb208157f456940e6d2bc1cdccd41e4adad0f6a18d5 SHA512 4319f3c8216729276b1db58e86e49a5a3af1bca282d01ed937f70ee3601b1355052f27ac8c35eb7596b53e6c00c2e99a5e5df942f4a03f31d42cced475fc05fe
45 +DIST firefox-104.0-en-CA.xpi 517599 BLAKE2B e11742d931e613a1688bcd79eb4e52cff20ef8a982a65542ecd269bf4afb9386b9a826e20e468de8b80806f173403c646c84c5e5aa1e06327fbbea6e908a4dc9 SHA512 0983c82ccf597ca51f883dd762005a15215e693d9e4cb984b7cf7242d3078ef8ef991c79d9e8ce792db8e3ca0951ff1a4747c71f1e719714beff58901d896e4c
46 +DIST firefox-104.0-en-GB.xpi 523093 BLAKE2B 6024918d62797d7acac22b462826327c4bae06dff247a886c2939ff0fb68dc1ac9861426812a911539ff6823256defe9ca8a0527c1d5ecfad56ec1da450e7e68 SHA512 14d7d8262e6b1a335d95d3cbfe902506a4b746680ac82bc44c585deda9567c8b2aefbdf88ef00969f69073f157e489a7d442eea99138b1fe27ada4548feeeee6
47 +DIST firefox-104.0-eo.xpi 549733 BLAKE2B c749fc3b91d03ee8579f7ad86ac3167e8892dc3fc124813ecb93b0640fe8d2b318e4220a5e0ecfb73c418f49a5980c31f00dd13b104cdb12846ba3aab0f5fe68 SHA512 7e2ad320367c9392d2c484fdc87620c7fd498fbe73fb4f7543ecaf578e305a5f106273fa88071f6d073d80f2f20c1c3e3124bb81f02dbec464b05f0ee8e45cf1
48 +DIST firefox-104.0-es-AR.xpi 560334 BLAKE2B bc349c0ec19842d4f97f18a0a4ad748116c4459cf40d41d8e0e2a8ff270020afcd0b272b4114baf3b636281c5c22fb90685c125a31665b94c801327a4b205f2b SHA512 37cbeafc705b38d6ad18c1df5ff926bf8fec66579ff6d3c8fa38db7b9157bc3ecffb489f3cb2742ebf52e085f8c22aa5ef53eb91835c9e6946aafd80d6a0b243
49 +DIST firefox-104.0-es-CL.xpi 558248 BLAKE2B 5dad68fde2a4713b2d318db76c2d95a8b42588d1c99f0f7705dba4ec848338912db377c49c7e42a4dca03d7dbcbc02358d6fc973c8bbc821de33671e7b717b31 SHA512 45d9371ad82f0b74991f6b24fe3296395d509af82a9e1c5f860f0e31738da0f91925a87d377776f51352c254c0efb3ce26aef02434b3effa10a5d4ce0e38c761
50 +DIST firefox-104.0-es-ES.xpi 544261 BLAKE2B b432f4c2cf3e5ed9332073b4584a45e9b9a4b5c0cff2ed3ed5dc7a7847a8c2d4d7235d101630ca30aa79989357939631e187ad0f76ceaafec802023c275dde79 SHA512 5eac8101614cfc165023dccc8e3f701df6827952a202b67f17e70f5112f303f7204fa158ab9a0e7262abc570ec171ad6467255261ff4b71c61c4cddd2d5ebb7f
51 +DIST firefox-104.0-es-MX.xpi 563466 BLAKE2B e21a7fdc4f6b3911435c12aa1919ccebf58312faedcb6c68212a41ff3afb6aa9e0f9ce364688f98a55671e2838f073c0f601f8160aac0fda5cf3a232415aa816 SHA512 c9ea9af70478d4bec47b9a5b44e105b500fbed752beb52eeae399cc4be58d02b3e7b36aff2f55447a20b8b4c425e069748d79da482bcb42e24a857186ee99abe
52 +DIST firefox-104.0-et.xpi 535019 BLAKE2B 658550be8e3f8de67795d760c4edeea97864856f6671eaa561fa8fade0c28e244a6da1af81c9e3f02b01fac4345fd05057cb22c8a643cfe0023a75054c517789 SHA512 ec3e7939e038699215875b4859c8228583bdbb4c13bc1935745e5daddcebf4afbb4319c22e9880d950e19d9f347ec2a21f4bfe96a96a4cf792a3e53a15d02249
53 +DIST firefox-104.0-eu.xpi 544754 BLAKE2B b9dab28948f5fdc51cb6f0b1c25a97b9764449485b7464cc5621569e4a3c8304c88cfe6bc9c7a5d0267840a8a9bb4f785b5f7e0bd23211df19de215682b6cb6b SHA512 51b67ce9b20f14c098209f0d1333751d9bb36d4e63d26902ef65b0776dbe96e7ca577f3fa4b915e32e84d48b61e70a528d84bfb65f4594835de086026aa74ec7
54 +DIST firefox-104.0-fa.xpi 565985 BLAKE2B 4f6bec975c25954ec89e1e69d35dfa508443b428c247f17476d33849aafc6978fa440166cd6b21563efea8ab076692d377b56da933fe05c3453a52c0840de75a SHA512 a4117a2b27d6f8da4b1606e3b119a1bb389c45b5558c05d297a28751d442cbbe68cde710a3d993719f0a0a197cc95c64f8fc4b1aacd5e11c55e8ef0ffeb7ac85
55 +DIST firefox-104.0-ff.xpi 476466 BLAKE2B ab36b5c3c9c400fd6e8ab8ada7870256ce4a717ecd7741e7b86bc79eb9c341677d195cf681415b4e7af4fc988822d23e29212b291c37fa78292f9b939257e512 SHA512 cb8e177ea8d422ddc4279c264a16fb76999a744bd33292f2c6d0d44d91533fc447c69435c04568cc278cd3de5c4aee291a118537c82de2528870e9fe8e9bc46e
56 +DIST firefox-104.0-fi.xpi 542876 BLAKE2B 83803bd57bc25c6437b722e0e995ae3610bc750f11ac6f073d0e52318159962863c542a94fd5caead35a40ac5ad5493a5907175096cac269e023788d28c2f072 SHA512 604e3078513511211640e5cc00e9f9b67c03d37e77f174f1554127fe31f6bcdd1bbf290b4ce3b2092721438b9f402525b3967803ba4d30344efb36feeb0f819f
57 +DIST firefox-104.0-fr.xpi 569007 BLAKE2B 0b0510ea59c2375eff590646914a7ac4358cae511a0cf2c0f5dc8ca8a519e8927f6aa0240751c346dc1b3744c7b28c0c60bd46bea575cfe2556e0c3ee693ee20 SHA512 f67a154c51424a1c3d7033675338b926cb82c3b63801613c4e8ce2f8ed0598ca18c84fca03a05952d83e8b3cdbedee8f2d724ace7a85683096da8181340dda46
58 +DIST firefox-104.0-fy-NL.xpi 550631 BLAKE2B 2d28b330616569e03fd277f9cc07d14a8ec8eb5aa46416dc4b3f4cd16c4d90883ccd598d51984cfe4d087662b3f1038f8b5469d3afcd5583c2f57e1ba24a9c7b SHA512 72004a194eb459d7bac835f586be64b91b217a8d46f131b1fc695f03850e5cd8ba4dc316ee575cf585e11b189b35f8fd644f88c5fdf2b595531ab570e0bdc653
59 +DIST firefox-104.0-ga-IE.xpi 475925 BLAKE2B 3e33e8bd3f060997c7ee6750d7cb8323d692b0939043e9eb0c26f7fe5d567067b54dca585b78b53be5c585a730307ddfcf359040542d5a7cc4bf62d0a3f1d44f SHA512 7a06deb71ad9c5d24815773b19da56776319adb7699ab7803a5cd5ab1111afe84c063949e4559998c58dc240988edeb5ab40afcb2b148e6efc76ed43c940f3f6
60 +DIST firefox-104.0-gd.xpi 547845 BLAKE2B 4b707ae862cfb440ec6db412eaf31a8135ebece868e0a4686e8493c95356a920b852ee19ad62ec7ec9b82043ce6a653aeec8d475e8c7da54ad6218201382eccd SHA512 0692a647cf07df53ad2c74ee8a9ad45567a7576b30524a5ba68286c6d99adaa2f91450401e285ccd992c69846d060b746352ebb07f9d5754cdd0d3df6bc6d9ac
61 +DIST firefox-104.0-gl.xpi 543911 BLAKE2B d49ff519abbefc9b8f0c598a6cb76337a178f31c1ac0f45c2bd13fc1666250d0f5047c15fca8fb7581185039ed005bed19ba860c85096b4bc2a5d387a3ff6412 SHA512 04300e77036b700e49454e706d9a019872018c241d8d7ff7c235a9d5e14c0ab693004fd346de451cde02ee75d17da337fb9d355b441168d6ac4e893231a2b343
62 +DIST firefox-104.0-gn.xpi 570940 BLAKE2B d25c61e83ba4adf8323c3183bce7c6f05cffa068d096fcd5ed068090da3b88ac1491aa25c8b7e447f62d0d6788113848dbceb5f2c93b48b3aa1286d3f351727a SHA512 4b421c92c1490860fdacb9bf5287957331aae57b4c2d03c8506e91a83ab858c7bf5cd67fe24aee12302f0e29ae2b3ee0dfba351a81ecdf4a12b50495f19cb304
63 +DIST firefox-104.0-gu-IN.xpi 531091 BLAKE2B 55aea6748550c47f5071348615715869cae45c0180354f17040ebd6024105a6d34c8e51f386b81d931a47890b21d6f69bce49ece889d4a749a0eaa75d36f0a68 SHA512 7bffcd301dece01ab70d2f853d1ea5067784659ff2068f941b36ba3a2e19e1a63f0ceffdd4c9f9df4a04a26989c180ba4702408625ef191e0359774017058682
64 +DIST firefox-104.0-he.xpi 568688 BLAKE2B 01501040e121a13b623fcd169a0ff8c229a6a4db65aee31fd2640cfe1c44a8d5a89ba15ce8bdc2546f860ea66a3cefce76c5d1da7fe800741392faddade853f1 SHA512 b73ee331ec0dbbf6f3bf30990351cbb3131028d2fb44f6bfe86b8bba72022b86e50b65218dd7c491efcdffb4ac8664110a4264724c75a3a392a9ec50d5d5f2b2
65 +DIST firefox-104.0-hi-IN.xpi 561055 BLAKE2B d1a037ef7babeb48112ccca9723bfc30dc6258c44540ec1ffef35b7de8bfe16249fd616b69446aa17e73b4c2bb4cfe5508ead650e7fb5a9e0a989a89b8fff814 SHA512 956342c3771159e2b702c0300ce7e5958d634b91b723dcd0b97154567fb07f68c1ca7f381ee98d190fc8482ef18120b1799853e934fa4375de082ffd287c78c8
66 +DIST firefox-104.0-hr.xpi 534654 BLAKE2B 04e84fe848a65fbd9c0b96e7f73ca0904ba483f78028022cf7aea3b83b1a3ebab515e1f1b40eac40735def4a24de9211963648cab315564de98f2e8adb746eb3 SHA512 9d35261d28d6fcc655a9a58e8f3b94f07f75469f4ab2cb54fb861bf300b1cb74699b29c1e9c5a1ee140c6aedca93a6596dcb4941cb17fa9d5808f4c13d44195c
67 +DIST firefox-104.0-hsb.xpi 575814 BLAKE2B 13697fea8a3bbbeec1d0a5357129e8280b1045f0fe6f92daed4847f5adc73aef1c310ed31afae732ac479e668b79f50f89b58fc6dbefa411cae16885434aec7b SHA512 7818620c8347de6e791abd1ba5ebe5b886ba448f3e1ef5116194f84462fd85893ef5ca2a006e61bff32b9e759b7e77b445599f89f8036aefeec96e29642450cb
68 +DIST firefox-104.0-hu.xpi 579192 BLAKE2B 109cca0ef305c79d7b21f3a45657a2e642e42e2e70b2b78273f7ecb72417f8ed6892c7f3d32cae18f428a0f8135d8ce0cbd7bf3e79478f5fb2f52a7b131ddd2f SHA512 cbee5d64b95c738ccf04f7de20267a7d3761546320cd598ffee69393f18397a0e8f4a621d4cb09db00ff3db9503b2bf9a7b2683bc86edcb5f836655c451ade04
69 +DIST firefox-104.0-hy-AM.xpi 586080 BLAKE2B e1327b7dd63b46d0370681764ead503fecfd372d85608777a960c27c2e7de06a8b30c1796a49f8e2d326b862e22d6b3ba08983c8ff9bbf180e27edc09b20b25b SHA512 2bc05f0cf544242897e5825400f2aa7679d89370b57cf5a03f03de96b2ac3dfd3126e425c46ca301b22d7b69a817170413d58f99c99b1c62489c2a8007a7b0df
70 +DIST firefox-104.0-ia.xpi 545105 BLAKE2B b8095b43c96a2e317a5f5580b677461d9a80f3444f0ede540810a5d65035bbbbed011622a697f2fdf8ee1211db1d03a53d93ed7598b1747621af010b6cc21827 SHA512 489a3334dc8956393b06191e0151199a80fb5c8c6005235c8501f659af1b7d8e3293f03b4bf019e5f9a782b8b31bc2b5d18a3316a93d368a00ce30d05f3a1de4
71 +DIST firefox-104.0-id.xpi 541007 BLAKE2B 6a593321f4b19084e294a6a5025d11bee525abd49f06f1966f28d713097a0798825f7e35b89af20a8b7c02ec6a927295c80c4551de1f0598b78d43b68b946795 SHA512 f8dac0cc428e62cd1debbf52e356158a695b7f7d2ecf0e31470e709a02283c63c0b2c6e13c823c0cb9b5990551d79295b507b06ef47d35a95f3835d2dfcc084e
72 +DIST firefox-104.0-is.xpi 549340 BLAKE2B 8d049e6f5f6c9bf7da1c17b96c51223463a624d00339bd559076bc475d1170abec73eb7ef5af3d2cd3b167a9cd7c7be2ca0b09f2444bc7e18c9942f0f98710c3 SHA512 0d95fd5d8ca13986e1d5c742897fd5d4f96803275540149f587401eea2b0b6b0b20ed4607ed69ad635e52bb3698ab7e2610a62744e5e966da6b425485201789c
73 +DIST firefox-104.0-it.xpi 462406 BLAKE2B b1b0e16f251958c1abb077cddf7f61e50143a8515dbc2d31f6e9c57de7a69bc50cdb7c5b29029aba085c88faaddb9a3042a66178c7fc682cedbaa3fff463c27c SHA512 8a796570667fc56776fa3c175f5de2e2194d9ef4b22b1d227ec5358e53bd5159e390d0f317a90e46851ee75b73a9ba5b72ede5534d6cbfe3a00996c76af9814d
74 +DIST firefox-104.0-ja.xpi 583508 BLAKE2B ceed848320c0f2912bc6e77ea7a14a77bb7b728c761061b1ea4e307ad681d4ab9d0a68fc4ea1b83d8886039c35f2740ee0ac5ba5b3797e2cb76c11832f2c824c SHA512 9cdd40bebcae385b0e4b554861d9c5e292205b2a53738b7e3e561f1af85352809c7f6c3a6fc0f32a37a10210820386ec5c8f6649e1a88cc9d9476563adcf1a6f
75 +DIST firefox-104.0-ka.xpi 605068 BLAKE2B 5e7dfd962487f579a9769b8c871ff6fa83aadf705112857e61275745fcb7062963bcb9ea427e6c5b92d592f7f3eefa5fc4c88edeb991707f657187b17a626df7 SHA512 ec461f54ac9aeac8e074edb534e7fee28c204bc2cd17deed927107035b1c56e5baefe7b57ddaa6cda8db67064c1a6cfd9f5c5baceb3cda0d6191090264dcd731
76 +DIST firefox-104.0-kab.xpi 564771 BLAKE2B 51df6490137914b1bd4141644b7eaf12698b5f75f610d1523aca662781ae7e4eb1ea02fda657ebd6baa071052e671c29807344d97b747ef917c1d913e4655eb9 SHA512 08ab8799f1ecc5ceb4a40a1469551281320a7ff651517a45b678e4cc188c3afd0ef0d79dc92568262803154a6e6a6b133c35bdcdded61fc9c602c46e909a2aaf
77 +DIST firefox-104.0-kk.xpi 624332 BLAKE2B b1530c698f003973c3822891b06c209c04f18c49d10dfd70946aca0e33058aafc14c4e5a839129b6af232eddbcc336252d68755da2d4aa97b2945e14e02ae7d4 SHA512 ce48e2c82b9f20de27d9970d3f7657ef2cdd09886e633be0cf72a32ab13399d727a24eb611a191a20e1d935644d305b5cf9231471d93a3c6ce9434999d19ed36
78 +DIST firefox-104.0-km.xpi 535680 BLAKE2B 9ac973ad771501e16c1382c76d9bada8e0e629cdd9670776f7ea6b81ca88cc3f1521e8dac990ecf4589ebc3626eafb003e4a1ed8f64125a6cd0115e893a44cc0 SHA512 93318f76c0b250b16253485e720e305da672677b6b74e85e9f55869b566cd1c02961775e1a8addc6f0b6555ee7f9718a2ec3be6d602490412f6e9469af581f26
79 +DIST firefox-104.0-kn.xpi 501806 BLAKE2B 1adabdeff7463e10863ee0ffeadec2620d041bacccb54b1fd8367e484f8a9cc3377fa42a5b8aee6ced8c175767380cb19dbb206421485563ab4e1631667ffe3c SHA512 e700957d13adadf3699b76e5e1e0c9c8c2303529624492c298a1d4dadc5d94fc916cfe72ccae7e6349b4bdd7d40d8b248b183dd3aefd36926cfbce2b38b2d250
80 +DIST firefox-104.0-ko.xpi 591403 BLAKE2B 8b975a18ec10d21b4adc93e2f7d48b265d4999c5b450e0a8f92c5b75db76d618bbe5d77a43795726071a3c129dbc6f0ec0c1665d23e82acd456ed1e16647a3c1 SHA512 7392d43d023a90f9cfa822a35a641011f07f773030e0486a4c5242c76b8057fbd61123c724a3b9852a6e41aed16d95420b87f56f9fc3ade0d7df21e4280c61ff
81 +DIST firefox-104.0-lij.xpi 474395 BLAKE2B ebae20ede959538a35b912bbc79cae94bb5cecd31e60601257ec9aca51d5eb177f65b3579b42aa55280b46bdacfd09121507c8412a83e6b98dd513a0f8e5724d SHA512 edb4d2b53c2bf5815b7cfc2d1741a438c07ebae976233ea5a884dc4012d089288a911eece01d84d7746cdd311c826cfc5135ab8652aed8fb6de9eadc5c488f28
82 +DIST firefox-104.0-lt.xpi 565090 BLAKE2B 79e0a40e03f0f83aabc914497052917fe07b7f6a0f5c3b5e5b7a5ee5ea3d18050a41a493fc62ff5b985d84b63da449a55523f41e3bfa7bf9a569d43eaf240658 SHA512 879f806fbd06389ed55063f742e94bf5de04d6a38937ac00ec0086d45b28f3f5453b88225049e2d0ce0958d9c9df49e86ba567852f099554d0e1243643a5a4d2
83 +DIST firefox-104.0-lv.xpi 467532 BLAKE2B fdea8a1cdade73784a62185555781a07af596b77e3240b5bcd572a6c40e0a2a384692308737a7a9873ec15e94aa6e893fed3d0457f417a48d8bcd7230210b4ee SHA512 dbac0c42205ed5cf6db72aa4cbb72725a81813e97851b24f7761f817591d24dc58b230a2357f425ca64ca7e3e1b720047d529cabd70cde51f91fc75abf4067da
84 +DIST firefox-104.0-mk.xpi 479885 BLAKE2B ea00fb86cb3e7324acc357eb539e062eaf01fecbe6ee2d4acce95470ea0c1da2bbc183029e6535295b04ec6f7a50aad28b0240df5ff8bd4161519d059f48bb71 SHA512 d52f3e16263242057d943a1781908d634579fcb8364f379451a47b9a8bfdd0abddf0b56d91a4839a366559eddfacc20be1038d7709872c79523086e18d19e382
85 +DIST firefox-104.0-mr.xpi 534727 BLAKE2B c459ad662386a2cc1a769a59ae09a8ae42f096de5ceba9e2691a21446aa0363a25d2d31b0715b9f7a3476d03902ee9bf02970e2e6da98cb2ccc4de349242e95f SHA512 19e5efca1ba18bace860467c857096c986ac590ce2e3fc8ca1a87adb8523ba741e5bbdba5531b9b5f2316d949c27bac5d95bec7d015b20d557ea3f4c8d493214
86 +DIST firefox-104.0-ms.xpi 452525 BLAKE2B 312c14f4b61ca2d5f463746b5f0d76d812889d8afe73f398fb0cd784233d03ec1826a32a018f4715c2d90feb2cc0032e0ce1103243cd833c8a646ceed345972e SHA512 519619f7034e3f40068444c9fadcac7c282a40473905c1779c5675eb2182c6b916fd32a070ba89b9586b28d8a37335ca122fe7ea2a827b3f3c71f4ee0837e27e
87 +DIST firefox-104.0-my.xpi 514692 BLAKE2B 5bdcc4f6d806f5fe8d641e5f766305a959c158ec4129f8f44101cc2415527789f309710f87c871ca506a7fcdf1c9e9f49b3db7381031985df0a4ac190b188f02 SHA512 930f0231552333969196ede4c0c88fc4d8333fa8bd1bc150e98536eaf9f375f7e791f947c325054fc8fcff8b69680a7687d112b068418f7f25ff4316130ede36
88 +DIST firefox-104.0-nb-NO.xpi 542653 BLAKE2B 7b4485b86d602074a661bccc379f146f733783a94b3e184011aa5a215a875f689c08fa9ab27c4cb3b30f3f88f67e596a108deb7933a44153c14f6cac0b509234 SHA512 94f5f7741d44690110b8da3f18f288d436a292d37cf0f2781c1ff75866083693172346df59afb2148344c649c7f36f5d7b3cfd941fb10ecf0961aa7d6b7aec8e
89 +DIST firefox-104.0-ne-NP.xpi 493549 BLAKE2B 920669951d545ebc7bfb9f9301c5c551d5d1b4fcd87e9bd784a39ed17b2d51858ec2f309e92e4ea828b23c96b63a8bf49c9b567437ab82e00685485c2879e5b7 SHA512 528d103ac76bb41f93ac3c69e9d4909649a4f5deb9f797ba3232e5e7cd37a5d01a2ec5c48fbcc0593acfd70cf51703ca48f1ffe81e60902803dd1dd3b4edb681
90 +DIST firefox-104.0-nl.xpi 546984 BLAKE2B 26a227ca12dda2c3dbe95020e4444c371b0752f54665c6ed0876cd83bd6235533c9759c355559fe1b1323005726bd2663f5a8ade84b7517b75386b68e9090572 SHA512 28b57d43c76df781cbe0167b296aaa7292d670cdf225ab465bee5cfb6d51ec2837ffb1cba89e963857d896ad857a46ee454651a683b06fa9dee42e9573c48ec2
91 +DIST firefox-104.0-nn-NO.xpi 544290 BLAKE2B 2b4f7d57eda6f3b0a3c9b38760ac401ed6030dc633cc8f00bab5e3827db6d6de7490c62dbd759fc3864e79470b4d263b6278f24ecd4bf41f4979e47da06709f4 SHA512 fb6237beae6fa07f72922ed8bbb827acc76658e5db0d63673770f256b984867f88462116086b1d9993967b9161aed7983c9e886b46288d20942940f60ec1284a
92 +DIST firefox-104.0-oc.xpi 560758 BLAKE2B 58c853a831166df3ff79517a5b468b288e9432d2566a794cff257ff97551353dcb9f672441c8e5e1fddde7f74e02b2b0e747f1c96cbfeb8768be6f4a8ed604a6 SHA512 b6bf0b335493235dec102ea54d30b315129ea8dd95b72867c5595870dd6337de20fafad17eff3ed8466ddc7c448624bccaf0f5003b5026ccfac62c6b16a62126
93 +DIST firefox-104.0-pa-IN.xpi 611567 BLAKE2B 57ce6ea0de4db77588987ed51ef922f7e901594417c13baf0df8ef8330e53c0b163fb0804dc965a8f93adb3a963b262dcf8317eb794f7ddeb4cbbb4e7f5b79e5 SHA512 c26380240845c6bd1334079adadd6f5a5c610253525d99694591a3acdc899814f5589b131a475f73ee18df19076a428bc891c11c0ead4e8b3f08eef49ab8e20d
94 +DIST firefox-104.0-pl.xpi 570611 BLAKE2B 968f41f52f3fac2a26ae132142060118a2258e75360b83ae9a592924f21b88382e866c398c1e4dac8332bf8b73c86cb5f00ae2876c605dc4e15a113d479e028e SHA512 a3c336d0caf2a75a5137c1ea439f98aad02a998bdd6722aacf0cd3416da379c4d80f352251deef025954290f01d3e68c60b85a814b387735b3cad391c258342a
95 +DIST firefox-104.0-pt-BR.xpi 555629 BLAKE2B 62333059b29022eeeb95810e5e7051598691b457b63765296dfec783d09e81a1a365d4454687f38ac00fc7026891f93f0b43037badb8412adfde98c885029bfb SHA512 3be4147fa911293afc0e2d5ba18bc7ed8b8049894ab40772caac804a9ac041712bca1dd41de031d9aea1fd94dbe9a85bd46811942bd915ac4b7b18c62f44b1da
96 +DIST firefox-104.0-pt-PT.xpi 558700 BLAKE2B d1bcd61e0cd2c6eb1e16602d7b05cebe9a5ae82f949e237f2616d91851d3d16d223256c92dd08056b16ffb0aff5d54dcc19d520c654ebbf67ce3203bf2953b3e SHA512 b767cbcde91b42b31b47d7b6a208561aa166b8ae4e44a0b116bfe3d016df06e5486afba02d45f01c4edac3917bdc0a406a4d0d805127439820c2a29d15b28d15
97 +DIST firefox-104.0-rm.xpi 542665 BLAKE2B e0e671cc9033642a3c082ab842789f83499e1ea7ed5d7a066717d74d08f55eb3f2b671d4c5360f46f2078f721667e68a88f87ef10aa7536a37dcdde848f08f01 SHA512 c6af99dbc785f9d4a79102032679aaece4711ccdc6b772caafde5840f769240bb183b7a77db2b9a83907b9b3eb5530b0b8bc049e41db88e69566f5ffe79eb85f
98 +DIST firefox-104.0-ro.xpi 532715 BLAKE2B fe35f6937c7720915205352b63b86e5515494ce59a26c7d281c9965296e64928886140a1419df36c04bba253b2a9b3cd5174a4b12934282f4809c748421c7e81 SHA512 25df5e1ffe7be6c1c46a02d93ae13320123f0bb2eadf16932149f01cacc64b9efed5719f3be6a9034c80cd21b667b5777577295efe4744e2baaf4b7791be5af8
99 +DIST firefox-104.0-ru.xpi 641374 BLAKE2B c32099bc077d8a499d92e93c5f14d744233ada33230c4030bf749d3e0a6a7aba69fb202c60a0f2e44e7e0731b370ca9c31f432b1a7c0acf73b3a438492c77f80 SHA512 dd5a438df1ba1d320e71aed278bac0216fbe3e4b5914ed67bb9756c294cd5999d6ab1b5ae6d893b51c247ad2dbc149696a07e494037e56a35b785f68d0da0e36
100 +DIST firefox-104.0-sco.xpi 500777 BLAKE2B 509f14da5b16a3d98294e498f8a18de298683261748113d075d5748e4297c5177f21b867dff9b4e4e936cbd22e60f7e98bdbc003f114033eecc40b5bb8f19a48 SHA512 f671c805c818e4c9fdee5c1852357e7c062b8ed56b0bdf7d17bd321a0eaac211e3bb6fe84a52c9beaadf78e26b1bfdd6e365669f49813212ad09164338134719
101 +DIST firefox-104.0-si.xpi 489434 BLAKE2B 3c4427f72b1f869095fb160217738518a92321941a3f8cfb3c1bdf511056821663eac375a45e0e5f92689210c473a64bbe98fc9420e52469a1adf25ba018417d SHA512 ab179a49625c70cadb6cd9ca2adae66bfbdfd772a35fcf478bcb1c7dca389c9a03f2d6417d47b75d10e4ca23a318562b9e579b4c4633200689285301f8ebd2b1
102 +DIST firefox-104.0-sk.xpi 579416 BLAKE2B 3cccd8b318fec9fecb236bea9452c14fb940dce9242d9e90f14a33d702cabaca0085dbc9d521d72743d7cfa70bdfe656869ee53fe74fd494a14fb3f71eddec2c SHA512 d8ef67f0005ded4709e2006aed4f26d4b78b8f24322838a8c2d2a2d04bac5af1afd871319ad977d55282dbd0ed7543efc469c53979fba2572a98d2293fa80e1e
103 +DIST firefox-104.0-sl.xpi 551984 BLAKE2B 9b52cb5e081740ba63c38b1a4e331e0d603226366baa3dfa49b7dabe1700db72508f83b679c404c4e9ce78b6fad220338f45993f955acc3f5a3989e17563b546 SHA512 5bfb20254260711ac2d3ed3f86f08fdb19b4c46aeb3760268905c10dc8451b4b6457dfccfc500d781f50fe7e9905fa69af53e60d6aaa639921666f83da04d1b6
104 +DIST firefox-104.0-son.xpi 430375 BLAKE2B 9bf41a0305bd9ad94cf4ee00340e377079396a76e9733cbf9256064fdaf8e07b4d4dbb79062b2ab03b9cd179593fa7e93d022b904cc927bb7c8f599037064c58 SHA512 2251099532e51b0c2372a350c14876000597aa76dc43c5ad1e57330aefb99a02dc5d89a2d0ddc7ac5acd68a80c3e146cbffd0832fa907293a63627c718cd350f
105 +DIST firefox-104.0-sq.xpi 560586 BLAKE2B 3d03a989fd29ade0d0428ee8c68d2d27232175217088cafacdc2eacc5b3baf6ef129c88f7b2ab5b49dea56b2ce9b2646b8a5d6dc49524b2fe115a8e7f84fd246 SHA512 7495b70f23174c49df83c3001152ca0b22c75a46a23c98a64200d2ce702d7376c4c5835e3a28358a9be590fa35d04ded12f80b1f045a450923e5b9ab95f7ec2e
106 +DIST firefox-104.0-sr.xpi 586826 BLAKE2B 957ebbbce123b148bedb22b000f413ad44e0212a28a50f06a1394e4404d83286753fc15c8ace9e46391de166f8e69d6bce41773f0509bc6541764c40adbd93bb SHA512 87b0a28e372bdcc964edffdb717ea809f467b92daef17a867b3fad71a6eac42bbeef94dd61256f6b7235f5a630b0ab4dc5cb04d11ee1b86ae77558a5c69c6af7
107 +DIST firefox-104.0-sv-SE.xpi 552456 BLAKE2B baec0549f07b95145fc8155562860b22dc5a87624a2407f1958016805a2e54fb243deefe2be8b5d187421c7a0221ebabb0c7282a125a4e470560c93bd94e5346 SHA512 2cdcab902395e843fb229085df1e3eee5c6f8e78f158e8e0d056f771ecb7fbc9589cf58511a9e813d825123ea304f21ac683eda4a5e0f5b2393ddabd7621b9f0
108 +DIST firefox-104.0-szl.xpi 512573 BLAKE2B bcdab38d94823a9c6cfceaddcce73ec58bebf49d9270dcb200a5d0653d9a489dfaf802104c5a177f8dd4b9dd2bd103c2c1ddf1fdabdd237b544cf53389191430 SHA512 519baee1b2086aa2923c285b2319c4c92a18f0cb0b7fce34198680517494d97e3c04166f8d7f311eb7f5786d947626e6d6285253824a9c51d5f26620b10f66c5
109 +DIST firefox-104.0-ta.xpi 514636 BLAKE2B cde77ca7dda9065ec6b33a63dac37ed72edf42bc88d1f30bef962be4c3f43e90d8eb496ee4b87c4d51d39849573021eb32d5c746f4556f6c6d953e931095799a SHA512 29d3ae28a836216ab08d04499da6afc65ade4675983bfafaec9f912bf9366c6cc10e6b7148c34f23df91523e37402133fceadd213478d1e04ecb5ecfc1cfcf8e
110 +DIST firefox-104.0-te.xpi 555343 BLAKE2B f23c40c20e0a19d8ac3fd57980f4e4af6552655d1ef38debaaf2ba292ed29c74519e009eb8271cc15409bfb542fb4b7f7a306605f9b8aa5c524eebdabdc3364a SHA512 2598c0a2d06b7c344d210c7a78b4d5498d900d2cc28b4d8b0fe7ab57903b2cec34f6e549d46d22c19cca4689f79401386c37c3eba0b713bbfe6b5fb9f7022e16
111 +DIST firefox-104.0-th.xpi 615064 BLAKE2B a82b853fb506f0ea48adcc7433b81f9eb4c089e2dae097caac1f072ddcd802823545cd7d26d6ac8466d2853a2326fe69e13653898843d67e260aa9164ab9f941 SHA512 85b3b48f18ca143ee8c216e20995783c892b4c6d102589d6df057638ae144c7866d1acbb788ad21b59d40ba4ff8af11176460f9886da3027101c69127de81b48
112 +DIST firefox-104.0-tl.xpi 522949 BLAKE2B 18bcfe8cf15dadadc3195150ba4eeffb65f6b9baccae032097235508e62503263d2a661d26aee1a81df0771ac4112d6843d02242f30b3bac14dfc7ceef26b0fa SHA512 03163c26027c1dc560217a7ae73b59eeb0166bc21e371d710dc772a9b5c50c607d7829d4d68e4c905ca068ffc57a929c2b21edc91e4421a4a2dfe64e08e93a23
113 +DIST firefox-104.0-tr.xpi 565829 BLAKE2B eeb8736e23b92d4b3737cbaf575b820feeadf56218c3ae68db833e48e74e1534d8b94c482250b5e57678f48cd254e36dbf34c41f5f791ef25c82b4f92c6bb745 SHA512 3a3eeeaaad4d8cb802b3e9fb9e1f7ece69b7ddbc1f18553e37a0eddae6a1965666e651845cec57adba1a483ec4df777d7fd658b2430603c8e4994939cdb83b42
114 +DIST firefox-104.0-trs.xpi 493320 BLAKE2B fe3ea64740001cf918d855ccc68adeaec359c7475061cfa96bb9ffcb74c7db46c0a17245656743be76ec835706f9580a8c07cacf8947342caf27df55b211e10b SHA512 3aac20f7767c97a4556998ba8e26983c55c42f4ecf04c7ac2f3524adfedd79e4387f80e486117693d4dae80702a829beec6dde1b1d57eaea5b867709ce7ae23c
115 +DIST firefox-104.0-uk.xpi 634720 BLAKE2B 275901a26c5728e7849b5fa71a78b645dd3b27862bdbaba47ac84462fb047e3e6a52ef294ab687425be05c7c43c0028d009d4faa8a1cbeda1f61c205da604564 SHA512 bedc94183469173ee1092c862c597e10640f04e3a441141e9dde4ce839910383986327c7840c339872249470a9d06ff3edf49d3e3ea1f86d813840e158c91507
116 +DIST firefox-104.0-ur.xpi 561593 BLAKE2B 1dc7b04e41dc92c85c37b2628f3b094d30c092701862081a48f97a256eb95db410bdcbe1e700363d314517ff6b5d4a0689122ec274c541dc476f79f86fac7ee7 SHA512 af727ca14ea47b3bf9791d45b245cb51b8f59d8a0f9c88d358be473006616175b8cad5588d2d72f31ce57332fa4cccad97ac6d61efc4177daef6509d7e212bd1
117 +DIST firefox-104.0-uz.xpi 482123 BLAKE2B c9949381c88728ae4a1a0591dd9a127a51e6a224ba7e77fe1008dffbdcb1a3636da4ac375a49750f90d7e857725cfad755d1f1e86b89a7068ba8f9da4bf1130f SHA512 7b2918abeb301ceb73cb7c632eee07dec375fd0f40689a977f9b23312cceb896578f426d1111e74f16757393cd7686cdb228e0ec7780da434e69f8f1ce48c9a1
118 +DIST firefox-104.0-vi.xpi 586731 BLAKE2B c334569109fff41f076e3b1dd24e81fbf2eb4c23f10d1fdc667338ea17d7a1da595643d6c899080ae822a297a623a8aeef28a77efeca42d098d1b350b06054aa SHA512 65d6cf9b3dfc563a63d04bc0cdd2f95f599746a4d9e571740743722d2421f7989018eb91e07f33fb6b8e13173226e699135b403ae3a6655891f2059ec452747b
119 +DIST firefox-104.0-xh.xpi 433345 BLAKE2B a94920e0405787bc4b63569b6ddf350f0544a92c40d23405d0cfbcef2452df42312fa413036a10785c2c8b80db343c1c7f00aa18eb993c3d989af151a85b79d6 SHA512 cf9196740c88fba30dcaa10185a6f3cb31bf1c7facafd9545867c0575d4a2c02bb95b7262c59f4441c613c5782030d907fea140955b11d42724e2acd4f94eb81
120 +DIST firefox-104.0-zh-CN.xpi 587666 BLAKE2B b42aceb94ab211c6a15bb94d240879df68a5170631b109445c5d7587524fa86d8011293010a41e5b6d11a81d4e95421550a76bb7fbe4af402bcf10d5e02cec4d SHA512 90f04294ee909281f7b7ef3e54c5abf9a280d58c02708fe808537abbc84e8eb18f7682545e4a191c04c4f50363aaff87064c56463104fa79358bbcebf99ab6ce
121 +DIST firefox-104.0-zh-TW.xpi 588453 BLAKE2B 800d28e22f55ad5920788642522ad1753cc96a6e0fab0d34d49d66b09591a7c44db0c66dfb6f0d894823e865a6b15201c1111f41bbb9de8f263a36a002238583 SHA512 98978ac40a549f41cbf8a68002c0b2c2d2054515debddb102683cfda0b95851a3e943714e408ee294d7de97bacab89f9aed61a0cf06ceb3b251755c1b426a6cd
122 +DIST firefox-104.0.source.tar.xz 486299816 BLAKE2B 9de094ced1a5cbb6a5db2ec78a9a762adecbe95295a1184a5ee018350354d67d2a861a89365cd51cc07f017cd8f7a029e727577325fa63c8925d11238b18cfa6 SHA512 8778650ffa3c2d18802c348e27789f00cff143c7ca0ae01b1bcd050b6942c149db25696b48f3c702fbde901c15fcae976ac731a456f641637cae3eb56d0077d3
123 DIST firefox-91.12.0esr-ach.xpi 453218 BLAKE2B 72fe82032f20ab6c58af380d52b996b1dfccbb53341483fcb787619801e707840110490e3d5d44c2e326fb15acd02b6970f70ce3cfed34a4094da0355f415a2a SHA512 e2d6200ad969b5ff1c0b5b12b5735cc2ed9e0a8d6ef3ea1152aa72b7e57c85d5cc756e304197560f9b38e6f41390ce19ab4c6613a7e3b4c48f55af7fc28b7235
124 DIST firefox-91.12.0esr-af.xpi 426916 BLAKE2B f73e9822680474ff2ea982184e009adb9c2cc8cb9bf357241a142c4b5e178fd1cf3b59b5f14e60d5fc76b6477574b1f1742853e292c47cdd65cb185715e4bb52 SHA512 b818e45b0245dca391503a1a75a49fc4d376df6cac6e2edd7744fe2e8b91dfd7ac31e3125a6b0df530ca67200deeb38d29269622dc1fa8b120af207346bb9418
125 DIST firefox-91.12.0esr-an.xpi 499897 BLAKE2B 037a56ed04712009c4b593996068a6d7b462d600d1c35aefa68c1ba6f05a0d12195a4889e8f8cdb5d3c5953a244ee0cb9da49aa48d85ec0d328c0cacdb8e1796 SHA512 6b849d10a4c567109d0cd7b8c0ce3392e25d26cc91f29136f5c83d59306ab2f5b34c101b48b11748fb6472329cd031933676618b3f1fee251457243109f47979
126
127 diff --git a/www-client/firefox/firefox-104.0.ebuild b/www-client/firefox/firefox-104.0.ebuild
128 new file mode 100644
129 index 000000000000..f3576c6aa78f
130 --- /dev/null
131 +++ b/www-client/firefox/firefox-104.0.ebuild
132 @@ -0,0 +1,1279 @@
133 +# Copyright 1999-2022 Gentoo Authors
134 +# Distributed under the terms of the GNU General Public License v2
135 +
136 +EAPI=8
137 +
138 +FIREFOX_PATCHSET="firefox-104-patches-01j.tar.xz"
139 +
140 +LLVM_MAX_SLOT=14
141 +
142 +PYTHON_COMPAT=( python3_{8..11} )
143 +PYTHON_REQ_USE="ncurses,sqlite,ssl"
144 +
145 +WANT_AUTOCONF="2.1"
146 +
147 +VIRTUALX_REQUIRED="pgo"
148 +
149 +MOZ_ESR=
150 +
151 +MOZ_PV=${PV}
152 +MOZ_PV_SUFFIX=
153 +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
154 + MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
155 +
156 + # Convert the ebuild version to the upstream Mozilla version
157 + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
158 + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
159 + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
160 +fi
161 +
162 +if [[ -n ${MOZ_ESR} ]] ; then
163 + # ESR releases have slightly different version numbers
164 + MOZ_PV="${MOZ_PV}esr"
165 +fi
166 +
167 +MOZ_PN="${PN%-bin}"
168 +MOZ_P="${MOZ_PN}-${MOZ_PV}"
169 +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
170 +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
171 +
172 +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
173 + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
174 + virtualx xdg
175 +
176 +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
177 +
178 +if [[ ${PV} == *_rc* ]] ; then
179 + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
180 +fi
181 +
182 +PATCH_URIS=(
183 + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
184 +)
185 +
186 +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
187 + ${PATCH_URIS[@]}"
188 +
189 +DESCRIPTION="Firefox Web Browser"
190 +HOMEPAGE="https://www.mozilla.com/firefox"
191 +
192 +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
193 +
194 +SLOT="rapid"
195 +LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
196 +
197 +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
198 +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
199 +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
200 +IUSE+=" wayland wifi"
201 +
202 +# Firefox-only IUSE
203 +IUSE+=" geckodriver +gmp-autoupdate screencast +X"
204 +
205 +REQUIRED_USE="debug? ( !system-av1 )
206 + pgo? ( lto )
207 + wifi? ( dbus )"
208 +
209 +# Firefox-only REQUIRED_USE flags
210 +REQUIRED_USE+=" || ( X wayland )"
211 +REQUIRED_USE+=" pgo? ( X )"
212 +REQUIRED_USE+=" screencast? ( wayland )"
213 +
214 +BDEPEND="${PYTHON_DEPS}
215 + app-arch/unzip
216 + app-arch/zip
217 + >=dev-util/cbindgen-0.24.3
218 + net-libs/nodejs
219 + virtual/pkgconfig
220 + virtual/rust
221 + || (
222 + (
223 + sys-devel/clang:14
224 + sys-devel/llvm:14
225 + clang? (
226 + =sys-devel/lld-14*
227 + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
228 + )
229 + )
230 + (
231 + sys-devel/clang:13
232 + sys-devel/llvm:13
233 + clang? (
234 + =sys-devel/lld-13*
235 + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] )
236 + )
237 + )
238 + )
239 + amd64? ( >=dev-lang/nasm-2.14 )
240 + x86? ( >=dev-lang/nasm-2.14 )"
241 +
242 +COMMON_DEPEND="
243 + dev-libs/atk
244 + dev-libs/expat
245 + dev-libs/glib:2
246 + dev-libs/libffi:=
247 + >=dev-libs/nss-3.81
248 + >=dev-libs/nspr-4.34.1
249 + media-libs/alsa-lib
250 + media-libs/fontconfig
251 + media-libs/freetype
252 + media-libs/mesa
253 + media-video/ffmpeg
254 + sys-libs/zlib
255 + virtual/freedesktop-icon-theme
256 + x11-libs/cairo
257 + x11-libs/gdk-pixbuf
258 + x11-libs/pango
259 + x11-libs/pixman
260 + dbus? (
261 + dev-libs/dbus-glib
262 + sys-apps/dbus
263 + )
264 + jack? ( virtual/jack )
265 + libproxy? ( net-libs/libproxy )
266 + selinux? ( sec-policy/selinux-mozilla )
267 + sndio? ( >=media-sound/sndio-1.8.0-r1 )
268 + screencast? ( media-video/pipewire:= )
269 + system-av1? (
270 + >=media-libs/dav1d-0.9.3:=
271 + >=media-libs/libaom-1.0.0:=
272 + )
273 + system-harfbuzz? (
274 + >=media-gfx/graphite2-1.3.13
275 + >=media-libs/harfbuzz-2.8.1:0=
276 + )
277 + system-icu? ( >=dev-libs/icu-71.1:= )
278 + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
279 + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
280 + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
281 + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
282 + system-webp? ( >=media-libs/libwebp-1.1.0:0= )
283 + wayland? (
284 + >=media-libs/libepoxy-1.5.10-r1
285 + x11-libs/gtk+:3[wayland]
286 + x11-libs/libdrm
287 + x11-libs/libxkbcommon[wayland]
288 + )
289 + wifi? (
290 + kernel_linux? (
291 + dev-libs/dbus-glib
292 + net-misc/networkmanager
293 + sys-apps/dbus
294 + )
295 + )
296 + X? (
297 + virtual/opengl
298 + x11-libs/cairo[X]
299 + x11-libs/gtk+:3[X]
300 + x11-libs/libX11
301 + x11-libs/libXcomposite
302 + x11-libs/libXdamage
303 + x11-libs/libXext
304 + x11-libs/libXfixes
305 + x11-libs/libxkbcommon[X]
306 + x11-libs/libXrandr
307 + x11-libs/libXtst
308 + x11-libs/libxcb:=
309 + )"
310 +
311 +RDEPEND="${COMMON_DEPEND}
312 + !www-client/firefox:0
313 + !www-client/firefox:esr
314 + jack? ( virtual/jack )
315 + openh264? ( media-libs/openh264:*[plugin] )
316 + pulseaudio? (
317 + || (
318 + media-sound/pulseaudio
319 + >=media-sound/apulse-0.1.12-r4
320 + )
321 + )
322 + selinux? ( sec-policy/selinux-mozilla )"
323 +
324 +DEPEND="${COMMON_DEPEND}
325 + pulseaudio? (
326 + || (
327 + media-sound/pulseaudio
328 + >=media-sound/apulse-0.1.12-r4[sdk]
329 + )
330 + )
331 + X? (
332 + x11-libs/libICE
333 + x11-libs/libSM
334 + )"
335 +
336 +S="${WORKDIR}/${PN}-${PV%_*}"
337 +
338 +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
339 +# overridden in the enviromnent (advanced hackers only)
340 +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
341 + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
342 +fi
343 +
344 +llvm_check_deps() {
345 + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
346 + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
347 + return 1
348 + fi
349 +
350 + if use clang ; then
351 + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
352 + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
353 + return 1
354 + fi
355 +
356 + if use pgo ; then
357 + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
358 + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
359 + return 1
360 + fi
361 + fi
362 + fi
363 +
364 + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
365 +}
366 +
367 +MOZ_LANGS=(
368 + af ar ast be bg br ca cak cs cy da de dsb
369 + el en-CA en-GB en-US es-AR es-ES et eu
370 + fi fr fy-NL ga-IE gd gl he hr hsb hu
371 + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
372 + pa-IN pl pt-BR pt-PT rm ro ru
373 + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
374 +)
375 +
376 +# Firefox-only LANGS
377 +MOZ_LANGS+=( ach )
378 +MOZ_LANGS+=( an )
379 +MOZ_LANGS+=( az )
380 +MOZ_LANGS+=( bn )
381 +MOZ_LANGS+=( bs )
382 +MOZ_LANGS+=( ca-valencia )
383 +MOZ_LANGS+=( eo )
384 +MOZ_LANGS+=( es-CL )
385 +MOZ_LANGS+=( es-MX )
386 +MOZ_LANGS+=( fa )
387 +MOZ_LANGS+=( ff )
388 +MOZ_LANGS+=( gn )
389 +MOZ_LANGS+=( gu-IN )
390 +MOZ_LANGS+=( hi-IN )
391 +MOZ_LANGS+=( hy-AM )
392 +MOZ_LANGS+=( ia )
393 +MOZ_LANGS+=( km )
394 +MOZ_LANGS+=( kn )
395 +MOZ_LANGS+=( lij )
396 +MOZ_LANGS+=( mk )
397 +MOZ_LANGS+=( mr )
398 +MOZ_LANGS+=( my )
399 +MOZ_LANGS+=( ne-NP )
400 +MOZ_LANGS+=( oc )
401 +MOZ_LANGS+=( sco )
402 +MOZ_LANGS+=( si )
403 +MOZ_LANGS+=( son )
404 +MOZ_LANGS+=( szl )
405 +MOZ_LANGS+=( ta )
406 +MOZ_LANGS+=( te )
407 +MOZ_LANGS+=( tl )
408 +MOZ_LANGS+=( trs )
409 +MOZ_LANGS+=( ur )
410 +MOZ_LANGS+=( xh )
411 +
412 +mozilla_set_globals() {
413 + # https://bugs.gentoo.org/587334
414 + local MOZ_TOO_REGIONALIZED_FOR_L10N=(
415 + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
416 + )
417 +
418 + local lang xflag
419 + for lang in "${MOZ_LANGS[@]}" ; do
420 + # en and en_US are handled internally
421 + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
422 + continue
423 + fi
424 +
425 + # strip region subtag if $lang is in the list
426 + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
427 + xflag=${lang%%-*}
428 + else
429 + xflag=${lang}
430 + fi
431 +
432 + SRC_URI+=" l10n_${xflag/[_@]/-}? ("
433 + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
434 + SRC_URI+=" )"
435 + IUSE+=" l10n_${xflag/[_@]/-}"
436 + done
437 +}
438 +mozilla_set_globals
439 +
440 +moz_clear_vendor_checksums() {
441 + debug-print-function ${FUNCNAME} "$@"
442 +
443 + if [[ ${#} -ne 1 ]] ; then
444 + die "${FUNCNAME} requires exact one argument"
445 + fi
446 +
447 + einfo "Clearing cargo checksums for ${1} ..."
448 +
449 + sed -i \
450 + -e 's/\("files":{\)[^}]*/\1/' \
451 + "${S}"/third_party/rust/${1}/.cargo-checksum.json \
452 + || die
453 +}
454 +
455 +moz_install_xpi() {
456 + debug-print-function ${FUNCNAME} "$@"
457 +
458 + if [[ ${#} -lt 2 ]] ; then
459 + die "${FUNCNAME} requires at least two arguments"
460 + fi
461 +
462 + local DESTDIR=${1}
463 + shift
464 +
465 + insinto "${DESTDIR}"
466 +
467 + local emid xpi_file xpi_tmp_dir
468 + for xpi_file in "${@}" ; do
469 + emid=
470 + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
471 +
472 + # Unpack XPI
473 + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
474 +
475 + # Determine extension ID
476 + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
477 + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
478 + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
479 + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
480 + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
481 + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
482 + else
483 + die "failed to determine extension id"
484 + fi
485 +
486 + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
487 + newins "${xpi_file}" "${emid}.xpi"
488 + done
489 +}
490 +
491 +mozconfig_add_options_ac() {
492 + debug-print-function ${FUNCNAME} "$@"
493 +
494 + if [[ ${#} -lt 2 ]] ; then
495 + die "${FUNCNAME} requires at least two arguments"
496 + fi
497 +
498 + local reason=${1}
499 + shift
500 +
501 + local option
502 + for option in ${@} ; do
503 + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
504 + done
505 +}
506 +
507 +mozconfig_add_options_mk() {
508 + debug-print-function ${FUNCNAME} "$@"
509 +
510 + if [[ ${#} -lt 2 ]] ; then
511 + die "${FUNCNAME} requires at least two arguments"
512 + fi
513 +
514 + local reason=${1}
515 + shift
516 +
517 + local option
518 + for option in ${@} ; do
519 + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
520 + done
521 +}
522 +
523 +mozconfig_use_enable() {
524 + debug-print-function ${FUNCNAME} "$@"
525 +
526 + if [[ ${#} -lt 1 ]] ; then
527 + die "${FUNCNAME} requires at least one arguments"
528 + fi
529 +
530 + local flag=$(use_enable "${@}")
531 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
532 +}
533 +
534 +mozconfig_use_with() {
535 + debug-print-function ${FUNCNAME} "$@"
536 +
537 + if [[ ${#} -lt 1 ]] ; then
538 + die "${FUNCNAME} requires at least one arguments"
539 + fi
540 +
541 + local flag=$(use_with "${@}")
542 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
543 +}
544 +
545 +pkg_pretend() {
546 + if [[ ${MERGE_TYPE} != binary ]] ; then
547 + if use pgo ; then
548 + if ! has usersandbox $FEATURES ; then
549 + die "You must enable usersandbox as X server can not run as root!"
550 + fi
551 + fi
552 +
553 + # Ensure we have enough disk space to compile
554 + if use pgo || use lto || use debug ; then
555 + CHECKREQS_DISK_BUILD="13500M"
556 + else
557 + CHECKREQS_DISK_BUILD="6600M"
558 + fi
559 +
560 + check-reqs_pkg_pretend
561 + fi
562 +}
563 +
564 +pkg_setup() {
565 + if [[ ${MERGE_TYPE} != binary ]] ; then
566 + if use pgo ; then
567 + if ! has userpriv ${FEATURES} ; then
568 + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
569 + fi
570 + fi
571 +
572 + # Ensure we have enough disk space to compile
573 + if use pgo || use lto || use debug ; then
574 + CHECKREQS_DISK_BUILD="13500M"
575 + else
576 + CHECKREQS_DISK_BUILD="6400M"
577 + fi
578 +
579 + check-reqs_pkg_setup
580 +
581 + llvm_pkg_setup
582 +
583 + if use clang && use lto ; then
584 + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
585 + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
586 + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
587 +
588 + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
589 + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
590 + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
591 +
592 + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
593 + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
594 + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
595 + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
596 + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
597 + eerror " - Build ${CATEGORY}/${PN} without USE=lto"
598 + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
599 + eerror " llvm/clang/lld/rust chain depending on your @world updates)"
600 + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
601 + fi
602 + fi
603 +
604 + python-any-r1_pkg_setup
605 +
606 + # Avoid PGO profiling problems due to enviroment leakage
607 + # These should *always* be cleaned up anyway
608 + unset \
609 + DBUS_SESSION_BUS_ADDRESS \
610 + DISPLAY \
611 + ORBIT_SOCKETDIR \
612 + SESSION_MANAGER \
613 + XAUTHORITY \
614 + XDG_CACHE_HOME \
615 + XDG_SESSION_COOKIE
616 +
617 + # Build system is using /proc/self/oom_score_adj, bug #604394
618 + addpredict /proc/self/oom_score_adj
619 +
620 + if use pgo ; then
621 + # Allow access to GPU during PGO run
622 + local ati_cards mesa_cards nvidia_cards render_cards
623 + shopt -s nullglob
624 +
625 + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
626 + if [[ -n "${ati_cards}" ]] ; then
627 + addpredict "${ati_cards}"
628 + fi
629 +
630 + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
631 + if [[ -n "${mesa_cards}" ]] ; then
632 + addpredict "${mesa_cards}"
633 + fi
634 +
635 + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
636 + if [[ -n "${nvidia_cards}" ]] ; then
637 + addpredict "${nvidia_cards}"
638 + fi
639 +
640 + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
641 + if [[ -n "${render_cards}" ]] ; then
642 + addpredict "${render_cards}"
643 + fi
644 +
645 + shopt -u nullglob
646 + fi
647 +
648 + if ! mountpoint -q /dev/shm ; then
649 + # If /dev/shm is not available, configure is known to fail with
650 + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
651 + ewarn "/dev/shm is not mounted -- expect build failures!"
652 + fi
653 +
654 + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
655 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
656 + # get your own set of keys.
657 + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
658 + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
659 + fi
660 +
661 + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
662 + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
663 + fi
664 +
665 + # Mozilla API keys (see https://location.services.mozilla.com/api)
666 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
667 + # get your own set of keys.
668 + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
669 + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
670 + fi
671 +
672 + # Ensure we use C locale when building, bug #746215
673 + export LC_ALL=C
674 + fi
675 +
676 + CONFIG_CHECK="~SECCOMP"
677 + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
678 + linux-info_pkg_setup
679 +}
680 +
681 +src_unpack() {
682 + local _lp_dir="${WORKDIR}/language_packs"
683 + local _src_file
684 +
685 + if [[ ! -d "${_lp_dir}" ]] ; then
686 + mkdir "${_lp_dir}" || die
687 + fi
688 +
689 + for _src_file in ${A} ; do
690 + if [[ ${_src_file} == *.xpi ]]; then
691 + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
692 + else
693 + unpack ${_src_file}
694 + fi
695 + done
696 +}
697 +
698 +src_prepare() {
699 + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
700 + eapply "${WORKDIR}/firefox-patches"
701 +
702 + # Allow user to apply any additional patches without modifing ebuild
703 + eapply_user
704 +
705 + # Make cargo respect MAKEOPTS
706 + export CARGO_BUILD_JOBS="$(makeopts_jobs)"
707 +
708 + # Make LTO respect MAKEOPTS
709 + sed -i \
710 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
711 + "${S}"/build/moz.configure/lto-pgo.configure \
712 + || die "sed failed to set num_cores"
713 +
714 + # Make ICU respect MAKEOPTS
715 + sed -i \
716 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
717 + "${S}"/intl/icu_sources_data.py \
718 + || die "sed failed to set num_cores"
719 +
720 + # sed-in toolchain prefix
721 + sed -i \
722 + -e "s/objdump/${CHOST}-objdump/" \
723 + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
724 + || die "sed failed to set toolchain prefix"
725 +
726 + sed -i \
727 + -e 's/ccache_stats = None/return None/' \
728 + "${S}"/python/mozbuild/mozbuild/controller/building.py \
729 + || die "sed failed to disable ccache stats call"
730 +
731 + einfo "Removing pre-built binaries ..."
732 + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
733 +
734 + # Clearing checksums where we have applied patches
735 + moz_clear_vendor_checksums audioipc
736 + moz_clear_vendor_checksums audioipc-client
737 + moz_clear_vendor_checksums audioipc-server
738 +
739 + # Create build dir
740 + BUILD_DIR="${WORKDIR}/${PN}_build"
741 + mkdir -p "${BUILD_DIR}" || die
742 +
743 + # Write API keys to disk
744 + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
745 + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
746 + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
747 +
748 + xdg_environment_reset
749 +}
750 +
751 +src_configure() {
752 + # Show flags set at the beginning
753 + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
754 + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
755 + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
756 + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
757 + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
758 +
759 + local have_switched_compiler=
760 + if use clang && ! tc-is-clang ; then
761 + # Force clang
762 + einfo "Enforcing the use of clang due to USE=clang ..."
763 + have_switched_compiler=yes
764 + AR=llvm-ar
765 + AS=llvm-as
766 + CC=${CHOST}-clang
767 + CXX=${CHOST}-clang++
768 + NM=llvm-nm
769 + RANLIB=llvm-ranlib
770 + elif ! use clang && ! tc-is-gcc ; then
771 + # Force gcc
772 + have_switched_compiler=yes
773 + einfo "Enforcing the use of gcc due to USE=-clang ..."
774 + AR=gcc-ar
775 + CC=${CHOST}-gcc
776 + CXX=${CHOST}-g++
777 + NM=gcc-nm
778 + RANLIB=gcc-ranlib
779 + fi
780 +
781 + if [[ -n "${have_switched_compiler}" ]] ; then
782 + # Because we switched active compiler we have to ensure
783 + # that no unsupported flags are set
784 + strip-unsupported-flags
785 + fi
786 +
787 + # Ensure we use correct toolchain
788 + export HOST_CC="$(tc-getBUILD_CC)"
789 + export HOST_CXX="$(tc-getBUILD_CXX)"
790 + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
791 +
792 + # Pass the correct toolchain paths through cbindgen
793 + if tc-is-cross-compiler ; then
794 + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
795 + fi
796 +
797 + # Set MOZILLA_FIVE_HOME
798 + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
799 +
800 + # python/mach/mach/mixin/process.py fails to detect SHELL
801 + export SHELL="${EPREFIX}/bin/bash"
802 +
803 + # Set state path
804 + export MOZBUILD_STATE_PATH="${BUILD_DIR}"
805 +
806 + # Set MOZCONFIG
807 + export MOZCONFIG="${S}/.mozconfig"
808 +
809 + # Initialize MOZCONFIG
810 + mozconfig_add_options_ac '' --enable-application=browser
811 +
812 + # Set Gentoo defaults
813 + export MOZILLA_OFFICIAL=1
814 +
815 + mozconfig_add_options_ac 'Gentoo default' \
816 + --allow-addon-sideload \
817 + --disable-cargo-incremental \
818 + --disable-crashreporter \
819 + --disable-gpsd \
820 + --disable-install-strip \
821 + --disable-parental-controls \
822 + --disable-strip \
823 + --disable-updater \
824 + --enable-negotiateauth \
825 + --enable-new-pass-manager \
826 + --enable-official-branding \
827 + --enable-release \
828 + --enable-system-ffi \
829 + --enable-system-pixman \
830 + --host="${CBUILD:-${CHOST}}" \
831 + --libdir="${EPREFIX}/usr/$(get_libdir)" \
832 + --prefix="${EPREFIX}/usr" \
833 + --target="${CHOST}" \
834 + --without-ccache \
835 + --without-wasm-sandboxed-libraries \
836 + --with-intl-api \
837 + --with-libclang-path="$(llvm-config --libdir)" \
838 + --with-system-nspr \
839 + --with-system-nss \
840 + --with-system-zlib \
841 + --with-toolchain-prefix="${CHOST}-" \
842 + --with-unsigned-addon-scopes=app,system \
843 + --x-includes="${ESYSROOT}/usr/include" \
844 + --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
845 +
846 + # Set update channel
847 + local update_channel=release
848 + [[ -n ${MOZ_ESR} ]] && update_channel=esr
849 + mozconfig_add_options_ac '' --update-channel=${update_channel}
850 +
851 + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
852 + mozconfig_add_options_ac '' --enable-rust-simd
853 + fi
854 +
855 + # For future keywording: This is currently (97.0) only supported on:
856 + # amd64, arm, arm64 & x86.
857 + # Might want to flip the logic around if Firefox is to support more arches.
858 + if use ppc64; then
859 + mozconfig_add_options_ac '' --disable-sandbox
860 + else
861 + mozconfig_add_options_ac '' --enable-sandbox
862 + fi
863 +
864 + if [[ -s "${S}/api-google.key" ]] ; then
865 + local key_origin="Gentoo default"
866 + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
867 + key_origin="User value"
868 + fi
869 +
870 + mozconfig_add_options_ac "${key_origin}" \
871 + --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
872 + else
873 + einfo "Building without Google API key ..."
874 + fi
875 +
876 + if [[ -s "${S}/api-location.key" ]] ; then
877 + local key_origin="Gentoo default"
878 + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
879 + key_origin="User value"
880 + fi
881 +
882 + mozconfig_add_options_ac "${key_origin}" \
883 + --with-google-location-service-api-keyfile="${S}/api-location.key"
884 + else
885 + einfo "Building without Location API key ..."
886 + fi
887 +
888 + if [[ -s "${S}/api-mozilla.key" ]] ; then
889 + local key_origin="Gentoo default"
890 + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
891 + key_origin="User value"
892 + fi
893 +
894 + mozconfig_add_options_ac "${key_origin}" \
895 + --with-mozilla-api-keyfile="${S}/api-mozilla.key"
896 + else
897 + einfo "Building without Mozilla API key ..."
898 + fi
899 +
900 + mozconfig_use_with system-av1
901 + mozconfig_use_with system-harfbuzz
902 + mozconfig_use_with system-harfbuzz system-graphite2
903 + mozconfig_use_with system-icu
904 + mozconfig_use_with system-jpeg
905 + mozconfig_use_with system-libevent
906 + mozconfig_use_with system-libvpx
907 + mozconfig_use_with system-png
908 + mozconfig_use_with system-webp
909 +
910 + mozconfig_use_enable dbus
911 + mozconfig_use_enable libproxy
912 +
913 + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
914 +
915 + mozconfig_use_enable geckodriver
916 +
917 + if use hardened ; then
918 + mozconfig_add_options_ac "+hardened" --enable-hardening
919 + append-ldflags "-Wl,-z,relro -Wl,-z,now"
920 + fi
921 +
922 + local myaudiobackends=""
923 + use jack && myaudiobackends+="jack,"
924 + use sndio && myaudiobackends+="sndio,"
925 + use pulseaudio && myaudiobackends+="pulseaudio,"
926 + ! use pulseaudio && myaudiobackends+="alsa,"
927 +
928 + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
929 +
930 + mozconfig_use_enable wifi necko-wifi
931 +
932 + if use X && use wayland ; then
933 + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
934 + elif ! use X && use wayland ; then
935 + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
936 + else
937 + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
938 + fi
939 +
940 + if use lto ; then
941 + if use clang ; then
942 + # Upstream only supports lld when using clang
943 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
944 +
945 + mozconfig_add_options_ac '+lto' --enable-lto=cross
946 +
947 + else
948 + # ThinLTO is currently broken, see bmo#1644409
949 + mozconfig_add_options_ac '+lto' --enable-lto=full
950 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
951 + fi
952 +
953 + if use pgo ; then
954 + mozconfig_add_options_ac '+pgo' MOZ_PGO=1
955 +
956 + if use clang ; then
957 + # Used in build/pgo/profileserver.py
958 + export LLVM_PROFDATA="llvm-profdata"
959 + fi
960 + fi
961 + else
962 + # Avoid auto-magic on linker
963 + if use clang ; then
964 + # This is upstream's default
965 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
966 + else
967 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
968 + fi
969 + fi
970 +
971 + # LTO flag was handled via configure
972 + filter-flags '-flto*'
973 +
974 + mozconfig_use_enable debug
975 + if use debug ; then
976 + mozconfig_add_options_ac '+debug' --disable-optimize
977 + else
978 + if is-flag '-g*' ; then
979 + if use clang ; then
980 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
981 + else
982 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
983 + fi
984 + else
985 + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
986 + fi
987 +
988 + if is-flag '-O0' ; then
989 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
990 + elif is-flag '-O4' ; then
991 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
992 + elif is-flag '-O3' ; then
993 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
994 + elif is-flag '-O1' ; then
995 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
996 + elif is-flag '-Os' ; then
997 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
998 + else
999 + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
1000 + fi
1001 + fi
1002 +
1003 + # Debug flag was handled via configure
1004 + filter-flags '-g*'
1005 +
1006 + # Optimization flag was handled via configure
1007 + filter-flags '-O*'
1008 +
1009 + # Modifications to better support ARM, bug #553364
1010 + if use cpu_flags_arm_neon ; then
1011 + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
1012 +
1013 + if ! tc-is-clang ; then
1014 + # thumb options aren't supported when using clang, bug 666966
1015 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \
1016 + --with-thumb=yes \
1017 + --with-thumb-interwork=no
1018 + fi
1019 + fi
1020 +
1021 + if [[ ${CHOST} == armv*h* ]] ; then
1022 + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
1023 +
1024 + if ! use system-libvpx ; then
1025 + sed -i \
1026 + -e "s|softfp|hard|" \
1027 + "${S}"/media/libvpx/moz.build \
1028 + || die
1029 + fi
1030 + fi
1031 +
1032 + if use clang ; then
1033 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
1034 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
1035 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
1036 + local disable_elf_hack=
1037 + if use amd64 ; then
1038 + disable_elf_hack=yes
1039 + elif use x86 ; then
1040 + disable_elf_hack=yes
1041 + elif use arm ; then
1042 + disable_elf_hack=yes
1043 + fi
1044 +
1045 + if [[ -n ${disable_elf_hack} ]] ; then
1046 + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
1047 + fi
1048 + elif tc-is-gcc ; then
1049 + if ver_test $(gcc-fullversion) -ge 10 ; then
1050 + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1051 + append-cxxflags -fno-tree-loop-vectorize
1052 + fi
1053 + fi
1054 +
1055 + # Additional ARCH support
1056 + case "${ARCH}" in
1057 + arm)
1058 + # Reduce the memory requirements for linking
1059 + if use clang ; then
1060 + # Nothing to do
1061 + :;
1062 + elif use lto ; then
1063 + append-ldflags -Wl,--no-keep-memory
1064 + else
1065 + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
1066 + fi
1067 + ;;
1068 + esac
1069 +
1070 + if ! use elibc_glibc ; then
1071 + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
1072 + fi
1073 +
1074 + # Allow elfhack to work in combination with unstripped binaries
1075 + # when they would normally be larger than 2GiB.
1076 + append-ldflags "-Wl,--compress-debug-sections=zlib"
1077 +
1078 + # Make revdep-rebuild.sh happy; Also required for musl
1079 + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
1080 +
1081 + # Pass $MAKEOPTS to build system
1082 + export MOZ_MAKE_FLAGS="${MAKEOPTS}"
1083 +
1084 + # Use system's Python environment
1085 + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
1086 +
1087 + if use system-python-libs; then
1088 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
1089 + else
1090 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
1091 + fi
1092 +
1093 + # Disable notification when build system has finished
1094 + export MOZ_NOSPAM=1
1095 +
1096 + # Portage sets XARGS environment variable to "xargs -r" by default which
1097 + # breaks build system's check_prog() function which doesn't support arguments
1098 + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
1099 +
1100 + # Set build dir
1101 + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
1102 +
1103 + # Show flags we will use
1104 + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
1105 + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
1106 + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
1107 + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
1108 + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
1109 +
1110 + # Handle EXTRA_CONF and show summary
1111 + local ac opt hash reason
1112 +
1113 + # Apply EXTRA_ECONF entries to $MOZCONFIG
1114 + if [[ -n ${EXTRA_ECONF} ]] ; then
1115 + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
1116 + for opt in "${ac[@]}"; do
1117 + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
1118 + done
1119 + fi
1120 +
1121 + echo
1122 + echo "=========================================================="
1123 + echo "Building ${PF} with the following configuration"
1124 + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
1125 + [[ -z ${hash} || ${hash} == \# ]] \
1126 + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
1127 + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
1128 + done
1129 + echo "=========================================================="
1130 + echo
1131 +
1132 + ./mach configure || die
1133 +}
1134 +
1135 +src_compile() {
1136 + local virtx_cmd=
1137 +
1138 + if use pgo ; then
1139 + virtx_cmd=virtx
1140 +
1141 + # Reset and cleanup environment variables used by GNOME/XDG
1142 + gnome2_environment_reset
1143 +
1144 + addpredict /root
1145 + fi
1146 +
1147 + if ! use X && use wayland; then
1148 + local -x GDK_BACKEND=wayland
1149 + else
1150 + local -x GDK_BACKEND=x11
1151 + fi
1152 +
1153 + ${virtx_cmd} ./mach build --verbose \
1154 + || die
1155 +}
1156 +
1157 +src_install() {
1158 + # xpcshell is getting called during install
1159 + pax-mark m \
1160 + "${BUILD_DIR}"/dist/bin/xpcshell \
1161 + "${BUILD_DIR}"/dist/bin/${PN} \
1162 + "${BUILD_DIR}"/dist/bin/plugin-container
1163 +
1164 + DESTDIR="${D}" ./mach install || die
1165 +
1166 + # Upstream cannot ship symlink but we can (bmo#658850)
1167 + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
1168 + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
1169 +
1170 + # Don't install llvm-symbolizer from sys-devel/llvm package
1171 + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
1172 + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
1173 + fi
1174 +
1175 + # Install policy (currently only used to disable application updates)
1176 + insinto "${MOZILLA_FIVE_HOME}/distribution"
1177 + newins "${FILESDIR}"/distribution.ini distribution.ini
1178 + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
1179 +
1180 + # Install system-wide preferences
1181 + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
1182 + insinto "${PREFS_DIR}"
1183 + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
1184 +
1185 + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
1186 +
1187 + # Set dictionary path to use system hunspell
1188 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
1189 + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
1190 + EOF
1191 +
1192 + # Force hwaccel prefs if USE=hwaccel is enabled
1193 + if use hwaccel ; then
1194 + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
1195 + >>"${GENTOO_PREFS}" \
1196 + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
1197 +
1198 + if use wayland; then
1199 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
1200 + pref("gfx.x11-egl.force-enabled", false);
1201 + EOF
1202 + else
1203 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
1204 + pref("gfx.x11-egl.force-enabled", true);
1205 + EOF
1206 + fi
1207 + fi
1208 +
1209 + if ! use gmp-autoupdate ; then
1210 + local plugin
1211 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1212 + einfo "Disabling auto-update for ${plugin} plugin ..."
1213 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
1214 + pref("media.${plugin}.autoupdate", false);
1215 + EOF
1216 + done
1217 + fi
1218 +
1219 + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
1220 + if use system-harfbuzz ; then
1221 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
1222 + sticky_pref("gfx.font_rendering.graphite.enabled", true);
1223 + EOF
1224 + fi
1225 +
1226 + # Install language packs
1227 + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
1228 + if [[ -n "${langpacks}" ]] ; then
1229 + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
1230 + fi
1231 +
1232 + # Install geckodriver
1233 + if use geckodriver ; then
1234 + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
1235 + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
1236 + exeinto "${MOZILLA_FIVE_HOME}"
1237 + doexe "${BUILD_DIR}"/dist/bin/geckodriver
1238 +
1239 + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
1240 + fi
1241 +
1242 + # Install icons
1243 + local icon_srcdir="${S}/browser/branding/official"
1244 + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
1245 +
1246 + insinto /usr/share/icons/hicolor/symbolic/apps
1247 + newins "${icon_symbolic_file}" ${PN}-symbolic.svg
1248 +
1249 + local icon size
1250 + for icon in "${icon_srcdir}"/default*.png ; do
1251 + size=${icon%.png}
1252 + size=${size##*/default}
1253 +
1254 + if [[ ${size} -eq 48 ]] ; then
1255 + newicon "${icon}" ${PN}.png
1256 + fi
1257 +
1258 + newicon -s ${size} "${icon}" ${PN}.png
1259 + done
1260 +
1261 + # Install menu
1262 + local app_name="Mozilla ${MOZ_PN^}"
1263 + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
1264 + local desktop_filename="${PN}.desktop"
1265 + local exec_command="${PN}"
1266 + local icon="${PN}"
1267 + local use_wayland="false"
1268 +
1269 + if use wayland ; then
1270 + use_wayland="true"
1271 + fi
1272 +
1273 + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
1274 +
1275 + sed -i \
1276 + -e "s:@NAME@:${app_name}:" \
1277 + -e "s:@EXEC@:${exec_command}:" \
1278 + -e "s:@ICON@:${icon}:" \
1279 + "${WORKDIR}/${PN}.desktop-template" \
1280 + || die
1281 +
1282 + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
1283 +
1284 + rm "${WORKDIR}/${PN}.desktop-template" || die
1285 +
1286 + # Install wrapper script
1287 + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
1288 + newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
1289 +
1290 + # Update wrapper
1291 + sed -i \
1292 + -e "s:@PREFIX@:${EPREFIX}/usr:" \
1293 + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
1294 + -e "s:@APULSELIB_DIR@:${apulselib}:" \
1295 + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
1296 + "${ED}/usr/bin/${PN}" \
1297 + || die
1298 +}
1299 +
1300 +pkg_preinst() {
1301 + xdg_pkg_preinst
1302 +
1303 + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
1304 + # does not need to be forced into the LD_LIBRARY_PATH
1305 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1306 + einfo "APULSE found; Generating library symlinks for sound support ..."
1307 + local lib
1308 + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
1309 + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
1310 + # A quickpkg rolled by hand will grab symlinks as part of the package,
1311 + # so we need to avoid creating them if they already exist.
1312 + if [[ ! -L ${lib##*/} ]] ; then
1313 + ln -s "${lib}" ${lib##*/} || die
1314 + fi
1315 + done
1316 + popd &>/dev/null || die
1317 + fi
1318 +}
1319 +
1320 +pkg_postinst() {
1321 + xdg_pkg_postinst
1322 +
1323 + if ! use gmp-autoupdate ; then
1324 + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
1325 + elog "installing into new profiles:"
1326 + local plugin
1327 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1328 + elog "\t ${plugin}"
1329 + done
1330 + elog
1331 + fi
1332 +
1333 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1334 + elog "Apulse was detected at merge time on this system and so it will always be"
1335 + elog "used for sound. If you wish to use pulseaudio instead please unmerge"
1336 + elog "media-sound/apulse."
1337 + elog
1338 + fi
1339 +
1340 + local show_doh_information
1341 + local show_normandy_information
1342 + local show_shortcut_information
1343 +
1344 + if [[ -z "${REPLACING_VERSIONS}" ]] ; then
1345 + # New install; Tell user that DoH is disabled by default
1346 + show_doh_information=yes
1347 + show_normandy_information=yes
1348 + show_shortcut_information=no
1349 + else
1350 + local replacing_version
1351 + for replacing_version in ${REPLACING_VERSIONS} ; do
1352 + if ver_test "${replacing_version}" -lt 91.0 ; then
1353 + # Tell user that we no longer install a shortcut
1354 + # per supported display protocol
1355 + show_shortcut_information=yes
1356 + fi
1357 + done
1358 + fi
1359 +
1360 + if [[ -n "${show_doh_information}" ]] ; then
1361 + elog
1362 + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
1363 + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
1364 + elog "DNS traffic to Cloudflare by default is not a good idea and applications"
1365 + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
1366 + elog "(\"Off by choice\") by default."
1367 + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
1368 + fi
1369 +
1370 + # bug 713782
1371 + if [[ -n "${show_normandy_information}" ]] ; then
1372 + elog
1373 + elog "Upstream operates a service named Normandy which allows Mozilla to"
1374 + elog "push changes for default settings or even install new add-ons remotely."
1375 + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
1376 + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
1377 + elog "concerns prevail, which is why we have switched off the use of this"
1378 + elog "service by default."
1379 + elog
1380 + elog "To re-enable this service set"
1381 + elog
1382 + elog " app.normandy.enabled=true"
1383 + elog
1384 + elog "in about:config."
1385 + fi
1386 +
1387 + if [[ -n "${show_shortcut_information}" ]] ; then
1388 + elog
1389 + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
1390 + elog "each supported display protocol. Instead we will only install"
1391 + elog "one generic Mozilla ${PN^} shortcut."
1392 + elog "If you still want to be able to select between running Mozilla ${PN^}"
1393 + elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
1394 + fi
1395 +
1396 + # bug 835078
1397 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
1398 + ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
1399 + ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
1400 + ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
1401 + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
1402 + fi
1403 +
1404 + elog
1405 + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
1406 + elog "useragent checks. To temporarily fix this, enter about:config and modify "
1407 + elog "network.http.useragent.forceVersion preference to \"99\"."
1408 + elog "Or install an addon to change your useragent."
1409 + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
1410 + elog
1411 +}