diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-08-29 16:05:39 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-08-29 16:05:39 +0100 |
commit | 55b8da184993b6b27e0426838d77dcbc741e12cd (patch) | |
tree | f84bbb7ec4d7e42755046582b7d2b6529c7cfd9d /www-client | |
parent | 20325cfc3bd40d48d3c7034afaac4f5193d9c704 (diff) |
gentoo auto-resync : 29:08:2023 - 16:05:39
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/Manifest.gz | bin | 6050 -> 6048 bytes | |||
-rw-r--r-- | www-client/firefox/Manifest | 102 | ||||
-rw-r--r-- | www-client/firefox/firefox-117.0.ebuild | 1480 |
3 files changed, 1582 insertions, 0 deletions
diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz Binary files differindex 9e3f68e35bda..17fdfad6a6fb 100644 --- a/www-client/Manifest.gz +++ b/www-client/Manifest.gz diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index fc0acc608a24..a1f260daca53 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -308,7 +308,109 @@ DIST firefox-116.0.3-xh.xpi 401664 BLAKE2B 1de763b5c8827217095f304d7800d3dabf78e 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-117-patches-01.tar.xz 21328 BLAKE2B 938d24f456a8d7b68bfb5831d987a042417a4978a128fa32cadebe4201f17849196ec5506ab38227e4b0d696a43861c8463d12080619eb42b8a0eb7ae340778d SHA512 1abc64c3c891bc6667a8b591e46ecd13113d1461cc15a21e082914392419284c0108400cb9cc28cfe8f941cb9d6d803b8393cf970263d8d56cd8e2ab53a9e1f5 +DIST firefox-117.0-ach.xpi 444788 BLAKE2B ef17002a9dcadd4b27e15cb16a916055acb69a1d5753744efb9a096351ff7e79a7fa4b3d809f55d17f75d74f970cf40793df18ba6d9c4f1bea104cd8da8f9aac SHA512 43db55e41ba8ace6ea453e76dbcf9621b62eaff3928e465c3a1589ed37d9d6ae33f82aaf714dbf739be5feeb7f60ff5d1d134c3480dcff5068a4a5ae1bcf5a7b +DIST firefox-117.0-af.xpi 401860 BLAKE2B cc8253085558e57fad333266889ac7f861b3239f550e8077a0d6a4549a3700e0369abb6cb68e88a2fb7d22468f71d187852863bfcdad91f801eaae7585b9fe61 SHA512 8ba9d7c8333150eab916c63e2883308e6e0a697bd0029c805810ff14f116bd8fda5730147e84546e2f9053fbb99dc90a5f24756e12b79642e6ffb40070bfb729 +DIST firefox-117.0-an.xpi 483716 BLAKE2B 19c22429911e27c05ef476733c84a2cd33d9a6f55b1c6c24721d95d046a3c4fc43bf424975613eb87cc9f808c311e0681f7270f2f17018d5249625abf0eb460e SHA512 d2bde00432f39412ca459df9ddd3ddc92b7e073f4ee41250b8fe74377a886e6ef6a9e6d7f98b83007c831824f5894a76414c4286144a845a76920026bcb556e2 +DIST firefox-117.0-ar.xpi 550582 BLAKE2B ee97e036f1cc26ad9f8f9d9c8a48f5119efd6f02fe46f9ea0988e02dd1f09cb116987e2e3472e47073a89abc2c1a28c30299000d2a14c5877821db570b6493bd SHA512 b5175bab0c958246c27867aa8a26e9c5b5c69324d88962a205ded2ae600ed8c0711b29156a4cbe32b5712ca4250cb4c28371a350e66f7d33e64d99bcca6b5efa +DIST firefox-117.0-ast.xpi 477429 BLAKE2B 1d16a45966113db7bc2c8d75d0921e0e5a8160a3c01c46e91978b7ac168f1a94d1618548f9d2e1eab0815f2f37d922d3d6205f1d8a3b4547f709b86f5ac738a2 SHA512 f21c4a75fc9c398552ddfe2ae146fc0a5b703c50d3b6744ec7bf29644a7793829a365204824c18e09928712757d10a3c2199df6092cfb3d491deb1e167d0044d +DIST firefox-117.0-az.xpi 470714 BLAKE2B 2d3967eaf45a67b7bb6bc4ef467e45b2c36e484b4b2760cde703b797a38ca9b1a08aca23f2db3b6f0dcd4548dae902211a3358dfa7a536e44332cbe0757d91f5 SHA512 7cf3c68107244905b5c33a9561c9a2f4a685d52742adcfb30f2b3bebfaa95a04e1c7237e38b7223448bccc8486755bb8709ebbecfece7c1f3cac2c368618b143 +DIST firefox-117.0-be.xpi 652078 BLAKE2B 4d70a0377af74a809b8eb8a8fb5e506a9cc7343a7c38cdd4a86c1dcd8df67c07a3d0d2a14aa468a85cf174e414264828fed5c0694b5a1767bdead9cd5b794830 SHA512 d5cdebb39cfc80116af6cfaf1cd1ec4966233e52d0ef297f8c369a05215cce1408fdd5197e6d7d6f09ad311fdb1f1a691a86473ef5cf8870c93310371f2fac32 +DIST firefox-117.0-bg.xpi 565315 BLAKE2B 2e78a8117e7f0f7696424e8a4d8169fe8fcd9ad09520e39900cc1c8c2e9b1b519f01d54c44cbb83ad0c8ceaa9029805600ce4b7d7f45e5bbca21c05c4b17931d SHA512 033ecd5ecdffe1c8575950c123e94789268d015c32315fc103f7ff7181cfa9fc561ba8512bf758db8e74520533688d95b72c29fd46f645d5af6d8c2110b6a240 +DIST firefox-117.0-bn.xpi 559636 BLAKE2B d96874de55aba2d963216bf0d202f6ad3665dc5937cf452ad25d8102121a8b74f0d7f900c723f44abd0b3dd857021df93dd0449cae66d71606ade250a474e0a2 SHA512 d4818f4e2177aa45362274e3872b609da00694814be834fa1d3d21f07571c0c40b964052ffedce64d0525607977dea371ab03c6758249539700c6d001a3c6470 +DIST firefox-117.0-br.xpi 542781 BLAKE2B 5fdbe2b23c626c0ab0741f1002a3d7d7c9523be1c651067ba30d732a23525c848aa5de118d315d8e70da92e6b9fc388bebb1e5b382d25ede3269dac8254bf104 SHA512 c97b0162e0f4038e6015427e773b15ff805c4ed3dcceebc82bf86fde2864a3bc49c57a2c37063830de68a9c40b6c60bcfe110562aaeb322db3c837a78f0b0a5c +DIST firefox-117.0-bs.xpi 440964 BLAKE2B 79da02c1efbec5a36cd57658f9596eb0c12876e18d39d45caf31d403347aa33bf06810f80b8ed22998c21c0d592bb314a47a44d247fc22712dfc1129b87f56f8 SHA512 beee21e4e6e877f3f82438812e60591b8b213fa13ebd7c40703f096aa961c43e5e8addbdf9c2c1f2dbf14cfb305af09ff40e0b4d5bfce478fd00a595abf0215c +DIST firefox-117.0-ca-valencia.xpi 522898 BLAKE2B 99c09cb50cf522a454b842688707b42f88e1af7cfb3357d068540dc5167f70dbaf3f4400f4492fc5b8a36843b93dafb9d06571c0eec89b8791c1f6226e05578b SHA512 6d152bb902dc5c78063f80949f60e5f9deb95eac3a0060401e219432829b45271818d93daafa791dc73f86635aee13078d09882d519930fb4eb007fb962885c8 +DIST firefox-117.0-ca.xpi 546626 BLAKE2B 8118f313ebd9f4d6122343a219a90e68b7b3050b12456b2163f170ba2afab9a0f12ffe3b5ea65dac921f2a468d671a8e28fc7e6f4607ae3f29d07f3ba60b8bc5 SHA512 83d49acf492fc5a97136b68597fdd7c3a3c8bc762d7f0645b7c2ea4d4c60cf4a500cd0c83f6cff388885c6b9a2d09ec854973162877b3d2c2e7a317f4b4d55c2 +DIST firefox-117.0-cak.xpi 567755 BLAKE2B 781d88dc7efdf8f430428b0fd6491bfe024a1ff73741d6c933264325f82b5f158b58c6e4f2ab1f6695206f4330a0ce114d556c504996d71a885e2b89423039bf SHA512 b72209ee35691dac223b68e7ba12183707f8b67ddcdf13d80d0c1d8020b7b1cb695d83d028f48ac2b67a43d8ba5044dd361e91650f5134971a97acbe91f825db +DIST firefox-117.0-cs.xpi 596748 BLAKE2B d9bec9788797a7dfc69a68ee6e2cca9135c58c422380d92e9d6ae2099039870e2bf65fb287ca6914f88d10e1117422e221e43ee8b0eaedc6e578bbebb51f5204 SHA512 982ae3532ae0c75156ea5ef79c2bae719b03fd667f7b81924d6255d7e6b6a66c7b43357adb7b23eb9542149d57fad82202f491e2b917c59e289a3ba0682f90cf +DIST firefox-117.0-cy.xpi 568486 BLAKE2B 6995a13783581a41111336104d37ad8119e178749db7c9b84576ae3310e7813b27054aa1f6eed4432fc38ec7dde1805120767447834bf2a3464f259fa15893db SHA512 ae3f51dc95f0fe8939d8b304731c210852bd2b96a4d57138828e83e4814c7506f17120271b43b09b85e71900edec00a9836be2e532a69f47585bad12cd05c2d2 +DIST firefox-117.0-da.xpi 557765 BLAKE2B 63528f66845bdbdf0624ab9939dd8dba7b3b14763fb17c43a8df2fd3fa2cee1b2fe8dc711d87c98fa0bd1faf4fdbc77120791bdde49c606cd552e05e03587482 SHA512 c83f058c3241a0f422e0c7fcadef233f94b56b348e922721ed9538dba1866b775f8d057b82ac564eedaaef05093b9131998717ef96e05931ebf5b57e9d01f6f1 +DIST firefox-117.0-de.xpi 578122 BLAKE2B bdeac0ee710b35df8726b84445be9ac66c1d5d82314f06d4c3ed500a935326726b607dee59f0d0642f60f2d4b721858d9afb11c9cf9f5c77c1066391d4244b1f SHA512 c1c0a33a3fe24d30e47afae40ae5f631e32b7eea52e214a8565847353a1d4d71bcd9112fcfb84a30cb3a249ac216debc18ad8741e1676ec79695d188b2160501 +DIST firefox-117.0-dsb.xpi 592974 BLAKE2B 7dd640b7352ccb88f4e287338ee785a397f00f70145b6464cf036b8a6f27ece336da665914ccfb8071b0f325197c0ac4db03aa725012bcfd208b8871d885579d SHA512 02779be2fd25756f47a8289d6f16e4778fda98c3f29a40ae436b286005769a0484bceb19743a4b098b821add52af6191411bad726ea2aeb343fbf7efa752ca76 +DIST firefox-117.0-el.xpi 666556 BLAKE2B 14634496a7ad092ae8dd3b2f20aca76422ee3436b04c8b3239777f15cb5b2b74f2bec21cce15182208c7df5eea44f9ebb0f902c6b8f3875b9279fd2428545a16 SHA512 934f48cf60e0fc1bd576207a5f56a046639f25b85643c0348cb57e47e9ea2a6ff0190d0aa71560ac5dcfd8c774c389056d9fcd9118ca32801b8461ef2975f805 +DIST firefox-117.0-en-CA.xpi 520398 BLAKE2B 0d7b3ceb4114a10fa3b455b9a81b7904b29a7e71fa14f11e5b00f8bed2380ed725c017b2b890f334295b5f676bc1c9ff97d9ce3c6d5c450f5859dcbd54559ee6 SHA512 35bfa6551d7c7df720f256668faedd509e14958ae16e7ad82ab464e5ef5722d3f88a4cd5f7bc50843cf7ff8ccf6604695780d23cdef9c7dfc3b221b8f42fcb7c +DIST firefox-117.0-en-GB.xpi 533890 BLAKE2B 9f3d81fee98755bbf1db1fb5bb953686a12165073afeb83f7d8893e0b7d7ff35746d9ea209a3d64560d612268521e4d528410ed10b41b6f0d8cbe8b452bc9b57 SHA512 74bba5adeb4c76a0c8956e7bad49ba262222859947123da6dbb7e7dc90e19b908c24dab0536fec6a3663a71fc1d99416cbb0f860b10efa369305a9cb93b7ab6f +DIST firefox-117.0-eo.xpi 561462 BLAKE2B 0e5b0af86d63dc7f48e39be2639ab886fa1f9dc4671fc534d30ea98ec7053c9bc6f92430e4b9a5355a4f113bc7736f5b76f6a2e260f71c395608fb4e295866d5 SHA512 d3659dcdc82869c38762203af0cc5a77151b0350415b00c27855d9c3b350991dd214f965b2eefd37e861f961f81f2b366178e1579bbe85e92b8600102c7e9c21 +DIST firefox-117.0-es-AR.xpi 572715 BLAKE2B 07260f2dc970722f6cabfffd8194dd5c35227179ceb1d752b4cf18a26b8890c59cd9962ca8d6aac100a2c2a3dda17ae94e75b9446ab6f5011d1f7880d4008851 SHA512 2e13b6684577d74597a5de0ad180b8ac80f96387b7ae8b9f03c97b3a38ddb4c4965663fe40d56dfdb36177bc802daaea6ce485e32b0eb371b97e932ab1717460 +DIST firefox-117.0-es-CL.xpi 571659 BLAKE2B d9d4f99a0d2e993f7905f110d5a751ebee3e808c5736a5a7ca28bb3e7c9b476bd2cd169857658e29efd94006f8b05caf8b5ca855147f72978e50fb0415520e72 SHA512 bda99013bc47fbe7303f9878f803140f2e341afe451ab83840a7e20f6f908feb33dfcddc58da27bc10afacb9c0eb4da25f3779f7ce629e7bf1e7ae028b6ff71e +DIST firefox-117.0-es-ES.xpi 564574 BLAKE2B f5a60d0081ce7551035694a6bb16415ba9197a99be0c8cefd9285270259d8b5acd286103ce94246342a3b8aa55fab68e3163144764b7282c6e0a85dbe3e7e2ac SHA512 20572d7f0cfcabd70c316d35bbd7576d22dc786dc55386bb0339377127886f1ae5970c1f57bcba8099555ce9157a16737985434eeb46ce20436b3c1ae4e49c79 +DIST firefox-117.0-es-MX.xpi 566692 BLAKE2B 145338c3371181c4cf7f3f5fc42d29c869dac71c089e86f1bc43ebdd7036920f69a1861b10f85ef2765d061ccb4d001ec1026e11797aeeee0f64b2ebe8d25698 SHA512 6137113905497e3eeec6ebd3eff5fd9277d5f67d428b690cddbf6a082e6cc84630709fcacff27965b2d5f8bc016d1db491c5275385009148e0d8d8a4ad4a0506 +DIST firefox-117.0-et.xpi 517152 BLAKE2B 844f2ada1f47fa432c318789f9584d7022a4125c776c82a0f169dc37b7c009b90a9639bffc769b004e9c6e7d505d6d30f0386cdf239e5a7ddf6b8f8f5d93f546 SHA512 67bb272836e63c5f309681106f54241d8e6ce25b11d50d2358d5f837a80739167bfdb2fc5b61b2315def5c0117eb388ba054c9fee017d6509a4fa2550094f1f0 +DIST firefox-117.0-eu.xpi 555901 BLAKE2B 3169495bacbc51c128b74027182ec398c4dc1505d6d5e9ae2687227644938534d629c07374a5dae8f1c3ad7a5cbc98259d1b5d43fbb4ce844fcf54401c1ab120 SHA512 31376e7cbcb9e01bfe3788f4c1c122fcf5d1ab8e5fa320fa9250b072778098a759c91dd66caa36fcf31d330c87004f4d0a2dc1afb4d9fc5a10d20c6808d1c7a0 +DIST firefox-117.0-fa.xpi 567396 BLAKE2B b4255a23990b442eebf4f6f5621d8813f1d6eaf83925e8d63f9891b9fa0491f5ea40a716dc163149adf5469a73cf01e38df45f787ca5e7fa86e8926b66f68ded SHA512 cbdc310c571162f1b476553abec42d90e9443fa9f2b844b10bad668416d30a1086385319d0a3a63ec2cb3868c2c76ebce16e97451d40593ac1a6a134c7348d27 +DIST firefox-117.0-ff.xpi 456765 BLAKE2B 973909392492d6b8089fd941da4d94f3d46306a219d4c9092119027e46cef208832b7dcaefa96c50bd4a7de43c27e344b6b203378d0d74705adade3e2208d01d SHA512 7bbb8e62e318964672077de0f4b07434a262d28a745aa8bd0c0ec9ae999966cc06d6f87dc2c9e6feeb7538c0cf2234da2100720bb83600b4dd1f5709aa249feb +DIST firefox-117.0-fi.xpi 555264 BLAKE2B 0a356c760d2f792b0b8a54867b581e839824eb03bc4965b950494e775141870a8e862229a4aab1ad5ac36d31c2d4ed5cc9e3534fb9ea9c1b2971d9d2e36c7f22 SHA512 3874386c61578e68e676395ea89cb0706964dac2719c6d0e69415e462aacbf71ccc253e28f5a21dbf01eadd123bdf65509c05feb49558ce95df25cca6c27ef47 +DIST firefox-117.0-fr.xpi 584461 BLAKE2B 38883834c3b67e19b7b81e33874d0e3d7741f499252555becc3ec400ed9022bf9dc6888dddeda9a419bf6d459bb6002acae66e44fc75dea71763a9c58f38d038 SHA512 3672809279181c27f1d07d666e2c15aac8cc6bc5f51fe104abf993dba54df4e3cda89cad2d498317cbdb70262517f6d13b56230ad2db2652b78b29c7a162fe3f +DIST firefox-117.0-fur.xpi 576608 BLAKE2B 97e7fb0ab96f99193bfe45829ef8b8c205da2e1f4e7313f0d2c4ff4d7b8c4b78be1adb7228b05adfa3b16a1f1965ecb49ec1c4958d068b26bf2f0fa7d189a081 SHA512 96aae8a6c016b566f0e116d0d27ed6c034239072897e14ca0ecd89b484e69e4a601da53b6be873ce63a9ab1e198e056f8d4e0c7ae62b2123f47122e6d863cab0 +DIST firefox-117.0-fy-NL.xpi 568063 BLAKE2B ddcf440d28802a8a515349faf18d5b8a4b61a7ec76395d221cb1631252611c8d49af8ae5f42cc7b2808c0bdceffd53dd74e80d5fcb14f58c5117f54080d74e2a SHA512 2d10b0eeb2ade20e13e51010ce96683c25f5688944a7a3f9a1bc46e0285ae9114770798e87a1f9c96b92ee89bf0c050521cc4e6ce6a6aa60ee54f03e0c7324b0 +DIST firefox-117.0-ga-IE.xpi 453864 BLAKE2B c474b54721e0857cea2187ebb0019d5c99cca728de54d7c684a05c27cbcd3ee6dd1308f25d20b52834e27be7ba6877fa2f830d27820f2cc6351c523970a68d7f SHA512 2b1419e54eb26d0351c1dc87ea345af6f68b193ef4bb38c4ca813b4b581e01c10de13da532de1885c39a1cc41550545f16e38ffdd982bbcbad56ea5f63f57a18 +DIST firefox-117.0-gd.xpi 568320 BLAKE2B 84e08fd94a85e75cdb7dbd6a714bce2b8cc21612fb12ea7b629f6d20d7fdef06eca0df6b55bf6f6e8d866f5d67f2f7c604205332854148996daae751843c0571 SHA512 35bb8511bdaa770500040a09e200559dd5cef6d377e3eb48333621734e1cd2f0060679410b60d2bef21a1d883e8587e3e17e87949d793cdd3e6c6216e728ad32 +DIST firefox-117.0-gl.xpi 567520 BLAKE2B ab1b5a69c48ae49ba99c282e48d58947e3b699e91c5efb0516ccdac7c233f8679aaded41310e7c122bb045e3f80ddf0aa0613ee9c48ecb4487f16f88554190e7 SHA512 21e346df8fa2a41e290fa2c74297b3ffa6f80fd409b3d738f3bb2524f98b5fdb4fdf2a145ad64f954565c602167d6256a7e65dbce0e9b012373e3346efa89ade +DIST firefox-117.0-gn.xpi 581970 BLAKE2B 9475f90d1b09b7c23f9afd561095422bafd15fad8d8b461bc435036606e77538a63e7ce24398d055e078b14a462985aec1f52c58c24ce4e8edc8f2231ea0b0d7 SHA512 34507447d75109c79068a30aa29d6e59b0fd37232329ba4792297bff7b2a7b3f15e9dbc699f2cf881a96b1b99af71ff3848c4a6f7c82c99fc1b52f97e8096112 +DIST firefox-117.0-gu-IN.xpi 506745 BLAKE2B 84fd2f2d49173a268f57501661cd602aeb88ddd65efca979a5106c1cee9d81a54a4b62a17267358bdd272c1d05068d94cc70ec970f0ebef39031d4627c75dcda SHA512 bdb0c49160d18bc84c506ce770582632a39ba18d24da68ab51e9de2da91f2b1d1f0541d06dc00c6513302b45240ed37b1526deb48d6bbc482a685252c41a9011 +DIST firefox-117.0-he.xpi 577839 BLAKE2B 5275c069c5bfb43e4e65bc1882364b2e41e4a9a8da3d4a38bc664fd29318eb529a01a3efa48eeef3c8507bbc1c9c1578823fe614f4253bfc5d71a3ad4d56c279 SHA512 11731dd50d8428570863ffd695441fd74854dd3f4b3244b2a90e2c5899710609609a12a335c57bda4401b6b2700a166d6d847ea957ce94e39f930f57ad69cf00 +DIST firefox-117.0-hi-IN.xpi 543574 BLAKE2B 5e20adea7f90f2e0f50f4d5bcdddc384c8cc62f3ba4581a85ca2b65465f9251402926c2ee4adb7933149aef5db20f86edd263c88edf21b0ec11140d8f6a83de2 SHA512 da35727eaad053772b5d1181c736bfc1775518af6cb3f3e1d4248a6180275ad996bd2acb1771e34ca2e9b7042e886d9dc4e6fb033005edd670aef2ae27583b41 +DIST firefox-117.0-hr.xpi 533127 BLAKE2B d3b9c07b3f41e959a58dbf13ee6796abfb106551b848c1b423a2e2a31c5bc15603e918ccb8f7a00554dc1e2ad808bc1a853c3ef1ef0062e15d350c2e5bf5e031 SHA512 f4cb0dfe17f2ce12f84f7ef41eabaa876496589e1009bf218da928536259b904cdaaded2ba9950fca0e7d5ac4175d571a3839fe869f3852409359a7c75a3517c +DIST firefox-117.0-hsb.xpi 589118 BLAKE2B 5665142c95af8b2a311116e97dff56d478def458d6aabb6b6f13b54fc13f1ff28b80d5ddd608ddbb7b71fd6d8fe49e9131ffe57a6750e08703d30da4fb85b285 SHA512 5e37225df3e508a9471b63fdd988be68986cc2575742a8cf39c2ba34157d462c36c3df9653d251fda9b9f54e3d86c378b4be6f25aa8fbed4592c195a21c34c78 +DIST firefox-117.0-hu.xpi 593014 BLAKE2B e95ba51745dba52c9e627ec85cf40f2b2f193d89835ff04a962de5d698257c38d03c32f34f53744eba3e144a9c7b099a3074f07922fb75d4f72c20af534d85df SHA512 b5f032d99b1b9e63a4ccfc5e5db25687c78b3fc160b287d9a140d4daf24b04d1953007b11a97a851ccc046e9bbd5b8de392c4eb118859c01916536511a33a94d +DIST firefox-117.0-hy-AM.xpi 580487 BLAKE2B f0235d0a6940b37ebfa9a97de8f5e66b2a1cd721c9ef938032c712b377c9e03ec18487621847187e621667048dcda281676b60ac7116bdf8db8788663eabe6b5 SHA512 e9f998d1b1cefb5e1c5eee1272f8433cd68a8c13e918c39370c4593714896a76086e02e947865bada6de9e2a5ac974022d7c383b57346c99f8f0ebe49a1c9a48 +DIST firefox-117.0-ia.xpi 556613 BLAKE2B e2fe037a4652220fac31ddcbe798f5585a050aa489329b00147523882c303e8e55476a6a330098455a97a61fe72f463e2f11d5e5fcb244ad52c6ab2ce7a89165 SHA512 668656cebfdbf84683b841c22f4e7f0600a004c620cef1826246313f3a6aeadf02fc58473276b32d953992c8352f6a9fe7d1f947e966bfcb872c72260d0696a5 +DIST firefox-117.0-id.xpi 540547 BLAKE2B 30844eab1f30da3b389719e74f92ccecd847580f0ddd8711ba0865672f5e2feb5c7d679ea9916b02aba04ed281dae7714728ef333f2905ab41720422b1303dab SHA512 438a386161ec4510cbad1020e5b3838c39d7c2b56ff8cdd9ad76a9dd57cc89ed898886deb6c56b95b4df63370a81b30327bb189ba5f9a806f270eb7aca6464ab +DIST firefox-117.0-is.xpi 564445 BLAKE2B 46c5f8ae8489d98a4baa83d3d4b2ea140fd2bfb1308b2c5ed315a462ddd97eb87be9f53208299c481b31c64659e838d84eb7fc0a9395d21c7a7925cda717b136 SHA512 5abca07ea04b7933aff177015ab7127074d316fd2d9acce7643227965333fda6f8b95e3ac6e9888c4030b7e70fa6bf498051d77fcb4db2d218a7067a3c75fc4a +DIST firefox-117.0-it.xpi 510633 BLAKE2B 5dacb1b56b96e9e5f63f617e827a4557d97783c453b2b043b8561d15abf3e742341bc7857dbf7ddb7de11f788f5b83bf1928b3af22bca7dde98676cb7aa76cbe SHA512 10d22727304efb1ac07f3ccfa29528cdc742e254964a403fbf57c3b755aeb002b2cc16e07104640bd91f5fb53b5d4c6eec9beaa627ed299ea34433a41f54d3e4 +DIST firefox-117.0-ja.xpi 620389 BLAKE2B c43b560746013c92a2aeb290a3c8292b9d02cd5c5163ca753d478822eb66194680da489799ffec90be9b5e9fd36955c42a8c52909420670909a0a6e52ac69e12 SHA512 3e11c4e693e44e387b7aab5c1d94ba0205feae19c0bf525e5808b9598ad2c594b864fbc3107dbce7f986b95ebd12a48c06c2ed0f8153dde3c7b6bafd67048585 +DIST firefox-117.0-ka.xpi 620748 BLAKE2B 975dfcd56e1a8434ca472073ca63bd615a1abfe2da0e5117ec3e2806e3ffdd6a9e33b539eb0999eb5cd7a4259288e4310b90ad800c5cf79cc453c648f89e155a SHA512 8c9c4c880b90a6a06181ab7d30d7ab8e7819815b8041dd524b0a478d1bc81a819897070ed1c58b283cf789d16ab9b692d9e9c3c84684417601abc12bedac4822 +DIST firefox-117.0-kab.xpi 565296 BLAKE2B 46d5570335da2cd5c85bbab2462794bb9282de8e8ae8ef2e38e780397beae9bfa88b5028055c9b7f342f376c46ccfa7731d7372a95c08ed4a8d015fae23034a9 SHA512 a5e8264fd3ff3228b30c2e24d4ac8dcde64d48d79b698209d7a4a9528fa3b98e35eeaa58c7613bbda2d15cd9e38125915ce7683caa30591e1c24d3058687d3e6 +DIST firefox-117.0-kk.xpi 645194 BLAKE2B a93a56e500a5b9e65c87a110a992539b00d3125c4bcd4d13e191e8acb2354e2809e88af3d00fdbef1b354778ae2e265fbcf343046c9b04fb83641e28131051e7 SHA512 d8985a7a7669553668254abaa9007392afbfa99ad7687d7ac0c654d357c382515579e088af8d0fc37617703c62064c37fabec7e72a9cd14340bd5fb029f8e335 +DIST firefox-117.0-km.xpi 507784 BLAKE2B d865e39c2e2e74b1933ba183a24b46c8fa28decae45c5fbaba30a4b94e5d245c2626c0f16218fa437539e0f1b25426269d333ff7a1f5e154392ddef3f5cade6c SHA512 3bbb3d6250f33ac9a1a2e566961b0469e32832c3e3efd41c89ebbe6f58d52352b6cb47041570337e8ec1dc079f30dbb8411d37ee656fd53399ec9e419c4cd660 +DIST firefox-117.0-kn.xpi 473341 BLAKE2B 9e0bcd9100b1d346e9e4c253e985c8357cc5c9e97da72135e902a321193d42043378fe656b5da597eb66071bb3f7646b006987ab675130753314bcf4134ef23b SHA512 29ae1c264379f191bb1fc70abaacf2973457be37bddb716b8f8e593c41afe0b8e20d1cdf12c2da7798a2a7a08be50e930e334bd3ad3d6b794c04c4433cc35704 +DIST firefox-117.0-ko.xpi 603688 BLAKE2B 33315adced1e5727262343649990175f2a6eb85e19a87e85d54cb84342895d367db85526e8495965916fbfe4a05c9974ea5b5ada4637881f9d2f806847acc613 SHA512 289c06d283ba3075cab7026fa2c5f64a8deb526637492e9eafa70bdc0ca3cd46c277805efef8178b9a62b03785d8943a2e159861718e4c70e3373776491c7b4a +DIST firefox-117.0-lij.xpi 464070 BLAKE2B 99c032187d9c9256f3445de62e9d5a2988435dc45fe1caa36d36bf47030ed66127b3e502d8a3eb06972eaf2a0cb27a8daa3ef0594a39797c06822893615ffb9c SHA512 1b85e94b9fc883ebb1b869cfb50a7894f9b509bcfbed7ba1f010dc59df635417c22624cb7a677d4729cb3c7e62f43c4f72020421c7a2ba4fc0c49d1352448507 +DIST firefox-117.0-lt.xpi 549426 BLAKE2B 4b4f9d6383db50580598acc56f67b164d396fbbda929804ba74fafde6d81a3f0ab71dcf973383094f5235fe1bde45c2306c1cc066632b1d7e9b9c3b68a11b674 SHA512 690bd4890b857d5d500c69c3e346fd50f4f496b8737706d5249dc8c87cc5ba6fc42e2e9f6edf287362bc5de1012a595d9001ac6f54089507a0dce3d353fb1c09 +DIST firefox-117.0-lv.xpi 450441 BLAKE2B eb5a6805add0b12fc12c0f45c9b9b828b4c8dcd8bddd1cdeeb82edaa5236d52f408092872329d27fa1cbcd3671bd1e88839437d1043a57e20bfad946391e117a SHA512 9704887bbd1e37c57f2b6f1c2a1c49114cb5b57c875b47aa52a058fa9b16c1e5433954b3044630adcbd8e06d68337149ef2994a5171a9a9cc7237390015fee02 +DIST firefox-117.0-mk.xpi 476037 BLAKE2B b85dfb78387933933f5a1c4a148155410465091e59807aba8c3b2fccdf8f4a832c51f273c229af9654f16f144bc7236b7edf6d42fff5ec86ed4a032570e38729 SHA512 4627a51584d77ba592dff0447363b1c34bb49da938f52fff923ab0215b10430cbbb32fc465b3e7d42e924137e10caaf4626ed3ff6a02e09972cc522741126260 +DIST firefox-117.0-mr.xpi 511399 BLAKE2B cac2b33c894ecfde0a7ab9f140c9d5dbcfa22523d90487f1d507461cad78c882edb0e77867944226d7e9851d33489747a574f227b373c6d61f912f5230027d55 SHA512 9cffa25e5b29ec835db7db4feb14369e87efb02adc58d3d06c60e880f4ec7a59066d5a700da611fc1a0231a1605b23b6cc87463d4a14b6cd46d04ec19e9bd649 +DIST firefox-117.0-ms.xpi 430982 BLAKE2B 171548409ec9c51439feb001e0cd3240d5a3ccc3f84d62802ce354d630dc80781a63a8831ffc50ccaa39e7331381a0c046e5fe2b2089d4c5946b060d20227f11 SHA512 a8431d76b3aaea5402feead837060630c58828bbd114571ac4347aa860b66a0833596fa55f7945b5f15ea6e073b4547ff792075cfd5e02e28182fbd37c8d1f46 +DIST firefox-117.0-my.xpi 493857 BLAKE2B b67b95179acc29f513fb8d28e1aad905fc2813ee7adbf94436b098cd1d1b15d7506ed7e420e6e687a7ed44681caa0ae42a67adfddad601b9364971505456b504 SHA512 a724992edb927a964b1e6b03c1927c5d84d8aa24de737741a13660b87f7b68593ae32bd07c0c210d9ee8b5e90512c391f1965615287c372a43677ff463dc5ed4 +DIST firefox-117.0-nb-NO.xpi 550912 BLAKE2B fda5cf3aff360abd5f90a488bc994cd849aeffff3951258959d2889545391b8e3cb713477387e909b3565929c77e30942b129a86763b45343e00f05e833396df SHA512 6d4f3a38f6260f367aca7c00cae8845b12eb64a9b12c50ae2f3095bb518966f5b7c049b6272f54f1aaa5403e11dd20a9be51186364a7d6febefbfebb7a0a0c04 +DIST firefox-117.0-ne-NP.xpi 468692 BLAKE2B bdf52a3a15c9a384c747f57075d047e576ccdc1f7d1a29e52fdb1426be7bcfada9d8faaafc1e8d4c0a7e1ee25dc5f1ebf1b0f66844bef1fd2f99a1b95e9f54c8 SHA512 47b902d11cfccaeb7c3c38a8d5ecde74ccc69a7d0dbd952844f7997e43cc0aefbe188fc524cdfde71c54a12e11c21e29b47db14b28368cdac4433660bdc397f5 +DIST firefox-117.0-nl.xpi 562330 BLAKE2B 9f631252caa598618ea286126a7509c68d24b4dafb0695d6616ab24ce6be012973a47d4fc31291955611138136aef2298b64f98900b188211e9a888d75f3055d SHA512 57895ee8821489e4240bcba3c0bac9009d9f3a94f7511a98d0979390eb4402ac48da11a8dc344d9b5ae97f2e0536b5d7e3cb83a9887e6fb757703f1606a1e4bc +DIST firefox-117.0-nn-NO.xpi 555660 BLAKE2B c25249a9040d638ae374025c42accbe78f12e54e64275ddc9fe8217c77621560f6ca85414375f402a683b659a24c892f116e0ccca5757dd0279d9fbea55c98c1 SHA512 7780ab0d0eabf0837dc71b31376aa5924b33eac94d4fc423e047ec06851b4f1d8e0710c9bfd03fb825ef3d1d333244c63e6bd69a6db08ad3d31f3573d98e88f6 +DIST firefox-117.0-oc.xpi 575183 BLAKE2B 699ef5ebfa34ff2599ea97c8c4e58a136b0434a71d09e12c97b37899e04d3e6ab5d8365340ffd5cf1370c8db3b503a147640c9beb0fec0a30918d646a7990531 SHA512 25b5d8ea24d0f1707fa0510b5eba5fc5547a359e9639d8c07f30215d30e7ebd64162a2aa7d80c5fbf365cd63cb2cbeb8a9df9d3c52221e4d2a798131c1add826 +DIST firefox-117.0-pa-IN.xpi 629872 BLAKE2B a6689b2a15aa03a09bf371b794520d47e598432b27868d77ef6679bd35f8af1de268b570f9e94f7171a28f5c7b4744a91461ec19904de33d0a215c98fb5f96b1 SHA512 6db73647e71a399cb4e7dd7f741e7cd3c54846904d404366e2d50a9df7b2487f85dffaf43be5cdda0041848beffea3e0372eddc89f927067827dc6ea719536c6 +DIST firefox-117.0-pl.xpi 585320 BLAKE2B e7b92da62b687d344e9169ada36ef80c4600ee95fbeaf94aaa88593f3c5968ab398d665aab85285e1516217254959aca865535e4dfe047890e84a281d1441b28 SHA512 815e0b8ebb8dcf4a03ba4a9af5f646e3ef8ec37292dbfbe6584e9b2543e7ffed2b728a2692808c87a6b58433c944bbc35093a684c9618dfeeac93fa214969f88 +DIST firefox-117.0-pt-BR.xpi 567113 BLAKE2B c49330ec54ac546471f51c211469d3837e8bc0d753501969ac13a00cedb9170f78f3c31f123aed6127ff6e36c4828b30862c21556f8cbe91c552ff46ed679800 SHA512 e78efc0ef30b148781db62aada8b16f1524d2a39e85039ed97cd81e5db7361f7e53b2bcb7ffbdabb90af0c7e8ccf20b53afdb1edc6f4c5e78c6cdefa7288f475 +DIST firefox-117.0-pt-PT.xpi 571431 BLAKE2B a75ebdcd1799abe60dce8d72209e50acc08a1b0dc351589fab8703ecc0b413c7f3a3c90deac5bb600ec4834589b7ee1336e0ef29cec573b4693d6f8dbe21e5fc SHA512 9760b140bf4b0abff7a8e6dce2dd98e7961bbeace51509b3448ab77d1b7befdd117871e56b06390a5c71212718e7406ccddb4e45bfe85853f04787fe69e2a5a6 +DIST firefox-117.0-rm.xpi 562452 BLAKE2B 9dccb03b6b8f95dd6b8d9e88c24e64e5ded3f9343bc46b713d20cd4603d762663c3342425e23df003d2d1066311c3d2b46d1279fac915723b0a74b593c4b15f1 SHA512 6913f1012cddba71fbd2ff0e6d8e2faeaccb21efc567e2e1b792db8a9265de3e42d68ddc26a90553dab4668087725161a9040d21efdadd07b868e1d0ec96459a +DIST firefox-117.0-ro.xpi 525852 BLAKE2B ccb6953a9727bd0ea2c6d82e23d04b24953ec3e39e95aea98d91cb26420499e127e0a5cbcecc58e89c90db18df8b762b2b6a7665b3d1a707f05b364939e4eca7 SHA512 767251aa06b9a08a3c99aa433aa749786bdc872e63d70a39059d2259fa3d07438e64929a74599df1a03c6913149970dd0c13b263c100c5ea492a74a32187e2e4 +DIST firefox-117.0-ru.xpi 656333 BLAKE2B 3f88cef9e1e9f04d4f03f00cb0733d5f5e658d53acfafe0d8b60c751e263322345a680834f3300a4ee04b221a50499543fa857e50e346b9a4de78f30e8ed3663 SHA512 bf8cffe6adad3cfc744f8a2fb8ebfc1cd340cab2a831e1a961e04da7c0fece856b4fe5fab8245d0c964399b7bc6fd097f26775dd6d8528987ae3956af8aaa6b5 +DIST firefox-117.0-sc.xpi 541041 BLAKE2B 836f24958a23d475812296990d7bdb3249743d3ec8f555c5d89d12018c0b4a85945b3fa001efd02587241b34f74988fb4cab03232b92fa729ecf1eee15a763e4 SHA512 b2b60615e5fa7f251b8d747b89fe55fb064176a52d9b0126d6744d84fc73f0eb2ded84bb9f87c2928dfa9ed59c66b31a885821ab8061bd93e8880aa4609f7fa4 +DIST firefox-117.0-sco.xpi 490201 BLAKE2B 19ddd93d2284bb5e56fa5ed64fe1af9af0a09f3b65939b36c98ce095853c2688e73ec54c5f4f9add20bf0d220696435780b7b0a9d9db1bea27fc3636105ee969 SHA512 d8664243923f7b3a7378c59c5011c8b89f4a2a045b0234503b1ac45bd8b4019ca6d779248050034f320811a42473bd3519d40020e6130639953da052371db4d7 +DIST firefox-117.0-si.xpi 578784 BLAKE2B b9dc28fa91443133ef2c919b0216422f5ccd6689255533882289920ba547441653895bc33f4a15428cb23f2ff59d77c89c98d1c0cf08b6db644dcf5f5c19fdf2 SHA512 540fd4001858227e0b24a3e0120f7892335de81587b181b0f8b72f4fa72cdb91a6607c510c8914babe2004935a24ece1d117e8e8dbf04b3678cd60ce48b83785 +DIST firefox-117.0-sk.xpi 593717 BLAKE2B aee43f472d86c277cb7694b12ded497e617a301c1242650a0cd930649ce82c806defacca772b65fcd3be05d8d9f9b6d7c82234da0bea471e71ef78be1a0162a5 SHA512 c353e42e8c829ec2445f439102d44341c90a9ad249c5c88a2b7e3237b0bb867b77c6aea64371cbf9616ad51dfa5c5be79cee1e340d8d607c4f3a550dd6c0cf01 +DIST firefox-117.0-sl.xpi 565952 BLAKE2B 62c2243d9994610fde8140da2927debc41f02f0523333a9d6967f227819b78f9995f6dadfa9c462803fe262f41070620701a42d45c000e1af78651e4c4cf6c8d SHA512 eb00b30b5e88d0ecb7af8b8bfad01807ac392031f5c130c2e573abb832d0d3765377c6187acb42ec77c56c968e0cb86ca468414ca27965d5d1af3faf62aa3386 +DIST firefox-117.0-son.xpi 400534 BLAKE2B 63fc1334826be5a25212cd04059d8a9fe3514324bed823a70d34283e4cdd267fc2f5f5dffd08c1a9c96248ebb6830f6a4732d78d58b6a04ed540358694f144ae SHA512 6539e2a0ef4ec1efdc519c9ce25e082033bfcb2defe2ad4bcb064241f4b604eb223146f482354c6ec9b534b24cb79f496808bfe772bf2e23eb176fd82e5148c5 +DIST firefox-117.0-sq.xpi 565642 BLAKE2B 551f3db6fabbf9a59d6d2c0b51bac459e077c4f8235b4b3195b073e0b33ce65cbc4b29f16cbe03dd9aff48b56366868cab0a1786d57428b7481560562e3ff53b SHA512 030104499b999b3a71c83289c2faf0f2013945bedca43186871a0088d62e53faa1dca27de41643e411e567c09d996b3d17c3231585262c10708a0a91be361b0f +DIST firefox-117.0-sr.xpi 615331 BLAKE2B cbdece09003b6a96be1b65899415e91ca7158a5a27be8a435dffd9835f892ccb7991f6844ba3772d50eef1db884c5ea2023305df18aec2140d12430b8501f7d9 SHA512 57e86876ab12c48bd21e79d62c435179a32dff336e503e7b9e151ea12f3eedade926fe8caf3b400117f4b36b90c10df505c5b792f7056084ec92aab04f74ee7e +DIST firefox-117.0-sv-SE.xpi 564229 BLAKE2B a8518d90a6c7a004028f4c60409afe0926200c147f376dfb084ad4c2e9e1fc37c2b0bcd97ff0d04e7c332468b384cc530842d7f4a2a3ea55a7f272c72eb9b930 SHA512 65c018e3c24e6808511cb24e6c73f645480e57d6f5f045811b42ff315c458353121c3c8243d665389f5e3b86bd5c343a26902c76e8bcd3d831253cc2c8feeac2 +DIST firefox-117.0-szl.xpi 504971 BLAKE2B d895a893acaa1e220a0e307dfaaa5f8b7332749893f7d47b78c7f216833fefb99bbbed248b2f616d5901629207edccc4a619f83309eb4270e0f686b2ae749653 SHA512 fbe7c66c8e8f5b00a9b0e5c18e989a93cb2aa325fb6b8ebf4766dc62bb969b3214cd49af312ce93d40774e25de0db0776363f856e791c1e05996e179b11ebbe2 +DIST firefox-117.0-ta.xpi 488403 BLAKE2B 8e190b10ed0218344be7846a4d382755a5c6c1dc5f858db56ff2d8b84ba683b054044f54a1afc730bd0ec97cc1b2378d016bbb1dace9021bba59b3b09dcb76ff SHA512 207ba7d11566a1fca33845e62c966830bff0dd4e0707eddcc741a783cb571b6cb4513004df962bf412614aefb07df022e5c0e8547745b084627da61f10b5e934 +DIST firefox-117.0-te.xpi 536504 BLAKE2B b3788f65449350f60e7869a3fe0d9644eb2bd3e634bb05db5867ac5e46f5b5cdac2c8c4468a9a4a0991f9f899da5b60b03a6ed92a67dfb79dfdfb8da515a66e2 SHA512 c82b7ffc879e553d49c0a1106352aa71fba19a0a36bcf690aa796cb9901a839f5ebbad2ea8f404ecf1f324dfc3be8a067c5f561a934c064fd5c38154c7888448 +DIST firefox-117.0-th.xpi 635856 BLAKE2B 1b61af133e988166dc0383fc3c4aaab1009e0b3aa047e9d9d0636b9a12e18cea0618729160eb83c28723af53e7c9776659c355d8cb6fd5113294808ab31b97d3 SHA512 c59698facd7abd9c0f40769fdf2c5e4093c8ce45d1da3f1192723850d88c125a446e2ff8d7930386a8bbe2c913b16f73f5bde50754cf4ea3c21f4c33f0d61fb3 +DIST firefox-117.0-tl.xpi 512485 BLAKE2B a7b690013b4b9611ae6b569d7e9da16fbb9765ba6fc67e91d1174f312938474389977a0792653cb74edcd32a3f64e2ba25fa3ab454115641ece729b7f324e8ad SHA512 16b43a593090b8a6b7c117ddd0d0ba2c6677563a1b7372bd4cad11870087b6f6190c364c7f9549cf87c9cb3bc87ea6a3a663decc7a731261de770f42ea4688ad +DIST firefox-117.0-tr.xpi 575930 BLAKE2B b725e9c17528f90923c6459d74ca254c822d53a3dbc3b6c13bebc25cb2a62791750b6f6f265f2ba5c67eef240ed717318ddcf4a8129474bb293c6bf7f29edd1e SHA512 9d0840537ee81c434587cde73512ae97ec0c417950e3572b68406380ab4f66853f5c50ab12c199dfb9e865f6938de6eed7a2038a3b07a93f0b05a6838b2f7042 +DIST firefox-117.0-trs.xpi 484144 BLAKE2B 2ee8e46896acea22707c9e6e0f5a919c3aeefc46dd10ca8eca2ff88a0cfd6c42432cec82f3caabdbbeb9b032c0eb9449cd8b5ae0188fde5ec8dab09e515d9328 SHA512 e41432b8365c399abd0ca0b60e956ea9f444c3f584d89f4e7ab41722655d44b21428f692d7f853601503dfd0b7c6220893afd3c49bae88e8600b9ac8337ba03e +DIST firefox-117.0-uk.xpi 649504 BLAKE2B d61079a384655e29126dd251245c3d46acd08b164fdbfccf8f381c90c8f1e24d446d6ef6bdc2223bfebfe35ffee697f640d6f4a69c3c3fe7f1c8e5f1497bd086 SHA512 45c26f9b5ddaaeff02f68cf46315edd2085335ae79aa7fce83b993ae1d3cccaed1323f26f03f909de10d4461c162b1bbb1141b5da96a112c09b9181a0696998d +DIST firefox-117.0-ur.xpi 539405 BLAKE2B aa36e6cea30e14bbb6e1b88f0ede4a02a2a3c0c655abfab14be330a59f890ce9c38751b4b8b67e6940267a5ecd8eaef53995d0bf939bb16b96c9eaae16382194 SHA512 5d923dc42466a823a6d9883f44403f35ee563b3b470b5c6cdd32fdbc14e5e4994c8509a8b91a6858d5a5013381bb57a483caa19928b4085969bfbed49360d290 +DIST firefox-117.0-uz.xpi 461426 BLAKE2B e68737adedd49c367e4b45a6c008fee24bb89b85af471ceda05eee91d162245a443b50e8b0a4257404e40905e1d5cb345e0532dafcfd2a1672116f8afe1e2ecd SHA512 30e7b757c35af09c5e981a8d2e8fb1cbba820ad88e9c524fb9fe3edcb58afa572aaab729384fb0b2ee287b79520b799d9c8a00067591f5b6776227e38522157e +DIST firefox-117.0-vi.xpi 599835 BLAKE2B cb583ebdd0521764dfbff76abff238df4372a08e7f6a029eff5bbe6e763a62008a5c70f63707c02780fb5389615eb67eee9a69c9e20e83ed142a2ccc52c497b8 SHA512 f377dfab162f411bbd05dd3a0d037300efc49aa8d3b4c0e76d87a572d6d3b28882967846dd63818bcdf2e89dec44750c2c92dafd9a40163ddbb5f55849aa2c96 +DIST firefox-117.0-xh.xpi 401970 BLAKE2B 1e5fc872ada80753c66a44c96e7da7945861152343ac416e3f8a9e670ca04c05014edeaaf8744134551aa76da7ed251d6a392404cacd4cbc3da39940beae44a6 SHA512 116e372c13611d0e8140dd289a20fd8161c6b96220c9e27f7bea6a0cc8e23b5e827a7eb3fe8203cea3e1421bff710a72a8b34554f1004d5223baab0890029a6a +DIST firefox-117.0-zh-CN.xpi 599269 BLAKE2B 7a46e06909c11dc5818c6f4bb8b5cce49ceba8c7dd6b7451c0830ce040db1a63f7464e82813ef841fccc2fe9f7cee8c7e33d5faf217a2822ab68cc5b55dd879b SHA512 e4585672100ba500f89d38571188149ff78d3f50156dfaf2ca4193bb08863ef28e914d04bf51152f7f0ea9f4b0d8c953957c7101cb6f2b9d15f9eca803f31eb9 +DIST firefox-117.0-zh-TW.xpi 601287 BLAKE2B 67415b4ebab0ba268053ffc680bd802587c4589163f43f39b9cfa5d31a9040a300ceb73be2a5b97dee94ad87eb78d76f8c1dcf62f59ba6df6d218c46392e3326 SHA512 5bf793f26c63e48f2ff831eb74d1272039093682298060dd72c442874ab1e56b0f959f65ce9569b64106f6eb0febc15b7f8dfbdf6ca490ea62cc1271d601f952 +DIST firefox-117.0.source.tar.xz 505712192 BLAKE2B 748e7ea88f493d449e52e94a268190f9beca671aebba057f7089897dee51d3e8d45c6f9721d38891c787b401cb6b32128d3b3b25073e17326c8fca80fe07d015 SHA512 4d2afa9bac9d0724fb3568f77a8103d75e90635802f47f2023127de07d70ff145fb0c19e6a4fd37bfe93a7bbb1ec506955c0d4fe3b07057561ebea82b8d6c8d2 EBUILD firefox-102.14.0.ebuild 37115 BLAKE2B d7cbc24c2811a10084b4e2b71cc31cf4c89008948520b3f957f0cf0f6fb45fedae0d4d3baee05dc6586fb14d7a505faadb0614bb27c94b5cbbc325af52e6da4e SHA512 7577178ca4482219270be41c4ce065284f2d68a50120ba6f84f535e481a6b67a7aa121330cdbc426ce6c1ede5a84f244c97dddfb8eca5e2093cc6c96d3630471 EBUILD firefox-115.1.0.ebuild 40631 BLAKE2B 8ccb2cf6c88399bc4bac041bf28f54aa02e35ffce9b76364d1922ab3b9119241695eafc7664b2688dfff4b466a228fe68192e3496c79779782056aeb566a16e1 SHA512 e7dcf0edca44ae7dc1ce0fc13bd0de5bd7aeb12038b411e427e2fc27d8b70e3542053c2e6c9f4a1c610541d88da7b8584b5c0023fb0a45c6fb3ebd0b701acf68 EBUILD firefox-116.0.3.ebuild 43626 BLAKE2B cd80b04fb1a22f5d82d3c1e55402ae28585172cdb636c72ce6ce1d05e11966e7c4beeeaaa822f8d1a6d1b32ba7f565b66cb58768ff2b53ee71d7cce883cbb05b SHA512 559ffe8cf3d4f824c27686fead57b8dd55940b66a6c8dbcd9a4a42a2e64abae9cbafe987545655d68367149943fbf098d554596b90958bcac48dff18d06420ca +EBUILD firefox-117.0.ebuild 43747 BLAKE2B 8ac54891c1bac8e8e50b1c3db703031dae724bddbea51bd25ab9c629ecf94ca6aa3a81a91b41cc8ec4621c1c71b6f634aecfa7936864045b23d7fddf66558415 SHA512 3ad3b9ffb44e812da3b67150074f6b6e22693b0a92c2280c23d429325e3de8c3036d7eb415d954b110ea405cd236ce14749b1ee979a08d6579b281f043e47452 MISC metadata.xml 2658 BLAKE2B 4e52ee338d13627658328468081959897f9ffba3d0729a03975f756ed95e2649e21a40de4933c0a2bdd9c1d4dc6cea973f503a3d448f49f73ec3eafb933f6845 SHA512 1062c2e2a49757a8e3b027db5d425113ce6e7bdba630786109caedbb3717c7600094c7bb3fbc83e1887d96e464f0dc48bdbcff16d396ea5481f36040e0e4c70d diff --git a/www-client/firefox/firefox-117.0.ebuild b/www-client/firefox/firefox-117.0.ebuild new file mode 100644 index 000000000000..c0dda104858f --- /dev/null +++ b/www-client/firefox/firefox-117.0.ebuild @@ -0,0 +1,1480 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-117-patches-01.tar.xz" + +LLVM_MAX_SLOT=16 + +PYTHON_COMPAT=( python3_{10..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 ) + 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 + 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 + 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.92 + >=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} + 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 + )" + +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-wasm-function-references \ + --disable-wasm-gc \ + --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 + + # Install the vaapitest binary on supported arches (+arm when keyworded) + if use amd64 || use arm64 || use x86 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + fi + + # 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 + + # 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 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 +} |