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: Wed, 15 Mar 2023 08:24:06
Message-Id: 1678868639.f3a0307d772a0d43009c795c0bc85f15918c0e6d.juippis@gentoo
1 commit: f3a0307d772a0d43009c795c0bc85f15918c0e6d
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 15 08:23:37 2023 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 15 08:23:59 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3a0307d
7
8 www-client/firefox: add 102.9.0
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 www-client/firefox/Manifest | 98 +++
13 www-client/firefox/firefox-102.9.0.ebuild | 1274 +++++++++++++++++++++++++++++
14 2 files changed, 1372 insertions(+)
15
16 diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
17 index bb81be11050e..535622cf467c 100644
18 --- a/www-client/firefox/Manifest
19 +++ b/www-client/firefox/Manifest
20 @@ -96,6 +96,104 @@ DIST firefox-102.8.0esr-xh.xpi 427933 BLAKE2B 82b1d0b73d180993968be57bd2d0c3835c
21 DIST firefox-102.8.0esr-zh-CN.xpi 613305 BLAKE2B 1de6727ae56d346666db1619cb456b011799bcc1e91cef92ee60e4a7f228c4e87a1fe7dbf9b62555c5d3b2e56604463be482aada1067254225d9c9fad560d4ae SHA512 ea575f9545118b4d017abae1bd9d99af33d562ef073385b525478923f8e093ee62f2b6e28ee0d1e48d75543f4fd16c46e6d867a8794b1f33212100a0e34ceb21
22 DIST firefox-102.8.0esr-zh-TW.xpi 614571 BLAKE2B d0332f219a6443f3bd99ad33715ea1e83438c764c5ad1634704baff7b641fe7bd4890e253264cf07da9203cac0ef02fed3324b14fbc556d3dcb8ba028888da5c SHA512 0656e9f4565de49b2c8c249615b45e8e91ac1ba4704a1a00eebe3f2f1f653f2e717e4237f0356c22d6b4f16cf4798f3fd558c8af7afed139d46dab16fabcefe8
23 DIST firefox-102.8.0esr.source.tar.xz 479172816 BLAKE2B 0b4cbf11028abc73a8479fb94670e98f0a293fc12381b1eccbadd64a33db068ab7434357abbe3ce0773382c7c90b8fe4d2258cc55abe8bdc2f551bba1dc2b797 SHA512 93ea87997b66088b94c6e943b6e99e9a71d1908444d096c0f65b6876d2c584e55ff6120266f3851f986b664bd1f12fa31206b03479c2b751e7c3ca097ac14275
24 +DIST firefox-102.9.0esr-ach.xpi 466442 BLAKE2B 31f9631e4257b0c9b740c11429c1d038d25482e596c4053ee37087995ed308fc57bc77502d9ffc5bcf6986220ebc5dd7aed6a72e8269582d4c1567ac02d149ea SHA512 596b7388115d8dee354a5d80c96abf7f14fd33d1f592f7ed1d0cee620a6d0573a947212b1d694972efaf58d1cfc0265503b406903eb2a74c73fb8333f2f32922
25 +DIST firefox-102.9.0esr-af.xpi 429117 BLAKE2B 6146a1edfd641770c5b0c9265ed32831cbc83df0dffb055557ce5c4fc1eeb08b5457ebfe4a39ef0f2069fcd548a73ad56c4e6399180fe7b62d845f194f7c7416 SHA512 41c35a08d87d2289916532ecffa598ac8595bea1812b42f51f71c0594c661f6aaa211660fbeafbb57a514bad86983e08da740c58d475dcb2b314af757425daa3
26 +DIST firefox-102.9.0esr-an.xpi 510484 BLAKE2B fbc9117ebbaae78dab3dfdb3253cb09ee87cebcc1bd09a0ceb2c62f8f98aba35c8d9d5f15ae456d0f974715abfe0cdb5d161affc1801a7d10487d4bb5c9db0ba SHA512 8ff42fe5c664a676cc448655a6bd283e2fbed7dc8a31bff7416da27809d78f9f2216b7384fa37fa517c6f1818e40a33668a72768a3947a1e3af9c840dded1c11
27 +DIST firefox-102.9.0esr-ar.xpi 578878 BLAKE2B 4fe95bcd90d5181878cfb4d92bf8978ce360a16be5b8743fd9432c31829c2a6c6867b4e9833fca8828dfb1e84418c0ef535025330ae8d926b0dd1d747b0dc463 SHA512 190a2322cdf6889bd86648c441032910eac031670c278b7e95354af6504ef52134aa06be8a46126d6fc4f4699b5fd71b7cf92cba12ccaa5f25963c6ce4bedfce
28 +DIST firefox-102.9.0esr-ast.xpi 498100 BLAKE2B f34a100d4bc7b94960d4707f20184e70d0c87dcbff6aaa3f368a7e132bb24ddd4fdd3bcb463755f9e5e0afd5e306fde4d25d1574450cc3837301b8b07145e50a SHA512 3577372dbebfa4c7480730c5d78fa223baf636216a0577a201ec8eaa265689bd37ff7677fcdccb9207168ecbd6c54979f3ba2a3dece8276ab36560eb063aa802
29 +DIST firefox-102.9.0esr-az.xpi 500782 BLAKE2B 3b5e632c538e4ef899400ecdf38cd892b6be41c102f32a54666237077176dae8fcdb283b4a0a79713eb4238272732441ae4cb005b5eece4a93271a1085868578 SHA512 439c20942ca5ebbe206533a2a25f904e344cf5fc33156f7c42773b48e7ecdec8518633f857160aad01ee76fdd26aa5aafcabbddd94640d3a5841f6cd041b6e79
30 +DIST firefox-102.9.0esr-be.xpi 666686 BLAKE2B 41f74ab084afff34907c4ba8206da03d840db0b74d0bbce6a0d9dbf57c3c89c6725a75c42b4df82cfad00ddda98470fbe3394f9e619571a0a65c924e7638a2f8 SHA512 1a3fbf17a11422a05f39782be819e4357044e664462a3f6055de93931b7af8fa2826d16eaab4041c4f4192f2cbb38dc396807787d39fe9a74c318c6cc2fa056b
31 +DIST firefox-102.9.0esr-bg.xpi 591341 BLAKE2B efa86fe1b6aad0223a870a8a47b395e37ed87dbf121ea8573d320abf865e0223fc6846f787de054c4ef21d6473a89bb86e68e6f9e8440253f664971ba9d8eaab SHA512 ddd540e3795645c6ec343d8571cef431b9a7096d2e0d396d01dff9389b71dd34aabd9233b183485815ebdd3634159c7fbcc45540650e88397c04f1a675ab06c4
32 +DIST firefox-102.9.0esr-bn.xpi 591683 BLAKE2B 0f1577028cc470a379342696009245e0aaa34fb88d61bf38d5c818a8179cd952bb544de57041e3ffe6a1acbb2a69c566756310fe2f9f3a35fc218883f9581b16 SHA512 9985e9a221ffa0389b95751f1adefa39f20f98ea94625ab008f618c0619af99f28b81825a33656ee0df4c9e7e9c64e1722f17272384de7e18f6414b09844347d
33 +DIST firefox-102.9.0esr-br.xpi 555842 BLAKE2B 576e671def38b2852d7f6f5ab28bf174796bf9125f68a3aab32df998817d8a15f23183d648dcc2f5e07e0627beff2779a85155d2dd3e3c734e8d1371d36ecdd1 SHA512 28f8d111630ff88fa8d8f800be3c297a0acef9126f8fa3a494d391a70ec94432edb574492320bd9088e1c89831b81724eb4afac361cb3263af04a846c4ed0825
34 +DIST firefox-102.9.0esr-bs.xpi 471718 BLAKE2B 8744c303d5b66f27a63e31a60ca062f76c8d73278954117d8d2a015fc3dcb2ae1c57bf4a1c919d93963560b6881ba4f9014ccf9c344b2a49c02f3a93c803907d SHA512 4e8ce75992b4f029b8f62936aa3053f01eafd30fdd6f7b5c55a5cdbd918bae487bb7158adef74b63f3eaf942f7038aa28d397ad93d975624facc2788adf0a970
35 +DIST firefox-102.9.0esr-ca-valencia.xpi 549201 BLAKE2B b0ee1849b67cca55cbf76f7620de23d674f7d0fc26f47c0fc8f4bb6ea6af8f0df9a13242166729034b497fdcd8a39132ab34f7f3567d56810a410d2fd1efe72a SHA512 35b6272c33767f57dd2b154b4175b7c638a7cabe591573220e2dc3012af146186b30f7f9ebae0737f9ad984918185397674a9c47cd540158d4a14701906185ca
36 +DIST firefox-102.9.0esr-ca.xpi 561934 BLAKE2B 076be61f59edcce66561b4e60eb930692342111d123e704c4b4461d41d463295552f756048fb085883d4953486c53ab8410a1a894497501186f645e3ae997625 SHA512 8c4d5ba48fa63a10e7ac50d9d1b60cc96e6a71e5b1d776ca070fb0ab991fcbe3176c564ddb773b865343ebed4cb59d82ca56d24633e05999d6bcd7c1981a7c45
37 +DIST firefox-102.9.0esr-cak.xpi 563838 BLAKE2B 01043b584f5a6332f837885f631e966dda91fcda201fda7a1254657877519560bb811d9fbaf9c58b03859032042e69bc153168e4b4134f6b2058ed5c9affd297 SHA512 d6db06d9f6ab3022d0e1890444afc55b9ef3d8a3dee541945c926662f13f87a4b665527ab8222e9b784fccae7cc3a8c4a6db795ce817b526d1841607a6fb2148
38 +DIST firefox-102.9.0esr-cs.xpi 599797 BLAKE2B 39eaaace1b4463668e32d8401c346067f18420e7867ed9c10b0ff56cf5feafb3d3af76149deed8e1715dbecf4668bcb5964e142ccca354070692945e4b8a6927 SHA512 8c58f5784d6a65ba641db25b9435e58a56a7c0ab6e0e4816f9cf4d997c28790df0ea7f2e05c283331a4a47b5c916659d6ec7932088ad6dc84403835a68e4c9f8
39 +DIST firefox-102.9.0esr-cy.xpi 579217 BLAKE2B f7b7943ead61f8c665d4dc750c001464d4cc9297e95604215187583b077d0b242f465c71df8484c6bf49ad77517ab9a547235e7e8b64196eef22d99a628f4fca SHA512 3956eb92f5ab8e2305e93031835ece7df9ed187d8a5343ff4c6de6decbe86296c85921c325a22ea29159226c131bbd2772d49d366b3d34ae458f45f909d9a1b4
40 +DIST firefox-102.9.0esr-da.xpi 570509 BLAKE2B 58812d1dbe00eefb73b6685d8e56e63538eeb06be90f87395d556b62a467cd0315e4dcf53ff4e4e3e190897a9051a186257b971c96f2ae1e6184e6abb8ed2eea SHA512 5c62aa273bc54439c7c9e97817791ba90a6ad46a52a5ed5af831a7a009f82394fc298dda8de5ec77f532efb3c2a2ea79247c268e221f878ec189a02e2c94fca9
41 +DIST firefox-102.9.0esr-de.xpi 591568 BLAKE2B 40bfb1b98cb6f6ff6aacaf57548d04b06e8d9336f85fba97f1eb3b74e6ae870ceb68373b3eb0750199979c98ee59918510174ddb6121d02fe60e7e132d8f55b3 SHA512 103c8cb3e1117595a40694bb3380b53e62735fb5792aea4791cf48a442b65cc641de7eec6d6bad459080650284b4b2e2d21ce4aabe2f7a6ce1d9b41a40aa44e2
42 +DIST firefox-102.9.0esr-dsb.xpi 600379 BLAKE2B 7673081688b77bcab05f3eb605e1dce6cc73cfa5e8643b867ba158713eb5bac2405aeed65b48d711a03823b74ff641b34d95366eaa8646c13c8b3cf73afcdee1 SHA512 64ba4cb48d4cb7831cb59f2e430550ba234f51cbda50bfd3e76405fbeb0a6b1537eff30cd545a65510fd520e3b491f6a48a5e5da3e5f4a5e45e88c0786c9421b
43 +DIST firefox-102.9.0esr-el.xpi 681665 BLAKE2B ac24005d4e16b0297fe51f5ad4d7c23e122690da6c8c6fc26563bc15237ab6cc5c74443f1e3dbb6e74d3e408e5630692aca3b19162f2df1bd5fd90716757f941 SHA512 65803852032a21ce478ee1df28d3a038d4a64a0227ce502d00808237db876bb6441bf4e1d9d4817a19669a2d49cda6116f331ec42ea0a324a722dd523bf09a59
44 +DIST firefox-102.9.0esr-en-CA.xpi 541051 BLAKE2B e8dc2f554b976f1f3490da6f4f993ddbd14a814af52b3eac7216a6817756a09e0b4705a17b9d9a1e830e445ee8d239d56fc98182e7e8f4c455df591f26917c2e SHA512 fd744b9c55b478f436fc07a465e50e616a587ff00107ac513d9198956dfbc5edf1396b89fde44b98c75f88d421842fedd1a53cc6d438458dc4ff788ff3e17db1
45 +DIST firefox-102.9.0esr-en-GB.xpi 543998 BLAKE2B bc8a271ac0b18d5e70a1df444a859c2ebd2d43f51f7e38a2bb341ba5a7b84d0108c75b8d2d1de46c387583527eefa5d9136286b86cdfe1886d6589613aafde19 SHA512 e9eca66976af1527faa22c76953df8c729b1a66b12471fe0977a650a5d211488fbe4bf78c9ce1a00bfd4004a729ef0ca973abbe789fdedd8ffb36326d82ac462
46 +DIST firefox-102.9.0esr-eo.xpi 571433 BLAKE2B 14dce52a1ccfcc8c35039aac6569a253733d9a064f265e1050588c54c3a75cd4f01af5de5457fa30984966bda34723d706fd2f111c0e32791694ec3f24aa1118 SHA512 7e3b6d1fa85ef237886d7039795b7306c2f0a8349327e2b59dd82902365322834ce30c420b7e23588d840f4a18c311f730d43bd49c451eece6ced22f4a9b262d
47 +DIST firefox-102.9.0esr-es-AR.xpi 584184 BLAKE2B 8e5f1a962227e0a0089a782b964c5076ca2663c43f6d5f93ffb8cd142d8755058de4c361d440040f39f0a0efd477c3d9eb05b67f7c7e9815ec248d4d61c38182 SHA512 d7a9a47157741684353829fb7272a7043ffa49d88b675b45d0872a4084ce668ee186d0193f71df5ae765646c78f472649c4526d17b1a34d1c294f975b6bc3bee
48 +DIST firefox-102.9.0esr-es-CL.xpi 583187 BLAKE2B b80aa6eafd8ae2160de417b7cc931cd4df2fb7afaecce8ddab3928fe79265e306d4cb6572c4193b9ba18a53cd1016c6395da0eadb6fd77401ab2f56cd9982879 SHA512 d4583e6092e6f0b2651f0d9e8c75750b420994bb68c230ec8917b5f7d61bede6ee8c7dafdaed23bf6ebe506798806aa524001ef3854536058004690cfa188f42
49 +DIST firefox-102.9.0esr-es-ES.xpi 576079 BLAKE2B 92b21195710719ae9c847ca4402f3b651e4434711b6bd59d7aa8432c1e300556e947adf5c8e3ddf5814620dd62952a2a2be6d7a7166cd546d3d60b2353cf42fc SHA512 6a8c94c311c23bdf1d72bc4e29c323a761babde9bb8355c2a9807c4c93e961bd747fb1c8b4bf09b911c8f1c839486ce0d25ccbd72818aa60524d42c5624231f1
50 +DIST firefox-102.9.0esr-es-MX.xpi 586658 BLAKE2B f03f053c28c01ae72896b67d92ed71cda10a7110d7ecc56338cb37e3a901f2855119862ba9637af9db28605654d43a0e51e5231f1e170c10b953392f564c4a93 SHA512 ef727fd22ae14d3f6052cd913b417361576e7d687576aa2e46e6f8c3032785ac81089809951cf9dd60697f412b397d97006df48df694a01d2e22d742925ac928
51 +DIST firefox-102.9.0esr-et.xpi 543293 BLAKE2B df3307c6aaed954be0ed1f5d3b4865460fa0d13fd9e515fc3d536bd51285c9bd5e79ed1280f5f59d1e1349e553b5e1aea7a76cf82cd525f668eccf23db3332e6 SHA512 7d498fedcfaca2615c2542ceb3579891deb4f183bb04eff4fa0e65430a2b06f0899a1cdf64c0172c7664ac5edce271f82581ba315d6bc64ef2dd5f069c2c2b4f
52 +DIST firefox-102.9.0esr-eu.xpi 572528 BLAKE2B ddace199ce7d6e523218859fa310429b87e87ee52f57ed3a8b2620a8b311ed240af75af3380544e086fc2478491a6b2de52ef41474dfb2f9c9e25004a0008aab SHA512 1e8b84d9bb87d251d0e5403776ec80dbea2e7d635fc316e98064416953f6979bfbdc6a32b5db52dce6889907a0f18c8951d5ee9ee103ec2408fa09274aa1453c
53 +DIST firefox-102.9.0esr-fa.xpi 583112 BLAKE2B 22dc85d24aa42fa1d3c7d9756fcbbfeeab8996a19ebc4a847b82373d82669b3ce511ea33863c6b6fdea9f328b177cd267992aa063a40c427555ac7bd5309f7ca SHA512 2661c2137f7f688895900b4eee6cef267d72fd807932b4d1793293f7070063947012ce6d810549e39ca2783b74bbf427d93f397a764c518f155f4d3b24245a5e
54 +DIST firefox-102.9.0esr-ff.xpi 483128 BLAKE2B e66e78734efd3d5eea3233bc45ffc6592520e31c5896744d5bda88aceb7642ecae39893271a4b963b1a7d1d853ccca95272122000b03c064e7d49fa5e253486e SHA512 aea03f85777a8fc4cf0d50d2d098a7c03fbf55f549586164fac26e01010bb9f86405ac45f60e89bc9e7946fde2822594a97df546f540b5ba42d8e5ef0f926321
55 +DIST firefox-102.9.0esr-fi.xpi 568236 BLAKE2B d4a2f3c33982ead56278ffd2ddeda4b84d8bff9d913a603410d7f24e2cf778494e9d785cdd9dbb7026ecefeca2cbbb7ef1478ab7f0a4beb34551bf63c0683488 SHA512 71ff17c439612ec9ba1265715b0e135c6e87fc2870741f6137cffa7e7656d6c4f4d511f047f452b8273d0afdb473e148a77e3ef555652ebf052b1e29cd2d4bbf
56 +DIST firefox-102.9.0esr-fr.xpi 595536 BLAKE2B 87b345014bd731d1f60aafee5534f2439d6ae599fe7072a00057c807b275a7e2c1de3e00a43fe7787ebfecc658054e174c1c44c62b7e5014ba87dfb66ac9b721 SHA512 ff96bafe88fb6a54e3f5318c7b71559166212019bb37ebfc765536d337456ab1adfee8cc06e03be38b88e6c0e202e90659f99fa68762d3f69b8a29e1cc67c390
57 +DIST firefox-102.9.0esr-fy-NL.xpi 580238 BLAKE2B a894823bc4a1ba2b9e34a10ab3f86f88a0bb7d023fdf8b2967715687693cd7f4971bee87d0d919058f5fc1d22598a90827c38d74fa20bfd787b5c7872a62eed9 SHA512 fb836e18372e764d81780f6c467062d93978b69fa221410dcc13671e23088b72efc5aefe61ad98544ac9775b2671b3ce6d98dc3b9a7ab8dbfbbab75fd8f30a8b
58 +DIST firefox-102.9.0esr-ga-IE.xpi 480689 BLAKE2B 8221c087d15e7abb4420315df50c06079a86e24158ea77e292603f07de199cca31fb38ed2e298749af8965bd107102a7b53bb5be22ae56936e643b30c1ca0a60 SHA512 b4f545fb5c8e89c1995606d1e2d6ca9247e14f12bca3764e60d0b2cd905124e7ed918c3a116919c22b75512cf65399cd51d26e29e06a6f9fe4485d5c05fdf114
59 +DIST firefox-102.9.0esr-gd.xpi 557865 BLAKE2B 685d1ac0989f58b5244f972bdd01cb5bb09aebfc20bcd2d5dcc164b88d90cec9c3f912e602a393924f3a52b0c506b06df5b8199d20e6ef6fa6e9001cb4ed28e9 SHA512 057eec3d54e0be02d4ff24606d3a770f3c3bf521b31ccbdac09a6cd3b1cd5489578548d3455bc0ad204b74b19ad9eba91883461bf92effaeb7fa46d7d24228ce
60 +DIST firefox-102.9.0esr-gl.xpi 550721 BLAKE2B c37bed64f5009733150c6ad004502d04b292afc4691a80e8d711cffbf45f2f35c2546088b47624dab36cdf4cbbd1c90a05e74cdb56b3f86708b0ef48fe6223ff SHA512 9d5fef9caaded1428b2d96757171041ba6b1866f8c184b0ae31051e861301b330e9af93b4c4df7a3f1b3ed44c4afa7740540b53b332ef121dc2af8a5e91a17fe
61 +DIST firefox-102.9.0esr-gn.xpi 595697 BLAKE2B 758c8bd77acbf287ec051f924427a8b35a427e34b6e31ef8394cf116a1970f4a087ef9ae7e7e585959f58c2b230d18d0a2ff16b43e6ab941b11206937f4a6862 SHA512 8dde76da91c18e4e818a326d8c7ad58e6e6e9dc260a09b13839cfcd8d036603a12d6ba1d3619d5fc49958a4c66e73f3733b7714c3d95428e97cfd386242d3461
62 +DIST firefox-102.9.0esr-gu-IN.xpi 541907 BLAKE2B 4991b1664f5f927a9d8d8a9a6744421339648640762496099235e79d81ec91ebcc589e4073a7e15bd0b4168a2775fc82262dd623080b9718db0dcdecc5f00c37 SHA512 69ac5fea9f47bf4ebd6122152c57dc074260ddeb785998e15449a622590452edff3ea41043008f111372505875b31dcb43a6ad7f84992887d69f733376d3edff
63 +DIST firefox-102.9.0esr-he.xpi 591523 BLAKE2B c0fd83844f2283f602c4529115f8956a6b1307ab77d533fb5edf5d431b4e56a905aeb6f96236c2befa4ad9c95fca4c0f476b8fdc833174fd46c288eb696bc583 SHA512 65855f60a202bbcc0bc503a06e726eeea0b71b802e7c62d9c71490dff189c07127f13aa4a1757966a89bfd8da30d0976bd0c2fda26b427a2074077b8a2a5cbe4
64 +DIST firefox-102.9.0esr-hi-IN.xpi 570419 BLAKE2B 2cd69684e7ca9f8b963858e15fe3a066075a802c4d538a36d171ebede1612937eee0eda31e6d189723cfffca6ce1da96dc88722ebe2e0228e5138fd09b547e99 SHA512 f05db7bc43cdfd356f5dac4c3afae79998472311e772fd01fac26ee592f8d5346414852221ac9c8f9d37a3d9d0d8ec42a54dc85cf0a71651a08aeb0ab44346b8
65 +DIST firefox-102.9.0esr-hr.xpi 555271 BLAKE2B f939af1500089de64ea3152b15f99e25baecf0537f11e6901d10362d80ceac77078b4d8682f2798ecf04a5993f4d76e0ed7b5a4d5cdda13ec3d667759d4268d4 SHA512 cc4b96c5843ad5ef9c8fa6b8f127fdc41754693b73cb871c76f53e9d08f873aa3441bde06df2c347c278ddfab3e968d560fca26adc3eff2bb8054ea75de838e3
66 +DIST firefox-102.9.0esr-hsb.xpi 599183 BLAKE2B 592bdae44ff7543efacbc83543c15f3705a02a7e44e59b35a75c7764de4085c5a0230e91131aa7271b8fb455d9016868a1d3ffd42d0bcff45104d9aec0089642 SHA512 76fb12a9e46ce067e41ef55ddb7381b2cd39072cf6e1e36a0afccd06e081679d866a572b1b88e4784a9e6fc4b9ae947e9661bd68adc5e0d5f6a9042c0ef0adfb
67 +DIST firefox-102.9.0esr-hu.xpi 605254 BLAKE2B 8fcdfa36ed2847f9ca7911c112b23b6205198dffcbdb63d750af150ff42b9d5980fa9438ac04c5433cc7a7144610c98f616ab261afe1638414e35ca6138f1953 SHA512 5ab093748c8fe313f30f0f7d24391f5508c4f05a8f25a0ba242e7d995c0890d6528a01e064b927951e1aa788349b0a7b77a5f70f08482512882c47a6edb1ad3b
68 +DIST firefox-102.9.0esr-hy-AM.xpi 607096 BLAKE2B 25b1140899884efb0791064e916e6957d30c4d6d139edc75813aae07b00b2fc7311c96087b7996d77d1175b555116c64eba88100212c5643d7088afb74ca0690 SHA512 4740233e4905e455cab32e7cc65d0245b6129a3200e915c012720725f963f1796017ca825705834d6fd51cb7e343d7eec417eb6d6afff1a71f1edafdc4a7b3a5
69 +DIST firefox-102.9.0esr-ia.xpi 567874 BLAKE2B 84ac1b80cb3ab901e74b2235921dd83ccdf142874ba9b2c85f2e2a331e11256da5a4a9a54da6a8fe47ccdb1245698685cceb333956bacb292e3276750968698f SHA512 86055a51ef7e1e260866502b1dfaf1fcb2faeead07bd3ce07d38c08dff4b121c105f6d622bfae7da9bde8a8bd3a51635a4a3a7d60aec7c026ad3637861d847d9
70 +DIST firefox-102.9.0esr-id.xpi 564795 BLAKE2B bb9687ac5c0ee0793cf3dfc4c94fd2b6a41e1111df5464a8fdd8196fa6e61b1d281b77804b023b26ceb0c0b5d55407e9d99cda037a04b9d61975b951e0b2f0d5 SHA512 d0c3632d2bd58f46c00fd4590606b326d3823716f6afe836f2980ebfa2991cb787cab1355730d7abbfc668805161d44b3e179ce3c63836aa17f19d34a0edf012
71 +DIST firefox-102.9.0esr-is.xpi 575725 BLAKE2B 611726608650030b05bac46485dda700a628ceea2292e356246213b773f42859471855c2a2c0e5447f6fbe54421480072fd002b860f982fe7ba6363b2f45f632 SHA512 e8d8cf6717af604691bca7499ea802cebdd68081df41c684b9f7c7bc22435b63e6a6cab8aab24dd92ea937a494415f28b20c3fc6ebb6ab2d8cb359ebe70911bb
72 +DIST firefox-102.9.0esr-it.xpi 505287 BLAKE2B 35f014551e6a74fa03e902fa3dddc24676c6ad00e01a16da72354334bb4a6df0daaef2ee02fd083e74796b1f3da9ad12b8f2178f41c5139dd3551dda6f468532 SHA512 cc87f90df9c900cdd5efe2ef5db7a3e045f45b5a07dba6c83a5e78b28fe7f50498f947fe3f0c07b61d2d08c44584a77b30ce0fed832c1a4a4bad370292d66123
73 +DIST firefox-102.9.0esr-ja.xpi 631479 BLAKE2B 590a7d9b6e95b799abcddb41a9aaa0090dcc722d7aef8c5b4a2f3c968c83dda9a971227fae9b8691d7c109273dc824e7d23e388f0ecee7bd184d8d9d3ca658af SHA512 0517d0c1c1b3a76c840cd0eee0832ad23564fe0dbd0f8c630911b628988ace1fa65399a82edf0ba6eed757eec99c12aeec234af72e0777c760aa1323f57a0fbd
74 +DIST firefox-102.9.0esr-ka.xpi 635999 BLAKE2B 5db028e75444c0a4fc118e966318eaf6b3f2aa4ae90ab481f2df2f692e411af77f2feb8add5e45dc399e0fc350e1327bd5373e252353b455e1ea1c34533c8f0e SHA512 40f2df513f754c5439bf1e27b7f4442e4794d769b229bc6891157e0e3503b661e6e1ff256eec8794ac08feb87654beaa7c278fe1dfad48a7ea6ab4a6d2aa3b92
75 +DIST firefox-102.9.0esr-kab.xpi 583636 BLAKE2B 4532359ee6300ac9a7b96c7f841935e8b7eaef81af5bf0c2e12759eb56c6354c6a246d30924cf5c8e8587181b6d350f2a2293fb8f03b85748e0db9e2ad48686e SHA512 516f3cce8d6fb11c55db8715e1c93eec42c8095bc36584171f63daa1f5e88ee745c1f2d9bb2a964fc1aa87d382520e4123e8301e36bd479d42505e4053cf06e9
76 +DIST firefox-102.9.0esr-kk.xpi 658893 BLAKE2B 816f91e14be745ed845d3e0f47871e8eb85a9388f6360114753e109439fd55dae8b7517dabb8316de5b1f8fa3ed0925144fa06f49f783570e20e2c2273555e83 SHA512 f42aa9aa1ad79ae3d1ac18f2ae42c18946d4de8eec072a1efa4dac9949a044a0c5a0c9ab09a69fa28b67d56b822d39b051cf758f7b07c754ca3905ac7a0dbe59
77 +DIST firefox-102.9.0esr-km.xpi 543891 BLAKE2B 791a9125f0f077676714a95fac7f4e454f6d804d3bbb01ca66f77425f309d8805e2ba03617cabd3aec97abc50f35c5635afb05d8f1da0aad9e117fc03aa4e154 SHA512 21f0adefaaab51249de8933251d6453ce247a101619aa6e352bd3ad32af997a98361747e773d1744d635efc4ac01f1b4a4959c5d2965983bc539fc29d97d2415
78 +DIST firefox-102.9.0esr-kn.xpi 508579 BLAKE2B bc2b38718d3ef292d9b4159c83208dd8db216c82b0d587a392801ce2c7053e1ab5cfecf51c6a51c8e45b3cafb4049a6104f209a9f6e2ebad535acdaa1ee2ab23 SHA512 7fb92098df4da37cccf0fe3d144eb2d0ec5fea8084bc55f624fa4284f97343cc38e2e0466bff0e2cd0bb7c2a399f0aade101f228f46012bf0ef707ad42f69b94
79 +DIST firefox-102.9.0esr-ko.xpi 617297 BLAKE2B b7be2627701303cd95b26137198fcb361033787a2dc9ae90f38c95c508879f3aa99155d18a752cd7c6e08ec768383829a8c19757ba4ff357d8e4a279ab8bce45 SHA512 f717e54b7c0ba9dfc97e1312f34848859945fd8f72cd3dcb9365a3731baebab17c2dd3232d8543826364eb60f604aa1802e142ba91fe212da6b06c278eb0c45e
80 +DIST firefox-102.9.0esr-lij.xpi 480138 BLAKE2B b61608ec1a53646a5bf62fb321ce3a6cc553ac2c50c5f1325c43d1aad1569aa5122b8cbc28e8e1ac22ff0de709258fbc7e88a610400d883c7bea6f240f3a85be SHA512 c5d8230eef3b73ceeed36a2faf69ea5075ff51a6f0850fd63024b7ee514ec4f57df2b9ffb651e22b9b11b842db6eaf99a9cd8388fcd6266bea0d36130ea43983
81 +DIST firefox-102.9.0esr-lt.xpi 574780 BLAKE2B 85605373aa7abde3775b7e87c5971f14aba737a6579118463cf398162e58b94335bf8c5c7b49f51af711694983a1986719f9c4d4c7c90357c37cdc3aaf66ed51 SHA512 61e16e481c7ae2b79036d6539e40705d1bcdb4c5d78310232faee94e02c1832182c9277dc3277a8089097bca75b6b1fb9390eac5ceb3e732b7fee6ae8fefc39c
82 +DIST firefox-102.9.0esr-lv.xpi 479291 BLAKE2B c4d1d578bc151bd7d2ce1f05465d79ba71469aa5751ccbac8fda1f791e1414468a083ea2b5cc2b1bb0ebb409eedfce6b72047398ae37b6918073b9c4f8f5f445 SHA512 cd3aeb37469a9c46b086a079e86da92a7248aaa48eb01c2ba9bbbffd3e7e46b7fd93d9bacc1b5e2203283ef8004bb9e66ead3eb87f2ac12110d2e263596c2c36
83 +DIST firefox-102.9.0esr-mk.xpi 497529 BLAKE2B da8b503efa31bdbf3398fa88bbae9f09c8be10742c556e3f0028926c33f0a7287da39b0fdac86f66edf253705c221d0304fa6257651f3afb982fcab1217fb2a6 SHA512 111f51facd882446509683e6f5e41df49fc2f96e969f77d9cb6770a4b7defe7b0f551d9d4fe60bc3067285b025565a6dc07fd7e06ba5a84dffe0bed7963b11f5
84 +DIST firefox-102.9.0esr-mr.xpi 543738 BLAKE2B 7c3cb9a4bf593b1c089109c56029839766d95454ecb475f8a40afd273852aca8f47d5ef5195f7d30623720180c0a7a98a4eaa0ac4c18e54384a881b3ad8ad72f SHA512 66058001e955da163c81fa57dcdf87245629f2841381173282a6aee2119b45f3c5c0a8b5c6cd1d9dd501fc8acc6b90031d603b91589034167352c1f1ecfd92a6
85 +DIST firefox-102.9.0esr-ms.xpi 459029 BLAKE2B 9c27f1d914c839db21b6e138336ccdf1470f8d959f80c9f08fff9de319d3277e39883608135d0e093f9b209ba4b833c6398a4dafdbedd2de206382af6dc45a36 SHA512 8a5ef05371f71f09c47944f6cfa9cfaaacd367e328450766ae340f36b233dc20f4503a5213be3ea8889b6aa6d06053270f186cd4ffe9a5b770c0dd96a42c08d2
86 +DIST firefox-102.9.0esr-my.xpi 529947 BLAKE2B 4ea54a2740a28d6a47af0a93371c6ae67ea39293fca07f4337fccc3c53a627c7eb9f67ca9bcca78552bdc6cb6a6e3b83eaa8324c1a1689a7eac20f216ba323df SHA512 c897f9510ae14900d81db33f5372e053a12a3a2b24e64310fb271db85f61798f1d9b02031de5fb62a27df11da167b6236e7352dbaa5d437a746db0260cee028d
87 +DIST firefox-102.9.0esr-nb-NO.xpi 565280 BLAKE2B 17f0f8274e6edc254960248f326f6e8330c2867c60aa83c72aa0be803b6f6cab640db5d53e0b9607d459382e150f7acdd6b0d951557aeebbb210acaadc4561c0 SHA512 3e9950525dd40fc81007250a99d2a78a6872b9c3d8c046f55e7a5154f160c7ef7370b10a5cf931ad23183cccdd0920c70f216280e1f75493c000b21f03e45529
88 +DIST firefox-102.9.0esr-ne-NP.xpi 498083 BLAKE2B 103ab3e2e5430167e075cef8fe659db0e48896f256d9b23366bdd6e65ef656524eae6edb1fcfd22ef40357a002d139ac49579c683f852d9b495dbeb865e21bd0 SHA512 dfd159a5a12a06c4b1feb9694d7ef69e78f88d112cbab2aa6d714eb20937178f82de56a48844fe160d56d9dc0f7ffcb64b42ff9f1512c7ba8429e9e8b9c0bfe2
89 +DIST firefox-102.9.0esr-nl.xpi 573446 BLAKE2B 1cba3f8158ae618fdc8e8d05b649542c36f291648eb91061b292747efa5e6c141bd6c52816780aba221a368580bfd338c9a748d608a008f5c3dca46bca1504a5 SHA512 22278f15270efd7702967a79057c17fc422fe99d5043f0cb4239c9068655aa7ca0eff513ddbee5e0e352f1ad9a47d704be53d3bae068dc2b62d1b2ba2b7ae274
90 +DIST firefox-102.9.0esr-nn-NO.xpi 566166 BLAKE2B 0576593d233eaddddfbeb286d30e3a3027ef9e71230a6a512936837d3740e41a4b66037fe97ad9a4d0dafff5089c6bc737f6b0fd3a2757cb2273c98cc891320f SHA512 ddd6d19eb53ad17120a97311e5185fdbfb46df8d462d474081bebe98e87300d8c6c707ad773ac78b27e06c931afe87b0edeee5435604686d869e0667f07cba1b
91 +DIST firefox-102.9.0esr-oc.xpi 591128 BLAKE2B f51509e53ff9450938ed26f2b7d1eb877506fdb52bc8925f62c6c0d8bdf21a1664c7859c69fcb660fa2b2657546f00b5641eb7f07e8d8e20f194a887623217b0 SHA512 ced46f4eb5010340b68f1931206331b042e335189a2835acd68afdcff2844857dc5e8052ec40c149641bf17cd00889d49ff3b37279ea91cb492505f2bf454fbc
92 +DIST firefox-102.9.0esr-pa-IN.xpi 648621 BLAKE2B 5ac5b3bc09cfe08b935c14673547baac6c5cd435673a93227b1874db4b8719b6cb657dbb21496802d85680b56c235babdb775f25733e51176377d9e15c84e027 SHA512 919e20b2a6042e7715ed2cfb4a826448001587b7bb08a25cc999f047e22ec0cb3fc9196e0886de2e141c137dff0cfda5a21643606c5e0100396af1b0883deef4
93 +DIST firefox-102.9.0esr-pl.xpi 597072 BLAKE2B bae88aa625242805abeb49f81c300ce699fa00bd3b73af505057ecbc7299b9f2d8b7dbc819e1f1a736c85c93ca90a1af8dcadf30db5c64f48e7724e81fecf039 SHA512 17d192600089eeda8a6b74ca7459112eef495909170542883c6e1ef5ac721003450ce9cc584ba009ca9b453f87888c5d01794e19f7087a8bd5707455d5f7a01e
94 +DIST firefox-102.9.0esr-pt-BR.xpi 579009 BLAKE2B f8f36891813372402029ae2fb4a8690dc292b5d0baaad6631045c724eb2ec248cf694f932007a3285fd9118d0d101da5bc447547108d7964441c7afdb825bca8 SHA512 fa605033ad6acfc387be11d2852ac8042b8afffd25947d16888550a0a3993d9e150d861271885e3590195fc9461670f65e89f75577c94baea7f0379e02c6f1e7
95 +DIST firefox-102.9.0esr-pt-PT.xpi 582847 BLAKE2B c6c13e4d48bd824609c2f01b747d43cd220f108db36ec0e1e280cfa1616025202f77d2ddc1810ab3e7228c8b884867642612df25c0792b5f0c4952863cf86024 SHA512 497c921a19d51fc1a391ce4f694aa77c8abdf4182a7ba4753699275462dbc9aa152e0cc5469735e3a9872adfcc40d4c4aa5425d17fded856db8b4df3b33759a7
96 +DIST firefox-102.9.0esr-rm.xpi 571911 BLAKE2B fbad05dda5db265aaac7e875fccfcea525b6749fcdd5948af7cfc3f7f2d4a64997b2bdfea65350b7753a364e43804f0e26ac04d3e2690dcec2cab92f8127bd00 SHA512 1e1694fe95fb06da726d1c451a9c587c9bfccf3bbe51b3078e6b17bafe41f37badafd04e1666f5197a0bfab72c6cc57d032a17f54101d48d2833913c90215d22
97 +DIST firefox-102.9.0esr-ro.xpi 541903 BLAKE2B 21b8a5254a9ac67995e3f14e3048d75b910f3853b5e481c7a3f4862395369dfc92b0f24c782bbaecd8bffe4f4ce037379ac205ae4eb93a755715bd60459528d0 SHA512 461de5e6e0d4384e816adaa0b5683152a277e9164746e2f610c9fc37590f8319669ad9615fda50665a0e8424b84d6f9515bf48138df8cab6a6df1d2fa34c1d4f
98 +DIST firefox-102.9.0esr-ru.xpi 671133 BLAKE2B df4e15f113f58a8f8a2296b79bd6df4f2524f7064147a75594ac07de52ff789a11c2f1db3754bda99da648f3c1e6a94abe17c5781759ac3f5070f722bef9d3aa SHA512 833964ef9e53daf2b29e0bfea3df02fbe227dd2c99a9f1ca9e3bd78446e6be9ebec8e7cdbf39ee14f5349723e121553c8a4625aa0295a70f425c909e036295d9
99 +DIST firefox-102.9.0esr-sco.xpi 513230 BLAKE2B 5c05040589be4fe05b1a6679645aa7109d66cdabbf25e47a19431ee7fd16a61c06897f6f2dfdcff076af04bcef1ecd139723c1a69eb103b42eac884cd2eb88bb SHA512 0f0143101d14697b697a0c860c43a5f673a4c86b1ee9caff98e917a414e9c0a11fb30528b191d105190763bcdb2d987575af3fa6a0be91e271e70ffec24cb755
100 +DIST firefox-102.9.0esr-si.xpi 585622 BLAKE2B 503df37ce1eb0c10aa87dd76de3864edb805b5961192c4d980e2628375ae893c20d5f79e82f094fd6ec2354fdb96f125f47c1f713ec1ff4b2432dd909715ae7f SHA512 ae28fea390c095ef2eece090e1b3e0f3cd303ca50842189e47ea8a2f195ba48742f2ec0d15aea79ccb52e1a23d9228b3cde3e41ddc9ba4cd9b9f84aeab8cae11
101 +DIST firefox-102.9.0esr-sk.xpi 606113 BLAKE2B ad3abcf5861229d55fa82fe8a3a45e98184e4040d36e76f52476160313b428ea78afcbc5f19a8c70e415764df75684d2c4e3c5efe1bf6187dad24042fb1ecafc SHA512 a9eae36a22fd649a2445b7082acd8b7838b058b2d5ad4d3ccb239b8591dc6391127ff1f43e380e2d9486b3e3a3a227082a42949c6121a7f4b6e10725f2f23d17
102 +DIST firefox-102.9.0esr-sl.xpi 577354 BLAKE2B 01a8a57896132769d9c4509cf16e1a1f41abb77d4b29b5812f2241c6a2f6a876f03e12fbd2b0633fd752a31335c7fd6986bb0e78e6b9e0cb133cd9a795f27a97 SHA512 89a3e5ef9b2e397e409474431ab1d5dd39e51286ca1567e008b1133347e1c5451271ebf3a889a6baeba74b0ec99b243989c64c03faafaae7ac41ab70d6b54a3c
103 +DIST firefox-102.9.0esr-son.xpi 433054 BLAKE2B 5d7a5434324fb0f5c5e3501d05d826f3ea204ebca03cc4d41e4203841900d6661ab5ecd2486db0d65ece16257061838657a2573c35f42fc2073848e5e2f0eaa5 SHA512 4b0a872bef218f2d6a3744b1018cda9f89e608842a88da7bc296c2029b3e17d24d9b4ed9919422c73a611b2b0a17c683cc99fdc905e1dd407dc8e6edc50ec416
104 +DIST firefox-102.9.0esr-sq.xpi 593407 BLAKE2B 62b74bb1040eda7cd4b6d69247617005af7ffd6702b39e79fd674c66ee7254d849156117baaa595ececbf8597a19392d3a8a85ecaa3e6803e80fea5e7440b21f SHA512 e83b5237a4154781bd5ccfd5677b841be0d98136683513513689c31cdecb21b83c3406dd9fa37808aeec25387d51b5be1648fded35771cfdf1115d2df15250cc
105 +DIST firefox-102.9.0esr-sr.xpi 635143 BLAKE2B 1957d10ecedab671e178b2cc8f1ff972be0841f9c1ce663fea12797e488d72cb2023cc2a99e7b9e743523eaa201cbf29b9c48892231ccd6b3dd1f0b544da1962 SHA512 816ce29aff61baccfc73ce01a95e32e0369e5ec7d20832f0bfe7fc5348d36bcbb1a2d44222c5ef5e2548ff3090f15972e7728d831951d81f0aa0250e6b25af6d
106 +DIST firefox-102.9.0esr-sv-SE.xpi 576055 BLAKE2B 609032ec94fceb8e653e2a358dac307663722661b13c1f7acb818e2be091f28a4504850e1a2cd29e362d4c1b309ecd3b6247cadbb0d466be38dcfec4c6d83109 SHA512 8bb7edaa9b2d49c7e303096b8e221f496aff87ca057fd8c5dc0e6318a65ac3ef543636ed688db42104c047fb56d14f25debf7e289624c57601fff952dc70c1df
107 +DIST firefox-102.9.0esr-szl.xpi 527111 BLAKE2B 4491fcdefb63d3d608896977418c6f8da0281a3447f3c39e04484ef7ea4faf3863f4d1db413de9abc481b1b2d7267aa3ea4ebd744896cd17dc6c8fe8ffbf5913 SHA512 0e94e7da0c561d626c6c08a157a2b9bd8bd668021214141c0e026d97d2308625a7f1cc8becbffce32f51abed0e13e377fcbc47640554ed06c256095f03c3042c
108 +DIST firefox-102.9.0esr-ta.xpi 522076 BLAKE2B f0c28461051f1281971d856326a5520108ad56c67e9f2383c3a35ace06c465007adc219e4d074b5b48908781488b5bff2f6f0aa8e350ddbf05acd4b15a827263 SHA512 0391e697856c1ca8c6aef74cd2dc5d2043c868345142eab252a2e1dfc478f421662bef8b3148837bd0706e8eb4ba7905a1eb6831a7dd5c7aab0127a73af352d4
109 +DIST firefox-102.9.0esr-te.xpi 568433 BLAKE2B 551f7e1b7606f62c2fb7d212365218e24a5494e8d101102559b40e358b3145fc000d8eaef46effe32a328a4d265961f2d0285e08abc8c350ab094e4c6416d7f6 SHA512 6ebf2246f5d619329617ed61709427cb5b4d4dfbd26fb2af39c7d13e514352b8b3845a676d98fb8087afebe0830bb8541649554e7879173a90762dec2890306d
110 +DIST firefox-102.9.0esr-th.xpi 649493 BLAKE2B 8905c17fc334c4d0c08b53d7dc38b7999ea2cf0d5789b841119a0ca861c12589978c37da6aa033f651ff098500000bd8495cbb1805ff16d042d5074ecaba1cf9 SHA512 aea8b389f57a0b4baf69f58799d5ba6cf9234db9c4aa7d10eca45252de7b6504872985b8c7d19f398315f11b506249a64603a9573638ad96b3e45e4a5ab93ac6
111 +DIST firefox-102.9.0esr-tl.xpi 532365 BLAKE2B 622ac4dd539653b9f119c79e69f0df3cda20c31bc6b4e51b229edf97007231aac01df086ffeea4140150b3297e4b8115d6bd185fee9a77315a32e560a85ff94e SHA512 f2786cbf25c7fbcad114d48913abf44e9393c7848806fcefbaa3a06f78ee87ba901c847e722526d627d5ed73c28c76b6a10adf970afbd9e7781a43ca9a2a992a
112 +DIST firefox-102.9.0esr-tr.xpi 590500 BLAKE2B adea310e6caa58b647befadbc79d202546e6f4f5f2265fd869db7578a28e686ae2e14279a00a71db6b2fe42c4bce738b24d98c5fc1b409add768880b6205c10f SHA512 806cf4e615b7d33443ee22fcdde546d60426989977be0eb2804c80fc291adf47886162d049c300d816ac8ce74d53e9fc28f0ca6da19c33ab0e4ac69fb2e7b990
113 +DIST firefox-102.9.0esr-trs.xpi 497375 BLAKE2B 362933df1f6e0bdbca220d2f80cb913399fa09305208efee638d6a6b804c832137b187da5a3cef67ae16ad1ffe981baa396354dbc57464dbaf244592cddb3e5d SHA512 7d616c3a8325987851d5c28f26ffa13c7030c40c9051320ee22f2b0d5aab88e3859ed5ede8aa1d1da98e60db2c8375330338fcb2063579a3e07725e6e837add2
114 +DIST firefox-102.9.0esr-uk.xpi 664335 BLAKE2B b06e3b61d44a03b52e618346f1bef4047a529dd1acdf53883e91a5e7224465bd528ecf76679d31f42da48e2ad76386de4a18b7723e7941db9404642a064d8aa6 SHA512 7bed085f625b413c34bd8a9ad522fbf28e56590f2b0e71981884594a1626b6d864d2b975fbae6f50f6f5fb7a6d64865cb9010fc7d3b4aaba8f045513f294110a
115 +DIST firefox-102.9.0esr-ur.xpi 569913 BLAKE2B 3c4dfc2f99e02c59358089f76ec4d045f8dbdb61832efaacb4d7a2c50306b1ed5069b59e4b313fbbbb5dd6e9247de6df824154b8991680327793ddaa328383b8 SHA512 a4016cba323ace45e7dfe51e301cd6203889349e7a65bb1ffc7c1845674f2331f1b6f25dc9f47ed2ff19175d962a31d0bfcadc54389cbac764f27dd77e331d33
116 +DIST firefox-102.9.0esr-uz.xpi 488879 BLAKE2B 1e02f3dfacd98048c7e3f4951344dfde8474ea8401c58a80f5682aeb6b7a3cee7b2a32a26f09f6ec9c9bdfac171773416ce2a09270a67e1d68b64ea3650f27af SHA512 285ec35782ea1a42e093717945e73cd3f9711a70b1dd2ceb19bdf0ded03e90825cb63abe8c42780c1e8ba5c74e6ef911d59b25ddfd5a3a96b64379fc8475fd7a
117 +DIST firefox-102.9.0esr-vi.xpi 611426 BLAKE2B e761e598425c3773498393758a35b8d50bd150fdf3f169ef6a8494a93972b748083afc78e389a5e470ef3e2dfe1ac35e9a5680a6aecee6f5e47d8031bafe5ed1 SHA512 db995016e69b1116a155184ec7f3b1f74248f27d6c366387c2593b814dc8cbe1ccac238afff4d2334308900fa6fed414dfadf56d2ef05422327c6b7a870a14e2
118 +DIST firefox-102.9.0esr-xh.xpi 427940 BLAKE2B b71b75dcd480e7cd27e854e74d9cc553d49cdcfa9c66a1d13c195e3f9df905616ace2326a395ff4494911122f75a8cfce2415bf0987cc56a3a98979a2c8d12cc SHA512 aeefc8215d10221eb5863211ac48577b5db0ab37e5104fbb33181b9cea957ec6505e51c44b19cc3c786071b2093a5de888d64ba13ef9809d6f63d14fda9a4e1c
119 +DIST firefox-102.9.0esr-zh-CN.xpi 613304 BLAKE2B 71478e7968b78dd6005fe46e78e86f42f67014bb87bd84e4abe6776493eef9e189c40432b93a67bd46c88ea52e678aab893eb19de1a39ac54f079a1f71cf5542 SHA512 f9e617236f9bb90718079fbd6a1a24accc8ab355fe98cc2fdd39a644d836fa5a76ee84f2c831441b9f8b91859c1be1315533410af12f7c51929f1776dccbba27
120 +DIST firefox-102.9.0esr-zh-TW.xpi 614580 BLAKE2B a38f0a7b62d428721dbbb7ac1ec6df742eafcb63a3854489f579c49c3a78a9cc06a96462876d2a88c46063c3844f5dc5bb722fae8b30d85bace883e7a55ebba8 SHA512 e0ece0d2cbe81ad0d2ca65dd9931fd5ebb6e798b3eac63945f889a44fe7549fc913c9a1e2afb4f92855222132be7cf6e24d760d62872f144835ab0bdb506bb02
121 +DIST firefox-102.9.0esr.source.tar.xz 484308672 BLAKE2B dffd3928c268562802b9d9788cc83203ca932c85758b822c344e54259d81ef84668231149f3452cec3c2bf32c654db321303bcb9f81f8ccaac477ad2499ce346 SHA512 3923212ce4b7d1f589129025961ff1b380b8aaf1dd074674f3bd63cf14e9a44ff051bda556b7796c25634e153de00ce62243ece15a520f63dd0791a19b2a6685
122 DIST firefox-102esr-patches-09j.tar.xz 20236 BLAKE2B 35431fbc56c5470dac2839fd218d2a589558cf964eab2373f2db7a01e6e0dfee329b1b63f6a421bfd4c9bf8c3ed9877067cdc462742a1cc59d78d1d10264ebac SHA512 7fb82ff3ef2cbca339ab05ac07f0409088a87dfe37314d31d441bae1beb181cbea799dcd63dd560d0ccde24b665379118e5e99a1c1a2385d859378901593089b
123 DIST firefox-110-patches-01j.tar.xz 17060 BLAKE2B 80ab1437311b33248edeadacfd53522ac388bfdccb89f721ab9dbf9dad7ee82b1cea978e553c42728c9a2a5d4fd6d2f101d42eab78a220e4181aa1068ed73278 SHA512 c8d2610bf7b1e5d1f1a1bd608b3ac8f0239e45cb08b6a2d9c63dcd19f900dedd99942a35539c5952ddaa84746c064ca2930c3c1b68758914ca5a9f1016e86ea0
124 DIST firefox-110.0.1-ach.xpi 457762 BLAKE2B fda32f74826c349f71e65e0104394379ed44cf2cd08912e3cf8cb09c0b4741ad4bb085cb3682e38c443c523454909b6dbe82f133063efe14e7d720099a95ebc4 SHA512 906002d4303a2e2b4590aaa317dfd8d895a04e2740e08e9004000f75396a202f6b3ebe0e7d380a30dc6aef86c0240ca0b03afc3657a1aea698341fa27ee746e8
125
126 diff --git a/www-client/firefox/firefox-102.9.0.ebuild b/www-client/firefox/firefox-102.9.0.ebuild
127 new file mode 100644
128 index 000000000000..5d0513cd71c2
129 --- /dev/null
130 +++ b/www-client/firefox/firefox-102.9.0.ebuild
131 @@ -0,0 +1,1274 @@
132 +# Copyright 1999-2023 Gentoo Authors
133 +# Distributed under the terms of the GNU General Public License v2
134 +
135 +EAPI=8
136 +
137 +FIREFOX_PATCHSET="firefox-102esr-patches-09j.tar.xz"
138 +
139 +LLVM_MAX_SLOT=15
140 +
141 +PYTHON_COMPAT=( python3_{9..11} )
142 +PYTHON_REQ_USE="ncurses,sqlite,ssl"
143 +
144 +WANT_AUTOCONF="2.1"
145 +
146 +VIRTUALX_REQUIRED="pgo"
147 +
148 +MOZ_ESR=yes
149 +
150 +MOZ_PV=${PV}
151 +MOZ_PV_SUFFIX=
152 +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
153 + MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
154 +
155 + # Convert the ebuild version to the upstream Mozilla version
156 + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
157 + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
158 + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
159 +fi
160 +
161 +if [[ -n ${MOZ_ESR} ]] ; then
162 + # ESR releases have slightly different version numbers
163 + MOZ_PV="${MOZ_PV}esr"
164 +fi
165 +
166 +MOZ_PN="${PN%-bin}"
167 +MOZ_P="${MOZ_PN}-${MOZ_PV}"
168 +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
169 +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
170 +
171 +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
172 + llvm multiprocessing optfeature pax-utils python-any-r1 toolchain-funcs \
173 + virtualx xdg
174 +
175 +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
176 +
177 +if [[ ${PV} == *_rc* ]] ; then
178 + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
179 +fi
180 +
181 +PATCH_URIS=(
182 + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
183 +)
184 +
185 +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
186 + ${PATCH_URIS[@]}"
187 +
188 +DESCRIPTION="Firefox Web Browser"
189 +HOMEPAGE="https://www.mozilla.com/firefox"
190 +
191 +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
192 +
193 +SLOT="esr"
194 +LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
195 +
196 +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
197 +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
198 +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
199 +IUSE+=" wayland wifi"
200 +
201 +# Firefox-only IUSE
202 +IUSE+=" geckodriver +gmp-autoupdate screencast"
203 +
204 +REQUIRED_USE="debug? ( !system-av1 )
205 + pgo? ( lto )
206 + wayland? ( dbus )
207 + wifi? ( dbus )"
208 +
209 +# Firefox-only REQUIRED_USE flags
210 +REQUIRED_USE+=" screencast? ( wayland )"
211 +
212 +FF_ONLY_DEPEND="!www-client/firefox:0
213 + !www-client/firefox:rapid
214 + screencast? ( media-video/pipewire:= )
215 + selinux? ( sec-policy/selinux-mozilla )"
216 +BDEPEND="${PYTHON_DEPS}
217 + || (
218 + (
219 + sys-devel/clang:15
220 + sys-devel/llvm:15
221 + clang? (
222 + sys-devel/lld:15
223 + virtual/rust:0/llvm-15
224 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
225 + )
226 + )
227 + (
228 + sys-devel/clang:14
229 + sys-devel/llvm:14
230 + clang? (
231 + sys-devel/lld:14
232 + virtual/rust:0/llvm-14
233 + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
234 + )
235 + )
236 + )
237 + !clang? ( virtual/rust )
238 + app-arch/unzip
239 + app-arch/zip
240 + >=dev-util/cbindgen-0.24.3
241 + net-libs/nodejs
242 + virtual/pkgconfig
243 + amd64? ( >=dev-lang/nasm-2.14 )
244 + x86? ( >=dev-lang/nasm-2.14 )"
245 +
246 +COMMON_DEPEND="${FF_ONLY_DEPEND}
247 + >=app-accessibility/at-spi2-core-2.46.0:2
248 + dev-libs/expat
249 + dev-libs/glib:2
250 + dev-libs/libffi:=
251 + >=dev-libs/nss-3.79.2
252 + >=dev-libs/nspr-4.34
253 + media-libs/alsa-lib
254 + media-libs/fontconfig
255 + media-libs/freetype
256 + media-libs/mesa
257 + media-video/ffmpeg
258 + sys-libs/zlib
259 + virtual/freedesktop-icon-theme
260 + virtual/opengl
261 + x11-libs/cairo[X]
262 + x11-libs/gdk-pixbuf
263 + x11-libs/gtk+:3[X]
264 + x11-libs/libX11
265 + x11-libs/libXcomposite
266 + x11-libs/libXdamage
267 + x11-libs/libXext
268 + x11-libs/libXfixes
269 + x11-libs/libXrandr
270 + x11-libs/libXtst
271 + x11-libs/libxcb:=
272 + x11-libs/libxkbcommon[X]
273 + x11-libs/pango
274 + x11-libs/pixman
275 + dbus? (
276 + dev-libs/dbus-glib
277 + sys-apps/dbus
278 + )
279 + jack? ( virtual/jack )
280 + libproxy? ( net-libs/libproxy )
281 + pulseaudio? (
282 + || (
283 + media-sound/pulseaudio
284 + >=media-sound/apulse-0.1.12-r4
285 + )
286 + )
287 + sndio? ( >=media-sound/sndio-1.8.0-r1 )
288 + system-av1? (
289 + >=media-libs/dav1d-1.0.0:=
290 + >=media-libs/libaom-1.0.0:=
291 + )
292 + system-harfbuzz? (
293 + >=media-gfx/graphite2-1.3.13
294 + >=media-libs/harfbuzz-2.8.1:0=
295 + )
296 + system-icu? ( >=dev-libs/icu-71.1:= )
297 + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
298 + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
299 + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
300 + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
301 + system-webp? ( >=media-libs/libwebp-1.1.0:0= )
302 + wayland? (
303 + x11-libs/gtk+:3[wayland]
304 + x11-libs/libdrm
305 + x11-libs/libxkbcommon[wayland]
306 + )
307 + wifi? (
308 + kernel_linux? (
309 + dev-libs/dbus-glib
310 + net-misc/networkmanager
311 + sys-apps/dbus
312 + )
313 + )"
314 +
315 +RDEPEND="${COMMON_DEPEND}
316 + jack? ( virtual/jack )
317 + openh264? ( media-libs/openh264:*[plugin] )"
318 +
319 +DEPEND="${COMMON_DEPEND}
320 + x11-base/xorg-proto
321 + x11-libs/libICE
322 + x11-libs/libSM"
323 +
324 +S="${WORKDIR}/${PN}-${PV%_*}"
325 +
326 +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
327 +# overridden in the enviromnent (advanced hackers only)
328 +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
329 + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
330 +fi
331 +
332 +llvm_check_deps() {
333 + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
334 + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
335 + return 1
336 + fi
337 +
338 + if use clang ; then
339 + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
340 + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
341 + return 1
342 + fi
343 +
344 + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
345 + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
346 + return 1
347 + fi
348 +
349 + if use pgo ; then
350 + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
351 + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
352 + return 1
353 + fi
354 + fi
355 + fi
356 +
357 + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
358 +}
359 +
360 +MOZ_LANGS=(
361 + af ar ast be bg br ca cak cs cy da de dsb
362 + el en-CA en-GB en-US es-AR es-ES et eu
363 + fi fr fy-NL ga-IE gd gl he hr hsb hu
364 + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
365 + pa-IN pl pt-BR pt-PT rm ro ru
366 + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
367 +)
368 +
369 +# Firefox-only LANGS
370 +MOZ_LANGS+=( ach )
371 +MOZ_LANGS+=( an )
372 +MOZ_LANGS+=( az )
373 +MOZ_LANGS+=( bn )
374 +MOZ_LANGS+=( bs )
375 +MOZ_LANGS+=( ca-valencia )
376 +MOZ_LANGS+=( eo )
377 +MOZ_LANGS+=( es-CL )
378 +MOZ_LANGS+=( es-MX )
379 +MOZ_LANGS+=( fa )
380 +MOZ_LANGS+=( ff )
381 +MOZ_LANGS+=( gn )
382 +MOZ_LANGS+=( gu-IN )
383 +MOZ_LANGS+=( hi-IN )
384 +MOZ_LANGS+=( hy-AM )
385 +MOZ_LANGS+=( ia )
386 +MOZ_LANGS+=( km )
387 +MOZ_LANGS+=( kn )
388 +MOZ_LANGS+=( lij )
389 +MOZ_LANGS+=( mk )
390 +MOZ_LANGS+=( mr )
391 +MOZ_LANGS+=( my )
392 +MOZ_LANGS+=( ne-NP )
393 +MOZ_LANGS+=( oc )
394 +MOZ_LANGS+=( sco )
395 +MOZ_LANGS+=( si )
396 +MOZ_LANGS+=( son )
397 +MOZ_LANGS+=( szl )
398 +MOZ_LANGS+=( ta )
399 +MOZ_LANGS+=( te )
400 +MOZ_LANGS+=( tl )
401 +MOZ_LANGS+=( trs )
402 +MOZ_LANGS+=( ur )
403 +MOZ_LANGS+=( xh )
404 +
405 +mozilla_set_globals() {
406 + # https://bugs.gentoo.org/587334
407 + local MOZ_TOO_REGIONALIZED_FOR_L10N=(
408 + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
409 + )
410 +
411 + local lang xflag
412 + for lang in "${MOZ_LANGS[@]}" ; do
413 + # en and en_US are handled internally
414 + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
415 + continue
416 + fi
417 +
418 + # strip region subtag if $lang is in the list
419 + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
420 + xflag=${lang%%-*}
421 + else
422 + xflag=${lang}
423 + fi
424 +
425 + SRC_URI+=" l10n_${xflag/[_@]/-}? ("
426 + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
427 + SRC_URI+=" )"
428 + IUSE+=" l10n_${xflag/[_@]/-}"
429 + done
430 +}
431 +mozilla_set_globals
432 +
433 +moz_clear_vendor_checksums() {
434 + debug-print-function ${FUNCNAME} "$@"
435 +
436 + if [[ ${#} -ne 1 ]] ; then
437 + die "${FUNCNAME} requires exact one argument"
438 + fi
439 +
440 + einfo "Clearing cargo checksums for ${1} ..."
441 +
442 + sed -i \
443 + -e 's/\("files":{\)[^}]*/\1/' \
444 + "${S}"/third_party/rust/${1}/.cargo-checksum.json \
445 + || die
446 +}
447 +
448 +moz_install_xpi() {
449 + debug-print-function ${FUNCNAME} "$@"
450 +
451 + if [[ ${#} -lt 2 ]] ; then
452 + die "${FUNCNAME} requires at least two arguments"
453 + fi
454 +
455 + local DESTDIR=${1}
456 + shift
457 +
458 + insinto "${DESTDIR}"
459 +
460 + local emid xpi_file xpi_tmp_dir
461 + for xpi_file in "${@}" ; do
462 + emid=
463 + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
464 +
465 + # Unpack XPI
466 + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
467 +
468 + # Determine extension ID
469 + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
470 + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
471 + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
472 + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
473 + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
474 + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
475 + else
476 + die "failed to determine extension id"
477 + fi
478 +
479 + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
480 + newins "${xpi_file}" "${emid}.xpi"
481 + done
482 +}
483 +
484 +mozconfig_add_options_ac() {
485 + debug-print-function ${FUNCNAME} "$@"
486 +
487 + if [[ ${#} -lt 2 ]] ; then
488 + die "${FUNCNAME} requires at least two arguments"
489 + fi
490 +
491 + local reason=${1}
492 + shift
493 +
494 + local option
495 + for option in ${@} ; do
496 + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
497 + done
498 +}
499 +
500 +mozconfig_add_options_mk() {
501 + debug-print-function ${FUNCNAME} "$@"
502 +
503 + if [[ ${#} -lt 2 ]] ; then
504 + die "${FUNCNAME} requires at least two arguments"
505 + fi
506 +
507 + local reason=${1}
508 + shift
509 +
510 + local option
511 + for option in ${@} ; do
512 + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
513 + done
514 +}
515 +
516 +mozconfig_use_enable() {
517 + debug-print-function ${FUNCNAME} "$@"
518 +
519 + if [[ ${#} -lt 1 ]] ; then
520 + die "${FUNCNAME} requires at least one arguments"
521 + fi
522 +
523 + local flag=$(use_enable "${@}")
524 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
525 +}
526 +
527 +mozconfig_use_with() {
528 + debug-print-function ${FUNCNAME} "$@"
529 +
530 + if [[ ${#} -lt 1 ]] ; then
531 + die "${FUNCNAME} requires at least one arguments"
532 + fi
533 +
534 + local flag=$(use_with "${@}")
535 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
536 +}
537 +
538 +pkg_pretend() {
539 + if [[ ${MERGE_TYPE} != binary ]] ; then
540 + if use pgo ; then
541 + if ! has usersandbox $FEATURES ; then
542 + die "You must enable usersandbox as X server can not run as root!"
543 + fi
544 + fi
545 +
546 + # Ensure we have enough disk space to compile
547 + if use pgo || use lto || use debug ; then
548 + CHECKREQS_DISK_BUILD="13500M"
549 + else
550 + CHECKREQS_DISK_BUILD="6600M"
551 + fi
552 +
553 + check-reqs_pkg_pretend
554 + fi
555 +}
556 +
557 +pkg_setup() {
558 + if [[ ${MERGE_TYPE} != binary ]] ; then
559 + if use pgo ; then
560 + if ! has userpriv ${FEATURES} ; then
561 + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
562 + fi
563 + fi
564 +
565 + # Ensure we have enough disk space to compile
566 + if use pgo || use lto || use debug ; then
567 + CHECKREQS_DISK_BUILD="13500M"
568 + else
569 + CHECKREQS_DISK_BUILD="6400M"
570 + fi
571 +
572 + check-reqs_pkg_setup
573 +
574 + llvm_pkg_setup
575 +
576 + if use clang && use lto ; then
577 + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
578 + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
579 + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
580 +
581 + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
582 + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
583 + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
584 +
585 + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
586 + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
587 + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
588 + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
589 + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
590 + eerror " - Build ${CATEGORY}/${PN} without USE=lto"
591 + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
592 + eerror " llvm/clang/lld/rust chain depending on your @world updates)"
593 + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
594 + fi
595 + fi
596 +
597 + python-any-r1_pkg_setup
598 +
599 + # Avoid PGO profiling problems due to enviroment leakage
600 + # These should *always* be cleaned up anyway
601 + unset \
602 + DBUS_SESSION_BUS_ADDRESS \
603 + DISPLAY \
604 + ORBIT_SOCKETDIR \
605 + SESSION_MANAGER \
606 + XAUTHORITY \
607 + XDG_CACHE_HOME \
608 + XDG_SESSION_COOKIE
609 +
610 + # Build system is using /proc/self/oom_score_adj, bug #604394
611 + addpredict /proc/self/oom_score_adj
612 +
613 + if use pgo ; then
614 + # Allow access to GPU during PGO run
615 + local ati_cards mesa_cards nvidia_cards render_cards
616 + shopt -s nullglob
617 +
618 + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
619 + if [[ -n "${ati_cards}" ]] ; then
620 + addpredict "${ati_cards}"
621 + fi
622 +
623 + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
624 + if [[ -n "${mesa_cards}" ]] ; then
625 + addpredict "${mesa_cards}"
626 + fi
627 +
628 + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
629 + if [[ -n "${nvidia_cards}" ]] ; then
630 + addpredict "${nvidia_cards}"
631 + fi
632 +
633 + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
634 + if [[ -n "${render_cards}" ]] ; then
635 + addpredict "${render_cards}"
636 + fi
637 +
638 + shopt -u nullglob
639 + fi
640 +
641 + if ! mountpoint -q /dev/shm ; then
642 + # If /dev/shm is not available, configure is known to fail with
643 + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
644 + ewarn "/dev/shm is not mounted -- expect build failures!"
645 + fi
646 +
647 + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
648 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
649 + # get your own set of keys.
650 + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
651 + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
652 + fi
653 +
654 + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
655 + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
656 + fi
657 +
658 + # Mozilla API keys (see https://location.services.mozilla.com/api)
659 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
660 + # get your own set of keys.
661 + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
662 + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
663 + fi
664 +
665 + # Ensure we use C locale when building, bug #746215
666 + export LC_ALL=C
667 + fi
668 +
669 + CONFIG_CHECK="~SECCOMP"
670 + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
671 + linux-info_pkg_setup
672 +}
673 +
674 +src_unpack() {
675 + local _lp_dir="${WORKDIR}/language_packs"
676 + local _src_file
677 +
678 + if [[ ! -d "${_lp_dir}" ]] ; then
679 + mkdir "${_lp_dir}" || die
680 + fi
681 +
682 + for _src_file in ${A} ; do
683 + if [[ ${_src_file} == *.xpi ]]; then
684 + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
685 + else
686 + unpack ${_src_file}
687 + fi
688 + done
689 +}
690 +
691 +src_prepare() {
692 + if use lto; then
693 + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
694 + fi
695 +
696 + eapply "${WORKDIR}/firefox-patches"
697 +
698 + # Allow user to apply any additional patches without modifing ebuild
699 + eapply_user
700 +
701 + # Make cargo respect MAKEOPTS
702 + export CARGO_BUILD_JOBS="$(makeopts_jobs)"
703 +
704 + # Make LTO respect MAKEOPTS
705 + sed -i \
706 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
707 + "${S}"/build/moz.configure/lto-pgo.configure \
708 + || die "sed failed to set num_cores"
709 +
710 + # Make ICU respect MAKEOPTS
711 + sed -i \
712 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
713 + "${S}"/intl/icu_sources_data.py \
714 + || die "sed failed to set num_cores"
715 +
716 + # sed-in toolchain prefix
717 + sed -i \
718 + -e "s/objdump/${CHOST}-objdump/" \
719 + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
720 + || die "sed failed to set toolchain prefix"
721 +
722 + sed -i \
723 + -e 's/ccache_stats = None/return None/' \
724 + "${S}"/python/mozbuild/mozbuild/controller/building.py \
725 + || die "sed failed to disable ccache stats call"
726 +
727 + einfo "Removing pre-built binaries ..."
728 + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
729 +
730 + # Clearing crate checksums where we have applied patches
731 + moz_clear_vendor_checksums bindgen
732 +
733 + # Create build dir
734 + BUILD_DIR="${WORKDIR}/${PN}_build"
735 + mkdir -p "${BUILD_DIR}" || die
736 +
737 + # Write API keys to disk
738 + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
739 + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
740 + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
741 +
742 + xdg_environment_reset
743 +}
744 +
745 +src_configure() {
746 + # Show flags set at the beginning
747 + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
748 + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
749 + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
750 + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
751 + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
752 +
753 + local have_switched_compiler=
754 + if use clang; then
755 + # Force clang
756 + einfo "Enforcing the use of clang due to USE=clang ..."
757 + if tc-is-gcc; then
758 + have_switched_compiler=yes
759 + fi
760 + AR=llvm-ar
761 + CC=${CHOST}-clang
762 + CXX=${CHOST}-clang++
763 + NM=llvm-nm
764 + RANLIB=llvm-ranlib
765 + elif ! use clang && ! tc-is-gcc ; then
766 + # Force gcc
767 + have_switched_compiler=yes
768 + einfo "Enforcing the use of gcc due to USE=-clang ..."
769 + AR=gcc-ar
770 + CC=${CHOST}-gcc
771 + CXX=${CHOST}-g++
772 + NM=gcc-nm
773 + RANLIB=gcc-ranlib
774 + fi
775 +
776 + if [[ -n "${have_switched_compiler}" ]] ; then
777 + # Because we switched active compiler we have to ensure
778 + # that no unsupported flags are set
779 + strip-unsupported-flags
780 + fi
781 +
782 + # Ensure we use correct toolchain
783 + export HOST_CC="$(tc-getBUILD_CC)"
784 + export HOST_CXX="$(tc-getBUILD_CXX)"
785 + export AS="$(tc-getCC) -c"
786 + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
787 +
788 + # Pass the correct toolchain paths through cbindgen
789 + if tc-is-cross-compiler ; then
790 + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
791 + fi
792 +
793 + # Set MOZILLA_FIVE_HOME
794 + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
795 +
796 + # python/mach/mach/mixin/process.py fails to detect SHELL
797 + export SHELL="${EPREFIX}/bin/bash"
798 +
799 + # Set state path
800 + export MOZBUILD_STATE_PATH="${BUILD_DIR}"
801 +
802 + # Set MOZCONFIG
803 + export MOZCONFIG="${S}/.mozconfig"
804 +
805 + # Initialize MOZCONFIG
806 + mozconfig_add_options_ac '' --enable-application=browser
807 +
808 + # Set Gentoo defaults
809 + export MOZILLA_OFFICIAL=1
810 +
811 + mozconfig_add_options_ac 'Gentoo default' \
812 + --allow-addon-sideload \
813 + --disable-cargo-incremental \
814 + --disable-crashreporter \
815 + --disable-gpsd \
816 + --disable-install-strip \
817 + --disable-parental-controls \
818 + --disable-strip \
819 + --disable-updater \
820 + --enable-negotiateauth \
821 + --enable-new-pass-manager \
822 + --enable-official-branding \
823 + --enable-release \
824 + --enable-system-ffi \
825 + --enable-system-pixman \
826 + --host="${CBUILD:-${CHOST}}" \
827 + --libdir="${EPREFIX}/usr/$(get_libdir)" \
828 + --prefix="${EPREFIX}/usr" \
829 + --target="${CHOST}" \
830 + --without-ccache \
831 + --without-wasm-sandboxed-libraries \
832 + --with-intl-api \
833 + --with-libclang-path="$(llvm-config --libdir)" \
834 + --with-system-nspr \
835 + --with-system-nss \
836 + --with-system-zlib \
837 + --with-toolchain-prefix="${CHOST}-" \
838 + --with-unsigned-addon-scopes=app,system \
839 + --x-includes="${ESYSROOT}/usr/include" \
840 + --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
841 +
842 + # Set update channel
843 + local update_channel=release
844 + [[ -n ${MOZ_ESR} ]] && update_channel=esr
845 + mozconfig_add_options_ac '' --update-channel=${update_channel}
846 +
847 + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
848 + mozconfig_add_options_ac '' --enable-rust-simd
849 + fi
850 +
851 + # For future keywording: This is currently (97.0) only supported on:
852 + # amd64, arm, arm64 & x86.
853 + # Might want to flip the logic around if Firefox is to support more arches.
854 + if use ppc64; then
855 + mozconfig_add_options_ac '' --disable-sandbox
856 + else
857 + mozconfig_add_options_ac '' --enable-sandbox
858 + fi
859 +
860 + if [[ -s "${S}/api-google.key" ]] ; then
861 + local key_origin="Gentoo default"
862 + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
863 + key_origin="User value"
864 + fi
865 +
866 + mozconfig_add_options_ac "${key_origin}" \
867 + --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
868 + else
869 + einfo "Building without Google API key ..."
870 + fi
871 +
872 + if [[ -s "${S}/api-location.key" ]] ; then
873 + local key_origin="Gentoo default"
874 + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
875 + key_origin="User value"
876 + fi
877 +
878 + mozconfig_add_options_ac "${key_origin}" \
879 + --with-google-location-service-api-keyfile="${S}/api-location.key"
880 + else
881 + einfo "Building without Location API key ..."
882 + fi
883 +
884 + if [[ -s "${S}/api-mozilla.key" ]] ; then
885 + local key_origin="Gentoo default"
886 + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
887 + key_origin="User value"
888 + fi
889 +
890 + mozconfig_add_options_ac "${key_origin}" \
891 + --with-mozilla-api-keyfile="${S}/api-mozilla.key"
892 + else
893 + einfo "Building without Mozilla API key ..."
894 + fi
895 +
896 + mozconfig_use_with system-av1
897 + mozconfig_use_with system-harfbuzz
898 + mozconfig_use_with system-harfbuzz system-graphite2
899 + mozconfig_use_with system-icu
900 + mozconfig_use_with system-jpeg
901 + mozconfig_use_with system-libevent
902 + mozconfig_use_with system-libvpx
903 + mozconfig_use_with system-png
904 + mozconfig_use_with system-webp
905 +
906 + mozconfig_use_enable dbus
907 + mozconfig_use_enable libproxy
908 +
909 + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
910 +
911 + mozconfig_use_enable geckodriver
912 +
913 + if use hardened ; then
914 + mozconfig_add_options_ac "+hardened" --enable-hardening
915 + append-ldflags "-Wl,-z,relro -Wl,-z,now"
916 + fi
917 +
918 + local myaudiobackends=""
919 + use jack && myaudiobackends+="jack,"
920 + use sndio && myaudiobackends+="sndio,"
921 + use pulseaudio && myaudiobackends+="pulseaudio,"
922 + ! use pulseaudio && myaudiobackends+="alsa,"
923 +
924 + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
925 +
926 + mozconfig_use_enable wifi necko-wifi
927 +
928 + if use wayland ; then
929 + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
930 + else
931 + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
932 + fi
933 +
934 + if use lto ; then
935 + if use clang ; then
936 + # Upstream only supports lld when using clang
937 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
938 +
939 + mozconfig_add_options_ac '+lto' --enable-lto=cross
940 +
941 + else
942 + # ThinLTO is currently broken, see bmo#1644409
943 + mozconfig_add_options_ac '+lto' --enable-lto=full
944 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
945 + fi
946 +
947 + if use pgo ; then
948 + mozconfig_add_options_ac '+pgo' MOZ_PGO=1
949 +
950 + if use clang ; then
951 + # Used in build/pgo/profileserver.py
952 + export LLVM_PROFDATA="llvm-profdata"
953 + fi
954 + fi
955 + else
956 + # Avoid auto-magic on linker
957 + if use clang ; then
958 + # This is upstream's default
959 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
960 + else
961 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
962 + fi
963 + fi
964 +
965 + # LTO flag was handled via configure
966 + filter-flags '-flto*'
967 +
968 + mozconfig_use_enable debug
969 + if use debug ; then
970 + mozconfig_add_options_ac '+debug' --disable-optimize
971 + else
972 + if is-flag '-g*' ; then
973 + if use clang ; then
974 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
975 + else
976 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
977 + fi
978 + else
979 + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
980 + fi
981 +
982 + if is-flag '-O0' ; then
983 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
984 + elif is-flag '-O4' ; then
985 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
986 + elif is-flag '-O3' ; then
987 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
988 + elif is-flag '-O1' ; then
989 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
990 + elif is-flag '-Os' ; then
991 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
992 + else
993 + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
994 + fi
995 + fi
996 +
997 + # Debug flag was handled via configure
998 + filter-flags '-g*'
999 +
1000 + # Optimization flag was handled via configure
1001 + filter-flags '-O*'
1002 +
1003 + # Modifications to better support ARM, bug #553364
1004 + if use cpu_flags_arm_neon ; then
1005 + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
1006 +
1007 + if ! tc-is-clang ; then
1008 + # thumb options aren't supported when using clang, bug 666966
1009 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \
1010 + --with-thumb=yes \
1011 + --with-thumb-interwork=no
1012 + fi
1013 + fi
1014 +
1015 + if [[ ${CHOST} == armv*h* ]] ; then
1016 + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
1017 +
1018 + if ! use system-libvpx ; then
1019 + sed -i \
1020 + -e "s|softfp|hard|" \
1021 + "${S}"/media/libvpx/moz.build \
1022 + || die
1023 + fi
1024 + fi
1025 +
1026 + if use clang ; then
1027 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
1028 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
1029 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
1030 + local disable_elf_hack=
1031 + if use amd64 ; then
1032 + disable_elf_hack=yes
1033 + elif use x86 ; then
1034 + disable_elf_hack=yes
1035 + elif use arm ; then
1036 + disable_elf_hack=yes
1037 + fi
1038 +
1039 + if [[ -n ${disable_elf_hack} ]] ; then
1040 + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
1041 + fi
1042 + elif tc-is-gcc ; then
1043 + if ver_test $(gcc-fullversion) -ge 10 ; then
1044 + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1045 + append-cxxflags -fno-tree-loop-vectorize
1046 + fi
1047 + fi
1048 +
1049 + # Additional ARCH support
1050 + case "${ARCH}" in
1051 + arm)
1052 + # Reduce the memory requirements for linking
1053 + if use clang ; then
1054 + # Nothing to do
1055 + :;
1056 + elif use lto ; then
1057 + append-ldflags -Wl,--no-keep-memory
1058 + else
1059 + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
1060 + fi
1061 + ;;
1062 + esac
1063 +
1064 + if ! use elibc_glibc ; then
1065 + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
1066 + fi
1067 +
1068 + # Allow elfhack to work in combination with unstripped binaries
1069 + # when they would normally be larger than 2GiB.
1070 + append-ldflags "-Wl,--compress-debug-sections=zlib"
1071 +
1072 + # Make revdep-rebuild.sh happy; Also required for musl
1073 + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
1074 +
1075 + # Pass $MAKEOPTS to build system
1076 + export MOZ_MAKE_FLAGS="${MAKEOPTS}"
1077 +
1078 + # Use system's Python environment
1079 + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
1080 +
1081 + if use system-python-libs; then
1082 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
1083 + else
1084 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
1085 + fi
1086 +
1087 + # Disable notification when build system has finished
1088 + export MOZ_NOSPAM=1
1089 +
1090 + # Portage sets XARGS environment variable to "xargs -r" by default which
1091 + # breaks build system's check_prog() function which doesn't support arguments
1092 + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
1093 +
1094 + # Set build dir
1095 + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
1096 +
1097 + # Show flags we will use
1098 + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
1099 + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
1100 + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
1101 + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
1102 + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
1103 +
1104 + # Handle EXTRA_CONF and show summary
1105 + local ac opt hash reason
1106 +
1107 + # Apply EXTRA_ECONF entries to $MOZCONFIG
1108 + if [[ -n ${EXTRA_ECONF} ]] ; then
1109 + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
1110 + for opt in "${ac[@]}"; do
1111 + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
1112 + done
1113 + fi
1114 +
1115 + echo
1116 + echo "=========================================================="
1117 + echo "Building ${PF} with the following configuration"
1118 + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
1119 + [[ -z ${hash} || ${hash} == \# ]] \
1120 + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
1121 + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
1122 + done
1123 + echo "=========================================================="
1124 + echo
1125 +
1126 + ./mach configure || die
1127 +}
1128 +
1129 +src_compile() {
1130 + local virtx_cmd=
1131 +
1132 + if use pgo ; then
1133 + virtx_cmd=virtx
1134 +
1135 + # Reset and cleanup environment variables used by GNOME/XDG
1136 + gnome2_environment_reset
1137 +
1138 + addpredict /root
1139 + fi
1140 +
1141 + local -x GDK_BACKEND=x11
1142 +
1143 + ${virtx_cmd} ./mach build --verbose \
1144 + || die
1145 +}
1146 +
1147 +src_install() {
1148 + # xpcshell is getting called during install
1149 + pax-mark m \
1150 + "${BUILD_DIR}"/dist/bin/xpcshell \
1151 + "${BUILD_DIR}"/dist/bin/${PN} \
1152 + "${BUILD_DIR}"/dist/bin/plugin-container
1153 +
1154 + DESTDIR="${D}" ./mach install || die
1155 +
1156 + # Upstream cannot ship symlink but we can (bmo#658850)
1157 + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
1158 + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
1159 +
1160 + # Don't install llvm-symbolizer from sys-devel/llvm package
1161 + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
1162 + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
1163 + fi
1164 +
1165 + # Install policy (currently only used to disable application updates)
1166 + insinto "${MOZILLA_FIVE_HOME}/distribution"
1167 + newins "${FILESDIR}"/distribution.ini distribution.ini
1168 + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
1169 +
1170 + # Install system-wide preferences
1171 + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
1172 + insinto "${PREFS_DIR}"
1173 + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
1174 +
1175 + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
1176 +
1177 + # Set dictionary path to use system hunspell
1178 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
1179 + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
1180 + EOF
1181 +
1182 + # Force hwaccel prefs if USE=hwaccel is enabled
1183 + if use hwaccel ; then
1184 + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
1185 + >>"${GENTOO_PREFS}" \
1186 + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
1187 +
1188 + if use wayland; then
1189 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
1190 + pref("gfx.x11-egl.force-enabled", false);
1191 + EOF
1192 + else
1193 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
1194 + pref("gfx.x11-egl.force-enabled", true);
1195 + EOF
1196 + fi
1197 + fi
1198 +
1199 + if ! use gmp-autoupdate ; then
1200 + local plugin
1201 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1202 + einfo "Disabling auto-update for ${plugin} plugin ..."
1203 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
1204 + pref("media.${plugin}.autoupdate", false);
1205 + EOF
1206 + done
1207 + fi
1208 +
1209 + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
1210 + if use system-harfbuzz ; then
1211 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
1212 + sticky_pref("gfx.font_rendering.graphite.enabled", true);
1213 + EOF
1214 + fi
1215 +
1216 + # Install language packs
1217 + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
1218 + if [[ -n "${langpacks}" ]] ; then
1219 + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
1220 + fi
1221 +
1222 + # Install geckodriver
1223 + if use geckodriver ; then
1224 + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
1225 + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
1226 + exeinto "${MOZILLA_FIVE_HOME}"
1227 + doexe "${BUILD_DIR}"/dist/bin/geckodriver
1228 +
1229 + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
1230 + fi
1231 +
1232 + # Install icons
1233 + local icon_srcdir="${S}/browser/branding/official"
1234 + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
1235 +
1236 + insinto /usr/share/icons/hicolor/symbolic/apps
1237 + newins "${icon_symbolic_file}" ${PN}-symbolic.svg
1238 +
1239 + local icon size
1240 + for icon in "${icon_srcdir}"/default*.png ; do
1241 + size=${icon%.png}
1242 + size=${size##*/default}
1243 +
1244 + if [[ ${size} -eq 48 ]] ; then
1245 + newicon "${icon}" ${PN}.png
1246 + fi
1247 +
1248 + newicon -s ${size} "${icon}" ${PN}.png
1249 + done
1250 +
1251 + # Install menu
1252 + local app_name="Mozilla ${MOZ_PN^}"
1253 + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
1254 + local desktop_filename="${PN}-esr.desktop"
1255 + local exec_command="${PN}"
1256 + local icon="${PN}"
1257 + local use_wayland="false"
1258 +
1259 + if use wayland ; then
1260 + use_wayland="true"
1261 + fi
1262 +
1263 + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
1264 +
1265 + sed -i \
1266 + -e "s:@NAME@:${app_name}:" \
1267 + -e "s:@EXEC@:${exec_command}:" \
1268 + -e "s:@ICON@:${icon}:" \
1269 + "${WORKDIR}/${PN}.desktop-template" \
1270 + || die
1271 +
1272 + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
1273 +
1274 + rm "${WORKDIR}/${PN}.desktop-template" || die
1275 +
1276 + # Install wrapper script
1277 + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
1278 + newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
1279 +
1280 + # Update wrapper
1281 + sed -i \
1282 + -e "s:@PREFIX@:${EPREFIX}/usr:" \
1283 + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
1284 + -e "s:@APULSELIB_DIR@:${apulselib}:" \
1285 + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
1286 + "${ED}/usr/bin/${PN}" \
1287 + || die
1288 +}
1289 +
1290 +pkg_preinst() {
1291 + xdg_pkg_preinst
1292 +
1293 + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
1294 + # does not need to be forced into the LD_LIBRARY_PATH
1295 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1296 + einfo "APULSE found; Generating library symlinks for sound support ..."
1297 + local lib
1298 + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
1299 + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
1300 + # A quickpkg rolled by hand will grab symlinks as part of the package,
1301 + # so we need to avoid creating them if they already exist.
1302 + if [[ ! -L ${lib##*/} ]] ; then
1303 + ln -s "${lib}" ${lib##*/} || die
1304 + fi
1305 + done
1306 + popd &>/dev/null || die
1307 + fi
1308 +}
1309 +
1310 +pkg_postinst() {
1311 + xdg_pkg_postinst
1312 +
1313 + if ! use gmp-autoupdate ; then
1314 + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
1315 + elog "installing into new profiles:"
1316 + local plugin
1317 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1318 + elog "\t ${plugin}"
1319 + done
1320 + elog
1321 + fi
1322 +
1323 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1324 + elog "Apulse was detected at merge time on this system and so it will always be"
1325 + elog "used for sound. If you wish to use pulseaudio instead please unmerge"
1326 + elog "media-sound/apulse."
1327 + elog
1328 + fi
1329 +
1330 + local show_doh_information
1331 + local show_normandy_information
1332 + local show_shortcut_information
1333 +
1334 + if [[ -z "${REPLACING_VERSIONS}" ]] ; then
1335 + # New install; Tell user that DoH is disabled by default
1336 + show_doh_information=yes
1337 + show_normandy_information=yes
1338 + show_shortcut_information=no
1339 + else
1340 + local replacing_version
1341 + for replacing_version in ${REPLACING_VERSIONS} ; do
1342 + if ver_test "${replacing_version}" -lt 91.0 ; then
1343 + # Tell user that we no longer install a shortcut
1344 + # per supported display protocol
1345 + show_shortcut_information=yes
1346 + fi
1347 + done
1348 + fi
1349 +
1350 + if [[ -n "${show_doh_information}" ]] ; then
1351 + elog
1352 + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
1353 + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
1354 + elog "DNS traffic to Cloudflare by default is not a good idea and applications"
1355 + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
1356 + elog "(\"Off by choice\") by default."
1357 + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
1358 + fi
1359 +
1360 + # bug 713782
1361 + if [[ -n "${show_normandy_information}" ]] ; then
1362 + elog
1363 + elog "Upstream operates a service named Normandy which allows Mozilla to"
1364 + elog "push changes for default settings or even install new add-ons remotely."
1365 + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
1366 + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
1367 + elog "concerns prevail, which is why we have switched off the use of this"
1368 + elog "service by default."
1369 + elog
1370 + elog "To re-enable this service set"
1371 + elog
1372 + elog " app.normandy.enabled=true"
1373 + elog
1374 + elog "in about:config."
1375 + fi
1376 +
1377 + if [[ -n "${show_shortcut_information}" ]] ; then
1378 + elog
1379 + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
1380 + elog "each supported display protocol. Instead we will only install"
1381 + elog "one generic Mozilla ${PN^} shortcut."
1382 + elog "If you still want to be able to select between running Mozilla ${PN^}"
1383 + elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
1384 + fi
1385 +
1386 + # bug 835078
1387 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
1388 + ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
1389 + ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
1390 + ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
1391 + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
1392 + fi
1393 +
1394 + elog
1395 + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
1396 + elog "useragent checks. To temporarily fix this, enter about:config and modify "
1397 + elog "network.http.useragent.forceVersion preference to \"99\"."
1398 + elog "Or install an addon to change your useragent."
1399 + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
1400 + elog
1401 +
1402 + optfeature_header "Optional programs for extra features:"
1403 + optfeature "desktop notifications" x11-libs/libnotify
1404 + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas
1405 +}