diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-12-03 02:07:18 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-12-03 02:07:18 +0000 |
commit | 7f4b508a2da3c371c7e770aa6ab83b0c4237cd1c (patch) | |
tree | 81d78cbf05f5daa7d57418d32f44b0149a56a765 /www-client/firefox | |
parent | d4f65848c7ecabb56e2f93889cbd20078cd347f7 (diff) |
gentoo auto-resync : 03:12:2024 - 02:07:18
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 102 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.5.1.ebuild | 1368 |
2 files changed, 1470 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 478f5634690a..39b2408a10a6 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -311,6 +311,107 @@ DIST firefox-128.5.0esr-xh.xpi 418474 BLAKE2B 3e14235a1ea016f8d82f2e7f29b53eab2a DIST firefox-128.5.0esr-zh-CN.xpi 675204 BLAKE2B 0536f48da6a89b1a6a6e60918d563c80ec92d08ac49cf423f7e38161c2e34c8be6b55ab7c7163aaf48b9970895674993067c4e685e5623a35c6876512eade886 SHA512 891fbf921523da76afbafe2c308aecead7839b8be1b9fce964f3e6e2604bc7454743dcf11e0ee28fba982ea9004c6afa8c4a5d044c0a0a74cf48735661ca4e7d DIST firefox-128.5.0esr-zh-TW.xpi 677436 BLAKE2B 54f2e2256e57188f88994d7a61e0f7361f13e62a6c91fefa888b324a3749687f754ce58aea42e367e94008b95a97c31736f20118092c055efeaf5a98e99dbee2 SHA512 7a3edc3ccae0d2a47facc2e43a78c77cd4ba34ad086502c4b5897cd3e2b22a8b0a0faad14b52015611eabb31b656fbfc1a1132622bf3cb135f97ef4285061a53 DIST firefox-128.5.0esr.source.tar.xz 567200548 BLAKE2B b524796854d4f622e90c219e4e302e5665f3f1e3ffb7935ba58244903dbcf1c2b9a13731e9af5507ffc25dda621d4ea13650aae842ed0317843182da55d1d652 SHA512 ff20f18f92c5e9cd1d9eaf7c38cec61bcab2dca8dd2817519b712bc1f760b5c6e290212acf3289152764e5130e01626950b7ecd9327b2c587b24a246591afd67 +DIST firefox-128.5.1esr-ach.xpi 465492 BLAKE2B a63f39d088162dcc48bf63b64ad98db26d060cf77f3b63480c1c89d384126e4d1d6a09c1cfbd3d937fdac212289a18295e4e33e5ab695627a8cb14361852adfa SHA512 d23f41f394d94092d1025849cab7586d9ed2269021bb813b3b61825e6e8cff0a5c5b7e736e8aad33666102d824c2f0676ab8b2fa157333ecbf114a529b418793 +DIST firefox-128.5.1esr-af.xpi 418820 BLAKE2B 1a66e5fc2a40857ec9d11cdf8cb4f392e6f92ab7f446bcba79ccb3db252db5dc3f5f4766fd29fead300d0ab0d179edcc92bc3f2f9515715be6235ff28960ff26 SHA512 f6a909680f11c5d2d1bf0c7c6e68997b1aa906d78ed922ad4706212dd4492e8e37cd13bf3044c2dda132797936671d80ab4f7371f7987500f2c100b28416d80d +DIST firefox-128.5.1esr-an.xpi 508451 BLAKE2B 1b6da5e1dddc8147112011e2170f99f940d7edc57bdff12f1fb5d40d088e4582f8f05271e2fbfeb500d573c54e6abcc3a10c0bfaa36147f630f86dcdbdf987f4 SHA512 477cdfbd161e7ce0af5d02c1e14b886cec3d00e237f696a6e6bf95c1d6fdb2568a86837b140293420bb39407991d5457151265c6e99fcd5ccbdf46b3f62523d4 +DIST firefox-128.5.1esr-ar.xpi 630815 BLAKE2B 22675ec9c433c9c04874a21960bdfc2db6b0b91bf3f5f571a0c6c02947a5ab7702666918c7df06263e6a15e344f753c6a667ead1ddee7c62ffcdeec6b03ac30a SHA512 99163df1eca04285eb438035f7d4edb795e253f3605b60232d7704a26371e7b9a702e12eb65f4f4efe0236272c47745b63ea540ac39dd8ad90f3a002139254d6 +DIST firefox-128.5.1esr-ast.xpi 497753 BLAKE2B 3d0ab62c6fbf1bbeee2b5010fe89e2c2c2f9a076d4aa76fb080bf115306735ab432efb3e4543e26e38aff3e7aa1d8e61d7f6a66f8f0f86d075e1878314b1f3fb SHA512 18da8af84b2e37e978511aa7cda1ec43a8beec16b9bc125bfd5d40b529a993b3d9a48d5735cd8228239131757510a7b184a4b7e4b037a237c56b8e65979a9071 +DIST firefox-128.5.1esr-az.xpi 492192 BLAKE2B 992f72f268cd1c6a9eee53a447ec9f0a4eb4a40d76c0bb877bcea4ba17cf502a6b20f9c38a3f4823210c810e4b8215e764bd43e37a2642c27458536deecbad6d SHA512 ea68c09bd1bf5fef8377e1f0052239d8075f9e33f2e5b7589a8af7bce9afbd1c2df36b7ec3e41d820ed15888088db4a6d078df0cb70354810723c6afdc83b880 +DIST firefox-128.5.1esr-be.xpi 731593 BLAKE2B ccb07a0cd438b2c895af67adc53e3b09813617854d4f624a6078126ca4a3821d47e4de0a21af9d4f21a2e02adbb71b58ced1124efc04ecd29e0fe08fa1f4bbf9 SHA512 5950366c11ee2d243b235ede9f315e0ba7373f78c78280d3f056a635034fae6335097e1fec3a37a74690eef925ca434d3e8c088693a1b54d615772ba517ea7b7 +DIST firefox-128.5.1esr-bg.xpi 647376 BLAKE2B cae419d2955a4483a0fcc0b9ef4a32246c39fac4c9e32eafb35a6dab6792a6790e52a37abe9d899606a9b1d2be76385f6f399b2d8a2153d861d249e1c40be2de SHA512 47c9a71903fe0049f0c7446a59f62b00388b21e15b6c6df6121d5eb93cca6d3556462ff140f2ca55e782141f0995c4dbfc7bf4eccb91aa2b01d87285353acc2c +DIST firefox-128.5.1esr-bn.xpi 582950 BLAKE2B 4deca9d8b38b355ed5afc9adb1a4e51258b0b5bb50f46954a7d3b34867761b3a09d01abe970bead630ebf31b6fd2f0d9532962b82868f1ac9023421131df2a4c SHA512 5b050603798468f5560b185287fcd7d4e2ba8654da67f9452f37e417ec9847f8b3482c204950ece73ad01f88fb04ee3db3a92842ae2a1001bfe63925c88ae062 +DIST firefox-128.5.1esr-br.xpi 595343 BLAKE2B 06c1829b965071d566ea07a6d9f8ca687dd300687fdbee61d2c86ee5ccd4bc0e9057a6ef99d35aadac8006625f47f485e1e334ca163cfa7baa498341e25ae7a7 SHA512 cdb16862f11961f670f0e49e25aea732ad90a5edf9cf64ef3429b38586b6738f2102627561489ba0acb0567d3eba97111886ae8514836bc17945d664401e8bfe +DIST firefox-128.5.1esr-bs.xpi 515699 BLAKE2B 35c0357da587c6a29b87b29da3c3d914afdb724e9e8145e59664829c771ea4466e930e1acf77fdb4e97788b75e6e6cb70941846e31db8a3a383fb6b0d06cac53 SHA512 a2eaa29d9bac149b69c495fe397b466ad87f04044cd3557719e19db859936d422040f366eded0381266dc8f97571c95f6500e4c28a3d89b400187e79aff39b7f +DIST firefox-128.5.1esr-ca-valencia.xpi 547678 BLAKE2B 1ebb9855c363e5d9d9c04123ab15466934d8358ed0b1c45bdbc40a0fc598d7c9170ca07134e6c33670e965adeed7c2b0ea71d034446d0b4a5565c36d1028816c SHA512 a3113e64e8bc72bb0c8657488d64ea7798bf32b784542fb2fdaf5987a27166028c9571c577d12100f7d56721faa31810be17bbfc9ae34499e0335e955ceb58d7 +DIST firefox-128.5.1esr-ca.xpi 599210 BLAKE2B 212bf9884482f24258c6e2f8649b732415755f2a287f16410b43bbf68df1626cf8cfae47e253da2223cf97272032cbe498eb47f3626890127ee0db5cb8163a01 SHA512 f307a31f530efd782eac8b1baa03d6ea27c792680ea122ebcb0f403afd512664ec20eb2a9876c4d4703fbf1c14ab4d5aeaf632907acf776a95b1731df4bc4b41 +DIST firefox-128.5.1esr-cak.xpi 594638 BLAKE2B 1839f2e4d1af901c5a3278e90f9d7f45c6e6afbb777311939751bb6b939df6e4d2d421cabca2a1b8bb6618e9670814ba4da874b88ff2eb5d57cbc68921a31223 SHA512 fdbe468bdd9a9689864f1b43ce46396fc912f8ee4cd535e262203779b0fd27addd6f82ae846b30a3ea81baa8252d2116450dacbd3e9a2ced95d6cdecfd9bf1b2 +DIST firefox-128.5.1esr-cs.xpi 675107 BLAKE2B 6557cfcd0beabfa598ac828301a0ff41fa092dfe13f2e1dfa3615509fc781a9f5a2e9e316e1d752634d8ee1d67f78959ecc1ed4e004b12c2cb5e871331bba36e SHA512 f2251e0715d697039c6659c44cd95d22cc06db7c79782e4795861a6dca01e629edbb3f7d74942923a178aae47f6099858e9fcf384f28d0c59e9e8e7fbf835fca +DIST firefox-128.5.1esr-cy.xpi 641511 BLAKE2B 753f5cdac35c029ec8fb3ba6df1c1ac521b532e03e4b98ca6c0eeb89c3f264681a89ce768b56901dc136a652c92bdf7ba87747d4e7b59588669a35fe31010183 SHA512 d62b405959f9f8d3b30091157ad0ced7ce0689680932622a78f5221b5ce99f08411d906ec4ab5cc39d2b59a92a93dfbc5802e7008727decb05c253ce4a10165f +DIST firefox-128.5.1esr-da.xpi 624952 BLAKE2B 99f639bdf59596014f76f1bf1df5e90ce38a3ad897331cb4948b6a09f4a5bc543974ec6d6ea5663a6ed05d1e69f29f18e12187758a7b2194a26b704878c9d34c SHA512 a859c79265f008c3fa28b9af00e1c821a39a75dc90379564307ae54c8b8fab4b32b53efb93f19d60242c46497cb24c811d2d964825e49ffd0ec33f91eeb9794d +DIST firefox-128.5.1esr-de.xpi 647904 BLAKE2B b42adb4b6c54f831be1b49928ca824a353dab00593db3cfeca7d35e6b11f04b2d5d810e70f86f07fb98636700229ef267eb8980f4342afab5abfe601184c4683 SHA512 92ad010d88ec7376b42aac784846d149c664bbef395df0fb2cf2c3d4510c67d89d30c5f82e39a2aefce74fabfdfed1aa7e7617dd0e3de735acd588bf262e8054 +DIST firefox-128.5.1esr-dsb.xpi 667675 BLAKE2B b27b576cc625888cbeb41fb07e2d0f40af6024091a775d5ed61e85e24a00975adf99a43c6284fe68b99daa22055bed63b4ddfba9dded5d39c200f6cd04b749e8 SHA512 cebdc87e7ec655b67092f55fac1994b1aacb69161a2c8f15e85c74744350e7ad08381d4822766139c8812d16da777d2cc305f1573aa3883cb8e78af8440a0f18 +DIST firefox-128.5.1esr-el.xpi 752456 BLAKE2B 07e07956db04093336010e4a29c4953568266de59b1661d3636e5454fc4a41fcd3befd2384341f45f9dda5a5c765c3278f8ad9b4df1a74113dbb2582a94e46ff SHA512 767b267430723d1c9d5743b11ca55ac98847854ff669160b0c117d68807a973485917bae16c3820b75dcaa66debc7de0448903f193bbfa292702d3b53c8cdeb9 +DIST firefox-128.5.1esr-en-CA.xpi 597229 BLAKE2B f88266bfa5fa14c84fed9b77134151e4aad15005d5a704c49c1684ac80c6c8ef9916aa8ccfc0fbcd5fd3b480375d87e9de0c17141edf149076a4b5e7ec535c81 SHA512 1dd05ff8969e7eb24dc88e20eb1a574e5fc6f19dcb62cbdf34a518bdf65cdf481667c02a117675381a4674dde9639f3ce3b06a546717649aeb85ded8ac05e453 +DIST firefox-128.5.1esr-en-GB.xpi 600780 BLAKE2B 5b9163876a82116147158cbe98dd9a505e7b32dd8b8662df90e90beebe2b82756af5374be61cb80f6f72bdc062fe9ecd49b483e768cd71a0abe658e74b99ec87 SHA512 950b77eced8fa60d108bf1682bd257eb1407322cfd9d6e290551c478c44477355ce04d2c4d1f3bb09b17b0ebe5cd10f584fefe01e4d24c5c873462d1392a09c6 +DIST firefox-128.5.1esr-eo.xpi 628829 BLAKE2B d4c38f633906b26d67ed8b3031c517c3a15d91a6211ae7544c7305594016e408a45c08690f80b930309c19b9f750fee8fd8fd819920b9b14b592cd8545403631 SHA512 4e3361dcbaed00d8d89d32fe214212e650e4f8f7e906fd78005a37027be161c1e6e1220c15aeec45279241e5d761abf18656bb66bd8a24733fb9ec000ac8fa47 +DIST firefox-128.5.1esr-es-AR.xpi 644958 BLAKE2B a116a00f5246fea749577e6bbe1cb8c0418d86d6c2fd71b574aef0477137142ba93801841b567a2b3b75adf5d405f501db59570d4195558fb91733ff98fceaa7 SHA512 641b1e5a17fca3e576aca23b3aaef47663502a160d786d6428c1f63d74fd725a6c4324c7d40d994c28e40f4cbc15dd1be9b1e7c3225f6be01d6b655f4420f3f8 +DIST firefox-128.5.1esr-es-CL.xpi 644430 BLAKE2B c41833801f4509ffeedb94dc829a54712711a9119628c43b86cee2c1ec3344deee0a17978d02d9ee90797cab0fe20c49f774512f09a39e1b400da4f29492b589 SHA512 f648dd7124230452526a49cd72da69ec3e5c0a9e92acbc8358dd440ae3d453504eb6759bf7bbf38c2d8cc9385ee0a328c954dbdb06f2542f346ab6ef52150395 +DIST firefox-128.5.1esr-es-ES.xpi 637344 BLAKE2B 35a30afc8416919db58aa6ada451d4cb7a7899db4f227683a4e07e94a7953b1b68007fbee7fe96cbe686135a2311e092a97d978e54988269168fbc481bc33f39 SHA512 dae331159d0e0e7c1b5fb68f2f214edab83ce679facd0d40b7fc0a534b7a56630df902735098946516d9d9eb1801d40b978b7955532ba337ba692a11c572d5ba +DIST firefox-128.5.1esr-es-MX.xpi 638915 BLAKE2B 9ec0bb6415943bde6391eeab0c842f9eae8ede140e4b85279bb63625b53da53cea905a5ec6f190d12cf16fd35eb1a04cb2b043c2805104dca7d4d89c8fc10971 SHA512 495341eba70df8af88235c31fc558335e3a0b0322d01d33c009709ce88f7f6e12f75f8e354a7f466d51b7238dae9cccf52a1642cb6bd38f4007ee270e64f1b4a +DIST firefox-128.5.1esr-et.xpi 541117 BLAKE2B ec42e0abea13492d972af2439c9f2742681db3b612b6d2471beabf6342c66f21d35baabdc708bb99815f4edf834681c45286f33ec1032c758dfa21db2f1a0ace SHA512 35a90a5b0c13ba1f47ffa4b63af322487c2d5fe5beb4e1a4ceb29bd1cb0d0737b260cc4585f69538f13a6a2d8acd6e747794d48d3f076d93bc1ab865ccc23e42 +DIST firefox-128.5.1esr-eu.xpi 612327 BLAKE2B 8255a6c732ad51937c37c11fa06c93f76cc586892a2eada94fa138ed07eee13f59b5d8d3405893414899bb2a277f8139f1fa507f692c4206e2eb81a3b9e04f6b SHA512 63a408b7bb65cb5d178569ebb7b3f4af7b8991a6363735cdea31b5a9a3948127b5be6b126925d7cbe8735032a1baba1d96b64a4900ac500b6f23506007013e22 +DIST firefox-128.5.1esr-fa.xpi 593833 BLAKE2B 377a22464508b33ba56bd4a73763b50a3ef56df27b04884fcfd78aebb4d5b04ab8972e81faa176e7262b0426ca2f9a350901f2bbe5ad33bd7f8badc7f3077901 SHA512 22a63b77305eff83f3fcdefe2af77735a3027c71174b01b968e9c72f3424c0a7f4def5b7c9521d0695ba7b82b346a4af8b966df8c5d6ef0ce31ec61414589757 +DIST firefox-128.5.1esr-ff.xpi 477470 BLAKE2B fcd0f76b2f01f5c100050a77e4d7ea13e076f56374dac43ec8e564516386b52033f9e4c4f80a751941ea8fd055e67b5782ad98e827f1b16dec310c53b5e9743f SHA512 bfff0f3606e625aca267f469bee309bbfd80b8ec9dc658134cd0a8674739de4ce66e094827eec717d478bff493b1e30134d5bd1227eae685985515febdf747cb +DIST firefox-128.5.1esr-fi.xpi 623004 BLAKE2B 6e26ad67b2dde0c61e3896264dd369aa0ee1f3a7cc9919c932db4b657dcf900456c1bc6f1b097d0c836114f75f27b94b5a3792a79772d69697a14072d3af5845 SHA512 50bb30edac747a61c6fba8eded51a1f346bbc4305f9c0f579ba7c5f373c75d1d5cabf0216f897ab26c687a885e8ae9b30a20f563fab4619d4f128a8e676fb338 +DIST firefox-128.5.1esr-fr.xpi 655849 BLAKE2B 8c0c601982142b24213f743bc41805aee07535ea2a168b117267db797f84ca6489b91ffce6eed7c7f798b654159a63829993ab60d000237133a300ffe74180a8 SHA512 671a6e53ea6b966b7e86f680663b0d4117a019da99c3884c8ab57520e879b691b4f9037a5d9688a0fb25b2d113bfacbafc61ccbbd4e74c393c58dbc21cb86c32 +DIST firefox-128.5.1esr-fur.xpi 651347 BLAKE2B debad042dcfbaa9062b0acd947edafaa26a6563ac00ef5170578d292feb2a81afc52501b389edcf274748c0160e44e25c40f5b3cf91aeca8292cb9171dc79fed SHA512 568c3ff380f55892292b140e9f8d3c565f2a00b180a5b4c792bd831a8fa72832685a3cc2e48e35da481c48987fc4990bd55da6f93ed54d6d229d0e02ba80da96 +DIST firefox-128.5.1esr-fy-NL.xpi 640614 BLAKE2B e25f60eb67744b6f0e75fda9093c3f7a7f25478c8f1011626a0352b06992013e2ff08c81bdff256572cfebc2cbadc2e31a9576f8fb1f7960cc237c57a04ed519 SHA512 a236ad89e5da98764c726d92a1f4825dd85881a903ce6e2d636484ffd8e7877c758216ee1b7485343d26806d69603f53e5d861a505577da8c13f75aa02325c3f +DIST firefox-128.5.1esr-ga-IE.xpi 472345 BLAKE2B e66285d125ac48f94dab62d0c01ab63d5e3fa5733c57368f0f1c5f1f10dc712c0affa88cad656d651a797870150159644ce81c1d5c3b3b7151462b939255cc60 SHA512 c6bdc34a29c71a9ac38a8f97d8ad9d79669be19f4f8b2e9d8ea6afbd4b3718d3920b4777fedb184cbf11a524baa640fc662cb1b658c18fbcf25012d5c1fe53cd +DIST firefox-128.5.1esr-gd.xpi 598313 BLAKE2B 13d1a4f5634348b27b7d34f35364b124411a3cfc15863183af9ebfb945d0078f8f13dea6e5b3a7a8383b471fd9c1068d4b4d9918d8d9a06a094e5497d12c4d08 SHA512 f753776bdc6fb898dffc96667eec7cdbec9d97869e4fd9103a67e795b64e60dd87cb20c28aac7eb76e3e861003074c7902fc23f7b9daca126aaff729f66d36a9 +DIST firefox-128.5.1esr-gl.xpi 609631 BLAKE2B 54323198c301186a61d1e21ca01af466a7fd36eae10939632cbb5a968d61fc2a262851b7c55a037e35516940f3ba362bad460db58c53de6e71584385ab8d77d9 SHA512 da3914990401b466c71ff7ba4fd046d42335bcd8503baaa7ea2f585fc2136b0416d4889c07fec675785a771f0c1196c9fd6a5c94f67cd17a56c215ddc8a50840 +DIST firefox-128.5.1esr-gn.xpi 652869 BLAKE2B c29f61a8ec0a6b9e09da9ecc17611649ab53541d068ba5085908897a89f48354bb398dabf6353ea2dd47086c2f78ea4a6c0250efaada9fcb6b57531af5642307 SHA512 f501bcc83f52dc4262ca5ab3f0df142b083ebd8787a7a1f82058e88e16279b7f9a47da731c8d4ea74c903b256541162437facf40c7bcf01556edac1b2f1a94cf +DIST firefox-128.5.1esr-gu-IN.xpi 528781 BLAKE2B 9c9cd26ae5037a8035f2e51a32582571d1a18a5398663cb69a2b8aee04aec10a426a553a1d59ac1095f42e61e522014ab4e7650e17b1bfe0501294afbaa16d7b SHA512 f2b923b2350643dbd70c42a134fc764079aa8116c37fbdd0a1e1bd0a4c85ae57c16a0a92f41fdfadb5271e1a6c4eceab1cf23588b966afca5fd274d47387e3df +DIST firefox-128.5.1esr-he.xpi 647292 BLAKE2B 23731f770acda679e89b5e2dfd5bbb45d1e3128158cbc14c5b71241196422a4414383b993d865f8b63da89f7ff09494cfb24c28cadeaf4b15ec719bfd39808bc SHA512 e37270be9ce1ccb4a875459deccb2f34348ec0423967617c35086fdf99cf8685858f900a376c43799dd8135703fefb9bf9b786945435e90c6399a887ec600a17 +DIST firefox-128.5.1esr-hi-IN.xpi 568352 BLAKE2B 7717a99d532f3640d2fd204382ec903ecd3ecfaf36d9f9bb86a93acd020a7b7ea8c8b018a0d07e34ba8c1b8ed2d1d60c7cb9d0576fdb2034286a736a37d0fbca SHA512 c4d0f132065eefec539003fbdbc22b1d0a6ff5138514c2dda13f04782b5932b5766baeec5ee742f0ba6471215f9969f8630238427f2275c505533fb3ec438fbe +DIST firefox-128.5.1esr-hr.xpi 619163 BLAKE2B 749c0367e4a71ebb3a335d717e272f880b2d29caefa4036fd7e8c2158b6db479fde113b7b512efd75a435d36806d647b102f73a8267b7309fc6dd29d4f48b1d9 SHA512 f6cd693e488d3efa6e58c557dca647649792f01877a7b6f1d71582cacc3623cb8b373b8f80707c735ab3bedf77ad46cad029fb28af22485cdf12078885d65a31 +DIST firefox-128.5.1esr-hsb.xpi 663537 BLAKE2B 04c05188197a722bcf1efcf6a860d50b8577a39203a299d9089372ee92813d99d9b127499585e03f9644db34d077298642669a2951b073dd7a1d496181eea6f6 SHA512 393e70c5df40d8338b48b0ffa58c93db817142914d853240671a0fd2ddfe029a8247711f2b82bc16fec84ab3214fe31ae467991684c23905a72804ec6bfd0dfd +DIST firefox-128.5.1esr-hu.xpi 667793 BLAKE2B a9b2b88e967f51de89c8d9de777a9850ae4ad16d6e5771a96d138dd9a38d3dba8122f7de9916ff249f263ec591d35225ca471e3d00e2a017a6311fa2c18aa3bb SHA512 7ac405ab6f6592e97e79ec40102d49e5b9f7fa3a0c47a0949b1d19f61d7593512f047f791d4a8287af8d91d173faf34b57e0b4a4f7d3547179137d34f8376763 +DIST firefox-128.5.1esr-hy-AM.xpi 653041 BLAKE2B 7f77449826de0dba2c08a9051b148a5f240b2f1cdb6321940ed59f6d196f4da22cc418046e82c6611a4f55c979630849a8798a46e3b1d233736f42bd59cc341a SHA512 c03afe92932adbbeb467741c7b78b2b170e910309f43acc63ff0807157fc4dde35ce23ca5ce150dbe91454d2ce97d2805d9ad7d9a7c321c55dfff73311ccc508 +DIST firefox-128.5.1esr-ia.xpi 627659 BLAKE2B bc0ee10175350b06331651b2fb0f9f49a558c46024e54a5be530e6d9296f3a3aaa9b21b1169e230397b62769f3ae8f1231435a692d91146050f59ba6901d1a61 SHA512 252568cfefce1926d7c0d80529fbcd8ea5e7ffba61ec7c2d332ca0b863c417ba9094bf3fe1f79e48f525cd606701439b8192049ca3fc486adcf15aa83b028840 +DIST firefox-128.5.1esr-id.xpi 587631 BLAKE2B 998ce260fcf8f31f9337b25f43d88df06448c8481f2246d4fd3ca7c53472a0907648000b09143f8a10f5ab225d10cf202f8f54520db72978b9808358dbc5b71e SHA512 343498935cb3c87cd210f6173f38a94e1a2d9fda388047aeb6e14806d02082834cff1f21c3d0c68ff87217549d83b6d374d9970cf76f65994255472380c8f353 +DIST firefox-128.5.1esr-is.xpi 630672 BLAKE2B 6810a92991e6ae67867bb63dc61f09cde655e7e77dca9d88659c68e07b3357654bc974fbfeb7040581eeb6105862f79c058ea43c795ab4f07762c153180f7da6 SHA512 6383e4ff82d387549dc88651bb3719487ba0db10d39641dabe460f0bff724f0cc1173049c50508fcecb2eb2510d8f4fce184f7c51f984aa2c8e3ef51b337f60e +DIST firefox-128.5.1esr-it.xpi 584341 BLAKE2B 4faaf5de007699a0f4d2e57107ef69a8d74b9b992696049deedf0435ab85e8b05ebdfbefcbdd2c4b0501a90fe10516ab5a6dc4e139387f2265116d74f4c10dfd SHA512 7db2420af7fba7b74bb6bfcdebaa16ab39cad13abad827210a9693d0f9f6b0bf099b34eca10848f3d3cfd059fde19de49e27fe05c4ba52bdf793c2cedff0bfe6 +DIST firefox-128.5.1esr-ja.xpi 691954 BLAKE2B bf3b91348030ab5813ef4084466dc252c47f48fb039df811d983d438670b76693448ee1b7fa16ce24df9d9e4a19a76160231f60a419aab5d1773dae1328d60b4 SHA512 c44f6de971e2a6258f06903b4e295f99f0d8024fa3156da90d42ad21318db8a840ab9e9fee11aeb22fba2c2b296c04d01f21b97f2be783b59300825912edf296 +DIST firefox-128.5.1esr-ka.xpi 662312 BLAKE2B be36ae6adb95f1ae4c15904928d61e5fdcb64c5ed0c743f5d0eb975d4ad73a190309c1274e01b5377c77e0c2a74d8af89489c66a68968fb1965a137e02c1fa2d SHA512 bd4d87deacc22cfd7ec081be15e1753e4ee0c07b6a36d27ee005d1b4d4f87e761b274794f4ab3a9bf16d68c14167eb512209a2029c050bd7c7af91860140b98b +DIST firefox-128.5.1esr-kab.xpi 619270 BLAKE2B 226e7a77b9e5bbbe44176a8f0bcece18d498e7c25b33ee8fb27a4ec68e6b4caa21568788ae24fc349c26712d34376e21b15906f6f51ec5ef9b560ac87d98a90d SHA512 d478589ac8d52257ffdceddfb9196593eb2b1b5394671cf695a3fda2848ea3516396e659191b1aea2e85e7b5ef310307a8902bca170f82bdf97761237bb464a9 +DIST firefox-128.5.1esr-kk.xpi 727326 BLAKE2B 4c2e19c0c72d56dc35a8943a66491202c481fa72d311e4377640c0ff113437214ba0225263dab27ec59e7f8dbe0f5d0f58fb5567a2d9328d2e468e70f2e52eb6 SHA512 c5d9d51d6f13f21f2e04acf1a6965cdf75e0674e7228ccd0b9f083e97c8f1c03f67757b1866ec7803dccdd769d2c28776d638a2de1c38e759236e1cfd4a3c6df +DIST firefox-128.5.1esr-km.xpi 527178 BLAKE2B 85c6e1dca51c56995cb07f896fbb4ae3aac4d8a1aed3a00a6443ac77758fc4c1991671249707298aa947e28507d7a23fbf2c7765ebad38b7bdd8e17f1ea897b5 SHA512 10ffa99edc8716a3c5b510e6d18fdf1d90d7ce0d549b10e88c1c34a3fd37cf418c00295db88c244d143cb3d88e5b41c586f2ea440372b77f53168bf797ee1627 +DIST firefox-128.5.1esr-kn.xpi 492538 BLAKE2B 78e73840957bc2c5460a3a685c1c8cd2ce2b96331acf38f5a8d218cb4fa102d43afad466c78d7f4c2668717a60cc345199eaaf9006f9c191d41f91188ba19149 SHA512 139c1bd07be3a3433ff4da4f9a8831290b07fbb9026394275ed29b26a6582813460646e390869115699e3efe2e19acf6c9af49ea0a1d9d6bfa2923f155fbe940 +DIST firefox-128.5.1esr-ko.xpi 679377 BLAKE2B d789c5397eb3ef90ec75b0ff99a657444ef7051e32b23686ab2440bf3e0061151cf5bfccac98a7c5283dd2b9d1ac6dc684b67057b6830e982917d9a16f14314d SHA512 732854a80f6062f620d5ac280d5ee3bcd199b4eccc4c78061866768c212a9009d6f34c735075ff26466eef77e1992d212e7c5e85babf5d44a7c7c229ea174947 +DIST firefox-128.5.1esr-lij.xpi 485529 BLAKE2B fbe19dbc3da48313d2792c4dd37cdad45b0575ed5c6e93314afbb9348cb9438889cd6a8deb8ebb3cba96100c18797d40dc1a6889d2e212e814a2cfac660e335c SHA512 26354350784f51192e8115531d1c05e4afcf52371c4cf5dbe1b09e15fac13ecfda552a831cd516a875a26ec4e149c5e0e388506bac3b4959a5a1f37159e82be4 +DIST firefox-128.5.1esr-lt.xpi 574123 BLAKE2B 201835cea15528e0152d142299f222306eae6cb8825bb463e7918026ea189a8d74b9221d8bfc335633533b016d5ed614a534963b77ee63b365d2743499f5b285 SHA512 a5e9874a902de629bba988268af9387ca772c5ccab6d44f25edf4239f5a5e38a1e0586c036f70d7a2e8a2462c194330f6d0ff35c4f4d41e536042683c93d2c06 +DIST firefox-128.5.1esr-lv.xpi 587203 BLAKE2B 10303bd848765055369dad43aac968edfd6fc4b0533fe04271d5984a14b191863454198295145f4d346bc52e994e80637608d30e422d980a529b9e00e96a71f8 SHA512 c0d65741e9a434f65ed07698f97c146dc300c1f180b8eb0920428a7489de2ea75007e068558cfde3e9368df59c469c7e4e0b87f492fa00b7b952040c04a7a83e +DIST firefox-128.5.1esr-mk.xpi 495172 BLAKE2B e072c75249990c136ae3f6482c8f8649246f3e7b934dd99340fe52254debf7b0a954e6397cdd5b8b9dcddbe8525fb412b2a2f434ff8247f1f5a68c560f081a9b SHA512 a07f2cb22063e3d761d0f157fff3f18f535206d8047291d06be48c4c4ca4c6b7990751a45c82167a3d74741e3ac3619a3a23ae3ca902bdc235b0d17eb4d546f7 +DIST firefox-128.5.1esr-mr.xpi 533544 BLAKE2B 7d3e362b0d8822a9f03ccdc779810dab1b66396d194f3d6946c8b3702911a5dc6cea66d7369f7d0b333a93d4d8fe01daffeb4a72348b79221f5d3c13c5def406 SHA512 0e6ccbe5113720d1b10fca7ea4c249eaf552d6156fd8da28e7f39d5d5e8fdb0290baee01888e2e9eed13673c52aadcfefaa4b1a601f26d23e9a8b960ab36b5fe +DIST firefox-128.5.1esr-ms.xpi 451150 BLAKE2B 373b4de4a5c455cf23e4d5389ae2a6343d1a2280092846c41a62e9ff4bc2c02711d62a106a152bba806642635164b11e5970f0683f71fab6fe749313fd6a42c9 SHA512 a6f5d0a639d7da48f8bb688b0d519a4042a4ad0a6aa76c101caf5ac5c111caaeebb917e710ff3edb929d569f638d4a7fd963c5a32b6249462b4c98932803b3ca +DIST firefox-128.5.1esr-my.xpi 519900 BLAKE2B 21c7e0a7891fa700e13d726b9c7d697b080b8261f3f93178ca4a8d18cec46204f0d93a9d8da3ce7c4f4a38c12b1bff4d24c5b58de996cb2c77435af1fd74ee3d SHA512 e1c84dd2c8f44d251689096cda602534ee7d8e8cc865e6aa5ff3ec5d0e0028ea7675193102d1acb2c8ca06f823faf9707b7d03cd43f78eef701f7ef2ca7cba31 +DIST firefox-128.5.1esr-nb-NO.xpi 620010 BLAKE2B fd399d9dfb1e1811b1f928e3cc74517fbb37cadfa33f12731b50b25f61dd28b099bd10807d9ea947bdaf7bf067a3af113a5a67ba573482a7a2fdf4d31b20ac7e SHA512 4a78f13573782ee8eb657fe1791ef7e5e2e683c77b708812699fe9f9bf54513a4e98a9e5583443dc024f54128a196a7722e75b6d6e5c90c025592fbd8b0c57e1 +DIST firefox-128.5.1esr-ne-NP.xpi 522141 BLAKE2B 71cb0e5349ecc78d66712b93ed9df63fb2285eb10e6e90a5ce76a5b798fd02e202de8dd1bb77eb76373c8b38798f3b7eff3df1261ce6599ebaeb6c6174908507 SHA512 6ade6baf8f8bacc87512130e1d4ea9195430f8cf297f36e2872d19b4b9dad4e55b1c458fba19d7d256d39b136085bddb416570dc231dca3d0d627f844f88964d +DIST firefox-128.5.1esr-nl.xpi 634305 BLAKE2B 17817f4f1bfc2d4d9a2ca160668e57ef1cecd245ba8c2126e40d8a4f0041d2001dec592b8273c8b776535b0604f5bd12115cfdd890854d194e136c0f1e2381d8 SHA512 415debdd1844f2b393c16754efdaa1c75c4dd6e7294fd46b0f977fe914a7ef6addfdc7a7693ef651abb1260b6c469c710177bfa990676816295fcb124a9b3316 +DIST firefox-128.5.1esr-nn-NO.xpi 622819 BLAKE2B 8c14a7aae53ca52bac879c7c6d99980e3d00378b8b066990bc9c24c4988b78acb0864c49955b4da2d3a919d21236ca950632ec1f4d3bbd443893d252acb67c7d SHA512 f0c523af5a30296d60672a9783c0c4958e0b17e2a27e501f8fb56e1209b58aa558e6efb4024ca48e036a1add0e644b168d3f4f8f1f790f9cfe9dda7e2dce278d +DIST firefox-128.5.1esr-oc.xpi 615781 BLAKE2B 9e46ae7ab52642c4ab79447d727889f3119889f14cf7760d182c91ca947fc3e3da0e62c06c90eb36ce0ba4db75cff20a0e3db1cc14c8efe7dc0908f03dd328f8 SHA512 4de45c46e14b6f45012f5f5690bd8664b1e447cbc4e1127c10027dbc86b56ef60ab9e21dc966b9a023b4b4e679248a504413226c7f85006afe762bbad1da9ff0 +DIST firefox-128.5.1esr-pa-IN.xpi 711071 BLAKE2B ff453be664694e9b6fea63d2a5746515cc7de5c9883c1db6e66154459d28bb923d4d843945371744cfd14c15f377ba95ce849e166d9728e6da34c5b54c21d40a SHA512 c178b4e09fa4b1076d966b250c57921b12c61d1306b68031e545c8026e3fcf9cca52ead2d43702105214ff63d05203831c50aa0eec893c8893995d38d12cb037 +DIST firefox-128.5.1esr-pl.xpi 648780 BLAKE2B 7e176972c265db9568e610322bb9fbe9ba4e02225cb4b52379c13e5c290aac2f2c3a60c54b2ba7883cb7953f7993daffd1031aacccacceba3651b0642348b620 SHA512 8f3cc2f38071177a890eee921015dd9f5db8938fcd6c985caf5f052e9eaf59fc0c4dc7d0f50b1e8c423e7ad5829e1c297ec94e476c41726bc6e67b8554133c00 +DIST firefox-128.5.1esr-pt-BR.xpi 638905 BLAKE2B 3e5525f3aa7cec5b2a21f9832f2557fdf140276ae5ed70c261a40304ee5e03bc21978f7d1d89f3b9ac58b80a857cfea490a3fe36a9c84686c6aaf73ad1c5a430 SHA512 0e2f457faa1eabc15c512bff2ef85173504972fd0d6ef00a4756aaab199334cb3ab05bb08830e7d3967572ecbd4be0824ffd770f6c9e314b6c58e212609d4dd2 +DIST firefox-128.5.1esr-pt-PT.xpi 642494 BLAKE2B f5e202e9902f7481a4594505cc3c477e42894ba903184a44b936f872c8006b7a23bcb9f4d3b1031ccb265b61425288ea4b6f4d5ac80022e98bfae0b4898256a9 SHA512 406e6687f5da1d2eeea14b5c1c6ef3b1681a48179e804f298a57dea43dc1df2efce3563ddc9cbc35c9e3fdeb0881e97e6d51f330ede7af2f1e62827431e3a345 +DIST firefox-128.5.1esr-rm.xpi 631429 BLAKE2B cd805802421b1f7cf280c163b5e4f6a4ba8460afa4e5e14b63e1d69d0b7bfe849de9e72cdad91cfd2ade789f32cb2067b2355413bbdeee89bf4ed5648b39e9b5 SHA512 1ed743b168886b0657fc0ffc0dc931d288f6459943b2e5c7779a754a8cadf695653a8f0b601ff10cb9d552f7109bac4430c810e2b53dbf0167f3369060509c83 +DIST firefox-128.5.1esr-ro.xpi 551220 BLAKE2B 3af7a52d6f6eeb932b966e7043e51e225d6100b18a43d920d5b1d877aa74b42b8f4032846c3f7c69285d4f6204e128759dac8d998c097f4b458927ceebc6204b SHA512 27cdc62ec4fbbd806be77b51ced5de94395b03dfa5dcb7ddc64f7d68dc3f0302de0278e7ecd87b98cfbb08ed8470ebb472c714c5d32c77fe7ecc0633c64666ce +DIST firefox-128.5.1esr-ru.xpi 740415 BLAKE2B d5d11b1da30dbd135de99546f6d8887f4204f556403105235c947a3580859c1ce170fb369b435045f1c09269aeef875b0241317cb2414cc40c668e0a3833ddac SHA512 9098f6f112605f69734952206078f1769a6ccb299a9680dd7fb37be268355b6f32652290501bbbe8e5c8ef5bf09fe5d9036574e953b1e422931b762512399290 +DIST firefox-128.5.1esr-sc.xpi 598930 BLAKE2B 2fff78fa8058ac6b3b46f5ea34e38f837fd3f49b99058e7c7a494079493903fa0eef5765323f399c649000116647fdeff06bbb0c1952c4cf4dec5b2027f38c47 SHA512 7155d55cd62d04b58d332d0ed1665d244008bc400a7f6ab01bd3268f0875d6ebeb8a1ab54d03346c87632ab071575cb4c8a13be719f3302903f02504c7ef30a0 +DIST firefox-128.5.1esr-sco.xpi 512705 BLAKE2B 41b7081fd2faee088f8c99df9726486f25df972ca58af5bd43136d4c5aed886ba14f35ccfc4cf5e40a1656cc37f5a7e9031614982e4b54da0b21c261bc8e27fa SHA512 7c8e8888473ef0a808ce5c5b4258bbb1d834ef56318415ec44f54908069407717dd0afb91e82086d81164575f16ef73956c8340537546cd9af72d5d1d3962bc5 +DIST firefox-128.5.1esr-si.xpi 621563 BLAKE2B 57b6792ce61422c4247d445c3950771ab6e738be2d8b01988c633b283626881b8adcecfe5c66d2bd81167ee3bf5a886f43f56e705773e6bc1b05d383bed7651c SHA512 91e0a3b2822fe6d9ac9e0d2ab71e4ea774d1b3c685076128eb004bc13ee4ed96ca72f36481ab138d892134b6c8aac564afa49daf859cbf8801cd62d0a97a4484 +DIST firefox-128.5.1esr-sk.xpi 670792 BLAKE2B ced2bb92a40f81ed133b5767885749455cf54df075e05408d0467249e547eb6a75e04d4bc74c2a34fa0e30b80974f79114164ce98d8283b1192ae1555e011ad1 SHA512 486fee6fdac257b15a10d647588b79967f4482d412438f906ba0a4b9cde67dd2142704b60dc6d748394da2c9802df781c7a2ed633eff87555ae668e021558356 +DIST firefox-128.5.1esr-skr.xpi 722725 BLAKE2B 9de60a54e273a1db041a155e1f08164470c391a50bdabfd25f90f912ff3d4cb8ff39845ba53a2b5af2b7b2bb3c9a107166c82bb03a7465414ce54f9441a3c937 SHA512 a620db4da6fe2d85f1b1efbd0fae6806fc4aea3979d0ad9e48b318937f88430cd74719c27ed5fc22c7b11c83f7e801f87c7c49e8a0f6e5d8bfd88a16f550f855 +DIST firefox-128.5.1esr-sl.xpi 633855 BLAKE2B ada274869ef8341dc37514ab38fd772feca6fe44f963332063574794d5f92693f41edc0783aac2369beab8b2d4118a282089b037c62de7b470bd84a79d78cf21 SHA512 e31bd61810c1e7dc3db7d6a75fcc4a671f68ccc2dc44bf076ef577a164c07abefb88247abda604f9d707db1b9c909a067f1cd65b87c57beff60c16907e4d0856 +DIST firefox-128.5.1esr-son.xpi 417711 BLAKE2B 57e8156511a18dc50f7f379776e23babf1886c666122d3e49538c855a309116f1e41fb41b224b6721ff7cb871cbfbcae1452abf0f510dec8ea678d3ff0898939 SHA512 c89d4ba1292450b0cd4696233b8a74263e2fb0e2ac261d481585473c1ca76105bd89355748a73be92e4052807502679cf1d1281b74ae35a4e201d68b0a56dbfe +DIST firefox-128.5.1esr-sq.xpi 652184 BLAKE2B 7f6b6b58c76cd07a8198b1fca7fdb3dcf75d71ec8e4c60beba3f8df5c48a15b9ec1488ce5b51faf7880cb5c98b1d0ae348f6914cf2126c9c2b2974f80d93b286 SHA512 f490f152fcdc33b32d52a62c3886837c3ecfb889a9cc081382fa4abf97e497d2b0bcc4f773adc26eadaaf159e6591a60d5fd68b96880dece3f82ab7688a7d654 +DIST firefox-128.5.1esr-sr.xpi 640903 BLAKE2B abc13dc51eea6c072a86587cf3e9014d5153d46c0e3b92c22004a3ef8883c8f736bb12f52de389fd2fbfbdfbfca5b792f383ea0ba88885e9ba2c813a7e23d2a2 SHA512 7cd7d3d54f0b1dc8a0f9efca5c4ebb2c42527f13cea70794fe9db1b43d92eb0d85d09157964243d0e621b6af2e281a71a90080979d4e05a1a9de3beaeb3a628d +DIST firefox-128.5.1esr-sv-SE.xpi 635637 BLAKE2B f64cd27dfb4c6ca15591156a22bdc5321221d460170876669a92b437b8d7a4e080dcc2da1f1363dfa2f0c59d3273f5f6b1b7fb2325298902906e33e4bffe0e04 SHA512 7e9de909bc6ef6836bb4e5959c5d27add903185a23dff905947f1cdfe42a860cb2abd93dc23a02a711f3f41741071b84ea229eb91aa38236ca7038124938bb72 +DIST firefox-128.5.1esr-szl.xpi 527820 BLAKE2B b2c6ef766e2bb04c6f8fd69ad09ac10e2629c821dd564b5db67aa0e03acc9e10d65d5d2896585906fd4f927d77f8d44c82c128d42c3c187de94dd79bc32bdd5e SHA512 60e6b3ba00a739c6d04ed5084267d42531a8fe22956e7ce4cf85d5ad707c6660e9ebc34a0a3fd62595594463db819ef95226cbfe5cb4a5881084d90ba20fad24 +DIST firefox-128.5.1esr-ta.xpi 508808 BLAKE2B bf5ba66103fdfdf3cc86ce4a7edd11ca7dd29b9d14ac921d307bbc2e53db42ef87ac3d3da1b65bb9a11268a89c251ec1759b8e82fa2d77942da60c582cd38a15 SHA512 0f8a0396b1d110d64ea84c1914ece4cbba101e5a299e449a11e123b5f6266973af3498c685a45c73127340e027b62be97b41620e8b33e8d7f467363acc1fa1eb +DIST firefox-128.5.1esr-te.xpi 565160 BLAKE2B 2c63eeaaac71a9b33bb9c0c015c586c4beeb4df8b1734deef5bf74b17ee1b20c3456943fff0108e6651dc0f5aeb5cf2d21b77054b022c40fdb20914840628923 SHA512 bb42652dc06b6e5ec97782acc225039159c71835bbf5b0b57e43e37d74f631f2143d841c09095caf66ae6383c61e5408f9354bf44f4d3cb2c5727b66c2369abd +DIST firefox-128.5.1esr-th.xpi 711783 BLAKE2B 632b4741ecbf2867729edfb4a34371b61947b1dc7ca06d856fb71ab8ccca5b8f02199088a4d8a927eec81d3e70862a803979e9106a909c8b401fa56817bdb5c9 SHA512 5107b097255a97e851562936b73b897ae7d5f011bb97135326b245f85d1d90c1dc68e4c22207e901e3ba44b52f591056c50d6185c43bf72d02d688e097b9db6d +DIST firefox-128.5.1esr-tl.xpi 535614 BLAKE2B 7c0cf241b573a5e0c5c3ae9710e82aaa70674c3713fbfa9d5c3ab39758864e6b2076c6b8d0fd0ab19422c4b902491550e0ab11fcfb29273de3f949146e8cc8ee SHA512 905361ee3e739ebd0443c9865a55d143d1d4500491cad9cd686469bce202c845cf6810ba3e5bc085d283b93010fcd6c375e085547f0371861e459db631efdb00 +DIST firefox-128.5.1esr-tr.xpi 649209 BLAKE2B 0e227a86167bbd4b86bdb8b0437e5905498f936cfc91feec0a1fbe99fd9da99db68742f885a9ac772ac6df6d34bba05b9a3448bc0d00d174b52f021f1f75fc76 SHA512 705fc314f1aebb880baa422bd3e7be2b4ded545f6745819643d55d6dc71d931eaf7a07a85a01ed22860f0ba57ad4ee2d248b968ee40541780607e80050b00d47 +DIST firefox-128.5.1esr-trs.xpi 505791 BLAKE2B 8ffe7bb6e6e1023276bf70e0381f8f387211e2315a2b842352337669f44ecde9118a96d77d6bae6d07c73aefb538a29c696ea48912cd8fc88d0250c5a2c03556 SHA512 6be45660fd383f8ad356fbaba4a77067ea3db3b6d9ba0dbf319694ca30f085956cd32b3fe2a9f4423e536c341c1c9e644e4e93b9edb9855783cd6dc4730d4d41 +DIST firefox-128.5.1esr-uk.xpi 731694 BLAKE2B a460fb7c8b2fa82cb3e0c95835d8eac2c6b7b1df42853a979238c31d9483094ff52fd1fa5e02c4ea584e5056f2ceca8162030787637c12002fd60325b3f6c8e2 SHA512 9ea74032a76c7796db6e16a5dde1aae9112c5a12d626a8ac8dce60081c4d1e0a4ef94a9d586ca2599e8cfaca49226a195c3f2474771db813e7588888dc409412 +DIST firefox-128.5.1esr-ur.xpi 561774 BLAKE2B 37f5a1c270f7d89240ee2e21368ee8041f74072d146991432b47ada22f0757e7fb88a31b34185cc578ce63741445e3f492afd2cbc49811c8acd2dc9f3d429d50 SHA512 1d9c01424e7119b78b53b8836fb8c649a31992a24d80b55273cf558e2c9947fc55f2510f6a5242d25a4dd4ec77fc39780972dc7ca94852af9e6a2854244d9152 +DIST firefox-128.5.1esr-uz.xpi 480216 BLAKE2B 2c0aa2c7490d2ef9ed928401802d0eb7e2e23f619674d1f0fda332f2d0d8e0b5544d4baa5d9e33218d49664b57c11eaa6ab65a43eea9c3bbe46a7cfc36767125 SHA512 da036dec083a885f3bedfc9dca9648474634699979bd08ed5b1fc56ffecb0cc7e0b7e5f3ddc15658367c19e322abf31f510fe38244e81528978c434c92372886 +DIST firefox-128.5.1esr-vi.xpi 673236 BLAKE2B da0663934b8462460f2a733da2e1887f1a6baff666fd5fee1b7d7a4b0ac3c0feef104d311405de58611f5f917764c60556f4b1b23aaedad76f0c0906c9fd1cd1 SHA512 88c4361a4e235a55fbc35470109de473e7ba5f448d2ba529ae30c428f6b9a2f950c6cdcacb06eecdca28411c90a430772a085b13028e0fbb48b01edf387684ef +DIST firefox-128.5.1esr-xh.xpi 418473 BLAKE2B f380e0e675c4532fdfec0e685ca53608cde69ade595551dc334a9f732d7656949185008246cd52ce0192aa6247b5a91065c66040bcea47431b63e9e63e764fc4 SHA512 9a80f686b3b9108fd63b37196845b4ab0c3ad3d177962f3de51db6b9b126b99ab4d6295fc07908d550ca6a020134d3139f424ba4d8dec794f39202cb93f8e949 +DIST firefox-128.5.1esr-zh-CN.xpi 675197 BLAKE2B 5ef7cbbd136ad19effbaa3e27c6e0d16627b5f0cf38fa849e4e88086f0a421b9b4e1009e5572573c3f69f7e93509433b0047690d27784247e5990b5909233844 SHA512 d82fb4e9eecd1037d7ecc9660d656da9e7d679a8fdb850d5c4109d0c8ab20fe5dba0325d91efcf4025b1453d6c39e0036c20d18314ff6ce0d4a918c4be0b79c2 +DIST firefox-128.5.1esr-zh-TW.xpi 677431 BLAKE2B d7b0a38dbb8a14146d2b26a5c5885e89c89a7b9ec2638eb97ea7d7f0157b57164b29ef7c26461ba196222809e86ff12befdde48be30ac87e2ed5d1b258d8a8be SHA512 44da6850818affc80e9257150d6fd001b50f238f2e40b61298329540cdaad94b6431c5a3d522f921a8f9b1393591ec90ceef654c7403d01f0deaf3cf0c77ab56 +DIST firefox-128.5.1esr.source.tar.xz 559760256 BLAKE2B 45c1e9cb54ccc031ab8ce53d61337b3105cb76c7a00043ca62b323aae968c3e3642fd5141355a96b43fb3bafc43f72f4127d6bfdeac6a51be2f6a56f0e66699f SHA512 476d71ff45a7178301081191d1b4c47fb21b42618f12191605f95ad48603b84a9150cb5c96f668751a43c8f6a4a43ecf337d38007d8e2b546f006faead2d66d5 DIST firefox-128esr-patches-04.tar.xz 14416 BLAKE2B 0ffe3fd568480e37fe28fe71d5304e51028dcb8cb2d5fc1d838d725bdd36971696d7152c37bd90f7802c75e696aef0b1b075d386a906b40635f25083a6a58239 SHA512 adbac956dc2d6c1c29fb6641a42096bfd033a662f69e177f8d75a928f46d30fbc811e8a9ca24de8c7eb675ee80f6c1187f1a13dbca8e75782abfd54e276f5854 DIST firefox-128esr-patches-06.tar.xz 17168 BLAKE2B fc0a72af6a87519a86e44862a9c3d142cac600c9150b5bc4168cbc6de30beb0dde2a5985d74b51c9b977ee5272786c5a98804fb6d16968c4f517b28deae00fe1 SHA512 04c28f6f97a596e811e986bcbe9f5dd5045c24e7eb4b9bef6180d46948a9f3b978f44bb0b161a25f6217e9c0a18d88726b82737a72b711b90876da26d947a256 DIST firefox-132-patches-02.tar.xz 14984 BLAKE2B 9ae56d19ba391bbc53a6babc72bf956c7bfda293aec52f5b1af3994238494d9c311e943593f6d8c2b89f7b24a50281f07248e684a6a6ec4a3f54ba1792125faf SHA512 9299d41830d91ebe558229149afbf66ade18f3925d5d30a603eec6115a16ce4d5e6c0a03193e0967ecad35fe4bfc1bc639f858a6df44372132541fd1aff149b3 @@ -624,6 +725,7 @@ DIST wasi-sdk-24.0-x86_64-linux.tar.gz 118879731 BLAKE2B 385dced143f463427e48839 EBUILD firefox-115.16.1-r1.ebuild 39187 BLAKE2B 2e708bb20394605304630e3b9e12b4dbfcaf9f300d6b60a182e943f4c7f19fb5a1996cd6c4a6216965b5c04309613b0e9cfc82053642cbdb0c9c25a034aed4c2 SHA512 184aa94944271de9c19a5ed6fa6a9af60ba25c14aabff66bcac9c1025ebd161d1ca060b2c05feabefba1c79e403f26c3817f9372031673f5c266234b922557cb EBUILD firefox-128.4.0-r1.ebuild 41093 BLAKE2B 43a37fe67afdda79fc54958f1db81a8b6d71e37a52e3e94efa5b7ec1a99a02f21266f09c51787e002b1afad62eef5cd1ba584974f4284deb761c8e1c51321172 SHA512 0a6456a21b4aa080fb2ebba4b0bf23c4e3fb63b38cce06282b4c2e40ccaefd3b7243ecd9cae98fcfb2613b699d20c09e0eb4a52bab3a9a7d662d6cc6df55d4ac EBUILD firefox-128.5.0.ebuild 41166 BLAKE2B 2fa95fb4f22f2b80142c47f7072bafc7506b9e5d21a6e01b7ef20df0f8f63abba1438826da381c70f842ae6e2faae4bcc93219cede3e844ab5da0607e80b734f SHA512 3f4084aded344461e751531eb49b63199731f372c061d346262124df1f0ca5c0b1a0c4878129573f95c83f9e2b387d659253e2822e8d5545424c2bf99b141161 +EBUILD firefox-128.5.1.ebuild 41168 BLAKE2B 80d67ed015f16c73e4547e562f756e4b73ead4ab21ff63551a4d2bbf9c573cc56ca9227289c0f8899422215ccf22ee38f4b418ce0464c1b58a0f995b5a58e8ae SHA512 a62e90d9fc82d7193808ee831f9591267caf0769b751658ee8d0512bbec2cecd0342a60d16935e6f125856a95d4cd801a63d591b3e95b62f6686764431720265 EBUILD firefox-132.0.1-r1.ebuild 39383 BLAKE2B 2f52e771910992bdbe38ede5448affe7674d20794b05c3fc8002e2b8f3a522d99eb26a977e744067b95232a1b5303e2ee8daa879c74d6631fd6ad2397cf3b2dd SHA512 3124afe75ea942246679488164c66c6eba4517a78cbc32774a48ffe75692a60dfd1cb801f9739d3d1197bbd77f6b089a0fb630b2575ace8e466a82274f55410f EBUILD firefox-132.0.2.ebuild 40534 BLAKE2B fa7cae39629d505bcfb0aa589d5c4238808185574211f6bc555aea31bb4c2a3683ca696b053a117c41699d67075f61fae8c9283a70b319b2fce02528461a931c SHA512 c1bc58356ae2639051c0c1102634644a502310bdee066fa2428cf2c3cd0f33d95a4266f5033d54222f529d9992370c496f3f3eacff2503eb5c63c069f85d787f EBUILD firefox-133.0.ebuild 40738 BLAKE2B ab8b8490cf068b34a3d5d976176138b0932fb89bf68aba3240666aaaaef4fa996af6654f25c855d4f923e2fe6ad425923341f762f31ae2e93fff67f3fd8d9364 SHA512 64c8cabdee9cc8b0d56542e3b46bd93c159eafcc82d57858c594f93dcf18ff4980c17716d315250d38203af12232d49f5d90d4b5dd98183b2fde9e5b6b397eef diff --git a/www-client/firefox/firefox-128.5.1.ebuild b/www-client/firefox/firefox-128.5.1.ebuild new file mode 100644 index 000000000000..f651bb46d218 --- /dev/null +++ b/www-client/firefox/firefox-128.5.1.ebuild @@ -0,0 +1,1368 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-06.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.77.1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasm toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=24.0 +WASI_SDK_LLVM_VER=18 + +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.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/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 rust 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[@]} + wasm? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" +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 libproxy pgo pulseaudio selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-png +system-webp wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + 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} + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm? ( sys-devel/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + 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-libs/harfbuzz-2.8.1:0= + !wasm? ( >=media-gfx/graphite2-1.3.13 ) + ) + 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 + net-misc/connman[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 + 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 + + 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}" +} + +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 || tc-is-lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || [[ ${use_lto} == "yes" ]] || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + 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 + + export use_lto + + 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} == "yes" ]]; 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" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm path manipulation. + if use wasm ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + 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 \ + --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, since it's not activated automatically via "known arches" list. + # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), + # bgo#937867. + use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-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-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 + + # wasm + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm. + if use wasm ; then + mozconfig_add_options_ac '+wasm' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + if [[ ${use_lto} == "yes" ]] ; 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 + + 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 + + # PGO was moved outside lto block to allow building pgo without lto. + 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 + + 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" + + # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; 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 + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +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 + + # 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 +} |