summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2022-06-19 12:44:16 -0400
committerAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2022-06-19 12:44:16 -0400
commite6784cd612f90afc150622adbf1de9dfd59dc6e2 (patch)
treefe627d5f7d4d03f2af3f48541892a9c253dd9422
parent0aa579e9dc9aa60df1e75dd2b50325fa4a3cfa31 (diff)
downloadgentoo-overlay-e6784cd612f90afc150622adbf1de9dfd59dc6e2.tar.xz
gentoo-overlay-e6784cd612f90afc150622adbf1de9dfd59dc6e2.zip
www-client/firefox: import from ::gentoo, add virtualwl
-rw-r--r--www-client/firefox/Manifest99
-rw-r--r--www-client/firefox/files/disable-auto-update.policy.json5
-rw-r--r--www-client/firefox/files/distribution.ini42
-rw-r--r--www-client/firefox/files/firefox-r1.sh116
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js12
-rw-r--r--www-client/firefox/files/gentoo-hwaccel-prefs.js-r25
-rw-r--r--www-client/firefox/files/icon/firefox-r3.desktop236
-rw-r--r--www-client/firefox/files/icon/firefox-symbolic.svg64
-rw-r--r--www-client/firefox/firefox-101.0.1-r11.ebuild1297
-rw-r--r--www-client/firefox/metadata.xml42
10 files changed, 1918 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
new file mode 100644
index 0000000..da015ef
--- /dev/null
+++ b/www-client/firefox/Manifest
@@ -0,0 +1,99 @@
+DIST firefox-101-patches-08j.tar.xz 40248 BLAKE2B 1dabb91b848b4baa6b1fc20cfaeeb92a7c669369f922a3929b0966d4dd98a0d4445ee3056079a3c33193d8da69780f8ff481160f58ff1216157b4144558d4a98 SHA512 d85203262166554efdcf91a913cf539da4e4443807c7ad756ae7784a738100e9a0e8b51226bfad578455f0d5b13bba2d4782d34d7974e573ccad28033c544da4
+DIST firefox-101.0.1-ach.xpi 443457 BLAKE2B 68a1ebdccbce17eeac8824e63e034f0db706a091b4dea9ce1c14d0b769ad404e36004e89a838ef68bfbc44336125bb3494ade8b076ce38e70ea15b78f394f8e5 SHA512 9ee130d4e96bb73ec2ec01bd75faa2687bcb620727f44e199ee17db3e523254e0a0e8bd8d1813f4eebeb80e575ba20b312677d23a4994aadc6a4d4fb9bbfa5b8
+DIST firefox-101.0.1-af.xpi 413389 BLAKE2B d531c87e3df019cd5ff8e497cb3e74f000d238b65329d4eff72fbe80c2e3052abbaa19bac17d9383df1a2d88e60fa20c9511b1c12ca3fc06fb986db4902da772 SHA512 c9ddeb4ddd6dd8704c17f5dd8bf8ebdb881d88ad1bb1e01737b70ba0efd3374fda0829123afcbfbf98b770be4c281a714fbab2ee30d6fceff3eacbfa398df9db
+DIST firefox-101.0.1-an.xpi 487249 BLAKE2B 7d7d6b1b0590940df28b4a432d3909200496e500cce58cefb71393e6778723e71a251fede6470c97bb63b7e66b2c807bd9cf23fe4f790a9ea86c1f4856a48206 SHA512 fa7d675d52d547c7168e402e6a9c4f4687a1b1dd251e8e75ed8d0b7e171960e2762ae42d94d950d1925467b6195141101dd0b662c39919822ff2fdd2a248613f
+DIST firefox-101.0.1-ar.xpi 552750 BLAKE2B ad12ce6e550dcd4979b2664f80f7e36b0059ff35430832ffda5e29f6e2eda241f558eda5936ea2682d030b423784907ceb8b066cf477be74dc09d49abdd3c9f7 SHA512 dc8a76c47eb7cb05c8c411da7066820b766d5b7af192c1ee9256479fb268f2d829442133e8073baae2945b6d1892a8c6aa40f1c0cc790819f3e4ef11cee04c6c
+DIST firefox-101.0.1-ast.xpi 485914 BLAKE2B e3948117361aa4963b01df83b432130e75b670a075464c59894fbf4b4035ec78cb5030a17709ea9753258d1b2cf430f3488afc60ec5fdae4385d40421d7edd7a SHA512 9777c5922246b3d010652191a90aa5a0be9d0938d0432fe9e3a2819ccf07c7d605ed7eaa1d8e06f103ded77b943afb3a16cd9995040e769fd9e328a5bd5071c8
+DIST firefox-101.0.1-az.xpi 477260 BLAKE2B 0366f231862dfa7441615973f661488862abf11a551c714cabd6e754a33e45a25438f37071b90c9657eeb14b959e87e2986d7715fac70a228589ac9807401b17 SHA512 7b7abffa5a3ab9ec79c061faddb5492233c632061503867fc591ae2438d294ea77838f955d1addb87ef7965533f0990a0e4ae0682079f2775204fb95ca266d82
+DIST firefox-101.0.1-be.xpi 614359 BLAKE2B ac110e7057583c6d8dcce3377cf3ef2b99d404062387889242919c603e5fa454b0c840fcf63f572a560fee1d923e82e38181d436ded155efd4c3c7f00f5c52d4 SHA512 4c16da60999be558aae25004e12a75ce06061efc896ed5f612981b12ec6c293b3b6a8d8d0f732ca9b4686c1a0671d4359e115c4bb2e61ebe61b2d86cc34d2851
+DIST firefox-101.0.1-bg.xpi 558763 BLAKE2B 5af9937802d4ea43497f2101b87d8cc671737ac0c973c396035d0ac5ee332423ce9cfd6d6f9b812c3a0e09df695e48cec41e5f54df87046db9a8ad8aa5849414 SHA512 805966779a30d517f33755c4fee9b16079afd51edac2eabda32a64d718837d2bd47319302fef94e7b85e63ec1bc86a63be308b7f12c1847b5b7ff759d5568432
+DIST firefox-101.0.1-bn.xpi 545251 BLAKE2B de6e023fb1ed7455ada6ebc428b9cbfbaea7c593642a0a9ff2f4870a2f1d5f79b699ba491b8e6a4516070a34a0eb769fcf2d78d992b5caa79771f11d8186aab4 SHA512 b4910642b958b0f5b8dfb3708f973b985039c4cc35932fc6b3d1f0ad24ae2df75457b1d103ba2b39864a651d4a3c0f19301ac29504db7cc7c339c4757382b5a2
+DIST firefox-101.0.1-br.xpi 519308 BLAKE2B ec18b7362563cda585bbc5f5c696b809741d6da2bf05b4b4b551dbff6bdb0a39d59ce90c0714369cda3293f01ad7e66ac8e5ed415a627c0b761d0f133ad96e0a SHA512 df65f9f0cf1bd875ac376b5c6c6e8f2e6db885a88573b6aa40323e09bdc07790164fe01d250975845c83a5f54cf836e3f77a47603d86110b22c75e4da2231fa4
+DIST firefox-101.0.1-bs.xpi 452138 BLAKE2B bad35baff87fc4a07d33567f0bd76a14f211c1bee15d4376b4d7d51866bd5c1408618bfa89f88cf2a05ca47e87d91787ff2ead210cb5deb467a2dc0737caafd8 SHA512 7af3553a7a773bd5c26e16c388b7cd07e097e88937dbee83c3fa8f31463f7845923a62a655aeb4ba7cbb06cc6bcd128ad6c9eb1fed4c76b594cc8f08be01d004
+DIST firefox-101.0.1-ca-valencia.xpi 526520 BLAKE2B fae0b9cd5642a7c1bee467ea8f2b55b46cc093759be0d32f075b1e7c4c177780a3e90492794ecb1acf519c1cfe0cf8ffd43cab97676e295dcf00c46f558cd232 SHA512 4697f74f258b85af0516bd85211438671ffd539462d58d3eac49e535c3a8c0a0d4fff7dac97dabf50f74db77aaccf9d664d534663312288ad65290c18bc0dc05
+DIST firefox-101.0.1-ca.xpi 521443 BLAKE2B a2200d34353e20af691ac336f9eeece6907455498b85bed08d42644c95a7e01fab2b2777efaa87fd170ad81d9066b43e9e6d329b32e12745077454eec4e31ce9 SHA512 94b10a1d80110152304336976dad57681fda31c0776116f4b6bfc8e16d16d8fb14945b470e5ef5eadf4b482a8c63ed705de05939021e837295134d5a14edd218
+DIST firefox-101.0.1-cak.xpi 539976 BLAKE2B e40ea9ed10d864aa18f787388e155560353413e62f4ab4466ebaf41892b1bf9233c17406af43b8ef081708c3c772d69372953143d6d2dff4e6aa8a8a63466c7b SHA512 ded2be93d946de8cc81534612c0f17cc20a9903f8f47fd69a07d3c20b7ed2f59b61a9f06d6223024cfafeecdf9803e8d26572480995569b91b425b34a616c57b
+DIST firefox-101.0.1-cs.xpi 557477 BLAKE2B 6883a85ab711c863b8db188f2cc0445f9d9d7842ef80d62f9bc052a149bf7c7307c2672495ea41a0cdc33f3f78664395d0fe4dd6f2f7b80a24255b4e7c5f80f3 SHA512 5416128c4a38da6eeaf14c74754fb09e76af5d1f8dcc8b26f55ccdd024e284fe4dcd3a7c20dfdc14d5c8e3e9a48c0c4e80d7be0c6e6c38f278367bc7a020e084
+DIST firefox-101.0.1-cy.xpi 534442 BLAKE2B f7769a3593c61d28f723231c3e015f022c461b9f42c388c6471734bf70f75dee8643d67b96b1e4e339f49035f41aa06c5f6eca65e79576bbd8622fd4b4c56cf2 SHA512 92e68512f1f7f583de04cf5fe2a5bf095f149e691f5ca29540e53c7e056da45aae973f90519a58b7b9fcd8e3f944a1d719294e72d1d996d6833ab50420b3b36b
+DIST firefox-101.0.1-da.xpi 526079 BLAKE2B 4167db60be422b4d3ead0c742528ba8b028ad13ea264cc27fedac2bae0e7c5ec6ed86fd897e9619c9e8e5c7d5e331debd494223c6049826a9df409cfb30039c9 SHA512 29d29eebcb75b5bd0f19fa659af8c839e7307854a597a59b345bf0bcf96217dd9596c24aab056d988b3f5f9b6b32c97e1143b2449d405ffdbd561f22dc0891b0
+DIST firefox-101.0.1-de.xpi 545591 BLAKE2B 339a654ff451eaf95b5607c6e9c9838400b0445e42cbd4d6a5a29922453c509377ac15e8854b0d3a2a0fbf1d2dba498d182aab19627afa531ee3b0de920da815 SHA512 b7e37f20df57c02a2e21221c9cdcdb8945585ffb738598c272f73336309e31f40cdd23c3abcf6b048b759a8807deaed2d5e005426255b5dc8adfe09d2e3b8bdd
+DIST firefox-101.0.1-dsb.xpi 558329 BLAKE2B 005d9561273853d9767a5672e17be380c8e650f961ba2b522fd66bf4ff3cfdd65430feff42cbfe0be94cfed72088c23ef1dfebfc3443230c7e59d7d8f08cebe6 SHA512 9c72d94014bf859aecca298cf7278be4ab9682631fe3303ecf8863c5fc82518e4fc468a31ba5c8a8fdeb3627122ed3c54a37621f8a817269d0e1e200f9042c2f
+DIST firefox-101.0.1-el.xpi 629456 BLAKE2B 38273ec783d09b7a46cf1d56739d2da87f8abb79412e6e8450441cb96e02b7c4ec90ffdf3440583e6dc6d0d48415a26c33b0af29c05273b9819490fd4bc59ea2 SHA512 1dc5c220cbf829463cf622eb7d28395a6fb68515e9c74ae316b126490901efcaf84bb8c5682c05f207efc54537983e2059f4991e1df9f6236fabda7cadc78f96
+DIST firefox-101.0.1-en-CA.xpi 502217 BLAKE2B edb994ba92fafce6b3153c71f92cb9cdcf1386eaab949f82ed407e19116eb70d75ea248961c54de46c3ee8dd9a716888451fb8ba67d7ac419f9094ecd26911c1 SHA512 c14c0c1c6dd289f2fa2ffb01d4848cdecf2f405494082c690f89d8524950b8ccd9410340a3e7314adce2e8d3d513e315cb8e0315097caaf61cf5b10746ec0250
+DIST firefox-101.0.1-en-GB.xpi 503125 BLAKE2B 08ce3db2d2ae644e563ec42b84df07ec61051b70ae0f484ccd32feb696e8476e881c3ce1a9c1669460823045b8dac0bae577c580f8dc14c587ecc9daa5220c65 SHA512 17fddd7ca3b2364f2e282124b68c725090b8064446767f866dd456e9b77e1b5570d4133d37839b80defbc3e388cf84938a3feaeccbbd65b76e38a9c2a5637715
+DIST firefox-101.0.1-eo.xpi 529043 BLAKE2B 724136c1e18bc0ec99c2dad23f566dbd8e283359f6798be6e0d9ec5cf72eb02af23211867c508dd4c387f41b1680f6e9de447ad8225a324dbe0cba0239f4ebb3 SHA512 7c9a7e10b5aad212c3de8dd5799410fe0b1ff80f3bdaac08c6a8b6927627d56a6a35f278b7dd3283510de37539a69c7f8356653ec3959d0ef33396222f19a510
+DIST firefox-101.0.1-es-AR.xpi 539056 BLAKE2B 18ed1bfbad86c11672ea35f62479c59035f8323ef1f94f7e7eb8ada77382c2db9ac166a53b4e8abf2f1a2d2560df5ad0e8f47db7c8ba5eb237461e0adad7cd78 SHA512 d1d272b84b613540a3385fe3c9228fddf3718ef1de6c63b11f750961d27c3b985fc2c3c906183b175bc5ca2e7d8f51512bbacb97c8eebb0647a16b0df8fa0762
+DIST firefox-101.0.1-es-CL.xpi 538152 BLAKE2B 12c7d172873ebfdfd53c43f73d6aa0148c1d3824048455010054f93f0c00c405aa6e65309ab3b79168af33424cbfcec5cfc6652972e71f2d2e2234d04826921f SHA512 ba27192bd5e696693723f4753758e4a5e6b3f3899eb551f806f84c027390d3a14f074fa2faa3317236c5bc0ec5f2f347ed979c58bf4674d9698f6bf2d7291c0b
+DIST firefox-101.0.1-es-ES.xpi 529115 BLAKE2B 033c070fd325992e500f32a791c23f7836e59e4fab53fe1bfebb643d8991b0e3e2bbef12de1169123a28f05f1a0a28deb285bad8322e98b459b2097d306f64df SHA512 3ac7261ea4af4a13c05b21a7b36e187688059ef8407bc9c731202931835c489ecab01b16e149b7effb8112bb05612cdb28ed1ccad748e634f8910000219ce422
+DIST firefox-101.0.1-es-MX.xpi 542146 BLAKE2B 1ad797c168ce6292c3562968446ffd60d4a58e11745b26d15184170363038d632e7f85854c8691a1fdea6a2f8c249dc0d9ec086508356c0e3213049f8a79e7d5 SHA512 0294e7f9b9f89c2cab0b2494da9369f51755934b1768caf97fb8fc19afe00181808c9a4b826bbb974d4679db196cf465f7b8cf66325affaababb4af92efb036f
+DIST firefox-101.0.1-et.xpi 520745 BLAKE2B fabe897d39e45a827cabbd05d38ac75279fd6b47002aacd9f94e659c577f50d358fc4b122292e5513c06b02967d1b5b621a7a2e1f6fe2f29f9dc3a0fcc1519de SHA512 9110b812fffaa00e8ad98c68a1ea872a60d9749082e543f04dee75982403f16a99ad89a315a1ca55dc80f1aa21e00b62a8a44eb3711fb46a600f12bc2f43d95a
+DIST firefox-101.0.1-eu.xpi 527791 BLAKE2B 92adec2270f666d4c271a6245d4d03ac5b9215c231dc473365d4e901b5badba8ce2e22587102c910e89c066a3dbc8b12803551d1fb316a53df1da0960ddaa3c3 SHA512 399b4de6bcc04625ab7b78b8f8ef82a38b14f57f86488b5bd0f29934bddf68aefe896b8b82c6f690b9a8227ab8732751f226bd3dff3f4777c3a75b2928ef4033
+DIST firefox-101.0.1-fa.xpi 551016 BLAKE2B f799ecc79b141367935249ec3732c2792989486c3baacbc4bda42f134dcaf20a5f4d9b48ad2f6dbfd6c6a0a3336c587b320c83e8f9d473061bf7de7d06e8539a SHA512 eccaa26d7846141b5d4f66b4a7ff01966070f904138fb255a7fd0171b05c70f0476560917b4e8b611cb9060bc264c5a058dea12482a5fa4e0b5f7745a1432a76
+DIST firefox-101.0.1-ff.xpi 461242 BLAKE2B 3f6d7b9a545ad71ac773d19537936f2f7d4dcb0c98686d26ac360c8aa646679a0bafc2dbe4234537990fbba971588009f4d347b823e988521aa4a23d4f84f3e6 SHA512 147dba504b74b8f9ca71965897c7bcbd7e0f1db6812c0f65776efda4bc9bdbfb24ac24f6fce367eb09778f7eef193b0d4b23f736a8f3b3faa91bfc2807ce8b4d
+DIST firefox-101.0.1-fi.xpi 523432 BLAKE2B ad70105133f7fbb70871b3e349d01055e44e7be9381461d815bb2964d9e028782196d41ce070c983b5ee4881f66d7ff84b6eae6caeb3fbbe8832490b465dc184 SHA512 30155ade86d2f3edd656d7fec404a2342c66b33bd475b5f2462fe6af53c6c8bda19a9c3597cf540bcfffdd059276c0f18943030e409b2ecd61b1858633886005
+DIST firefox-101.0.1-fr.xpi 549201 BLAKE2B 3565e0c60d765f9a792444a6199dd7afb092c72af1163a8a0c6767eddef7e441bf25ae3b41de58ff224706751a5893e3a687237bab597ba0e265e99bcf566b9c SHA512 36d8ff0888c0f46dbb6b0b6c2a9e0b5a4cc4600471341cfd134bea4a1ae7d52ed505f3e5c2d4914747277a0ed4bdd8a241ee267617e44e8b39b8cd77883b1109
+DIST firefox-101.0.1-fy-NL.xpi 535699 BLAKE2B 1ef5d1dde46529b56e21dda8d9158de148510d38466dd999e2926ff1920fd721091d57deb1595eba1145639b3e7baa208cd0e827cfc18460be83377232c4b8e4 SHA512 f422022a610686095027fee7a6e630765ffa8e23b44d4f61bc6be90e1466e2cf7b34a925a8b25f8fa619d7cec8c84915f90ba468578b77cf061eea64a12ab76b
+DIST firefox-101.0.1-ga-IE.xpi 461041 BLAKE2B 62b9b758ec12cf0f7ec4488caea72e4541cba57d6b061cbe51942681df638c8f6bd4c1b15edda81917cd1894faacfeefbd7a9c193707d5be48f955981f769020 SHA512 52b42928f5409a00eec57623c95198166884afac651587419a6ab26d2ee23eb206555ca1d27262bf837a6e4395ffd0f174b871d0e5901cec01b9ccc37ae42533
+DIST firefox-101.0.1-gd.xpi 520127 BLAKE2B da15bcec9091935ccc7401c58d9c64ea577667ec85471ac739353c0e9508037c2052f5db5ea0c9227e72a64365e733eb85e74c44daa31865fbe5ab4e2a8ce1af SHA512 ac4cf491ffa844ec5e7a27d50f2fbc55c746a42470ecd3ff5d28d94062d4fb0653235c56173ff11781a7a1b5b2ccabd5e3fd0e3f11017ac293786f63171bcc42
+DIST firefox-101.0.1-gl.xpi 528662 BLAKE2B 6cf1fdc4b55cb19f8c2179ac4fa3ba1f9ac8c228b18640acb0f41237526e1b65a719d86a6351f4f98e12d7945edc57df91d524fe6c9f0cb1e8518d0e081b7905 SHA512 6aa8945bc7bbe68204359b944af149c942baf265a27a1ccb04b3d197bb1a06c9f905f1bf8e522d9eb8ba72678bb09b717d6a8e9bfe84cbee119e36db315ca412
+DIST firefox-101.0.1-gn.xpi 549941 BLAKE2B f71b0e07f50cda91d593e71bd53b5e6c35be33439c837ab07eeeaf594a8413db56f592767a75cf7b081d703a4a2540a10a00c57973c7b1dbf31fe19d89e42c71 SHA512 17367b23bf8e3d648d04e81e8adce8bd130e74190ccfdfe360854064a7bf89ccef19543b60cc689cecd9681738fa81f86d13e41670da1f3e1bb647be177e5db9
+DIST firefox-101.0.1-gu-IN.xpi 516675 BLAKE2B 48b1fb7ab79957286a1a0ce9b984df72ce6a13340ea19a3d16ccf00235358f9ef054f102c7c82a6908da50d9b8c08f26d5e8e2b1649d6c14e8bca3b0ab915f39 SHA512 1ff94d348a3480d7820975d9c619361a44c54337c561f24612cdd6a0a64f1d076ada25750e89f4e998db1ace77e331799aece55d7105a4d2765d63993386b2a7
+DIST firefox-101.0.1-he.xpi 549791 BLAKE2B 7ae7388a08a815d313a3efcb5e004137d7b8821a0c3cf395bd8b8d3acfce9248beeaea96184cc7c7e438703ed229986ea3ebb726d1873fc6cd41df52051d9287 SHA512 c3944d9f9006d0d6e189a0aa17e785d5e4156c87243ca0f373de14ca2b4607092fad829f9223f0d8bbb7c5efb79dd57561cdd336ec81615fddb803224e9a70e3
+DIST firefox-101.0.1-hi-IN.xpi 546761 BLAKE2B baa387d2b56f1bc25714f3e0c508bc744bd8c9d78cc8734da463ac531695f5e818b489f728967bfc571585453d49544a967568b5b07a41d3dc78c6b925e0a634 SHA512 acc86cf51fbdcc81a1ba3492dc1115b19ee3fa764c8757ea34e64b3d179ad960afb12f05ec18c1d5b9e985e40ecffcc427d01d8e6c21a46b47836153ec2396a1
+DIST firefox-101.0.1-hr.xpi 519202 BLAKE2B d905a5c69abda8c4741a63cefe624d4cd5a49ed1a1b83c77a51c506d55709e53dacf631da839f68135c43c0d35ce8ae06a45269f89d63db2331932e134e66eb7 SHA512 cd5c54e19678798a924daceff182ed16e59c23f1103422fe230a6d6e70f2239513719fe60b1b91c60b7ef7df1d01ebbba8a1ecde2aa294ef61c78e98f05cc4cc
+DIST firefox-101.0.1-hsb.xpi 554545 BLAKE2B de8377948716c4a852934fd660ae56f0dbf8d6d3b2ff78ce983aa41242144d09e2d469f010c0431843546b8fd68a412bb20058f6ffe5d95d82afaa8933a5d0d5 SHA512 96dd047012df846b4178335a7ef1fe8b6055f137f44ae617d2579b98b0bb87b2d2d29c2a1b270edcdca70588b007c73508f7b8f1c36d5d8a98a29c011f331f71
+DIST firefox-101.0.1-hu.xpi 557573 BLAKE2B e691668a8cc865586bf18749b0998199483c067afcfbcc5044c2b8a179862859158d918511625d12ed6bc9a9854478145b906f5b3c465c5df67d692d9162f9dc SHA512 e9611d63874609f994971a1b6007b5acb75a915122697bb54c0fac4558055f8e9cc9fb5b8bc0892cd5fa8aafb02fd3b88328abebca9c967c2ee69a14b51edbf8
+DIST firefox-101.0.1-hy-AM.xpi 568380 BLAKE2B 567c02333742edc07a58b2015c940f4ae1a57ebfda8e092ec9a41041a30f8e1b4f342cbf9336b36bdc3d8d4af8195af6a2e1742e47afbef72b9ef243a7cc9b96 SHA512 6a8299578c7826356d8232e7246897752d1d328c0401d58a0c3414805c6ca18152f5f80376121b5ab241e58ac24471125ea69aec7e05bd9e08f3e8ec3bb048fb
+DIST firefox-101.0.1-ia.xpi 524537 BLAKE2B 3d65d754d5391ada925b50b6a5ba50af538703b77aa1c98b932df2cac736f59af2b80a049c9d117646e942e507429415bcc05ebe57b2bf1a2d05a8e6acdb9b99 SHA512 1dfcd38ed753b4fb74a60c730ca9fc88770cddafcb7dcc82cb4af86cf7363fe446cb4f6957b148e26257e07b242479f5802d8d33af5eeec6f1b508af7a13195e
+DIST firefox-101.0.1-id.xpi 521948 BLAKE2B 3e1de30912d1d0f7abbeabd7a05c31c7e0871ac176249ae5b9b56cab3264cfc4ae341a6f81130aa53133f6f29fbd5367dc3f21b80b0bb1fade08056a44f8fd13 SHA512 9d6a47a4b7ac64abdd35cfe0b1fc61c09a9b1e8713793fc61a49867f610b9610065a1ef0228dfba78245b8a035b0221334ce39d947d05f464e49115cf468df1a
+DIST firefox-101.0.1-is.xpi 529383 BLAKE2B 529c69c84556869807f35b7481dd01cbfbbd5506a36212504dc7776160ab07321fe95e239503e7589ba148ce7d06f361dce57a41a1bee2f2932585109f38cd45 SHA512 a009c7242f1c3d320396c4151a139cb64d08716cc62827f52da60281857fec813c225ea35a024eedd934db7622834072796075aa9f689675b514fa2a8359ce5b
+DIST firefox-101.0.1-it.xpi 454741 BLAKE2B ba85efdc153b872d39faf2eed7f0a978b42a1d03bac8815b339cc615bf0e28ee13737a1a3d92f1e9f1998b791150b88561ca7738fb31aac8fecc17fec20edb22 SHA512 84f8ed2a21413d5725d71ab2633814d756e57fad08db20c8a615ca94f1a7c040e170a57ea15b63da7e245e921eecbd0df0dc4f71e2cdba07a355df5133c36bc8
+DIST firefox-101.0.1-ja.xpi 579349 BLAKE2B 45e5c19edbcb3908c5e29488ebe41ab7778945316634d86f4e4d836e3935e3ed03c654a54616e58e457da9aa6d651b6980abe2707c562f9f5593758ef2e1b6e4 SHA512 bce195760416ce5dfdfefcfcacf53b413d3fa6dc6f368e3247af32120a88dc58c12a82975b3a05351767723448e6e52c36a229e724f30e97861b97b6d0fa42b5
+DIST firefox-101.0.1-ka.xpi 582469 BLAKE2B 145d910ab8488febb1046c5b074d98004172547e591e888e80bf366fd89cf422299abe8a9c8ff0e6bd8e40818396850568b05a03f2f2c5c09651c8e555570b5b SHA512 ff903313ec8d0ebc189cd64a4d3471b79651c19ef1da828cf466ee404fa8a6ac2664af7cad13828aa9ae49f617f51b65a0ffbeca76276c36ecf7c34b2d3d6e6d
+DIST firefox-101.0.1-kab.xpi 543575 BLAKE2B 8447e5f1716fac1968ea2d7b8d85e81203835ba4f4c986d885d3496cabe2f4e3ea4fba10520165d4d94885636b24c7781e7a3cea3e19e65aa4fff2fbe0cf39fe SHA512 15e10114dc2c0dee5bbcde8207acbd75948e9bf8f0b65e030c2db7a5d353c75b40efd70fec595679c7ab81b461ee1ede3db03f20eaedaa10cff632b584e816d1
+DIST firefox-101.0.1-kk.xpi 605356 BLAKE2B d82e0beecc65b48598cfb2dac172e282bfadbe086af1c298aa00dc5a12b84ce6f03c9abfad185c6924263b5b491b4f51a47fb31774f6a21facecbea090631ae3 SHA512 9353b5ade59913f5ca9167cddec374ce5ec9f46ded7d5b8eb839b0cd029ac99d2123e063742856cdc458adf825f0635fff9d8782b3fa5f11d758886c9cee0968
+DIST firefox-101.0.1-km.xpi 520290 BLAKE2B 12ddd52beb1343b96f972e5174a64d722c34322a01cf59bbb1ba655beb39ab5c6090c9753c3444451e1282d3415963647f1270a828f2268c2c7e26e3f8f37970 SHA512 8a01a95c904a98550ac75db70797d95386de0db7fc066ff7e064311d991efae15781eca662c57bbf62c203b0aba30681328741a647ab5e24e09667a0954ac4d6
+DIST firefox-101.0.1-kn.xpi 486511 BLAKE2B fa510f85f5ab1f7901ae1f561bd432b28ebb0645570315ee10d35c1546a5dd1d231888582269b5b27ff53e385dd8306e8b55995234ed8b56adf0b676f1e60fe1 SHA512 57770fb499873b140507930c501fadd37416708eda993f5f5295b59e05609660c015a6d6fa8d03982836736b8136129708a67b8b371087ee2f48e2bbc440a80c
+DIST firefox-101.0.1-ko.xpi 570887 BLAKE2B 479e3801561fb646abb4748deff2b10b81e9d3f7f628aa087aba28da29e77e52fe32f99634b798c056e51128b32dad64956d351bb2da03fefba1b8fc79f60ba2 SHA512 5aa8ff54522b6ab51c7576b34c245abdfb59e7384ebc4296cb9ccd4cbd2357c21bc6442842262e4a35d3c8c7abc142b4740ccf28e85b1146125ba8cd52a45106
+DIST firefox-101.0.1-lij.xpi 459509 BLAKE2B 93babbedb995b01bda06ff29be69b55dcb885cbe5e23f345aa19e9af993c396df98f6d5b397eb926534395bdf9b2dd42ba8aa40e4709da2bccadf86597b969aa SHA512 1f0394937b2ef74a8ad3194f16219c73c2c11dc811ab1c117b197bfbfc96d255f0037fc7fd61cba90cdebf7b4beb43ff96a35b41034db382b148e996e05fd775
+DIST firefox-101.0.1-lt.xpi 546501 BLAKE2B fc2359da140d778693215c78a2c71a513964733a5517b07de106b1fa6024218794d5c3595decd773a7db6c4cfa4d33a7b3ff1fa5a0f6f256211100c4a44354be SHA512 bceea54b45eb8039d826b28e48cbac2162e584050c45221e5bf4687dc329c9e028ff739cf4218d97ccaca5ef9fa89aac77ffba2651131a9c9328e94e3e73c84d
+DIST firefox-101.0.1-lv.xpi 452400 BLAKE2B bbb03b5d3c21f129910ea0cb35c40ccbe6ea9f900858b2e37cef9cbad1422c562474a9c76a51b1436abf14fd7775e2fcab9b72e2ed7c36862525a934d7d6e570 SHA512 0eb14aaef00b25c98f06c5a1be786f83af9b1d9d027ca655e524744773ac4bb424a77963c5d93885c70ce6719acc70b38ad9345084b264ca0992e823bb15d5e4
+DIST firefox-101.0.1-mk.xpi 463662 BLAKE2B f001143be9dde44fefffef44418dd1f70f3959350839b5462ad508b58632a920d1ed5e4908f75dee02dd58665a876432f01e08dda5054d1417a2bfe0f37e8064 SHA512 a572dc677a9c822a2f75a8ad81e3b30e45b7c018bac338ed8f04dfd81021cee74b4486ff3fee030f889ce202c73e73d75b8348ff55bda4bb82ddb7f8dcf07ec1
+DIST firefox-101.0.1-mr.xpi 520151 BLAKE2B da7f85de2a0db0d1b7b1c97f8443d35df22258294b1af9620f3d168d2b79a19d6ad29c331cb75d77991a9b30b219048f0011cd8c4414911aef20c73d1956f634 SHA512 2953238683b74a5682ab00a9d1510be488dcc1f9a23f16e33aae5dae3df34b63b118f5a6b2391bf08d44f654917ed80d19d408983bc6086252bd668197ccf85e
+DIST firefox-101.0.1-ms.xpi 437586 BLAKE2B a99b9ca34df26c535260770835ea954059b289018a767ae31bebefe234320ba3a8d5d7f3bb5e9f343e5e3b69ff12cfe4e709f4da6a0c0b6bff4ab7e29c5a806c SHA512 5408697a9d542c559de6099dea7f58860f32941dece96d04cedb293f05905617b0d1a3adf7eaa875a53037d994ba3c594e0208950000f0e1ac05b7fa256fd0de
+DIST firefox-101.0.1-my.xpi 503453 BLAKE2B 71c7da9a650665c1764de87b308d53dd0859b9831d260bb846b93b8153b219150c78158cca92058773772e31f3cc363f65e0b3978d9de2957cee2b62de84f048 SHA512 b661fb1c3ef3254ea3b33e8cd44c66885ec94ae32faadc74230e6d93acbe13ce27cb0806f25f2d5f2f98ba6a05a1c5e185499fefa90e25410b2ff94ae26efe4b
+DIST firefox-101.0.1-nb-NO.xpi 521733 BLAKE2B 96077c67ba92855753abcd1a0617a98fa9177c93aefa2cfc239f90bb129f07afd727c5262399734e11b4575ad2ee6bb893afb98e9fa91542479e27392e9644f6 SHA512 e86d1ed31eec6c8a61d9abfe39971a74c5d823eafa8856032959b37d190639adf1d70ac6d8cde880f464fbb8452202bf70e92737a3061ba50edccec5b5f7f33f
+DIST firefox-101.0.1-ne-NP.xpi 478321 BLAKE2B f4de378d35c0929b00458e13466094b3cf67d0f651ab2132c06913fa67f3d7baccccbb9a6f25691d8ccb913aa5ab7ccc23e9bb8a026a0be63d1bf63a6ce93e50 SHA512 3075f35fdbd961e1c29ac8f7a9f17bd6a50ab177cc504d7554fdf2834478f3972ce6c6bf17c6bb0198417786c073433423802a783636a9b858c2c1b6949b1d97
+DIST firefox-101.0.1-nl.xpi 529639 BLAKE2B 7ad96403ec356fe9ae86d0539f7b982b5d2da49513f58a757c050b358e7e6e6d8b75b7939e30c10a0450a344d610d1441212e7826f689a0c1f09eb9f69c26f3a SHA512 41b35f5b95870ac3334686b19f82f49582a1a5992c3ed12ef421d3fbb93e58fab8e1d433b2cfc982e5823a5c58d3ad3e95ed8207b9e03d9e3430b3758ac0649f
+DIST firefox-101.0.1-nn-NO.xpi 523773 BLAKE2B 07721608b28abc99427b815c8b2df4c6c9c8866e8d7d4258ac1bddd20580eeec8138d9fc54945ac267b2eb80137e07dbf85dcd24b0a294ffa09081bb6338231a SHA512 797178353a17b4b5ba0dbfc117ed3c2a38d3d093f30612125163b890e66ea6ea4d8c8740d627b059d29701c27a5e6730e4403844b0add42e9464809ff0def214
+DIST firefox-101.0.1-oc.xpi 544435 BLAKE2B c2ecb49ab664260de8a0e1ed721a9752787a240db35155dbe905ab456720959362740ed81e20b9f45aec4e0a62c339d014b7db09483840bc2b3c36c3fe06bab6 SHA512 7270260c538dee769a5d8ceacf691ae602195ad8f1dd17e890dbf585596713e9018506bb335c9e87e0251deef67e643a4e30af53ba236c446d5bbd16ea8af975
+DIST firefox-101.0.1-pa-IN.xpi 592181 BLAKE2B e6cf51abe4f20ac2e3d5c8686b8380f21a2a8550e923413a85dc0c9472d531aba62961e9658656d110d7a25e3932c750f6b253853e8cf1ea4ab0899f94ffbddf SHA512 aff33d63496f28f8435ce410ebca18dfecfafa7a321d83fa83a51a80b03b0535dec1878c3345e88f31791f3c68817e883d06d646a8242972e77fa6342826ef42
+DIST firefox-101.0.1-pl.xpi 549640 BLAKE2B 6412e4e8a7eeecabb12cef3f1e5ac42f99c27396fdb7057ab1bb7a927e948cbfdde8673223a9cc511275105785a9fba17c55ba92612e98a899614b9daca573a6 SHA512 239bb04a41d8b386b9ca4ab89d3067b45268c2d8001022e70a375532ba0b6d1366bc1182516e96936d9b2b674a5daabea35d19c9915e3323860cfa73c82f12e1
+DIST firefox-101.0.1-pt-BR.xpi 535137 BLAKE2B fc7dcc4651a63d8601b7fa03eea648531ff55b09186600643d1981c5613e6fe8466f33fc89b1b26c9ac310763ce251989a0d0ced1f803e8b4dde50dbedc6c1c5 SHA512 8f53cce58496f5e1ddbcfeb738499e99b1eb83df039cd164f95da84a1057b5f651f09817a6a0c77cbc5dc622512c5916ab0c5593cc2f34eea1b6a15415589b12
+DIST firefox-101.0.1-pt-PT.xpi 538698 BLAKE2B 1f9f3ff0039af0f0aef4b194c1e1c7ad41c7ca5d3891c1946f9d61724f589a90bbbc820671f0fc6f8e73d940a840885079af1693aa78378a16f9ce3deef36a43 SHA512 3404d89c8662fccb42e611797e85fdc1bf1f63cdacd8974312f028548f1ce7e54f9ce724dd9ae7b7f35aff95d3153e224cffe485aae4d870f8f6f97fc101470b
+DIST firefox-101.0.1-rm.xpi 528615 BLAKE2B 12b9ad7af2456f31dc8bce9ff513b0012546958ab80ef4b25a3ace54326ec6c8f891150796a5bc6d72d8c7a947986ba3bed40744452415e65517b3e347b08c97 SHA512 4f23976fa91004e8cf7828867535abab6951a5960ea14db21a6292eb36d2def36108fbafa21726e997715ccf96de7d2a7f59e7a6355c19d8a912bde088400d73
+DIST firefox-101.0.1-ro.xpi 516080 BLAKE2B 41910412b3fab6999ab21b324d6c7007f2048037ec7df9a089051a10d47bdd061d25f3a5648b9318bfdc9193fac9cf76617705918a012c6e7465df2ea02a2c34 SHA512 01eb61f6175d38dc76084907a0f80956d113eee82ba6d76116d75f850e7549ac9babf13eb8b440d6e0691b2f091f33dd8b30bb16482ebe09472f8e755034456a
+DIST firefox-101.0.1-ru.xpi 617791 BLAKE2B 231990cb8cec6c2a1daa0bbc4eeba911d3abb1c0b6c9822262e9c3addbc69a3b5bd57e790b24a681db336fea15706e1a7d146a27070780d37d4db16aba22443b SHA512 13caa350473a4ff088fe1f118027e0cf78196f5bf6219bca4a43724dd615e8235c13c14e217072d47ce8742b2bae46c8e3d9a9f9adad80d8a4f7228958703ba1
+DIST firefox-101.0.1-sco.xpi 490268 BLAKE2B e36790438270d65911d76c0550938f6f0919a463cfe780bfabe2ece514694a12f8858180b374a585fd9d45e5307ef97c9b18359612d3abd47d425088bba431ee SHA512 18b3c39a743736dee3abf760a45cea35cde55d45b6d29e425f4baa556836fbddcc6536b6c59387cda70e83b71df10ddc5464d328d57b72ef0ced49bd0d7309d1
+DIST firefox-101.0.1-si.xpi 476134 BLAKE2B d6cc9a0ca46506d6985c643efc9c51e74756dbc43e409911408bc1e1b3412c4a3325eaefd051e779fc8fdb5e112e2565cc48da551f2aaa42e4da087e3c97eba9 SHA512 af14c4098191528739ca45d4df9f9118106f220dcb7daf1075ce4ef7cb0530d40acbc2569ada9e48af19eafb6d59ae09d0fe57be7b4e71ec014e1547a250cf37
+DIST firefox-101.0.1-sk.xpi 558363 BLAKE2B 3aabf9ce0c159893e49ab11a347086a9cde3b4fe4846ea0cafc6cd08e50c3e8ac78196d14f60d9f06ac3e04bdc9c0e4516c0d9da5a1aedb28bdb84c438337549 SHA512 b7d7a3f4dcaacbf0038a9c8af1a7ce0255648c6a2302795929eb20478391672d7f5da9453b7c1b1dc27910dcf3ed433b3dac6ac8373a82cf36a377390bc5a3d1
+DIST firefox-101.0.1-sl.xpi 531097 BLAKE2B 3d38b8972425ac4fea5675e2d20b9a17807ac0ccc22a10eab4c7dfb27c6014851578245d140a2c1b7fc5bf2056c5b1cc9db55d5e2cae4d9035b1de51e65b7720 SHA512 10747900cd3edd9615aeaeb4b0a54a5158226285d02d0854d01b94d176bb476cd054df511c8b244b553a6b284167006493e39191f8db5d972cb12ef3d9129746
+DIST firefox-101.0.1-son.xpi 415536 BLAKE2B 461458e8f5329749a3f9c59ceef01e51ebdecde36d96152401c838d65f51269b242a6f03fd2b9c64c8bb63969cc7cea3dc7b5222b302c4132228eb264dd44c07 SHA512 5a9871bd70d2ea9d7b74a5a78b126c503433ec72fafadca990769015a7f91bf71d276b5108a3c695d13e54725280553b35fb825a208bd539b862428d680be734
+DIST firefox-101.0.1-sq.xpi 546736 BLAKE2B 57e58547241a476d5e1dcd3542b17cbb327ea83acb49371cdadbdad2c6c90e5f9e1b90610d183732d9782ac009390614fc2db7e2f48eea9b3240a57eaaed8563 SHA512 8c5267719dc7f54f9b2b32d332fb28f3419a5ab95cdd6e2c3aba6468acc4361ecc2cf9cd6fdb313cf8dfaefffaa9f0e5048707f10d34ccc48a04026b5f9ddc4d
+DIST firefox-101.0.1-sr.xpi 571511 BLAKE2B f43ae626d47c1ef8212cb92798a85dc6381aa236d00d68db101ba8a4ffe0f2924df8644649c1dfc216b7ecf057d470cc4aad08b824ff8f346ee2e1d00b4144bf SHA512 30252094fc660cdf8eafa654a91e83b565d56e26f2443cfa6fcd14759035082fa6cd872dedc899da207cf22c558b46c691afdebae032f7bacf2bc05c18724bd6
+DIST firefox-101.0.1-sv-SE.xpi 532152 BLAKE2B f2c8b3f310451f911d5b14189063b2555cfcf1f63bdfd299312039c3b02dc9a1b08842b77ace240ccc554c9b9aa51a338f4b00ad03651f27768b8b768310710e SHA512 c910d513eee696814580efcb713154d1ec8a998c4adc42697690425375081776ce4f6f3fe7ac36967013fdc53fea6c47190ca00d1e09d40fedd1884813616819
+DIST firefox-101.0.1-szl.xpi 502512 BLAKE2B dfc9465f4cfde7989ca028930250107a11f35a2915690d61a60388ea5238d5df16c5139e46792abff7d48a0e0e2027708bb18b241a0f5c310828fcb2db817be0 SHA512 afe15fe373c325264355fe8d3af21681fc947fa38ca32507337a7e073800fd0c7f7b6c25e4937eccec630b263553c7ce7c3e2d7f1af9f7a58db9525dc73f7c19
+DIST firefox-101.0.1-ta.xpi 500997 BLAKE2B 64a1d6397c84f16cb6fac2f160a2611749a46d939734f94a7c2a4f7f0793045ee64d350d8a7549abe33826f5c7b61327876f4848ac928da654442de18635a1b1 SHA512 635afda2bfee3e94e45db1ff1edc3176f588aa605a94b6a0a088ed7473c9a29fb8d23255ff26fd33981a062ccdbaf9f141a644159fec9963e554d33a39705e86
+DIST firefox-101.0.1-te.xpi 541010 BLAKE2B de214ded24bf0b5e1849402700c0cf9878aaf24e1387fac465bf3636e12ec4c99f1aa4be74153e43593b5aed6ae154477d524fef67fa57ab733082de86649069 SHA512 ca4f397d879e93fe72af8c36965571c68ba006b287f73abf1dc1164ce10facec7c9e83efe7e5d7c7bb318d580c03a08eb77b1f83d2e7178bca84ec4975a3d471
+DIST firefox-101.0.1-th.xpi 598575 BLAKE2B 68b752300955d0c8093d56fcdd4f4949e9191a9f0c920e9e2dd28c17b0f0847217f06cb7040fd832fb949128356d6880472742d0de96367bafada75c52ddd422 SHA512 9e1842aa7c5516c91573406bcfc545addb7f0df4b2173830a080bd4b7c488c2b05547998dedffb9139f4f78f35ba2191ab60e127027ad0b5c6fc781cb1ffd7b7
+DIST firefox-101.0.1-tl.xpi 505949 BLAKE2B 37ee6236b7af8789e25a9bfbab7cb1e7f2ee0dd2b93721ac955b7b6331079dcbeeb6ab9e0c54246063ffbe811de9a1c89c0522bd5798bb3cbffc4de508504a11 SHA512 3e7c066ccbfd9a3f954d09340301f06ef261a15a8ee45ed745e8773803cb84006070a7369678f1571946f33f34e8ba31ab5e577529c34389a92331c6ebb45ec0
+DIST firefox-101.0.1-tr.xpi 545474 BLAKE2B 4e62fabe85c79c9bfdff80124b3ebdfb0d8b6b6345e0794500a9a82699e862457f509f0c227de12d1cf07bfd7fa11ed1da6ee49ca0561f2ca6d524b6a46f3a1c SHA512 de60a361835e93ca97b2c00d65dad694546c552b1dbe419f768efec6d3a0192333d013083493764a8bddb5dce07c2289205c3bad01146144f952165b80f687c2
+DIST firefox-101.0.1-trs.xpi 480518 BLAKE2B 8cfc3baa60a8cbc380c7515c5032446275334f74f3af8855de0921f771f046701ea59504568a131bbfe021ef3e9464852d907496fc4677f90ec726b866dc1749 SHA512 0e801fe1b3e2f9b9ba53b29f5058836c7ea36d3a5e435cf82bf70b1185b02a44df0910cd6674d46d199e52289c7a8f89daee14320e78a1583c0124396c9fd960
+DIST firefox-101.0.1-uk.xpi 611843 BLAKE2B d1d73fa3a81df4a1a41d3193d3e4135a84c0f9629f3f45e5d34a99eac02f7158d08c000736d375d2b533266da73b0ffbd03269e82525f362c06a67cbb01c954c SHA512 4749000b5e7d72a1cc345a5e77e5c191d4aeb9283e999d552081d20b936ab7776d4409cc773275ad74980a888abf55f91ab09c2e823090ce66f99415cef61240
+DIST firefox-101.0.1-ur.xpi 548441 BLAKE2B ff9719307070fc2863e7aa5bfdb5fc5afdda2fb9c105c6b0a628401bd0663f6b896a9d106408a08d9586224d70035e39890265f6b86e11723ec46502561de572 SHA512 239b8f7b59e668099d97e46b0f34bc94a06a70ffdc8e87208d17399b0c4912cf63611f38531a6b308d88541ea4060e162225c801ffe60f43c396254ea6fafe47
+DIST firefox-101.0.1-uz.xpi 468688 BLAKE2B bfea0d2bd1f2ac97e9dd9a08c155e9d1ac22f3e4868ffe338a8d686c0c4ae0de6cc3fcc4c685ffaf2aaa88d8eb5be4f0d8eff7fda88f8ac5294c25dcd27a2b40 SHA512 74789f5e8ab27699b133d0f4219b0f017aab8a1e994453f7d622e72f9b0d4fe375439facee42f5e29a8ca87432413a722066e68eb4a0c1a07f7b6c41726ac9b9
+DIST firefox-101.0.1-vi.xpi 564697 BLAKE2B cc8c76f88829ea6bf62a8171e5b2e99a4f8f72df3aaacf1fc117939d33e525acabc795ca79eedae618b62132f1561d41e9fb74c8f7f3761997ce23c0b4b65350 SHA512 42991841f38a0b252f09ae44592830d0a2364feea7c401856f045bed050a874d76482d2f6668f9de78850899ae4fc82c923cd916cf6efeda4b41c6baa68fee4d
+DIST firefox-101.0.1-xh.xpi 418659 BLAKE2B 520914da5263161b9f9480e455b584cc48f42efd0b9344ddc4d7c6a4759580ebea78127a044bb2a9177bba0e07f436599fbea2fcebbc4c19d0252583a19df8d5 SHA512 2cdd0dca9047385441a8208a84609b17728061e4b698ec2066d1cd2f54662409ee461bb444b3d8bde63034867cfbef448e04f85f45204bad022df58e89b8f74f
+DIST firefox-101.0.1-zh-CN.xpi 567077 BLAKE2B d15b9f6881ac0198c90024fb8dbc3b1370b0e3858857732e49d72991aea2ff7b943c5c40fd2488230e857d0b9d41d25746691ce5ac86b90127a543e3a697b1c7 SHA512 848462ae18da62d79aa6163dcb0e53adb4ac0fe031a80dd1f3a0b943102060548682f8921b02431df552fd817bbd246bac5663e091762eb1ec040308f34fe639
+DIST firefox-101.0.1-zh-TW.xpi 567655 BLAKE2B f6a05838f02d95ad9ce8d2bde6b3f1b0c106fc11dbbd17000dcd4bf4c799a1f822f538bdc5667ac1bc87de34ce576dbd2e462d7dc6170a04f19f6fa3ee214116 SHA512 22fa87260421895813f5b3269e8a320d24b4477bad5c6108d0b68f80afeaaea2d90d367c436a49d643523a00bffbdf4c570c7d5544d3e6f1977a1c5b0473b3b5
+DIST firefox-101.0.1.source.tar.xz 486021240 BLAKE2B 8dce0083dc1fa7d9f04b1a87a02e6e171e19b18ddeab210a12940a4e582e8420aebaafb2fbbfcbfcadc36c2004a61b4a3a24b630838b3a7f146945ea735ec045 SHA512 435a7f6013582933e75c41e554a45beda30b5affd7d3ed7d2876026609ba7f17b2c20b507d9d0c9ce2379e335ec09b021257ba30ac55fabf02dca54b03ea70b4
diff --git a/www-client/firefox/files/disable-auto-update.policy.json b/www-client/firefox/files/disable-auto-update.policy.json
new file mode 100644
index 0000000..f366220
--- /dev/null
+++ b/www-client/firefox/files/disable-auto-update.policy.json
@@ -0,0 +1,5 @@
+{
+ "policies": {
+ "DisableAppUpdate": true
+ }
+}
diff --git a/www-client/firefox/files/distribution.ini b/www-client/firefox/files/distribution.ini
new file mode 100644
index 0000000..680512e
--- /dev/null
+++ b/www-client/firefox/files/distribution.ini
@@ -0,0 +1,42 @@
+[Global]
+id=gentoo
+version=1.0
+about=Mozilla Firefox for Gentoo
+about.de=Mozilla Firefox für Gentoo
+
+[Preferences]
+app.distributor="gentoo"
+app.distributor.channel="gentoo"
+startup.homepage_welcome_url="https://www.gentoo.org/"
+
+[BookmarksToolbar]
+item.1.type=default
+item.2.title=Gentoo's Bugzilla
+item.2.link=https://bugs.gentoo.org/
+item.3.title=Gentoo Forums
+item.3.link=https://forums.gentoo.org/
+item.4.title=Gentoo Packages
+item.4.link=https://packages.gentoo.org/
+item.5.title=Planet Gentoo
+item.5.link=https://planet.gentoo.org/
+item.6.title=Gentoo Wiki
+item.6.link=https://wiki.gentoo.org/
+
+[BookmarksMenu]
+item.1.title=Gentoo
+item.1.type=folder
+item.1.folderId=1
+
+[BookmarksFolder-1]
+item.1.title=Gentoo Linux
+item.1.link=https://www.gentoo.org/
+item.2.title=Gentoo's Bugzilla
+item.2.link=https://bugs.gentoo.org/
+item.3.title=Gentoo Forums
+item.3.link=https://forums.gentoo.org/
+item.4.title=Gentoo Packages
+item.4.link=https://packages.gentoo.org/
+item.5.title=Planet Gentoo
+item.5.link=https://planet.gentoo.org/
+item.6.title=Gentoo Wiki
+item.6.link=https://wiki.gentoo.org/
diff --git a/www-client/firefox/files/firefox-r1.sh b/www-client/firefox/files/firefox-r1.sh
new file mode 100644
index 0000000..853a4ef
--- /dev/null
+++ b/www-client/firefox/files/firefox-r1.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+##
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run Mozilla Firefox in Gentoo.
+
+cmdname=$(basename "$0")
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case ${MOZ_ARCH} in
+ x86_64|s390x|sparc64)
+ MOZ_LIB_DIR="@PREFIX@/lib64"
+ SECONDARY_LIB_DIR="@PREFIX@/lib"
+ ;;
+ *)
+ MOZ_LIB_DIR="@PREFIX@/lib"
+ SECONDARY_LIB_DIR="@PREFIX@/lib64"
+ ;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [[ ! -r ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ if [[ ! -r ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ echo "Error: ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ if [[ -d ${SECONDARY_LIB_DIR} ]]; then
+ echo " ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ fi
+ exit 1
+ fi
+ MOZ_LIB_DIR="${SECONDARY_LIB_DIR}"
+fi
+MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/firefox"
+MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}"
+
+##
+## Enable Wayland backend?
+##
+if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
+ if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_ENABLE_WAYLAND=1
+ fi
+fi
+
+##
+## Use D-Bus remote exclusively when there's Wayland display.
+##
+if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_DBUS_REMOTE=1
+fi
+
+##
+## Make sure that we set the plugin path
+##
+MOZ_PLUGIN_DIR="plugins"
+
+if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+else
+ MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
+
+##
+## Disable the GNOME crash dialog, Mozilla has its own
+##
+if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then
+ GNOME_DISABLE_CRASH_DIALOG=1
+ export GNOME_DISABLE_CRASH_DIALOG
+fi
+
+##
+## Enable Xinput2 (#617344)
+##
+
+# respect user settings
+MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
+
+if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
+ # enabling XINPUT2 should be safe for all wayland users
+ MOZ_USE_XINPUT2=1
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
+ # XINPUT2 is known to cause problems for KWin users
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
+ # LXQt uses KWin
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
+ # should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
+ MOZ_USE_XINPUT2=1
+fi
+
+[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
+
+# Don't throw "old profile" dialog box.
+export MOZ_ALLOW_DOWNGRADE=1
+
+# Run the browser
+exec ${MOZ_PROGRAM} "${@}"
diff --git a/www-client/firefox/files/gentoo-default-prefs.js b/www-client/firefox/files/gentoo-default-prefs.js
new file mode 100644
index 0000000..0407f5d
--- /dev/null
+++ b/www-client/firefox/files/gentoo-default-prefs.js
@@ -0,0 +1,12 @@
+pref("general.smoothScroll", true);
+pref("general.autoScroll", false);
+pref("browser.urlbar.hideGoButton", true);
+pref("accessibility.typeaheadfind", true);
+pref("browser.shell.checkDefaultBrowser", false);
+pref("browser.EULA.override", true);
+pref("general.useragent.locale", "chrome://global/locale/intl.properties");
+pref("intl.locale.requested", "");
+/* Disable DoH by default */
+pref("network.trr.mode", 5);
+/* Disable use of Mozilla Normandy service by default */
+pref("app.normandy.enabled", false);
diff --git a/www-client/firefox/files/gentoo-hwaccel-prefs.js-r2 b/www-client/firefox/files/gentoo-hwaccel-prefs.js-r2
new file mode 100644
index 0000000..48025ca
--- /dev/null
+++ b/www-client/firefox/files/gentoo-hwaccel-prefs.js-r2
@@ -0,0 +1,5 @@
+/* Force hardware accelerated rendering due to USE=hwaccel */
+pref("gfx.webrender.all", true);
+pref("layers.acceleration.force-enabled", true);
+pref("media.hardware-video-decoding.enabled", true);
+pref("webgl.force-enabled", true);
diff --git a/www-client/firefox/files/icon/firefox-r3.desktop b/www-client/firefox/files/icon/firefox-r3.desktop
new file mode 100644
index 0000000..8219e93
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-r3.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Version=1.0
+Name=@NAME@
+GenericName=Web Browser
+Comment=Browse the Web
+Exec=@EXEC@ %u
+Icon=@ICON@
+Terminal=false
+Type=Application
+MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/http;x-scheme-handler/https;
+StartupNotify=true
+Categories=Network;WebBrowser;
+Keywords=web;browser;internet;
+Actions=new-window;new-private-window;profile-manager-window;
+
+[Desktop Action new-window]
+Name=Open a New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=نافذة جديدة
+Name[as]=নতুন উইন্ডো
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Новае акно
+Name[bg]=Нов прозорец
+Name[bn_BD]=নতুন উইন্ডো (N)
+Name[bn_IN]=নতুন উইন্ডো
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइन्ड'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Νέο παράθυρο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید‌
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિન્ડો
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Նոր Պատուհան
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=新しいウィンドウ
+Name[ja_JP-mac]=新規ウインドウ
+Name[ka]=ახალი ფანჯარა
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួច​​​ថ្មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ وِنڈو
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Нов прозорец
+Name[ml]=പുതിയ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=ဝင်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाँ सञ्झ्याल
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Нови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=புதிய சாளரம்
+Name[te]=కొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Нове вікно
+Name[ur]=نیا دریچہ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=@EXEC@ --new-window %u
+
+[Desktop Action new-private-window]
+Name=Open a New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=نافذة خاصة جديدة
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Новае акно адасаблення
+Name[bg]=Нов прозорец за поверително сърфиране
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान प्राइभेट उइन्ड'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિન્ડો
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=新しいプライベートウィンドウ
+Name[ja_JP-mac]=新規プライベートウインドウ
+Name[ka]=ახალი პირადი ფანჯარა
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួច​ឯកជន​ថ្មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사생활 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو&amp;
+Name[lij]=Neuvo barcon privou
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privātais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Нов приватен прозорец
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
+Name[mr]=नवीन वैयक्तिक पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Новое приватное окно
+Name[sat]=नावा निजेराक् विंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Нови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
+Name[te]=కొత్త ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچہ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建隐私浏览窗口
+Name[zh_TW]=新增隱私視窗
+Exec=@EXEC@ --private-window %u
+
+[Desktop Action profile-manager-window]
+Name=Open the Profile Manager
+Name[de]=Profilverwaltung öffnen
+Name[cs]=Správa profilů
+Exec=@EXEC@ --ProfileManager
diff --git a/www-client/firefox/files/icon/firefox-symbolic.svg b/www-client/firefox/files/icon/firefox-symbolic.svg
new file mode 100644
index 0000000..2078eea
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-symbolic.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ version="1.1"
+ id="svg3758"
+ sodipodi:docname="firefox-symbolic-quantum.svg"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06">
+ <metadata
+ id="metadata3764">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Gnome Symbolic Icon Theme</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3762" />
+ <sodipodi:namedview
+ pagecolor="#555753"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1591"
+ inkscape:window-height="909"
+ id="namedview3760"
+ showgrid="false"
+ showborder="false"
+ inkscape:snap-global="false"
+ inkscape:zoom="1"
+ inkscape:cx="3.8851213"
+ inkscape:cy="12.517918"
+ inkscape:window-x="143"
+ inkscape:window-y="60"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3758">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3768" />
+ </sodipodi:namedview>
+ <title
+ id="title3754">Gnome Symbolic Icon Theme</title>
+ <path
+ d="m 15.054715,6.9884649 v 0 c -0.02034,-0.133652 -0.04071,-0.2122775 -0.04071,-0.2122775 0,0 -0.05225,0.060583 -0.138743,0.1748124 A 4.9808937,4.9808937 0 0 0 14.703694,6.0103229 6.4034781,6.4034781 0 0 0 14.270352,4.895288 4.6469845,4.6469845 0 0 0 13.87447,4.2163686 Q 13.793063,4.0947376 13.708437,3.9805045 C 13.444828,3.5499376 13.142365,3.2867867 12.792269,2.7891599 A 3.6101075,3.6101075 0 0 1 12.333953,1.5474054 5.0151173,5.0151173 0 0 0 12.113814,2.3599798 C 11.754468,1.997397 11.441832,1.7397963 11.253142,1.5640539 10.322171,0.69459485 10.430396,0.24367816 10.430396,0.24367816 v 0 c 0,0 -1.7389294,1.94102274 -0.9855522,3.96297904 a 3.8848199,3.8848199 0 0 0 1.2949452,1.726432 c 0.728868,0.6012222 1.513693,1.0743371 1.927612,2.2832561 A 3.8741829,3.8741829 0 0 0 11.21337,6.6823034 3.5023502,3.5023502 0 0 1 11.490854,8.0697401 3.2946971,3.2946971 0 0 1 7.4621982,11.27934 3.0343219,3.0343219 0 0 1 6.6459244,11.001852 3.3219834,3.3219834 0 0 1 5.667782,10.09771 l -0.00463,-0.0078 0.058274,0.02125 a 3.0061106,3.0061106 0 0 0 0.4162344,0.111409 2.6028293,2.6028293 0 0 0 1.6570605,-0.195631 C 8.3154732,9.7379218 8.6308831,9.5237932 8.8866339,9.6084266 h 0.0046 c 0.24974,0.079514 0.446755,-0.1628244 0.2682391,-0.4162632 A 1.3596868,1.3596868 0 0 0 7.8423564,8.6778985 C 7.3211426,8.7537416 6.8434027,9.1241907 6.1603222,8.7653097 a 1.4470953,1.4470953 0 0 1 -0.128107,-0.075371 c -0.04625,-0.026369 0.146605,0.040234 0.1017455,0.010233 A 3.3899676,3.3899676 0 0 1 5.7047808,8.4439577 c -0.010172,-0.00822 0.103133,0.032367 0.092497,0.024039 A 1.6561356,1.6561356 0 0 1 5.3495968,8.015168 0.80517516,0.80517516 0 0 1 5.3190728,7.2964766 0.63405807,0.63405807 0 0 1 5.5965603,7.0356384 c 0.088333,0.043485 0.1429059,0.076305 0.1429059,0.076305 0,0 -0.040235,-0.073997 -0.061972,-0.1128365 0.00786,-0.0027 0.014794,0 0.022662,-0.00513 0.077233,0.033293 0.248351,0.1202544 0.3385341,0.1734358 A 0.46987818,0.46987818 0 0 1 6.19362,7.3061637 c 0,0 0.030994,-0.015351 0.0079,-0.079998 A 0.41623066,0.41623066 0 0 0 6.0414753,7.0300927 h 0.0074 a 1.3596868,1.3596868 0 0 1 0.1970213,0.1225561 0.96149289,0.96149289 0 0 0 0.078625,-0.416232 0.54479973,0.54479973 0 0 0 -0.031914,-0.2312396 c -0.024511,-0.046254 0.013876,-0.064746 0.056885,-0.016135 A 0.45137905,0.45137905 0 0 0 6.3129456,6.378979 v -0.00372 0 c 0,0 0.024511,-0.031916 0.035615,-0.043486 A 0.66134433,0.66134433 0 0 1 6.4484481,6.2503678 4.6122987,4.6122987 0 0 1 7.1259793,5.9048971 C 7.3174429,5.8211545 7.4760733,5.7573477 7.5084475,5.7388339 a 1.0637007,1.0637007 0 0 0 0.1355052,-0.1040612 0.91015778,0.91015778 0 0 0 0.3052354,-0.5272274 0.73996569,0.73996569 0 0 0 0.0079,-0.082324 v -0.023118 -0.013967 0 -0.00552 0 -0.00611 0 C 7.9293085,4.872475 7.749868,4.7943251 6.8119611,4.7064478 A 0.81997449,0.81997449 0 0 1 6.1413599,4.0776254 v 0.0042 c -0.013416,0.034225 -0.025431,0.068909 -0.037456,0.1040572 0.012025,-0.034685 0.024051,-0.069373 0.037456,-0.1040572 v -0.00742 A 2.3762148,2.3762148 0 0 1 7.0598423,2.9339361 c 0.024051,-0.019416 -0.096192,0.00512 -0.072152,-0.014798 A 2.3845397,2.3845397 0 0 1 7.2328039,2.8155414 C 7.2748921,2.7979724 7.0524371,2.7128704 6.8558842,2.7336774 a 1.0174527,1.0174527 0 0 0 -0.3496338,0.082324 c 0.046253,-0.039773 0.1849968,-0.092498 0.1521605,-0.092498 a 2.2499581,2.2499581 0 0 0 -0.713142,0.2696255 0.14521828,0.14521828 0 0 1 0.01387,-0.064747 1.1099484,1.1099484 0 0 0 -0.4458297,0.3440843 0.58966016,0.58966016 0 0 0 0.00462,-0.080469 1.3300881,1.3300881 0 0 0 -0.2187525,0.2053404 l -0.00417,0.00321 A 2.9066776,2.9066776 0 0 0 3.6684873,3.2618132 l -0.00463,-0.0042 h 0.00554 A 1.3610743,1.3610743 0 0 1 3.3803631,2.9339159 l -0.0074,0.0018 -0.00877,-0.010174 C 3.3285694,2.8728322 3.2920343,2.813172 3.2545731,2.7465739 3.2277502,2.7003291 3.2004619,2.646216 3.1731756,2.5902563 c 0,-0.00372 -0.00416,-0.00513 -0.006,-0.00552 -0.0111,0 -0.01896,0.05133 -0.028212,0.037927 v -0.0028 A 1.9923577,1.9923577 0 0 1 3.0080744,1.8396896 l -0.0074,0.00372 A 0.87130958,0.87130958 0 0 0 2.6704677,2.2753541 c -0.028212,0.063362 -0.046248,0.098047 -0.064746,0.1327329 0,0.0028 0,-0.00461 0,-0.016194 0.00416,-0.031916 0.018037,-0.097585 0.014799,-0.092497 -0.00323,0.00513 -0.00553,0.00882 -0.00877,0.013415 A 0.80147532,0.80147532 0 0 0 2.4956586,2.4848515 1.0891367,1.0891367 0 0 0 2.4262868,2.661518 c -0.00276,0.00973 0,-0.00832 0,-0.029599 0,-0.02127 0.00416,-0.059199 0,-0.051331 L 2.4161148,2.600475 A 4.3935464,4.3935464 0 0 0 2.0461275,4.0040946 1.3976101,1.3976101 0 0 0 2.031791,4.252909 v 0.00742 A 3.0653076,3.0653076 0 0 0 1.6539417,4.7690529 7.2174403,7.2174403 0 0 0 0.85524217,6.725337 4.7871157,4.7871157 0 0 1 1.2830334,5.9756593 6.9371784,6.9371784 0 0 0 0.79974461,8.5192901 6.582457,6.582457 0 0 1 1.0078598,7.7659142 6.3854411,6.3854411 0 0 0 1.585032,10.755373 6.9542899,6.9542899 0 0 0 4.3372422,13.87618 v 0 a 6.0196208,6.0196208 0 0 0 1.6038754,0.768639 c 0.07492,0.02728 0.1507676,0.0541 0.2284646,0.08 -0.024511,-0.0096 -0.04625,-0.02034 -0.070761,-0.03098 A 7.2609132,7.2609132 0 0 0 8.179966,15 c 2.494615,0 3.318287,-0.949928 3.394136,-1.044738 v 0 A 1.2625664,1.2625664 0 0 0 11.8687,13.559386 v 0 q 0.07216,-0.02958 0.145679,-0.06335 l 0.03097,-0.01397 0.05597,-0.02635 a 5.2315572,5.2315572 0 0 0 1.053064,-0.659489 2.5436321,2.5436321 0 0 0 0.98184,-1.433687 v 0 a 0.89628343,0.89628343 0 0 0 0.01343,-0.660421 q 0.03838,-0.0606 0.0791,-0.129501 A 5.8762526,5.8762526 0 0 0 15.1107,7.7140393 v -0.0027 c 0,-0.027291 0,-0.054583 0,-0.081863 A 3.5754215,3.5754215 0 0 0 15.05473,6.9884887 Z"
+ id="path3756"
+ inkscape:connector-curvature="0"
+ style="fill:#bebebe;fill-opacity:1;stroke-width:0.46247858" />
+</svg>
diff --git a/www-client/firefox/firefox-101.0.1-r11.ebuild b/www-client/firefox/firefox-101.0.1-r11.ebuild
new file mode 100644
index 0000000..04e2696
--- /dev/null
+++ b/www-client/firefox/firefox-101.0.1-r11.ebuild
@@ -0,0 +1,1297 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-101-patches-08j.tar.xz"
+
+LLVM_MAX_SLOT=14
+
+PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+VIRTUALWL_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
+ virtualwl virtualx xdg
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~{juippis,polynomial-c,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast +X"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ pgo? ( lto )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.0
+ >=net-libs/nodejs-10.23.1
+ virtual/pkgconfig
+ >=virtual/rust-1.59.0
+ || (
+ (
+ sys-devel/clang:14
+ sys-devel/llvm:14
+ clang? (
+ =sys-devel/lld-14*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:13
+ sys-devel/llvm:13
+ clang? (
+ =sys-devel/lld-13*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? ( ${VIRTUALX_DEPEND} )
+ !X? ( wayland? ( ${VIRTUALWL_DEPEND} ) )
+ )
+"
+
+COMMON_DEPEND="
+ dev-libs/glib:2
+ dev-libs/atk
+ dev-libs/expat
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.78
+ >=dev-libs/nspr-4.32
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ dev-libs/dbus-glib
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ screencast? ( media-video/pipewire:= )
+ system-av1? (
+ >=media-libs/dav1d-0.9.3:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-71.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon[X]
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/libxcb:=
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ !www-client/firefox:0
+ !www-client/firefox:esr
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${COMMON_DEPEND}
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+ && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+ # bug 792705
+ eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)."
+ die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}."
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Allow access to GPU during PGO run
+ local ati_cards mesa_cards nvidia_cards render_cards
+ shopt -s nullglob
+
+ ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+ if [[ -n "${ati_cards}" ]] ; then
+ addpredict "${ati_cards}"
+ fi
+
+ mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+ if [[ -n "${mesa_cards}" ]] ; then
+ addpredict "${mesa_cards}"
+ fi
+
+ nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+ if [[ -n "${nvidia_cards}" ]] ; then
+ addpredict "${nvidia_cards}"
+ fi
+
+ render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
+ if [[ -n "${render_cards}" ]] ; then
+ addpredict "${render_cards}"
+ fi
+
+ shopt -u nullglob
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums target-lexicon-0.9.0
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ AS=llvm-as
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ if use ppc64; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ else
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ if use system-python-libs; then
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+ else
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ fi
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if use pgo ; then
+ if use X; then
+ local -x GDK_BACKEND=x11
+ virtx_cmd=virtx
+ elif use wayland; then
+ local -x GDK_BACKEND=wayland
+ virtx_cmd=virtwl
+ fi
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+
+ # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # does not need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ einfo "APULSE found; Generating library symlinks for sound support ..."
+ local lib
+ pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
+ for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
+ # A quickpkg rolled by hand will grab symlinks as part of the package,
+ # so we need to avoid creating them if they already exist.
+ if [[ ! -L ${lib##*/} ]] ; then
+ ln -s "${lib}" ${lib##*/} || die
+ fi
+ done
+ popd &>/dev/null || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use gmp-autoupdate ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ elog "\t ${plugin}"
+ done
+ elog
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
+ elog "Apulse was detected at merge time on this system and so it will always be"
+ elog "used for sound. If you wish to use pulseaudio instead please unmerge"
+ elog "media-sound/apulse."
+ elog
+ fi
+
+ local show_doh_information
+ local show_normandy_information
+ local show_shortcut_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ show_shortcut_information=no
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 91.0 ; then
+ # Tell user that we no longer install a shortcut
+ # per supported display protocol
+ show_shortcut_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+
+ if [[ -n "${show_shortcut_information}" ]] ; then
+ elog
+ elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
+ elog "each supported display protocol. Instead we will only install"
+ elog "one generic Mozilla ${PN^} shortcut."
+ elog "If you still want to be able to select between running Mozilla ${PN^}"
+ elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
+ fi
+
+ # bug 835078
+ if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
+ ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
+ ewarn "enabled for Firefox. Nouveau / your GPU might not supported the "
+ ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
+ ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
+ fi
+
+ elog
+ elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
+ elog "useragent checks. To temporarily fix this, enter about:config and modify "
+ elog "network.http.useragent.forceVersion preference to \"99\"."
+ elog "Or install an addon to change your useragent."
+ elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
+ elog
+}
diff --git a/www-client/firefox/metadata.xml b/www-client/firefox/metadata.xml
new file mode 100644
index 0000000..6670b0e
--- /dev/null
+++ b/www-client/firefox/metadata.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>mozilla@gentoo.org</email>
+ <name>Gentoo Mozilla Team</name>
+</maintainer>
+<use>
+ <flag name="clang">Use Clang compiler instead of GCC</flag>
+ <flag name="eme-free">Disable EME (DRM plugin) capability at build time</flag>
+ <flag name="geckodriver">Enable WebDriver support</flag>
+ <flag name="gmp-autoupdate">Allow Gecko Media Plugins (binary blobs) to be automatically
+ downloaded and kept up-to-date in user profiles</flag>
+ <flag name="hwaccel">Force-enable hardware-accelerated rendering (Mozilla bug 594876)</flag>
+ <flag name="libproxy">Enable libproxy support</flag>
+ <flag name="lto">Enable Link Time Optimization (LTO) - Uses BFD linker with GCC and LLD
+ linker with Clang</flag>
+ <flag name="openh264">Use <pkg>media-libs/openh264</pkg> for H264 support
+ instead of downloading binary blob from Mozilla at runtime</flag>
+ <flag name="pgo">Add support for profile-guided optimization for faster binaries - this
+ option will double the compile time</flag>
+ <flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
+ <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
+ <flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg>
+ and <pkg>media-libs/libaom</pkg> library instead of bundled</flag>
+ <flag name="system-harfbuzz">Use the system-wide <pkg>media-libs/harfbuzz</pkg>
+ and <pkg>media-gfx/graphite2</pkg> instead of bundled</flag>
+ <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg>
+ instead of bundled</flag>
+ <flag name="system-jpeg">Use the system-wide <pkg>media-libs/libjpeg-turbo</pkg>
+ instead of bundled</flag>
+ <flag name="system-libevent">Use the system-wide <pkg>dev-libs/libevent</pkg>
+ instead of bundled</flag>
+ <flag name="system-libvpx">Use the system-wide <pkg>media-libs/libvpx</pkg>
+ instead of bundled</flag>
+ <flag name="system-png">Use the system-wide <pkg>media-libs/libpng</pkg>
+ instead of bundled (requires APNG patches)</flag>
+ <flag name="system-python-libs">Use system's python site instead of bundled python libraries</flag>
+ <flag name="system-webp">Use the system-wide <pkg>media-libs/libwebp</pkg>
+ instead of bundled</flag>
+</use>
+</pkgmetadata>