summaryrefslogtreecommitdiff
path: root/www-client/firefox
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-08-30 10:48:18 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-08-30 10:48:18 +0100
commit005a5b259b876973202153b9c5c5e77bea56df6c (patch)
tree62e787239ec670df6ea942997fd18c32f3879774 /www-client/firefox
parent048bd060badd229e3bb596029874760a86d27060 (diff)
gentoo auto-resync : 30:08:2022 - 10:48:18
Diffstat (limited to 'www-client/firefox')
-rw-r--r--www-client/firefox/Manifest99
-rw-r--r--www-client/firefox/firefox-104.0.1.ebuild1278
2 files changed, 1377 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 0470ab001ad1..e95b9193224b 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -204,6 +204,104 @@ DIST firefox-104.0-vi.xpi 586731 BLAKE2B c334569109fff41f076e3b1dd24e81fbf2eb4c2
DIST firefox-104.0-xh.xpi 433345 BLAKE2B a94920e0405787bc4b63569b6ddf350f0544a92c40d23405d0cfbcef2452df42312fa413036a10785c2c8b80db343c1c7f00aa18eb993c3d989af151a85b79d6 SHA512 cf9196740c88fba30dcaa10185a6f3cb31bf1c7facafd9545867c0575d4a2c02bb95b7262c59f4441c613c5782030d907fea140955b11d42724e2acd4f94eb81
DIST firefox-104.0-zh-CN.xpi 587666 BLAKE2B b42aceb94ab211c6a15bb94d240879df68a5170631b109445c5d7587524fa86d8011293010a41e5b6d11a81d4e95421550a76bb7fbe4af402bcf10d5e02cec4d SHA512 90f04294ee909281f7b7ef3e54c5abf9a280d58c02708fe808537abbc84e8eb18f7682545e4a191c04c4f50363aaff87064c56463104fa79358bbcebf99ab6ce
DIST firefox-104.0-zh-TW.xpi 588453 BLAKE2B 800d28e22f55ad5920788642522ad1753cc96a6e0fab0d34d49d66b09591a7c44db0c66dfb6f0d894823e865a6b15201c1111f41bbb9de8f263a36a002238583 SHA512 98978ac40a549f41cbf8a68002c0b2c2d2054515debddb102683cfda0b95851a3e943714e408ee294d7de97bacab89f9aed61a0cf06ceb3b251755c1b426a6cd
+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.source.tar.xz 486299816 BLAKE2B 9de094ced1a5cbb6a5db2ec78a9a762adecbe95295a1184a5ee018350354d67d2a861a89365cd51cc07f017cd8f7a029e727577325fa63c8925d11238b18cfa6 SHA512 8778650ffa3c2d18802c348e27789f00cff143c7ca0ae01b1bcd050b6942c149db25696b48f3c702fbde901c15fcae976ac731a456f641637cae3eb56d0077d3
DIST firefox-91.13.0esr-ach.xpi 453223 BLAKE2B 88b43c79620d3e0263f7e251a41c8ee88f10798982d8a0db3d8d545b83aa4e3da75140f5d9bf879f2229ea831668344cefddf6c67ee45f3169c7d854cf53a90d SHA512 795ca4fced227f29861de8fe2e93acb339d41de8b09c941244f4b62c8e7835971ec4366bcb3a35aaa75e779087248df459364c262f2fd7b294a6d7176b74e1ef
DIST firefox-91.13.0esr-af.xpi 426921 BLAKE2B c0a89908f46ba666c9d3c9e916636e5aeff7564a0f2132213aa443c5dfed474006dd65dc8f47d0e0fa30d5435c810937da98536b3408dae62c428a5f1f4bbe78 SHA512 8c8a40cb2117479c08c13077eeffcd3473b4e2fd9164269da58a68b3c0e77c339184a2edca79ae80480f2b7e41c42e598a9350f01061b424cef1aab35a7480bd
@@ -305,6 +403,7 @@ DIST firefox-91.13.0esr-zh-TW.xpi 576229 BLAKE2B 44189d585fa0725a7aa1db911acc1d2
DIST firefox-91.13.0esr.source.tar.xz 380053584 BLAKE2B 75d0daa512b3a2d41974a0169778be9ef19a100de2bd382add9831860ca93976585a41e760b6a7ec753268fb78f9f61049780fa7961834248bc8157cfdcc2827 SHA512 38b4cc52de21e76d6061e6ba175e1cbfd888a16070aa951f5a44283f2db9d7e94f2504621f0da78feac6e71491a6d0e7038f63dd0ae112dcad700eb02e9aa516
DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c
EBUILD firefox-102.2.0.ebuild 36378 BLAKE2B ad6678baa93bc17945baa3c1a4ea68e4d8a2d7024610a22f96290335331ae0c61523c1e94bd9fe7093a52f8564b458288983b4f09684c061eaf99ead5f52debc SHA512 b98c642a1f8fa9f927babc1ef52c162a859aba88dc63e475d26d5b46536f651e300258ee72f25b770b17be747ef1a5b050e1d72a82924fe9ad1b20221bd6f246
+EBUILD firefox-104.0.1.ebuild 36861 BLAKE2B daa636ff61415754cd6927143b070414e501a54e48d141ed3710e97f68e828a9b2578f1130aaccc2fd48a54688f2b4432dd82bfa27a83db240fe9d924a6f36a7 SHA512 bd6d882552ecfd12d3d1a9dbc544d7523ff86a6d6c6a4ef1b82a3058bf25768f0c78a39c547e085366d9c0a3126bd971da8b070cf92be9233c1af0c5ca7b1e16
EBUILD firefox-104.0.ebuild 36791 BLAKE2B 0797f76a3eb4f058845b38e18f282116e955ee6c37b80baaaffb39d750960bc7dbeed19dbbcbcd44549fc5403ef8559220bf7fb38bdf0347fbb77714edf33fb8 SHA512 adcd4100b2d829a610d1c3c4d5fe6bf979769c86daaaa8b38bbe2130eea3637e6158a4a627d97dd1989bc5b7be48db20f00beb86399b9026f333e8d7a60eb1a1
EBUILD firefox-91.13.0.ebuild 35569 BLAKE2B 19154ecc4e0a2583554ced081e5c00c844926b5ec520aced40ca69aac814848804e0931414916f34822abcef11372ceb5efc3a20e4277ad7cc62ff0a42535503 SHA512 e22cc0a89e6d1fb8269720f9cfef0f305834786cb3e69ce4e122c681d3c1ea138deb1793bcb80eba029d981c819022709a2946d2a55ca2ddeb5917eff7eaa227
MISC metadata.xml 2275 BLAKE2B 8c145b0b5014acda00fe3839889f7805aa78b65a18eb59135576e861e0882c9966a3f91adb10a7b5afc0ee80548da9f0d7b8a0edd6ab88d9cddbcaef6f9619dd SHA512 187618848f28f201e8a554e938a37b21c5d16619e76ca7cc53c227f9f1f76b9c9c46781b3b0c31bc78bc0e52865e95e56a3741a0e623cccf104eb936b4f22beb
diff --git a/www-client/firefox/firefox-104.0.1.ebuild b/www-client/firefox/firefox-104.0.1.ebuild
new file mode 100644
index 000000000000..24cea78da335
--- /dev/null
+++ b/www-client/firefox/firefox-104.0.1.ebuild
@@ -0,0 +1,1278 @@
+# 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=14
+
+PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+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 \
+ 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 )
+ wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" || ( X wayland )"
+REQUIRED_USE+=" pgo? ( X )"
+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: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 )"
+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
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ if ! use X && use wayland; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose \
+ || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ 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
+}