diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2022-01-20 18:18:16 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2022-01-20 18:18:16 +0100 |
commit | c5a985e5825d9feb94aabfc35ac56e939a8946c9 (patch) | |
tree | ecf55c4d001314cd1535842311ac7eceaf1bb134 | |
parent | www-client/firefox: bump to 96.0.1 (diff) | |
download | mozilla-c5a985e5825d9feb94aabfc35ac56e939a8946c9.tar.gz mozilla-c5a985e5825d9feb94aabfc35ac56e939a8946c9.tar.bz2 mozilla-c5a985e5825d9feb94aabfc35ac56e939a8946c9.zip |
www-client/firefox: bump to v96.0.2
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
-rw-r--r-- | www-client/firefox/Manifest | 98 | ||||
-rw-r--r-- | www-client/firefox/firefox-96.0.2.ebuild | 1239 |
2 files changed, 1337 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 4f6109cb..6029427d 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -588,4 +588,102 @@ DIST firefox-96.0.1-xh.xpi 423453 BLAKE2B 2a7dbad9532525fb8480b5b2cd065349b83e1e DIST firefox-96.0.1-zh-CN.xpi 575689 BLAKE2B f6d89a03d706ef9562e573640e47b4f3f7febdeed8b76769cbfbcd63a126bdf212595b7a9dce77bfede370393e63f9796c73cd692e72c1ad6559dcdb72e45cbd SHA512 2f44be124ea4a92b7ce4203bfb107eeb3f269f4e9bbfef446fcb15be7353952981736ed2308cd7f1781272d5ee3c314dceb85f4d79b96b5e3c9d7433ad6bcfb1 DIST firefox-96.0.1-zh-TW.xpi 576799 BLAKE2B 5d42e49e8c8f96bb858bffb4fb7ed9996d990235edd6e700f736ec31e89a06457871d008f362e5241dd193e0972e3b8525150e4aacfa176cf9e22e7eb90f4650 SHA512 8b7ed347c69d35c2135da15b77bcc83fb0f0a929e263c166fce9b69ec379bcf61fa18f85c6f1bb1320842e94fc5f61a7cf26bd4998b6978ffd35c89ab3d9b4e6 DIST firefox-96.0.1.source.tar.xz 410542376 BLAKE2B b9b8229db62f3a4f6b79a26e79da6d003edb50f2b9df9594ab49c14221ea3b4999e6bb2ae92d129e7e13476d6ebcf031e3b18b9cb768e5885759e384f3a9c6ff SHA512 c0d2ccf9ca930def63dcb9dc269e47f60fd4bbbdcbc01463df0c30e11109a543e310fb36f2334d17b90cb9c96b8dcdd97d0e2d6c589a779de5e4f197c052f9a5 +DIST firefox-96.0.2-ach.xpi 452220 BLAKE2B e82f947a963bcc022b943bae0bce2fe7debb11616cb1e7a9d6174ea9b5f0957d0924700e9979f6962b8878df643c6013ae8cc615e384248f254d7d72d87a6464 SHA512 9da5f949b4651d57112c5aba747630f786c852ea4f1526b46fc599e0215bc3f905cf8695a1e01c9f3831bf2cfb058d709cc13caf9326d42c35ab4a74c4f8d2e2 +DIST firefox-96.0.2-af.xpi 421361 BLAKE2B e9fd6ba6dffe11a5066908d1ebe3dc8d76a463fb79277866e3fe41ae2da8c1d990180fb3530f003ef342f4d0beaa2af2e220deebab0d708310f814c71a13bac1 SHA512 66c9264309c8de2440265e29f6e47b97ff36052b43bea046f302053e331035e408041d58b681a0647ba36ec4d6f1c8a19bc024cd7c3e5a7279daa40315f2ea20 +DIST firefox-96.0.2-an.xpi 500478 BLAKE2B bcc90e6fe51ef6da9f2e935560c0f30073113813e6b54f66eda799133b01c0583dec4fe3eba7a46742df2d54199d27da7d59ddd05c5d2fae5fd61a0f3b51b702 SHA512 8b3d05fb0562b451fa14ab777002b7ea05cf08d96ddcfa98c69916823a883f132263523a5bafcde9bfb0d4bd5166e70b0a6e8d5b48c47eef1cb5c35438eb0838 +DIST firefox-96.0.2-ar.xpi 560669 BLAKE2B a2fc056a842ebac12c9bbb591d752a0515d1e34ecfa5b522e2ea15f30aab0bd10b81b1bb373487e8021db12f96362bf82ae979e72e4c4e3d80e7a5d138f674d5 SHA512 f2a9fcdb04fbbd5297649ae516832c624270074e5a444de040ac45486461e95535a7eb0d93598d38b981636c4f5b073f46f62b9196084d1614d44b968daf0af5 +DIST firefox-96.0.2-ast.xpi 497767 BLAKE2B f49b1e87f652a4ee787f2360c69bd66ccc73532df444b1c45a551edf5c6ef2161743a525a7e75178bb4921c57a080986d693da51c3dae2bcf296ee2e1352d00e SHA512 6f84ea79da8f6e91c9870abf6254fef34d1aa8f33ab814f6c8c701dda9558bf28396abe84f086ff6b873dff573135122ae9476f7a978aea9f57d4adabc448cdb +DIST firefox-96.0.2-az.xpi 488173 BLAKE2B 0d2f9f8a54a2fd3aad167700ca9f4ca601de90ddd7400fe12cd5ed896a6a258a9d675ae463f3534c071b72253c295f2b737b07d5ac898c5f0b3e47424ac23fb5 SHA512 4fd3ef86c19caf8967b8d07f4078b3e009848efa3f462666cd8b2a0d18856b76f8d8dc344c8d30569ed93eabfdebf456c9dccfc0c12efa625322f25854f0b0b5 +DIST firefox-96.0.2-be.xpi 621945 BLAKE2B 8e22ea8531b78a92ef96f38bc9eb1e5914650ed75da002c1df99cd261d95528017cc035ae58c76132583c0c98b9a4beefa3a1914ea0c909049b6d9c395df568d SHA512 f7cac6359ab0242e3f39308aa215913ca93436a5d7435c41603de7ef57428699fe7565e1fcef466e921f3976e795064d62c11135f653556f4ac388262d4de49e +DIST firefox-96.0.2-bg.xpi 567714 BLAKE2B fed6c55629dfe0c7c10dff57ff69dcbde364e0fd080ea23a2534beaa058bca7389d9374c6105f57f11b286465ee82fe1ba8f1b36e8d7f89a79eaa901889f5bc0 SHA512 a84b29e3c51d797acb1cfc870e764e054f19547bcf944a55e67ad7d3f79595847d3a1f03de57304fad03e64f982eea124650053b9662f08c2201abd45dbbbbf0 +DIST firefox-96.0.2-bn.xpi 557060 BLAKE2B c2e2ef2836686e9253560164974eb0587ebc2fc440ad9f0a71a05fc01e8f58ffac2f361a62ef9989e0431c6959deaa7e1287fad109e814316deeafc9780aa70c SHA512 ccc1a8362371955b328f417c72689fa8c2c56b842a606d2b1830eaa3a3446dd9267ba74723c4b327cbdb2576642a890d3fe170439a82cc1056d9dc74ca24347b +DIST firefox-96.0.2-br.xpi 527912 BLAKE2B ed6745aeabf84e616d9f2506a7a01d038748816287b6306ed9b60accd6e1adce01d7bdd8029b2159c370d588b9de613e5e0df6b2311fc455068a3c276b1773a3 SHA512 e5a6359d2da60b4118ca965c1e6440e19b1caf0db8b93be18778169a1fff0cd4e3d99a4b8bc90d5f1b10b7e25e257f4f9a6432540f753415cb4a7632a12dee16 +DIST firefox-96.0.2-bs.xpi 463270 BLAKE2B 6a936b354a727943e29396650c7480063faafbe975823d3d062ee051b380b55b47d46d5b3dac789b7e84be4e9f2bf3e7e7018523dcc292f426b51663eac3f24c SHA512 50b6fff8f6c79d4039fd1a613a6f1a3291a7bc124b7ec6bfe05e7434148d999e3f392c32cda3848414ae58731a705d970faf0d5ee6140f9977d3dbce0fdc5237 +DIST firefox-96.0.2-ca-valencia.xpi 539682 BLAKE2B 85114076778ba5b071da02ff910c03c5cb9743e011c05793e893d710df3c1e2179c2919dcfb60f275538059aadede693bc91719c097d7c257a956430f88273d5 SHA512 2a1829cb8173866559be1331d79a18265e42131ba6ad64e95f6ca6a81a237d0f5c6c822498067eb0744898f82c68914b25c05873b69cf1659f2618aaad043772 +DIST firefox-96.0.2-ca.xpi 532328 BLAKE2B 45ea56c5d2ade94089ba6b1cff374afa2907baa0cba6ac7d99498c345a7fee3871d5eb41f302cdc05439a4dce76e6b65d3e046db0110e7c8935912cd98a9c046 SHA512 e5bc55421ccd7948ad8af88572100af8a69f74411e0a1e76d72c2e1d9de51a7bfe3c4399bffaf0b6f5cf130b156b386541bff8107e54560cd2cd632cc2e92905 +DIST firefox-96.0.2-cak.xpi 554170 BLAKE2B 1829b8bce4c944dd11b15dcdbeaa2e1da9bcdb00cd958cac0ad64994c9598a7fa45304ba112d9983ab948763c1d8310d4519be267bb56ebf3aec40aea0adb0d9 SHA512 e4e4aa71679a8d6aecb5dccda0b06430c04427fdbac86ce97b09a2f489fad6570f06b85d51e8761a60a3cc922414f51140d7a947a1c72fbdff21a9d18fd96b63 +DIST firefox-96.0.2-cs.xpi 564609 BLAKE2B e64fa25ad47d47cb949c3074350c6be31e33316821f880743ad4216a3863a902317a5cdc222dd95a24235e6c7c17f99e6f5c8ab3e74240f4ce81f2f628de9bf2 SHA512 cb57be88f1a7bee95b43417485ea7f2af3ea21251430f52f101c8d655d61ca01d6075cc1ab964a1f1ad03864fc298a378e58e7f4a056cbcc8393646f717e94b8 +DIST firefox-96.0.2-cy.xpi 543957 BLAKE2B c017505788878cc15edcdb856f7c57e965eec49334b8daab0c78543097bc8334d0cfea1a687612cf56357a39a3515e25b2ae92ae51570f97cbdfdb81c5d92d42 SHA512 8a3341f609b78f4e2f2889ee8eee8a3c80c6a38249651aacb4aeea39c3c6bc756d165d48d01f99c2439c87873b6a7e5cb6b2c25e67f6662dc796287408f7abca +DIST firefox-96.0.2-da.xpi 534872 BLAKE2B 48b0194316a688adf3911ad64685cb1cd633ce17aa117cd3b3ec92316eae8444282a2ff1d7b3dfe273fa4d3296fd4036d7f91522ae9b7f68f36241776d98f080 SHA512 1d391420c5df75bf91d70480e7c877a478af742aaa2345035bf1e714022769e5b4308926495e572b33d527bf23a9df4d52e5eb5e65dcc2c6dbab28cd532e1ce3 +DIST firefox-96.0.2-de.xpi 555199 BLAKE2B fb44d36cca18c28500aa1a04e0f91d9641b465e3a7530e20af2ee90c62401b926f6bfb35a6fcf28f536e12d3ef04ffaa7e41319576f676a8363fa326a14380d7 SHA512 92d6d047dd0bce5b791ca0314b079edde73eff462237895d5965729c18fdf9b2c03c5ea242034e1cd858175345d3e2fbc7806c4aa1d450de2a50f8dbc9c346bd +DIST firefox-96.0.2-dsb.xpi 568059 BLAKE2B 919b5b467cc6b66a17438dfabf4bd70bddd755d3e0ec73f96b3abb3d707e689d21b60c451a31c88b0edf7ab00c949215fe68c2f527f80117be003380095c2b82 SHA512 fd4297ccac7c23487db9a14495ac37c2bd7c068624e9d255ca2236cea06de8be3bb6af5e6c61c3a1d133878c7a9cc6ce3b6414bda924f22a957a99c6499b69e3 +DIST firefox-96.0.2-el.xpi 639301 BLAKE2B 5c1418ed190ef9b97ad8225f6ba9d7892d5c54c9f174506ea5ff9771f1f5b2367d47db9b7604816fe180ddfab1b1d20d420a6b5a82c47d852260cf0966d340c6 SHA512 9e5e9fc3bff89e55d457c525c64d0cd79546d99b7234c753368dce647d53f9a9d3c8305b72b5ae6844d91a23872146542e8c4cbd203031fd33bdd88b4ee19862 +DIST firefox-96.0.2-en-CA.xpi 511582 BLAKE2B 5574cade92d1885d03b72e04a6e4278bdc1e4968550b92de063c297986756bb6a38c39262392954c552560e83edcd816661b79d01ab0d70b88177af572d6310f SHA512 e6cc388555b81e1605858ad48dc5856cef6cffcb2d0d9a6b87af538e237ce5c3fa7a3b7513457b3f158d3fd4a2c531df12736c261f738d71e77dd1f826f82e5f +DIST firefox-96.0.2-en-GB.xpi 512299 BLAKE2B 6245c8cd81307d7f45c181fb530baf97b61759f39fde85f1f86ffcf3aa4053de6b70a286ce15744bb89b62d7d4e60f9e6d02638f48a9f9841ef12264e1f754bd SHA512 aef735767007e91d37c3ee12315055dcc3f61c878f311ad91112cdb547f6b7ba5498f1f427a8572b86008f5e3943ec6085444ecaf11fc9a4c73c9034a99e8c52 +DIST firefox-96.0.2-eo.xpi 536251 BLAKE2B 841b57be4888b7db99a977424aa9a9dd9a8e3a5e3ba7e6cd13da5261183626fb2344325dc533e8a586dc5bf4d00ef02fdc0fa9c90fd5b826ab0f68343defe759 SHA512 d2313af5ca58c932edea84623112ccb9f71218a090fafbe69d4d8f16eb08432475297e8e29adcee3bdc9b1b6753ac96bcd72cbf903936faddbc493ce63e4b679 +DIST firefox-96.0.2-es-AR.xpi 548530 BLAKE2B fd8b500cb93cb75b6ea6724b354a019781306e5b19e80af6491c822f60607039079cf64163aebb4cc04d0b744b9676bf8a650bef37c3cd3283f214681a856ee6 SHA512 e05f63faa56985d176583aaa3f0819cdc3933362c1be52e6984f883aff60e90fa18e3fa49a8df825a297ae66455da73beb2589fc1467dec7cda68fe3ab7c899e +DIST firefox-96.0.2-es-CL.xpi 547893 BLAKE2B 0e35e2d6c7850fe79786b576d0750c073f797f778d59355b06cf07e334349b1574b1c60ce0942052fc85b0c5bbc85b2512c7ecd7913c04e3c894c0685aafe6a2 SHA512 0d316db10a2af47fbda48c660e0d87bd15a4af62fc4f8314b83aa8a39b978385b757992ecf472cc9240acb7f6b6c4986ab5bc4340384dbffaf55f69fc3ce7808 +DIST firefox-96.0.2-es-ES.xpi 538753 BLAKE2B 08270fc57dd22bfe07487669c2cb46f420e1f159d82abd5634115f7dd642656725e4273abbcdf1a402a2e7e42dc1f83f5752d4b16df40cdf48972d0798f20fbd SHA512 f9c20c258bd1d2a19f571e228d858a4b593de2275ddad070d03f56846b55464f6ae8a3445c64d650129ab8493fc2227820bf1f401176619f329c5c2c9d175a06 +DIST firefox-96.0.2-es-MX.xpi 551750 BLAKE2B 5e2c73a117e9bdd4f2a9cda97a9bab30fbbc2f4160f2280bfc5db21cc2ac2ee6091ba8cf78cea39f5d52c11b725d873d6b1a903228c615cf7bd68f1f03def804 SHA512 b96540a06a80457bf97e27bd8184658b128ea1da36d3d09c3676ecfd018a561df35da77f6d98cb3600eb52e8149c6b334401428a54485175405fc990eb4a7d13 +DIST firefox-96.0.2-et.xpi 529840 BLAKE2B 189e237588636fdc6daef85c5a314ba9bc76a51a28ff7209251f8b2c982020ad0793ff45c2fe818814f96d7bd755b66e07e84d26a43baf3b15924a69786f9d13 SHA512 43b8b6d9eee6e5852c3471666f617adfc1a8bf18b69f2a3116637d7be639e1c031e082054dadb8fec2bca966902d58f42114eafbc150380158448629825969ff +DIST firefox-96.0.2-eu.xpi 537822 BLAKE2B b3a10fd79957ea76423d5e17ca8f60b4758fa1cbc7ef03f8c0665c9eb0c3b88e8c7dde1bf0254c46b8b5efc249b92e3db14cb1691762acc43f8db44f826dce40 SHA512 0ce9565b224f8ddfb9f996ad1038d56e9ed051b8dd91b9523f205a4f80a56e41cd34292423fac1797d64de59e8fec841550c8f83cff5f6846c8574acd8e8a28c +DIST firefox-96.0.2-fa.xpi 564720 BLAKE2B 69d6f299ea5ebc693a931deef9393d1c47ad15dab964b726273069d1eb7868ff8699aa491ddb44e9f58bc9641ada64530ad4f337bdda311387a9ef691bc76325 SHA512 c31a18786c55c74f6c6512485c9fbfd99c331e37de0699d40dbb3866c735f08d8b1a06bcbee2bb76deeda63ca265ba57f057975a70957ed22b344afcd8ae26e1 +DIST firefox-96.0.2-ff.xpi 471412 BLAKE2B 677629bc483fde167ba9f1b679508377d371b056510f8742c2abfae85ec4d627cd23495331cbc7276630be7db2dc28d03d0ac5ca58759176dd4c4370d81b942c SHA512 08a9d841bec5e3c553ff9013f59425b03d1f61e3f468eff0117aad35f67a72d4ddf3550b365bd14d01b8c62311a7f55179bd5a044e96e17e9d56c3fd8d226cba +DIST firefox-96.0.2-fi.xpi 533877 BLAKE2B 0cde08b93088f6b508ae3dc41ffe960bfa9b164b12d13a3e191538ca9a0775d8d013eaee386175ed081289137303b814cb0ddfdacf995d11003b9ddf62dca6a9 SHA512 7cf174295e51b0468912eeca085c84e335c86cfb72e6a82367d201d4b92eb53aed1841ba9f6ea4eb097c5455455392ba5cb1798e93850dea9af840c062bc0413 +DIST firefox-96.0.2-fr.xpi 559470 BLAKE2B 498bc99ccb234725bd86b3753c69888346407e4e87541ebfdef4b60bff5b11292164611cba57fac06fc146ad55309de794cf1ed87ccf1cfac7a51085346fb6bd SHA512 d8bb4482452627c12efda96712db3db3407dea5fcd4eb50fc381a1c371b9220eb15b97dbf80c18bdd626ab761841ffff04ec9ed4a30f28480ae3ba698a42ff79 +DIST firefox-96.0.2-fy-NL.xpi 544732 BLAKE2B fe2e2321a6613dee5d9feebabdcdda95b3083a772d12cb6c3faa76c06fe45e7f727ada25ae0fbcbfa145f41cecb518d007f384135cf974c38cb575f64b0590ae SHA512 d6b7f148690a154a9351d0eb77137cffe10d77e67814023b1f01d3aa738662ace2ff23b496b0cdb7b131af5ebb71dbebed7ca8ad8fc0ad27974e15bb0980d5f6 +DIST firefox-96.0.2-ga-IE.xpi 458680 BLAKE2B 387efc549f93c455a154f19e729fb515aaf81d91ff8806114dac6b99531a7d16142c962d4fa899df7d7a3b536fb91bb0a49805df26141a5b77899b16aa03ebaa SHA512 386fefd40d4ebc4868aeb849bb7118e47fd7f0f9fa24317d53ee729cd7d5af5611f731c62b6e29cd7be0ff6e8098d43b2abb091902ad412568ed32537adffcdb +DIST firefox-96.0.2-gd.xpi 531917 BLAKE2B c3bd3dd1ca9a3a2b33ba0a49b591a27db819a390168e11fbc9bcf3af7f887c2de1cce0097ed8d699e9c9ab5579623b0470e97591fe700d4dea564f3c22674ccf SHA512 00186b9822a00ac9c0beee1da5fc1b888bd5c93e1f28b00b2c093b0a24c8edffda7ede1468e8c75cc75bc5c67361a8a00d4228c93df364520e8d769789fb132e +DIST firefox-96.0.2-gl.xpi 543063 BLAKE2B 719db2496943ed83f962d62eba663806ba003d62ebbbf83946ceb358ef444432cf3ab9ff593b28079bd0659e474a645fd504e8a76b7cc2301c9e2dc6eabe7463 SHA512 39b03a773d88650389861cc1d868caa0b70b14eb6f9a4ff6eacfbd522b0d41491b0e0056caac4a1de68e572fbe0630f61f446066621d69744eb36752f69ba32e +DIST firefox-96.0.2-gn.xpi 559988 BLAKE2B 862030f6b05ae2832348ef3fe3171f19304d2d40cda984364263ba6ce4e6b6ad5c7334c25d69a88bea200892287711d000230014637ad816f45c83f9e395b028 SHA512 7e28ece41cd8abe9167ee0e7655945abc7c6e4f57a2a277b6da96b8396c5a40c1ac0927956e3de377e0ff8c6029e606b890231a0118bda600517078e604d9a21 +DIST firefox-96.0.2-gu-IN.xpi 528687 BLAKE2B 5c536957c8cd4e0d9cd652be3ec1e0ff768d6a86acafe8682495c6169eecd15b4343d4b69b05c4142779ff46a9f8148d357b8f8d9805affdbd4c8f9dce00eaa0 SHA512 24d78fd0a5bfd31e45ada5788cbb74690df0c0c602823c803de59e5ebbf5300d5d0a573744b5fe421deb8f441bf951fd8fb366b6d7b0407c376bc27c669cb142 +DIST firefox-96.0.2-he.xpi 558121 BLAKE2B 0c6659f5d74f4458f4f7178500ad549300f26cf78e935044e6e7495455e355d595811ba0c555dbf36b2e443a893bab2bfe0dbaa481c6ed83a30ef1ec263a991d SHA512 d4184b29a1d9011e614cfaca0964546875f9c844b4e275bbae5b79560f9a93f684b2e02a2ffe30d85370f63154808c89a2ba841578ca4a7a3b4d75f549d2b6f7 +DIST firefox-96.0.2-hi-IN.xpi 559787 BLAKE2B b2fe8670aacb6de79f2390302cf47bb7541b72699e434cea0adc9f400053250b0ca0300dc9f4aac1b3002226fd37f5b608dc672d784dafe2b73af6eba0110678 SHA512 7acc010f3710a15016017f02e940fb5da61fe8086976d5aefd377a937dc798da2de381db7ecf5adaccadcfa2591db7d4d9d2d1beeaecc781f4fe1e25c088702d +DIST firefox-96.0.2-hr.xpi 532783 BLAKE2B 05bf577bcad8a1dcc7bc144bc8a9dc38bd8d268a2aee00e492df525f3ee431c43b9521397d9a20389362759500e0e0e2f9850ce7c7f553ec5ffc3d4ef6a3626e SHA512 156951314cc1b90e080dd4544f6fb589e48a8ddabc98a90ffb4f954d6c4f3fa92398c13a4888e4578ff3b59c889ef2b9bdcefc0781ad8885ea599d2d417f02b2 +DIST firefox-96.0.2-hsb.xpi 564159 BLAKE2B 09aeecdf467518b77eadc87fa03ac871f544d08dbe7f6b180bdeebd214fa3fa8b68183ae0d52fef6287723824699dcfc5b112be999c172d6440e620c85014c48 SHA512 82d75552fe5afc0441a959e98f68fb2405854ec299863b908f0c8f94d1f8480c0bfcb0cd417a4fecd725ced7446067b8f3a0b1db9e3f2e90e166366b06879a36 +DIST firefox-96.0.2-hu.xpi 567459 BLAKE2B 3fefec9af84a273644bd99483d0cf0d1db88c5202863f9289303cff8f03b1ca1c5c495161e219942d195c4d085c964e60265edee1186858ef194fe9edc7b65a0 SHA512 8fb583d2ec8d905d3f7572f3a48b5b9a110d9d7b0b68f5554b0bfa9b8d8a16f1d3d3ceb5d7a0b68dad41c6beb4adc0400e5fc4f91d2d33422505b78f58ff5a67 +DIST firefox-96.0.2-hy-AM.xpi 581494 BLAKE2B 66576d67afa8f6ad0f427b5ba9130b8e4a5b13cf125e4f209f756328ad3d2de96509699e5fa2187503fcd6382f862b460402555407f854edd6acb622ad774545 SHA512 e8a39a608563b964999ad773cac33aeb46568a3a587eaebc6154198fe09f982b9ac8ae9945045a6abd1bb2631490472a2d6c4262ed8d21573bb47765087be0e0 +DIST firefox-96.0.2-ia.xpi 534115 BLAKE2B 48dd68e117ba4dd0e46f0d6f06bd24c25f43366d6510203e72a68aa8578d23a14e8be1c79726bdb0bb96fb833d3a3081a763ed3fcca87d5a9a9b5aac4384e840 SHA512 d78a2b4ea9e895a184352f00a62f1254693de117260155a5c6e22b842d77adcc836537690db1c5e1e1617d05425f34c56012b70149cf6b9c2f52df39ee5f4c6a +DIST firefox-96.0.2-id.xpi 522743 BLAKE2B 73ba14ddcabf40cee48ba895b34b6b2d9f8ed9edea2be65aa47a596801f05bd69893ece6f4bfa6557e0b6af610cb6b9987b412160b4d27fb57dee9e0080c2bf1 SHA512 927a3017d71852ae78fbe08e8dd30ebf3db6ff603abfaeb382b33ae8ff2cf957189b210aa02817611eff1bed3aeaeb82de264d4b111cf3938db5ff5f92d061df +DIST firefox-96.0.2-is.xpi 501041 BLAKE2B 2324c132a03548c119fbe52bbea84ea9178f4f149e66b1e5dbf424984d3ae7f01209a73b53bc973d5afe2540886a899be61ba4024a029f8b87eb67c66d45032b SHA512 0bd61f6f47e39c97da65affc895004914748ef6e786b3968cd16b620cbd8570e05f951934994a2dfb3c5992842d3de60e2aa371e57779967641fd7fde99d6098 +DIST firefox-96.0.2-it.xpi 461983 BLAKE2B 092820e3f45f87c8ab65ca28f187da98c29d88b2d76bdbbff689399e599b11bff08ee2f965e88572ce9361853dd6b40445d155c16a6fce5f2f72ab8713e33804 SHA512 90737459439adc039e0940bf7cbb3617466edda7ba54aca347ae38f6a7001a856275620249b88a6f55888f2bf06e7d772cbd9d3f4a34632ba5355c023af15c3b +DIST firefox-96.0.2-ja.xpi 587133 BLAKE2B 59a5a9d26e62d368bede2667beed77ba81c02e98e751d682d76402837b5c6a2adf94f337918661b7b5cf63ac28c505ebee7f3e92823fecb76ed240b918639ebe SHA512 c6da169a29e4d72635b7e4ac3ea4cfe9b03a2dbf4d83c8514fd483eb26a8aa0d792b5abf45ea6ba1ee2adac48e58b5f21e8b6bbac9387b335518db2e3e6e7b5d +DIST firefox-96.0.2-ka.xpi 591856 BLAKE2B cb3df2a0951070c932cca3c70959c81aa1d174d1b80748c962aa005ce1d4f9016ebfd9a4fd8dc230ecdb475771df955546625f4edb6ad95f647d949dfe4f72fa SHA512 21cb7959aed44e94bb57663d553a6f5afa3163be6c61bffb226e64f2eb65147efe53dc5e5e9394c495e080df4ad87acc061013657fdabd01f886ec139916e947 +DIST firefox-96.0.2-kab.xpi 547213 BLAKE2B dc31251733545f790f8ef1bd568d1e85d825eb73d3942b8cc23d6f4de3b62f1ca856e7d812e1194482bd4189617d1d68e2cf4d830234d0576cee4ae9594c1a67 SHA512 5d2f4febd8337c93eb0b07a939e991e494f78378c3d9ef5b292e51402c6873f09820c67c78eddc3b187422997c99cd237995542bb96181bd757362f8842854dd +DIST firefox-96.0.2-kk.xpi 614208 BLAKE2B 00b79eeef922622453702d6696d455c951346c0625c3762bc9b9c419171f504135f33a9d7ca8399e6768b154b87697d1318bbf76f5b9834a48ce659447bf2c16 SHA512 9848346ec31cfe9a2d79ca3064408f1ea315ea20fe1cdec67e7c77f5c54b993507dc407fc648a8ad170dfebe83f8c94f0b3fce1921971f1f5403c99786abe313 +DIST firefox-96.0.2-km.xpi 530652 BLAKE2B 30e02fa3043ae0b95a19f2a292b8276e7f74277e227de29b3ff83402ac4daec23c14ed9a68bfec51c600c4b0dfbfa00cf9d7030c06b18c506c7a48ec8eb682a5 SHA512 85b463091091efd68353c4b49f95fc56bb542b6175908be6b45c7e92644b0a78220c3cc51264b6bc30383f2ed91f1e72c3711b8cc22a7988692a15bf3df4e1c3 +DIST firefox-96.0.2-kn.xpi 496354 BLAKE2B def56d89c895ff5d35974f467fd5dd5a1a4d68e540452cf5d17ac4609338f0a80d771c433bf0f9f2aa35ff79d75c5d3de15d6a7bff48bd5f71a15fc7e814704d SHA512 700869ea7f43cdb2900f1934ee3e63769fa0b0a846fe0d8201127333a9376013636bebcb7c1e06419e0a3cad7e3a5352ce4cb404a10f415b39a56fb020928b60 +DIST firefox-96.0.2-ko.xpi 580655 BLAKE2B 53bc99b1698b545f8bd38f939f325a5cf16e92be50f06e13b127be4a976b3cca8896f721898ee09b4922699ee9fa698d96bdc5e7310ec6f9cd0cb76181b6bd51 SHA512 ed50a99177484112f08ad8552bfa639606cac5616a7fe3542134269eda52e395efcca5f13b6fd50bee7da9958302296278624e048afd7afa2369d619152c6243 +DIST firefox-96.0.2-lij.xpi 470178 BLAKE2B c4c71c3c67a4d192e77caf188e5fc635620fcf470ee41ef4d66666d9da5348bb7c7645d37ffea0bedcd0d44d39ce3187a5b46d789586c1c8fa2bb3e793a7fbbe SHA512 8f1197b0ac6fb7efb16a96b2843f6eedd30005a5cbcd49a4e9bcf967309fd13c03f9894f6a71f7bcdbe08d1d26e05b04ff7ab97a556da00c64da81b25059d393 +DIST firefox-96.0.2-lt.xpi 560323 BLAKE2B bbd711c823306df3444c4aff50c0c6fc81335b2a28f67da5dd0b379717a3e0c5354253abd54abffcb8705ecdb55fb96348add01479f256fad21a06108c1af867 SHA512 b31f74b35eda87081a2e2620e3f924bc9542c74b416ca6aacdfb80697c4fc5238bf48a25a1fa1f936f7224641843650268d8014b5ca52b5d7395f85a4d95160e +DIST firefox-96.0.2-lv.xpi 462325 BLAKE2B 0d7d87192f7a4c066b0cdfd252354e492339faa23d3f32fe8ec261e01289bb2c26ae4e2c451814f192efa9b3bf2d5c01476058857f13028d3917902dee8a4b4a SHA512 9a3233f56f2fcfbb9dd084383bab008ccd18b18c1f6bf4a07c6df4bb80e69af62efc76235e7ce85638839bbdd793c20ce9f60152fd392100391879cd0f571027 +DIST firefox-96.0.2-mk.xpi 464354 BLAKE2B cfb44b750290912f2a7b4fde2f72c5584cab29edb18bd03863937f6d87a5b05ab25fbf2963cd62c7e3e7c697926b2a99453d6623623de9b5f4d47f1ad29b2330 SHA512 56cf6dbab68afb5a505961e020c54d52afd548cab255533858c5def4bf8b89c21795f65df171df610f6111379dec1bbee7e3639a0f6a7975b26b15883ef22d60 +DIST firefox-96.0.2-mr.xpi 531541 BLAKE2B 164058a3c476f985f070914c0238d219bfbe78a67c243e10a73fa4f418e4cc23187f0eb27e9aafe2fcf03a614e62568fc26478646dd21dcb6913af765268d2fc SHA512 dd082e0722ed14042c51a278aaae2f374da91563b2de1fec7a6451ee5db10ac2b09b9c08d1a135dad6532daa1b4985361e4525d4dc5789c6002fcfd200d8380e +DIST firefox-96.0.2-ms.xpi 447424 BLAKE2B ab022a1e27bd2febeeab657ba5341af4e2c6a25d8a1089b1795a46711584fd45781d6137729a65b688970e217b4cca89f1801c9235e8f5128dca4cfab85c409a SHA512 b38ba92278cd0b0306a44fb430381adeb2f071875ef6b3fcaa4b2cce705b0a0d2f644b5d3b87c9091d91121db69a48937026e8ca265daf5d5a2b37718f1a6f0e +DIST firefox-96.0.2-my.xpi 512739 BLAKE2B acba02e8f7724d69f125dc35715274a35af73874e5d9d95d9afe8c85f8920354664de8594eb7263e96cd235ed53a116be6a54fbf5ad809980a63f87834dab533 SHA512 458523030a2f0025a141284c88d24be3b1b442a3981233e99fed85a5674c8e80839c56d0a7f06724cbf944468ec5930f1b537096a662439e4212e7cf3a91fb54 +DIST firefox-96.0.2-nb-NO.xpi 530051 BLAKE2B 7b29b67e3665c3f8e8125e63c1ab1be0b17b2f7ead9e3d99f057533299f1b4fb84be022893c1dae47e9f3ae51ebe47728e30d13421c3c2d30294f4ec75ab3000 SHA512 34e6c0012460b3470c636fe1102ef58e80c26ad447943c84f6b21ca90df81a5585195684aa5bece7b213fa25260d2ca26ac0bf96789aebf29dd52f28e28f4955 +DIST firefox-96.0.2-ne-NP.xpi 483375 BLAKE2B bf0857e5b0c574efbf11e153346e399d8a63c3024e9c7b7458f11e684f5a84dc771e4fdb23dbd29c938a09b936ae81df9eda4b5012ee4c1f93465dbce213a9c8 SHA512 61c221436bd9972ecc3de1e33faa5ec896f5fed178707b074c9e1203cbd1af6162e4cc3858e30e18f0f93ec0438ce3e4dd7ed3d83ee333828022a250bb8cc25d +DIST firefox-96.0.2-nl.xpi 539062 BLAKE2B abba9c3c2e448195d55e934ed799a6671cb22ad9ba7a68cbffa7328b9d1c6377bbb147c788b6ee2a236a435e956d099acd0f278d2f4a681905602663427d2554 SHA512 5f6313f04ca5cac61b12e509ecd806d40445a1ee5c295808d725cdf46f9f4bd868dfe7ee803ba5de449d0847450e73034db8355e0df5554272d3f7da41d12c37 +DIST firefox-96.0.2-nn-NO.xpi 532159 BLAKE2B 9c0c9dc33926ab9eaf2944c49d2c9bec8983d275f6f6c9c1476c0302cb5dae817d16375863b8c1048c96974162f49f0bc7c74d09aaa80216c5ec4e53bdec52b4 SHA512 69aff97567e1b37268d2098841c49610feed906ce2912d981b9e5f786604f76772e25e6e4142b2ad128efff841b03e84491e07a81619c12fab73ca71aad500e1 +DIST firefox-96.0.2-oc.xpi 554615 BLAKE2B dab061e80e9e34a5faa25a3d381f9b5135fe371f98acae5b3e549a76a2fe71066cbbdd69da7efaf86c57b939d6355dc8c5767ae1fb7299b26ae5cd26d0cb06db SHA512 bc3bf6ece02137395143846519edb06c1e7b6df5ab37451c26941cdef1fc2d7d5482c9337cbead0709f294d46461cd93c7916b9ed1ed411fc0c084f9c21a12f7 +DIST firefox-96.0.2-pa-IN.xpi 594728 BLAKE2B f3996e18bb63c514a34038d18676aeb918c2f65f25318251e5a0c5b5bfd0b2e3af4302b12218f0e249b2d66cdd813609630701d9966ef8c1d08405ff576a6d71 SHA512 1f1685e073eea11196167fb473a83446282133ff587134f22460a43b1a70f7c3fbe99d160d1ed004988b554c6f1f30a642b7d66fb9f9b3487fb2ed63d3d8f646 +DIST firefox-96.0.2-pl.xpi 557903 BLAKE2B 00cc8e4094f9c1d8da5be7dca668cdfd5a6a915bd4d5f805bf2dcbd840dd6fe79e8b5fae84a5959e5615ec2e2b976956e1096ba3443174f23408b69f10022965 SHA512 e6c0dc1c42403059dab589bbc63ddaf07040f836673d0fec6e3f012d0b65470adad5456b57287ff479b5e7d374612c29c415e6ee3354e7333e70c686e395d36c +DIST firefox-96.0.2-pt-BR.xpi 544405 BLAKE2B b10700b73eb2433c676ba9cc2036c8505d1ed8d2ddfc4fadfe980734e0319a23234a3e2f2fd1a0379c123b4132a743df6f01163cf4aa76249457859db775edb4 SHA512 feefb8dd5f4ced3ae990b93067762b5c8cfdd86c4b86766f05a192411d5150020b3c49b00fe0f5b832787f17d27be0c488a7ce140c7fc530843493bf4da03e11 +DIST firefox-96.0.2-pt-PT.xpi 546129 BLAKE2B ab27b158ffec766058fc1ff873950e72b1e0e2648972d5a8303cbda16b7fc68226ad7ae4fdfad0c775517201925d24441c2b19fa65dea9f04e9029c9422b33fd SHA512 4e95af50e12ae6dfa78a5c7f4f6170351f0dd8a9afbcd4ec4dada60cbcd90caa79289170c2d8b8db088f655c072d3120a7f66e81ebfac6eb3fc9189fc3a729cd +DIST firefox-96.0.2-rm.xpi 537790 BLAKE2B 928a7f53529ece8211ba409f14a4bc329f622149caac726018d5b73473ec5cfcd1010f83a052471b9ccee1cd8ebe594fdac76947891f1bf28dd7f5c9ba6e22e7 SHA512 ab77044022ef3ff98e06f7fc10bc644f6ec44048ca1585b273ec970b4e5194c76cad52b2c18dfc6a92b981bf9d0134f769f39ed730a40b7aabefc19aafee52c0 +DIST firefox-96.0.2-ro.xpi 530795 BLAKE2B ebffabbc01207f37302b5d4854032b71b0f9368534742d0d9bdc58cd22a5880af958ca756c3888445c132cd90e992e7b695dec9d45b45aa6f8e4e174c41d2bb5 SHA512 e9edc03e758a757fed4ddd947eec287b419f9d43f995bedd788b94432411c0ee494a3e6be863bc5180d20d32c8a221e50be12b0dfed1db61922005fae629e743 +DIST firefox-96.0.2-ru.xpi 628644 BLAKE2B 5fb97ef1d0e11e3a43014321e6ef82f94a1283581b9b50381489e3b00bd4ea0ed4c4ee5e710dc40534d418fdbf0a895a67ad8dbfc92137b13eaea13360b84fec SHA512 566c42609ced96c4c6045037dce28c015b28f7f747fbf154c6ca18c7fa3a686d4b62310102776e94684cea585220cc5ea0b92bf334c187383fb9b652d2a71d45 +DIST firefox-96.0.2-sco.xpi 504492 BLAKE2B e5f9ff37aff98d73f2eab6111f83abbf6737a24c05bddd854ca191404759ce827081cda8874ed69685f523a97b3e868b3b9b417a48fe3bb5580335d2efd52d3c SHA512 ba89168a14706fc7ddc64027351ee05b6ae1de46e70806f3261851203bd572a79e7b7499cf89f1db8b276d1f41ccb5c6f9acddc558cae9989790570e26e201ec +DIST firefox-96.0.2-si.xpi 485778 BLAKE2B e1601aa67f9dd683641d9f7d1065d84699ca591679afca0e922caeb7c06d6243fa7df9169081072fa2712cdb9b0b5a98903b0e27e46f32dfd2c2af7f46f971bb SHA512 bb57418958e54fc9bb055775952979525b3685d679c3702dd8f2502c22d9d5ea2f021061788ef8d6ecf33ad7913d3b1014219d3e3a0af166180b552059f58e3a +DIST firefox-96.0.2-sk.xpi 568171 BLAKE2B a79834d56c9dda0017db7e822bbbae988cff8b13c1d983c9f4df1ac9094fdfe6b6ca6bc3e7ec8ffdaf97d534df0866cac375781d4e136d0971c220542c3418c1 SHA512 93a8ba3b1e31cd26d93fd854f7cf06e30e3101ee614ef0146e9d8542ee92deacde9d2692eb7a45b3339583738de026ac86c4355cbffbdab73c13ff08feff881d +DIST firefox-96.0.2-sl.xpi 538556 BLAKE2B eb43a5465d4725e0f752aa730ae2ef7d98836e7fdf486011a210992c07b649c99953adf153390baca262df95f9a41d27491ee8266f84fd506c7c72b50cd4d674 SHA512 b1dbf365cac60427f8619c239f3f854adcc7fa9107816abfd8b6a0700378653f66635ea94ef45d051d303b1935ca594d9f7fcc483fbb9efff202082024e6a37d +DIST firefox-96.0.2-son.xpi 421885 BLAKE2B 12171bf44f5c74ce76aac0e095efea0a854d6a2b5d6d804c0c4ff498ddf54c498dd16cdcb1ef4a025dedcf2e4125962934a73d3ed197a64d2911db0197eb2172 SHA512 80c025cee782dba6c232e1a762cad5bf62a89afb9ccce12fa6b36d211e94597dc70745d680f33c4502185c282e2b4016abd22ec1e3e401818e6d6ea375b1becd +DIST firefox-96.0.2-sq.xpi 556378 BLAKE2B c2716317c5761769b72df28d00d54a4d74032aab41cab98bd3b6d44ae57e46b7a68092ec9fff86a5f02cf952a23c1e89e30b8a6cfa8159230bdac7bea8d3a630 SHA512 ff9ad22ce9968a5b5c8102f699151b908cdae3e7d0bb419fecb8327df66a2dbe704e948f4783a41838c8270c7ae090317b6c5af77bee6824ba8e9b7a2990bf92 +DIST firefox-96.0.2-sr.xpi 586997 BLAKE2B 5ef6490664fac960eed22a83bedfcdaee0f7df7f7ad2c27c81554e8ce089cedd64af51949adc72d07c2872d572ad6af63cb168c5336634636db001cce8f8e47f SHA512 6f20f4d48f9d89a7949614c8e36d84dd00d68acd91ce544f1ec98f09fb8f4c018192014fd7e3ac7700671553d25431906e8681c6a7d993039d8d60bd298d89dd +DIST firefox-96.0.2-sv-SE.xpi 541676 BLAKE2B 56a9c035605189801165cf9fe4d7ca8ff52a56cb33ffc6fe915a25b6bd0975aa8093aad823c7d85eb89f9647cf0026a7654742c8e46c7646cf1d2dda0c4e8ae1 SHA512 1ebe3d07ca77c8c6e5f9d2bfab4aa248eb8654d1681047a7028fd864e2f0ad61f991b8a66f1eb34a47383c0b58d23844688d5afdf7654488db4bbaad49500352 +DIST firefox-96.0.2-szl.xpi 508925 BLAKE2B 2386f44c974468b196c01d576742a2cd0a4bd18c8a70896a06cc8e749eec489652ae2eeb7f2e0e853d3c61d0f00809b886a42666005ff10631a17090da8614ab SHA512 2ed4bbbacaf52216c10c99788d7b8ff7a4b5b66b1da8b92d8052e2e856be3afa82d6d739926f2d77673588a1e19e575bc0aa437953d94c67fce5b4f167215800 +DIST firefox-96.0.2-ta.xpi 511884 BLAKE2B 65f4e71ba0104e090f888d99624bb55e6166ebc011ebfe85670900d9ab29a45fc332fde28184ec5bdb1883f322c04d0b185f1bc68f00875d26494011d32224a0 SHA512 592e81b178e620d6a843eca50b7e0c857971760600654cd7a31ca5e4fe5aeb912aac8f7595461927b858207f0cbfb15830cd8857c805098538e5dba89941fa83 +DIST firefox-96.0.2-te.xpi 550290 BLAKE2B f60a67fea3365d24c059b241d939461ddfdde92cf6d31d3670d72cd2027bdd1684bb45b64c834b06337e0b21cdabf7146634f235abb740b2e9e27d7cb32aa9c3 SHA512 52b2cb867552f9e7825458efaa1bd9068860d834df1392d72dd99d6e5d4f2b62418eec90ab62989442f4f7ee36af5886ec540b8f590c7ed31ee8bcb7670ad374 +DIST firefox-96.0.2-th.xpi 606839 BLAKE2B 2f1e815ce3ac47dc269a366e564650709e6b4974066239495a5ffc7cd21cc201179da9e84c50331e817c5ccc4b5fd02af09e75b81eeae72c2e29f95491c31f04 SHA512 8b3087328e67500ff809376e1a8a29d647a7667fe02cf10caef686e59e905546e3fc50984d3e04af1cbb707876ada51e7566c18904b6a1c9fde9316745648d01 +DIST firefox-96.0.2-tl.xpi 520544 BLAKE2B a65eb158773d64604f43194ae1df963c63fd371c2ff7c249b54d717181a12763d541bf1cfa5b0c4a65af29c2387a9d39a98d642f6d95cc76b5c78c6bdceaeeb7 SHA512 a252a973d1b037923a9d17b9b0ba6f4c3b7f5e36a00c19b7b0a1033f2e86090efab51e063c231abe9a1624bce562985b5e26befdfffb5145a778d622f6c1b8e6 +DIST firefox-96.0.2-tr.xpi 554375 BLAKE2B c9244d7a6babe45972d7e52d8c4216be72725a68d929dfdf3f7abe2c1017fdc0e52306789fc660d3196dc0bba955ac35f7fb37688202e0f79a4cacce9b883d93 SHA512 5b81702f19951337ce360c34647d00b0af14a074372d5e6b5ec11235aaf122f4cbcf9911c77a42445060a32e570a002ca07924dec0d65be2fc49c593b3fa34e6 +DIST firefox-96.0.2-trs.xpi 491105 BLAKE2B 0dc7d37d6a8f813eb9bd21e21a4826c1860787f87e5fc1b14063dab028630eb0761fd2b697806e8cd17d018f8bedaac3d61b13e660ee809ea0550a3c8fe055fa SHA512 717fafdaab0f337b26fc21d39052db4c59dde8d9b857d8cef3e92f48a7d6beaf6599efad6dd0629656b7e1331db00dcc59730876569d7468edc548f923b15d36 +DIST firefox-96.0.2-uk.xpi 622246 BLAKE2B 77110817025998b94a1fffbab933c7eb2aaf3a4ac94cbd76daf60f7a1675d89ae1553399cc7590cfde620c68e364e7313c9dec2f86446db35df9e89a8446ea5f SHA512 1e2439c3fd17950e131edb58d06c5772ce6eee32462c15fa327642cbb3c2c554992226d401595ef5274a4fc3e0d4a2805e1baa6a3cd3cf124775436a179ca0ef +DIST firefox-96.0.2-ur.xpi 557344 BLAKE2B f24b261eedc4e1d9ba78cd5bba3943bad78263de157caa0fefd7e8b1801e6780419fad14b2201444bc03fbffbf39c5d932dbfa3357598b4667af4837ff00097e SHA512 16db030fdb4938703dbe4ac79b2994a811f74ea1107a087c79b4c17fdcc7c9e3a58e10ce06cdb184b222d26669d8da11bfc6f2997ce74215aab2a1f2aed2dead +DIST firefox-96.0.2-uz.xpi 465824 BLAKE2B ffb31ac155a70f75f4a6a70f5b54f8462d47ddbae2441ac54d79d8210d8c10981fada4e92ee6b1c92743cf73b733ce097cf7e37121ebdbae7971bb38b7d87fbe SHA512 824d691cd5de67621fe1105221e7de2909976b401de3198f76d4c1dea861ecd49b73d4347b11b53fa93d651b022923a689635ec04eca270eda93cbf1d31aad80 +DIST firefox-96.0.2-vi.xpi 573968 BLAKE2B acd61c7f2457f5eae74649b701510d2555238e0488938defab8a686ac0e9c5ff341f81f9aae9e97e692c15284d97c70f39824c4707eba632249383eaef77f3a2 SHA512 eacc2d447f51376aaa1d7a88d8d1595487f3609b1c2b79aa8f256baa95f05b2bf8906e55f19822f96eda1c7f247b6ba7ffe834624754680b1ecdd7b5cd72588c +DIST firefox-96.0.2-xh.xpi 424472 BLAKE2B 9a22f930141460d6d8cec62bb6081cb73dc644a93c100dd0590bf54e3ee47311cf3355688d8446cc0b0f2c123a24e42b552e8252738f9e73615e799144441a92 SHA512 a091d98bfc76640b4ae2a4764033df310f48e81ad9232318f7bbcd2907858765cea3523243e89eaa8441057bea5d2326560b793a62fe07d73f80a8ce95c109a2 +DIST firefox-96.0.2-zh-CN.xpi 576729 BLAKE2B b920aca63e1403839d31223f375738f3c97b285131791b9e80c412628579595c87c1bead8b6ad7f11846cbf956d0173026a40182eb275d00dcfbb6afaa7d4b8d SHA512 8850521b1a6137713329eff99101d587a93f0bcf2e2b301af278817f07a8c93eb2806479a4b6829cdd0b3389fc89ccd4fec37016321611c90b178d20d91f967d +DIST firefox-96.0.2-zh-TW.xpi 577817 BLAKE2B b29e8cc93a9753d933a1868c072161cc9d7e26389e868b2f9a3bbf15b171b0fa22d46f6accd06d6898261c7bd0e244c0241785c4541b2d7f991ffe89dab38806 SHA512 330d6395328bb1135843fe9d8f164f169b3220257c9835bad8c1ccd7b64a807437289155445832d0d6117a48db80590a95be26cef5ecc828e8417241454ca042 +DIST firefox-96.0.2.source.tar.xz 414004200 BLAKE2B 652af84f39e68d12aa53718606abbedd4e24f1ed6f8e376c748a43166acea7fe3c0362114c4492204d36997e20244ff5607cbe79aa21361fb3827642575eede9 SHA512 5ceb1f023a9217c6a9c08b6525882d4091f989859cf209cc1d0ea22c846d05a967e1c47102ae052f7a5029d18118a558dd96da00437ee2c6fbf2896caf99d9dd DIST firefox-96.0.source.tar.xz 410165944 BLAKE2B 2105caab3f89cf2400fe58e90c280d45d99012aac244e8d3d1c48f69f4976fbd9bdd4467675a4e5f818f3ae2c28662321762495f9de485180e4aa63b6d89cdd6 SHA512 39f553474537eb4e521f4182e38f0ddff039fa6b40b939d461937d2cef27f7182097b478f08f90d64fdcbe9c063e78f14f6863a8a82a16207ec7a1d3fdfda4ff diff --git a/www-client/firefox/firefox-96.0.2.ebuild b/www-client/firefox/firefox-96.0.2.ebuild new file mode 100644 index 00000000..37db0d2c --- /dev/null +++ b/www-client/firefox/firefox-96.0.2.ebuild @@ -0,0 +1,1239 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +FIREFOX_PATCHSET="firefox-96-patches-01.tar.xz" + +LLVM_MAX_SLOT=13 + +PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="pgo" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~{polynomial-c,whissi}/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="0/$(ver_cut 1)" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver" +IUSE+=" +gmp-autoupdate" +IUSE+=" screencast" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" screencast? ( wayland )" + +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.19.0 + >=net-libs/nodejs-10.23.1 + virtual/pkgconfig + >=virtual/rust-1.53.0 + || ( + ( + 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] ) + ) + ) + ( + sys-devel/clang:11 + sys-devel/llvm:11 + clang? ( + =sys-devel/lld-11* + pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.13 ) + x86? ( >=dev-lang/nasm-2.13 )" + +CDEPEND=" + >=dev-libs/nss-3.73 + >=dev-libs/nspr-4.32 + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-3.4.0:3[X] + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + >=media-libs/libpng-1.6.35:0=[apng(+)] + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + virtual/freedesktop-icon-theme + >=x11-libs/pixman-0.19.2 + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + dbus? ( + sys-apps/dbus + dev-libs/dbus-glib + ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-0.9.3:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + >=media-gfx/graphite2-1.3.13 + ) + system-icu? ( >=dev-libs/icu-70.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-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wifi? ( + kernel_linux? ( + sys-apps/dbus + dev-libs/dbus-glib + net-misc/networkmanager + ) + ) + jack? ( virtual/jack ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( media-sound/sndio )" + +RDEPEND="${CDEPEND} + 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="${CDEPEND} + x11-libs/libICE + x11-libs/libSM + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) + amd64? ( virtual/opengl ) + x86? ( virtual/opengl )" + +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="6400M" + 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!" + + # temp fix for https://bugs.gentoo.org/768543 + # we can assume that rust 1.{49,50}.0 always uses llvm 11 + local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }') + [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}") + [[ -z ${version_rust} ]] && die "Failed to read version from rustc!" + + if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then + local version_llvm_rust="11" + else + 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!" + fi + + 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" + 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 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_src_prepare +} + +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 + 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-install-strip \ + --disable-strip \ + --disable-updater \ + --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-png \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${SYSROOT}${EPREFIX}/usr/include" \ + --x-libraries="${SYSROOT}${EPREFIX}/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 + + 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 system-libevent "${SYSROOT}${EPREFIX}/usr" + mozconfig_use_with system-libvpx + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + + 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 + + mozconfig_use_enable jack + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_add_options_ac '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable sndio + + mozconfig_use_enable wifi necko-wifi + + if use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland + else + mozconfig_add_options_ac '' --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 + # ld.gold is known to fail: + # /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld.gold: internal error in set_xindex, at /var/tmp/portage/sys-devel/binutils-2.37_p1-r1/work/binutils-2.37/gold/object.h:1050 + + # 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 tc-ld-is-gold || 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 + export MACH_USE_SYSTEM_PYTHON=1 + export MACH_SYSTEM_ASSERTED_COMPATIBLE_WITH_MACH_SITE=1 + export PIP_NO_CACHE_DIR=off + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if use pgo ; then + virtx_cmd=virtx + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + local -x GDK_BACKEND=x11 + + ${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 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + 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 +} |