diff options
author | Joonas Niilola <juippis@gentoo.org> | 2023-08-17 12:16:34 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2023-08-17 12:16:34 +0300 |
commit | 8282ad68d79e95724306dfd4cd597c5bab7b71d3 (patch) | |
tree | 3dc28a92485ca5d0e73c6e90d30285573d441829 /www-client | |
parent | sci-physics/pythia: update SRC_URI (diff) | |
download | gentoo-8282ad68d79e95724306dfd4cd597c5bab7b71d3.tar.gz gentoo-8282ad68d79e95724306dfd4cd597c5bab7b71d3.tar.bz2 gentoo-8282ad68d79e95724306dfd4cd597c5bab7b71d3.zip |
www-client/firefox: add 116.0.3
- include latest upstream vaapi/hwdec patches from upcoming 117 and
118 releases.
Closes: https://bugs.gentoo.org/911941
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/firefox/Manifest | 101 | ||||
-rw-r--r-- | www-client/firefox/firefox-116.0.3.ebuild | 1466 |
2 files changed, 1567 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index aa2d183d22b3..12569d99036f 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -297,6 +297,7 @@ DIST firefox-115.1.0esr-zh-TW.xpi 597818 BLAKE2B e56d1306d9a0ca2638d6ff3ef5c8553 DIST firefox-115.1.0esr.source.tar.xz 507060904 BLAKE2B 4da0535e05e193d0d7509790f3a6b0f8dd4dd809bdfab14da357ef06ce2b665d89a5620994393d6bdbe6a8fba1db55157063b7760fdd2e75f2bddca86f9992b4 SHA512 b2abb706fef2f1aa9451e7ac7c2affa0cc92cf2b0c6629f106a94c62017476380c7b6f406861fa468f60ea898d8402f534ad74844eb3932741fbd981cec66592 DIST firefox-115esr-patches-04.tar.xz 14608 BLAKE2B 78143b2ed2f0c71bef84c26ebbb9f29912e6d8bb2f513cf95f5d97203efb556cb339bbb1f61666300786eb5b1f93294816481a0396bd8acc497c9f51b138376a SHA512 f6b07b9f94a79c766b864c4f73044dfd6aea5faf16e742202ca78f4f6e0399a71fc3dcf4d40d4dd67d3f13612c26a5e1a5f845e6892901c0ee6168aabf131f79 DIST firefox-116-patches-03.tar.xz 24768 BLAKE2B b62547c1ca9230bf1f6a0474743e695c8e6f4cbcc7d2d23ee983a95ff38af4483881a59f90cf0035660a223457dede19c984f4c5bda2528a23dd2d7d25b5b22b SHA512 f69eafd5a0f07a91baaaeb141a2110077e627f3e3d34db69e9fd45de9044ce8e84dd183920799cb2714ab74acafe159c7275b85b4f778b4502fb2bcaecefa175 +DIST firefox-116-patches-04.tar.xz 28448 BLAKE2B 542af3d9dfd02a7d89157afd66e13984f7e4c3073eb560eb76872eccb183cc61f46b8304dabc24218693016eb94c4050e4042f9dd48471a900fdda2ec1545ef0 SHA512 61653fd8cdd9815c5c3c95b9ca45655822d318e81cad2c45cd166c5fab88ec1c6232ed3b54bd47b6bbd0971f5be9c9025947bdf4d46b97598005d503262bc383 DIST firefox-116.0-ach.xpi 440323 BLAKE2B 56d55907cde8e61f0be7c4e880d9548e0f9660f465d33fb61afaa50d1b440bdec76a9a6091885edb58677335941c3755f240c99a0937113003c7ec07a2306695 SHA512 7672d3ab4f5fb6adc14830ac99d3e704b3391e392ce6af3e97375ada2ad675caf5ea1d0b42d311e3fc0a1628ada8c76284d38aeed74c89aee05cbc4c29e3502c DIST firefox-116.0-af.xpi 401616 BLAKE2B 9115ce0800aefdb2184556fb92f3a1ee28ab82dc0c77c8b913ca7933253a4ab7f478016ac38e063c20479235a8341fcae4bdd35eac713d0720b4343dd862e59c SHA512 4e8569dac354d5b899cd7e38552d5281045bf2b2dbd7dcd8861d5a48169aef8e0a9b12a251f976006d8833a23d32391adeee27986de6d3eddd101001ea6dbf88 DIST firefox-116.0-an.xpi 482309 BLAKE2B aeeff77edd86406fbb613696043dfbd080bf1ccb8717ee9d1fe65f338dd26d251a9417b4c5461a9466c905cad888dca03761e123a409f87257a0d6bfea32fa92 SHA512 b79674baccdb978697993c403f1a4ab514e570829962159443a351982e360d62ddb91575dc4eecdda8755623746fc82f916286b8ce3f002be2e78f058e8e1205 @@ -396,4 +397,104 @@ DIST firefox-116.0-vi.xpi 596611 BLAKE2B e282057e43e821ccdcae2c11c4966fc403d45c9 DIST firefox-116.0-xh.xpi 401650 BLAKE2B dce3add055f8e5ca785c05b1b110980668d11e0b4d3cc26569aec77b84441c992e4f8e4e55bb804561aa2e230ae5d6875ed85d9acc45b0ddc3f5423133bd33cd SHA512 e4a466326376e785587faa0497501e1bf0e8cb235027ba0144047eebd2e62defc60990050c7b8bd490dd539439a2485b2ab793c84c4e8dfddcdaf5dd425dd09f DIST firefox-116.0-zh-CN.xpi 596066 BLAKE2B 133b239fd1cad0d5e7db5b0f861a9afda6abba16238149d2055f66f07aecc9b23959edc5e43bea0c7f00798bbd3efccbc47c1b74fff263e6490e4f55fc43908e SHA512 427a1e063e986503fae1849cec5124158237526a4a265e616235e77984343e883936ff1569b198a6ec20a5d48cb19b5edf12976ddc3c8a69e598acecd494976a DIST firefox-116.0-zh-TW.xpi 598593 BLAKE2B 6633c9ffbfa988f1345c67e3b4cea06bf90714ea6960f12f6beef3c5cd2fb085f0a27a5cf2addab28e645e156bf0f518faaab4be63e3603210b916275f0d1c1d SHA512 c3f901183ab89bb8e01034dc328522163d131dd847be330ea099018bfb32abcbdd748bfd8763079605ee4b3cc0c65b3fd7a39fc853fa3b93b25dcd32d74d7641 +DIST firefox-116.0.3-ach.xpi 440326 BLAKE2B 56cc69127cd3b8abe717bc2a6636dd41ef76fa8e0cf69fdca067bdf14bd9926584207383e040c7eef527ae7be3f0f05f0a30b608550f6432bd3d46cb98a06a8c SHA512 4d45e59a30d7fd47366c3102472a15fd385ce9d1ff314eb91df45f0683d319a9ea0b9c6fbc261015f017f1c30728a6e6b3a8da9d49b7972abc0350d604fa5672 +DIST firefox-116.0.3-af.xpi 401615 BLAKE2B f3f77e3b4476525bc25c9fde7570afc28c62072ea7f3e3c44e0afd2619762eff5563d4ede3b99a4ffdc328eef4375245e405ba2499841f56291485d423dd6755 SHA512 a4ae9689730d18a039b849a5e19c06821a36b59db89d838f0dbec5fbb75c8b17578cc5ba162d1b0976c7d770df352d6619a6660d2f9d372d222e99179888a3ca +DIST firefox-116.0.3-an.xpi 482299 BLAKE2B a793e3d151b8b475599b3e929109571a32a7a839cf5800dc160a3fcf9ae60f660ce644e7062be4037f2719a44df0bd5e65a538a6064a385b5fa05b8f07b2dfae SHA512 fef7b7064e8516e92ad1c67aa8e37a2470de830d9716127e6bfe1afc2a58148e86a632fb841920b038ffeccd99bbf803c1123ed219d2c72e0ed07c843a7e9641 +DIST firefox-116.0.3-ar.xpi 549034 BLAKE2B 59fe6248489d1656759a50bcab7322f74a89805a742834b417b477855f0b0f60febcd2784f12ee9761cf03add3588d971b33043ef870292e7ec51721d8296e46 SHA512 7491c0efd5e29699e6fb7def53d2b27a8df91ec44c44f5fa5dd9c57643746ffbf80eaddd451ca1e449c8030a6e85b0c84ee9c7cf656453c61a6266c6ee8ef313 +DIST firefox-116.0.3-ast.xpi 476771 BLAKE2B be7af8de78cd91c678733df85836ee932783d735df513922fc6d7ab8fb14f256a9a9f1f50f33e6c4944f068efe965402531ec628645758f8904e2db4903f0cb2 SHA512 08878c5044f0d62463f9a5f28142bd20713d4aee27e2b72dcf01df106134b7b612fc37b18d04452f34f46b4d4452b649f82a746889fad9661b1595f780e6ae3a +DIST firefox-116.0.3-az.xpi 470081 BLAKE2B c9aeb606676a7a7e102b5f351c6ecd245b9261d2f3be741dcdb98a4b5fdda3199ee8085f2eb7b1aaa85cd69acdae55303952a4116208c1828597408bf8fd6b23 SHA512 1476a57088b5b8106bfeca3cf047552e44fe3d8ecb09c377b84f86fd7215926d5a8b798fd46fa72333cbca5337ef210d83097c5f04d2f862514bd1e8d338f8b5 +DIST firefox-116.0.3-be.xpi 647172 BLAKE2B 4eef46ef48eb8c74f7689013ec56d46b653353e24068c1df92f8325b5bbd20ec22fe38ab566a1989b15843006f0ac771a368058da4323153e7b2c7663a12b557 SHA512 b8a82d48fe4230c630518d94e1d94c5ad3ef6b5f309632bc55d7d3439bd371587897979117c249cbd95c7eee0a44818ecb47c227f6e0e5ec945ffcfcbcb91921 +DIST firefox-116.0.3-bg.xpi 563683 BLAKE2B 7e2487f19f39de9ddf09bf4615caf80dc3ed14a6084b4920475195ea839d7c53e9a64907418687daefdf227de6d6f54e11dd957c4793519ccbfdae3bd7a7e92d SHA512 a605d56f963f99ccb1e2b5d1f58ce3d03a2d010569b6fc802a88e102442924e13b0a7a2b48c60c288f02ab460a6672c471a06fae45eefeca93b328ad4c0c975c +DIST firefox-116.0.3-bn.xpi 557961 BLAKE2B 6b300d8d48d1309051f70232fbc202b05f4f0a8339fe4fa657f51213596a2691a9a790d70d09547936e258437624e71c96db39b3892a186561a38ecf80685bdc SHA512 17fa0b41742d853ca0d65982c96d8c382df81605a857a3d9b74cb8226114b7930da02d71d81e09fc9c855a22cf7e46615c0df460bc959168a08e9dd8548e4a7f +DIST firefox-116.0.3-br.xpi 533892 BLAKE2B ed3d3526945b53c6d3f94f07a5a8af222cf7ed6006a0264733cf04d305d15bbead574926f0861e16db9363250d38cfd041a3f8eb4516e543a25ce5db2d430262 SHA512 06c70ebd1f42a2fb5b083d5c20499e95cecb64db05f3a69c764d19b2d29e9e81efad32247841f251da0b6d3ce4297dad2b580563453a17e15bc51193ab7cd35a +DIST firefox-116.0.3-bs.xpi 440601 BLAKE2B 6335ec28e6117fe297e60795f5251e0980afeaa01ce71ca0d4930cbcc6fa9b00df744f15e5b40da567afa3f04e693a431131eea07509b1fb6f5c02031f20bd3c SHA512 d194a41f30deaba93909cae8f051b5565ef2ca97be9157bc2b304562894c6824474978d9dd4f7b3ddfab0baa6997d5318b1c78580c0e9e4b1a3b4172acbe4680 +DIST firefox-116.0.3-ca-valencia.xpi 521443 BLAKE2B 2c48ee8536e2d71f0f9a37a383c7ceffa2a7a516b1465a9ff6237563f1b67e173dafc8607791b2979eb164aa34ca5040b7e28ce87e920ef90b88ca7e9bf2a525 SHA512 4adfdc2b51d9dfb6bef56bcc64cb0acf3d3f764150c468390fd55b1ae17a9454c7e3bb1c915c1dcce17aefe182ab06cbaaea2ab78b6ba9d5560598bce9ad1c4c +DIST firefox-116.0.3-ca.xpi 544950 BLAKE2B 2f81af8e51c9150f96b000b20df3fbfc1897e39a11c4715ac6ff46fcf8763c12b3d1c735e667a15a5a374406af82c0d9186befe2d43552fef97477a8c5523ad2 SHA512 e4aff6168eae6f5b4523d598e43abd53f3f7523804d9698a8a142b7f214a378eb310d7725d91e0bb154738fa4f323de58801039d05d3ac98de9b861c176486aa +DIST firefox-116.0.3-cak.xpi 564109 BLAKE2B df9a89d67edbc7f23e542198c2de0de87072a3a1a03f96b2a3eb3c675166c259f5496c5c5b553df8e06d9c1234f15b4f1bcd52688794afca53c3de9e8abcfef4 SHA512 f37d5213f4422d510cd8491fd5abf0fd433df807c68d5c4d3e99626cb25ea8ec3dbb795b7e648b8c0711d0d1be235f9cd3d00944e21d146b0aae571a9483b09c +DIST firefox-116.0.3-cs.xpi 592436 BLAKE2B 1ee91b71e5312b27dd7671f07b13b7cf4efb0a97a4ff0982703a7253c1ecaeaa2340e0a06f93caabf689a3064466beaa0a9d0e123e2b7d3a7b862d631f41bcf6 SHA512 55a143c77105d46661e284514a4c21980d6a03a3eba0ca2c5384d4116b13df997cc36fea2af0d2d9c9d539b9515c25f6f4abb987f37972794247769072f34717 +DIST firefox-116.0.3-cy.xpi 565918 BLAKE2B b1e3f857183fc3ad671a102c208bef5cb7dfbb353b982956e404cf149897ccf848ffd8beb0e34da25bbc35a3b864993ea3df14eefe7bec44dcd7044750dc73d0 SHA512 3030404afaabc3ba28d5e41cccc0c0fde6c1065c09bde2737bd14028e8f200eff82381b5afb1836e7c7c94e622cea0749b3b649f18b3e6c55c4e8099fb8e33bc +DIST firefox-116.0.3-da.xpi 553382 BLAKE2B 55d9860bd2d92eb7254cba51ab22241f666b5b28c761d6bebd687a471bc1b00a42c1dc9af7ef4fb3654a8ed030b6ff75e183466e39b07f44cba628f32013842e SHA512 2aa23ac68451d4325612fd09080dfcf1b85832cb7c468c2c09213cb2a6dc8964f95a402415bca11740647ab8ac44c7e4ab63915380d1b82c93af45547e75c05d +DIST firefox-116.0.3-de.xpi 574188 BLAKE2B 349f2fd0bb18273987772fd726520155d90b7fe2f1f6b9b3112fea3f781449a693ef0663c92affdb3cedc198bf3291dd6ec6d9fa34d926928994e2606359e093 SHA512 62a6e9dd015f88e834d64dfab061800ea1a4d689d350673678c363afd190f9a1e5ec47fb84780203a20759c60f9c95d7bec938bd858b6e625655edd6114ab495 +DIST firefox-116.0.3-dsb.xpi 589660 BLAKE2B 3326dad19953422b920acafd900de357695fbb6eb6d3d49b5a932d8636a97b46fef29ce0ca27b32ad29f50ce6405a8e9c2f8440df416c47f34cb8ce262f8f6ed SHA512 39862959c28003d13cf1f594c37011fbf8236c732b7070658c55cf74017c146ddd4032fd33c4774e10e6d2084b17882f2427afca5f4e18c8f50f075c5ab3435e +DIST firefox-116.0.3-el.xpi 663124 BLAKE2B f637710e22a0cd04853e60465acd95d9e5e61eb8ad8a981f2e01d0e9ccb73bbb9f0f1ec5f7e7bdb85854c2fc1b4e352a4dc7bf19fe748cec17fa79babd667daa SHA512 c7628fbe978d0e5256f53abe976e579fa334058b6d43bf8ca95ff248894aadc6fa464187dd06bd8df3f1473b067a2ee515ed70e75a292612f78f40278ab2ae00 +DIST firefox-116.0.3-en-CA.xpi 518977 BLAKE2B ed4826f6fcd3e0cffe08c7c73efba1dfea47ebbc0937405991ceea736117131da3a84157623f620f4fc1715a729574e8e1b04588d4d726f86dcd8ad1f72f2b21 SHA512 14ab9d9f19164d873184497160df877e9e7d0d2e6100e1fecf8919e3b50b628b356a3aafdee172da323847136f4f823eb1b165341fd06ae95b6edfdc3dcbc377 +DIST firefox-116.0.3-en-GB.xpi 531554 BLAKE2B 4fbc3a14ecb4b17ade7465d37fc02f7456439a0368b2cce46e7d792e6c8783efd819c723a52d79046cda15ef4ebd9eef84b65d87fa9a94e244de7e7c93afca6b SHA512 123e2e3c15c6e32d3eba1204b50bbd191bf7a92eaa3bc47f6bf9d64546c790729ebae977fdcaa95c8e50aa3c295e89a06c260912b60f629b7a4322d0c4686396 +DIST firefox-116.0.3-eo.xpi 555847 BLAKE2B 4097ed5b9d85578fcb4773ace700b4e462c352fafade9bb43ea1cb3356a63f5d6121cda1fc36c9cb874a8457f5b95fbf4b93e743c86bf9b650a1ffdfb5e69276 SHA512 0d5d277cb01edaa9c2bbcc3237ca9b11897323841df5c136b49dc4e4f172b1a3becb18dfa15f164cd4c4e2ccf12ae3becfdf7b5abf0176e0a88bde6e0da398af +DIST firefox-116.0.3-es-AR.xpi 569187 BLAKE2B 99e4986ef765eeff3728583de256d508ff73936b620f0c406376659a6fb241c71dff3c68b1da3d6528cb49dee1c39fb25597ad6280944e2361f9ef2992a031ba SHA512 bb710bf949ef56f15c7adf324f910320caef89aac96fe2e567158aad03e4135b1fc043e321e01e99e4a364bb83e2914c0ce42be22ed2e00461de342ed8f00d23 +DIST firefox-116.0.3-es-CL.xpi 568875 BLAKE2B d2c62df5ac891f76dca6b571f0ef351bfca5451d2a1800b293809bff844d2f0a3bc3727421d1385255f7064c611b24e9bf356dbe8671ecee026cf5d4d1afe391 SHA512 20ded969dfd5623af4508fa33a3824e5407f8f69660f2ace1352fdb86eed20b8e921ced43db5ed4822582d2b2a9232c94358c183ca571a159c7f367032e6f371 +DIST firefox-116.0.3-es-ES.xpi 561400 BLAKE2B f7ead7be38cac6d9c85ef47d0f60497991f65697bc290f2175413567df7613f118406d55d2afd6fb4586546d7052bfd25ff0678c19e9288029cdfc92fa704415 SHA512 9714765397a4ef7364d0adea995e6fefadce51a3d3736268a3a4bf8d89fc168c59e6e63a9ac7208a403835573a0e0bf6f884e41269e4e133c805da44e0229bc7 +DIST firefox-116.0.3-es-MX.xpi 564993 BLAKE2B 265fb958b429f11f0ee2d076879e60b7f6863dbb0def6a51a218f703daf4910ce36782824c96b89a3b8df6336f45d438855771d36561c0877374a9a78640a09d SHA512 8c3905dceb6ac72c7529c287411f945e2552ffc417cbb949ac1c0ca2bc6aa161aa9c855836993937aed9bcd2ee7edee56610e1ee5c8c32c80724aeaa83516ca8 +DIST firefox-116.0.3-et.xpi 515643 BLAKE2B ffaf154b3f5ab1ae0cbbbf7b2f4d903f95236d5fb73ec54d48885565b1ac50853d81455dfb9ca9e85184a80f95cac1dafb025caa425dc06ed7f6c065f78af820 SHA512 8f4f0ee8a7fa352d4d920f6eed1db65bc50e8cb550b3ec9a1b77cd6be53f8dab4af847080424391a093920c962a8e7a19f8b6869659e172a3df3f6e24a510415 +DIST firefox-116.0.3-eu.xpi 551058 BLAKE2B ee171febdffd5f047f6a1ab6bd7f16090f1fb4733df09123bd32c8d339da5c5e949d35da14e32357ffa76f33302286b35d0970a8ecb5cd9bc4a84669461649a1 SHA512 c2b04bf89bbd34dd2b1cc155c14936af6e5aaadf6a577149ec55c0b959582c9438907bae0ac5ce3c30e292a5d3aa195a7ad9063e2be58e7412f5a9d5239427ee +DIST firefox-116.0.3-fa.xpi 564001 BLAKE2B 1f8ed43b5c77f57ab1e7c2633904acd8f155394c784031afd36fbf5f116e9e70fc7c77e24babe78ce05f324eb8b0e40c7f7a7f5bb68d1ecd0f6b0a2bfdcd8e53 SHA512 0fb993247d093c1d6d400c2e1da575062db27e9bb64d2cd115b7095daff3170faa64001680758a039b58831510d9e5f54fd23c44caf6f4ed018f67f64b271059 +DIST firefox-116.0.3-ff.xpi 456415 BLAKE2B 29e0aae2b6fe45c0ac0fdc21a17f4ca504ef6dd1fb3039dbfcb7c8267eb636493fa1388a1eb574bf180e67d0b605c0c5fb8bcca1b6cdb9e89f219932c7922578 SHA512 1e760a529ecd8f1f3995f1d2498a8937c5ee80e5fee0e5027f5612fafead40b40d8b73e78646e490bfbd7485cc1d0c1f15aba5417f9905d4f48ee620e731cd33 +DIST firefox-116.0.3-fi.xpi 552856 BLAKE2B 6c77a4afecac3fa4bb5b362015cfe497d584b338ace3517b6da73139e822c7ac48794153f2a8d934f096151912df92709211404f1d9389ce4e12e80c30c649d9 SHA512 b9f1fd6364ed4423836cd8041a04726b880b162a29e31fdc59839166a48ece5830e4875f8accb6ed2c830ef4bd9cc9dbc5e95156d0ea86ebc69a18faa946f3d1 +DIST firefox-116.0.3-fr.xpi 580221 BLAKE2B a41f4c6e321469bb99946ae2cb93abebe08e68dab571bdde06924d88472ec1da2430887b6328635941c36d09f723fbd67a34b60515acb266d55f7dc718ad2d3a SHA512 733d5d82e5df79609c533105df3bb2d061044169b34f056dbfae87726ee20d62b321f57ea5e6e20c17f10dfb4ebb54da60a4ae247a2b0b91c9f6c78606700362 +DIST firefox-116.0.3-fur.xpi 574348 BLAKE2B ae2a1c3d9d84a1d708b4f7ed7b721e6a1f50d99471a5a6219bbce17435a1b0a307f87554bf79c4db866ff00964dceba5ef811ef40992543c2dcfdd6ea108836c SHA512 0837c59d63d350d569d2133816b8fb03d4f1c45c07712169f630aa584711f3e2664c58f09a1b62dd7b4b27c5041ff947b957efd291bf04a790930f44b27f05f4 +DIST firefox-116.0.3-fy-NL.xpi 564302 BLAKE2B e1f1712985401c1d0f6586e5578060f2d9235bdc2f0235f82253357be9cef61646859724c96db318e704430e79882d97de8c6bdb72bd73e5c7668cd151991417 SHA512 6aed9de5f055d7861aef5949f0d74f01ececfc8d25f787cb0e7b142e363a61b0e7f07d28e9bb4bdf36ce6b783d9411e373226bdb25e8955d59b5c28da7bbc19d +DIST firefox-116.0.3-ga-IE.xpi 453548 BLAKE2B 8ac2f4a3a509a70cfb30ee541c2770df187bd68b113a5e0c4f2696c0c361b792d7d806009aa63d08a39e91b78ca053c43ee5bbe49966e6a731f973aa830b107a SHA512 518d6dd962933c0f3b668a7a68fd6b00133de2b39f0d1bd034e83c5e357b7bf51d81b148602d0a4d10de332bd149efc92c8db92d052d54514b201a8217734801 +DIST firefox-116.0.3-gd.xpi 566657 BLAKE2B 2d68b98b7efe719f046b828742a597b7e627f7b79633cff15c00628b5f951cdc9cfc8a8f6c44652bc9355e56d8f77572172413f40f3d502308a36b04e2dcef1b SHA512 fb94e661d643e3dc29a916e89db0dd528bafcbe9a6cbfbd59fee1ff972c0b0394c10aca0141dec8715fb5a4b11ebd04afac9251092790659a2659eca849361e1 +DIST firefox-116.0.3-gl.xpi 565974 BLAKE2B 088850b68c0f1a464d5b431554b43c06069929eb48270434cbd2761a4033ff3eda61ed7a981a14572f1d09e1b4618b520d72633bc09f1e0cfb4e36f2f042a48a SHA512 d5124310ac427cc212fa344bd05debed0b71763bdf8b7035e02fca2ff9721c3e1ec7ee9475b7a00fec0e03f59fea3e86522c2c27644455fe5ee0d8ff14fac30c +DIST firefox-116.0.3-gn.xpi 578274 BLAKE2B 145740aafd55af6bbd2ce9a4f3356ed73468c8fb4da4efc0a7bf45c409acbc48d021394b2092175dabee76fcff9c1d1bbf2005c9ea391fb89a35de614b6e958c SHA512 764bb158f84cc036134c0717dd3609e8f33930a32ebed31e0d60d734b7628f2c8bfc42ef8882022e322d5bce9900ff25a49c66eb1ca0acfbed4fda5763423a43 +DIST firefox-116.0.3-gu-IN.xpi 506019 BLAKE2B 1603bba3a9c58cc9b88bfa0aa3d1dcb3d88df97abc3da14150435de21907b6c1ae155fe74128e5f744a9dd0ec202746c58e21b5220489249d44ab45990c603e7 SHA512 feb89366ca67f8391d883f43c437eabb88ecd5498612fb6f74cf4b67dfba37bfd747f334f11fb82a8918da9e4c6b9942291434e811c669c921d4204fcd4c3fe0 +DIST firefox-116.0.3-he.xpi 575333 BLAKE2B 49c817226050254aee0c6adb05aefa69517fd94863c069ba1c4319fd6a26491864b251931664d0062d2fd53f2d1c1cb3e8a7d5371328e9725acfe5c15998ec85 SHA512 52a4291ad7f0b7c3db5274ac17a969efe895566769a0eab93e45db6261475b36f95e7d8d05bee477f32a580bb2f49087d44ebd17f04b30df95d9ff0e2b22c70e +DIST firefox-116.0.3-hi-IN.xpi 538291 BLAKE2B c24311bed8c47bc43f2d1ba21c9957625036d617d58d57ed1ae7688260795bbce88e7f077b170f60f1d78a872b0b9808d82d175cdbb2b29df496ddb0f5097747 SHA512 e244f4ee72e4034711920161f99bec008cd1fab46436e875ca6d284c8c6140ab7487616fd6962436ed7450a9e84fd386f83238b7ed155d4f2154390522478d8e +DIST firefox-116.0.3-hr.xpi 531478 BLAKE2B 23142495eb4eed02d9d5441f772df0fcc9f9eb674360787bb122c8dc647cf00810654a80aa2a35bebd07679a275d1ec281c9fdf09e73b1efd551b3df39f8ac3a SHA512 83ce34204b455aa3edabb53c926242622da2c10bbb5468c70b954a99950e7d75f9e6c62df0ac10835bef11699f98bbdf5ddb178d8c2813a29de41e32337560fd +DIST firefox-116.0.3-hsb.xpi 585842 BLAKE2B 2f8e606edb8bc6c19553fd6bb37f957d78dd173b6b0a87e1ce08555475db80ff3c616273e96d2981c88716463f79a4e6e860babf166a7384c40c78fd70e9ea70 SHA512 766bf742011fcc27fc15c647265f8176ca67b886785c69e8401442a8e0cba6633f365b80d8a24c7b57cda1aa50e625112317d3b3155f5c83d37ff98c997da68c +DIST firefox-116.0.3-hu.xpi 588342 BLAKE2B 45dc60b09f5380eb795843fc08e46034036b39db6d5bd28cd7e2f2e039cee272c863c7ba3c252b90beaf89c2b2750c3a4585d43dd21fa9614f633efa5ff6c192 SHA512 6cd9f62410f5e1afdd886bac7df8db01c707baa3a792ea86ba8fd7fc23952e5bfe9a1969755a30de1bd4135a2583d262028711a2d7110c4cb6afee69a78771e4 +DIST firefox-116.0.3-hy-AM.xpi 578720 BLAKE2B b60095a36438954d0638731b49d9d8dea86a0bfffee303d3bb33e5090b1c08668eece0cbc6f077c8f51a299437d9d9c57739e5858debf62ddc3c4747b21a7372 SHA512 fb5c40238aa0af7eb2d2e4b7bc85976ea47b1802bba771be9cd8ec29c4868d44c59ce625cea6cdeb5c7b9be864b4ca40b0a3e10fce280849732d75068a15f9e3 +DIST firefox-116.0.3-ia.xpi 552439 BLAKE2B 51ba6d1f948e4e6f5bf51bea9be539d8270f4ded3b40c2f3109ec920f93e960682fe15775dfd20446d730e24baf998a4ec9295e4d2078ae49d6cd0d793ef5413 SHA512 93e238788b9a7efd607c6d14ad6c50c862ac37b706c91a150240edecd6b5a9a2777c1024e5d831c13c0f0a0aeeb688acc1d4166e97a1043b60116ae7da193fe2 +DIST firefox-116.0.3-id.xpi 537287 BLAKE2B 0a2b5f5cdacf322f0da5c56a4cb122e30b8a8e83bae929c715d9c2157067392466e3ebb6a44c9e3472962b85222de7ce7b2228212b5d5389a666783adcbed3a1 SHA512 940bc961694e672894c9426ddfbb30105a16dd361fff777c0adc96ae1297174094ac8eae17223ecf2f282a2e557e6ceafc21fe3bb8d6ead971de442915a34662 +DIST firefox-116.0.3-is.xpi 561612 BLAKE2B 29f8b49f85619c00971cae9fa434a7a723d44b7359f57ba5b614cfc880ef8baa3368a61d340b76ce52ccd4a31d77ec107ba0c5990843efe0b16fa664a5587915 SHA512 43686a3db4ba3ca715cc2a12a607aa76a14c7094fb9da093459cbfb8234b619e3813ce446ab45f00baff47242c87bc11f9c8e8f9600d3096f941974728b7f6f0 +DIST firefox-116.0.3-it.xpi 508070 BLAKE2B f1501e2c277fefbe98a29e4b9e5eb0a60820728f88d81b409efcf91061d444bd7e442c533e13e94f096adde5ae2d1e42f8bbdc12d9cd004dcb877e595639ecd7 SHA512 9c628e40e45fe45072fa2c52ab06b147e016fd114b8d691cd4aa79e40499d45f456ec4e4a4052de8631798f122d94d2aa69ee10157151a9508a516b2e5e1055a +DIST firefox-116.0.3-ja.xpi 629672 BLAKE2B b2724f3e1fe9663ddf52a417687ea7006841fd612b9be5f6a7ef67c6f417e66c5f495f77df636c2ee38b7a16b777beeeecd9c19d98dbefeceb65285a797e9ad6 SHA512 221337f241d750a4b3dccd985859345248cc1b5451f3f97b7150cb9367c9b5a9737bdc539075de93ad395cb8220f63c5e8858eb0dfed072af6155847fefd572e +DIST firefox-116.0.3-ka.xpi 610434 BLAKE2B a1c5c827ef45e2e3b2ca55eae72ab6131293044d478208078068a6e6930ba5962f3f5776c7f54a898ca8741923471882e76070718703bc3d42aa743ba69f70a1 SHA512 d8175a22ff1e1943a7be59d4ef0fca44d17a13d6ba216522eab15d746416a8364bff6a84099d8ca09c50cf7cc385325906d60518bfb0bf414ca781f7bdeed9c5 +DIST firefox-116.0.3-kab.xpi 562159 BLAKE2B ca5678fa2d81728b0fa95970250c37fabb37e7dfd16fe8d0618f820c3a9bb90e412916958254edb7c9c2dd2300bfffbf1d46da9cc5512938d1426e86790b09d4 SHA512 e421e07880e48011e69979e288224b74bb61af25b50537038f146e0f0d3c312d9556591719a00cd9fe3352488c426a74aa8538abe02912747a670c78fffe237e +DIST firefox-116.0.3-kk.xpi 640661 BLAKE2B 4c5d0eb0c4a7d4aeaed0b61434e649ef815a370fc6c8aa994216e20dfa7387a43e1a83526f7489e01c68f2d1c484e3d2180ec17a28f9f3f21ab9c403a480bc29 SHA512 e0c1b17b1894d7db6cdc45a560cce51c7ad149a151c246df90074969d00b3c2e2b7e71a02d56a9b7d69bf163b70ca13736b2234c3c969b64162d13064e0c3c06 +DIST firefox-116.0.3-km.xpi 507449 BLAKE2B 7a8a9450f7ae4dfd95a6bcc67ecf9b86026f1800b8b262928caca74e6a822e2a8efc103ae1f53d3e8c60560029d1274912a776b973050b13da99f3101236f082 SHA512 6a0b6c5dcd177f7d3bf1d7c1ae97f5b09d4cb7a25bc7edd52c3f2108ef0e71197ca0175fab26fcf18ec3a8a6884cad4586666fa7668c4eb47318af1891205140 +DIST firefox-116.0.3-kn.xpi 473019 BLAKE2B ec6e4f3d0ead194fe548c0d66efd057a099f4da97d1fb04116751b911eeb1c9945f83ed9ac6f438ed8305a58dd27504b156f5bf258a30c6986eee1b9e06b5297 SHA512 46d319993da12ea8cbd9a19295974569b697c4507dd9d7480217cfe63445719d472693b97ebd38fc171c554b03388615fdaadd898a89d26017de545b84ec1924 +DIST firefox-116.0.3-ko.xpi 601082 BLAKE2B b0deeade317c92bbbd1d53ad1a3a1e6cf45de56ada31111198c15492d4ab53e94168b398319f40de72262c16c6674559b246bcba949a39b4c5bb5b17d7866222 SHA512 e8d89a2260f5ee0f8dc0f3547a9bc34a1886d30cea58210b07d351a681a4990dc7df36cb8cb910ef50edcef44bae10541e9b9c50e2ae541335d828dba1254a64 +DIST firefox-116.0.3-lij.xpi 463107 BLAKE2B e3ff920e92bd9eb81121b35750a7445ce1662a39d4188cf46f98286f85d0e0ade33e79ca4d4d23dfbff19b7d43f09059711a186f484e3815378a2c7513c79b95 SHA512 0ff8160557dca8a04a2dc4bc6d3f3392c0fa4c23d68e7a4b54ce68a8c63235c4c93de619fc071dd8be21de075f7ad82eb323e5ca02a28cb4275da7f619eb1f00 +DIST firefox-116.0.3-lt.xpi 547788 BLAKE2B c1fa8f4505ffeb8171f723f65ac5de4eba3dcde9c176de8e9476fdd58a24f5be8bfdf8126e266eba6d5d27348b4974bcf64b4b8542bfe1c0fb3d1e8e1b4239c5 SHA512 fc1da4466aa8947c4695789491c2e192e337cb8b193e2f1cf8883c32529ad9d2d68bcb357e4fbc15a4dad3040d232c2312e07b23db7e17c44e3cdd563fec1ea9 +DIST firefox-116.0.3-lv.xpi 450077 BLAKE2B 4d49e4ab43d26aaa6f1c084131c0d0c7f7cef4cbad8f73d7e870bb7b165aadce2769812021523f69f48d13f96154a478b6b1c52093583796cec459119d7ffe6a SHA512 cadd852c00ac5dc163a423ccaaee15e5229c2d62d6362288681cb51e9d8198d9968db0dc7c875cf9abccbb428e15d5ac07686e775198646e431e363fb8f28a91 +DIST firefox-116.0.3-mk.xpi 469356 BLAKE2B 436d787e0e68681a4d906f8b77f2601396a9db984c48ea78055cfcb17ee9b1eb224778a909bf253b1f9e97576a06a9fb0643e0c19cab95eb2d89661d989c71eb SHA512 a492672b3155cf44c6a3cd642b86398f7414d31b4b3dde4106fa89dd95dab07f1250789b831618e8fdcfa8c101c529b9970ff72a14975ad534b22f46236a5162 +DIST firefox-116.0.3-mr.xpi 510122 BLAKE2B 0f6758018580b5df019c8c86f05bfebab5a238e02d54d0034184f499a93306be02ef52e3f8d4b47cee97ab50f4386b6c0b9d3c0a5b6d10cb056be983f7bef903 SHA512 5b3704c6ba140fa58c9b3ea1313ac254617f72232a59ccbb5b08ad9222dfe6a2d22ff333f8cd47f613ca67e1cbcfdf8e3fbefe5a959d9fedbd4151d5ccbb36cb +DIST firefox-116.0.3-ms.xpi 430634 BLAKE2B 27e4b09338a17a051596ab5803191b84fbf579497b63e271e291bdc63710a6083cb752724669d6739888357447583cb930454231e84032a67488aafcb493b78f SHA512 e59c3648b24b3b3d255a28e2baf0a1aec9ad31e44658a27f9c94be05e3f7616293f43cb25234fb0e3f163fc609a4b8fcc426e32c42621daf057a82315c03b771 +DIST firefox-116.0.3-my.xpi 492895 BLAKE2B f2ca0618e9c3a7a1abf35e2620852c6c9eaff3ae93c1cb2c45b3197852c41c8ffb8f2067fcfb86fc315b597e7bf087f31a64be174999725430dcc42e393863ee SHA512 c86787ca1ddbed34e81c07bc592aeb53c3379bd168baad024102da828524f3771189e32544cc6aa063f7c404c6e7ead56a41e3a3b9281844e7e79f143e93b1e9 +DIST firefox-116.0.3-nb-NO.xpi 548992 BLAKE2B fecd88ed07fdb74c407e64725fa70af2d930e5ff5fadbd911c27163b8972f047d506d93d9b16ead166be75f41dababbc802c55bb6731cbb257d9129fb835aedc SHA512 e69c298b2a122b6e3f458b4239a6a5706b525df97b12f007b9c34bfd97401a1e05ec9fab2a23bf5b4a2e0d0aa8ffba90d42c48f0bd947ae9ea449f22507fabf4 +DIST firefox-116.0.3-ne-NP.xpi 468343 BLAKE2B 208361f3546ab7b1adafa0f1a93aacdfcb9eb5b3592ddb1158c55dcd870102086b14428c217e2e1056ff95ee49790ca58f7c37c810266be82b2b7e2084611ff7 SHA512 92d96ed5ad8cf2a4a6aa18ac5878506cdcb7c55c3b9662ed719d45a6bedabf744e33afd5e2db8d97015e3ac1dbebba9be0b4ead00b365c76ef230012b3770aea +DIST firefox-116.0.3-nl.xpi 558565 BLAKE2B 4109ffc9b1b0d4954d4c38fc119923814b8247302d7acfed5ff22274697e5b344a1ac8f0d3c925b76039922280a6d2f6e69283d26ea2d68306cdc69716046060 SHA512 662f431d3c06d93fafe20848c68a8a2e1a69a858255dd5ad22a91d238ee3995db43414cb1f3464e2e199075301466b43b5c7703d0cb3af20f559a13b0c931d11 +DIST firefox-116.0.3-nn-NO.xpi 551411 BLAKE2B 9bea957aa05b39d3de5be5e3b2afb8e9d5bb85cfb27ca124dd2021ddff9d1c694596d5d62b88a7818f481e63cc52e35eea170fbc899661b89d6862a0c22d10d9 SHA512 dd1982fdac9b359ea2b7799dd80dd7f9acd0bcb7d777a0df2079a2a1eb36dcdce4ceb959064ce83bb707b872bdf986648d7fec1df59f0d55408998440a27211a +DIST firefox-116.0.3-oc.xpi 571607 BLAKE2B faa5e8c9a3e8c849bbd52ba776d698f7f6e42246cf78aedd5f7fb734fef3269f4216465458d4fda0463e9ab8417c061a35659da039b2c99d1dc49915ecc4747a SHA512 00366866e1e2b9225328f334f7f397b9e159cd976f87d9895656a1bc9a8041d77462be4440bdb2e770eaa1ec1666e006fabd5e864193cca836d967c02d595e3c +DIST firefox-116.0.3-pa-IN.xpi 626851 BLAKE2B 506fa0bed1c56e6b81cf131dda9b78279f0971c6951bfc10c71b74b2a5c5742f339bdba7af6076defe93cdefad2199e618bea362b1d80392060103836580aead SHA512 0f797185a52715b15580aee97bdbc7d49713ee53ece93b29539d387895baa9c6665bd771b7dd6c88c430b7486a0302c222e9582a0f6931f90afbaa2b94320a17 +DIST firefox-116.0.3-pl.xpi 579286 BLAKE2B 6e88159c0cdb31524fba805ee8e34edc54950124a5962a3e2bbb5efeba65ce9323f511d719641fd7a08a07495382349fed413a97f46a9eb29bb8865902e5c49d SHA512 69bfe916d9e26ca0b56afbe23381d4954ba6d6bcdf7e1e5df440d9212f4f74562acc99ca0f6ca65d9282b220198abde027969c504b49be5552bb8a090010286a +DIST firefox-116.0.3-pt-BR.xpi 564547 BLAKE2B 9479176f7e7fa850534d4e686c107af021ac8fd034b2627ca7bb7d37830937bb29f326d8fe1603a08a97572f44a6e7e2f369dd38b308ecc907f6096109905663 SHA512 32b533c8ed5638719bd30c8eddd11a6b021cef19ad97b36da01b157b253ffb65c1dad210e1f3902ed0c7376da22ff6a8ab6588194f040989aae34548059bf65b +DIST firefox-116.0.3-pt-PT.xpi 568408 BLAKE2B 0a4d23e9517804e53c1a13910613d8c2cc1aa9c9e583fe7242d804e3bda8f544d731bb799fc9b938072fc6816f892b253b4e00776b5504bed481523f3166da9e SHA512 1f98e8946c545b2841ebf7ad9ef6598479bcb0e1398a27288fc439b2e7186d46b3b7ca0d2abee52d1b9fa4d533483d61bac3a8e035d8038a1200db79fbc48abf +DIST firefox-116.0.3-rm.xpi 558035 BLAKE2B 4933fb3d0695310ee88dd4a9cf1fc6556beeead454435e3e2a544f49b4373d041d08230e0df216a5f033840e95289dbb20844b6cb6db7464042ba8e453cd657f SHA512 98a09cf4ff707db03eccbd318ebb84cecd38b95643b195b42280f490d443ee3eb63c2550de3b7b55d2d53eeda145bb4c4c8b46a440256037200bab703c3c4229 +DIST firefox-116.0.3-ro.xpi 524304 BLAKE2B 3ad46fa1381fd4b27a89963f8c4931de76f1df9a480c5690d66309183d1ec41c6ed3338d51311dda942bf3ed2786c85a54136fbd1981f418ac89db256344240d SHA512 b4ae3e19ce0d6a248c12b9d674aedf779c3f552d9bd94bddd4a5a22813f8c469f4f6c63e05e9549f36116c973bb82d2b6222d7eb0b373ee1d340f828824225d6 +DIST firefox-116.0.3-ru.xpi 653097 BLAKE2B af50c738ce39b32ac7100f7573f9b525b836a3ad2f50bc887e63aaa3b6b1b13c69f538f6a0350a2deb7d645190c4b7f9eb54fc2046aca9ca4a8d5830be01c74e SHA512 8dad12507051eb578503a38179c861da69c86995383e529cf774f8761b8273d2e9dd55a83f5a586e9cce220cf0d928a8b9e3815df2964ee9739a3a504e35e73b +DIST firefox-116.0.3-sc.xpi 534520 BLAKE2B 4b48b586e55f6c25acf1e630d75f4a361f3c3fe4808ff036fe003c86967d58203872aa7cbd6e3c38360b9a7919844195165be08cc8e3807865dac6f288472134 SHA512 f21d1333c5c6741a2bed8c068c6fc88db0547a77b04faf6f64ad647d20a8536a1334b9482263e417a2acc7a84bf1e6f2a6a8f94196537c51f8f3aa0160ebbad8 +DIST firefox-116.0.3-sco.xpi 489054 BLAKE2B c0766dabf1666688a5c9e69be747c3d1b126ea714b6f30d9bc1ccda1a81d8456585c4d270c15c813617cf9389c0942859c748daf287920611abfa13a24c5ec21 SHA512 e115023ad7d312217452e63cb0ca62530ab3b84c3155ad0d66e0ebea2891f2e49d2917e39dd43d41775bf9ae7d60945e8d4f55676ba33cc9261395823155a3e4 +DIST firefox-116.0.3-si.xpi 574164 BLAKE2B db35e075f91cf297cc041467ab1d8d877155ae69895379191d92830cc87850d27dc96e9300ad2afee830be01a97137993613c5089391de445c3205475bd35375 SHA512 51cfa9cc44269b58fc04dfba1742efd262c6a389f0c109b7688f7ed46c1e9fdf06299b5fca8cfe0293f75cdc213c9a2016484454c6c722e07699ffd14b0cbea5 +DIST firefox-116.0.3-sk.xpi 590368 BLAKE2B eaa479f097510578b1af04469520672fbdef2ccf3eff17be8d49b1a3c5995775650e13ab5d407bba920ede7d09fc94e4ad4e590fcf88e1012c88256f1a7cbc35 SHA512 7c14b8afb23a49a404b9eb68f6b5da6819cff0a921e22fd1122ddfd531e591551c0222b4a866eb49b08fbca93b67111e910f520acb62aa3f322e46ad9d1c19a3 +DIST firefox-116.0.3-sl.xpi 562027 BLAKE2B f15a01674d6b63f2dd86e974a14a8e518a439852f4f34a6c4416b40ada80b0656fc39a61ca4c1eb943fba2f72e99a18bb6377b6866c1e2b6851cb69282fd18cd SHA512 191cb381a828e4f3475a826c4490f344f49b73296c11bc30d794b06d8344dd83cd575d29ff9fcbaa98cc5869776574fefead511f3c548a48f6c989deb2e44ff1 +DIST firefox-116.0.3-son.xpi 400196 BLAKE2B cdbf07ac3d514500c01e0928e6f600c9500c5767a3d88bf0ca344fb765109ca4e82f5b44d417bbc3291f34fbb40a2d837e6082862b4f69c2285e235eabb5806f SHA512 1d29e8965d1da5b26dea7e431c2f9b8e6fc94a15e4d0b0b2b521398a3e15d9dd8a02f76eb0f473cb1c1d5c8b4c696730ad1a3f132293c92a3228238effd24bf3 +DIST firefox-116.0.3-sq.xpi 564007 BLAKE2B ab7f380d982eebee7c8844852d1171ef82d3128779d1457f8094cc3482579b2098c37a0b1e65f865a1aa9753490a1ca3e52b66d64d6efd1c39d257d6cab2b2a7 SHA512 19cc604eec48e9487a17e738166f4f86c15212f4d055d1a6a307ca4989e2c2a3606fb030c0f7134e10abde1ee21ad54788c0a7ff6d76032064a30085da8f8a6c +DIST firefox-116.0.3-sr.xpi 613455 BLAKE2B d4bfcc1398ad06fde39a76e2acd3f37c37e5a3d7f7df61d9727a23e53d5cb227cd454703b03ca7344f42a36ff6f038034a2dbe2fdb8d660519e2cd90614ed3b5 SHA512 f1e54c27b36096d4168ef47a8024258057d3881722b8f240fc3e7c57ed6a85820be2fb9b8843966ddcdc9750ff7ebf6cc967ccb788b342eaeb0c92eae9dc0519 +DIST firefox-116.0.3-sv-SE.xpi 561740 BLAKE2B b692951bcf92ccb49c99f972a26e7724e1a8722b12950024ed475f54c445076e1146eea134c85d56d5d927828347aedce206a2e5b4a011dc119504af8fb97fc7 SHA512 1367701e2861cf1cf9c143a192a4b044b1bb7e9f8c7a1543be167e84e897c3f043014164ea7241009d04f675f859159bdf37185d6032f792ed8627f881b3f0b4 +DIST firefox-116.0.3-szl.xpi 503524 BLAKE2B a26c6d30fd467e3b8f2800763b361525f41c0674e4a10fde6299c8dae91469bc7d1a018840c39842fa0f8b5e5b27850c46f81c35e4707f278c85244620d41c9b SHA512 8da5004f16639aa755b56de556e31cd5bda3815debe364d0fc86e8914e0bdcd504ddc6e6ec1f8ad498d0a8e76aaeb9f6c9e6f7df2f15b19826073a7606e1f8c2 +DIST firefox-116.0.3-ta.xpi 488083 BLAKE2B d80003e9f24a7fda2956796e0407bb10263552fbb21b660d48ce55003c5f01088c62b6c084ce48907ebc59bbcab483e27184e6e812c91cf39186c1e01776e745 SHA512 264c0038d52f77586c5da3489b669c5bdf607792c6e6cac7172a56b50035c03b6c4a73553f44bbca7ab38c3e4edfdda6d82df90f8639fce5587d33e06536cc19 +DIST firefox-116.0.3-te.xpi 535417 BLAKE2B 8421209156ace575c2a11110ffcf2f17b00243648e5094d1e6ce23490620c08f208c6a19c9fdab99829f74042d9fb329ceac8db4c5d5a7b013e6b5b9acc717de SHA512 1e53f16fefd1b57af03e0c6ee695d92ae56ccf8b0162d8e270d2f0b5b235b700c20c2e278f63a1b59cc84b3dc8ada312dcced4d86f6b47d8699df23e6c1ac3bf +DIST firefox-116.0.3-th.xpi 631488 BLAKE2B 365ac72ad8328e8bfe7ff0939792bba07996b9d909de43a86464353be69ebaa080c6eae551904df3c665bc5a1fca150d3a0b18ae1c8839bf1472368969586df4 SHA512 e88ca08136fd59382289852aaa1c48cd9b7dc4a2047a533fd6f7b64d2463c03fb098128a2084a95438fb4644ae41fceb89484b28d766f18ba3c9950f73de8c7b +DIST firefox-116.0.3-tl.xpi 510942 BLAKE2B 9126d7e7e441f5791ed75333add2268c0ae8ff1ffe447b55f37cc19a9a0a63343a8e2434934627d12ff883678f5887fbf2198332b739b5090d2f37dd6b415871 SHA512 7a709e6d76472f27c0efa32d111a36b331701fa94ad02f99274bd8faa7bd1832ca415141510a405c043530e5c24b0057b4c8d324223d8fc9803eed0bb53add4f +DIST firefox-116.0.3-tr.xpi 573422 BLAKE2B 7a27ac2c0e38187e92d1b3f493f44c9e07274dce997a361b7f9c318ef01248339f3823ca7afd4a4711b412d099b8750dbeac07d4e71a4b161ed80ba223269a09 SHA512 ff8bf885b3b3a05fe8217ef8666631b0e7050cd121b42f0b8e001caddf1f6ff720131daf3cf2adc0b63c71952d1305583618644581a5ebd1fbc6162eceaa87ab +DIST firefox-116.0.3-trs.xpi 481282 BLAKE2B 19930d43a15763de494b77a9674bd992b00fdc81738dcd80f4eb0eab4a3b4f0cf56a0ba71db2a0722872c5727f381ca929e76f8c418e4c059d7894517646ccee SHA512 9dceabe5d45d4e991493b68240936ff031d6846660d1568e7c67a3c62cf9b02aeedc070ee9b2a3de0380336cf12eebc4869c877c0682e9b665251e4b0337790e +DIST firefox-116.0.3-uk.xpi 644400 BLAKE2B 1de3f17da4f3da4031dbf5fa52f7e28fad099f7c690edf87aeade2223b2b40a6dbd72b9537f9751adb94016717b76599c9db81cbcf11fae39f7f879b7a60095e SHA512 8d723bdb0e08713a5d7dd18b69e6c8d5dbf0eb71b78d198b0863dbe4faa004c79391eec9b9fefb1991db296aeafeac07776ce30c9ff8e88c44f06ad83925be05 +DIST firefox-116.0.3-ur.xpi 538191 BLAKE2B 7e01804f5112d949e453d0e3e9b2a76d02975e4f2fef59980f7163514ede9c6b23f337ed115b1ae5870f225a2efd9e358a946a667220a65840dde45a7152526f SHA512 96ed6f6dab7386250e4aeb1ad9bd189ee97b1a15f57db4c0f862d43744f870352a5f040ecdbff1e67ccba36400fdaa2acda2ae9a7ea7982e399ee1f3c3ae2886 +DIST firefox-116.0.3-uz.xpi 461090 BLAKE2B 9d288ba406c6370b3e95bee71fa50f5e729cf0c2d9a2e915fb74015ce687bf8993dda96b84db67c341b16c879d017eb6545d2e2e7845b2625ac4a3240107e68d SHA512 a3ff074743f1b1d0e01df001b6c982bfee3bb7b4e53755c069be1b316a3d8a325e64b1697328f74c68c8ab2c3253dda49e73d3f7f9bac853d9799a01f51bd4e1 +DIST firefox-116.0.3-vi.xpi 596616 BLAKE2B fb75d03eabb99f6ed60079fd5f509495950a4c3a5725971e4af8f642bd2f47ef98cfedb6a4b81a73f2d3c69293c10c71feeb6f277c587c2149715136c386b5da SHA512 2350b0cd726ad4f36e666333892fdd1850c97972e17d8138827a0c4fc31553784e8f4acc39cb6232baef92eeaca870f32f1a3d60e9ed4ee997fdde8a9fa70977 +DIST firefox-116.0.3-xh.xpi 401664 BLAKE2B 1de763b5c8827217095f304d7800d3dabf78e197f6559aec9775d69c89c340137636e4db952cc5e9045cf5d78dfc7ee3de76e33c246db40b798115a49a9497b7 SHA512 a4ded42cbabfa12b9236a699a52d27bd7083e118ce683a59cf3a200b9c70aa3333238d1729f19c03001bf97793102882c3fbf88e82f79b3b27d6d653b8a536c2 +DIST firefox-116.0.3-zh-CN.xpi 596069 BLAKE2B adead5cae90fab7daada7a6d6ac29fefa8e2706e5316b22d9a2af6da70bfe43c8c0dc1776ede6c4840ac974b363f4b0b7282bcadf46dc7372ce845be10eccbbf SHA512 1ea142d55ee2eba534738e5fa8eaaa4b869e6e0c33f153b2becaea558ee196805b20bbaabece433af3fbfa5b667820f948cba57edd76eb7ed4b21cc9645f65f2 +DIST firefox-116.0.3-zh-TW.xpi 598589 BLAKE2B fc7879a838e63711402b457f951033789be486c1980ee3cf0bd47c60524622f6e4cddc54102a04fd046bb14e14c1a80c78aa1dd33db333272e64029c6dad8e06 SHA512 ac20f5fc22d469f8ba7550e7029884ac4733f33cd0b7d1ec89723072ce99625fcb2fb40535ae9972a0cd7ce4f6bb6349952f785c44b00384abbc2ef5929ec330 +DIST firefox-116.0.3.source.tar.xz 520884220 BLAKE2B 371ff2db5516059b6df21dc4c9350db9f829f6932fb401d7eec2570771aa12919e9a6b1636bb969d9a0ceddf9ab7f8535c9136287847893431143c6e9cb80551 SHA512 194c50e9ba5a918c37fbef8cd72ffb98e5e9f51955d8172b6666a758b5f20777ca0a7f79dff0328305fb6dafefb102ab002e326f47d0965a4dc6d3e9287c42b9 DIST firefox-116.0.source.tar.xz 515487160 BLAKE2B 844f37e6f1f0947771a5e9a629ad44c04733906cb5922d5541ec12c4193dee4307cd435c381a97ce4ff20be1f31200a0c13c6e33a0308fcab9ce16b1327723c1 SHA512 4370c65a99bf8796524aca11ea8e99fa4f875176a5805ad49f35ae149080eb54be42e7eae84627e87e17b88b262649e48f3b30b317170ac7c208960200d1005d diff --git a/www-client/firefox/firefox-116.0.3.ebuild b/www-client/firefox/firefox-116.0.3.ebuild new file mode 100644 index 000000000000..f99be60d5c07 --- /dev/null +++ b/www-client/firefox/firefox-116.0.3.ebuild @@ -0,0 +1,1466 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-116-patches-04.tar.xz" + +LLVM_MAX_SLOT=16 + +PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing optfeature 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/~juippis/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 ~riscv ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" +telemetry valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + !jumbo-build? ( clang ) + pgo? ( lto ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:esr + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + || ( + ( + sys-devel/clang:16 + sys-devel/llvm:16 + clang? ( + || ( + sys-devel/lld:16 + sys-devel/mold + ) + virtual/rust:0/llvm-16 + pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) + ) + ) + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + || ( + sys-devel/lld:15 + sys-devel/mold + ) + virtual/rust:0/llvm-15 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + ) + ) + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.65 ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + >=gui-libs/wlroots-0.15.1-r1[tinywl] + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.91 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-util/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; 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 ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${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}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] 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+=( fur ) +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+=( sc ) +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}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work + addpredict /dev/dri + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + 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 + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # May need a wider addpredict when using wayland+pgo. + addpredict /dev/dri + + # 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() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + if ! use ppc64; then + rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_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, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + tc-export CC CXX LD AR AS 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 + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + 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 + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # LTO flag was handled via configure + filter-lto + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + 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 + + if use elibc_musl && use arm64 ; then + mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --disable-elf-hack + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --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 PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + elog + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " + elog "useragent checks. To temporarily fix this, enter about:config and modify " + elog "network.http.useragent.forceVersion preference to \"99\"." + elog "Or install an addon to change your useragent." + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" + elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} |