From 7031f13d7da8c29dfc651401b45e7ef44a52e585 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Tue, 6 Sep 2022 10:42:02 -0400 Subject: www-client/firefox: sync ::gentoo --- www-client/firefox/Manifest | 196 ++--- www-client/firefox/firefox-104.0.1.ebuild | 1289 ---------------------------- www-client/firefox/firefox-104.0.2.ebuild | 1293 +++++++++++++++++++++++++++++ 3 files changed, 1391 insertions(+), 1387 deletions(-) delete mode 100644 www-client/firefox/firefox-104.0.1.ebuild create mode 100644 www-client/firefox/firefox-104.0.2.ebuild (limited to 'www-client') diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 0e65819..d41424a 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -1,99 +1,99 @@ DIST firefox-104-patches-02j.tar.xz 18596 BLAKE2B 9fbd9a901f956498375ee1ca4a237b8c24e4dcbed504debf8ba90e890628ae2c45a8dcb51efa8ff81b1f2f119ad51c235172ae3b2c31b97312cdbbb343f7e34f SHA512 43b345a5f2c1549695b1cc6faabd91e42dc859a24aad998bcbc38a5d68e550eeac412f7a342f3aa6061e308fad4230b80329c5d9a13dfae638a1eb1eb1a46357 -DIST firefox-104.0.1-ach.xpi 458333 BLAKE2B 320f5eddbd989af79ed13489c21f9a4c741cd57759192d198cb6e8f5fb7d508396ccd75b7d9ef8b7f3ddeb60d89fcb022f13dc8c44cbac3f45376e88ff86dfd9 SHA512 d3d15e6abfe3fd6c60513675fa72641b26b00c4cffee09ed8577d8e0088e71c259ced7fe846915a54680d526b9f2f59af9f8fde2f7ca2ef130977a944e90e6d5 -DIST firefox-104.0.1-af.xpi 423663 BLAKE2B 7189db7e2abd3a7bfaf9e468e70916b5e3cc8ff5fef7003c5892fa972bae50bce9330ef6f2eaeff5deff6e39e45578d7998460706121d97b9b086990bf31dbaa SHA512 85862ccd579b067186c5187ccf5a8c3d4d85d32a298a43eebc61e772b07bd247587550d48087e28831981d419e7e8de2e3dbd279e06aeac119076dabde2bf50d -DIST firefox-104.0.1-an.xpi 502553 BLAKE2B 1f880fd8e5d9b288bee70ff5a438e0fa7d8b88cd39cfd79c714e0ca33c88968d7c753676ca05ae2d014b3aaa39a6287e9b99bd4079d15ebf640467cd7144bd71 SHA512 db10cbb94376c5c2fa03f4daf6876619167b7164ee33fe5d4cecc2212f98189094253699d0934393e7c6092cc38ddef00c6da9e59366af98c09bc5f766c0cb38 -DIST firefox-104.0.1-ar.xpi 565450 BLAKE2B f3d0721349ac8c8e3cbce7b990d5a021a1d9e8641e45ae56db70b9f0c19ce6ff1becd2152f2372a48809ae3d73bd0b98cf061af3e5f1baa7968e407d147f50ee SHA512 9c9238877f7867d905cbab39eae35679c3639c5499f31a4aac8ea16d27e4a0d9488ea4b74277859713ddec8d3e9f606d8216ddf827f4de996b64218385285fcd -DIST firefox-104.0.1-ast.xpi 498360 BLAKE2B ed6b2546b2516963109b2aa96562a60f20d0691fe5618b0a37c1e749bb20bc8e5f5bbd331755da324196c9c8d172d3ae026902c1726b035d0347cc4ae9b3b49a SHA512 efe9db4c9e2330fe69e057b1fa5ab6b33a71099a9164da4a80059e5ddcc86f66da5e8e7b51abb7f12d694051f2b8ec1819816988046a34484ac8c7c4062da24f -DIST firefox-104.0.1-az.xpi 489599 BLAKE2B 2c9f7aab20532b5763ef75173c049d728988ea581d8c7172d29d0130516abc0587af6ef11961589e455a8591a7df8951b9736983007f9fbba181ac931d18e4ee SHA512 193a97a744c5a6d535b3e64c6944795ea120376e5f43d11bfdc19719edbe69328b99305163edc3a6d3522498aa219b2250f6d9391610c2851ff5095ffcf76f3d -DIST firefox-104.0.1-be.xpi 637261 BLAKE2B 28602b084e2514addd326173d0f131fe495c6f0ed1bbd791a9dcb55afb510f8a7f145197da850cf365b295eace9a985bd7d53eb3359253c2112c3f44cae74627 SHA512 a77ec7aeca7186d8203a9abd63a3b883bec9b85c7b0ad472b699f5381637da98ecf7c04777ec94f265cfac32c2b8ac90de5d3f91dc0e5f7c82bb9f15b3916350 -DIST firefox-104.0.1-bg.xpi 581960 BLAKE2B ad424607630b258fc40a602ac7fb67a1752b9e5f24a37966d4751fb47c9598afe59428cb4a382a26114c8c5c0ca4ae45cd071a14855aa468112f2a495fd327d4 SHA512 b58c5f2ebaec1ec74e5916e5748e07c894e501089e97bc0410ca0308ad94230b06d50f5596f46071d3f3a7bf376abb6820ee4acb3e204abdc8b7aacd293a9e45 -DIST firefox-104.0.1-bn.xpi 580168 BLAKE2B 70085881710999e101ab70c8f5f5c550302c6f9d2191b77fbaa95b9996e8e9644a1f29438fb3919a592766a3b32a63cdbd1794046d4c49778919006a36741bc4 SHA512 dc09f9ca18d07c1dcde89f96602c65db00b0c3f3e081b365cc645bda592e2bcc191a059a4c1c5bedb236d93c66ccd1c9d05f25dbcb9990834530c67b755267c0 -DIST firefox-104.0.1-br.xpi 535103 BLAKE2B 74a271840353b63a1455b219b3d671fc94410ca32b16d471dc959926fbf70117410a23e400c171a0758170c76d4010406677bdfba1eee0a1e23cda939911026b SHA512 74f72f8857ccadfe98f6cd9257fa2acc0aba8cef4f97de6f6f04ff974afc13ba34b0ec4a940d3c570bf85e5df1145e9a9d8e95dc7ba441c535d4fb996d914422 -DIST firefox-104.0.1-bs.xpi 466917 BLAKE2B 03fd70be572184681f0532980c8d4e4fedc0e561367dec6b720717f7eeca76747f6b9fc1c1f0c136f5dbba7d060c99c5f620da3384b9c5a6a04e72d5a3b259a6 SHA512 eaeeba84813f274bfb6ee3ae88510c929b026f0ddfa8c4604c0cad7186ba5a46a7ad1e2e60941a4393f68f94895c94f51bcaba4bb7630373cc4b8bd19f433dfe -DIST firefox-104.0.1-ca-valencia.xpi 541638 BLAKE2B a87e989da6ef3bbd8644c5ef138bf65884e1268c50c76deb187556822585de2c321446303e9e3b671ff7de80b9098b8eb95da54ecac7004b5492ceefab590fa9 SHA512 d5a22012c47db333f0e243bcf73c9d262b1d26d0c2a151df9c5dd84cc7e2a4eeea08094ad45bccb9b70847adba5b139209e619624039815b89e9cfdf114bf7cb -DIST firefox-104.0.1-ca.xpi 538216 BLAKE2B 41e671f669f979f8ab752d5657d794782fdc70b7328153692b916127058a73a0f116d211d57491eed0c119f5c33c6743915117a04c6fede9953b9619bcde6ba6 SHA512 7899003cb120f7d7fc6931df87944aa3ddbac3f8a4c54c3c0f52e3f88156b08d9834e5586d0bbc36307b9d2622ebba644c778731dc8b98e1e54b8ba242dea918 -DIST firefox-104.0.1-cak.xpi 555059 BLAKE2B 457a0424ab2e3a45b329e2a309221865c09e3992cbf90c9a65747fdf52102f12c0ec4d0b9e176c646532cc4710d318bcba2f5aca597684447d1214e32fea5ea6 SHA512 4a82a7dc838b228fd725263e9b20d0ad58fc33d6eb66baa98236d2af2d737a4425a36b8fab40f69b7f78dd2bd65e9a98a29ae3da3406647d9596847129fdfe37 -DIST firefox-104.0.1-cs.xpi 575360 BLAKE2B f96cbeb3d607b88522c1f2984b2916a77528942a29ca1b41d0768c53e13e16ba94314df57b66dafae6ab4ae143b4ddfeb7b53d1875742b048ca805d85d7c5459 SHA512 305fb425d408f246f9de585342b820493d6039022f43aa877329c3c78c8517d9a2b876a4389e8251be206d86011d4bf9c387c3c8a1cc235769f516dd905514ec -DIST firefox-104.0.1-cy.xpi 551513 BLAKE2B 52b3093c905c70fdca213974c1ffa4e7f5e74815a1731659ea1ff795e83f1b11444444b2d30e28e874dfb986ec3a9296303625378bbe51cbc143e9f7de488bc2 SHA512 ee411e89685a332b35eff661e4f653781ea463b7e3eaa4a3c704ca0f6ab4f86d1b5b2c1bc1501b6b2e7bf0191743d2da9091a7b1cfd758bd94c386a1aba387b0 -DIST firefox-104.0.1-da.xpi 538914 BLAKE2B 5ad447d649d11ebd463a3d99300faa3dd01ac3d271ab0004b16e92051f75791d2cbc08f56e1d9a649a33d17bb8d4a5b073eb4f528e3bd7095bdba3a9002e4d66 SHA512 f1ac7d480f770719e734f02d7d4e8c0bcca4c501e1d59ee82367d046a92dfa0b9dd70b15247a479b64b32f759a786e01cc4c1865ad44c3d5611ce87d6086484c -DIST firefox-104.0.1-de.xpi 565799 BLAKE2B a6af985396a74a1ed44a12c4483a4107551be5704b47a89eb28d844f820e54f7513e953f1389cf3e7a1aa64ed654fb99ee871b738a3caecd4e3c72544169dbd3 SHA512 8ab26082c1cd5cb875604179236b257c1671f1a296f9614704e3c27063a89964c19ba9048069875f14410bf4c3d53ecece2c32e5147025cbffef4a1986fcbcdb -DIST firefox-104.0.1-dsb.xpi 579596 BLAKE2B 3b568aaeb22145c2fdee7d8f124acf00b08989573c5155ff56cec467d1480f843f41ff41ab4e1cf553f19c3618edc6d7fdf4e37bd5afda29b49b810dbb0a4d62 SHA512 087b5135f66002c903cf7df0e130e8325d99041e221d1acfb431bf8fdacb0c1e09dac100e7fab54341fd074b46927e8e3f6158894da3c79df11aed6449ce9d27 -DIST firefox-104.0.1-el.xpi 650587 BLAKE2B 7e7875f95b0db1a7d77f40e7dc03eb63c1e903af8a78d9f5c15bc251f13212062585e3ff9eba5286f09609f0447348bf72814d09e4f3faf566221b49c93c5293 SHA512 9a7ddf615b03a3269f09e2cfd5a1d5c72eba8f662f2900eb8e398d7ff9ee9a4ecdc93527e62a5c625185531734289669a978acf2d24ff466dc08d49dbf177cb2 -DIST firefox-104.0.1-en-CA.xpi 517599 BLAKE2B d146b15f0efbe8079d1475655fde0be1d1cc99be9153bb2971d51ab1fff9a88a364014d2a6b157df52c46321d21466fa70ebdce25251c49a36b0f71871fc5321 SHA512 2432aeb2408c9c8c0f740314d7b8e46e89d712330f82226244a8ce190ee5adfb71a875d3971bd34774f2b44122f32933f03f38ec6e3bb08c543b92d43379e9eb -DIST firefox-104.0.1-en-GB.xpi 523094 BLAKE2B 06025d54f18ec2364f5719606e6e9b62cbeeee1bac63c95ea77c62e618d376680dc232834f98f8e2399a14e765a33797e4f9acb01ce4565b59ddd50cd724ab65 SHA512 c086f76ecc2649763bfa142dd61b0337b3513cd3e9bc557db9fedbc1ca196bceaae5bafd2ec3a9b53daaec0bddac7cfd86e1c81ff2a5a2bf9a14e5bc605a4ff6 -DIST firefox-104.0.1-eo.xpi 549731 BLAKE2B 8216e3727f4a96016f960b593f66990e721e8966c2ff0a48323c794ed43cff3a0de5164d568e2cfae13311e3d9effaca014e3028cb8195bf5b5246128346f095 SHA512 6d728ff229f8ba3af9305eb18cb6fbf61a6155580e7980cb8f3c7eae730b036ee83d0b0f2f721a54d220df05d1f7536d8f8d4bb8292c3fe998e822c5ef55963a -DIST firefox-104.0.1-es-AR.xpi 560345 BLAKE2B 43aafc1a689a2baa7c3e473caab683752e87046375bb45f9610f8bcf707feae843914abf586aeba659060aa79dc8e20189d8a5d2491e1a7f78daf5875b4ef2ed SHA512 98fc9f49a7628b661dc39b1e9f1847242f2bc84ac86c9c9575692f5dcbd412872f06d5473709d0b0b1fcbb909649f6806f2cc32c95a42f8b224f78413e50490f -DIST firefox-104.0.1-es-CL.xpi 558252 BLAKE2B 1fcd7a66f8d474ba7d0aba90d2bedba1af42a3e0b6c67d87c0d34d4ba51539012772806dffc584e63d0ed8817695317129206c5282a0bc4096d025fff87cd6b1 SHA512 5e39eac0999a52281315190d4063849c6fce1a2d6ba8ecd87b70425d32531ea2d288376ec42467d75ffc00fe92b956279bdc00fe0c7cec98150edfa66d9cb6c1 -DIST firefox-104.0.1-es-ES.xpi 544265 BLAKE2B ba759c10bfd500944b40ca8642561dafcaf38b092356681d140533965d076ab359c2bd1f000b6cc2987033eedf56c3af3be930c59fcefdbe29c333550c7471f3 SHA512 1345991e866de3715361d5dffe81f22b8310b04eeae939c695672e1fc9b1ddf39d241d00a3c3305a2838601474af3ae70b6a373e556ec75266bfa2d317825e75 -DIST firefox-104.0.1-es-MX.xpi 563456 BLAKE2B af7c8c0796b95de85d9991f43fd8d5bd7a36c4fef341f2629bf2e9e5358aac0378b33f8df3321c684282c3a197c88621d11751d5e5d76949b349ad146a4b55e4 SHA512 7801d10eefaebbd94c4db66abe32771451e43f1a5cbd2c41f71e2612cd64bb414b27f766e22758078d1cfe8370d0f469734791d48c194c37d9576f0e7893d9b6 -DIST firefox-104.0.1-et.xpi 535023 BLAKE2B 79692a1f352378a6957c6521399d8da177b00e771417123af72576b1443d6b32ec6f3eaa816adea8113739d58b0f711f3fb075677a197ce5c03f5ff26e762430 SHA512 e6e8819e697adb9792e6452e56513ef29532b94419035285320d18b432c28462911a7eb0905f3d622837a67956621f27ae65337a0f854f2bb35209a0a6809ac1 -DIST firefox-104.0.1-eu.xpi 544752 BLAKE2B 12dfcf3f57e8c8a65f969e4acad4e00ac55befb7cd3093d6e7323f20fa19606294667492db39030a91668f8f46632db1a40681c5b6c2014b7afcf4414d1cf7b6 SHA512 37037830a9a26e2e2e909ad696bdd4df86d40e6256fa3e46722f4892978b2140fb4b638406af5e64040be9f7daee8db09c05205c22e80fb20651bfffd22aba00 -DIST firefox-104.0.1-fa.xpi 565979 BLAKE2B 3246ed242341d162c92333fca8a271754357f0203b7e13fae63cacf986dd7f3d16458d1e90c584dea0d845f64b42cde19213375ece04a01f73588e3c167c891f SHA512 806dfece5c52e73e9d484e84c0d3818dc5d3ec0306b084b68a3014b80c7b1dbacd49877833485fd60646422828b66120561f11150b11eceb7f70a21f7d15143b -DIST firefox-104.0.1-ff.xpi 476470 BLAKE2B db3680042d01a9fd3eca27786a87f8286a050c006622d64b7bc1762d380b1510e4b193c9a9b610de1f5c9f19b3f04957a67a5f9e6b7ad5f60ba696c56b1eaffb SHA512 efb75fb4f636f1d21990f5ddc69b052de99ebe4e5f2fa7b00461c246abef84099cb13696c3807432aa9d23de2b5f252dc76dccd707dd3f580cc5e3e6d1f9bd8d -DIST firefox-104.0.1-fi.xpi 542881 BLAKE2B 23de693e12e169e1a617fcb545bc6598a15a6eda8addaca1b4f39f0daf775b97e2928fede309f63913a8b9e69c33538aa35b25287ce53eb26fd6046540df2880 SHA512 ece442ae20e5aad145e6c476c0f7a752b6073b0b0043d85b69b151e3bdc051ea2fc2078e6e3aeed6af7cf623bc1d2ab91441f115cfecae81218237dce3c472d9 -DIST firefox-104.0.1-fr.xpi 569002 BLAKE2B 1b7c605381a6e2d2fd21dcb25c8a9b8d76cf0bb8bbe6956b6e8311de81a5ca864dcae927fcbd0b9939cd86ac5aeddbbc0ec53f798aabf7c458a80f4f450c4386 SHA512 dfbe08e96bd8c962e681a3d74a2363d7c08b78d1c1258efa989f96b1352b8eafaff1bb2c535aec42104899771e296af6e1e8a96ee30301f5f8e27bdf282077f1 -DIST firefox-104.0.1-fy-NL.xpi 550634 BLAKE2B bc32d7a0078c86e1e93716ab8f9734ce604a600a1acd3f90f72282b61085742cadad1eae4f26b46806ab0dd2cec67d82f9bded02d071b4d14332132425b1ab4e SHA512 4a4c8ff19b0d163141e80ab8a0c1b2a43b824f239658019b488661d5952c94b80d27e70622422c40af231d7000658568dc396ba306d638b3c0a4183423bc02f2 -DIST firefox-104.0.1-ga-IE.xpi 475922 BLAKE2B ecd994531e81e70dba24af52f233ab5f281962624bc08b523365ec38cc1533ff8a8c92e49e475fb8eee01e76c4b66d228e78b3288ca63bdf8f36fa1ee0203d20 SHA512 1339a2b77b5da35aa9e57ec6b6d88c0a3ed9922285d5e70ef1439358bd91c5b708dd6200ef8c063cb133c6ef2a82c3b1f44a2e62020a919c6d46a21c9cf754e3 -DIST firefox-104.0.1-gd.xpi 547855 BLAKE2B bb9fa8a86211a52befdc3647c3e02bdf5fac89455fa1519434bb0841695dac552546ea3ed89745de36e8b8bac68eee218b99bab0186de532068b8686c5f93711 SHA512 c62bbdd25b1cef5280b5a225ff180335cc3102d47fcab2ce15e154091596e330faee106f8da7ddaaa92d5ee20db607fb64eaddeaba5c78d4ed1c00d39caaaa78 -DIST firefox-104.0.1-gl.xpi 543918 BLAKE2B 2b0c3de744717276c63ecb8e6f4e0216ddc539f82a92ea7035f13fe1d2b61f907178fdd998ae78587eb4de0fda7d8c7db28f1e364ff44b0484599949f1d491d0 SHA512 65e2eae37ed2b8dc5eb2fcbdc34f19647900c19dc0e372d4abb9809aef4dc6e61c67da6659c1429abbf4c3f1b06b18f35c041c05ce56200cbd985d6da1e25f4b -DIST firefox-104.0.1-gn.xpi 570936 BLAKE2B 012f58a79760e33c46800549aea884f63f122d63cd49f3ffc68582d5b908d145181d3093c677f1c5c57853b0ee9e5ed75716fd7dc2dfe6052d6ccecddfd74482 SHA512 ebf7dd6a42ed430fc387ec16dca045016239826f2b2a1c06c59100d2857607132267d7c48d484ebbcae9df056883101d0c04568c1c567e3f2d4516172fed6c42 -DIST firefox-104.0.1-gu-IN.xpi 531090 BLAKE2B 371b3f3ae225543bc6f4970785bc89e3eb35b45f4b64e1b19fcac557561476257e2892f11bd4ccd74da0fe2c624c9ce7d2f490966c1f23a2fe9decaca0375f10 SHA512 008af3d10c54d1e1a4c8e52ae247b6dc536a81bcae08266f3dd0f12573279f611bfe119bbc4efe0729ee2006e5294be7a0b4cad22ce3680da9bf0c2deeeada07 -DIST firefox-104.0.1-he.xpi 568685 BLAKE2B 5a747b5ab63235fe555bc8e516a45a5a953f026f78ea5301868ad19560b779d7d3ee0106883dc4deeb5cc8f85b052ee9eced9c2d4b86bce8b8978aee04fc9043 SHA512 8f176c83eaede5c178521855a1f29a1c972a9366c63542688fda2bd2c0ceb92a9234e9b1d17be476d28c6928c19fe675cea99246b78059fedc1a86d2474b28ce -DIST firefox-104.0.1-hi-IN.xpi 561057 BLAKE2B 534d99648195714cf41099d9479c685365e74dee516ffaf678c550a8db05a98a41b59144d742da0f4e29f9ecff258a6eed8378e87444d805570c9af7668964c5 SHA512 ad7435615e7f365850db9a8f7c9bfedfc3568e3c1644522c4616f1937d77cbde6e8120cde17d01f95b42ed9e5d2fd42f7235118a28d195b89fe332e30ddda65c -DIST firefox-104.0.1-hr.xpi 534658 BLAKE2B a42c1706c687700c5de00a22f6428fc8a044735f0542a900eeaba7198448c1322de19594c8176958aa4ef770dda9d2f6dd48a189ef2bb7af1f525b7c591fcb17 SHA512 e9982e73d7ee41cc5218cc02f04b369ef1967b6bfdbb60447f2f7f44bae8a85a62fc851b509dbfe00d991b25e2c1575e65bc69e0cff1db80637e84e51647bd57 -DIST firefox-104.0.1-hsb.xpi 575814 BLAKE2B 973e5329fc789700b9c5e2144f7f2ec26864ac6349e5939c79833bd7922183a1b788551a1280fa1bac69c0f4d9b5f17543dac4455437f8de83841398b6e8c50a SHA512 ee76006209186b9713582466066f39f80d52363795752f290ec837bc48e2e2aaa6c120cdcda6f753c54bfcef349bfed3d182d85a38210e0d36b5c2d07a30a065 -DIST firefox-104.0.1-hu.xpi 579190 BLAKE2B a9682eeb079a9f788c27d80caab2f1068b4a0cd44459aae6a11934532dc0b8f15477dc91717ba4e32ba8af127d9a73370ea977d7ed99bb37c8ae0a1542cd2779 SHA512 38d61848c77ccb57c953fd12d29048e9c99f02b0269dcba3016e705f39f169db7f87885a1f1cc0221d225ee678f508caa5b4d192f8a1ce22b97d78c64423812a -DIST firefox-104.0.1-hy-AM.xpi 586073 BLAKE2B f31aec6bd252566082612308102ff48bd554480bab69c1f75cc19c976ea02f7700b9d7273d8c2e49e7b030a4625f2477c0926ab937ed27c61489a8faffb0a9ed SHA512 11e2dd01bff999965a0051f49101aa3fd21373559689c2a9e977d21c807c618cdf72d3faa978c4ef10cce89101f703de48e817d8c036815d5bfed87c39d89923 -DIST firefox-104.0.1-ia.xpi 545105 BLAKE2B a6460fcc17e74d42f036595d85f453f76be7e117b96e5cb9a4dd45b291b0014f6762cd7debbab042352da3287bd9e3bbb5d6c960b610e38277861a4b8b62f81e SHA512 704c9e780f3655f602d0aaaf38c6407f61a32929dbd375a6a43a19db05964a883f54312b82a70f06f48cfdbe28fc22a415e473ddf9f614d2ba64d956c5c8050e -DIST firefox-104.0.1-id.xpi 541017 BLAKE2B 156ab808962ae78f64f418c1eea3a3e7b5dd5deb982d345775e1f5141a5b1ce33e6de4f6b5def472fee5e17ae1058eb8f3b747957b1528f80565629a29716e58 SHA512 a03d3575879605dbe538013bdcacb8e1aa54019ccadc919188dd29ef3ddc10c2acd27933e2f398d2d12dda4883e29b553cb385d324c6c65f906fca40b7e7bc96 -DIST firefox-104.0.1-is.xpi 549338 BLAKE2B e7e6b8bf2a59e3d90e03b7fa7fbc9668477728564031f3d31e5e7f2540f422c4eeb5249030f8819b255a0928cd769c30aa268f6da28e7cc02a36dba071366a23 SHA512 b0f4a4971e9e289f8033c6848ac310ed4f3fef5cc9403b55ffd2fc6f11071ca70ad43e2532a37fb6910d9d0c8b53d8cbc4c290f99afead5c81cd25453c51beb4 -DIST firefox-104.0.1-it.xpi 462407 BLAKE2B d4a153e255fcd86fddc5539134aea823c3934657bd67d90b188f4bc6505001155567ef7ede223bfc724b875f047d33d4be17ac28342e490e349506b6feb90aab SHA512 a8627c339036faa5fd08c59c975f65e047f2dd2370d5b75f86ed503dbf8b5f6e308883c1165c79238570aa3d8c8cfb1521fc4e84962ea91f2aab893314a73e1f -DIST firefox-104.0.1-ja.xpi 583518 BLAKE2B 4603deefbea192bb5c1d6122bc257065b8021eb153b8297c35d78de6231cf47906f15b7954e78e91b32d98f38b79b6958ebde97b7b7fbe8b6368891bdf86ac39 SHA512 b1aaabd92b837ef31dd73410e2d137347b950374fd024eb5b9225ed6e8b41b3200cf70fa215aec616cb14b1ccac86e5fa4edf853294e6cd3f6e06258457b7b08 -DIST firefox-104.0.1-ka.xpi 605059 BLAKE2B f5a2a8e3d51233ffb8ffa9ec15c0682d538cd31f900f57213f03b358653184a5ca11a59ddaa0055799c7d125d935358da51a24ae00e52a0b9ed0fe5bf5a20b86 SHA512 6f103e483a3e07560520bcec5ca0d282e9371b3c49d7ccc480d4456f29d82535167d2384ffebc984c0de45b118ca9611c9cdff65da63f44628ec29f0a492cd7c -DIST firefox-104.0.1-kab.xpi 564779 BLAKE2B b896c4994441818a791335f153e462959bf97966fe16bb7eabd0635e402bf2ce6e5603cc000b19b5b6ffa6c1fd34d1e4109811c396e9f98e65fb46e6e3de7462 SHA512 17c9912b761e221ab8eee3dd3ca610bf60b87832805bddfbb65fbfdf093e9b35cbc05691b4eb950ab1de71dcf979a00c286aefe545ee735ee6c59ad99ad489d3 -DIST firefox-104.0.1-kk.xpi 624339 BLAKE2B 40dda70960add2deb085aeb7e1865a6c65c0b532a55369f333fda20d1792dc914cc5e5d17d59bf01971972042b0d9c7d8b7e92d00107defa859de7df3a9855da SHA512 00c2dbc8c26749627546403fb7cfdae78d651b1c7725f07dcc29250f765101cef0a6c164404ac577779f4d56997a759abc56ab62af7c25e876fb241853ef684f -DIST firefox-104.0.1-km.xpi 535687 BLAKE2B 3057867369a3ee58eebcafde5d3cf9c1c103240b86ed4d6af1eb07472fd06613175906bbdb4732a0d054053abd040beec93d4277b3438621e73b39e1b4ef8136 SHA512 17d7a559c14af8f422c2e5ffea10c5b93f80233e9b70e0e441547e6773600663e6495f3fca25a2a16cbce4feadeddf78b346c3806d2936da7c29562e64655401 -DIST firefox-104.0.1-kn.xpi 501800 BLAKE2B bcff09dffe3f639040866552d7e1cebab25bbb84349381a2fb79977dc6411bfca6e1c925845b546464d814ca2a768fbe158078c502e2b13f28a90039a56ee76a SHA512 9a3c388a461cb2f2821c7ac5978761f0e60e544431b5102dd2bad096d9b0b368703ca2be3cf410390beb7067f9540355210493b0a5620e9c3dcaf02167f00496 -DIST firefox-104.0.1-ko.xpi 591407 BLAKE2B 49efebe3abcab4d383db7b2091d08f6da198dadee9dc332e511c947ed2e9a6b11734f7f118e79493320cc3da9867a825a38df278193cb31c7caf03731c3f29db SHA512 b44c72cc02e4df7f294651085a467dbf10512b155031bbd9b7eca8c220ea90b9a1b2d3f20333dd52a158ef06584378937a11e6fe1d9ed06f0e45f956eaa2e565 -DIST firefox-104.0.1-lij.xpi 474399 BLAKE2B 3574608843c14aa0931ed65fafaec19285ef8d360fc5d9034a5abf03629828285c87a8db5e34a0239db5fcaec634d61c00506f350d42bd2666ce9a1b933720cf SHA512 1ac6758410ec39d3ce2e48a92abe67a2477c17f931b8b523ccc8c8f155de6b4a465938fbdadab074698657d07c40a4c178ffa41c652261b0ea6672472da21e6b -DIST firefox-104.0.1-lt.xpi 565107 BLAKE2B 14ffe0604b71ce0e09b1d9baba16d6199d9010538d6d52857fd73d05d5e33b0ad2ccccd51d7f4f7f20a76cb231cebeda8a45938a0721bb028d58eb34e4d1cf6d SHA512 c8dce5d637b18c11a0300c58735855386236ac56b4fcf8b643e26bae040f3ed172f90bbb20c7857744ca462bceb6e0efb46fa8dc49c85fd3c6ebe20f429e702c -DIST firefox-104.0.1-lv.xpi 467543 BLAKE2B c3553ad11ee1f23323a1cda40f0693c0742c2e4dd167442f553d771f722cc52a5e24893148958b896916bb818d25140f202cd4bc96ff6ebffc8049c9bfffdfc0 SHA512 5bc80730c979d67b69ab6bb13678605c279473c869f1c733c47dcf550bbed7a1c0455eb159ee596dacf0da9b18e3285e06777b18ca75cebc55ba6b4e8844456b -DIST firefox-104.0.1-mk.xpi 479889 BLAKE2B 48c8a66875526449e5b6f345c356abbbcd3c1c97067da8feecdc9e227dc182b1e8b81d353e75188e37a342652803cd528ae03047a7f7437191fb16469eb2908d SHA512 ab1e5c3053880d3a03389eb2cefe6abd24624b552d179212a5fa48ffe6a37a50f787b13f39447613feba679317c389c49130d74a744245360d92ba7a7758bd8b -DIST firefox-104.0.1-mr.xpi 534736 BLAKE2B 7e37e63efd417dfc5039258765390f417a4ecb203fb2c903f00fc40a4218f8b27a6f008fc7a8c718b17be6946566bce9bfd88f97b6f0069bcd8b52aaad1b800f SHA512 14e3ca4b1e62acde94a9ca6bee8bfc614cf2e3021f37a2caef0222bea08219ddb34072b63960fe0c5a25954b2a228d14fc1f22465b894bb7d30767f97b72f501 -DIST firefox-104.0.1-ms.xpi 452537 BLAKE2B 81f05276044b0049aaa49359f7a64cc4585f9974ac8fa05eec55a7841809622eb482a9df719b6faf3223e206aeebd071ae5ef88ed9d0dcd310fb5f0935eeb88a SHA512 26159026cf73c943a2146a2a203e7d576a099a8f7a63ec8ac5a0d633283010230627dae8c4ff0a64efea2353829ce4161978b3d675fd620673d57404bda1c3df -DIST firefox-104.0.1-my.xpi 514706 BLAKE2B e2da8bc53c4ca14e8ad46662e3136e5e2f822d024b8bdf55d7333b2d53eea813ff60b76c8d9e492215cd9ffae88f4509ea6b3c1a94780687269fbc90434f6b2e SHA512 4add44e7e3d1e7c76d272051667773870cb3f598f2bfa800bf57b607ceabae94066f5a74e291db750d3fc8881579e21780c8747e1a640301eab3a0b1d4eecc4a -DIST firefox-104.0.1-nb-NO.xpi 542660 BLAKE2B ee646fd3b512634b8f2d4ec77d6443fe17201c6a6f176a0538f20c8926bc8feb905102028c7b106d4197d158b5233271c6f9feeb089efab85ce4e0c1c0e7ecf0 SHA512 0b3d97850051d4f62fe32d3909e311e8dd8af54bfb281d01f6c8d4079f690338ee6bf56c9a589b39e8b3f9fc6be8b9c1f88834a968c1044bceb3151fcf898f16 -DIST firefox-104.0.1-ne-NP.xpi 493557 BLAKE2B 6226a206ed86fa9c6a59b0088c1d10280e8abe2039a9d5e9b719a022c25fdec0247365ada36fa302665efcd48747f5a3648a1dffd3b125b5f273dcbcd7dedbbf SHA512 1908a1f3cc9d96807986c3b4262d25662b7b4bc7b421bf36029a46b1a71a0cf3691bf5362fa66d149d576ef9cb73c17388b070a9eea5a5297d054a38f26f4fe0 -DIST firefox-104.0.1-nl.xpi 546988 BLAKE2B 4856b74b6464d2eaec1f521c01101c0440a397aa321f36c29b9bff811c13f0b78fe74b7462b78d61785232ea8797ffa40680882b3c782163b50322c03f9472e3 SHA512 56f53e27ee357724318a4f0002a6f6d335b4a4d420dac8d0ad8fc7026d82ea0461de53fcf29da2b80ea4e21c1007151aa393d45321fb80055bc30f29432aa9db -DIST firefox-104.0.1-nn-NO.xpi 544283 BLAKE2B e9445d3e21c59461a92fe91af1c59199acce65dc12a4dc60619cd02fe0f225bf2fa1381cc6edad73fe314b6c45c5150a04b5560b4cc4e2e684036e63239ba13e SHA512 a8efa9900de65ac8e814d69be0d3312ca93c8afb548b5cd2c8a464dbe479d39d7622290026ffd56acf42a392d28785dcb8876a0b2d28fea02484d69abde55cda -DIST firefox-104.0.1-oc.xpi 560752 BLAKE2B 1240b32e1e73c540de5c797d1c0b858d9fef3ea1756c03f6efaf8f7a7040b6d703cb643b4cfed8bc0210595f1e980c9792a08b329fcda6a2b366b5df3bb722f8 SHA512 ef08eb4daf7aaa6429ff1a358a0a673b93fe14d15e2f7a8aa5b9176afc850e5d2a1d18f0dc25b4b4a5eb98e51efb1b9418b29189ddb93479ff70a6afae110026 -DIST firefox-104.0.1-pa-IN.xpi 611564 BLAKE2B 8cc61765f25f64b65ee8d73057d189cf02ac099e090924e385dbedb89c08f13478724191bca54965833b586aacfe213e44be77afa4500e96648afc753d409132 SHA512 a7fdaf63f24fefb834057f67095aaf3c2f65403fbf7ac8d594132ff7ac2d825880d339e0a87adfa2d91ad622343eadfafbd40f2dc81b0f76825566bccaea2a0b -DIST firefox-104.0.1-pl.xpi 570614 BLAKE2B 1a84a0cd8b73dabb045a7b044e08d81bc48254d482549dbc6e04bbb8ef1431a0e8113cee2caf557c9c75450c78669e415ed567ba86eddd0005ff99699b4085b1 SHA512 b11289762246b2f673b563088676d17b8747232620406bfb6914d370b2556801e117521bc94b735ac9cfd39eb501be7064c6627d75d5e4e1901fb85b02c46188 -DIST firefox-104.0.1-pt-BR.xpi 555631 BLAKE2B 6e13f509691015709c01b8f6a929b79d549f58deb86236be976335531dc5851ed8f212fc4950be540cbf79ad8d593d6177ee8cc7503a4c97451904b0ab9f4580 SHA512 11f0b47e7e6f10052a9f7eac362d6e99fce09d78e25ae5beeb0f1a6d697c1b6b60566ed7d03c433cd9c3fa145fcffe2831b9e308a6c8762644d2afb357233ee9 -DIST firefox-104.0.1-pt-PT.xpi 558697 BLAKE2B 38fb11d6f073bad669cde048ad9a3b4165703a53925a0a53bc8e79ff40bc08d184e74e532deeba38fd0124b71c64322b0b326fd2b7726d812321261b897f5985 SHA512 e3ac451dcdd83db53dedc455bad0d1d4f8401f3499fe8b6712b02e9dfcfa6f4e0e7abf008aaad547f56c79878fa6a0aaa043c6754b49f6f4d3977d5b84083912 -DIST firefox-104.0.1-rm.xpi 542681 BLAKE2B 7771294d13a07bae3adde0a82d928032fc2aa7f4f871e29f894f87c61df739273de1de95c79cf543ac89496de4ff89c3ca252447631b2ad28c25a88016dcb9e6 SHA512 87949e5cee4f72604b3c25e2f85df418dcf5463cb63ba3043a35fb5dc61b26cb6d593b7d6177c943fff9328135ae9f814490deb75bf0d6611d7dfe12132fa709 -DIST firefox-104.0.1-ro.xpi 532715 BLAKE2B 768aa448772a70b63984fe090135c5a45fa27d9ca10e1613c251d744f088b2b73eaa23fbbca8e465de06f7d96aee41f234de6ff05f9607ffa8760319c9e3f8a8 SHA512 4b40b6340dce039a1ca6ce0104075fc9ced79b39fc285ea487a7cb0a0cbeb7cb57cd20b31d5446a55d8b828fc55875a8cbf06ef91121bf67cc7e8894c381a891 -DIST firefox-104.0.1-ru.xpi 641377 BLAKE2B f5234396311d0a7bf2d3ff6444eba2879fea0f0d092769ca4fc097184464b61da5d05df6388e116ddd4736e6ca6cc2bb5ad1eb1e6e3c0cbbd64bd7bd8614a906 SHA512 92fbf75bac9a5778eb8e8b26091ef9a8ef672e34440119ce7bc20c81af639a4e30baae4d75292f93097355e706102a4d7d1a185b95c0c63e144df3e7f3009a38 -DIST firefox-104.0.1-sco.xpi 500767 BLAKE2B 82ac497cbf1f0db9a626cc638ea9ce25a4d59f65104edb85c2ce6190156fd9d200b98ad877349858d7785029dc2163ae5b57f5a75d4555102f84f19b156e3b8a SHA512 5278a366cd697cb5d1f1e3154ca9b3dd5ac24dc99dc7091ca5e66cc53b11567322233773029e6cf4385ad6c72a0f7ce76f245422847caa4a446e13c9fb923c24 -DIST firefox-104.0.1-si.xpi 489442 BLAKE2B c0f8480ee4016b38bbe9190578c278a947afe3b6d8614e8816b1f2135d1e32d54f43c9762fcaa044bae343b5d072311b07c17be24baec123622a38f1e10270f5 SHA512 fbd9c0d6632430e2f140af6dffc5a27a2feed1b9e98563d98abd5a7fd5d5079e6afde7dfe2cf35bda5fac67f5ece942fa9fa9e6e0a9d385b77bcda20b87fa06f -DIST firefox-104.0.1-sk.xpi 579420 BLAKE2B 7d26bff2850c77712790f15c7e3478d974bdbebf9dc0a8a950875d72cd265d59ae9c2a6db12a3cb3413a6de870a5ea22edfb23d5d4fed63bb8d338eb182029fa SHA512 3872f9ceacafdf9807cce5355869f9113c37442a39c39c7e41787ea07557e2aac6fe388d24589ea28ad6474c8c9b9a6cbebfaf17db2423d31f2f4239be44e0bf -DIST firefox-104.0.1-sl.xpi 551983 BLAKE2B 1f221e153ea8523dd8b4601fbd127d74d42ae9e00fae6d8d8232bdcb7249bb13c655ee6cdc14b34316ab74b19c561405ea8798719545977fd58419e49b3a2e08 SHA512 72fde8afd681f29b29523d6e49610125a69092c58ae4465fb4ab9fe70d79fa30898ba01b48a5156ea5f65549a149b26b81626c29f6b884d055fce96fe60d3521 -DIST firefox-104.0.1-son.xpi 430379 BLAKE2B 1d23a15654a960984f132a6f962a33055e7f9941de5c80a6bbc519e72efd8a180c556f969850c80a28b17efdcd8687e9bf2b3582440b77d8b2f5d81076737ae9 SHA512 14d7807f6d823c3d0b5d749fde1f60835d57a20309c1eca672e248a416c9ec4f6927b27d89ef41b77149c8edc6c0ed084782f441b4acca3d7a70508181ce2834 -DIST firefox-104.0.1-sq.xpi 560591 BLAKE2B b4262992fbe58e25cf69a827c07a7159816d5a0c924b0fac042ad21f582aa40b12dd742a83b7377e5ee56c7ab281ce6545e366e9620d79f0a32efbe9e07a8e21 SHA512 472987faa8e4764e9bb09e5ee0a781ddaed2082a0d0af2f82a06edee316f8b3852cdbd6bc4dba6fa616d5026e881c508a5cf2cc0026bc289966f335964bcfbd5 -DIST firefox-104.0.1-sr.xpi 586834 BLAKE2B 90d52258def9a690a826f82cc3ef6b7676865ec472217bd108284aa1657a1a6dc479c589141eb8b7cda399a8ee655bf2a880ff91f49b6922466ada5bcf3e43f5 SHA512 57d2ff25ca343093d1dd662df9f8abe0228f5472aeaa55e1807ed76a856ec167df975422d8abcc9290aee782ee619569bb2706c7df6ea7f6a3b75a79b5646ace -DIST firefox-104.0.1-sv-SE.xpi 552470 BLAKE2B ea9e9cf83ffc94ffc11ea1ee838f0b77f2eff9a71c0faabef80072bf57e230de39f49f63aed56e98508c1f8e7646b243634056f393f97f3e0fc093fd3c7e238b SHA512 eac620d60017a86dc7b61f1f3800506391f67e2beb1a142f9c6dc64fbe05d1f9ca91933a0a73d306086d195b0ba42baf3925af181a68a5f3959548656cad899d -DIST firefox-104.0.1-szl.xpi 512566 BLAKE2B 1302b08305030761ceb8be28413c0969b3c68abb15c5441c4d2273cbf79fa1e1f2c65b884962fde3781e8037243cb4e8afdbc81bc3726c26e3b8d33e60a59e05 SHA512 fb2706b7cebaa58821c3240a0fb04a517f4b7a29044a2ee28aeb17aa2493000255202b4c6609976d5340d87e0353254e8d973a9f2c069c79066c5b4274062b70 -DIST firefox-104.0.1-ta.xpi 514635 BLAKE2B fac3324b196615771d1252fee4d02f803987dac0ebe4461263837b1ff89b01d9a70ef897cb35920427dde65e2e11e3d03b11413103557ceaebee5631437b5a73 SHA512 4ac9ed10e83e6da565c72f0c8332d0d76f249a1ef4c30cef4217f907c367a788c1492563b163da30cf488f658f0a90d339c33069614fdc3db597610f183331b9 -DIST firefox-104.0.1-te.xpi 555352 BLAKE2B a795c95a33a3d42cb4eadd4bae4b2b63aac3f4f3ba7f84c97eb6973da434b5cb6e7286b35392779ba139d247e0c44315aa8c4d733805a9eeaf80f16299259b8d SHA512 c6866cecef82f08cb07acb7606d206ac5c3e3ca94cc448171f05c0e72fbebfd9b01a7cf1f22bc588a12dfd10d21c6ca4fef5364c8ebfb4fba0f211586f07e5b1 -DIST firefox-104.0.1-th.xpi 615066 BLAKE2B 5207b507001adc1346eadd12b38d7711564ae3abd96967157944f375f47ca53303a541d532e72be4ecfa055cfb5d687d4ee4cee465127f732359ca39a5c79a9a SHA512 ba667b373a365f6e33ea57aaff668a00288cdaa6f008013b24579c6ec70c86e76f412122f618a7d0df46c3c314d731c08e1f5cc6c7ca6d6cf058196e0a4014e1 -DIST firefox-104.0.1-tl.xpi 522949 BLAKE2B 6475701ff083d5692a4897dcb27f81cdbf5c9e418f575dbead74d3464a05697bc8cfea362ae28a7936fbafe417b49aa0194dbae3339a4605dc2a20420b363d24 SHA512 e9c538ad44283822aa48af5dbbbc2c66fb77053588e9c3728ece40f4aead6295d36b3f4d13163455cec211042ada2e48a42162a93b9cc1e677adefd6c9f10fbd -DIST firefox-104.0.1-tr.xpi 565829 BLAKE2B c8b668cbb8c9aebe00ae31a157b7adecf3a1f96f1ace59f01ab2342db380863387f4f0225e22cdb46634fc0410c92ad9b5b3f9ef19199327fbf147612c900dd4 SHA512 e5d3ea275ce3a1a8e5d4a15a83e6ee45c2f96852692b8c3aca320a0deaa632f4dea263eeab4d264abaab57401e7e29d8d06a9657269a316622ee7930cf56b2b6 -DIST firefox-104.0.1-trs.xpi 493322 BLAKE2B bc9bcd6965d33988346184f6bc07e718c7ef570c0039ea0d9898bed3891272fbf8a99832e1d7b0bb4232d0c8fc0869fb1fac33dcc176114b36bb568b1d9bb438 SHA512 bb084128c1ca689ad52d626a9acdf7ceb58c823f3b43b4139fa2ca2877429ab3fc7166be28d0081ae723856329f17f2523a8d413b878a07aea646a6f9bdca94e -DIST firefox-104.0.1-uk.xpi 634718 BLAKE2B c6ffe5efc8102765c0d938fcba7524050b68966ffbaa64b28566b46e694995f8ed4d009bc70a0ce01c49868f68aa62628a1d27a9ae394c390d20053e6d849b47 SHA512 f113d00ec562bf60afa8481208a05b8adb7c57c9a7877f09364ee7579d0050db2949412f4a0d1fcf800387c176a38761b4d1cd7b12f8803d6053e709132e081c -DIST firefox-104.0.1-ur.xpi 561593 BLAKE2B 76d7e3ea789f361563e0b39ac4c31eed91df9c74088e7fccd57c6a10e50e8cf943c2f0056a4ff48e6c679b546b487cffad789796679ecbb6b79b1d18dae24944 SHA512 a15afe2de44f980ee5e50c82a1a6bd718a75aa1b7daf7608b1fa48f28621582d669d3436f30e20cebe68f9ad57d01024869a4545227e14b89ee0bcec5c46bf5b -DIST firefox-104.0.1-uz.xpi 482121 BLAKE2B 1fd1dd119e9d898371aac69c8eca45edb28129b835dcf677904bd595c741ae80c4d95205f0a6ca5cedcef600d3d8ab396190a70909722b2179da80195a0497f5 SHA512 0a60d5cfb9c5f14456ca426884a9052ddb0ff5344aa0335e1feaaeb45f7d6c42b3bf597eb41d26463d8304b8cb27affd4e5ce9206dc71c21a4a070fcd4353e18 -DIST firefox-104.0.1-vi.xpi 586740 BLAKE2B 04faddda962842fa0077c1291cfbe104fc0fa6d159c1cfc03052b68d415482c864640df172256f1136b7bfe317db55ceca4610ba362ae8949b9d8c91a56bcbf9 SHA512 db418eaae8cd457fafdcfc49fda963e0034263a4331f0bcfee21673501a3dac091488b01740971a84c21008438ffed0541d4a36a8d7d9c5289ab085a77144363 -DIST firefox-104.0.1-xh.xpi 433358 BLAKE2B d9ab0fbbf5a13f5148dd00a67e66794bc9e1e5cc108435e57163d4a079ef7218c2f204118777f560e87a32fb61e3dd32bdf40aa52915609dab5bd271713c3232 SHA512 9a21325ab198c2391fab2cce4b1ca28b70b9223a360c3fb77001ec35b27e26b36e6da546beca813d0042ded8850153039542d303dfa4a588ca33673649923d75 -DIST firefox-104.0.1-zh-CN.xpi 587664 BLAKE2B 6a872096ed781d3e9a5b25003d509645fa533adebf76a4e49094b4a50b3dc57962f2bf26f543aa05e96c645497cb2464b91894ea2252c514f2548ffbd5bcc895 SHA512 611fbd6a2f3336d3e9d349498927303b88bd5d66f459a68b5394f6d2dad2c15f244ecfca6c34ae89ac0e495d745022ef423860f8d73190e8033c3a500136afae -DIST firefox-104.0.1-zh-TW.xpi 588454 BLAKE2B 191fc277ff76942b6a67f96b49fe242a6e684226fcff3060e94a68afd2213250baf7b27b2831d5f80577afce85590da366363153290c7e0fc338c40f745b8732 SHA512 b51692a001ac04f29784f7eaa2b510f5bf59ca80864624de05bdcdf5df2283303e7497cf179fb386b229b1376a3db932e339246fdba34e0fc2eee2f8eb167920 -DIST firefox-104.0.1.source.tar.xz 485616148 BLAKE2B 285ef1cb8f9ed2d8dfadbf93af97ea6bffa6f202804170edde8b55ecc951c5c305140ab4f16aad684b8b5f76666baaa0083d297365f01bdeb63ff87e6d363fcf SHA512 ad80fccfde34a201fc4b596c2a0a1d959abc132946dde0865b6da624a07fd9c57381bc268c394a17f295e0e183d122b2cf5c5126e8a0bc99684affaa6212e246 +DIST firefox-104.0.2-ach.xpi 458326 BLAKE2B eba568e83dd1103b5e6ec2a955aca8c866526ea276f9da0279932c8ab531d3ac0ceb53bafd5ee93dbc2762c1b4a6baca31fa85f6328e6f8c8ec9419e4e9faeaf SHA512 4f28bceea0d5e74a777b77a460399bbc90012c3010ba3f663c0ebc122f8e8eb659518f9a696d547380e0210a4d47f8dce86f162c5174697537fb5ae9acc90ac0 +DIST firefox-104.0.2-af.xpi 423660 BLAKE2B 01af740806fc537f59476a761c468b9a388c9075c22f8aed4dc26362ccd9a276b5452c7294cf11776e4f16f5a584c8db9f0803647243bf237bc8dd5e5d93de6b SHA512 e57bad8e8f4292d0d4334cb3821ee99e1391b26dcf1f1fe3ec94a5e4a36240c74e0cbd6d7aba0b851d77858bfba7b9aab3e91c72aec6cc5a83a54a848feef4f5 +DIST firefox-104.0.2-an.xpi 502550 BLAKE2B 8388698af62217b8eb15f4f020702543556d5995b2e8ae3c70bfc83b1a4c54974fe13eca0ffac1eacb81c38bd02bfd44f1cf84bd5b46a2c84ab3326b25c37ec7 SHA512 08c2157844b28e5f4736744d163220d72daace953679a63e99d44cbcf0b186eb19ba7d30eab9e157852584fe98044926f2787e4a60134d3f4f1d5bc4a250a8d5 +DIST firefox-104.0.2-ar.xpi 565459 BLAKE2B a24c5d9771b06db7b83275e7303757dfec585817ad3f46cf8fd43c0aa3c523ccb1f9aad56a1e3b334bd8ef05d1768cdf8d4f75ec73071fa55436b63be78e8507 SHA512 5245d86cead3a00cd616db52e2ae45362e943ecff727962407789465b231e44f40462073ba7d9bdc87345fc135e2ef126b535e965f252f1f0df90502cfd7be27 +DIST firefox-104.0.2-ast.xpi 498361 BLAKE2B ffda33cb72504a9f21fdea8fe5a2656e6d43eecb8bc3c6c9ed39fea4702a8c7b7909027de23dc02ffeb124f1d178f161e19e2ac4a0615d6a8f4b6f5eadb98f79 SHA512 732993329e1368951935b61aeedb7796d453fa43824d010c31fbcb10c9c1f31064b3caadfe3ef6ebe37f84674eba79152aab29910cac95cf71b146ce22dcf5c7 +DIST firefox-104.0.2-az.xpi 489605 BLAKE2B c11b22540a8450e45f2d0c423f5a359428e47139451a1a4ec9519e145a29caedddcfa4d226951167cf9c7ad205df045c4b14bceaa1b9ffa31b6aaa53d8c42de3 SHA512 6e823109df3d34a16fb6fb60588d89651946fad16aa2cbb1fdfb071757d20dc75a024b82dd1318770815ae581749862a2e700df4b3c50e3271e40cc71f81be9b +DIST firefox-104.0.2-be.xpi 637262 BLAKE2B ef30f08cab2bd8bebe19f66a996b9a39d3467f93c423010b4388f9894352b933b1683fb7b04cdf37b44a8ae869e57fb1f33f56084182ec0b69b27bd2410e01bf SHA512 4ba3be25706e72d9b263f233e3bd4fad6873b0f391cf35f32f407b55df9affdb4a5e5c1fc68e8ae416127074d397f03ac4b5320860b93e20927b77fb88cf97c4 +DIST firefox-104.0.2-bg.xpi 581967 BLAKE2B 8ca3bb0173ac93dc9cb83fea951dbbda423daf39cd5b68e5bd9a9a36d965df24307f5315a5fa18ba0d0e05dbccda99996ee13422e7fd42e18231e90f6b142e88 SHA512 245fef211927dd71c8df1496b0f332c7a0b4fdb2205475f29321c153908a76b6761f2d36628b53fe8ff4e1522ad469477b75e8c95cba4040f44b71acaa1e0470 +DIST firefox-104.0.2-bn.xpi 580175 BLAKE2B a467e3f1e7d941599ab1d811228b3901797cbbbf87ee543e245ead92b5794c54db57ca126f7875239c2cdc5e72af2c0ba92cef2b96ac81ae4f96580e08a5b1a2 SHA512 2e0d0a8248ee33499f6c85a9c9b1d3fee77286ed6d2be2eb53449e85a4e6b89eec6e50c0e69462a8ea1371addf572a2436e52218e321b72344b197548090ed68 +DIST firefox-104.0.2-br.xpi 535106 BLAKE2B 6d7905c37b5a95f04f811aeb7f7aed270ae788ad58742d7afc684bcc48538ec4578ce66220c5c4486f8af86ae3764dcb605ab10ea276fa5e4c6608f494546ceb SHA512 ceb5c77cfaea5643440f28151adf46655f8006e18ccbe8ded35bdd7b0106b1dcb8ae1304d272c416f5fe44bf0418b993ae22e2a16fc4c56267ff96583786156e +DIST firefox-104.0.2-bs.xpi 466916 BLAKE2B f069399cba7841ef672fdfbbfc42508aa45d5a66ee8ffc9a56bbe088e639d35bb4c294ce98534de554f3fe42af181d4a04b535f93368d9716eb3aec3a234304b SHA512 45e31938a380b73d71ff00c83b207b96938b51ffa3a5b28a24e735a9fae448e3dfd4b1174a5f2593184204ed364135ecf898722ddf39dafe91ae3229bdbb1a61 +DIST firefox-104.0.2-ca-valencia.xpi 541640 BLAKE2B fbb73222bfb6536cdb14fd30706a88abdde731d77983b2d9708a357bfdf2f20990724ddbd88889f060a1e094474fcacad3a29b84752a52bb8a14df1dd6f20ab0 SHA512 9e3207aad59ae10a4e416662261f51f41f3e42b79213258551975075e61ecf138848f7722f67794e470991142cc2dc8bd84ddbdae071b7abc34aac8a6bea4693 +DIST firefox-104.0.2-ca.xpi 538207 BLAKE2B 0c4e285f208eb221735a52aad6206244d8d4a70b809251d8dd3baca8ec8256fc7203943c570841707046d34cf811ce4cdb2709464ddbd41b5621050b81d4e567 SHA512 ca0e1872f86fa6a01bc8e14d4f74d79ab28542e946f2ce9c93357be6782af762d8379b3f18440e92145a3c03a4ff9fc3439191ac2accf2fffbbb40fa0de9e257 +DIST firefox-104.0.2-cak.xpi 555062 BLAKE2B e41ad0653b236cff60f420fb6233fd87732248fad6b1cb973a6d4ccefef244c89468ff350a8c4ed28572e18422456f9998ae1b74eed9c0e65a9f166e08d7156b SHA512 14064209482c0014e3b6b370b6559724fcfe6c67f9156cb4425ad721eb71a33a882220c7bf265382efeddfa95973d02b316fd6068572c9f632bb0d043363b92f +DIST firefox-104.0.2-cs.xpi 575363 BLAKE2B 5c21b2a148b84a890a1e771576219ab57d2aa1b8c70ffa0589f564b0b90a6e232ab616a33f375c1ce0d6ac2236213e942160e04853b7ef63f9f819cf75811a57 SHA512 c94c5e06087f62a4bb8c5c834887d83e5d87d4317c00e36936ed74e6c4692ecde2fd79ea3abe6af1c65b048edc0f6366143422bfe6e0601efd258e76c618b6ff +DIST firefox-104.0.2-cy.xpi 551514 BLAKE2B 291fd2283f25f3fecd6437658643755d59fcf7e0aa28b5ccb9b0596613eb5b9373b1d382c55cd25781d614f3d2bd11453b467752f3fd9005b20d6431da6f3164 SHA512 fde532dc5f6e4fea2a319aeae3bf54136d11a2d7ba69ec9e48f90d95fa4e1eb7744361a64f73764f300a185b67bb6ecb3577e7dcf6a50f648b8651cf62a19f26 +DIST firefox-104.0.2-da.xpi 538915 BLAKE2B b10542146d5d3d5f8a39e69e7347fa9b60e334e795dfd2aa262f437c7f33a517196dc1a2f0693da9a5c2b6fc2d796fa1fd47db88f3de65e4ad301e809bb8bce8 SHA512 f62c96f743b451f24f5713b34822ef2c23289cb2847e288af50b81c972f4745c8f6f6ce8152f4fe272f22a9641b2d71386217e5f9b5821f5b20745a2fcfda663 +DIST firefox-104.0.2-de.xpi 565797 BLAKE2B ff7844e28c9a771472a9af322c8ca17c53895d0ec32d58f553fec9cb2c74d5bc5c6df65060bf23a0dd6edbac7c876dd0f4b1ec210e44f92c8d620dfa83d5d246 SHA512 d68771876497c2bf2734df0286ca300d7b1d0696a50be1c81328a79af83678d0e1cbe61e70cc7e26d218c11ccfa0b63e9175ca4947815d1975f17af0d2dff799 +DIST firefox-104.0.2-dsb.xpi 579604 BLAKE2B ba93063590990235bf4467b7b47fd8fdf19fe1b89add7efbd4a2827c352bbe5999ae0c1fd7f6843e23c6dff4cada84f5806edb6254d942a0e2a4d4e55ad14b0b SHA512 9ad92ee5cc7db646b41153e1c8ebddf825871a58a4defe67ee2e0653ddbb2a71633eeb93f119448537bbed06784154ea54ce4d1db8ad7a4c834d3d25d662b4e1 +DIST firefox-104.0.2-el.xpi 650587 BLAKE2B cf82f02d4623fcc813e900bb844de5c98faea8c438f5487df528a700b4fe3b6d6991f3d5ba602359462df10aedd167a846f14f6d163dba7100d58c1b401621c9 SHA512 e2088e9998e5b27a46961f81c44d67f32a207be82505a412f975acf42fa91498aaefca5d4089d2f4d89b971f0ff13991cad7f2b26a5f3f2ebe9104db2648602f +DIST firefox-104.0.2-en-CA.xpi 517610 BLAKE2B c281cdae8b2d1e523dbaef73926322713404f37068257e25f7da72f545ad6415d070a01ae3ede5414e6cb88b511a2920aa8a2a7875fc9ac6b648bb695f46cbe2 SHA512 5bbf9e621e015f011635444e9450ed670d85db5939c14254a8cb23249efc5d5f87d845a7b1b213b33958f382caf9ad75a0fc787ad1c3b133a88febf41a5c1955 +DIST firefox-104.0.2-en-GB.xpi 523106 BLAKE2B 8081bf809186e183545a7f0db03d7b27a97299797dbd655b34ffedf5346a3bcacf17bad7979c845b1db2e83a2c580890f74f27dd98773fa69cbe26e86153709e SHA512 13af7448ffb96ee8a12ad42045b8f87bc4e33b2c14b7bcabe54a2624f55e512ebfc668b1f53c26a0225b583a725a9f15c2f22e6f5185e5f9b6fe4a7c71574850 +DIST firefox-104.0.2-eo.xpi 549738 BLAKE2B e0289c88fa73b6c61cc19e570a12baaaa5612c1e818442cb8c798616553c7785e00e5896e9d516a427b744b01a5f3a12b3dd5d9716d00461601c06963922d7a3 SHA512 453557ea1206e9c845261e34245fbd3bbbced67fb1b3cbcec044fbfc0ff21a9ddc1317f1523b1fdbccf26a9ac5bd14f2ba44481639d3764631f6742dd17f7ef3 +DIST firefox-104.0.2-es-AR.xpi 560341 BLAKE2B bf87d49c6c90c66cb0f15f6deb9736a66724dbffaf1be32e21b8b838cc07c7c5723e6274fd26924867e80a115a7cd80c68a39bd8519eabe12dbf315a53a4a497 SHA512 24b2d56754009f88eeb2e27c2f5d58b3a770fb6fc58b9a584cdee9d6b4585279e2004551884970953b157b9a9863c49d9263b5aa1eaa4f9912228223f4f3a80a +DIST firefox-104.0.2-es-CL.xpi 558250 BLAKE2B 6e6f6b75b818b16a2fd9e563fa56ac8c258b3da9222ac75620e13ab08195cefa423cb59acf5ae73c6898263d0cf7e8d122f824631fd027c6e2dfab4779d4f2ab SHA512 c45defe8e990158dcc28866a8ce5d96efd84807747df554889cbc00f71c3a578f985b99498a6caa26416f929488d071e68b2cf01da3ce30c39d5c00bd324a203 +DIST firefox-104.0.2-es-ES.xpi 544276 BLAKE2B 559ee0364a9f148ec4ff23e10ae0f495dc864f771182994a9103a7468128f9b53ebcd01ebc7d5a4699546d363b804e8c346cf75327016a51c17c6d2fa5849623 SHA512 1375de6cba0f898cb4deb2b15e8ab38508ed9246281f201244c9646eb26e6a1817639ad56c5719b5bcdb0b388d9f7490464e11b10544c635982f1adea86009e1 +DIST firefox-104.0.2-es-MX.xpi 563474 BLAKE2B 74948a2592aed6c5c41f8ff3a60650c43c89e5200a751a5273f5ad614f9b969f8036c7ba58881c31f7e453f89226c1eab9ec6fdcec5dc21f241531d0b3da57f9 SHA512 f1b8ad1ca65d080af6927d26fcf68986238d33b535e42056a75105a915d9ef6090df25e3dee2b52a10bfef1b04fc8352c97c1f410704142bbf7946be78ede69a +DIST firefox-104.0.2-et.xpi 535031 BLAKE2B 8affb0c0f26a8147f9b520f9d636d530866aa7d557762e2db1c2b60c674a62aa77a82a30b4a649da678515adffd4daa514632d5f69389154e5d57e8321fd2dbc SHA512 4f29e2976c004fffff32427640759b7b2ffb207560085b164ffcbe8689e6428e5deb76e890b1bec503e90395454a48102192c77c5b1cdfa0524f09830344b556 +DIST firefox-104.0.2-eu.xpi 544756 BLAKE2B 553f8a7ded3842c8cca116734014cf7cef19c2749967a0be81b2caf26671fb9e1512439e9184831cabf4897da3bd829bed9a7da4b91775c8fdc1a0fc15b26538 SHA512 13942deeb6090f446000cfb99e9d46933cbc7cd7bd4a372eb17fca002e5d0edea87f13375ec8420a9534608f66a6f770db90923ef21b11ee0f1b83fc023784b6 +DIST firefox-104.0.2-fa.xpi 565986 BLAKE2B 03ade13b6d05c0df6c0ec427e0d25b3f4d7db56e4da0c170ba5dc17f0693b2368be8352c2886760f391af98be5d67dcbb3499ee1ed9c8e7c5588535dc459b4c5 SHA512 1d02176e74225461fd33fbdfd2dde29bf05ccff9a0b098181497cab666de6139b36a1728ef983e2c230b1547cafe5c8b4f2f5e7ae7023276e148da5509c14128 +DIST firefox-104.0.2-ff.xpi 476474 BLAKE2B 610623aa2f76a1ab752e3810a9a111e3ded2e2d9b254f03c6b14fbeba0dafcd670d99b8fbf9f9793f068329c2e6d0c199e11e1862c025f40207fe4ca03c49c52 SHA512 b9efac26d03a43f853b48a2a3df0f1dc52cfd850a6be8e53391803387d4d70dafcdae583d289c86703ce4e3afab217638b0a938195bb766d1d45ba9b664fdd2f +DIST firefox-104.0.2-fi.xpi 542875 BLAKE2B 23aac293dc2df258ef6cd22110857b0f6d719067e5cb752a896a5a508500fd59a5019be219ff64141739672ad1ef3914249dd7c697ddc7c743fbb3d783f0d2c7 SHA512 690c139b0fbf3b1a5c3bc933be07bd9e1b5e9dd255353e7581510e86400ddb2541f5c9648e54881bdce17c80cb94bdb68a145283e7a719c7cc1e5af887b22a68 +DIST firefox-104.0.2-fr.xpi 569002 BLAKE2B d12873b0918c77250187e74abf5fb10db8f141ccb2bf27a5450c5aa0ffddcf9889e08d352634cd62288689d6b17a8d99f69dcc5eba5da6185ba54a2e2bc35f09 SHA512 01f2a73af0513b02dec4ec6d5b1f66684840429d499a445b0fa5d407e97c2474d00b334ca2d83fb1379af90a7ec01114d15b13feeed252fe11d9c7a3e114ceb6 +DIST firefox-104.0.2-fy-NL.xpi 550629 BLAKE2B cf656d8602e617e11e411e169902503076325aa9be53d6f44dd1d84278830bc3bddc46f32889aa7c4f8938dfffa89d6dc2b8d1a1b9f81ab4ab20a4bc63617f00 SHA512 9814daab15dcb79926ff2071ffd1f53b317b9927e1474cd66b0115c2a4c8c29284d4fc4e9cbe805fc3a71bf107051b3648739549ae35d961c11e36ac756eb5fc +DIST firefox-104.0.2-ga-IE.xpi 475935 BLAKE2B f83456f09a923310e7c7235370bf6ef63029f7a4dc5bf0ee672d54c31f033f15d7dcf65cfdc2cedab34b3a2c7a7758ddd0e373880208b2a3675c439a33f9f073 SHA512 11f0867fb28fe4be0364075d010e8c40c6fcb7905343257aa52d8037be4902a427694c3788b5ce7d0d97f0e70fb2ca65a38dd3e05295a55fcc8c83a76a11fc90 +DIST firefox-104.0.2-gd.xpi 547851 BLAKE2B e5ed1ca5a2b7613f75779bc82af6b4c323b8d4d69e2af3e91b0f846472dfb7f282d84bc4f3aac6b0264bd5734cd77e9bb50b63980d3696ba1f6f28cba71fdecc SHA512 9fff6d8df73bca29335c6d77676dbccbeedc160ee04f7b7f180b719119eeea242bf08bf96f12c60e0f48fe31b6928e7f7306d3aae2a98c03d5a24c29f819b9f6 +DIST firefox-104.0.2-gl.xpi 543918 BLAKE2B c88cd2977f218804800cfd401289b682dba030be44a848a3f543f1075d26a4d803acbb3a585a34e607aed9b0eddc3af7158bed98e69ea74c2b4e6913b321929b SHA512 b9a7a46f0ccddaeb9d6ebd41132ca9847a0fe509a0e542016c58e5dcff56d82e796829b7b423bcfdd623a36601864e3fb85a930e0c49ced99eaa523f00f8e605 +DIST firefox-104.0.2-gn.xpi 570941 BLAKE2B e485a8ecb9d3394665d206b2be869d8c0ccab8a352cb7f95db8eabe9470e645b3b701de90125b32c6f21c4cf8caae0df904d476866414b958ca750baf61fa745 SHA512 53e28cd51314cffc1126cf764f187b623b857f4be25df672004a53c7ad2a915b55cf20a80fa2d4f1041326e8511cf95ade9593e2cf2820da6685126796214d10 +DIST firefox-104.0.2-gu-IN.xpi 531087 BLAKE2B 7d9c061782bf2e60ef1e0e6745cc07f29fce37c25941b93a3251a620b7e49e3341a8c22e41e9534717af9c39cf3be03444cec22796ab70695a8b449acae3345d SHA512 6a7e1f3c617e2e053993e9e849a5ac26468c45eb505eab17975d67189dffe71299de05b78b93bec3b0f72a4ed754bd8c755cebbae4a1300114c8c60bdd4baf81 +DIST firefox-104.0.2-he.xpi 568690 BLAKE2B 0c393e3e8dabf1fd45cd3f9e7d8ed93e98183381904c5810eea23cdcb176c7cfbe19efe2b9fb82a76215614e3850fa4c0de1873f56d6037b7f36ecbcb434033d SHA512 061b5f708124b6132e07a16da4f9eba721c1bfdef34d5d162264d7f5dd6dcc752cee85628140384e84828e27d7648226740eb3578099cc6df942fc86c715367d +DIST firefox-104.0.2-hi-IN.xpi 561058 BLAKE2B 5cb73acfdb6a385aff23b9fbe972cb1909ee0316029b9db7a138780cee09c74250ce4d9f89b0e1b7e0dc8e8bd732fee374fade181dd73aa098c6b72aedf1b84c SHA512 eb904fc4a4948622904b0305cf31a6cd6adb009986e781ada451fd5afc9e176dad55c9c4b4801f7944096fe1bc8fa1f9c4e0827a8baca6419246ff0114c8b5b4 +DIST firefox-104.0.2-hr.xpi 534657 BLAKE2B dd9787c2c9b31811473be927050c9b1c4fdb5e6f9a825dece3ea0b242d0ded54a463521fe28e161f57d35c2ff91c175c2397e290ce33d64ce9d69998402b97db SHA512 b33af66c484bd864e12c57819f81f1bd820c5ac7c4be2273004760f1cdbf1d60d18ed8d8eaec028d69b98b91499c7d54d5930d7f334a1169422f25b6c14d94a3 +DIST firefox-104.0.2-hsb.xpi 575816 BLAKE2B b64c30464f23a405d80af7f151604770d9e00311f032a07c3f5eeb2c9154a04af6f5b08d67524dfe0dfab8f8fbd6db25629ff035bd0432a8d5394f91de5ba98d SHA512 07cccd30c47061374c258dd1aa2dd108200f7fae1a71d9b4feca0f1e57a1388ab0df96aff5e1234dae61bbeea2ccd4dffe6be6cca8b75b607746cbcac678e80e +DIST firefox-104.0.2-hu.xpi 579195 BLAKE2B 3b2d8a291af5332a32512b77193ba0173c4ac71af179d9a2cf0142bcadbe50c10a3737e74a641b6d742148f3653ce9c8aa5a4ac40598df0ae9443d4225d0020f SHA512 8ab23f207768aac41b915207e4ad10ce08cc8176f12d6bbb48b5e1d60e8e58fc4d03bd66124505133fb7c9fe13db407a3c98517b043daecab713b8587cfae8c3 +DIST firefox-104.0.2-hy-AM.xpi 586082 BLAKE2B fd2b2e146d44eda1b29f34a484430b3c979247defc02fc38f33d50d8f05d7fbdded2bed1186ebb45a658e7c1188742d0d889b1fd0ad5288ddb78556ed44487b8 SHA512 7f551c7705a6f32af16130821752ffeed6377c0547841bf95025f5fd46d5fe6398ba81c5361368f918bf0542e56b3b000ca4b89bbfb4a025b0fc342e65b0fa71 +DIST firefox-104.0.2-ia.xpi 545112 BLAKE2B f235f35f103507e3e59a0233e5bd66ca67b0612bc9e963775f6df6d7b9fa1b26d8947b3ffe12addc142c3a3fbe5c1558e37580223658804ff6ec79bfbf16092e SHA512 41e3de0ae1b5400a5bf7010753ec35947d25d4c1c5d925ed38ee42c236ada7b3b55e0b29cea8d344dfc3001c2ccf24fdf6d340b86e330f5597a3a5f9461ce7b6 +DIST firefox-104.0.2-id.xpi 541012 BLAKE2B 15fe09f1af3d4ed75dd28e9adde2d52f773ea2cde0c182ee37b4323d741a3de01dcbddaa2a796440a0d694af2cfb189fb39ae7e5ddf037f29a7dc07a2e46f904 SHA512 0df2db48fa09b8abdc265d8827bc1c9a545322a92784936c177a1c99ce108dddc28b586ace4d179f3695cfdc586c50c3a7fd459bbdff632e5e6cf1b23c3202c9 +DIST firefox-104.0.2-is.xpi 549353 BLAKE2B fc7e0b8b35afceaaf96dfbd358e8670932a001376f1b219b33068882455f75477ed1f0e99fdcfd180f741230ece77d563ef4736798d7d88e970fbf11846e2390 SHA512 93b61ac3111377c50477d23504bd0bb609ab5601066c912568bba891648f6deba50ff2c55ff2a14258ce43e83c5f6b3709041035c5b139f46359468efed2de38 +DIST firefox-104.0.2-it.xpi 462409 BLAKE2B f2208d8c889d6937c8ce8a3925b7061d313463a45b31a59e4d6f64fdcdc67ffdb32da9a2fdd275423581d2b52065e5aa4c87d0d4fdefef1874f586c05ac1c018 SHA512 ab65d2d54bcb38a773cdac731c5db3a9ca0ac79e02eb6a03cf77bb899d20053192acd4eae69c0d6f842393280b5cc6770b97cd00266266b6f951f1c8a62209f1 +DIST firefox-104.0.2-ja.xpi 583511 BLAKE2B d769b895197a1b326969d458ae212ee99e605ccf6f9c2088f7df4695d44da2e856979331dbe00dbe66b1a9a04436edec88a236a5f1a6d19bcbafacd356acc64c SHA512 0144170739bb4d8eac58fc42e0a3eee96bd483b44c74589ff19b06e8c68ad9715d1b6c5ee7ed7f95ab52a1924ea3e5cf12335ff7cddfefcb50be0039a4e3898f +DIST firefox-104.0.2-ka.xpi 605075 BLAKE2B dacca3b949b763f00f5178f51e0c4dcad3c6e161b92385a35cc5413fb7b38f1d773da0d9c852104b59f1a13d9109e3ac3bd89476abb5cdbfcebc8e534f94fa83 SHA512 c9372d719c1253c2bc41a2b2c84639b450405c1d0453ac26113ca71183d12a91620b54d239ca516b3c663d4359b177ffd92fbdfccbb248d3b121120e01c35f05 +DIST firefox-104.0.2-kab.xpi 564774 BLAKE2B 73e5c096e428adb0671439aa793f72dd607f69a68d77d19b7db58284ed1dc12512cf3742a3cf2600b70ba29805710510bcb534a0a098ffa3e81817147b3b3730 SHA512 438fbcd104f57ba3a8387a107269ad94559826f42ff54d3bdebc74a89f46a5111ef86513b4433c9c98d9dca296d8f32b5d91360e642184f7affbadb8791ecafe +DIST firefox-104.0.2-kk.xpi 624338 BLAKE2B fdee3a760b4f5ef7f1e19bc252a39bb4e04a17bede17237efdc5de1d9b15160ea80736ef80c80c61dfac4bba768f2b2bed0ea68e9c70126ee84918119cad4058 SHA512 1c0e61c9e4e5aa317d89006d705b705bcf27dc5dc4d06b575b2c6eee8cca4c51cca5f247bdd21dd6b91deafeb0c7f6c7374e8e65a236a83fe38bb6ee8911f1c7 +DIST firefox-104.0.2-km.xpi 535678 BLAKE2B 55f09b663c4d494f20ed5abf2a4d370f18aa27d893ca4af0c3fcc2cc3d5d6df4e1beffeda77a0c010a3be12e0d67267bfc1684da7d6c6cc5bc4b806a5078b800 SHA512 4b0bb70ad8383295227a3c2dbd1f71a26be19d2f191d2441f847ecf446f3fc34e936365ad6f28aaf9d37e3cdd05f983247af40d18a20dd4d97b2f7525e99c843 +DIST firefox-104.0.2-kn.xpi 501811 BLAKE2B 91c10203ca612990d2cfa7c34da95b07fa6e4435e7bc47cb8fe960ee78c9e84162387663842a7f18e68f0ffb383bd9f2f6d40a13e099a5bd9f64eccb82debc42 SHA512 faa77ead49b2f23c4341121e6807e040bafecc944952fb23d5bdba13446b9abf945c845b94c4ccae43868bf9dad57e75299fe839476c18bbd0f4db9bdfd23ac4 +DIST firefox-104.0.2-ko.xpi 591407 BLAKE2B 0b527af5227aef906da4e1c45914b3a6bc4b66cd1937572d2b76304363f2f65a1e8b868ff024d908ceddfb2347abc6741e4dc61911fcd8192d9f6cc038cac651 SHA512 68814e14780df9a7a187e79be29fa1dd908857425b7380572d43e75e3ca6605af6bb76d3a9381111ed0092acdc9d60f0d5b0f1e5be2848de8667e7835129ea55 +DIST firefox-104.0.2-lij.xpi 474405 BLAKE2B 5a4c1bc5f8f7272cb9163480bbd8a25bc3d1c6340a1941bd0633336ca26ec60b38f18333929a205385fcf0a0df32b6e25c5c8598bf9fac5b845369ce5ad4c1a9 SHA512 ddfa714af433aa00c20d0e8e1b9fd62e574899b44e2d85b5d154b25f7821e64ac72dbd682405c9c69d557c4b8e173c347ff1eead667adfd20ed28e995727da60 +DIST firefox-104.0.2-lt.xpi 565097 BLAKE2B a89668e28b08a451f5c72b8915cf1bc412583e6a42347cf496ad2084f46ae240a738d4b5e2e361d50508255b2b4980290e47f37ff241e0cbd5cf17bd0e16a75d SHA512 fea77e6029978a87e0b2bc4e24765d08e4f7d5f24c23f7aac6e2fe12960bdba4ff1f57eb11135980410a60b86d37727b07f51b1a0107d49b7cbd83bb0f4e0ac4 +DIST firefox-104.0.2-lv.xpi 467541 BLAKE2B d7c089020c3d4e1c9636b2ff384f7ef8ab4ea103e9ad7f7e904a69376c464d89e15fc771621acd939abe976a53ea8143a74fbc6f9565e44f44cfe12bcc8aeff9 SHA512 918cc44d3186936af80b70af6f93af2f3369aeb02071aa821d3a84d5f3605a506710016be6755431ddbfe2d9dd3f4a11e267088fe806c1cf4820c2464aafc03c +DIST firefox-104.0.2-mk.xpi 479893 BLAKE2B fd1be429544a93fbc82cfb0debba56756280925b4be87f78cbacffa6a827d772a199ba5ec447fd140702441903dc35cd637404bb645c5cbb6274abade12974e0 SHA512 ca356f2914391d4f31bbf56ac1381e29e951a5de062d5f53b85f01ded9afd85ce9287cd6e77b44410210d3ba3416ad3459d56ff39ccba9734d5a5559c8f4fd33 +DIST firefox-104.0.2-mr.xpi 534736 BLAKE2B e8fd67730c09b788f3193da293fdb5df66e92a6cda85fc92619bd760d7a1ecf89bc9169cdd4de6d099b098e86cbe3758dba2b130624991a10dea13550b607cb7 SHA512 e7c449b3afe7d54a7c10fa7335223c28b514eb658224f19207110182d2157088ff305b68ae2929ea2cde6e6094e05f18c68073cd11b5bc1fc1d7537c19a6ef60 +DIST firefox-104.0.2-ms.xpi 452537 BLAKE2B 7aa8b23139abfbf7f331f2bf2ef4fbceba868507b596feee67e064d7a9d5e7402683361fa87616efcca23e27a192bd79f283909d4426b087cc21a7ab18e2a3b0 SHA512 f46ccc7a9ef8e0a279f4d97f99bfefd69a216eebff1204185ed3f097e4f21b34ae6e5864e5a4e3c37625d0833de22bdf84bc97076c91c480d4f2a0691544ca79 +DIST firefox-104.0.2-my.xpi 514693 BLAKE2B d1de9b5a1dfcba6f61628567006265f22bf377887a165ae50fb69b5561056af89264f9604493aebfe6e765d67dfa26b58a5f424c8fa2a852080045988ff88e5d SHA512 7f96a580f3bccdebba899c7b4b7dc663f935b2ed38432d7d2afa8284aec59064ad219de899d746c2608f7461ce8eeb1ca057cf1a5cceff16b964ec819c4600d1 +DIST firefox-104.0.2-nb-NO.xpi 542663 BLAKE2B 30e36f0df79f6dad882ca20b707a8aeaadd38b3d4d7de30a8f81daf1e7e375dbd1dd8be6f0e3abc65127463af6b6347c8d8d510e06c3b7f631e5be66de28c76f SHA512 24a34d18bcdabb2d3133f8bd33cb50cd8545e6888012dc3504978fc6253fcd02a59ef78fa06612ccd3f87c79bc550f02867ad903fba1cb0ab9818f77e416e1cd +DIST firefox-104.0.2-ne-NP.xpi 493556 BLAKE2B 82777d0afb5a6a3d8ab165b3ed87bd7f34e8eb6d2378d6e55ebc2d265badcbfac127c7f5e34db0e686e644f15f6893effa2176813bd19df89117b1d876e24410 SHA512 10cacea8ba5df7d544ef6981bdaaa73eb37fa9435f20209e950a24c7866a749429b37a40c301f78acb4fd3a219943c183cb232b6bdc7a78a858a39b504b996f5 +DIST firefox-104.0.2-nl.xpi 546995 BLAKE2B 5569b6043117a74ce0cc64c61cd29f336586d74dd63237a31fca4d6a0b9c7327833707d117b1a7d1f41edb674685d2fe920b3d754721836b343f2e9eede0ad4e SHA512 77b3b31d45e38b3a12e2c12ad9cf13728fa25bb190d05cd661d79055a52f0dc57677313e4b6cec0f9d4249626075c3bb4450833b35365368a3564cb8d83c1b68 +DIST firefox-104.0.2-nn-NO.xpi 544294 BLAKE2B 898c7c24d1de75ee1940a10f82df38682dfff5a2944f87786f61295a0bf97484ddcae2d0ed51ceb4868ba1b1dee8b5afa93c969e6c7b4b45e13cd42a8d8300b0 SHA512 8554e49a01b276f6435e93143671f9f56132c792bfa21211bacaefdcda7723cb041c23c0967ac3529cfcf31f55c00ae3794ce5335e1a2fa242281272a31791c9 +DIST firefox-104.0.2-oc.xpi 560766 BLAKE2B a4c1da0b761b873e6b6fc765c74daaeb215a5fbbe9a58299f357ce94c0e616914a8d080b8563fc9dcbae89f70c36b1cfc34796d134ac6860e9633f24de91f5a4 SHA512 66b4817308e4a2dc5b86b312228644ef5d17c6fafa28d550c15c454c44938609819fe4b6fb11130717adc82fddf3f71432e0591d0fc44d9acaf5aeb63a704efe +DIST firefox-104.0.2-pa-IN.xpi 611567 BLAKE2B a4780b8f89950b426218c9a4e1e3a9fe739dbaac580224f9c7c808ed68a21e6f54f70f2f8e030658dfdd37b99a5aa1a10ba947da66e4d5dd61b9605749eaafa5 SHA512 c8ddc7152ec400290ea15af4418be3f720952619360a1241effdd6dd9d02069b1ada1d8c47183e26f64ec9f48e4bb6a63ad3bd836a10cae5a3bacbb1575c4e9c +DIST firefox-104.0.2-pl.xpi 570618 BLAKE2B b4d9e8917c9fad9f60829e89f31c11e8d6f75a301ce78b3cecc9bc2146903f27f40f13217466ad1d1b57f04825a43e9cefd8b5c4237060156c94ec17f6abcc08 SHA512 a3f28c4b0d3ab945f12d98f7c940985964bffb1e242649d1454b48f9c56217082cfee908c4120fac724b171a60c18ace9a60c6d3b880b411a7a1069eacb6721f +DIST firefox-104.0.2-pt-BR.xpi 555651 BLAKE2B a77a3da9e06f66c7031d27e7ce026a8d19120fbd880761b8a02d85a8589ad4c361cbdfdf8f11d262f57393ad3613b74cc8b985e37ec12a99280b253b1be22a06 SHA512 c1901bf67af05d2cbeba3270b3f84d910e650ec87030da430060329159f1c06d8ac8127250cfa11c411d55e2937a2fcab8b398c7a7cf40992f8517accaf8bbb8 +DIST firefox-104.0.2-pt-PT.xpi 558703 BLAKE2B 38c4d74b99324709fa8814121e8c6a20a2c3871cdf96820b6239867666853782ea6818a21761a4cd46ab49f7f68e2b9e58789640839d73a4b9639b49ee868e75 SHA512 b040ebfc1d8154be8a25122b506ad5409b0ff3dbfdd6c6ee6f5e9c25b62b9f6f7106d2717393d1a626e05d8282272102dc407f754078a2567e20d5d722c63d73 +DIST firefox-104.0.2-rm.xpi 542682 BLAKE2B a9d16f598707c547fb22fd45a7cced5daf5aea54a5e5453a576100f90b79698d3eaf2d889b3831e363c19c9e1972766a3cd6e3be197f0ff15fc41cbf677092d7 SHA512 2d733da1d482116cfa873f9d21e3fe906adefc590916ac8c72fef87f4c1b84da64510f9aefb52b515d5f9d46685be0fbe3c81ef1030776edd2284f8827a0290e +DIST firefox-104.0.2-ro.xpi 532721 BLAKE2B 5910aa63fe13613e395a632f8b9e2211400c355832a7866f3f78c2e749ae8a213a1bc49332b97125cbd7419accb9a217e8096b2b9c05d0716077540a95ab8783 SHA512 11d8c4ab421bef3b0c6304aa0866996b286aa39fde990a8baef3003c321788fe45953253679accf7498d9e49630ecde7bfcd1404216e0588a3b84111fd903505 +DIST firefox-104.0.2-ru.xpi 641381 BLAKE2B cccf8741ad367d94e85b3306efaf5a73e579a7f280a69f5e349aad4ede74f8b7dc7401d86ba7a654e15f762e91ffcc887133c0076e145ea8e29859350f72218b SHA512 f43801dfb7b4b563076be332e4f0d94086eb4bd6fd0116e704b3c2c2ee02410229058d87679ed7a505b2d9a4c009044781c65608ca90bd82214ae350facb28c6 +DIST firefox-104.0.2-sco.xpi 500778 BLAKE2B a3a8b37151a4e468a46a422d2b3aa5de9e1bc90d280975b4540d62989f4c5a07e1e37361ee008969131a3dfe2d4e4f3ce1b9202ffe94aace28a4722de64cae0e SHA512 e3a97e2f80efc1b09ec7cebc1f7dd0feab86ff3158feb23d8c9bd6c360163156daac238ba13ae8ea809bc8420f36e5159a5cf988eb9f9993eb77c219b51bc0f7 +DIST firefox-104.0.2-si.xpi 489433 BLAKE2B 47fc22dae2bc5cfb82091dd4fe9657a23301a90fbb058ac822403aca5d19475c77a2f62f3c07ba473a388da3b991029868d8a7a1eaef74667ff037a34d8ab25a SHA512 31634d5905fc4b776b3d4748a66e18f4dbda4f4452bfde6fa0de6d9f14bb4997fdd56cc5760a6ac1deb9641cb6e7d3a546a3c203559ffda56c7a18a2f22f1295 +DIST firefox-104.0.2-sk.xpi 579412 BLAKE2B 4507728de2be1f116ca322952918c09c8274a625bcd87be97139ce0305bcd4213ade330eea88cd0887b7c4d373eb60920b82f7b4dcb3a8b2c7e501525d3fa44d SHA512 c1c7674a5a6695ebe5828fe4600cfe90b73a4336dc9d8a4b39a44717003c7bfa2a59b7a1def40a05dd7c1c625abc4475a42b75e319aa2c4b824f3549919dc289 +DIST firefox-104.0.2-sl.xpi 551989 BLAKE2B 45cc6aa904ff54bc622588a516145c11affcee1f101cc01961779df40c91d328a338084be1731ede3c98afd55505783cb258b1bc526514c1d26b5890ce0b25ad SHA512 35c5d429b5da09eeb25b29b5717baf1a217f08a8344fbf4ca3501ccb7ae3964e2f07eee6781c4ce54699cc7943e360396ae803ddc047cfb831979bf8946b34a8 +DIST firefox-104.0.2-son.xpi 430377 BLAKE2B 910c6e0d9c9dc5f190e8964bd57fa56a3dfe8f34f0c1931af622672def0a2e01509000f6d307522216a33ba321648f6bf5469e4dd80a566ae7b1c7330f164c4b SHA512 ffb2d40c57bb2a5be29034a7612787fc907e8521971ee6eea6773bce3ecd7d16c6bcadb87d50087c39fc2353df8a4308223f425c2b649b9824cec92170be5313 +DIST firefox-104.0.2-sq.xpi 560587 BLAKE2B 4837bc7591ceb25c7fb2a221bdbfd543e090b2ea8b5c44dbbcaf8688c21330e2b99daedce6dfce32d69dbc49c5396beddffaeab327af802083cbf0139e6986cb SHA512 f0933273ed4dd4aecd84aac240296a0abf81bf5ce7c7f2ff9e27c801a350e39878ba605e764016cff6beca075a4e7d6ca3c2f0a9d5e3a134414c8d3a2744b7c6 +DIST firefox-104.0.2-sr.xpi 586828 BLAKE2B 5398fd1f0836f0ad2e4676847e598c7c927cca1ccf2afef49aee8dc88dc6c5f005b8370acff10e12c62f6f7330f69c4c8c0c5d05aca5fc9c7c5bb73ab25d5d5c SHA512 41c5a081e29045c409e71607316586e32e57ec1deee123e1cd0350af286d4e2695ddda67b88c60a7cca85a6580fa5be2e762670be18d656f2edcd6b183a57f7b +DIST firefox-104.0.2-sv-SE.xpi 552457 BLAKE2B bdac1c06ba7bcd9f8c57137962c99d8cb4034a703a93e1dbf23f8c60de6d9b2e727d2bd4e70c286307bff01ca066553106d3fa90fea420eabea3facc30ef16a6 SHA512 66ff2db0d7c0831d059104bbc59e77baf2fb81ea9423dd37823b56015fbadcd832bed5de1fe8f920b89642cd8269852b8d8b2371b056ccb841d01c53c7d62ab9 +DIST firefox-104.0.2-szl.xpi 512566 BLAKE2B b1a1a7dbccc82d2e3aef0b25d8e54e98633378a8b1e9cb72dfce8cb73bdd1249aea4665e8bce4bf373a670531b83d49df9fda7a148890c55eeff40837d27b4ba SHA512 839961de70bfc74824b9361976a45e7d90e85169184d62dd68cb5a14e39120e8d5491374b61bbc5cbde77700420e07b2e6ff90b00e3f06231a5af72eeeceab9c +DIST firefox-104.0.2-ta.xpi 514626 BLAKE2B 24c84edab7c312d8dde9db6a96216691b3b336a3fd8c66f0a4c28aac6d01183e54e4d1f68154e8da415b29f3190a117b8297df2f7310eaf9df6e7abee7ffbca5 SHA512 e956d0cff374bd2150f2a6790908cc6b53959cb027286b9436560c7c5f722e99ca8f5f467501bb6fe48fa3ed2a84de4a6a26f9a24d8d65e5cdec26f595644e25 +DIST firefox-104.0.2-te.xpi 555351 BLAKE2B 6d0c4cb7f424c9e436f43b1d8a666e1f3567e96cbc6a193430015b5837c47fa6621359f1a2663a36182064b7cd3d19216d3ce14230e9465528102eb9ed745c56 SHA512 bbdcd6b22ad44e15341c14b4e306871fb7baf5a03f481b118452b1e7883116032fc319428dd2f9c2b4e21a1129d2d254d9b6c9ce4e8ca9e495042247e48a552e +DIST firefox-104.0.2-th.xpi 615063 BLAKE2B e0a59897d7a711e50683389dae6ca24ec4f3cf959d6170ecac8d28736cbf25c266a3d7b6f525c8be953d5e757a8554f596e41e43d8aefc0886119ca5f3299b48 SHA512 74e2fb4d02935471a3fa8834ccd17b308185fa6885d3dc96b89ef91f480725ce3f0ed02d497f080ffae26b0bc08a296d83e724ef95c20b4d0c79f2fb31608616 +DIST firefox-104.0.2-tl.xpi 522947 BLAKE2B 5ecbb3dfb7cd90ba0dca4ffc10d91b902eaa5ddb2f8be787dd55e76f57787b2f818a06b0a3306db7729ee56050e4a418b751fdaea1095d40716dc0342dbf6e57 SHA512 47c8e4bf7ba37533c2e847ded560a247030dabcae0c8aecab36f2629baf2e4ddf0312fd3ff67ba626847352c77f5648bd78a319bc920abe912eb62227fde476a +DIST firefox-104.0.2-tr.xpi 565840 BLAKE2B ec7cf17d980d3440b794b8844bb86486b592bf960b0310766046f565204b6a09350972ce7118337c38af451da1b56c61d1a56cbe3898ea24f23db201fd3a57e7 SHA512 bb35b12bb3061468a7962e36dc50d3ad816923547884e806a0885c037cb6ed295b4da3c7883632306284afc384924ab5d8ac2defb10efb79939c50564918d5c8 +DIST firefox-104.0.2-trs.xpi 493325 BLAKE2B 4468010a1636039dc8b145c0e8ab9a85d539d3057122c980fa19bef519e5fd28f9b5ddfd769140afea766f2611a8b2e221c9bcc949e2eb2b588ac0d2d4e460c4 SHA512 9fa625cf809e5b977bdb1ccc5b44a97a9069d0ddd42953a658fb611cf62bf454aef0664863fc8ca740b617b5e3b0192703a665cec25049ffd8a61aa55722822a +DIST firefox-104.0.2-uk.xpi 634724 BLAKE2B 58c27984a0f65ffb9b99b580dcffa1037e317273f40e7350959a41beb4eb2ebdba63bbe0cc7060ff351db5ebf2ff395475087cb2ba6063c4fa42df5f2bd53ebd SHA512 ebf9950f96dddf1ec631043eba76ab068eac495eca4f2f0c9b7841bc784d8c41b7583ffebd0ee2d0daf8dde60675ccfd9e8762f4bfb60e89a8b4f0846f5a4373 +DIST firefox-104.0.2-ur.xpi 561599 BLAKE2B 92b5e4feb21f7b55ce925cea694d807d35a4cb7fb6f2a9f13cada3247b13369e98a37ae650d804dfc7b267df9d2cde48a8b3b270ce50c5bc58871ed1e8ea52f9 SHA512 531b635f002fcbae5536073394cc7db0ee22360be611825c28d41c88dfd85aeb5a5c870e7ddd16da02c46f076c6a401a60817b6ce9caa1615dd50fd8ac443fc2 +DIST firefox-104.0.2-uz.xpi 482135 BLAKE2B eb48023485dcd1784b0b61089e532e8b97a81343ad640e2ee2c124d451857a9d3279e45c6533bfad75299451cb06114a9f28d74727cbaaed34ef12078b2ead4b SHA512 43f1ea76e556e3f3f3ef9e8641add09c6888d88f5852d04e8a9e0ba4f610642cd675b8b90c0ed82134553bb95e6c256bf892b05ff037b3c5ba9c29564a97e391 +DIST firefox-104.0.2-vi.xpi 586736 BLAKE2B a31bd0c4e7c92a0a6db1110c7cd04d38ef4560657eb517f06cea1685f9dd7c12af02d343c1f9ed4399f9ee5caad698e50b4211707a100758fe5e665f39e291d8 SHA512 6f0e0888769c35c635a290cf1bd7f130fdd0db17c891160e07d1c8ad6ecb0d568b5900610d352160fa300691f50aff0d9fc1be47ec5f9c8c2e29f47b03fb3b0a +DIST firefox-104.0.2-xh.xpi 433349 BLAKE2B 86121f6ba9e13baabd0e96217fd8518e8d14b955db8eda0ce06482eb457841038d9723000f3853670c4c5e3a65e6930d7b315c36badf46f124a8599bb1440e3f SHA512 ab33c67e838bf07564189d75102792b121e4428205d62d7fc482441cefea77e5f73162f95f044110955031cdf3de849a245d2904788965f434f79cc21e2f0031 +DIST firefox-104.0.2-zh-CN.xpi 587664 BLAKE2B 0c210fe7c503a579b860ecc328033b3e547a6717a384f1bac9e8483e859e9c8cf07dd40ed9cb7d7c2989097a6850dc2da6ae179ee5e5bf6288e1dd145126eddc SHA512 684ccf3095aacc200440b4b33b91c24a75c08f47fbd1be5704ad9d7ce95aeaa1169032efc0b5b692124047238b41dea617ae22c126a60dc5a788ba8a4acdb353 +DIST firefox-104.0.2-zh-TW.xpi 588467 BLAKE2B 67bbf28ecb6f4a8305c551893fde3e4a8771c47d02928fb06e003c8e6badc1af9bbec131759446c76da571084857c27566e90b5bf99dd6f5d024398b5bc66163 SHA512 8421fd070afd584f933b0912e74cfa9f62ee5c007749bbea44ea0a20ece130570a2450463da136ff9b00bea010872dedf47e21aff51de9e21bf87bbae2f911cf +DIST firefox-104.0.2.source.tar.xz 478270500 BLAKE2B 1a8317a2880fd412449f18868b0ed7b5a757083a7622ec06fb48c01314774e5645527a217e38a98279494f3140d55414bb3fbe3c0731690e383aa5b617607dd5 SHA512 bf0d972add11566f5ef6402a22abd82122945de9fa9aab6ed7bb7e41d0843d41948a6d95c0769b0b704c066c8ff6e3f3bf26fcf288c64cd3b3f09a13d4dd467d diff --git a/www-client/firefox/firefox-104.0.1.ebuild b/www-client/firefox/firefox-104.0.1.ebuild deleted file mode 100644 index a2ea1d4..0000000 --- a/www-client/firefox/firefox-104.0.1.ebuild +++ /dev/null @@ -1,1289 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-104-patches-02j.tar.xz" - -LLVM_MAX_SLOT=15 - -PYTHON_COMPAT=( python3_{8..11} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" -VIRTUALWL_REQUIRED="manual" - -MOZ_ESR= - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ - llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ - virtualwl 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,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" - -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" -IUSE+=" wayland wifi" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate screencast +X" - -REQUIRED_USE="debug? ( !system-av1 ) - pgo? ( lto ) - wayland? ( dbus ) - wifi? ( dbus )" - -# Firefox-only REQUIRED_USE flags -REQUIRED_USE+=" || ( X wayland )" -REQUIRED_USE+=" screencast? ( wayland )" - -BDEPEND="${PYTHON_DEPS} - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.24.3 - net-libs/nodejs - virtual/pkgconfig - virtual/rust - || ( - ( - sys-devel/clang:15 - sys-devel/llvm:15 - clang? ( - =sys-devel/lld-15* - pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) - ) - ) - ( - sys-devel/clang:14 - sys-devel/llvm:14 - clang? ( - =sys-devel/lld-14* - pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) - ) - ) - ( - sys-devel/clang:13 - sys-devel/llvm:13 - clang? ( - =sys-devel/lld-13* - pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) - ) - ) - ) - amd64? ( >=dev-lang/nasm-2.14 ) - x86? ( >=dev-lang/nasm-2.14 ) - pgo? ( - X? ( ${VIRTUALX_DEPEND} ) - !X? ( wayland? ( ${VIRTUALWL_DEPEND} ) ) - ) -" - -COMMON_DEPEND=" - dev-libs/atk - dev-libs/expat - dev-libs/glib:2 - dev-libs/libffi:= - >=dev-libs/nss-3.81 - >=dev-libs/nspr-4.34.1 - media-libs/alsa-lib - media-libs/fontconfig - media-libs/freetype - media-libs/mesa - media-video/ffmpeg - sys-libs/zlib - virtual/freedesktop-icon-theme - x11-libs/cairo - x11-libs/gdk-pixbuf - x11-libs/pango - x11-libs/pixman - dbus? ( - dev-libs/dbus-glib - sys-apps/dbus - ) - jack? ( virtual/jack ) - libproxy? ( net-libs/libproxy ) - selinux? ( sec-policy/selinux-mozilla ) - sndio? ( >=media-sound/sndio-1.8.0-r1 ) - screencast? ( media-video/pipewire:= ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-71.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0: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] - x11-libs/libdrm - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - dev-libs/dbus-glib - net-misc/networkmanager - sys-apps/dbus - ) - ) - X? ( - virtual/opengl - x11-libs/cairo[X] - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - x11-libs/libxcb:= - )" -RDEPEND="${COMMON_DEPEND} - jack? ( virtual/jack ) - openh264? ( media-libs/openh264:*[plugin] ) - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4 - ) - )" -DEPEND="${COMMON_DEPEND} - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - X? ( - x11-libs/libICE - x11-libs/libSM - )" - -S="${WORKDIR}/${PN}-${PV%_*}" - -# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or -# overridden in the enviromnent (advanced hackers only) -if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then - MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) -fi - -llvm_check_deps() { - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( 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+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( son ) -MOZ_LANGS+=( szl ) -MOZ_LANGS+=( ta ) -MOZ_LANGS+=( te ) -MOZ_LANGS+=( tl ) -MOZ_LANGS+=( trs ) -MOZ_LANGS+=( ur ) -MOZ_LANGS+=( xh ) - -mozilla_set_globals() { - # https://bugs.gentoo.org/587334 - local MOZ_TOO_REGIONALIZED_FOR_L10N=( - fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE - ) - - local lang xflag - for lang in "${MOZ_LANGS[@]}" ; do - # en and en_US are handled internally - if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then - continue - fi - - # strip region subtag if $lang is in the list - if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then - xflag=${lang%%-*} - else - xflag=${lang} - fi - - SRC_URI+=" l10n_${xflag/[_@]/-}? (" - SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" - SRC_URI+=" )" - IUSE+=" l10n_${xflag/[_@]/-}" - done -} -mozilla_set_globals - -moz_clear_vendor_checksums() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -ne 1 ]] ; then - die "${FUNCNAME} requires exact one argument" - fi - - einfo "Clearing cargo checksums for ${1} ..." - - sed -i \ - -e 's/\("files":{\)[^}]*/\1/' \ - "${S}"/third_party/rust/${1}/.cargo-checksum.json \ - || die -} - -moz_install_xpi() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local DESTDIR=${1} - shift - - insinto "${DESTDIR}" - - local emid xpi_file xpi_tmp_dir - for xpi_file in "${@}" ; do - emid= - xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") - - # Unpack XPI - unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die - - # Determine extension ID - if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then - emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") - [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" - elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then - emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") - [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" - else - die "failed to determine extension id" - fi - - einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." - newins "${xpi_file}" "${emid}.xpi" - done -} - -mozconfig_add_options_ac() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_add_options_mk() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 2 ]] ; then - die "${FUNCNAME} requires at least two arguments" - fi - - local reason=${1} - shift - - local option - for option in ${@} ; do - echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} - done -} - -mozconfig_use_enable() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_enable "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -mozconfig_use_with() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${#} -lt 1 ]] ; then - die "${FUNCNAME} requires at least one arguments" - fi - - local flag=$(use_with "${@}") - mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Allow access to GPU during PGO run - local ati_cards mesa_cards nvidia_cards render_cards - shopt -s nullglob - - ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if [[ -n "${ati_cards}" ]] ; then - addpredict "${ati_cards}" - fi - - mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') - if [[ -n "${mesa_cards}" ]] ; then - addpredict "${mesa_cards}" - fi - - nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') - if [[ -n "${nvidia_cards}" ]] ; then - addpredict "${nvidia_cards}" - fi - - render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') - if [[ -n "${render_cards}" ]] ; then - addpredict "${render_cards}" - fi - - shopt -u nullglob - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # Make ICU respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py \ - || die "sed failed to set num_cores" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clearing checksums where we have applied patches - moz_clear_vendor_checksums audioipc - moz_clear_vendor_checksums audioipc-client - moz_clear_vendor_checksums audioipc-server - - # 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 && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - AS=llvm-as - CC=${CHOST}-clang - CXX=${CHOST}-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 - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - # Pass the correct toolchain paths through cbindgen - if tc-is-cross-compiler ; then - export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" - fi - - # Set MOZILLA_FIVE_HOME - export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" - - # python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - # Set state path - export MOZBUILD_STATE_PATH="${BUILD_DIR}" - - # Set MOZCONFIG - export MOZCONFIG="${S}/.mozconfig" - - # Initialize MOZCONFIG - mozconfig_add_options_ac '' --enable-application=browser - - # Set Gentoo defaults - export MOZILLA_OFFICIAL=1 - - mozconfig_add_options_ac 'Gentoo default' \ - --allow-addon-sideload \ - --disable-cargo-incremental \ - --disable-crashreporter \ - --disable-gpsd \ - --disable-install-strip \ - --disable-parental-controls \ - --disable-strip \ - --disable-updater \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - mozconfig_add_options_ac '' --enable-rust-simd - fi - - # For future keywording: This is currently (97.0) only supported on: - # amd64, arm, arm64 & x86. - # Might want to flip the logic around if Firefox is to support more arches. - if use ppc64; then - mozconfig_add_options_ac '' --disable-sandbox - else - mozconfig_add_options_ac '' --enable-sandbox - 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-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - fi - - local myaudiobackends="" - use jack && myaudiobackends+="jack," - use sndio && myaudiobackends+="sndio," - use pulseaudio && myaudiobackends+="pulseaudio," - ! use pulseaudio && myaudiobackends+="alsa," - - mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" - - mozconfig_use_enable wifi necko-wifi - - 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 - fi - - if use lto ; then - if use clang ; then - # Upstream only supports lld when using clang - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409 - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # This is upstream's default - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - else - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - else - if is-flag '-g*' ; then - if use clang ; then - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') - else - mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols - fi - else - mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols - fi - - if is-flag '-O0' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 - elif is-flag '-O4' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 - elif is-flag '-O3' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 - elif is-flag '-O1' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 - elif is-flag '-Os' ; then - mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os - else - mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 - fi - fi - - # Debug flag was handled via configure - filter-flags '-g*' - - # Optimization flag was handled via configure - filter-flags '-O*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - if use clang ; then - # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 - # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') - local disable_elf_hack= - if use amd64 ; then - disable_elf_hack=yes - elif use x86 ; then - disable_elf_hack=yes - elif use arm ; then - disable_elf_hack=yes - fi - - if [[ -n ${disable_elf_hack} ]] ; then - mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack - fi - elif tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - if ! use elibc_glibc ; then - mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc - fi - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - if use system-python-libs; then - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" - else - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - fi - - # 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 pgo ; then - if use X; then - local -x GDK_BACKEND=x11 - virtx_cmd=virtx - elif use wayland; then - local -x GDK_BACKEND=wayland - virtx_cmd=virtwl - fi - - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - fi - - ${virtx_cmd} ./mach build --verbose \ - || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - fi - - if ! use gmp-autoupdate ; then - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - einfo "Disabling auto-update for ${plugin} plugin ..." - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" - pref("media.${plugin}.autoupdate", false); - EOF - done - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # Install language packs - local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) - if [[ -n "${langpacks}" ]] ; then - moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" - fi - - # Install geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - local show_doh_information - local show_normandy_information - local show_shortcut_information - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - # New install; Tell user that DoH is disabled by default - show_doh_information=yes - show_normandy_information=yes - show_shortcut_information=no - else - local replacing_version - for replacing_version in ${REPLACING_VERSIONS} ; do - if ver_test "${replacing_version}" -lt 91.0 ; then - # Tell user that we no longer install a shortcut - # per supported display protocol - show_shortcut_information=yes - fi - done - fi - - if [[ -n "${show_doh_information}" ]] ; then - elog - elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" - elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" - elog "DNS traffic to Cloudflare by default is not a good idea and applications" - elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" - elog "(\"Off by choice\") by default." - elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." - fi - - # bug 713782 - if [[ -n "${show_normandy_information}" ]] ; then - elog - elog "Upstream operates a service named Normandy which allows Mozilla to" - elog "push changes for default settings or even install new add-ons remotely." - elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" - elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" - elog "concerns prevail, which is why we have switched off the use of this" - elog "service by default." - elog - elog "To re-enable this service set" - elog - elog " app.normandy.enabled=true" - elog - elog "in about:config." - fi - - if [[ -n "${show_shortcut_information}" ]] ; then - elog - elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" - elog "each supported display protocol. Instead we will only install" - elog "one generic Mozilla ${PN^} shortcut." - elog "If you still want to be able to select between running Mozilla ${PN^}" - elog "on X11 or Wayland, you have to re-create these shortcuts on your own." - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - elog - elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " - elog "useragent checks. To temporarily fix this, enter about:config and modify " - elog "network.http.useragent.forceVersion preference to \"99\"." - elog "Or install an addon to change your useragent." - elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" - elog -} diff --git a/www-client/firefox/firefox-104.0.2.ebuild b/www-client/firefox/firefox-104.0.2.ebuild new file mode 100644 index 0000000..cd7dce6 --- /dev/null +++ b/www-client/firefox/firefox-104.0.2.ebuild @@ -0,0 +1,1293 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-104-patches-02j.tar.xz" + +LLVM_MAX_SLOT=15 + +PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" +VIRTUALWL_REQUIRED="manual" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \ + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \ + virtualwl 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,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast +X" + +REQUIRED_USE="debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +# Firefox-only REQUIRED_USE flags +REQUIRED_USE+=" || ( X wayland )" +REQUIRED_USE+=" screencast? ( wayland )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + !www-client/firefox:esr + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + virtual/rust + || ( + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + =sys-devel/lld-15* + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + ) + ( + sys-devel/clang:14 + sys-devel/llvm:14 + clang? ( + =sys-devel/lld-14* + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] ) + ) + ) + ( + sys-devel/clang:13 + sys-devel/llvm:13 + clang? ( + =sys-devel/lld-13* + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] ) + ) + ) + ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( ${VIRTUALX_DEPEND} ) + !X? ( wayland? ( ${VIRTUALWL_DEPEND} ) ) + ) +" + +COMMON_DEPEND="${FF_ONLY_DEPEND} + dev-libs/atk + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.81 + >=dev-libs/nspr-4.34.1 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-71.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0: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] + x11-libs/libdrm + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] ) + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4 + ) + )" +DEPEND="${COMMON_DEPEND} + pulseaudio? ( + || ( + media-sound/pulseaudio + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + X? ( + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/${PN}-${PV%_*}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang ; then + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( 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+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch + ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clearing checksums where we have applied patches + moz_clear_vendor_checksums audioipc + moz_clear_vendor_checksums audioipc-client + moz_clear_vendor_checksums audioipc-server + + # 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 && ! tc-is-clang ; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + have_switched_compiler=yes + AR=llvm-ar + AS=llvm-as + CC=${CHOST}-clang + CXX=${CHOST}-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 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + if use ppc64; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + 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-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + 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 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld when using clang + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409 + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # This is upstream's default + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + else + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + fi + + # LTO flag was handled via configure + filter-flags '-flto*' + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + else + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc ; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # 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 pgo ; then + if use X; then + local -x GDK_BACKEND=x11 + virtx_cmd=virtx + elif use wayland; then + local -x GDK_BACKEND=wayland + virtx_cmd=virtwl + fi + + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + fi + + ${virtx_cmd} ./mach build --verbose \ + || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + local show_normandy_information + local show_shortcut_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + show_shortcut_information=no + else + local replacing_version + for replacing_version in ${REPLACING_VERSIONS} ; do + if ver_test "${replacing_version}" -lt 91.0 ; then + # Tell user that we no longer install a shortcut + # per supported display protocol + show_shortcut_information=yes + fi + done + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + if [[ -n "${show_shortcut_information}" ]] ; then + elog + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla ${PN^} shortcut." + elog "If you still want to be able to select between running Mozilla ${PN^}" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + elog + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using " + elog "useragent checks. To temporarily fix this, enter about:config and modify " + elog "network.http.useragent.forceVersion preference to \"99\"." + elog "Or install an addon to change your useragent." + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100" + elog +} -- cgit v1.2.3-54-g00ecf