repo/gentoo:master commit in: www-client/firefox/
"Joonas Niilola" <[email protected]>
| Newsgroups | gmane.linux.gentoo.cvs |
|---|---|
| Message-ID | <1787127851.67aa66f2df65eb3438eec8d27e2191731d31d023.juippis@gentoo> |
commit: 67aa66f2df65eb3438eec8d27e2191731d31d023
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 19 08:24:11 2026 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Aug 19 08:24:11 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67aa66f2
www-client/firefox: add 140.14.0
Closes: https://bugs.gentoo.org/979683
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 ++
www-client/firefox/firefox-140.14.0.ebuild | 1424 ++++++++++++++++++++++++++++
2 files changed, 1525 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 39789afcd68d..b48b17db8d88 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -100,6 +100,107 @@ DIST firefox-140.13.0esr-xh.xpi 272788 BLAKE2B bbd6d9697af5d8e86bfcb27bbbab84dfb
DIST firefox-140.13.0esr-zh-CN.xpi 460701 BLAKE2B ca604ca9dbe5e0c6870a53e3a2e26f2cb0a2598a052eea0f0661d1246846fe32eb50c7ded0b6c8e82891bf7258fd16c45a3f86e5add921fb12a94f7441dfa89c SHA512 33b07e03404e50e536142cd8005596b0ec80123fe744a69397ef54641b37b53bdb73be584aef972e087d74e3a6fe813d00992b1c04a1e55b715af3b77b1668de
DIST firefox-140.13.0esr-zh-TW.xpi 463742 BLAKE2B 1916a6e8b55770aaa9128778d95d9d324ed9af137b73c9f0df8dbda7544cda2cb65bebb56584a8c962a4a115c43b21d0d6281bc0425e3e5708b7bc0a3c53fff7 SHA512 64ae4615b3c3561c4cbda05775347f3559b0b32dec596d6c878a6276e9e77f7583c9563b33e0c5a3b6d03cd376a3ff811fc35fad546475eefebc283269db8aea
DIST firefox-140.13.0esr.source.tar.xz 644768324 BLAKE2B c30fcd2ddd6361cd0a94d4b4fa9cc3d48874e10da273f49fc42fd1397a09974aec18b35e9bb3aa13652736116dfdb4c6a2816ce3bf86acbce6ffa9340ae0f41a SHA512 937a4103d71c5e1e4bf051821729f6ea70b5c18d444930a487695cc23d74712a0134047248f6ac02305e01becb705426a55b9d89739f02a01eda01ecf5bc27f1
+DIST firefox-140.14.0esr-ach.xpi 294362 BLAKE2B 0ec79c04b11cb9cd40d9550a82e685b9322c2703b861009cbfed54fc8aa32b558fd2c5c045e6449d4a580659ba0d2d6045a82171d1a28387cb2dceeb596df3f1 SHA512 b12e4057e868fd65e001bdbd173b88a75749f95ca42eb36e6bf82fe68f446ae719374fec1ceeb5594858d2b6a2aec3362c9f4d0b5104383c3a83e64659f491cc
+DIST firefox-140.14.0esr-af.xpi 266631 BLAKE2B 0f8f765f598227a34ae05fc2e17e16dec19f9156c97910bbb88ad089ebedd1caae7bce3b0d340b6c1194903339bea9408dfd187c73d3fa86e9dc93f7f1723769 SHA512 bdb5ded79d76f8c4f35d4619ed0282f1d73c146b5b2a33d29a1f5cfc4d85918ab2d8b86e132c8ac09276cb8485946c3b696c2cfa48eba7a0ee557ab4bf1af96b
+DIST firefox-140.14.0esr-an.xpi 332300 BLAKE2B 50cb62da9f137646fd57533c328945564a5b97328dd4362daa9d98759d47f6e2470c2d071d2c225e462cba2666bc8eb3516574cc4af858e51253db902bc8b8a5 SHA512 552b372d76e929522996731d65113dfe0917af4a786a1f7efeb0158c78cd8341ff7e1dcd5c543a36ee34a6477be71e683f367673b32d3d9837ba14b2bf41ccee
+DIST firefox-140.14.0esr-ar.xpi 445301 BLAKE2B 8a096b8a570a34804466157921763677a427ce257fb8376033bda812bcc944b6bfeeeb610e020c25fff6a9d8a51f269eb3e695e06133b477a66b9d886e744e0d SHA512 3f958581b9cf1e97327cb429e62f5c4fdf7626e81274802476388a86259842e7ad2746d467795541e876c646bd3d18a5499778a4fa78e19efe4a6be8548dd911
+DIST firefox-140.14.0esr-ast.xpi 312222 BLAKE2B 4ae13de82c65aa13035c0606187e1899aba0d1044497aa5c0c2aba9f1d4462a88a18457837143c119f8970ba4d5752762a4655bdeb2026ba7c0df6e822269607 SHA512 86b50b7e5f2bceb9de106d3063d3c1ef306ed2ce604c491dd880e435f0312e479e76868c654549c5143db71d1cad22530091481e22e23cb315c420908b8b8904
+DIST firefox-140.14.0esr-az.xpi 318410 BLAKE2B d05ac3cc41fe60ef57ec78d19c9a1ee5833c5552825ca5f88be67aa46323c0dde8ab4a98f692cfd822d5f266e1524294741b67d2acbf204d7d58fd824b8ab926 SHA512 e65b840b767d005af91200df650936741368f6db61d31d0bd956bb244684ee03e73908a1b4dc2a8fb60c2c62ca77fb3ee27f37b1fdc9569c646c87db62cb896e
+DIST firefox-140.14.0esr-be.xpi 521203 BLAKE2B 778c5ada18eecc56fccedefc55da508f81ba224a52d1edb2add37120e05c4869738b8c607acab2075e2f63d57a684b35f8f98b67c81df0e3c8c2dedaa61c1a8c SHA512 2d0e5dedde30dfe18833ad03532645b16068e9e086399a6b097152ec88de603153283abe248f724c4040e0ede8f19b8233fbabf033ab8ffb3a8a5dfc76f36c64
+DIST firefox-140.14.0esr-bg.xpi 457556 BLAKE2B 7a5cb0a78a449777b8d3e72276634e2f896ba264aafc93f38d83978cd8d9fdd609d12dd36578f1177e9d267aad9a8c9d052aa694f66333568f175db19e4ca098 SHA512 96ffc5358fc17ecc57d1feedfc8444cec71d1bd14f2b202326dd4eec57bedd4722f0e4da4f7c5104fdbc8d0e6fa40154af7644ccc2c521a380c4c7e6a5b84464
+DIST firefox-140.14.0esr-bn.xpi 413375 BLAKE2B b058bc590584146f7fffd2f60414265a8b7337d1cc0fc92dc4b47c955752d0f74be755aa0f1fdf4d46de4f4c31c95935c6ab63766cf485d2d509337f1ab351da SHA512 e2b9ecd0aa6d453047881b57600afe7939ec73d940943d41fdb319e09ad6d6071d5d2d72cd31a8e7122bfb6b2c9be9ddd88f9ae1e75e57c451d008446986a42f
+DIST firefox-140.14.0esr-br.xpi 395320 BLAKE2B f5ab95894e1eb2b462af2a551734b38bac0690ed9e08eed44adfaa75c3c773d994b1f5b5ec9ff6de2615c40234509a38724838bad8b31072140f86ddc55851ff SHA512 8ffecbc5a95cf74991b6d5681c96f931a2b5434820025b3a1ad50d2b4ce568e5e869b97e89e395e2dcb4bcd328d1e5b31d61cfe09ae299f2a5348fb68bf062e9
+DIST firefox-140.14.0esr-bs.xpi 447174 BLAKE2B 4a0e2b2db9f2d0b86e18b912be807de7da82baa3386b7b8625a12b2efb6d1ddce15e06fb25b9f85c4849e99eafd209a74296062e482631b1666889b3618209e3 SHA512 fb4f3bd31292426341b78e51065e51d1ffc14ee238148b6cdb41ea1d4309d0b5b7d0e38986a278f11d844dce837ffac0875ac321375b4427b0a6eefe890426a7
+DIST firefox-140.14.0esr-ca-valencia.xpi 357942 BLAKE2B a7d25661d307ab3a536bbfd2cb2230683e54b7c70c3bec968dfefe9e46cdead1057589e4ea446cda68e35c6aa0dd92efc6492df4b3afc0fd66accfd3667fdfc5 SHA512 a3d7a1130aa2c578108fe8ccf2879cb8f0585181b626c67b268b53ee0d3ffdfe04a827df7666823758262d6a6aba88ef2e204302916bd0a82a8d5ae037631e71
+DIST firefox-140.14.0esr-ca.xpi 404832 BLAKE2B f23cb41fe99c1d1fdf681dd70adf8dbd6824c585f3bce225ac9492e54ef921ebbe0ae688bd989c65201bc1db6eb2029f87ac2e417e2f39178a9bf35a0c9d1f0f SHA512 14bbb031bc71c606cfff42eb22635b60532dcfcf93c4ecf199579efddd7dcdc306255d2057ec5c1cf1fd5594b6df13d6e06d137484ced0a5d5bd4c3e6095f754
+DIST firefox-140.14.0esr-cak.xpi 390846 BLAKE2B 2412f4c3882c57e360a42c85e2e35fa84be42b3e0626fbf0f62676f6814a78439c6a0c5b1e20c6a0b8848d15d997f30f725b784fe95898240b708898b6b057c0 SHA512 d69897fab9de09da9f85e58f2c8f0725368f7752a188d3d074c2ae6ea24897fae2335ead626869aaacfbc20dd8ca17c508db55bc4a0bb8f792ce7cded147a0ea
+DIST firefox-140.14.0esr-cs.xpi 475933 BLAKE2B 09755f574876594a4aa0e5928b36671347df205a30a5e306811e0e41514705170cddae4717b6906a3d1f45982d719a96dfb3069e99501e58c85fabe28cc457a6 SHA512 2f25c5bbcd44d79df0ec13a5c29f8b0fb266f9074ca0416afdcd3e2a24456c963de18b8ec2aad6015bc49047d4f53c9318fa1c1bca6f1f34091be929e1ac59da
+DIST firefox-140.14.0esr-cy.xpi 441961 BLAKE2B 2ab12d16698052b69c5d0f7cef1cf181b9ec8581b1294b05ddbb337ddff78dedccb9599ef634a94d7c901247783161dd3f5265a8d0ca05851f890d4ca610cf53 SHA512 fcfaf8d0973fb589932e8afbcab8763e2e3e4349a8e1587597b67cb846c326ed8806f02220279210d9e3c41ad557bae86fd388831dc28e96a3fa3933aefad823
+DIST firefox-140.14.0esr-da.xpi 431130 BLAKE2B 6c6105507ded311455200ba2d1d7ce3143093018d075fb6569b0effa8745a5ac4c15dfd3df02d6cb90895c10e6cc1000d713ff7adf7998e89757a01d17a08b65 SHA512 3189878545e31b28a80ae8bb9b616a5c3e3ebd367ac1ff5bdea5208f22dccf64264121301fcf32286c2e769fab38b2dd54466efabe7dfe76111edae2e19bd0b9
+DIST firefox-140.14.0esr-de.xpi 452700 BLAKE2B b5a073159e35d035b995402358f69664d79968cd76f9a216b6e6138971d18e0c8d0d033114424e263ca960181471756fa1e4856958c91a32ba54f49b803c016b SHA512 53f3e8865f72c15932f98f3ffb91ea406058dec66d7bc748ff78a92dde9fa65067ca2133dbe9e1a086a6ead16c7f9f926643a15c53c51da9aae806e4f90f5ffb
+DIST firefox-140.14.0esr-dsb.xpi 466068 BLAKE2B ae68a426f9e58c5574c5fe1d9c21a61753563b82a9024d1fd51e59162910b3bb57bf08891736f309048707d4014460d4f8984406b1751b93b596cf109c845a30 SHA512 679bc46ffe06cbbf89d89f979413332faa11aa5fc54bc0e49011b3fc6d295cc0621d9afafc2e00b0d569b1d1e15e48e6c457f6bcc1cec8ad34fc4bd5b1bcf08b
+DIST firefox-140.14.0esr-el.xpi 536816 BLAKE2B 27d12a17c38339d1e57f6e0508f7b751b2baf9e5fb98d80d8f84f1cf5a259000decad172042acaa0170a55dca1091dd3e793d7dedac868d2c9fb4349e5222f1a SHA512 ef55ab8d8b7f54949ca4f347b0360e4b98517c8e4a6f523e03f0c07919603ce85831fc0f95aa8f5003a2d7b73e2e330f54711f9666d9b38c4e6bb97b039624ce
+DIST firefox-140.14.0esr-en-CA.xpi 411054 BLAKE2B 379d2a797507ac41a0ec4180afe5949fe225c03a59d6856efcadabd369b4cc0a71ee0434959b8ba21f8d11835570ad1edc70828d44d7a3c7a7616739154a9bd8 SHA512 8f4f86c517f817a528720bde1983d297fe7be97baa676ed2d3d6e264ea6162a748430e0cfc3f630193ce5c6516dda870b09573bfa75dde63859dc64a4ed9bbf6
+DIST firefox-140.14.0esr-en-GB.xpi 411409 BLAKE2B 480954a7e61892413327cc3487131af64855d61bcf83d1a269af93aac03dad112977aff39e2ec2edad1ece14a5af82636cd4931b3aaaafb3247c455eab44f4bf SHA512 bdd4f9e8b0accaa383b645428211772c849115c69f82f8db1c6c5dc00d7b3e73dbdd4bda3af263030dfe28e82e86efec468089fa2bdbdbf9d64122d31d1efc2e
+DIST firefox-140.14.0esr-eo.xpi 433478 BLAKE2B 90f6f60efa11c3deb1a7a434cf01763dd67daabd39449dba51cc09c628ed84eaab4d3292053e5227f98bc1890b1268cb6066e6d1443cb0a07fc45942f566ab36 SHA512 7000f42b258976a843d8c91d62f0e7e19f84382e5d2c658a6fa7d040a2a7d7a281e16e5e9013a89e47b6322ed111b54cff134790d9821899593bb7988cf4faa8
+DIST firefox-140.14.0esr-es-AR.xpi 445514 BLAKE2B edb6ae0b8148258659ca1a5470efd6c2809d756feddec5aebb5d3bc3d59479129b5dc493b1d273568fb9c010bb8df94c5ec5d667583f20784bed6ea89c95ae97 SHA512 d1d32bdf5a50f36a98fe2485e17af6ccf93f226390926a18c54da7ae45e0af03958789b959fe18e143ddfb56421309cea59fafb1f459fe3b62bb2a44dc4ce1b2
+DIST firefox-140.14.0esr-es-CL.xpi 446306 BLAKE2B e497ca2acbf47a502ec6b92c856a2bb882ec8eff75f4031b74b0c8baec8c5f8a9c0ef417e971743670e8f8cbab6046430d42830eee82e910e344f75b686d133e SHA512 9b99e6d9fa3aeb680ecfc72cf88feb70a54c9bfbc9c8dd6dafecaee4f7aba0018f8817baaa1ec86b0c854f7eb37662ad0987bd02083d72c9435b3ce670c3924c
+DIST firefox-140.14.0esr-es-ES.xpi 447021 BLAKE2B bae6d598aff4b0cfd5c7f5f046ee907bb24610c73703b566c5952636881214dae3c6c76e6a0c4abe019a9e7428a96502d9732052f30e4250c02619937479ba16 SHA512 9ade360083eb0bc5a01bf5c8ddd4a6f5fd9e16a21ddc14a9e0a9d58e162daf4b465cdb9cacb7d5fc81b7df3f12be24141b0a7c81daa57e7e2db94463e79aa86f
+DIST firefox-140.14.0esr-es-MX.xpi 446238 BLAKE2B 828d25fdf167d77881067f7d25b728c3a1a98f1488d36044a9bd1cdd6552aa810f3f1482c1a038eb40ddc9a46fc45f3fbcb8e14699118e059fbff66fa06e940c SHA512 1de2b972334b0d8a963665b25aa0d2f0e7c1fc0c2f3fb075f95717024926c4ec4fbf14b7e0563a6e9e5c648b176687a4ca8582c02ffe2bbb949c19132852ad9a
+DIST firefox-140.14.0esr-et.xpi 359326 BLAKE2B 68f6eadb49700f3f632d1a7117b581992b1b49a33023ce14e87b91791d374f9c0be55e7d98f6054206b986b0d9129d19a5f3c607dafb1aab2009b5265ca516f3 SHA512 ae72c2f07b37f476b89a1c2e94c4124da9804ff9bfcd6cdd557c93ad2e7671712ee29efbb6755f1d1a5f15697f345a8aff2764f8f87a90cfb82c9313fb892d6f
+DIST firefox-140.14.0esr-eu.xpi 417292 BLAKE2B 492d6e8eb55239bf5045d0595cfbbfe0d65e35b828606bf7cf19045b19bd55e0b8d26f7fe1eff0958ad298920a683c1845c9357ba2edd738dbd6a9838663cec3 SHA512 f186650e1adcfc3ed17ecdbbc7562b831722ec0f57562901a9cd04b82e866647e3729a889876578b1f85d983ef611a4d6a2d224c7afd00236303eeac69566bc8
+DIST firefox-140.14.0esr-fa.xpi 421636 BLAKE2B cdf8f7ac55e29e763769201f431b153f6301d8168e3c01c25b4bbf4e6efe86b3b26cc921f3d621bef05083cb28e3241dd2bec5cd423fa046f7edd5735fcdf369 SHA512 3f2f81bc27c74b92e67bf6555db02dbf0593c88c3af034c745d406d02217de9822d124b2a907e6d516039e03700cdecf07433426986372eb79b97993aa336b09
+DIST firefox-140.14.0esr-ff.xpi 310190 BLAKE2B 25d341adfd5661615a5d825824d0c559d5ab539311e06e0eadcfd8c62e7beed800bd95d104a252b523edf5cda76966df5fd1b67ba6aa6dc122a6abc4aade1040 SHA512 16ac44d33bcc91c7012a1f4ea255f9c98c5a47e356347987f7e6c7c385b7ca682e5d9b051009a5d10eb72d4748a929d085f7ec12dc8b8e290fa010d69a2286ae
+DIST firefox-140.14.0esr-fi.xpi 430160 BLAKE2B 6e3e586e17b2615f3227ae68fd225590d1158771910f18244c495ede4205650d5da9da57a6390aaded294caf566072b9c176cf575dbc6b54d2f5279bf14fb1b2 SHA512 eb1cdbdfc4fb7bc021f8cd8a027a1f168ba42078a945f88e17e4de7f4f36a56ea5c75fcf373451d90ab8d6cac659847b9177c7022e101e31452a07adb1ffa891
+DIST firefox-140.14.0esr-fr.xpi 458448 BLAKE2B 7da55c43cc690efeac13082be0012200304c51c27db977dbc53bd2d4dc5cee9399e929ec8f4a97b3699d1b717be1e3445926798749874fd355e274adde6cf7b2 SHA512 0901339f0f974627ce535cf220886d26722ed6cc514222a79165aaf1de99b03e4ec23591d384a65f5cd42ba164ba2ab17c5083605ead5d49f39fbd48750a19ec
+DIST firefox-140.14.0esr-fur.xpi 451843 BLAKE2B 9940cbf0fccc8fae942ceeba893960b3fe0c651247a0b78a9f66a9de35b43b6b6bdd15e0d7190846e98f60ecf9ec8ea4eb428ad23da68fe246d8036b754f9886 SHA512 982d6cd8e242e7a8d5eaebb2eb887ce8c3ea4f96b70b3d1a31ca3c196a5db77986d878002df795bf51232c44bdd87c43c754359837ffb18d9adae13a8ab9e2f7
+DIST firefox-140.14.0esr-fy-NL.xpi 442167 BLAKE2B 86fdbf762e2dd32617e85c930b9e6a872f06503b7e546afa97c5d8b515a25ec74285fad915b65a5d419cee6b219c776ca340b44445f2e8e40bb9312739d2d5dc SHA512 b17e1fcdfe1d88331fb9f51aebb009576842da0044ec27167c45826453d831aaf2372e31330971efa127606b1bc60d190459ad7fd171063fb6dd84a15346cd3e
+DIST firefox-140.14.0esr-ga-IE.xpi 315285 BLAKE2B 4dbe4bda5eb0d5306d53df354b8f42ade098349e0616b9cc1094bb3c10bd98698bb000deaea1df70789cdb68771bd76b42b4b27939849190b9ebb9f5d274d7f1 SHA512 5afc1738f83648c56753d1e9c4a2836ad07c403deef836e030b057c422bfafcf8b3d95bcc392cc552a3cd95af53e0fdc108ed90e3ae8b71f6c2c024fe6cd916e
+DIST firefox-140.14.0esr-gd.xpi 399427 BLAKE2B 96ea5bcb8961b0d9e53ce50ed6bcb4b211a7ece42a06b20a7da77970f1aeef7e6e31ed07b2afaebe3a6c4883cc4492013477610a5a9c8967e33fc6b6ce38585c SHA512 febce95034edfef6c9181a00a3de9267c41f81b4a4fd8c41424748f1abdb8a10b621e616f8bdddc21264b34eecf2ee753146316938e4ed6ef955b9d726381998
+DIST firefox-140.14.0esr-gl.xpi 442908 BLAKE2B 93005ec720c1a71a493fa8820a15abbb7229e0d5fec47b207c41bdbcba01daa5b641ee0594849b930fc16ef974532bc6adc7dd621ed7980c631e1ba091217b1f SHA512 3c6f0ce954416718801acbc85b0d84e0e4ebb2513574fff3e8d18b60b393c7fd2aa654f09dd4482dd1a7ee17c60d6900e36d48983c9cb911f56dc05b1500b9cc
+DIST firefox-140.14.0esr-gn.xpi 451085 BLAKE2B f13698d6777d1aef084bfe4a7dbcd2fe9f6a28270ac7e75202f5b80e3d4f8cd3f07877a6d62aace3083c093e878e7edcb15d1766fd214e3d3cac8de5bda831aa SHA512 2cbffab87f275c8044aa6a9950637d7c509b8bab97023e7fde26e80ef2158765fdbd16c2eb894d265fe054922f2496d3f39c1b7663ce03aea0a54fc0f8f7566f
+DIST firefox-140.14.0esr-gu-IN.xpi 358979 BLAKE2B baffcda6b13bde1b98ef1cfff5d9bb347f516d60ce9ac4718c865c48085ffe28919924ea99c010378e1a16f04c0e927b0352397c60b6b3de6eacdcec4ae6ffc8 SHA512 df6b36baa512fe35b64903a8ce719affbd77918161bd83268151590b44476aa41d4e488cb7cb046fc8d87ed7efb96efb52807126333ede1ae9fc34afd553071d
+DIST firefox-140.14.0esr-he.xpi 444991 BLAKE2B a2b20b2026f471b9e919921c1fd6b75345c2ac1ec33dc873cfe09e6f399f93a940a0533becc8012b66c430388feb23efbbc47c95af1780aa4af1a7f0361760ff SHA512 6144390987b00a4033244f5a025cf8f6efff32c5a563edd9b64b4292bae228d57e526a951f71e7d05a62ca7180b2a1d973d3ec89ead50e42a9457d9dc9cef150
+DIST firefox-140.14.0esr-hi-IN.xpi 377454 BLAKE2B 0e9c93214d5b58ad1e59d7290b34ffcab853d24c8913761655e0c9921c074697b88fa96da9db526ffc0c495c5aa8a551d4ad2a70e9cbff49d28a58133d396623 SHA512 e94d673685bd8c5ee271b6046a95eb647871567a5716c00c7c9495121e20564f452722a0acaf1cbd009ee16d88965b23c993dfefab02ac857252b93543e24037
+DIST firefox-140.14.0esr-hr.xpi 437697 BLAKE2B 0c4f0725737901192ba427b1e9f16f971c90a34c7a402898c1722404fa8474ccdfd93e9d30772c75351e70e9605536bdd6d91975231068d7b44afdbc52c19792 SHA512 d7d9a11079bf898e2c58269236c523615c57ca9d61ff523284c5ca2c50ffbae5aa824f30e4be183c6bce028a26926934844688c66e11b2cd5d5afe427eb5cdf6
+DIST firefox-140.14.0esr-hsb.xpi 462698 BLAKE2B a1c6749092c2c142476d9f333e2a8e00c7804c8c5740df51ebc3fc5d47fa17e61b1cc57ad14d119aa3d56eea4262ea5658169385b3812e2724144fe2ae33614a SHA512 09304178bd6687289877d0d7f033c91479ed1486e97130dccbef04a28a05d922de20e0d8c64066d87ea07f73a113e0b3723d416993aedaeaa782563557b386bd
+DIST firefox-140.14.0esr-hu.xpi 466171 BLAKE2B 793ed9649d74f3b6f3dd322af454a6bbedaaf9f33129e8e57f1e58b0b2694453c0724a979102239c60f99f78513becf1f03ce98dc8b1aef136034dad362b9b4d SHA512 106ea0fe4cf5398c131dffab5600f5b9882bf245357f9110dc737a5f9c6234914b8a9406751df8f71cf95d4fc78e04514ea74b6882ee8dd6423aaf29fe76909e
+DIST firefox-140.14.0esr-hy-AM.xpi 461615 BLAKE2B dc02db6d7a536970f1adcea2edfd754cb0182085832bdad8debe1095498dcbec079c586cb36e84458dbaae2eadf6adf8d562066b825522275b5f73dba493a267 SHA512 38219c8c16dce5acd5a39c8549da953fbd0fa95c1455f02b59de008123357c1416af04cdf956709083d781b3c4a88ff1b0976d1182a69f4408e7ee18d2db4d80
+DIST firefox-140.14.0esr-ia.xpi 430119 BLAKE2B 0ec2ee3c2c3ace31aa5a971e59498f82e9777b61b32e92646a38d1e7873f3e7329bcae4d64bd96192ae70046f61936c360f019b6bb4502293c3dcd6570905bd9 SHA512 cc06b72e96ed63f709d472bec0e78084e9a56cca2ce330f8fd747ba97bb2e10ae4c0d495a600c5f1886640a1c7f60d04eaa1cce54dfc6839ba7bf06477143ac7
+DIST firefox-140.14.0esr-id.xpi 422745 BLAKE2B 8c635fbe70497776d95e07ac7a13860ee8c63a138bf377ab42296e46f5133e480bdacabef879ec6a95264341d29caf4c1536eb00505482dfc046aabdb075c46f SHA512 6cf435f358e908863cbce3ce38c64d2c7ccd23c91cb86ba2b56315d35a640e2d5374a3a984f3f326ea50341b0aba57f82e6503becf70c0ba2a4c1e9b6c0238e4
+DIST firefox-140.14.0esr-is.xpi 432681 BLAKE2B 8602ccddd198e05781665b5d984547de690a9753d5d1e6b611b41594e6b5113852b42ab537c177e76cf5ba4115f8b8c4765d9f60acc27642e504fffc475d8acc SHA512 6800aa65512146b10e218af44c6ca9eb18d7ace1e0f99593f4b72e49db2cadb599749599f093c04b4640d66ec332df6072d90765ccfb74a9911bc5bc1cc4aec9
+DIST firefox-140.14.0esr-it.xpi 440904 BLAKE2B 1bc80b7e42d761229acdb99b6a7426a8395ccdde68c75813ce80820848a7101b8e17d7ecfe2689dd5c6a26ff03ad4c8cf4c01bb479eebf96aeb3758c642a93f7 SHA512 6d0480f8dc01c35b40f46f104845f987b20425c8fbb30ce8b839ee1596eb0e148e62df3e2ad532d6632ab515f316c18743d813a14ce2d94b15f4e36ad65ea88d
+DIST firefox-140.14.0esr-ja.xpi 481318 BLAKE2B f1b2cfc974917c447cf8453f2774933089577aef8c62a4afe7003e45ce78a031d7fec8cebe41af4d5ad2affb51d514845521414ea4de75be8e8612317d5826df SHA512 8363b1f80e13bfb755f096b9ccb3b71701a40051b91ffeecbbd6f36845216986d3417fb2de3932dd1174083092524e04b2e57c448d7ca3171151b51159599c76
+DIST firefox-140.14.0esr-ka.xpi 494873 BLAKE2B 13efc1a3530ecb4b31f0a0ecee330bd4ae0fb2f95afebcd83cb28e493d56150ae291bb4b542160fabc8c34d183750da5387095828f5c5991dec8e93c6845948b SHA512 d267bf9f1d303937eed6e5df71708663eb0e8a76d08118810ee8aa8424cd3850daa8a9c1084a0aef062490abc8618cde50320bcd307a9ff04ef126278e71917b
+DIST firefox-140.14.0esr-kab.xpi 422855 BLAKE2B de3c9b9d10f06ff8629b0a342466ce265403b377cc1a41893b17f0a006da22bb635181df9f22b152500052c7c61a62c3429d0a7c0c5ea09c185da163d66657ef SHA512 699099626ef35656ccd312f501355da260aaf1ccab47ab7125219e8ac062eff792795c7c64fd60dab9bb7e7603f718f844113bb8dae814718f8f264d9b941316
+DIST firefox-140.14.0esr-kk.xpi 506694 BLAKE2B 1bcaf3ad4fe9bd3c6caed1c00611a04d726483157006249767528b5b04350ffb70037b0f2dfa337a9255ac946b618962a82e0c84876d4bdd2b407cc35ba01a6b SHA512 53e6a335af7156da445f27d4ab3bc3571e24c1bdb5afe6506b3934e404908fe1f79f98e362a9e4263f5ad70370ea8ef9d2c400d31223497ec7a3d906fe0563c4
+DIST firefox-140.14.0esr-km.xpi 348780 BLAKE2B a741ba0bac84c028c3c13a4196142afb7a6cde31fe5febb9a3e0d996d093d04b94cc97378ab86e09b5aac3ad51c854e55b653d3d3197ea246986a1967d0c0baa SHA512 8bb8337fd28da1d0ba902208727a4ec61b1d7264192554015f52d9e4e6efd8fdf7931cc5759985974a4699d75f86daba70bfbcebb2391ad2eddb0c4048f31554
+DIST firefox-140.14.0esr-kn.xpi 331783 BLAKE2B 5c6100f014ef19cc93b32a17b4cab723fd07a6b71c06ff567056adadc5c6b59e0e76942b472aeabcbac7ef50cb37221c6a78c8d82d13a3b8e417f27920ec3f91 SHA512 7c8db57a6baaf5bebb6cf361fd0f988318efe0159b8949506198464ec80c8443cfa4da97b57932bbfdcf0e807e799e7c31b961e17da955b4f55ebb299b9a58dd
+DIST firefox-140.14.0esr-ko.xpi 467540 BLAKE2B e7830951f202419fe1372a9bbc59c054991ac6c0e6a42655b9babcfba12ede2d0d7ef37caf0e24f3f5bf32e1d22fb0617db7820062334ceec535dc8cfc78974f SHA512 63e93e86803003892506f943e6b272dd79f1e59edb3dac119cecec3018ea43e93437d6ae8581e25971db6030984ba72ca50a5d8cfdec714c62c32cbcc677f58e
+DIST firefox-140.14.0esr-lij.xpi 319285 BLAKE2B 022ae8e5d7ba735b043fa6b504d078b597facd6859224880a265787803a809f3dc68168fdef6937f4fcec27ff323e0663a02eb67ebb5208c9bda26b4e81b3d2c SHA512 1d446fb32e217b860e91005fdaaa26258e64b2d1692f6b1114ad82e945a4313f678dd3c58afee2f0028f8837165f0d31374a8d10380bd56726ec0ebf7d4ff234
+DIST firefox-140.14.0esr-lt.xpi 379962 BLAKE2B 7dd75200a604317d66615df7e5bc99e49d967289564f91928a1a9b1809e3d0eb679451e5372fc4aa9762be5d2e79e1bea8f4cfb6299d10ad49ba9ef732b29262 SHA512 bfe2345694d0e4b597964c039ce545257f1fba5bc09cf563c9a3b367577fe646d54d0370c7347149ed0029b7a84af5d9884ff202e12784e55ee86ffb7411ec48
+DIST firefox-140.14.0esr-lv.xpi 389081 BLAKE2B f5d50cc391615208d197629a07ff17d2a34c7cf208c49fda80280ae35dcb83c04787f4f7ef21ee55a42cd2fb4f713081ee3dfdc1033a25267d19c7af706b0347 SHA512 0aa17cdd06871ee28d3d3538181758197f55bcaebc36e56419eac3e6549cb3bda7978795990501d91ef587489b3e40860d73e85f24c2df196c25a5ff8f17f6c4
+DIST firefox-140.14.0esr-mk.xpi 316833 BLAKE2B 4ead945f752378e0ff08e4460f6e85f877833ed87fb2f137f307d101e78dbafdebeb174a38747da0869074433866346b8c50a2a79ee7f8b875094ff4aabe7888 SHA512 3b49ce8c985effe862d37513f35028cf706257d029e90a1b4deddc9d729af8a12036f87a31ca9003f0afae9df1021ab079d5b1a207778acdc2faedadca7edf4e
+DIST firefox-140.14.0esr-mr.xpi 356253 BLAKE2B 8d11737f8e6506ff3456dcbae1fafd7e5d61995ac2a3935381be6456db10fdbd68055db794cf8ea795bb294e0eacffaf5fbff43a144b310e707359045b3cec6b SHA512 03be1e191786e577569bc1178516bf89cb18f48121dfe9ea1edfd2f6df6a809f0d5fa3bc6936c21f506e19930480fad6bbef4b162b283211abdbb229c5a9cb91
+DIST firefox-140.14.0esr-ms.xpi 295380 BLAKE2B af78c6254a86c7319e89a14e54c6872e86398cd85aa80d90d00b278b0eb73889731bc1fad999b7f848c76322e2c3958e9689dacbb6aa9a18e71be63014b904f5 SHA512 9fc32284fd92c6169c76462147a849c0eb74612338a5e224cdf159ec25d512b4b44d6fad260d39215f56c9d9b57310164eb80586f764a8232a1c84d304adde0c
+DIST firefox-140.14.0esr-my.xpi 343046 BLAKE2B 7a7f8d20e40d016f71f1aa550752cc9f5f276a21a0c0513bf3396654a4c82d2e244fda46ee7143cc44cbc6257b5b893b4c5731d9e19ca33cfff39a982ed1fb85 SHA512 ea8987024ce29b52d81dfd8cf8107a7c48c7b165c1227a6fae7cfefcecf5cbca26027a1ffea0c3ffb142d604a6c592016200dd8425d73bc5eaa5c1cc65e8dcd0
+DIST firefox-140.14.0esr-nb-NO.xpi 429338 BLAKE2B a78669ee78e02995f331b94396346e7f73f8b16357e3f199b66c5884ab79e1afce0b156a2e640a407fdf23fe7166cfc1025ba2853a5f84fe6de5bf90b2279b64 SHA512 e3a0b000b0eea038a552cc47ee9bfaabc90999efd9292261c931f31556a0af7f5f49b5cb754e33c82321f041ed217c9f7f93de31dc0fb95478b83569605a220c
+DIST firefox-140.14.0esr-ne-NP.xpi 349010 BLAKE2B 3c29f3ce5ff2839446f3705b7b7bd0ffafb0eea5d9fcd6e07e5df41a91a555412720deb2898bb97bf50ea704e87d7bbc7c3df474970c93c04d9c168ca9f82054 SHA512 0fa2e6cb5fbf1fc42f9563ad1691ef1749609548b71f7848d5da1aba50dc3e650e7852c82867d3790c2b4b29c778b81f50db07473d31cd617efe0f16600a618f
+DIST firefox-140.14.0esr-nl.xpi 436194 BLAKE2B a35ff6529dafcfb1a8a36c24797ec0e1171e2673e79750990553b4e21205446fc5a2539afdd4965823455526ff7b6ed487bd67b85b59b85bbf1bcfb62a88e6e0 SHA512 637f9a0b9bb5927077313bfd4c38fd94f87671fcc89f34ab8f17dc6b9092c0c4c6d3aea52fdd11e181a910e0c9a8292255f966885e9dc8fd6a4e1be63a27e3a5
+DIST firefox-140.14.0esr-nn-NO.xpi 432226 BLAKE2B 52ba0df2443a10aadee11bbf283ce0cf6fb03028550353b0735ecd5a62846a451e35af40cb85b1bd5049b2dac7157f0b6e7da1b5e640de5e0eac59be18bf9689 SHA512 d69489b6b7c4c894c878069bb759474f3d6bc0a1de840e5a4d9f0f5b65c6941e727bd4000ab445e3dfea21aadc94b9adb98ff50cb7a35fce936ec4917a5fcb50
+DIST firefox-140.14.0esr-oc.xpi 410941 BLAKE2B a11c44e851cf183fb15d58d3b3176026d8dac75f0f5bda7c7239f90c41b898c553286054a3b65c44a4b6b76cf78346f365a26b58b12e0ec7d8ddf89f16b5f2fd SHA512 4554657f5d0b59e27afc35f4c4be8fd210227679f361646c590a1789b69060bac942d4da57532c4f72fdc1b24d8761a9c5fd2283af42534c2b99b6c213fa28dd
+DIST firefox-140.14.0esr-pa-IN.xpi 494417 BLAKE2B 07aceb19b7b19369d62b711ced0fc4a1b0ece87c2fa8162e5838bbb30624259c09a64b3e9fe098a754ff80bf975b11b9752e1f231d2bcb271db039ec53c99e18 SHA512 b74c6313dcb6df3c4625ccd236972a2056151143025029d55a3ce15784774af812e3b065bf621463920b4f12708bc5e3b4a96f9dd17d3421e3b1fb6cc29a28c5
+DIST firefox-140.14.0esr-pl.xpi 460935 BLAKE2B 44d0c2e9b10bb74743945c4367e913ed1b35fab183ccc8e2fa9feefbc78eb917cbb860860812b440b9a14752117d0571cb6a932a56a5cad4bd21ef2e8677351b SHA512 232372267712454cf99565bac2a230a9dc02982e931e98f32b2195c09eae61b17b4ff9dcd755a76916fe94caf09aa08a7e4dd6fb3487dd1d8083c57829572e32
+DIST firefox-140.14.0esr-pt-BR.xpi 440773 BLAKE2B f29620272ebdcfe75e4f7c4bb505d3539a27d944ef713c161ff4324060770069e6b6d8acacef3d3acf7ef5ea935ce1b40669d6f2c2f9c2e631cb7f82df244aaa SHA512 985ec8386919e7e3c0862beae11135c186ca775bbb16360c84c937a8e91e80ff2a5d2307e878ebae6febc005e24e91cd9aa6bdc9db22ca01afdb8d47728a92df
+DIST firefox-140.14.0esr-pt-PT.xpi 446422 BLAKE2B 836e5ebec0df2ddaba8c5c65b10a018ac7b7b99308d434495c66715dac0d904cfd46060132ea1d320bf397a5b39be0114270fe66e889dd08a4e6304e448c4ae0 SHA512 7bf64aa04b7cf61dfacdd5a13d5349331044e358f0b067aadc1f0d3e2554c8657747e9a2f80585c8918e0c22329082e71b9370a10708e2a0592611d74547d9f9
+DIST firefox-140.14.0esr-rm.xpi 438027 BLAKE2B 0eef4fd0983a6e8665c36c052c229fbf63c7f5cf7cf64b26083d28f132d6c5ccfde477b3f55d815a85ac8090d44c2e3a6ccbf7299563bb83de6db06f1dcd2f3c SHA512 86ed1c34f289b224f8442d917925628f9e3191a26e9321072d842cc738ca55486660ce1bdae68695ca345561404b5e6ae19a8ba7badc7ba34e16649d65e42e13
+DIST firefox-140.14.0esr-ro.xpi 452833 BLAKE2B 398df9ff853895b6109472b4d34134be71e636556794df313eec45ec35f0dcb1fdc3116b3c18cc53162b2998b6c6d2b144727219c34ba4ce2b3ce6a1ecd673d9 SHA512 13542b4fd44c41016252d8266b2de8c9edfa3f31cbd186defb7101402781c4ed5e3bc887a949bcbf1b5e14cdfe8210438b380eadef5e50dc6c09e55518737fb8
+DIST firefox-140.14.0esr-ru.xpi 525189 BLAKE2B 0533ab65e8633befa9a95a6d660adedf37c89a93e4a15255136ea30d81e5be77c0a4b9d79b961ce009f46999d53dabeb3ee543de76f524d6f0dfc87392a92b1f SHA512 4d3b1541a3072580e32c11c9a82ab7dd6cb4ecfd18266683817bc6e9115cb113d7ba5e4236b60f04071d4542daaf57052fbe88cd8aad8fdd4e8b59b1ecfe562d
+DIST firefox-140.14.0esr-sc.xpi 410469 BLAKE2B be8ad63a71723198018677a317f3772aa40360bb696979731f4db83f60aa941e2e46eb8a277c95c52f9bd476c8188393966ac352c7bd535a1f9999a0c2bdf1d6 SHA512 eb04a15b08c83bf26cec9f6d44552169b9b212258ac282150d9650ebb4b959a73099e6de0721a2d19cdbf67cc1d4baa63b3c840a6aaa973ee2b97c72ed13d426
+DIST firefox-140.14.0esr-sco.xpi 322654 BLAKE2B cf57433c3d16fa1ed541291f289ce92805e13fdcc42000a422c5167d4bb5090cb75c9e23afa542f0d775fa671f1deb3a5d97eeaa21c835f186a24a137e4f2ea0 SHA512 31287ed9aee373b51e511a7a6b3f7dd40c97a0dd1e129d541f71178dc28432610e860c87eb092fbe8c02d9496d8f8d8c6b2707fe6583ba1bc15b783d54921f65
+DIST firefox-140.14.0esr-si.xpi 411606 BLAKE2B 1dd5d0f711d81767b402dea158a3144ae52067d9c3f8062daf412837a595f36439e60e37f700c045639ffb6c846460186a19e83fce3836330e482f8f367e6d16 SHA512 7e9bf11c21e7122e0e4d14a6dcaed2f0d8af411a5ac20be989f3c766abf52efb44c7fdc3e263370f56a6b052b5dbc1af180e11849f0fb432a060820af55e4e12
+DIST firefox-140.14.0esr-sk.xpi 468227 BLAKE2B eebe8a48b09204a5b9acce11e9d30751378e56cdc04e07cccd23da8b9e89d387974cc5677bb3af52588bb61d938539cb48ead98803401c93a1530f2ead8e1b24 SHA512 74cdd4476ae919e13545783120cc84266c549084bb601a30cddb8752bcdc79d6861ec2792fd3b51cc89eb328bd8046752113f2fec7c176e03e1b241aade49c7c
+DIST firefox-140.14.0esr-skr.xpi 485875 BLAKE2B f2fdcbb141cef772ec569e93e5c13565632656434a23e6070957da0b20babd57d7fcdf25798e3e429159aa180f83800a076e97fe7a7a856bff15fb888d8fec28 SHA512 d151372650ae29ff72efdb20f79e86eabf80dde0a8ed267a9f78bc0882641a40f55de14c20007fcd41c2ce49e386affd93085418f6d016b2c62cd25657a05dc2
+DIST firefox-140.14.0esr-sl.xpi 441207 BLAKE2B 9607b4a7a99dae9ae3e7301cbc338cf4003a7db5cf7423517fd2b8d741580c4cbb060e200ea0e647d4a5bed63d88f97fdcb87248a7a87c1d23b8eaa94e7ebd78 SHA512 d56ba1f5fd745935bcae18f5f056402d99d3ad112540425f209a9d43fba242860170419ec6991a2889e603e74d398eebe9409abfa45c5adbc167ccc9ff3e1a7c
+DIST firefox-140.14.0esr-son.xpi 273125 BLAKE2B 615f70e20c7956fbea2755af07f783e7e2d565bd4903c7913a9b50c52e912d728a70e7a600a0ffc3c195b87698e8f7f95b50af17812455b01dbac7604bff436e SHA512 0ad906b5af7ce8fa5aa21b43ff817b444e13ad5285cdd03eb99756ab9ba74372a1e9a9dde7c3779faba6a83628f6114319454c66d441eff1e011113e8c3a89c1
+DIST firefox-140.14.0esr-sq.xpi 456016 BLAKE2B 0c9f3c16db7879e051d46478787fbc6c0fc86a2cc6f883f94648158e2d7be3685384b445eaaed1581d00dd8ff75300d903fd113cc837a0efbfea9573e5a2d540 SHA512 f790a4a59dfafa4959d80516363dfec56d961a6d920e00ecac71ea70bd91a0953bff47ed235c0a1e0a932cdbb4c74ceb852f9cb0772b498f522239091607cee9
+DIST firefox-140.14.0esr-sr.xpi 453372 BLAKE2B f00b69de577bb0e1271bb7805a879cccca6b4273f87726af8a91d6e8a2c0f02e17996a99505c32b820ec5b4986a5aa53cc7f5fd91286c9988b51e20cbfcb5578 SHA512 5b192f96efd66e00ce31a2fe2c0db40ed9bce88f072bd6e2f1fda622e0524ba6cb6da7fce52739e20eff64fca2d836f9e9bade6bb727fefc7b8d01098ac5054a
+DIST firefox-140.14.0esr-sv-SE.xpi 436154 BLAKE2B 3a040af66ce8a0496a132ceb5dbec3033209a7b4319fd01fb06432e6781594d1e6243a13678d828adf8835016228761ca2c5e20c814aeb4849ce3d5b6831dead SHA512 5c5f6183118269a539769b81185705004b6d149e79e94bf23ca57fa7c2f16ca8aaa2164b3e791c952c6dddfa235970b79c04b1bbcdf2964e7973c0ff7d7b8da0
+DIST firefox-140.14.0esr-szl.xpi 341679 BLAKE2B 6314b9a69bdbd35592d8b1806d517421127cc58af7846d8f9c43fb2b9d11815683c0b98de0fd78c750f82af5115c317de2ad4535a532fb30279a2eb98380fbbc SHA512 764c9d18ed76a4d68afd052ccac4052b72b82af73b20658644219083efe1dbd38c13fc0af3426ea796c63bbc61166e43a72bdf1e52c8d65713dbad98d57619a6
+DIST firefox-140.14.0esr-ta.xpi 338149 BLAKE2B c47b4591af49ac127a2d65c8479ceae909e98d07817d52da5aa742f5c4dbd69b1dffe28725b1baf10588c24508c51025452b0323c52f584e6de038d7a70b0251 SHA512 942a356c7b97089030378aaa8e21cf28c7ee8a4fd11ac5fdb5afd6510b81d2f7487b1a9b796f228328c5cb36e457778be1fb70e23e60f606e474fdedb9bc4afa
+DIST firefox-140.14.0esr-te.xpi 382194 BLAKE2B 6ccb8d7c9b85af10f043dbf9d6bac1388bd0e1177bff0c192102d28732a3f529afa9c9e58007a417fda009bcc014f629bab82d8c4ca28d29e01aa9c58ac493da SHA512 e5652b65469bf8eaa7bfce22cbe6cf0aa31fcfb09bba3a5058d455e55669b9eacd81db66020fb4579bb2c5e9989a671cfbcae925bb7d905d359c2260df756b21
+DIST firefox-140.14.0esr-th.xpi 505497 BLAKE2B 2561adfbefacf0bb77a9d18f3e9fe21e711ce830555404b3f735b50e2b9fd19649b2258177a8aabb68ef60b7cad3469f2900379213d1141cf01318a6df94fb3e SHA512 04bcaf1b829f5a6d28e7bda3f769bbdd19fc62910e774a6f5854301151302d1961d8b6552563c458abd8902d2f3e9975a2d2d91855610a5cde98add66e910e35
+DIST firefox-140.14.0esr-tl.xpi 356653 BLAKE2B 82c7a77607c673cb097f857899510a7994e71551d025d157dca051459f852202e4ec3d4fed17c4f360e436579fda6616780d8b0c883281169c0fc33403c6b751 SHA512 99e048a41d63793f860551c7751fb36e18b755a44f3045b541c976cef2f2a7b030a1d522bc925417038ea0ad85bf1b1f67c529f7436f8c2c14f1939e1199cdb3
+DIST firefox-140.14.0esr-tr.xpi 449322 BLAKE2B 76e375e0951ca68095a04f85d2d580d4060f3e70629319ea55a77bc2f067721eddc33c27eeb7a1a1bd0a43b4e3eba8e4e89f4b9061de54798bdd48ef210346d9 SHA512 4fcfe034c65ecf428239e587e6af076ba2f249bf8512e9ca270358f3bd5d634f75f5dafe78c484f76fb28e39d63d6937efcd3973807165daeaba78393942b25d
+DIST firefox-140.14.0esr-trs.xpi 324521 BLAKE2B 375c54192e88efbe7c63bb476a033cd2e6b67bddc4af087b36127ea2a9366ea9bfc801bf657f3f7d8cdede5390b27920b35c0c9a52ce9ea7dcb7952119628a2a SHA512 29ee89fb59858503e72a9f827287d4e2624d307f32056958efeee58fc6bb80f0d94778f712af947a8ea94fca4648f2e1616403698e0ca7a718c8f2d3858e3797
+DIST firefox-140.14.0esr-uk.xpi 516737 BLAKE2B b349e7b16d777631d02c6a3cbea9be8c4fa285af7235ca48a87e22d509f2fd031a7c10167ddc7b9305a51796f005af1b04b88e5dfb1450091eb45a9dc0524b2d SHA512 10ca9a99d3960be67a327058f64845215aab70203a6fc404d4f497a2581a8ee6946c96301d3419ad3ff9ab746126b3ed83dc2ed018594f924f717b117e165b1a
+DIST firefox-140.14.0esr-ur.xpi 370189 BLAKE2B 9f5c4ee615fba0e2329058b7c782e2ed649b2eb122b3a6a26106f8e262c4ca58ee96e79129045400a603e2a8ad79b97ef51aa3912e145431da6deb1cebe8b268 SHA512 d707ca33d4be0a07cd43867b0b33545871408cd3089fdfe7a9a5c8dfcfea7bf48c8564c3925fe478ec55777aea33172b7452a2063772a357398d2c920de376ce
+DIST firefox-140.14.0esr-uz.xpi 303492 BLAKE2B 3fd53dc9408f19dfe81ec06804ec7458bf461231319c980b1482c258d1fc52691985a3102f904dfa3fb2ef78e9dacf96461ff3412e24485283d8e9d3a6e908b8 SHA512 c5d19e5b13baccfe71924fd3125fb693c2df3b913fe6af551c8dbf8fe841df5888f1521c7e4ca09b5924227d81e5d96ebcab038daff9d330cab26e9d4165b66a
+DIST firefox-140.14.0esr-vi.xpi 469151 BLAKE2B 782d914274d37e4d3d839009c0346a103b08c9b55d85ff0367376db0c1961eb02fd6471c07a8877d6b72052cc706cce31b2f458adfec02371d74bfbbe3a7171c SHA512 7e99ec0d517da3f7ef7877af9199ec04608e9bed9e05e58bbd7f1e372ab751a9b8c521fbbe7f5b00cb3568061c5251983027362ce89982b3afed99a7339e64a0
+DIST firefox-140.14.0esr-xh.xpi 272799 BLAKE2B af90e0fc6369afac7e97fa6061993f7182d57c94da7ca36a6f8436d11543d9eedbd9aaf86f04e1e32eee702c0c327b1072846c2fa05fc3d6a4837de7e1d5d1ae SHA512 e66906b7e9ec631c461993547216dc746a2ff159d152b9e4d32a7833d8db40421867d0bb53598fb7222669d434b76e5ffc79dce0453bfdb607a870684f60922e
+DIST firefox-140.14.0esr-zh-CN.xpi 460710 BLAKE2B d2362e836a4c9f2704b5a71341d8b879214fa2c3eca929caf78a83e602d648421f8a9f6e9137af8f9b324cfb084f80654dc068115dbb5992397a917f666e1bf7 SHA512 2f25715b7ff26857a6f4855ddc54e89822b6a196cbbee089a32c3c35c47c271e368ee7d0c1ba6967c0b8193efe919f4862372cee51ef40ac5e0c767bb3199468
+DIST firefox-140.14.0esr-zh-TW.xpi 463733 BLAKE2B d3fe463b15c94a11e21a5e04688e00342e53d8cd468761a0dee680574ec5989f95fe0662fa6754f834fa8235eb89b780ff4bf453f66b1634ee70b64c41f59480 SHA512 5e6de37718bd95b5f1c5241fe76d01a3008081491c056745c97a09202419e4dda0a656dd8ad542008aa10fd1fcf68164813334c0dca289d76f8f323256b8b732
+DIST firefox-140.14.0esr.source.tar.xz 643083928 BLAKE2B cede36a6a323db711972c10159de2ac014c7554ce93f301a521f80ced4e4a3f4938867aa3ce423434e0365cae136ba30f057eb053120803e55a30353f4665f21 SHA512 0609cca9bfaecbff56cdf13458534bd8cfa43f139056867d3b6394a767281599ee600f83165ad25565ced59b552592aa84431357458ccecfbe5bf104dca501c7
DIST firefox-140esr-patches-13.tar.xz 15628 BLAKE2B 824c3d42f2f6cf70932fe395cf11dfe9043e09e20d6dfd2bd64ce4567206def45424e82b738f27c71648f0b2d97608746d22565cf7aa35713dedd71a24cde449 SHA512 d4d59818944f6a8213598308a1095a0f3c9818e6c517587e4630056d432a0e9673ad627447ca18dfa884dbb35bc2921e54cfc63f9c5646765e0f66a75279584d
DIST firefox-153-patches-01.tar.xz 11308 BLAKE2B cfb7e8528f46e780ff10d728d6f2f00215c9cb940f3ba289aafee183199fd2a38cbe866697b5bd89458d8dce7e82e9a7dc6977e817bbeac1a01178a64adb0405 SHA512 11895ae7eba03b12ae60c280c3ea555c2954dd15eaa8a459f9a95b96629723ed599ab4e7738b33f1bdb0d09d19bccb53d511eaac9913a58e6418c11fe93c92bc
DIST firefox-153.0.1.source.tar.xz 803443372 BLAKE2B e7b1749b81c81744d3461c18b48e84a72adbc130a54256321bb2a854f8e96fc315d5dc97ad685610774e27de39145aa6897b9c832a1da9fd9f7ecd89555f678b SHA512 310d1aa27b7902ef5e052962e3b7d2819d0f5f6e596fddeafee53f09e9390d4801f5b654f4ca1e9fd4c15c71241fc31844afaa4d086f82c51b516a401fbe7f40
diff --git a/www-client/firefox/firefox-140.14.0.ebuild b/www-client/firefox/firefox-140.14.0.ebuild
new file mode 100644
index 000000000000..1ec4dbee2276
--- /dev/null
+++ b/www-client/firefox/firefox-140.14.0.ebuild
@@ -0,0 +1,1424 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-140esr-patches-13.tar.xz"
+FIREFOX_LOONG_PATCHSET="firefox-139-loong-patches-02.tar.xz"
+
+LLVM_COMPAT=( 20 21 )
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+
+# Minimum version required to build.
+# Max version supported by LLVM_COMPAT.
+RUST_MIN_VER=1.82.0
+RUST_MAX_VER=1.94.1
+
+PYTHON_COMPAT=( python3_{12..14} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=32.0
+WASI_SDK_LLVM_VER=22
+
+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.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ 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 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[@]}
+ loong? (
+ https://dev.gentoo.org/~xen0n/distfiles/www-client/${MOZ_PN}/${FIREFOX_LOONG_PATCHSET}
+ )
+ wasm-sandbox? (
+ 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 ~loong ~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-pipewire system-png +system-webp test wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wasm-sandbox? ( llvm_slot_21 )
+ wayland? ( dbus )
+ wifi? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.29.4
+ 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
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.112.5
+ >=dev-libs/nspr-4.36
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ virtual/zlib:=
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libdrm
+ 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-3.10.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ system-icu? ( >=dev-libs/icu-76.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= )
+ system-png? ( >=media-libs/libpng-1.6.58: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 "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=llvm-runtimes/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
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug ; then
+ CHECKREQS_DISK_BUILD="17000M"
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -ge 16 && [[ -z "${I_KNOW_WHAT_I_AM_DOING}" ]] ; then
+ eerror "Firefox-140esr can't be compiled with +pgo using gcc >= 16. Use:"
+ eerror " 1) gcc < 16 instead, such as stable gcc-15.2.1,"
+ eerror " 2) \"clang\" use flag to compile Firefox-140esr, or"
+ eerror " 3) disable pgo via \"-pgo\" use flag."
+ eerror "Everything else works with gcc-16 except +pgo."
+ eerror ""
+ eerror "Follow Gentoo bug #975851 or upstream bug #2041879 for progress."
+ eerror "To skip this check for testing purposes, export I_KNOW_WHAT_I_AM_DOING=1 env."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ fi
+ elif tc-is-lto ; then
+ CHECKREQS_DISK_BUILD="9900M"
+ else
+ CHECKREQS_DISK_BUILD="9000M"
+ 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
+
+ if ! use clang ; then
+ if tc-is-gcc && ver_test "$(gcc-major-version)" -ge 16 && [[ -z "${I_KNOW_WHAT_I_AM_DOING}" ]] ; then
+ eerror "Firefox-140esr can't be compiled with +pgo using gcc >= 16. Use:"
+ eerror " 1) gcc < 16 instead, such as stable gcc-15.2.1,"
+ eerror " 2) \"clang\" use flag to compile Firefox-140esr, or"
+ eerror " 3) disable pgo via \"-pgo\" use flag."
+ eerror "Everything else works with gcc-16, but +pgo doesn't."
+ eerror ""
+ eerror "Follow Gentoo bug #975851 or upstream bug #2041879 to follow progress."
+ eerror "To skip this check for testing purposes, export I_KNOW_WHAT_I_AM_DOING=1 env."
+ die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)"
+ fi
+ 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 debug ; then
+ CHECKREQS_DISK_BUILD="17000M"
+ elif [[ ${use_lto} == "yes" ]] ; then
+ CHECKREQS_DISK_BUILD="9900M"
+ else
+ CHECKREQS_DISK_BUILD="9000M"
+ 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#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"
+ use loong && eapply "${WORKDIR}/firefox-loong-patches"
+
+ # ICU's subslot change should trigger rebuild on Firefox if it is updated 77->78.
+ if use system-icu && has_version ">=dev-libs/icu-78.1" ; then
+ eapply "${FILESDIR}/firefox-146.0.1-icu78.patch" # bgo#967261
+ fi
+
+ # 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 loong; then
+ # Only the LP64D ABI of LoongArch64 is actively supported among
+ # the wider Linux ecosystem, so the assumption is safe.
+ export RUST_TARGET="loongarch64-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-sandbox path manipulation.
+ if use wasm-sandbox ; then
+ if use amd64 ; then
+ export wasi_arch="x86_64"
+ elif use arm64 ; then
+ export wasi_arch="arm64"
+ else
+ die "wasm-sandbox 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"
+
+ sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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
+ # glslopt: bgo#969412
+ moz_clear_vendor_checksums glslopt
+
+ # 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-install-strip \
+ --disable-legacy-profile-creation \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-updater \
+ --disable-wmf \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-packed-relative-relocs \
+ --enable-release \
+ --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-ffi \
+ --with-system-gbm \
+ --with-system-libdrm \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --enable-update-channel=${update_channel}
+
+ # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default.
+ if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # riscv-related options, bgo#947337, bgo#947338
+ if use riscv ; then
+ mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit
+ mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc
+ fi
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-pipewire
+ 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-sandbox
+ # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox.
+ if use wasm-sandbox ; then
+ mozconfig_add_options_ac '+wasm-sandbox' --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
+
+ # Avoid compressing just-built instrumented Firefox with
+ # high levels of compression. Just use tar as a container
+ # to save >=10 minutes.
+ export MOZ_PKG_FORMAT=tar
+
+ 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 loong || use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on loong/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
+
+ mozconfig_use_enable test tests
+
+ # 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_test() {
+ # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html
+ local -a failures=()
+
+ # Some tests respect this
+ local -x MOZ_HEADLESS=1
+
+ # Check testing/mach_commands.py
+ einfo "Testing with cppunittest ..."
+ ./mach cppunittest
+ local ret=$?
+ if [[ ${ret} -ne 0 ]]; then
+ eerror "Test suite cppunittest failed with error code ${ret}"
+ failures+=( cppunittest )
+ fi
+
+ if [[ ${#failures} -eq 0 ]]; then
+ einfo "Test suites succeeded"
+ else
+ die "Test suites failed: ${failures[@]}"
+ fi
+}
+
+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 llvm-core/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 "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs"
+ 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"
+
+ # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date.
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg
+ dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-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
+ if [[ -n ${MOZ_ESR} ]] ; then
+ 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."
+ fi
+
+ # 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
+}