diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2022-01-11 20:15:13 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2022-01-11 20:15:13 +0100 |
commit | 1c263f7550b6bca13f7f4120ebce977f92a4cbaf (patch) | |
tree | 640db69a33c9735245fa506a6d6e09aff2972f86 | |
parent | mail-client/thunderbird: add 91.4.1 (diff) | |
download | mozilla-1c263f7550b6bca13f7f4120ebce977f92a4cbaf.tar.gz mozilla-1c263f7550b6bca13f7f4120ebce977f92a4cbaf.tar.bz2 mozilla-1c263f7550b6bca13f7f4120ebce977f92a4cbaf.zip |
www-client/firefox: bump to v96.0
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 | 99 | ||||
-rw-r--r-- | www-client/firefox/firefox-96.0.ebuild | 1239 |
2 files changed, 1338 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 8dc62e05..bb6dccb9 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -294,3 +294,102 @@ DIST firefox-95.0.1-zh-CN.xpi 571143 BLAKE2B 68a55217e070104b8405f60c6b7dd329f58 DIST firefox-95.0.1-zh-TW.xpi 571960 BLAKE2B 4879e8cf4df8c6b216bd326f7d8adff184607d62f4b8538513494f892d4a264621ed97cc0e6944c7e05e1472b7e76130bd5b125bddf139b27f7acffa18e76162 SHA512 19d9a2df1c64fe8e9755669905b4cbcebfa7ee1578c77b0138937b618aa064ac90a0be852ebf389ec79b1047db5fbed33c056429ef8fc86642b8ae16f8e44f36 DIST firefox-95.0.1.source.tar.xz 385073408 BLAKE2B de14e696d8b30b67e6dd976e14fe49e1fff38edfb31560485fbb6253ae755b080e64b6bd866b2b68b19294843bff0f9b7f05837d63a952e59a1dee35e26c9d1e SHA512 54887c3adbf7202b835ae1ac928c3c95516ef11f9894456561dad500a1a61623f926b37f6e02fef0898e7ee0fd9147a71e5432634e6e0a2c2fecd08509799c37 DIST firefox-95.0.source.tar.xz 382853940 BLAKE2B 64ff056f2e8a21731a920a5bc4580d3bc8805b40ac1c0ab3d6cf3811cc1e058ee9363f85a9c8bb086b1bc87462b7feaae565c459edf37417b44cba6e0727dd94 SHA512 350672a2cd99195c67dafc0e71c6eaf1e23e85a5fe92775697119a054f17c34a736035e23d7f2bb404b544f0f144efef3843cfc293596a6e61d1ea36efc3a724 +DIST firefox-96-patches-01.tar.xz 16660 BLAKE2B 006d1b0b98858fa2961a99972dd255736598bda949ca484b9ec3d91628a4c976ba0738b1fb8fbfccd0be0f175caecfbcdc7c54a091eda5352fc9a42b37699c93 SHA512 82f77648e322e71694cbaa1e3ad77fca70418fbdb1cfe9a4bfd94ca6e286bcd86bef0a559cafa8b673a2e90da77bff8b7d07bbdda8a44795bd8d2cd210cf1ebf +DIST firefox-96.0-ach.xpi 451187 BLAKE2B d02df5f9a6496702c8e093c3418499460c5f47c2a21ef8b31d6ecb36d01fd928651289c840ac2267c4425cefa1dd60f12733d0c327bead619471b112eb69f197 SHA512 f1d57a4826ff686663e869cda64b24bb024864ed293e2c05026dc6ed04b9bbfeaea7250f5f31acb51113bae38c817ee487f7a70e5b776eba462ba1a847df05fe +DIST firefox-96.0-af.xpi 420335 BLAKE2B 4fb84f96e6919da8d9dd567ba6acacb61a7f7b8cedfb4326e83c6dd95c50137667d6fe8eaf0292a9b77da6a0737b59d156fe6b75f6da3b67496c46290cba2c6a SHA512 905e0ea7d8407355467893c1fddcaa24641f5d360a4f170a89bbc8fced3bf01fd5fadfa1061b76cc16ec9e19719014ea05f851b5eba233ae087e5074c70b5479 +DIST firefox-96.0-an.xpi 499444 BLAKE2B f30fa5fe1e8f277511d44b925a24c595ce90fd4a5d1d9457d4bda875ecd22c08c7309b31a725d6076899a43590784570e04c6c999b928d34d741a379e413dd26 SHA512 ca1260c450d7c70d1196928f288294d5a754a9263171f1482602b938baa372d719a1fc4d0539c3389a41fb95e6182934ba6cfe5f09f4ceeadf75cb82476f59e5 +DIST firefox-96.0-ar.xpi 559642 BLAKE2B 8d83d4d8ef207de690aac92c06857ee675ee901eac23088d33b9b97d6a97487249e69d59a7393d1bf91bab9d4034e694f36b7061544c1d21c248ad31d45c65bc SHA512 57845376a402ff4fd0449df3dbaef68a4cef956f7777c1a3e42b6182da239a61925e5d7f0e31523a3ac028463972110c184a1e73492bec4f53989a8ac1085f07 +DIST firefox-96.0-ast.xpi 496735 BLAKE2B 56ee7c86a5f8acd9110882e921ac94c7226f78aed13cae57a91a7529b3c5991ec3812d5d3768710bad9583bce77cdf7f6387640499e1f7a46f4168c362a97a61 SHA512 fc4d6af7f21d8f1f8a373cdb5d087414460066b1bf5086dd3ad521d29e889d9efd9f04f382cb222aa4ae3ac5b46cae68a75f2dab61760362bfad6d9f330ff9c0 +DIST firefox-96.0-az.xpi 487140 BLAKE2B 2ecc433464cf4b76fcaac8ed453929a2d9e0e960a52e252d48d2cc52ad3c51683f200e09ae8ccd87780a4b05f0d1afa09516fdd3c4dbe8afaae3cc45020982b4 SHA512 e21566bac36b219c3e81eacb8fb16a4445d18f653a64dac1532c41fd945e8fb3f23550dc8e477753f683619a7e517a5e5226099fd596a75ba601693205c83ed7 +DIST firefox-96.0-be.xpi 620916 BLAKE2B 398c138efce30cb85e037b364a68749ac2d642ffc4aaeab3137652b3074f80b0998bd220a12f4ee7d5b503d8620845788d2decf8b2ad59fee1f2b755a86cb7c0 SHA512 653e4c2351bde281fc8fc2ae47720edb7eae8bb51afaf3b707434351ad5629acae61942c43640072bffd1a99ba987c6af91ffd12de4b0de2912510cfe582a128 +DIST firefox-96.0-bg.xpi 566683 BLAKE2B 2e634c7daca2c45fb0e9c1e77a1b7e8d057021a73c002c40cd420ce5313b818a94171a5cae30618ed1f4f952c2c8165d78066623713867befd3382da52e6ae3d SHA512 dd8ad3b5c5498930d782e48965da6583da008f6c4d31850c5263523dcfdb3ca3ff12004f7d154e41d20292dc0540d0b0359f78da4ec9979851ab72c08734f87b +DIST firefox-96.0-bn.xpi 556024 BLAKE2B 1f0c2bdc649b08dffff400013946915fbf2e51779c4eba296e38ae386582f416aea7cd2ad9fd1a8d3e57bb7cb19f1ab8700245e7aa11d5c8a2d3ae661459c252 SHA512 c875b7baecd463148ec84d6dafad2fa846d3e6c2b776cda7928cf87c73bf81b523f6f5b7e2db9ba978e3cc265009336d66815e9b9afe81709be59cae78feeaac +DIST firefox-96.0-br.xpi 526874 BLAKE2B 50c71f9eadab08c45c453d78859262c5de7894f898dbffe696a1be5bf568249643179a78bc96c4749995619c1fc4fe6b71c2db7bdcc7cc8981bb746dd6fec8b6 SHA512 818ab36a42ff70e77bfdf76c39c0e27fd012b60efcf9380e1a1424fd473955fc17b2d11719577e5c289b7a6555fbfe3e7ac6d86542db14a3accb2a0c1cc690d5 +DIST firefox-96.0-bs.xpi 462230 BLAKE2B 03ee69f4b7a3713bf62c35fade1ee80bfea1bc9ea627fe1f4625eb3e982e21a06e36a3645763c9c0b53c713b144881f44e6f3fbc87e71144619683e8a55d4da8 SHA512 6d9aad647815e3f37e0bafc181c7e207e88416778588786aed3ab684e6e0268889616e955fb9ef69ebc2851f94dba79847a45f36e1678e1401c1454f0c675399 +DIST firefox-96.0-ca-valencia.xpi 538646 BLAKE2B fd9b5cb59aa80c4014affeb765c764e32433a4e2ee0ea2442cdae6280c2dc72dcac263274bf1def5286341c13445425521344cf84d29589cfa1eff6bf22c24bf SHA512 00a05ff52b638c995dd535a5506f86bd437e759ffb6e989aa45e6a4da78837fa481ec1c36fff1808391a981ea3401e27476e6b53b441640ba8d687727d795857 +DIST firefox-96.0-ca.xpi 531294 BLAKE2B 2d3b5cb54b92a59a64a0fe37769895ce8a7abe014a790d86283c8ec822aacd2ed5ef29bfe3b51b365c2925ad5b4ec888995a05ac9f9222e246a30de114f12c97 SHA512 b8013f6953d6dc0d41059b4ebbffd972c017f747ddcae5ffd1c46ad4d3ac24c336a9026814e8f2bb6a87acfa2adc0212beb62f640892d6b80d774c9d839df83e +DIST firefox-96.0-cak.xpi 553134 BLAKE2B 2979fc95106749114e15f8163634eab5f0336d0b9bf0865114a483cf7ba0f9b8f02c4b4a6c9b9a9d93f4f7bf7f1dd5ff6ab561a33d0183fcb1ca49ecae25a73b SHA512 048cd81cb26e9a59e8b619ec6369f9e81ec9c2cb65ca041537b595012d935032c55150ae85c6062860da35da6375ef26f1f5af935446cde35e38f5d00029ed23 +DIST firefox-96.0-cs.xpi 563574 BLAKE2B e3f7f22c04887240874bc0c53e756f9d561dee9dff83d12d8e4780247b81329f0a80a88346a6d33b5aa1199b714ece8e97f56881c08bc00ec88a38d846b9f920 SHA512 61d82c7c55b7fcd30c30846cb802a2b6391b07414e9ee09ebd431f10eb7fd3d53a08661479279116e8bde5e643c49e8f7725b08c2f7452351fcab0719174d47a +DIST firefox-96.0-cy.xpi 542924 BLAKE2B ef957c6ca68e82c971f7926c10d0efe18143b7010effcb924db998a37d98964cf3e1d744cb3d3887f00be1839556da43388c3b3261af7061ef93834b398cd20d SHA512 f1ea7b89d246b6cd8c6466dbf036d105dfa6704e9de06a9cbb7113535c732f8be73eadc4cfeb41006a836a47285d61ada44e630f2a7363bf5d06c10c6d339bee +DIST firefox-96.0-da.xpi 533841 BLAKE2B 54a2998bccf0cd7a20e3b3b14c9d94468bb6d6ec71cf237e7300c6f8cea594a5b27f1260a1bef9f1cb4e4efea1895567503a88436057bf521022d4665bb8bc77 SHA512 eeccf33b508b8d3d96420d32326626d6da509464b03dce43757cbbaf132a6520211e8e6dfe7a1ec796b949029310766636aaeeb67dca16b2d189ab5dd3ebfb19 +DIST firefox-96.0-de.xpi 554163 BLAKE2B 6a138275096dd0fa0f145db9b56a7f90368492bcc91b5471fcc0be0445ceabdfd8a9f40525c2c664c88a45fb10bcb2d16d3857ee6b63e656ef7a14464f40a067 SHA512 267f3f10f522543c59b91479d7d478071d14ee84f88954e2f19aa01ef5e05d9ce226bc64369115bd1c44bc321d2f3933d4f876ac33b57c00e8a09bcff3a67f1d +DIST firefox-96.0-dsb.xpi 567018 BLAKE2B 9eea903f14678f35d18f94a9decf1a6b200845e8922dd31adc2baaf969d5efa5bec4b532caac9ef581578ec242ecac0eba3035d631b5373097a93f1fc82790d4 SHA512 475a5c26adee314e641929dfabc0fa567dae73a3dac7bca4e6b3fc09288c52ba9ffb38bde323df945897f68d5843dd87b3b3ec8c797ce46f6c8669a621d0fd92 +DIST firefox-96.0-el.xpi 638274 BLAKE2B ba93a85a09257fbf07c5b1c4d66ca3928f162a214ec9a082fc153fc92102836843b84a875bd90856627dac3814e65472036618600d1442105a2c408a3bbb9086 SHA512 b0386a3c535e9d9d7c4dacaecf02e64110668ab336660a8fd1cdb277dfa8a5d05e5074e5df0b978a61aa8e5d70ebcc3c71181812423eb758e18d15d171bc00e9 +DIST firefox-96.0-en-CA.xpi 510545 BLAKE2B 68596c6468cd67120faf5c8c1851ac205b3fabcc7aa9b977d03c06618a9e334a8836870c45eb730df786e69c5f00b8f01e418dc3ef92c4db3aa0336b859ee254 SHA512 46ee5754d7449fed45994d5d3f247cf872bebcca2e97ed51b8f558f9dd88b11a42a64203d8c57eed6444b4710225564c653c046ff6166e5b4f9b6f7931f2dca7 +DIST firefox-96.0-en-GB.xpi 511260 BLAKE2B 3dd0595ce2a89d137613f682504fd318b5a8d9138b98ad6a08aecd6bba99610e5b452f92c63bf9943bcaefda5cf58c895912bc118ba8b0397d1bb8134e60b72a SHA512 32d3e4ac17eda509077065f4c989732a90054566769d27c66f877e3abcb79e127ae8983cc5a663a4be45433057746b6b8c3f02f1a8b9c2fa88d1469d069617f9 +DIST firefox-96.0-eo.xpi 535221 BLAKE2B 11da0d9f114408cf8b8bd9826ae891442a4cd86fe43d9d45d1d4770dfaadaf18b25f12d48b0e73d6bae5a6664a54a6db105b15d31dd2455aedecae98b7c95135 SHA512 215aa51bf7112c8cecaf965f522f0fece66d15b8419cd615c726349694097f36f11c5a67bd52a12923d27950545dc85ca197f27f38178ba5150cff4d671a0dbb +DIST firefox-96.0-es-AR.xpi 547490 BLAKE2B ec80d4b45c8dec0ea7b95dbcf1d0683a1abb25fdc974d3909d2304776771750a82e03d8e07af2079372593047abeef7673c8955afb36067fb573104d3914815e SHA512 8f63c5fafc3b401a5784ef688bd7ea9bf7291052d3e8e94f7c3ac081c94c754eceeae15a1fbbfab60932d06c35b227606f74b324afb79a223d1c4487ff8412a4 +DIST firefox-96.0-es-CL.xpi 546861 BLAKE2B 28c62827129840db1f169ba9e8e3ce62d51e6e275e3c916242c7fa8f25ce9994c21753e248abc9f6b60e98e66ddb9489dcec399240c084b87dc09b26ab9b73aa SHA512 37fc4dde65ae3556137fd6a8b23867b463c0560f33e63bc48c3145ade6f81b478346337b6570ff7185a386f9dc18bd269da209a71746bdb668de285c2e34e643 +DIST firefox-96.0-es-ES.xpi 537721 BLAKE2B 7bc3923e48cd65f82a9f8b8bb8acb6bbc5472cd66b93042fa9ba8ec69a8731ca8bbe11ffad396834b6e98ac94154b59807f2d43ed16d52576f9831f513d2a549 SHA512 fb5f80e16286a601f7fb0439ec9adefdaac0cf0b3664b333081577574d5659414ce4c48a1cf7722abd7dcc6116700022e378e6c719844e5bb01fea41c4cbd49b +DIST firefox-96.0-es-MX.xpi 550720 BLAKE2B e1a5b4c24c72c2abd1fad021779d9cb8e5fe3fca6f2fbe1a5a3040269d0c8d51a82260a5b805e9dfa7f8507eb9f83186299ce7e49a5174d893095681af55caf1 SHA512 d05479f6d1c749593760c5713ca7d9b0fe3ec7608112860a40e5a7c74db7d85fcaccabfc5f7faa2fca201fa8628e99991fc48c1727eae2f627ded6116fc8c16c +DIST firefox-96.0-et.xpi 528807 BLAKE2B 67bf5993ff9faab99268816420017a2652228486c11d43db2067137d0135b1bb493a08dd7f4e374cddd48066c597c021ef443b8029b6e92279d52dc2d213f2fd SHA512 2e7ab5ca36a11a5f4da89e5303223dd40c4b40be7dab41418b08de505a76ee51072c9b02b4b68dd2b9cb29fc00cbb4672d783c0e630a322ac6ae06fe7eb0a20b +DIST firefox-96.0-eu.xpi 536789 BLAKE2B 02a83843d4cb2ec047794caf1931b4ac022c504de158f3bded6a35425e2f7a931bd2f535e0d26e16b7547c2127e1b2d20d508b4a75b937a11084875cb095f83c SHA512 280faf7c5cf67389812700679749412a62db6065a772bf77a3775768449da94bfe78215007897bddaeb0f47afd0e049af2787dee88afc6ab38c4bdd6d47aa561 +DIST firefox-96.0-fa.xpi 563689 BLAKE2B 46749169a6de5d0dd5c21b7fff8f7bb618eda55a65f2c80a268a514829ca087da0dc212f3f3cac9f10be7753daa283dcb434594494c008903e1f9f140264778b SHA512 8b7c536894ae0d8dc042545f4f211cb3c58666c8968ef35bcbad6944bda5644df11c8b6f4880c312eaa7f5895148a46f0d9c0ea3c8169c76200b7caf7efddd76 +DIST firefox-96.0-ff.xpi 470390 BLAKE2B 6d7c8abbd006a85f74cc451a06203e22ffc42a21aee975a9ae27c858562eff6cac8ddb846bdd75d7693bf08ad24e044d735f598038be2a4ceebccb86cda0a9c7 SHA512 b579059e806ec8b43fe1b50c7eba07179faff007aaf256b2b9f00d2f019c95f6f57fc4f2a8f184172e46fb2b62ed0f1cebafaf01e3d108887a47272afd603b2b +DIST firefox-96.0-fi.xpi 532846 BLAKE2B fbcb0569106fc1c04f0d38ed58ef08712d9e0333663d0d469c7cb22ce7d26473a010ab0c659279a059ec4d32710b753228c8ae461b6b76c9b7cfe8f7cd0cbc6c SHA512 2c24ee1872384200ed87d0994e79d00b84bb9273102c8dbf315f1c4bafd5423eb9e0ae68991a77724fc0bf0e8f959ca7f306385e480446f4b7567258db1400dc +DIST firefox-96.0-fr.xpi 558442 BLAKE2B e155e87987e40340a44d68a3774a0a010cc7f47cb356d6dbf2e76eb41c7a4983eee79e5c54554919ee8cbad7d7310766fb0c09c5ab6bf4fb47a3fbf540881435 SHA512 419ba4d06bd8bc7a4239c4363f54baf7e8ca1592a07e75287126bab90e39a15a4e97e8e7d48a52293e4b6bc35822696d2bc910029c8ffc99c7999718fa88549a +DIST firefox-96.0-fy-NL.xpi 543697 BLAKE2B c4d4fd20079df6b64b3406b2c61349d4a84c0464a2112a6687c9d9e83c26093d4004dfe030c62d2da0fee664bfbd81235fbdf99cb758e78e6d0eea27b275f8d0 SHA512 cf78800b4260e0a4d09949998b889ec5a679ccbfb926779cc43930e622864cebd1e10c19c3477add6477f07419520e7ce532695fb4dab0d73abd2ffed23b5d31 +DIST firefox-96.0-ga-IE.xpi 457647 BLAKE2B ef8e700c5248675fdf32ba91f2e211d8abfb86be56040683e41342ef5f53447c7d1c3d2937b10c7e3120acdb6f85001e5bf33501f05522c0b494391112a17779 SHA512 b41f1715513298a5293f64ca9d94abc14a9b5efc5b025806307553dc72b97cd10396c383b294017c2333696306696a56b2c25a16e20ea00ee41deb9069ac4baa +DIST firefox-96.0-gd.xpi 530888 BLAKE2B d39b6f16f008c2ffd9755d03a93e29f15493cf3521d8a5c31d60ed92b10483e0058c8630c4f77d027d07a5e676433eda30276016ae919e4aeabf78555e4aa8ca SHA512 c57b46697d3ec0e197e502ea0d99e72f3af1f7ea39c2cdfc76570bb24079918866f3b8a0b6b463eb452a07fd968bc783d258df747f692abbb0cca48e9a56dfd4 +DIST firefox-96.0-gl.xpi 542035 BLAKE2B 18e7fb43c226492a0ac136920ae50e4c0b2442441e00062b532c39aba38b29772c9df115420db4fd143d9da067307165b734afa3a9a200aaba4765043d4fbedd SHA512 cd0b0cf06108a1367ce0668150a93435d9f4bd91534ed2c9ab6234dc8af406121e1154703e775a40b503a3e272ac3639e826f97d2320d800f3292645011fb800 +DIST firefox-96.0-gn.xpi 558954 BLAKE2B b0b4baae851a39141e708f28ebd431be63cb82e631be2414aa9f0eae0971ee5eee37ade5f6edf633d7b20903afc144c6dab2a88e66602c2d58a45d4103fbcb02 SHA512 4fabf58eba7aa550851ff5b97f5ce92c922fea037221b5f3cfe5bfcc88aa8d5acc04b224157591d942c61ae71c1e2475ad8309a655d16ee7dbfcb385448d74f3 +DIST firefox-96.0-gu-IN.xpi 527662 BLAKE2B 740a9bae021cd7db821bf91cc5673120c5e033fdac9d8b1b128d1690368dbf662f53f87698cad0c1ab8eaea07f8cde3c3f754a292d42a01ed435b65b7a4ce680 SHA512 5457cc647f95156e4ebe23abe7894e5170eb80def4a898889696ea5a80037c792dea2764086fa857c475c2e2668467fb64ae5dad48d2823d87e120bd941ac3d9 +DIST firefox-96.0-he.xpi 557089 BLAKE2B 16de6f2ead2d669782b6fe56f9a93d0c808afa9743283665d0d1064dae2d5f96d8f54d519211fcbcb33d74be83986bf31282464e6ef2a5c0e6320dd4a4fbb52c SHA512 dde3618cd33f8aaf22aa2d88f063160783d54085ed54d214631b75dfc7189a07fc2f86a83c1ffc994d7424a1b25831c9a61cb101db23c5e0defc6d7e2b364e31 +DIST firefox-96.0-hi-IN.xpi 558753 BLAKE2B aa337556d9ccb35bc82587cfe6c23bb69610e2adb8beeadc121281b7387c9c07888ebc1be10e8b5b99ebf537ac288b38070fc538a2e54c71aad6095ccff02e7e SHA512 222e23acf2044444512d6b243ac7c77eea367ab17ac95a88f23108e1554b7d4437255b8327eabc0cbc3d0a5ac6324718c4e6f717c00698fe0597ba9f2d8133fb +DIST firefox-96.0-hr.xpi 531744 BLAKE2B ae9a90100017a339b1ccb9584f9831185fbe0ecb70b69ea9dd3d1cf25682b4b63ab58c705f98034244cf3010a20241eab71163eb4f47632a3d36d385c833f91b SHA512 f77bdf213e23105cef495d7ae78a9509f1259c9eef16ee27f4e0513ae99879e46ce2587342e08081bfaf3701fc337f9dfc94b7f5598d253d8495309060cde66f +DIST firefox-96.0-hsb.xpi 563124 BLAKE2B 94245baeabac6eae37ee4905e95b42aa1b2078eee7bd2ae0232ff0eea4731ef3e12bf87087ff4574af8f7ee7adc75f5586eeb737935b79e35d771779d6bc4b95 SHA512 2fbab74ce8c34f696d3cab7fd07d5242c6cdeb92286101bedc996ab0cd6b27370832905e5a911092fc69c99c16003b9d08b250aa825f3a39b790509f4a565564 +DIST firefox-96.0-hu.xpi 566420 BLAKE2B 521fe70a905c4e0a7d0ebc8681b26e36f17d5cfb9f3fb8fd5d25cde8de0434219023c1c002adfdd10dc34a48a1c37b80bd4c6f7b8ee6bfb111fbc33300721a56 SHA512 25006728eb94b5a1f71967a58119ab113fc2d38b3bb4ffc6ea04aadc43864dda4ef381cb9ab77db1500a729d220741c3f27d16302f13322a1955d19f2c2a5c88 +DIST firefox-96.0-hy-AM.xpi 580461 BLAKE2B 6c5492326e0808b8dc008a95df1169742a55289c125a6cbd4361ef2c3580e1a67781bfd4b361d365d29c27fa6a01c6cfc9932d7df0f0ef155dd78323973e5391 SHA512 2815a0524d15439923cabdd4dce33776f828b481c08c1f552df931e5f3d9671294b4d83f273af32f949ae02d029aa91da1a18cd60865c036cee49325e3f20844 +DIST firefox-96.0-ia.xpi 533074 BLAKE2B 81ba6fc03188c6863c949d8a51ce734385de08bc308090b2bc007ae126e2729940ea8367996e488d3b075a74ba941dc85e80c361ec47c8c79d65eb9e88c6f363 SHA512 b0f611716939421c60db212c7c0c37005f90e5c32e77e84b7051784740705525a396ec6c42c65133d856b9389d24c8409575962875d4466866d43cd26576bd2d +DIST firefox-96.0-id.xpi 521708 BLAKE2B d1730be9d85affbf4e70a8149a2adc41de833229a791cfdfc6a5bcd060b384b7a1440aa481b989fcd5d4fe06a810e1dd4f09b9202e001ef9c0165f1133c4f420 SHA512 c0cc7baf60b247a905a460e68dc2179b5cd4b73da4bcbc486a044d865283fa10d71e492cb4a068127b03082d790635202eb3283c55d2f415b75d2f4381e7c55a +DIST firefox-96.0-is.xpi 500006 BLAKE2B fd4db8317add04dcdce51fc2d80f3bfabe7097488684ecd9b3bef574042075eac68d06441636206764308cfd3b466558c70190dec6f8ab7c84a1807e1706711c SHA512 9854d9fc160f63b15e5a6cd42b7447b64f84a458b1b4974fa5e059c7c919c37236b72062656fcf073000888ccff54d76bc937663a44db84f54fb636b9c465c56 +DIST firefox-96.0-it.xpi 460938 BLAKE2B 417e5964e75afa6c0e3d0818a2a07f50d7b3ab665ab70c892c6c958e2c0a7761b1ff046492f87bd1185a0da535bcf5fe1ae77a262bbb919ffed2b80d77c07dd1 SHA512 2e1cd754cb2c56469aa20d94257eb462fd2afc5402abe9f43e0a2dc7e3d0702c3f61d9e2f0f057891719a14a15e9540e8c13e3b5de54978e5cf48db3397c19f2 +DIST firefox-96.0-ja.xpi 586105 BLAKE2B bb4f946f296bcb76f43d9fea3c352e5346c661361a24f1b09ea8e90472c06db629b75e50f5b4c08fb81793b20e9b533e539e0089b9c73c728abdf44292492018 SHA512 b5fc5608cde9f10004a35eb43e7684f854d963bdfc04bd0bc2cd5b329dca6fe4f9945a579513197811641968fd5d57e6aa03aed36994d0c4eca0058304573d51 +DIST firefox-96.0-ka.xpi 590825 BLAKE2B 076958c251faee47f9d1e709f3b01015e76cd8f43a19e352193959a02a3e3ad7fa5de0acb7e75519d9aa6c030b0664697098ee7cf3897799b5b1f605dccf8a4a SHA512 963c5ea4ef1048681303b4591370ad98a2ecc275f6e2a5a2d012e51ec8e7076a28d871fb79660fc8f6d5033ef57276008e82e664c42d10651d5256086ef01a48 +DIST firefox-96.0-kab.xpi 546185 BLAKE2B ec3528154e6e5eaebde777d368c636e7949438d3316df99fdf618bbca99dc88dc2f416b900471ff02caed3b1722e87ebc0688e0f5dc35fe94b7dd81db61cf7d2 SHA512 9570d4a77ba41a61b7cb7e49a5b31269d9cc30304769fe2239b203e0523d690cb0c4d75fdf8b6b4450cc95e759733b2312a2d07acd70bb76e7eb4af7358ee67f +DIST firefox-96.0-kk.xpi 613165 BLAKE2B d503b0b7e1916cab280b1c575e42558110e6da371e60c55e23c55bcc1cb14b18f1c32df61babb68a91a3868d4ee57e8564cf1a40ef2c495b5387bd809ad429f4 SHA512 eceb7f1a8e30e96813e2d210916083d4d89bb818b8979f07d438aa47c3831ca4171231438455937aa460f1905285ac53b356c2116f9807fc80398c94bc2b15d0 +DIST firefox-96.0-km.xpi 529622 BLAKE2B c40141db744b6328fa1abd0b121a85faaa0ecade8802e9c853f941a1df1bb2bc84d5f8ad34c7b78322b8a6c163968075673f8349d38314132c5b65b97f8ae230 SHA512 4b8e8b481d0fac32c92d68ed3714acdb410b589d8eae969405344af33b553d9116e5ecae78af0858b5a51838c963ab9d23ec19be0b4a1ad4ba5a7e01be3f2e71 +DIST firefox-96.0-kn.xpi 495316 BLAKE2B 2f424f6763bf4ad5c776ea071a9a21e100fb6f25854fb70f6d7b0071dd497c836695649f328aa9156e80f598b1633bdd47efbc8d6039eb2ed63bced342683f86 SHA512 f27a41c3bc919d1dc5f3a5040589df16e8f3aaf53e7097f26be25c470d0585eea7b3df548881d2c64095daa047a92b8e6bbea7d48aa2f8afd47b8dfc7dab65c5 +DIST firefox-96.0-ko.xpi 579616 BLAKE2B 5bc6b0ab64525d030668260dc5852a870420874b015ac3aa599d5c71e83bfb4b103e1a8b34cdaa5a1d4b8f0eaef89f4ffa5c999f07a8b22ea0ffb5189737bde1 SHA512 cea3dddc07d06dbfecb86b198e171c71ceb328da9fdf253bbcf4f683688558e7e15957d8d706f3e5c0fd14142cd7359d840daad86fc828daaec97e5069601a21 +DIST firefox-96.0-lij.xpi 469145 BLAKE2B c6ebd5daba31330b3f97d9cda550a99d5658261fe75fe7b484153ae0beba11a9890736a5fca6871da39a5ca665ea7ff21cdb19ef40b533ae4ef5868fd1912604 SHA512 5ac65472099a66b2109407e57d0b5eaaf92ff511a6c26b9f6f24cfac1c567863716eeee9fe13476a8e364247d65024e00972609b43ef4c2395bf6df69d87b8d4 +DIST firefox-96.0-lt.xpi 559296 BLAKE2B 27218f653726e95d554ebf273b94cf00618ef45ab33643dac415320547d7337218595c6179e31543b86b7ffe7bf26626c15bb9c52c1e4ed0031102465a4a135b SHA512 b2c7534aa8d49a6ee38a96f14fb0aeaf6a4b7ee8f1eb8093d517544b912dc12c438d4c25ea4e2ca2ca63b71ff2e4fa283b8cd8c770007e6974e2e7533efabd7c +DIST firefox-96.0-lv.xpi 461297 BLAKE2B 9c27489c7dba27d2277af6c6f08fa8cf064a1755c156bb3d48a1acaf836db1f3161a51718d0122ccdbf4650e1d1adf262236c561fe3c751ffc7d71ea36dc482b SHA512 56b34a8e5cc1447dda605c57b9cc70f41acb93037d3509e09f9e408b0966b31bb810fcfa498277387055273e74eb6a13612075f72352fd412b32d90123281dd9 +DIST firefox-96.0-mk.xpi 463328 BLAKE2B f6648aad3c8935205d42e45739741e36bbfdc5c3cf5ba614922f8eff9193c1b0eeed94bc34cb427dc4f17ffbd5076daa491d2b45426a09bdf664202b43e3d090 SHA512 bd1c9639de77aaa54d3fb790d4a1d4515ac0faf6ab7b766531978056d8c85784aa7e0654780858a9aea1f9b590d6e26a7b58fe2541e368f75c8ad9861b616e48 +DIST firefox-96.0-mr.xpi 530513 BLAKE2B e30a4362ceaa6db1ed1463cc641264672d1722d939a28996dc18324374f13a254ba45c38ad5d659cab56ddabfb52136b255a37a8957b57093adc062d20099725 SHA512 f770de18a0920dc8c57faba9d2f891e2c8f3237d9f058ba5a84371a0fa00666544b681076ddf48182a070c4d4cc758faaadc060f72d7f527fde3549c6e8bfb4e +DIST firefox-96.0-ms.xpi 446399 BLAKE2B 94f95a903ce87e5acc72f3594f9709bb52724fe8c4c7eb775bce63ecc2cc7c818d8174cc60372cc74e2f66f3233b7488866855fde5535401b01d91a51826efdb SHA512 f6fb91019c1d08a0275d3260095af4429d152b4cfca06395698d88acaf9fe5d0f6d7558b52a86f5e4c87e97dd9af3a5566ab7fce748673a13868978e7f64f526 +DIST firefox-96.0-my.xpi 511708 BLAKE2B 3d6b74ef5f5073005dcec8ecd09593f5af9bfaccddb37ce324df9ee94f2d187ba9003e6766d333050ce121df3a2e75bd333f53bc187f30084728a775d866a076 SHA512 9096b96c5098ed415cf254feb9ceb6e1a361df83d18fa3abdbfcd241184712f260d6eae0192ea16613e5727a8cc0b593a0ac00124f8d8d61051bd6f50320d31e +DIST firefox-96.0-nb-NO.xpi 529011 BLAKE2B bd6eee383cb7695c802c239dc1a50277c597f4e5dcd3742ca768cba4f2e6faa5ad0a4900e25fab86101d8bce1def707471500a0d2d1b6a6d86475088e1958aee SHA512 cd3b94ce6b81ee807aaa93e22b2e662cb18c7a615e2f1c884298c0691ef4fd023efc129dd9439fd5c764d140224d7e644b9a4ca71343823b461b2ce64a20b88d +DIST firefox-96.0-ne-NP.xpi 482345 BLAKE2B 52165c67010938f50ef1fbc94da6f88e0bbc0378a96d489537984ca9135242ddeb790f86a4f44cde88f14f95aa44274ff7a260137cde4b518a6bf6f9df8eecbe SHA512 a8076672b8eb27d6de823ea30f33e984106393f6a565b0e79942cbb626b4a11507d82c513f6eafa646555e17912be3c3713921970c28ddacef033d5b211bf7e3 +DIST firefox-96.0-nl.xpi 538019 BLAKE2B a984d4b76281d7ba1e4086889c2c0a799fa53d151961a0fbece962026badf890c6d17dabc9aaeb10ccb5cbea4fa60a87c71b6372e59b2dca043a355e119a44a5 SHA512 99e0a29e552d02b5feccb46614eaa20f5cd61154c8880b07eebaaba0526605883d3ccf06097c23d30bf425aa05a43902ca20967dc8c22eab5bc9aeeb9729e8a5 +DIST firefox-96.0-nn-NO.xpi 531116 BLAKE2B 5c758b992fc8c3077b54be0cffffc802a384f021da104f74e4665c2e3a1ee5d567e0e22a7d664a54c62611e0a6b96ea916579e6b748deac726c115e784c4cbda SHA512 2aec82304ab8542268c0a83cc2ad45bbb84f81d394eee1fa774f2cbb92e68ddb91de9d99942ce18f118aadc9abdbe8605f61be0cd9bc1eb0e7cb31c7178651cf +DIST firefox-96.0-oc.xpi 553576 BLAKE2B 3536b2bd2dbe6ff6a6f65c24de970547025af616a88bfee5847566cf496ab13c31df05ec759e55341f3d9b2c901cbef15dfcd13c72666aac479acdeb7651c31e SHA512 17f1aa36eb27b640da574308a2eb1a6b616b5789995eeb4e9199ffe7fa46bfb68ed59592f7cea9612fb44ed2034ab119ce59a695df33dd1727f79cbd1506e759 +DIST firefox-96.0-pa-IN.xpi 593686 BLAKE2B 2b1790bdc63483bd0e4c7ac1230cdd309fde0c88efc2061c437dd5b6f1126cc2c49f16559b1d709bd530861fba858aa7322ef915cf5b60a638e52b2ffb4747d5 SHA512 5d56af3b701da67f2f1592d0c1e793c6e251c1ee66e7fa45cacf1a16605234ccb4d1f2283f9fb44944e5a2cde1b2730398dbd41c538b3b69abfb31e7ecbc5cae +DIST firefox-96.0-pl.xpi 556872 BLAKE2B 77512f683b19e84458ac52e70499bb037920be10962d0bfd2e0f49d4ddea865f816a22977ae9ac3b8110b9450fab424abcf7943bf03d7b13d068a1ea1b986f4c SHA512 5439450f180a8e47550247b1172fe0000a752af51dca10cf54524576c204212bed0265873d778dbc0021da519c8b17fe15352dab57ad9d25017e8d3552061795 +DIST firefox-96.0-pt-BR.xpi 543359 BLAKE2B 807a07b699d90e0b8fae7682e1db60af68b20d6913c08d25e4d9d4b4fbd0872d07b115374e0926d3cb0d95f8bcbef38b0dd1e3a7cd7d420a7724dd7832680253 SHA512 92f90efd558addc226d0344b79d8ddd100a9ba7ea613e88eb5bef1e96953896f7e9b912387fdae4c5ffcc8c556067baa013cc290974e6664ea1e15c40e21ffe2 +DIST firefox-96.0-pt-PT.xpi 545098 BLAKE2B 8beec8bc18fdc9a08e15ce3a4dde82bf6a62f984b4126ff5d7410994bdc8fc76f27c5b92685781b9ed3873a7c2798f698c622cb623a3a7e64be8c4740aa8905a SHA512 9b06ac16e29b9573aa365a1a0d639068ebbb6579354f3d03653d8f858f9dae60b114b7a85418eefbaa4adbdafe2b2ef9cb353249640a15c6c7868e6364988667 +DIST firefox-96.0-rm.xpi 536759 BLAKE2B 114666d3eb20bc889f45aa22ee89e970f7f84b67ad7da7bdcc040442b79f2dea60ddfb9297a626dfdf16b76dd0fbcdec501b5c91976f25a67253c80ce253eecc SHA512 c32c2393000a76882c0ceddb458869e5e04d3a1868282bf125430990b4d43f11795ac4a77c2c96fb8e3aafc9bee9fcd1c8df40fdf6406fa94969f3801f9f68ac +DIST firefox-96.0-ro.xpi 529764 BLAKE2B a8a26ca4082159d1e79a9b408dc7cd14990d61e2a914de924a47ca5156581abb70062d7fcba7680e08eec8b96c08d771f990c8fa65cfa7a5b865437106a534de SHA512 e86f49f93c61b3a73633ce8d6a3ec1f8e699f6fb94edd8358b9e56066e3c9d56a40a31c2adde1cef4871eb45e858ef4cf9f360a78e9573ea38455f397f674fa0 +DIST firefox-96.0-ru.xpi 627602 BLAKE2B 559a7ca48058cc88cb95dab144b55b0d9b4ee76e97cfaf15a4af6328cb69040482f7e5849943ad0ad72cb67c7e7b34b9de99b82490568daf591ecd3b4e427baf SHA512 41bafdb582242647c5a8962c22a4828b6b219f1038b809fd7731281802f3bfc97e8557686ac20532709b8dff405ed61fb9e474e09db9d51aa7f75e55df70a8b2 +DIST firefox-96.0-sco.xpi 503461 BLAKE2B 227105a5721a382f3338119a0828e6d00590d9f21772ea8b9fa0e6396f98048214bf2e6395554ce38433f7384c7091e0eb62ed0451e3c9e5d86b52ed6f172f5e SHA512 dfad860ea018f3900c52a0f1d3d57a37c4145ec899a3eafdae7d4a3a2e88df33d7f8a10dbb6dcf02e563a069d7518e18199fb44636d1e969c9b828be377a8d8c +DIST firefox-96.0-si.xpi 484749 BLAKE2B 4323a5c9b22fc330cbeb014a330f929d2e0e12afb3025724e49993e9a4d06e820a40ba73c345251742001b8cbee66884ef72d0def85cb3782cfc6964a9ce5a4b SHA512 a55ebe4ef2c4264ae1568285d885164eeda8e292dc47a09cfb46fa14653efcff1a504c7a0a5e967aa371cda339e31b7f07b362d644f8c4613320aaa383cc65c8 +DIST firefox-96.0-sk.xpi 567146 BLAKE2B 65b055532b0e2c97726b223c0113e80ecc17daf1e3a6b8a26e9a7c1c0cb5816677d1ad9612fc8642cdb262ba70dbbb8d99c6b19f71293a19aae47a13fa57854e SHA512 64c58d50223840f1c3cd822c60fc97dc5bae3cf4e6b63fead6f66125c4d361ac57719c9802a4b381e6a7ffaac8ae074a9026a76f773356abd7da0b22bc18fc48 +DIST firefox-96.0-sl.xpi 537521 BLAKE2B 69f1c3ecd8e48726caa38453def6c2eb92245ca4a9b429ac423ad94e880200ddf2388b3ec41984f8ee9f0e5ef498a9d6c03d40727f8af01640f3de2ba0c0cd13 SHA512 d83b281e3613e780391c7613d312de26a35c9af09091580b9c7ed0b9372ece7394f8e09c96ee907beb0d2aff338d8d10a97c9714f2e9e871278202637570f64b +DIST firefox-96.0-son.xpi 420865 BLAKE2B f31bb3db5a079fd7c1b47c832ad50925edd8057ed7243ce29906c681d7d5e682dae125b4b3b666e6c38b643b7ea88176f8ade9201ac3e13d4b902ec47adffb61 SHA512 b1983cd3f695a609decc58a00a81aba1395d1763f9a0a07bb9f237908e7b0ce5ef4ec19aaa696f4da377e02b39fc6c5fa6c54f38c01f2c8dd9dc3e28b954354b +DIST firefox-96.0-sq.xpi 555352 BLAKE2B 2595066eb78035caa8ad6da37dc3266916c6ba545bad95caa9fcd93cdb39022ec15a43f51d5bc6600b8d1173a08965b3a5add023ee5e3d553b9518d4dc04cc1a SHA512 83c36347d67abfbf50f9cb242986b524c6456964024c0564e0464881181eb7630146480df6804bf2caa198f18306ffcc5922189f083c3f9222cc5e71e96fc14d +DIST firefox-96.0-sr.xpi 585962 BLAKE2B cbff0a131c59d2e9b87249c5c500c52d910f81b58b6ff8b9012b2d5fdec0028e5cff0dbaea306e60dd460e678897f97835b8f4ca9ff51fab311b16f2d1da9c8a SHA512 88540a0ac11d9beeaf958586000012a963022ebe2627607a1824a5891ddfe6ea04ed36481cd9500271c7b0341b49c15fc4888917fad7ee9b94e0d8005eb6a480 +DIST firefox-96.0-sv-SE.xpi 540645 BLAKE2B 649fe836fa34fc97a615975bff087a1ceefa1ddc8c78530ffddd8604c30438786d10b67daadb2ea09bb0a550ef347b516874f75e2224d0927b6de0e40e324bc0 SHA512 1dd36ed016325227827efc3f051cf380fb85e4c5ea147acddcd7d2fe00604e88942440410e99776a4a6cd8035c122956f8860c41148b23fd56fcf7c1a72c42e5 +DIST firefox-96.0-szl.xpi 507895 BLAKE2B 9d29247de0fdf6a7d1f35364d5e91bca0c47c68031bbd3aa08a611699441a089b88d587094aae5e2778d7eeffbe7d36ed0d486535ef41975e29820273b31997b SHA512 238680d073c56fc5aae70518fb35b270dc23c3390fa2a2f563d40e2a320b218451fd7665ea03b7f459871d6025e8a8ac5532e1fad6b221a3da389579baabd9b8 +DIST firefox-96.0-ta.xpi 510848 BLAKE2B b6bdda3488b31909de67583845fe18a205dec0256b4111460aae496bd3e9917ddd5da40d56c6a30792fae95763e0185a2740fef8b4d3bd67fd236374cac84295 SHA512 51ea7858f130deb50ba48b0ca46289badeca238b019788a7d97b112e694054b36e38738c94ce3d711a6bb89e5fb062106ef913c57b320e5184ab6c55be5b1236 +DIST firefox-96.0-te.xpi 549262 BLAKE2B ed92cf1b24bea1d6c30a8419ae7e24e75350de166838ea1448504e62b679a97e8e81de22d1eafc778cc07aba76d44f8387e591e94b0289b5160818c4003767c2 SHA512 47a45b4f6d125182e698d60242d11a65b4cb0be3fd828970e62942d7397366ee5178268e118a7c414503d00aa325115e8bf80da1dafc5ebe95a9d1b4102d4f7c +DIST firefox-96.0-th.xpi 605805 BLAKE2B 844f3d8beb152b3b0d4a40ed25591b26514815fbb17a8b9a9ba8f2eeb6f799739ad3c2584a140a82f25561a78248731e60986844d80ffa994a600445246c4ae3 SHA512 771e7a0910b5d7e0f59e52682341f3fa104bbc54c8dd2db243389aac4eec6442bca34494e44901d42709aed0d3a8a6372365eb9575298990574706b00dd437e1 +DIST firefox-96.0-tl.xpi 519510 BLAKE2B 84748cb850aff2851d682485c505e59ede291b6c923f86344169febe39f79ca87496638835aa20e0a413dc6febd0c3fb8473366b61eb012117deef055dca7157 SHA512 1cc6212d3e58fbad81db0f6741ce0d4a7764dbdc71e157afff7e58733efcd2ee7c0c167eee330aca59e1bb090844f3f088bbc5049b07ea354cdfb3d2dd9c5d44 +DIST firefox-96.0-tr.xpi 553351 BLAKE2B cbb75ea274c3327f80d584ef057a792e4c64b0db6a1357edf90b3908d9fd374e8c81bc86aa1d96f8d82d59ad2f935ba7757677793685e4f37c0dc38ff3e164d2 SHA512 1df45a8a6a7a3dfbdf4083c87e50fd171ccf5f2985a6062efe62460d8d2f674d574948b98de3036707dbe9e100633c57cc67d93a97e42707c1845d5e121f3db5 +DIST firefox-96.0-trs.xpi 490081 BLAKE2B c723fc566e2cff78c7b09874b0fa654fc2e202a848d43acd409c4b62f89c9bd354a45c81ac05dfb7cd63a6ad78895443ee9ab476da955f70c0a0b438d4759fb2 SHA512 8cb73cbde0d228c5271dc4e0bcab6cd5d987f0587ac1bdd436cedff60830f03d7f73eab7ff8a29dfc6796ff49ebf29516e42fb8e70aeb3a3d61dfe13d2455168 +DIST firefox-96.0-uk.xpi 621210 BLAKE2B cefa4d0ba023caca862a97e534e3199ea5738af824a4b5b57dc10f38dc86c28f84391aad9d5962b0ffaa036af7c57fa3086ca671ac86bd828705412252997bf8 SHA512 5e1191d645461b33ac2b71a2fc693b78b4c068fbd9716de9c19569305b3bdb369d467c48f6a522a6da882b30ff4371b9a718a2b54c209e35a5f8414f64f43a99 +DIST firefox-96.0-ur.xpi 556310 BLAKE2B 15b14a7a9aff165b3b467d26c072211b36960df62a4c6c5701b731e0ddfcaccf1766b281af8ecf70e21df85b8f52b06139a172378d688cb9017818a6ee43d0ed SHA512 e78b000c7fe7ece729b91003414b2a17b4281520c94bbd56d5563c116a9d9d5397a28ed8655483b2a3a14ea3c9fcc1f2ebee37c54a0966e679214dd59c0037b0 +DIST firefox-96.0-uz.xpi 464800 BLAKE2B ebe537d8af3fa09e51fe8a22f911203d72eaedff1e0308c2449ddeba16748b2ae10458515d7ab9ca248b9845e14cff11c2e4136f90abe2b9e2e2cb2372dcfeed SHA512 8a799a7fab890d57a6be8c8bb884ae9ebb399db9d2ac3c6c1eb90691df895536d24c29f4058c426e5173d321ee9be217b4fca5f656b3baaf39463515555ecbfe +DIST firefox-96.0-vi.xpi 572934 BLAKE2B cd4e9dd0222cd02d0f2a11994aa6f113cb2545e429c9ad16a7505af61d20cfb8664ab0fb38a6ca3628cc9e2011201cc8fe9a1e936abe96f3f856cb42e34de334 SHA512 8838a439cd8b8b5aca214484dc47daa38c74d0a0e563be7ddfc39c59cad724132ddfc1c166bd1d5dab98d7770869516bd2f58973b8b683b50aef2fdf4be0101c +DIST firefox-96.0-xh.xpi 423438 BLAKE2B 9359768c03fce8fe1131f3263fdec7df40ad08b38a51c053d49daff715e80ba4c9e9ab04d16283d453c198cf962d2c4452192fd597f96a1a8916a9b20af701a1 SHA512 0e2e8caffd68133f67fe38aac1575c86cd2c08012b8a62c22d7706dc3970af8b0e1fb65818e777829c10b2227d2effe76d9413cb70504f3cd369bc6decda802b +DIST firefox-96.0-zh-CN.xpi 575685 BLAKE2B 2eef7b7396901340cb4a207052168cb537081ea0a4a88011720ce5560bc2b26a25680dead37e26279a877982c323fc4f58eed83ee83ade894a640cabab344364 SHA512 c7e3c00ec26d3114e4ddae2b50adab0e64cf8b8d1fccb99909c53da0a2ee1b36aa6f1fa6fe04119e9f80e6dbb944cbcd34f5e291d3d910dd9a7e46c524648719 +DIST firefox-96.0-zh-TW.xpi 576803 BLAKE2B d664c86e6760cb5b782986765b738a0136548b9b13837dc7f0ecf647e2a3202d4af96f6d21a8b96493aea5236c2237d771000993f724f8a1437f2dca2937c17d SHA512 746e3fa4c218f88c749729b9c826b02f79259ebc90d1b52b9f6ce87aa7368fea407da0dd93fe7d0e38eeaa41fc634e03c4ec4081c9ebd26c4e23599e99a203e4 +DIST firefox-96.0.source.tar.xz 410165944 BLAKE2B 2105caab3f89cf2400fe58e90c280d45d99012aac244e8d3d1c48f69f4976fbd9bdd4467675a4e5f818f3ae2c28662321762495f9de485180e4aa63b6d89cdd6 SHA512 39f553474537eb4e521f4182e38f0ddff039fa6b40b939d461937d2cef27f7182097b478f08f90d64fdcbe9c063e78f14f6863a8a82a16207ec7a1d3fdfda4ff diff --git a/www-client/firefox/firefox-96.0.ebuild b/www-client/firefox/firefox-96.0.ebuild new file mode 100644 index 00000000..4cdf4709 --- /dev/null +++ b/www-client/firefox/firefox-96.0.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-69.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 +} |