diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-08-06 19:27:56 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-08-06 19:32:14 +0300 |
commit | 6da9bbd63ad7196a4dc898081272a1dda01675be (patch) | |
tree | a72a48b2bab3d4d98f68902c3dea333d2ab58813 /www-client | |
parent | sys-auth/sssd: Fix cross-compiling by pointing to krb5-config location (diff) | |
download | gentoo-6da9bbd63ad7196a4dc898081272a1dda01675be.tar.gz gentoo-6da9bbd63ad7196a4dc898081272a1dda01675be.tar.bz2 gentoo-6da9bbd63ad7196a4dc898081272a1dda01675be.zip |
www-client/firefox: add 128.1.0
- include 'jumbo-build' and 'telemetry' USE flags on new 128esr line, since
they've proven to work and are useful (skip valgrind for now),
- remove some arm-specific conditions from the ebuild since Firefox in Gentoo
is not keyworded on arm,
- unify some parts under MOZ_ESR conditions to ease maintenance between esr
and rapid versions.
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/firefox/Manifest | 102 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.1.0.ebuild | 1376 |
2 files changed, 1478 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 287d208d17af..bffcf27e2f09 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -301,6 +301,108 @@ DIST firefox-128.0.3-xh.xpi 417171 BLAKE2B 9e0f3da87a68da99ca52353ba8caccf0993ef DIST firefox-128.0.3-zh-CN.xpi 657105 BLAKE2B 85d43be34cdff7ba76c8b9d7466678904b913593abaa4538221a805d59012cc9d4923750d41302057dc768b59a21ad8ea9af367af91c85924368821f303a7036 SHA512 8ff9a0c898c344182c1e0eca16b3adb47fea59c47a71ce5e1fa12ef02275e9204919eeec552641973704bc4e20b5f405bf6152192f4fce9d756c975b67bcb5e0 DIST firefox-128.0.3-zh-TW.xpi 659225 BLAKE2B 5f7cfc5d21e1a98396259b46c28ca5531fc50e0fb0b78000915ccd7c97c1885aa53866248a9d8f0134f706bd5a920c63a11937dea304eb7b6c8b5dd00d9370fd SHA512 3afcf932e426fd3673f90fd1f8fb7f974f03d1821da6907768d50f755c5e59a0c80564ba7884a925d07ca2f53ee3980f11e802723c2a07dcc1c731aa650456bf DIST firefox-128.0.3.source.tar.xz 563698520 BLAKE2B b717044fb0af090cca8adb03eddf9d1ba7b2e46c25d78de7aa36298d3b6466cf57b0a1c6c72ae369c5fc3484b9da9a79b902529350f3329b5f7254386dac9271 SHA512 52a0a1a6fa653f5a621a9e16e1937760c05a5ebc81a058ecc16b2c3d29d09d418dc5129deabed86ad2f82abdb3100969478a67f48b11616dc3b3e3698a1acf51 +DIST firefox-128.1.0esr-ach.xpi 464065 BLAKE2B 168762d0890e65d5ef0033a96d0b9b00f1b12df24a2f5debc56ff8010421cf2e2c561cc7d105853338244edcbcbf3a3a2a4f174568740f4b82d4dc11b164bcc1 SHA512 4f4818a789f7da04a71fc257317e9d2341ead3209c815e25326f13be1501aeacd7da77e86e4bbc2560d1b6952f91466ff1fc90efd16f02762c85ab06e461bac8 +DIST firefox-128.1.0esr-af.xpi 417524 BLAKE2B 81d764d8e9ee71c91d5876c2846929927af76ac51292598abc54926b0688eccb2d5e0e035cde820bec2d4d9b810a9f5aab1f11745e7573f398b8fa2e2d198933 SHA512 cff20507dd71d3076d44f98882f4dae05bc247f45d7c977baa8459b3bcfc1522d3791df2cc150892b838191b46656824e525f3d54f673f61b63013cc17906002 +DIST firefox-128.1.0esr-an.xpi 505891 BLAKE2B bd5a78cb39ee1d64ae5a97a87a97ab85e744797b3f5aa33e4202c0e6b8c2ad987f23ff93cacb707735fc790e8811955cd9b3b2afab0850545df5650283163799 SHA512 e60c790ce037165dbf3f437c59c5f75b5a6365fdde17a8cd6e6898be9f1ac3139c0db1613010dccd8d1488d53e7b4ce80586010d268ddc0d7b43f031c7492f5b +DIST firefox-128.1.0esr-ar.xpi 610859 BLAKE2B 6801ff21f3d89fb5681c83c6f732094699138ef8da82f57e35f7cdcf7d2ed1af8a269e7430800ea0cf3d14beee3220fa3ba10a377c9f674a0e42df084bbad85e SHA512 fbfdb0564bfcacad1e3bc42179f2c4c72f87e8a68ffd9dd7ce473516960b7410e523bcc20436510cf4c61fdfe4b921d1ac7d2397515b5a29153a45a91359afff +DIST firefox-128.1.0esr-ast.xpi 496343 BLAKE2B 9190ceefe857d5f37421f3c47f4af0416ba6d582722df2cc251c2ea93a41e80cda0d6ea8f0c8ec1dec65b96bfbbffba4ecbc3781e1805eee2e29313223349bd5 SHA512 1e2ae9f2745568722c14b3024be2feae19b5cf5f1091c249db20cba8ed8b8c2a692bf391cb485a05f8f0605375988fb022e041b37a08cc11ee8f13dde01ea97b +DIST firefox-128.1.0esr-az.xpi 490772 BLAKE2B 5d1c22a683d50204d5a616eb104516712669dcdc0be033b9022a6e3c3b64ededa01c01d8531988c6c07314babf60650f5d831c107153fc829c3aedb9ea7d4a94 SHA512 87c7875d5c86159b7a5ef993f5518bbc29f308f63512de394aef8749186a233dc77eb22de39c9c3f4b4cc2a01058f36ced37fdd8d1b7b9390fe49e13f4d49a7c +DIST firefox-128.1.0esr-be.xpi 714333 BLAKE2B f99bfe0fbe0ecc51ccb05c33cebf28f6c59819e6e6cb22cf4a0aca7f44ecf6dae3d0133dfcbabae234b5b1329cd956409affd60e2d4c30b5713d42e37822ffcb SHA512 fb234cf103b4a33e07db8df9feb577de5e775367a0c4391b75b33dea4b383d36b78d81e470ebd116b6c7829835a28322916ea027e54b63e5adf2dc42f7e2c12e +DIST firefox-128.1.0esr-bg.xpi 608726 BLAKE2B b4cf84e2c42db2b03bcbdbec5735d4c7cae57b9b46e25ac989ec81e4e93580d9ad35e18341f5c8650597d6a1168aeca6c111268a2cce9d9829a42399b6266c8d SHA512 f0d386d83273f15a6bd7ce1d397df99c33095fb647dbbe8c460adabaa63fef91f4f76c0c2c94a910148da0409a5587fde1e2d47184acad4686fd29300f531205 +DIST firefox-128.1.0esr-bn.xpi 581527 BLAKE2B 004da3ccb9148220c264610abf7a3999f810cd754cf7a88e98f103a62394dd92064fa240b5f0e45c9bec3b172998b632f4b77f90af773c8273880b9cd824afc2 SHA512 67f708305f0a5af13efcba5b63feb2873f30ee04fe4ed1889728b7fa248d7c54bd748882ed37f983f179d9a7a60ea0c0d2888b7a79e37ab083b49892523aa468 +DIST firefox-128.1.0esr-br.xpi 588931 BLAKE2B 6b3f93b744cf5727f5bdf2ec23a54a296c55c9c3fd8b3a39495f4811779e1d5f17d0320d273767a1e4418f5a9f81ecb7703c38c8d5fa72580b78b3dd3f68ab20 SHA512 eb90a1cdbf3fc0ca05e5ad4a2cc34ad2632b552ba60d9f875e957b1df02acd4266164e687e38bb5baced3ea5529fa2531274240a286c59b2b156d4233462aeb2 +DIST firefox-128.1.0esr-bs.xpi 501991 BLAKE2B ae0c29b7c8374d9edf23fc17a84dc38c7ab01489e63842d95267ff3845749918949adb15269fa8adee48b04c48d8fa8fd4678a0875227b17fadbceaf0184b3ef SHA512 4ea880709c17ded436da647db2661d1a760b0920bea7e450785d652fc7eed3ba306b122b4d6562037e12402c4c72dc3f6a7042d61ac4212987f890ea378b56e5 +DIST firefox-128.1.0esr-ca-valencia.xpi 546201 BLAKE2B 6be32d6c147768cf59748cda25424db00d65e8431ca915c539b6cd16ce8078fe5554ce1770e3d4d8d535ad84b9e5445d20908f10795efd04f9708b882c004f5e SHA512 c54d8975f8162bf176cb8fcb424e38f2a3f68195447053eb7da22957b832a2009e68c84d271f06983b026234b87db909c5a3008ba851a504d94d31428d8e33f0 +DIST firefox-128.1.0esr-ca.xpi 597099 BLAKE2B f8b2ad5b34a8a79c330af3be705d41959560a56d52b6a3a8439f184e1afe6462009ff20177f63a920a6c0f127b1c94362ff86d9fb2e121e4afd678d7aeb9a74a SHA512 46ce42b570e5549e4f17358dc1d77cebc1b511e952812041a17401e06c01ea0baf7f820a91598a19ba5f7633e63f2a1849979345c005e0135cbbe97239e8f0f7 +DIST firefox-128.1.0esr-cak.xpi 593081 BLAKE2B db0c26f5031b399d90e245525bb6a49a9c15b2931edd9f0d2c10139e66f64afa79f211a2f7ea32985fa2cad55dcdef090962c65aaf9215b14ea17ef0a5f31445 SHA512 677032ed8f304f6079f89fdd0ea405f61aa6f755042b7cd07aa47c90ffbdb0eebca1dbd335d3f9e0d776f4bbbdb0c62af69e46b105f3b61b6b102ea17776f5c9 +DIST firefox-128.1.0esr-cs.xpi 659606 BLAKE2B 4cc267b9f85f6f43ed7b32186a4bc858a9dfedda895748604dfbc0099fbba9acb79e1862c8e5d5bfcf264b20503b8bc0f0061fd41fd80343ca082ee0f8a9c014 SHA512 cc17892ce0dee036c2f1746b11cf9574ac777bd4f066c5fcdada3d41746c4c906dc6d638d6ea42600a14eeb14f0d61d34a4355d9651e013cfbeb36befb55685b +DIST firefox-128.1.0esr-cy.xpi 622910 BLAKE2B 1e22a51b1340309ddfe4de58b9c35d0bcf2b81b0d8d4b73662716d6a1425a84e142234190f4907e93c5a1a76392d6d83b7df51dd5cc19346d841ce820cf8f2e2 SHA512 8a968aa6257a297443d7a4e6c5fea8ca96d418a97a6d5907ef3886b9415ed4290aa753faeeeb3150be795b8b6ba374e2d6f632f3d72206bb922dee1d4177f025 +DIST firefox-128.1.0esr-da.xpi 610845 BLAKE2B 6a0db984ed3da34ca17a2cb7c55a4b9bbc18470774664f0d327254c7bf48f1a329c696053129ec1fbc310c0c062cd20273ce39adca8285ccfb9ce70f951ee906 SHA512 cf08dac95a48345aee7134bd2248002fbe4b89e5d0bf29b5ff550749a1c92bb5ed73adf79ef380aeebb6f958f8d34637d52227219b53ee9b76e94d489aeb8d5a +DIST firefox-128.1.0esr-de.xpi 632487 BLAKE2B efa678d9bec473ce3e1d047d35887073c0f3692d2a3954336c9c1ae8a9b696e26377a42fd566e392d0c9a9eb3f3c0cc2fdb91b296951c74cf5bdd3db1834cc81 SHA512 083d0a1f77f31facaef09b9254787f78a1fc0fb0160ca4620b3addf9bd91119bc22ab12b115e85b97ecaca6830901841ccabec936e4eaa4be4dfc6ff8daccf74 +DIST firefox-128.1.0esr-dsb.xpi 650897 BLAKE2B bdcbd25f85809e26674f44015d2d4397d5915533ba357db56be51a760a6fb2d5c0921f1e0ebd426c33d84539b350ca2a31ab829fc52477c3b8acf7aeb35c4503 SHA512 4578ab4122ee04f11e64ae5db01d8dda622240a67e108946ea1c257e758b92368f4fd1c7591356e65156f57a10e301c478abb5c10f36af435f528f5d11c3ea9a +DIST firefox-128.1.0esr-el.xpi 733066 BLAKE2B e5101c7b474f2e5b02dca8742f9294b2431f8c64c133089f9a1201873dc61e0e6b490d5262d7d6a0f6213e89bc4dd758b684669c5fb69a1583d3d8125d4bc175 SHA512 41097ea9ff228d929b52cfd9398f4afb8d7d9b575a66f0075aa8909774d9c41ff161eeb1cc7fedf2d026f5b42610041b9a895ab42f3f1b00acc5b4b83248a1f3 +DIST firefox-128.1.0esr-en-CA.xpi 584673 BLAKE2B 79a8d7d7b2b1e589bf394aa2f40e6be1ddab5bf0e7f2578e4c66dfb24c44dd32ee1caf93e41183e67086f9a94e91c9e4f87f65197576f8b3e93d5a6a42bc4be1 SHA512 853ae27b47cd3696a751d025a23c01630e786bf59043f3f34f374180047620d3a548b8eeacf9b0fd479888980d5923ab61cb19f447b3a6816f220ae2f3b94e6f +DIST firefox-128.1.0esr-en-GB.xpi 585478 BLAKE2B fb5dad5f68e9d01147dfe7effcdda827b9a0151d9ceaccb53dcffcafe1530313fe6b2bac8ba83d3943a497ca71700cd8c8187f65f55a3e0be9c02b28ae6aa406 SHA512 58f44393ee66bc156e61384c198f4cdc53b240bad1d403ce33e6160439775110b21477f40b6f5e7e05f05dc019ae7e712bfee610383be640ed4b60d1990ddc0e +DIST firefox-128.1.0esr-eo.xpi 613702 BLAKE2B 06525a747f9210bde080c8b8272d2b8856d328d5922ee2f078fd87c4f324064d873519743b8f5fc088dd06f189e92cae16c87c8459115ab9b576d47e018fc968 SHA512 2d7d5c2425b195d3a781dd4b20070c4e0fb3634c7bbfaab33e6bd5f95c68cef2f179d9dbd1bd43bfd7d871ecd70a06743a48223922fa8e6439e577829f22e81f +DIST firefox-128.1.0esr-es-AR.xpi 628268 BLAKE2B 02a4b05c6aa6169999b819ca34e536190211bf3af1be22797f9e162254c87399775315a859dab3725c193ada6a292547d1ab9c7dae1971c5527558ab593de4b7 SHA512 7663c980d37a61b94dacc4dc0387d1358bc65859755a311c1c8e320ede635501aa693d3c719c4105db2adbb3f3565aa07cdd1090e67372f7805312ccd9274bb6 +DIST firefox-128.1.0esr-es-CL.xpi 627530 BLAKE2B 90308be6b660a808e5d0376f8a516adc40d3771bd5c0cca2a6480557d17eac88db8f2f66c9af56640d8e71f1d420529ea61c05052eb1b2dc04abf743621c0224 SHA512 ef6e4c3a31f08fcb13b3e6734749bfd78e45b6fd018c05822673c4fa006ab3d33055de8940dbfb7ae2130151f118c0d3c925454b8c135895517519c776c900b1 +DIST firefox-128.1.0esr-es-ES.xpi 621080 BLAKE2B f89e0293f40f5f5372473ab3bb09229ecaf6a4bfe3efa4259845a81aee4b03f079721a763b0840387bc449812c0e5eaac53d472f1c29326cd05750044d9beed0 SHA512 8f10622a50c8ad9ed1e483d834c47963c11ee410e7d938022408aad35ad51f7109169e26eab2a7257de11f80d51a76fa714ba012efc0e1cf3502e82752fab7aa +DIST firefox-128.1.0esr-es-MX.xpi 604999 BLAKE2B 4ee47c95f2d72378d88ddc35e988c21351dcaeb4470a3d86f1afcfb0df0cf8ebcb68464f9012eb99c276f94f9af21a683c98c8e57fe2bfc0df69bb823ac8c848 SHA512 d3ff26a257d874149b9b39e5c18fca255041d84932be0343abc392a44b6f908a04c686a2df13e5f224770f0809df5a0ea0d647ff3eb20067fd78cd79f1439c43 +DIST firefox-128.1.0esr-et.xpi 539538 BLAKE2B 850cbbe2638d1bda63dc1d65d1ecd8ac887f2835a4c819360886eecfe9ae16e000d0b9cfdd04baca7b18087c0037c6ef107a3324d9920dca87b0773db403d860 SHA512 4b2f05aa41e45d08ddd7a9b418787d2d9c76ca917bbbb77749008f7b9c835b180c3c0ce487b8b5745f2ae90e55f5e388232220e83ae3f285a0fc2f8034dd0e27 +DIST firefox-128.1.0esr-eu.xpi 599314 BLAKE2B 6d7de6906db351d7dd1cbc6e6d37a5d7fc6aa63425cf06f055f16fe50caeae3e8412fd112a131892739334c5c4d7460d895a3e3e521ec0954e7f43a8d33c3d95 SHA512 12e49951e3364540f0d91b34dfe88e6c15b4de26b0dfa196fd35d416e2658d6f4d41e92fae7abf1c6090fc34a16dbaf45bce6762c605a89bc0199df67b498841 +DIST firefox-128.1.0esr-fa.xpi 590029 BLAKE2B 2f9d8e30867106aa51f4216ab9ed6abada49499189777875256d400bdda4e68562317dfa3d06eca0a26dffc6e292c8559a5246da9dc54ace0efb02d162ce8c7b SHA512 9936d795f615a2f33dbb2116bcdfec27562d7a1b823d260812213b621dee2c9a8056dd40c88f71e80781dc285bf3ba9bda3ef06cd28dcaf7611ef43e532fb548 +DIST firefox-128.1.0esr-ff.xpi 476066 BLAKE2B c3c3c790b0bb0dc2da3d3c88695e2a56899cd5e18f96f16382b63c2a96131c662a36381f7935ddc3175246c5374e285bbcb779833afe38d5899612f92b8d4255 SHA512 07fb222efc92ba2679c348ee3d7d6a7f321027e30d2761ae1be5db587c7b6412e99c4ba7a9308cae40e81030c2b9b8827491de59a384a0e0c4fc5388ea6870cc +DIST firefox-128.1.0esr-fi.xpi 606453 BLAKE2B 77b52d23bd78fb7df83ee135d6e7406f1387328266bd800b66218e2c0f0637b8322380233bd4cbd295da2b7ca83db5988e733289676476b35092752a737fe15a SHA512 f6021a592b1c183537297a945f63ea0a204d950503f879dd11045f45c6af33be98d66be4ae37cd9328e0efa4b12882669fe1c671dd8faef5163a2534b0e18c13 +DIST firefox-128.1.0esr-fr.xpi 640303 BLAKE2B edcb15670a4ec2466459cd12be22a5ee70b896e7dda5cd5f6eb7fc7d21e210a556cc1a6e9bc529e1d162b3005b376e0215acf2bd0312829c7292484d91daa899 SHA512 2b5420d91cd2a954b64ba5c243fd6a8ce96180c7d4afaccd1b7ac90a16cd6b3424bd60a1e2dd00457d4886f6d791c6b89c4db619d6e7bb618cfaa88343cd4429 +DIST firefox-128.1.0esr-fur.xpi 633983 BLAKE2B 2addfbf3c68084d837c0c67c566ac3e1fcce024e55c2ebfc8ea685464db16be7de95ed2f506af745a5d25ad74edbed400bdf15b75a227584e0f66865951edd5d SHA512 0dc1cba72fc1f13b89c4293777ca2b01b9552768bcd9a37a7d7789905f6c87266583e8c8ff768e456ae442fae698a1ce04d739b47bbdd9fd8fd4c91d8ba19251 +DIST firefox-128.1.0esr-fy-NL.xpi 623944 BLAKE2B ed13d4e14e0df8bee3e512c6c9a2254869d94d0fd182ba58f1652e0bb5a67c076af443f56138db8de04e9bf8cd84a0c48d8b20e6fd424c586c605c20f44d548f SHA512 a3eacc7dc8148d222612025a96bc120ca1b954800cf46d7076dc0c15fbd6441b0bef5cc723c2f58288492a58f96796b15ad9e1fe29fd4037d4f14c95204f9140 +DIST firefox-128.1.0esr-ga-IE.xpi 470994 BLAKE2B 288ca27695949c1a85fa2277348acce65f71171cb5c476c18e0e79eb723c3add9349d5e0215e200d034913c4ef6d4711f87eb72520a70ea048763b1ed8849330 SHA512 445b573b0702345ab4b5b89d5096e6493934693643ab60ec70179c001cf66058e4d9b376c79105c57e2bfa367a8fdca662d2ad58a7b70be9f1e28f7bec6cacf6 +DIST firefox-128.1.0esr-gd.xpi 596583 BLAKE2B 02cbf6b4c24c2d082783e1f7bcfa8fb04d887b83a84e779e1d12555a686453a123baf32c9469958075268c0ca6f636872c1be7451ad90d1ba2dee49d4a34a8aa SHA512 a5ecb1806810b70a866d69fbfa6fef5cf1a4575efa38c9b4b7d4b45f3609f47d1626e087c38e097335c1f4d827c0919148920757308ef588b221fb317047599e +DIST firefox-128.1.0esr-gl.xpi 604099 BLAKE2B c3d2606c8ba260a0dc4d7d2e7534495481d0759fee8bcc4e502ba04eccb7012edb90404e0028dfc39c14dd78acd7d31509c30e9307ebcc3e9d0150004940676f SHA512 211cbc67b492a43e7731cd593e851daae138b177484e9a0bf10f68b82f1b9dd5be4135c4c2973bf6c92bf800a8900dd025f0b58d2ec376a4e65d10918331cb13 +DIST firefox-128.1.0esr-gn.xpi 637429 BLAKE2B 01dd530e53691418a4c9cf5211154ca26d1d5454d8a744eea4481695bec84cdb03ae7667e2586b8a8dedf81872d87b6587ed998d811b89607aab809af44efd62 SHA512 3c48368e992bc94d2e89cc4edaaffb3af21ad6125109b2126971549e395a657c9e4947c46334e49014afee34519f58e3b13ce9d4a3ada632ab1d0358bb4dc866 +DIST firefox-128.1.0esr-gu-IN.xpi 527348 BLAKE2B 467e0e6fecbeefa58d0eea1158e60a604850e5dcf22f815081c3ba2cf9e04141570e995f1723aa4433e5ca0137606c723e5ac0e9a696879d00c200db81cc60d2 SHA512 c1dcf8d636bbfa939301206b88355ca7c407455ab839198defb678b9c888f0817dfaa44b4a29bd0c9bfa525575bdb298eb7b2520fa9afb723b7562c140d54435 +DIST firefox-128.1.0esr-he.xpi 631697 BLAKE2B 9a2867dac1365b6ba241c332f4f20ea9e9fa9eb216e86693f620885ca5cdd1254bda7bf5d6b668d91b515250f08b1c6a317c7040b389e747f6ae4e3373618118 SHA512 1e0cf300ad3bcbbb22718aae60ee82eea4f9c7dc1cf9541298a0082ffb6ee51680a37a42a8bad335bad18e0cb164b035f8fcd344a8ba89b0aba2f0049b6886af +DIST firefox-128.1.0esr-hi-IN.xpi 566769 BLAKE2B 249fad3b4fa1b0dd4a94d5d4e321328e3ce7ca2449bdd488ec0fc25b10dbd34bc451002141c7ba42bb9d8e67ea05e2e6a09c984749d0c6e20b1ad9be3c6c52cc SHA512 10ade4b914a49e5a48fdfb4db7a147cc1dee6baf7c0687f5bc847251007fb445bdc535f9b63b276a1b576df93522f8706b291ff7682723db8f44dbc8656a0cde +DIST firefox-128.1.0esr-hr.xpi 574802 BLAKE2B 734821b1fa52511d466a8a7e4161b6c5fe8eac2a8536197701061edfa99e6a0836c86643662338a856283f8b7a8b03fcf93c8bb378ec0c34b24c1dd98d024518 SHA512 f702c7a13b2c55b2e11cc4423487882555baf01953e9fb87951d1cbb07664b5c79fb1f9466de212a8b057e9d8c827f342928ce62daef568c61e047c6cf606bbd +DIST firefox-128.1.0esr-hsb.xpi 646976 BLAKE2B 635b8d268c0354037b9a833b16aa5d9327a66d6d951ce9bacbf4264dc6ad40d4b3751cf450e0ebdcd3c9f7a537aa94ad012dd41235dbc9cebe2550f541b7354d SHA512 39c7a35d6bcb02f1a9179f225b8d39c665c21d74ce9625381a74ac72d8139f0389e3593f980fa111407560eb67e5b4d27cca3c2d7cac0128d1cb310860da261f +DIST firefox-128.1.0esr-hu.xpi 649172 BLAKE2B 149d2977b98c797d58b32fc9abd29462a9206a9c5364a972687797ebb19d1b9fcb4834a4c89b46b4b664352b36c6af04d2194ca6a133c699ea7d89d24fe8c64f SHA512 6681b2c340e9cc27567439fe5b0cc304282696b6e2e016b38d51b19216a6ee3608c38a8b2c8775e32c466742bb9e9a0fe5ca0bc1f7ffe35bb0f4694cdad2e79d +DIST firefox-128.1.0esr-hy-AM.xpi 651607 BLAKE2B 7d6aa860750534eb7d001ef25369d6d5a3e75e0a876c60c63ca699b258861dd7e5ced891949d7f70c06b0ee56431adaf5fdbff664917c5faf2f44d52fb8e4a80 SHA512 46cfb3a9f128afc3c89e7667a7cc018c83ff2d70b2a6a00f6d0925b1855e192fbeb3bb17504c7cde6256d88a2478e05cf878776d9dde805cc54411f59fda2524 +DIST firefox-128.1.0esr-ia.xpi 611440 BLAKE2B db841d9a22f3992025df7ee1bd8f0442eed36cc16d4fee5719fcfcc497bf62f5da3f76ff77da6c7523f66114339acac71064fb503d5e230e9edd26dcfc102f06 SHA512 2b7996cb2d0fe2dbd688de2c15f2e98a4fce15b068a7c133e76d94c9ad6d253f07fdfb70f7644d80db7eba152352daec4c7e7f8e26cee47bfb448bf4bf636098 +DIST firefox-128.1.0esr-id.xpi 580222 BLAKE2B 11b2363866cf131a7bd6e44e26a26ef55859848189df1e2c1f0b5856c87baa7b786e1fed8d052252d29c5baaddd80fecac76b4ad91837bc6f942ce00580a3567 SHA512 1babb22c0a23284c2f9ae93edc049f0c681d45e33e426db8ce3645231c358e603a24bfb4e290bfa4c14096579f16274bff26cc62540d6846223257901dc53207 +DIST firefox-128.1.0esr-is.xpi 616485 BLAKE2B 8f73952b44599e08e870ab11d2a0627ed991493fc6b2a9199b61809ab69656e581d5d469dcca2afe3941c5cc2f28144209b0fa8fbcafb8e0aaf3c25f92768498 SHA512 286fa3fc94eb11127f9b9a0fac69725bb33f71baadf73920409de216211983819a221496b8e1b560167fdfb9265db6979f356265f18c91837eb7f501d3a6b73b +DIST firefox-128.1.0esr-it.xpi 567332 BLAKE2B 6d1b2d9e4d4bfe286f909fa8022698321d61fd004f547a95d37551b4e36be81adf3b2ee2682e57e6ce54451abc9dcdb65a8981a8cde9967c6ee074e0ab9841dd SHA512 728e55d35f6def17d54a40f3d59c55cde75519a6a5c6bc725a0dd058a8b8c745afb575e8c4d996c43d0edc75b6d07cfafd1fb5ad4e4d8e6b151596aaea4805f7 +DIST firefox-128.1.0esr-ja.xpi 675628 BLAKE2B c30635c5c1d5cfcbc47501099447adc511555f29608a4132bedb07966f86db0c7ab7a1abd7eee96b872ec216d5c26831e3c4fb592ac5af17a2771a7e3d067fc4 SHA512 1224e0d5a82ed668b9af81efc5d83e819cfad7df8bbe09306a1a5467fc4d6e6da0e23e135b97afd0f51d50f6133f0697f5fe302e40994a1b3fe4a2cf2cf497e3 +DIST firefox-128.1.0esr-ka.xpi 660720 BLAKE2B efb92f8e2b484706ee63f631238eec9d8126d2159a12c6c23cdc3e102a9fa437a665bf7241fab1e4807a084ecd46a181e89cc2e1c17d5ecc09ea5e6bad72d1df SHA512 1f55f7a9f5df663d1a3e515971fd2789c702923eea3ef80967d8f429ac5bd1687fb666b1123d036c0adcbab1bfcf3cd550f47c527cf28bfb14525e2bed8a1e75 +DIST firefox-128.1.0esr-kab.xpi 610552 BLAKE2B d0ac92a798f01632d97eedf1f17d67c6c51cf61bfc7e8c7908759442358929d3def78e1408bc194164460864dedd1fcdaf423034587d10d5c8fa179761738360 SHA512 7acfbc19a8d715cc13c21785e15b1918f96347e5666af5f2155275c4bfb2141bf050b0af8d58a9ebc216e9ebb251cfc951c6a2c0707e6c9dbe99c56705dc24d2 +DIST firefox-128.1.0esr-kk.xpi 708113 BLAKE2B 6dbff6c2b7d484f56df24c2011b30ea9ddd46a87ed575283a573bb544b40cf6f372056f9872b2ee33c62a24ca69b5c2fc389f9fd87fffd547daba4592f59598f SHA512 0f684acd76a81b5a6d96985af7b0f1bf683c32792786f289341af90b5d74d218321acb66d9e5d77641b3031e75250c8122db2c5a03bc9cbe0f112b9626a1d924 +DIST firefox-128.1.0esr-km.xpi 525882 BLAKE2B 22a443dc9a845484e18f3424be90d6f3100763f2c955a3715de53f747c69fb5b3887b792edc451977fbdb1247a0e8c8d17275b3ef2cd01dc2d7439e65252ef3b SHA512 b9d831c5a3741cfd34fa615b4ceda33c7c574cb824865cbc059bf137aab9d4770a38240a5659c9a4e72636f8392bf813d03e19fa3a900d48589cf3bf47ec1e9e +DIST firefox-128.1.0esr-kn.xpi 491242 BLAKE2B dcc7c212e0d22d8f96ede921cb667265668dc1b409b5904286c8061dea99b2a37c61850fc36c65140844c7967759a4bce364e0baad33d47ad49f255ca9965655 SHA512 3e98ab5bb0909d46cfdcb213cfc902688697f469c0779d1da261662b97ca4f49988e7d5266bf7bdc3940f7dd7b93bfaca95950c9fc7887905f774359414edb47 +DIST firefox-128.1.0esr-ko.xpi 661842 BLAKE2B b2672b38cda2a3d60b42ff948fb3d7c891aa61c2b2b1977d8b6d77b637312bd253c19614bf534b4e9195374257cb97bde9e5d87c4f504028015795b14449cdf8 SHA512 8844dc3190c39d647a381984c433fe709d9035d5ce22b3543f43717a8c9decfab19a243495a94aec6d3299089b78c3a2d3b2551e8716cbfd9957c58251bc71b9 +DIST firefox-128.1.0esr-lij.xpi 484103 BLAKE2B 657b96a6269b8d1edba8b4c6a8b82c29911702c2a71e99366b644e3b40b403cc7a948e030bd787196cc75d10905ef70b501db8543ce245955e6ebdc9676e5434 SHA512 bd2e2e1a4cc1df9cfb73a3f3b5f197c6c8901e2a0057914fb5e25055a881a728fd5ab80ffcb1d0d6142c23dc37088af20e2687acaf6730c96f1b2488f535767a +DIST firefox-128.1.0esr-lt.xpi 572686 BLAKE2B da2b7e98c35c3d6ffdad8a90e99730dd5268e63fb8a20445bccf142f2739ec18cde78efa94ab63c48097ae3a102714ec9f4b833d89a80b9780b3fe3566e9c073 SHA512 29f45789def945db487b0743f590ca5c05098641bb538d5c6d97b1281e24c156c83b4809cd84d17fad736631bdc9b219f92aa6f0c014b68d36e59de2b5c8a127 +DIST firefox-128.1.0esr-lv.xpi 574397 BLAKE2B 359f08fc4e980b92ffb2046d7de5361322441d003f6bf45e27aac372443e64b4c462a5ca32dcd22662d519af39611d523cbbc8e791db4c2549ec0e449d2292a4 SHA512 1c83d9a09f2c74101227ebf3ab916ac9f76b835af668b3de2f7644f275e9af444369f4bea57aed3b7783696966b58217eeab28a9a862f458df64996b896e3e5c +DIST firefox-128.1.0esr-mk.xpi 493845 BLAKE2B 5f49b777dd1e22402d9f1c56c3dee0d6cb135c64a48fed0b4c28dfccc39c3a209952248d32bd49977483f5d2f9a610f72fd5c0e18d17f4d9a65ac7d939fe8f9d SHA512 a1221fd6ede7fc95a76c21cae01ac591739d216be0c3c8c5f12c561842ec03172fd383e47406657afd6f8dad4201478a14eb0c21ccb78550107e17e0fcf2413e +DIST firefox-128.1.0esr-mr.xpi 532106 BLAKE2B da3ae38392a77a1dc292f2b9ef6c46f03c82cdc7aa9b7d8ae4c9c37dedbfd6c6107d0a83de1b3f05e9eaaba607811dc26bfdae27d723d6d97c4437aba8e3c52f SHA512 b5bd091c7c5451218b81b6ec303e0201f731751d03071e06efcd55dbac610d5b7daabba6796077f579ce85397a463c15ecaa13365320e136065450b89424fc6b +DIST firefox-128.1.0esr-ms.xpi 449720 BLAKE2B 6d88519c71788646c74bcdd40bb88cfb29f0807657ee4eba4f637b435b13a17b22ca5d5f32720fb4f0f1efd0b6b74512f1bfa7fbca8afc4e04cdb45f8b2fefa1 SHA512 b5387152e4d588ac72ae56675b0af6d8bee31144b080b2d7b5a1b64f2cfbc645c1e9bc6ca3d4345b2703bc73473f40159a8888b78b9d3210d6a7136f312aebea +DIST firefox-128.1.0esr-my.xpi 518627 BLAKE2B 815173166c3c9b67c133150d5ecfe74c4642f3c35872e2f079bad2a775d2b7f7990d2fcc510f9c622c7f49730500e76988f3c1286c089e72dce2946bcedfb296 SHA512 9feb6ab4beefba65629f7a5ca39b244e189c9df9cd4f8577b9dd50a292825e1b4940619b3e2947df04d00d2a471ab98d0b70b00e51f871b8a6d38cb795360379 +DIST firefox-128.1.0esr-nb-NO.xpi 607044 BLAKE2B dd1dc4b96543879f3c79c410e7ddf78e5715f7a2d7e6200a06680e00b76e5777b4da44c56db03a087c3ba12923c96529885b1c64652d32865c82fef68d94374e SHA512 929e3fa9bfbb17080fa04bc58439287a84165e80b109771af333e8477c5967bd32236480cbe662ad9538ce39ea2a85947d6034dcfcab8300dfdf61b664a49f5f +DIST firefox-128.1.0esr-ne-NP.xpi 510947 BLAKE2B 56116200d154f08abd60d42f14cca9aa6932c9fa25af496137f07256e6e07d3a408eecac74a545246e1740a0f3f7ace7508e281d42a1f4adf1a92417553eed1e SHA512 4e8e5bcd9cd7939a89c7dad9247b49f0b7390b69568b5f2b1f839706ecc659df2b5a8ad1f02126daa5335ea4416735ed64c5a3f524cc29d599c1088f32d4e917 +DIST firefox-128.1.0esr-nl.xpi 617626 BLAKE2B 646f43ae271e496b6edeb54813223e33c7c7d5859196016dec37f2b56b3a5378065ed6c4a425d9fc581be03b815e152f81774e6ad8ce0a9d36e3bced836a2f4e SHA512 5d5f4ca4c65d6dbe85d86ca361e36acdf930854e4eb2a064b1dad5de9abd173876d1d0fec80adce51ff701adfc0d90f595d81b3dac87b7e4a9644f8f47b9dcbd +DIST firefox-128.1.0esr-nn-NO.xpi 610286 BLAKE2B 1d16f6951b6d00d95f6f81d2f3251ffae3b4c81e7eb5d6868bf07258e7b05ebef5ee8e0ddbe8050ae3350c02b05ea302b2031e0a5b3bea58b8407675ad294e67 SHA512 d6788c373d312a5fedc0cf1007cebb53d94533632fdb33b9383116598d4801ddeedfbc44694da2ce7546a1252e5b3e859771af271a23b88851f50b6fd54b73c8 +DIST firefox-128.1.0esr-oc.xpi 612826 BLAKE2B e29e419883c8a69c341c7906720d1d2df59f5478b3d2e3eb91f20917d6f3aca5cc29ac8a8766d578353190cd84d099d1b7ebd4b581a4bb08f5ff83694b01a046 SHA512 cf417de30f8729f082582694636c9882547713ed4c603129806092c887e99d465ad09fc14ec3db59209e982ca8b07ce19d69bc429da824f7cad58c53f3392c17 +DIST firefox-128.1.0esr-pa-IN.xpi 692038 BLAKE2B 06988ea7b07a5cb8375a1b2785fa1dbbd8ca9a252ef88df092f04e01c7959e5870e49a7bece3c40d93ad6c2a65349f007889645128d24acf5842c13938e0c10d SHA512 efbc9ef088913b0e03fff86aaa3517fd8d2ec932e5fedc30baeb752fac9e658b0f30afc1ea1742782d34909e894f2a7cc17b0928596eb7177226db64aec78481 +DIST firefox-128.1.0esr-pl.xpi 635786 BLAKE2B a6607475474d312c4ee7a54ae6cad1f0bb4a29afd63bd45be8a49334d2560da8e56758e9a9b774bcb30539629259f1a5726c5d481dfc10bda1a9c2157b86e66c SHA512 1772f9d1c6d92557e896ce4e97f8fefe0c35944807056452f39186a5fcf185a51df2b1f8939fa1e24b9a3d5843b5be2c141ce365d1a7d8ec1d6219eb34b17749 +DIST firefox-128.1.0esr-pt-BR.xpi 622163 BLAKE2B cb3a7ee3ce54be547899b370cbb36ea8fbd15e97eaeb439b17b434316ed6b67ba9ba5cb576b11f9823982d9885bbd11f2366f9792e6f6bdf75b3752cf3d9f8ce SHA512 56d617515582cbd3ede67e7a316c56d1f324255b7739270c3715dcfa286e3b519c182c8192447fb6efde50304b4cb19d74650fa293b10ee6ec228ea859205df0 +DIST firefox-128.1.0esr-pt-PT.xpi 626185 BLAKE2B 9160ad68f2d46d7ae0b68656153b0b639991694fddd00ac11c86d5965a3242920be0c05cce162022bd2fcd72e973b47ffec9c49c925bf319a156160c2453e058 SHA512 9e22154d175cc6a02ef2a99bf8aa465bcb692158251ea85f7d400efe817db1ec1f8fcd96a4f393d8103a6ea03613bd67d4bccbb63b4a3d2e14fc00e8d204c8a4 +DIST firefox-128.1.0esr-rm.xpi 617923 BLAKE2B c9f1bc265baaaba70996681eecfc78073ba99e50f6b34105a70cb9a85689c708b9e8e2fb87287b74837954eefa54223acff2ee2b202f906ac3af1cb8bc9bd1f3 SHA512 a819c18c10deb5c1a0c315820b0d16154eb8a382b1c7b69bdb1e815b3da25a78e23e125ba07a821fd875a6b9a06138625186c8dd5b7bebcf544b61cf865bbb56 +DIST firefox-128.1.0esr-ro.xpi 549787 BLAKE2B e5b419eb3f37b2b53032857ad1186f34b0e602a84eba46b63ea1ff244032accb634935e492ef5444cae35b66c8311d6545808572701bffd313f1f164bd22d55d SHA512 8d05d60f250a7a9584724d4ac4f5f3b78192674e80adb1a30aab0a3791f973ec8d7582ebde8305575e02e3763b85ccf1f24dfc8dc83cb4379eae43ab099d5316 +DIST firefox-128.1.0esr-ru.xpi 720695 BLAKE2B ee2c5f0bc3fd0cd0f1248606917aede08aacb61c67a36230256b22f3002f5754c8f7a73b54e5a1f051bb02057f59c34271cf92d6f9516ab91e177e8256e2a02c SHA512 b8c259321b46480c25d1157dd7558e06606a4bfafbebd4b6b58c3d58c37e728444adf82a6034141c545fbec9d355550f1de192e2f06b042af7a79570dbbff2b2 +DIST firefox-128.1.0esr-sc.xpi 588590 BLAKE2B abe7197fd951673d9102a0893679b4c5b374a86ecb00fadb629d88f364d392739f88457ba90e0411b446248d90e5ae827bf71747d6f7ce9e2ebb2fc167f345f5 SHA512 ebd3e74988ae73df6758516dacc77ac5c62086970d89142eba34c95de0663169faf759cc9e8555cb55df4855b849e59bd44e0d7c9f5897d2e658c3c25124c41b +DIST firefox-128.1.0esr-sco.xpi 511277 BLAKE2B 1c041199a101ff1934001288fd0d9ce08776a186ec6e43946e1be32c9c8736cb2d14716902a192e8f08e9baff96cf0b696af98d5bb35df99c3bd71002c46e4e6 SHA512 a402ebd4a27a66f611c083c51b7b3ad8bdc1affa357696c993017dc7e7e182dbb55fee63583b36561e8ba58cd719613760e10a5edabc0f721e4b025a538c5c5f +DIST firefox-128.1.0esr-si.xpi 611298 BLAKE2B 301cbc928083baa24ca3e86775c3d88f90cc7dc064cec21d74edea7609d5d196286decef9fd222d1c08599d8cb370f801df3c576d3ab1394da32df08f355a7e2 SHA512 8a632c3055933fc4e2f675232a630950c2dd65da8b220801cfd32a4b09d9958fa675527889b33ca57f8180271d88781a620dd0078ba8eb9da46033bbf1d46f98 +DIST firefox-128.1.0esr-sk.xpi 652701 BLAKE2B 97ce1fcc3b0b764991313e2957f0bc8aa95339f6e1af914c269ab8c444f97294241c6fd3550269592d771bdddacd2f3451961c51813f6c49eb3772ff5dee44db SHA512 46756945be6e91cc398e95b7ea1b01d8ec705d5b805e6ea12000ef27a868eba2c0c651a246b78015f5d841ccd8fe204bc87f528dd10aa22981c24d9f05b2480e +DIST firefox-128.1.0esr-skr.xpi 707654 BLAKE2B eabb062b4e94281fe09c0d0ef182ab5a5f75cdbd8845a3e1edbfaf8bce289d5a01bfd7e8446723a56af0b2f86fb807acc6cbc1c9f3510574ed34205112acdd0f SHA512 8dd06948063d8bd789c89a9a2dff75d4e149100c939fe08f357633e170ea7f62d196aada054a8a9760a054466f8379225e6fb0f4a6362c2725508f5390b17326 +DIST firefox-128.1.0esr-sl.xpi 617916 BLAKE2B 44d4681b884ef0bcbfefe787ec270469844f5b4b0165076395370fdadac4ea3e784efd8592dbff959b654a09745bb44a8154a1feb2b3d3bb973bdc7c43bb6100 SHA512 9728f40be5507e0b04e59069e041e82b38151eded17446f6098f39be846dbee290aabfd4142207bd90f782fdc0de204cc3df2661e65f45dd2776a6121e6dd9d6 +DIST firefox-128.1.0esr-son.xpi 416392 BLAKE2B c1f637cb47a299b69a1925d398ec5f7792ae6923a444af70898b77dd8b85975fb7255b426bd7e3cc94acfc1a1c53f49df0316daab415553d33ac274db9447895 SHA512 c903ac44596f0bd3bc781af42efb23848fc7dae620770cf3134b71b71153b02b79c6bcda264aa58619173fbeabba75537f8b255f42af14adc1a1ea123d69c2c2 +DIST firefox-128.1.0esr-sq.xpi 636978 BLAKE2B 9d83ca5361eca1334e192fb26fd95f74b836c33bf8abe0e534a7873cdd08df77dd0a0da124de2b28a7afa2590b0db5b17e0fa68c8f6e0a30e940945b586072c3 SHA512 dda78212084536989dcaefceefc8fa9f048d9c8b4cc6886c5498091be35d3534e39a71d83aaf6a5dfb56c9b29846d8f12c853b088acd3787babee781262dba20 +DIST firefox-128.1.0esr-sr.xpi 639362 BLAKE2B 0e3d2ce65f20f914a2af4ec918bd7424584268e0f128de48d5e0694c8f52610843768c0c310f930f1e724e0f5f9b7304491cc3692146327cea828621ba3f2136 SHA512 a760b2f74d3ba7360befa385d91dcc3008d9831afed5a47f0934a4ce51af46e1322d2af68fe8d67a3a9be748ebdf8b7b6b63e8d95d5a7eb61a9d72fbe6169948 +DIST firefox-128.1.0esr-sv-SE.xpi 619365 BLAKE2B e03b747786895b0e2789c9267173fd93052361d12ac930a7f821988451342f3c8b7b9c15556f88f2ca30bbe246eecbabac074ff0fdf58d7dbdbbe03b5ca2e5d1 SHA512 d12b6aff91e92ea3129a3da68d849fd4f285a7445a658829c71c1f9fb84c7875389b24635a8ddd6f1d103006ea3d62d6a8139d4ab3b7f7eb872f715a5672f176 +DIST firefox-128.1.0esr-szl.xpi 526394 BLAKE2B 3268392c6132d0ba0cae5454f3c4aab02fbf67c15a5dd6af85e3fd5554087fc36a924fa3c087b1f80835dce971f48757a5416a63a30d87957060927773d8c089 SHA512 dbc7c096bef5bf91b6730a873e471b9f9846781ee66e4f7a1b2381e771e4a70e5f7ee6e7fdfcc8d2fb6b5f3c775e9d1d2e8c79cb55bb54c10a3031c185daa58a +DIST firefox-128.1.0esr-ta.xpi 507523 BLAKE2B 1d0e002c39e4eefddc84ce5f23d76a02ebd796d3bc5eb7fc380092ec39e1533649d18e624618d43c02b68781c89cb5be8640c6270b4fb3c383a84bd7fac04372 SHA512 26bca1a6312fddffe2543e8a66184d5cb8ec9cc916e4d79ae12e67209a97afa194600a9cc65fe4adbafc1521ef42112c1ceb3c0ea72daaf072f5f1a936570a8f +DIST firefox-128.1.0esr-te.xpi 561038 BLAKE2B d7278ec6a962f183b069fb368535e075f89ca3e076d1e7bd854ff91c9cf1b8271b011ef36f7c1362bc71df2932743363e283f1e812302c4337229874bae90283 SHA512 bd15d31573eb0744296d6cefe29ea941e6882d30dbbb742ee89dda976ae3df89544b548a1019dca106bfb20f3d886426d7cfcbc47df4093c59d86e6641cfb54b +DIST firefox-128.1.0esr-th.xpi 694370 BLAKE2B d6a19282fd71fdfb17d66b28aca429e34db0490bbd84bd257b9e5deda195e419d498f214e818055cf525c9cba43456c6c64bf12e38f4d6c1caee3ec29d5fbf94 SHA512 e5fe1ebe84b7cf52aef17ee0b8a7fcdaa9d014d393fa8ea0c4133fe846a07712dd0bc9e2be19705e9c1ba2cc063f992957c86896bceeb686d8e2d2f2c324251f +DIST firefox-128.1.0esr-tl.xpi 534193 BLAKE2B fe4152452e688d996da36e21d8fb3c06259d78ea417935683ee853b4fd60101c9be42827b408d2e9f9e4c21a7b8ad39ed8c9c44b8baf08d30b84297ff3151207 SHA512 bd755c3412458cf6eb978e1d37a35fd749f6f010c385f1477e5240dd25163b8d013fb83545bc5ef6752687d17ab19ec2fca55ad6b0fc730bd5e7447c07bfbc3d +DIST firefox-128.1.0esr-tr.xpi 632685 BLAKE2B a974f4c8b64f48285be1444fac0450a6a1dea1470892a5e61e7ff32af01a9bf8a0d6fbe353eed58c0603c77a0e47e04d8f54a27236062c31b22e7d45db476d8b SHA512 410b40be588c1308fda41464fa68443d39888f070df2f7904925a8f77d603f412259c82cc3e7bc8f1587cc0bfac87146e3f3e593aca6c86b11fe37e7b46fa376 +DIST firefox-128.1.0esr-trs.xpi 503987 BLAKE2B a3de7338321223ebe9ab1185bc9d58792a71cbbdbd95099970d0be807e9dfa4100646ee2d6b0050102a4790c0621b8d6abf97752dda48077124c778d9e4f3f24 SHA512 c5854965443b9b0cb617065bff81a9732e4dbf3a1a38fecb68cf507ccc18e7cb1d6affa3b10f200923fa8352d629c732069cf35f1c602c59dd134bfabb1d88a6 +DIST firefox-128.1.0esr-uk.xpi 707283 BLAKE2B 34f0ec486ddf590de71ba5f579a7e83c7bf89aa0db1e1a55ac6545b6e5a44c03acbd715b183d52f5a0323654f0fa69588b7a3cfe82a9692145b5d10827dd9fb0 SHA512 9d6ac889307cfaa04d3a4188c43c699706986b2a402b3c607d7e5752e890645ed43e909af70ac54bdcd7d47385bf6d49e0ef864342cbb31505a5cbe1441fcbdb +DIST firefox-128.1.0esr-ur.xpi 560482 BLAKE2B a7f81932d9cf660253c5ddc5e229538f5365afcb9b44be6967eec83ba6bfcbc84c28e830ccca6866506bcfb4f35c5627dfa661c83dd4f709edc32bee3133dc6d SHA512 66da85e8684a4f36f0cf8c0670cf0429859a827b6adfd627b4712d110e5a40888f3cfd41e3300be52a5d21bc976e92ac331a7a61f9ae4148fbcd160d3c5c7602 +DIST firefox-128.1.0esr-uz.xpi 478781 BLAKE2B 4763c191cf0497981af8279f3c8a39dbf9fdcf56b7d883ae1d794147e8734009f247880768a19fcb2138e48e9b5e5a692157da0052d70f87c65b69348199e9a0 SHA512 34d64c137f03e0ae1fa9820d7ea3b4ec79064ee2d7faa752aa94652aa4131213cb7cd1e3c8e75d364e6e63dda52926a96be5749db40111e6fd8dade696ca1d0e +DIST firefox-128.1.0esr-vi.xpi 655578 BLAKE2B f4a1afb49af9170608bd106c6655a415dd6c5e167a45db2c42031d9f55544fe04e0137f49ce478d0007eafc07da003875187b9c887f32315f108c7f332258fca SHA512 75ac1b7be4ae1971f8ecd09a0d96da7150528a1880d3264d1f4dc10ad89ca5986dd9d774a551c3b4cea554bb0508f03f8bf231750f9db1ebd601dc29008cf368 +DIST firefox-128.1.0esr-xh.xpi 417178 BLAKE2B db647fc6764380635d796baaf6084094f15e877c0e798de889c2fd16bf71b318963dfc6d9c2a6f1a678a241970bc49e85ea524c7706c86adc2735ba47cd1fa9f SHA512 0ea3a9f7c35ee95645a973c68bbd61c871ae378141a10dd6b4826efccfaf332377bfae4d6f14840787e2e06ef80864a3010755cc56d9d05f46e9bc9539ad4542 +DIST firefox-128.1.0esr-zh-CN.xpi 657339 BLAKE2B 37acc3369de9339eb10a39211526bc8cbf82f3962b0415cdf96b9933fa88fd5359361fa6c0a32545cf31cbd86d590efe9814b67d835f486e2a39387c00bc6e04 SHA512 524d90cabcf3ec2f882670db7571156c61b19302371c3c17703fcf3abd6758aea898b6231c51a50b3db6607855a6d79677054a9b19cfaa522bde9211b9ae30a4 +DIST firefox-128.1.0esr-zh-TW.xpi 659474 BLAKE2B 98d0e9d960a32692cd34e4ac99ec5494e74b0b55d45a2f36cd4f722ac8ea2c9074c733ef2b04a0bba60e9622c26a14bd38d8eecf8a810f0819a5c85615023ef6 SHA512 1a431fd2d01a78fb761c812bdff06361c2c5f59fbda12656a38622346cd9370e6748b61cc98ab38a3d31d9824aa9f2da4e90a0cb6d0533e40136aec7ac8f1469 +DIST firefox-128.1.0esr.source.tar.xz 561953208 BLAKE2B 6d22bb17ad22d5e29008fd98f6b90bc6869f71c03b09e5b24a6a8a8304f303b316131aeee5d3e5f175a9194074d586a507ae121b9397aa371839dbdb1349f2bd SHA512 8055a7f83acf0cab6124ba5809aff1c082e81a0d30ff318ec719f8fd3f4af9aa60e2094c1abd6c981193d751075a9569370176e20e50f3c1959fe27a15511388 +DIST firefox-128esr-patches-01.tar.xz 19380 BLAKE2B cb3ed0eeaa1ddc1df936815c594eb3b7beab20b3560b52a63436b74a191a0e6e8c05c4d65084ae00dcb30ffde1907ad8194211717a50fe55e8e23ab306d8ce9c SHA512 17c723e120f3057de276863d367d25111578cbc5a333718f230ac3bccac178361ebd795f67b522aca199e17b8ed298d070020884ce6b5b4a0b89a60370166570 DIST firefox-129.0-ach.xpi 466194 BLAKE2B a18d754a9b5dd64747edf34033d31a648d83080b3075b206642c4d51b7a1eec3bbf8827582d4b9d92231516b884c83996fe2168788fb34eddf7ac4238dba8c77 SHA512 c0701e51be0d88c6b8c9593270a2057d65113749f0a8125ed615b4f7377c7551969c094354956f8f760b2af4c69f920770efe8f42a7d0413c427a629a0837ed9 DIST firefox-129.0-af.xpi 419668 BLAKE2B 4b2df5012e61401763be93e75a1ddfc05c335f4ea21784f97a89a589e45487fe4960d390953302b9786554233f1ff7447ba0bc3baaba8ffcc2d99015659c59aa SHA512 2fa47594c109db5eaf862a902b0fde512cd8b3c85f17b7655ee7967c0eb3a2ede658c708e840888f04135c0b7f3391f5ad1db041e2eb67b8387e441f0171e5b0 DIST firefox-129.0-an.xpi 508149 BLAKE2B 8d6c6e29164caca9c8168a5c0bee6e0a55b265a2cc56c00d5597869da363f84ce140a1866522c8d1ab60ff716162a557ffba06e4c56adccb3443d41e98705d9b SHA512 47342df2c72b6fc46bffab217b33df8375cadfa92fde2fa3764499f4d9e7c5301a6124740c11963b0a7db0622b3ac6a65ce57ff101882feda45a40e65a9cae3d diff --git a/www-client/firefox/firefox-128.1.0.ebuild b/www-client/firefox/firefox-128.1.0.ebuild new file mode 100644 index 000000000000..8ca5d7c119b7 --- /dev/null +++ b/www-client/firefox/firefox-128.1.0.ebuild @@ -0,0 +1,1376 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR=yes + +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" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +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-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-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} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo" +IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg" +IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + 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-wm/tinywl + <gui-libs/wlroots-0.17.3[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.101 + >=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:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + 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 ) + 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= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + 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/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# 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!" >&2 + einfo "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+=( skr ) +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' + + 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-r1_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 + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + 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 + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.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)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # 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 + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # 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" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF 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-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --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 ; 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 + 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 + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + 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 + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + 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 + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + 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*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + 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 + + ./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 + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + 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 + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + 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 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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + 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 + + readme.gentoo_create_doc +} + +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 + + # 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 + + readme.gentoo_print_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 + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + 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 +} |