Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/firefox/
Date: Tue, 30 Aug 2022 08:42:29
Message-Id: 1661848943.a1e0cbd398c140b002cb90e1613e709f9e8a6300.juippis@gentoo
1 commit: a1e0cbd398c140b002cb90e1613e709f9e8a6300
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 30 08:42:07 2022 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Tue Aug 30 08:42:23 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1e0cbd3
7
8 www-client/firefox: add 104.0.1
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 www-client/firefox/Manifest | 98 +++
13 www-client/firefox/firefox-104.0.1.ebuild | 1278 +++++++++++++++++++++++++++++
14 2 files changed, 1376 insertions(+)
15
16 diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
17 index e0a5ad566028..b9a5f4a76347 100644
18 --- a/www-client/firefox/Manifest
19 +++ b/www-client/firefox/Manifest
20 @@ -195,6 +195,104 @@ DIST firefox-104.0-vi.xpi 586731 BLAKE2B c334569109fff41f076e3b1dd24e81fbf2eb4c2
21 DIST firefox-104.0-xh.xpi 433345 BLAKE2B a94920e0405787bc4b63569b6ddf350f0544a92c40d23405d0cfbcef2452df42312fa413036a10785c2c8b80db343c1c7f00aa18eb993c3d989af151a85b79d6 SHA512 cf9196740c88fba30dcaa10185a6f3cb31bf1c7facafd9545867c0575d4a2c02bb95b7262c59f4441c613c5782030d907fea140955b11d42724e2acd4f94eb81
22 DIST firefox-104.0-zh-CN.xpi 587666 BLAKE2B b42aceb94ab211c6a15bb94d240879df68a5170631b109445c5d7587524fa86d8011293010a41e5b6d11a81d4e95421550a76bb7fbe4af402bcf10d5e02cec4d SHA512 90f04294ee909281f7b7ef3e54c5abf9a280d58c02708fe808537abbc84e8eb18f7682545e4a191c04c4f50363aaff87064c56463104fa79358bbcebf99ab6ce
23 DIST firefox-104.0-zh-TW.xpi 588453 BLAKE2B 800d28e22f55ad5920788642522ad1753cc96a6e0fab0d34d49d66b09591a7c44db0c66dfb6f0d894823e865a6b15201c1111f41bbb9de8f263a36a002238583 SHA512 98978ac40a549f41cbf8a68002c0b2c2d2054515debddb102683cfda0b95851a3e943714e408ee294d7de97bacab89f9aed61a0cf06ceb3b251755c1b426a6cd
24 +DIST firefox-104.0.1-ach.xpi 458333 BLAKE2B 320f5eddbd989af79ed13489c21f9a4c741cd57759192d198cb6e8f5fb7d508396ccd75b7d9ef8b7f3ddeb60d89fcb022f13dc8c44cbac3f45376e88ff86dfd9 SHA512 d3d15e6abfe3fd6c60513675fa72641b26b00c4cffee09ed8577d8e0088e71c259ced7fe846915a54680d526b9f2f59af9f8fde2f7ca2ef130977a944e90e6d5
25 +DIST firefox-104.0.1-af.xpi 423663 BLAKE2B 7189db7e2abd3a7bfaf9e468e70916b5e3cc8ff5fef7003c5892fa972bae50bce9330ef6f2eaeff5deff6e39e45578d7998460706121d97b9b086990bf31dbaa SHA512 85862ccd579b067186c5187ccf5a8c3d4d85d32a298a43eebc61e772b07bd247587550d48087e28831981d419e7e8de2e3dbd279e06aeac119076dabde2bf50d
26 +DIST firefox-104.0.1-an.xpi 502553 BLAKE2B 1f880fd8e5d9b288bee70ff5a438e0fa7d8b88cd39cfd79c714e0ca33c88968d7c753676ca05ae2d014b3aaa39a6287e9b99bd4079d15ebf640467cd7144bd71 SHA512 db10cbb94376c5c2fa03f4daf6876619167b7164ee33fe5d4cecc2212f98189094253699d0934393e7c6092cc38ddef00c6da9e59366af98c09bc5f766c0cb38
27 +DIST firefox-104.0.1-ar.xpi 565450 BLAKE2B f3d0721349ac8c8e3cbce7b990d5a021a1d9e8641e45ae56db70b9f0c19ce6ff1becd2152f2372a48809ae3d73bd0b98cf061af3e5f1baa7968e407d147f50ee SHA512 9c9238877f7867d905cbab39eae35679c3639c5499f31a4aac8ea16d27e4a0d9488ea4b74277859713ddec8d3e9f606d8216ddf827f4de996b64218385285fcd
28 +DIST firefox-104.0.1-ast.xpi 498360 BLAKE2B ed6b2546b2516963109b2aa96562a60f20d0691fe5618b0a37c1e749bb20bc8e5f5bbd331755da324196c9c8d172d3ae026902c1726b035d0347cc4ae9b3b49a SHA512 efe9db4c9e2330fe69e057b1fa5ab6b33a71099a9164da4a80059e5ddcc86f66da5e8e7b51abb7f12d694051f2b8ec1819816988046a34484ac8c7c4062da24f
29 +DIST firefox-104.0.1-az.xpi 489599 BLAKE2B 2c9f7aab20532b5763ef75173c049d728988ea581d8c7172d29d0130516abc0587af6ef11961589e455a8591a7df8951b9736983007f9fbba181ac931d18e4ee SHA512 193a97a744c5a6d535b3e64c6944795ea120376e5f43d11bfdc19719edbe69328b99305163edc3a6d3522498aa219b2250f6d9391610c2851ff5095ffcf76f3d
30 +DIST firefox-104.0.1-be.xpi 637261 BLAKE2B 28602b084e2514addd326173d0f131fe495c6f0ed1bbd791a9dcb55afb510f8a7f145197da850cf365b295eace9a985bd7d53eb3359253c2112c3f44cae74627 SHA512 a77ec7aeca7186d8203a9abd63a3b883bec9b85c7b0ad472b699f5381637da98ecf7c04777ec94f265cfac32c2b8ac90de5d3f91dc0e5f7c82bb9f15b3916350
31 +DIST firefox-104.0.1-bg.xpi 581960 BLAKE2B ad424607630b258fc40a602ac7fb67a1752b9e5f24a37966d4751fb47c9598afe59428cb4a382a26114c8c5c0ca4ae45cd071a14855aa468112f2a495fd327d4 SHA512 b58c5f2ebaec1ec74e5916e5748e07c894e501089e97bc0410ca0308ad94230b06d50f5596f46071d3f3a7bf376abb6820ee4acb3e204abdc8b7aacd293a9e45
32 +DIST firefox-104.0.1-bn.xpi 580168 BLAKE2B 70085881710999e101ab70c8f5f5c550302c6f9d2191b77fbaa95b9996e8e9644a1f29438fb3919a592766a3b32a63cdbd1794046d4c49778919006a36741bc4 SHA512 dc09f9ca18d07c1dcde89f96602c65db00b0c3f3e081b365cc645bda592e2bcc191a059a4c1c5bedb236d93c66ccd1c9d05f25dbcb9990834530c67b755267c0
33 +DIST firefox-104.0.1-br.xpi 535103 BLAKE2B 74a271840353b63a1455b219b3d671fc94410ca32b16d471dc959926fbf70117410a23e400c171a0758170c76d4010406677bdfba1eee0a1e23cda939911026b SHA512 74f72f8857ccadfe98f6cd9257fa2acc0aba8cef4f97de6f6f04ff974afc13ba34b0ec4a940d3c570bf85e5df1145e9a9d8e95dc7ba441c535d4fb996d914422
34 +DIST firefox-104.0.1-bs.xpi 466917 BLAKE2B 03fd70be572184681f0532980c8d4e4fedc0e561367dec6b720717f7eeca76747f6b9fc1c1f0c136f5dbba7d060c99c5f620da3384b9c5a6a04e72d5a3b259a6 SHA512 eaeeba84813f274bfb6ee3ae88510c929b026f0ddfa8c4604c0cad7186ba5a46a7ad1e2e60941a4393f68f94895c94f51bcaba4bb7630373cc4b8bd19f433dfe
35 +DIST firefox-104.0.1-ca-valencia.xpi 541638 BLAKE2B a87e989da6ef3bbd8644c5ef138bf65884e1268c50c76deb187556822585de2c321446303e9e3b671ff7de80b9098b8eb95da54ecac7004b5492ceefab590fa9 SHA512 d5a22012c47db333f0e243bcf73c9d262b1d26d0c2a151df9c5dd84cc7e2a4eeea08094ad45bccb9b70847adba5b139209e619624039815b89e9cfdf114bf7cb
36 +DIST firefox-104.0.1-ca.xpi 538216 BLAKE2B 41e671f669f979f8ab752d5657d794782fdc70b7328153692b916127058a73a0f116d211d57491eed0c119f5c33c6743915117a04c6fede9953b9619bcde6ba6 SHA512 7899003cb120f7d7fc6931df87944aa3ddbac3f8a4c54c3c0f52e3f88156b08d9834e5586d0bbc36307b9d2622ebba644c778731dc8b98e1e54b8ba242dea918
37 +DIST firefox-104.0.1-cak.xpi 555059 BLAKE2B 457a0424ab2e3a45b329e2a309221865c09e3992cbf90c9a65747fdf52102f12c0ec4d0b9e176c646532cc4710d318bcba2f5aca597684447d1214e32fea5ea6 SHA512 4a82a7dc838b228fd725263e9b20d0ad58fc33d6eb66baa98236d2af2d737a4425a36b8fab40f69b7f78dd2bd65e9a98a29ae3da3406647d9596847129fdfe37
38 +DIST firefox-104.0.1-cs.xpi 575360 BLAKE2B f96cbeb3d607b88522c1f2984b2916a77528942a29ca1b41d0768c53e13e16ba94314df57b66dafae6ab4ae143b4ddfeb7b53d1875742b048ca805d85d7c5459 SHA512 305fb425d408f246f9de585342b820493d6039022f43aa877329c3c78c8517d9a2b876a4389e8251be206d86011d4bf9c387c3c8a1cc235769f516dd905514ec
39 +DIST firefox-104.0.1-cy.xpi 551513 BLAKE2B 52b3093c905c70fdca213974c1ffa4e7f5e74815a1731659ea1ff795e83f1b11444444b2d30e28e874dfb986ec3a9296303625378bbe51cbc143e9f7de488bc2 SHA512 ee411e89685a332b35eff661e4f653781ea463b7e3eaa4a3c704ca0f6ab4f86d1b5b2c1bc1501b6b2e7bf0191743d2da9091a7b1cfd758bd94c386a1aba387b0
40 +DIST firefox-104.0.1-da.xpi 538914 BLAKE2B 5ad447d649d11ebd463a3d99300faa3dd01ac3d271ab0004b16e92051f75791d2cbc08f56e1d9a649a33d17bb8d4a5b073eb4f528e3bd7095bdba3a9002e4d66 SHA512 f1ac7d480f770719e734f02d7d4e8c0bcca4c501e1d59ee82367d046a92dfa0b9dd70b15247a479b64b32f759a786e01cc4c1865ad44c3d5611ce87d6086484c
41 +DIST firefox-104.0.1-de.xpi 565799 BLAKE2B a6af985396a74a1ed44a12c4483a4107551be5704b47a89eb28d844f820e54f7513e953f1389cf3e7a1aa64ed654fb99ee871b738a3caecd4e3c72544169dbd3 SHA512 8ab26082c1cd5cb875604179236b257c1671f1a296f9614704e3c27063a89964c19ba9048069875f14410bf4c3d53ecece2c32e5147025cbffef4a1986fcbcdb
42 +DIST firefox-104.0.1-dsb.xpi 579596 BLAKE2B 3b568aaeb22145c2fdee7d8f124acf00b08989573c5155ff56cec467d1480f843f41ff41ab4e1cf553f19c3618edc6d7fdf4e37bd5afda29b49b810dbb0a4d62 SHA512 087b5135f66002c903cf7df0e130e8325d99041e221d1acfb431bf8fdacb0c1e09dac100e7fab54341fd074b46927e8e3f6158894da3c79df11aed6449ce9d27
43 +DIST firefox-104.0.1-el.xpi 650587 BLAKE2B 7e7875f95b0db1a7d77f40e7dc03eb63c1e903af8a78d9f5c15bc251f13212062585e3ff9eba5286f09609f0447348bf72814d09e4f3faf566221b49c93c5293 SHA512 9a7ddf615b03a3269f09e2cfd5a1d5c72eba8f662f2900eb8e398d7ff9ee9a4ecdc93527e62a5c625185531734289669a978acf2d24ff466dc08d49dbf177cb2
44 +DIST firefox-104.0.1-en-CA.xpi 517599 BLAKE2B d146b15f0efbe8079d1475655fde0be1d1cc99be9153bb2971d51ab1fff9a88a364014d2a6b157df52c46321d21466fa70ebdce25251c49a36b0f71871fc5321 SHA512 2432aeb2408c9c8c0f740314d7b8e46e89d712330f82226244a8ce190ee5adfb71a875d3971bd34774f2b44122f32933f03f38ec6e3bb08c543b92d43379e9eb
45 +DIST firefox-104.0.1-en-GB.xpi 523094 BLAKE2B 06025d54f18ec2364f5719606e6e9b62cbeeee1bac63c95ea77c62e618d376680dc232834f98f8e2399a14e765a33797e4f9acb01ce4565b59ddd50cd724ab65 SHA512 c086f76ecc2649763bfa142dd61b0337b3513cd3e9bc557db9fedbc1ca196bceaae5bafd2ec3a9b53daaec0bddac7cfd86e1c81ff2a5a2bf9a14e5bc605a4ff6
46 +DIST firefox-104.0.1-eo.xpi 549731 BLAKE2B 8216e3727f4a96016f960b593f66990e721e8966c2ff0a48323c794ed43cff3a0de5164d568e2cfae13311e3d9effaca014e3028cb8195bf5b5246128346f095 SHA512 6d728ff229f8ba3af9305eb18cb6fbf61a6155580e7980cb8f3c7eae730b036ee83d0b0f2f721a54d220df05d1f7536d8f8d4bb8292c3fe998e822c5ef55963a
47 +DIST firefox-104.0.1-es-AR.xpi 560345 BLAKE2B 43aafc1a689a2baa7c3e473caab683752e87046375bb45f9610f8bcf707feae843914abf586aeba659060aa79dc8e20189d8a5d2491e1a7f78daf5875b4ef2ed SHA512 98fc9f49a7628b661dc39b1e9f1847242f2bc84ac86c9c9575692f5dcbd412872f06d5473709d0b0b1fcbb909649f6806f2cc32c95a42f8b224f78413e50490f
48 +DIST firefox-104.0.1-es-CL.xpi 558252 BLAKE2B 1fcd7a66f8d474ba7d0aba90d2bedba1af42a3e0b6c67d87c0d34d4ba51539012772806dffc584e63d0ed8817695317129206c5282a0bc4096d025fff87cd6b1 SHA512 5e39eac0999a52281315190d4063849c6fce1a2d6ba8ecd87b70425d32531ea2d288376ec42467d75ffc00fe92b956279bdc00fe0c7cec98150edfa66d9cb6c1
49 +DIST firefox-104.0.1-es-ES.xpi 544265 BLAKE2B ba759c10bfd500944b40ca8642561dafcaf38b092356681d140533965d076ab359c2bd1f000b6cc2987033eedf56c3af3be930c59fcefdbe29c333550c7471f3 SHA512 1345991e866de3715361d5dffe81f22b8310b04eeae939c695672e1fc9b1ddf39d241d00a3c3305a2838601474af3ae70b6a373e556ec75266bfa2d317825e75
50 +DIST firefox-104.0.1-es-MX.xpi 563456 BLAKE2B af7c8c0796b95de85d9991f43fd8d5bd7a36c4fef341f2629bf2e9e5358aac0378b33f8df3321c684282c3a197c88621d11751d5e5d76949b349ad146a4b55e4 SHA512 7801d10eefaebbd94c4db66abe32771451e43f1a5cbd2c41f71e2612cd64bb414b27f766e22758078d1cfe8370d0f469734791d48c194c37d9576f0e7893d9b6
51 +DIST firefox-104.0.1-et.xpi 535023 BLAKE2B 79692a1f352378a6957c6521399d8da177b00e771417123af72576b1443d6b32ec6f3eaa816adea8113739d58b0f711f3fb075677a197ce5c03f5ff26e762430 SHA512 e6e8819e697adb9792e6452e56513ef29532b94419035285320d18b432c28462911a7eb0905f3d622837a67956621f27ae65337a0f854f2bb35209a0a6809ac1
52 +DIST firefox-104.0.1-eu.xpi 544752 BLAKE2B 12dfcf3f57e8c8a65f969e4acad4e00ac55befb7cd3093d6e7323f20fa19606294667492db39030a91668f8f46632db1a40681c5b6c2014b7afcf4414d1cf7b6 SHA512 37037830a9a26e2e2e909ad696bdd4df86d40e6256fa3e46722f4892978b2140fb4b638406af5e64040be9f7daee8db09c05205c22e80fb20651bfffd22aba00
53 +DIST firefox-104.0.1-fa.xpi 565979 BLAKE2B 3246ed242341d162c92333fca8a271754357f0203b7e13fae63cacf986dd7f3d16458d1e90c584dea0d845f64b42cde19213375ece04a01f73588e3c167c891f SHA512 806dfece5c52e73e9d484e84c0d3818dc5d3ec0306b084b68a3014b80c7b1dbacd49877833485fd60646422828b66120561f11150b11eceb7f70a21f7d15143b
54 +DIST firefox-104.0.1-ff.xpi 476470 BLAKE2B db3680042d01a9fd3eca27786a87f8286a050c006622d64b7bc1762d380b1510e4b193c9a9b610de1f5c9f19b3f04957a67a5f9e6b7ad5f60ba696c56b1eaffb SHA512 efb75fb4f636f1d21990f5ddc69b052de99ebe4e5f2fa7b00461c246abef84099cb13696c3807432aa9d23de2b5f252dc76dccd707dd3f580cc5e3e6d1f9bd8d
55 +DIST firefox-104.0.1-fi.xpi 542881 BLAKE2B 23de693e12e169e1a617fcb545bc6598a15a6eda8addaca1b4f39f0daf775b97e2928fede309f63913a8b9e69c33538aa35b25287ce53eb26fd6046540df2880 SHA512 ece442ae20e5aad145e6c476c0f7a752b6073b0b0043d85b69b151e3bdc051ea2fc2078e6e3aeed6af7cf623bc1d2ab91441f115cfecae81218237dce3c472d9
56 +DIST firefox-104.0.1-fr.xpi 569002 BLAKE2B 1b7c605381a6e2d2fd21dcb25c8a9b8d76cf0bb8bbe6956b6e8311de81a5ca864dcae927fcbd0b9939cd86ac5aeddbbc0ec53f798aabf7c458a80f4f450c4386 SHA512 dfbe08e96bd8c962e681a3d74a2363d7c08b78d1c1258efa989f96b1352b8eafaff1bb2c535aec42104899771e296af6e1e8a96ee30301f5f8e27bdf282077f1
57 +DIST firefox-104.0.1-fy-NL.xpi 550634 BLAKE2B bc32d7a0078c86e1e93716ab8f9734ce604a600a1acd3f90f72282b61085742cadad1eae4f26b46806ab0dd2cec67d82f9bded02d071b4d14332132425b1ab4e SHA512 4a4c8ff19b0d163141e80ab8a0c1b2a43b824f239658019b488661d5952c94b80d27e70622422c40af231d7000658568dc396ba306d638b3c0a4183423bc02f2
58 +DIST firefox-104.0.1-ga-IE.xpi 475922 BLAKE2B ecd994531e81e70dba24af52f233ab5f281962624bc08b523365ec38cc1533ff8a8c92e49e475fb8eee01e76c4b66d228e78b3288ca63bdf8f36fa1ee0203d20 SHA512 1339a2b77b5da35aa9e57ec6b6d88c0a3ed9922285d5e70ef1439358bd91c5b708dd6200ef8c063cb133c6ef2a82c3b1f44a2e62020a919c6d46a21c9cf754e3
59 +DIST firefox-104.0.1-gd.xpi 547855 BLAKE2B bb9fa8a86211a52befdc3647c3e02bdf5fac89455fa1519434bb0841695dac552546ea3ed89745de36e8b8bac68eee218b99bab0186de532068b8686c5f93711 SHA512 c62bbdd25b1cef5280b5a225ff180335cc3102d47fcab2ce15e154091596e330faee106f8da7ddaaa92d5ee20db607fb64eaddeaba5c78d4ed1c00d39caaaa78
60 +DIST firefox-104.0.1-gl.xpi 543918 BLAKE2B 2b0c3de744717276c63ecb8e6f4e0216ddc539f82a92ea7035f13fe1d2b61f907178fdd998ae78587eb4de0fda7d8c7db28f1e364ff44b0484599949f1d491d0 SHA512 65e2eae37ed2b8dc5eb2fcbdc34f19647900c19dc0e372d4abb9809aef4dc6e61c67da6659c1429abbf4c3f1b06b18f35c041c05ce56200cbd985d6da1e25f4b
61 +DIST firefox-104.0.1-gn.xpi 570936 BLAKE2B 012f58a79760e33c46800549aea884f63f122d63cd49f3ffc68582d5b908d145181d3093c677f1c5c57853b0ee9e5ed75716fd7dc2dfe6052d6ccecddfd74482 SHA512 ebf7dd6a42ed430fc387ec16dca045016239826f2b2a1c06c59100d2857607132267d7c48d484ebbcae9df056883101d0c04568c1c567e3f2d4516172fed6c42
62 +DIST firefox-104.0.1-gu-IN.xpi 531090 BLAKE2B 371b3f3ae225543bc6f4970785bc89e3eb35b45f4b64e1b19fcac557561476257e2892f11bd4ccd74da0fe2c624c9ce7d2f490966c1f23a2fe9decaca0375f10 SHA512 008af3d10c54d1e1a4c8e52ae247b6dc536a81bcae08266f3dd0f12573279f611bfe119bbc4efe0729ee2006e5294be7a0b4cad22ce3680da9bf0c2deeeada07
63 +DIST firefox-104.0.1-he.xpi 568685 BLAKE2B 5a747b5ab63235fe555bc8e516a45a5a953f026f78ea5301868ad19560b779d7d3ee0106883dc4deeb5cc8f85b052ee9eced9c2d4b86bce8b8978aee04fc9043 SHA512 8f176c83eaede5c178521855a1f29a1c972a9366c63542688fda2bd2c0ceb92a9234e9b1d17be476d28c6928c19fe675cea99246b78059fedc1a86d2474b28ce
64 +DIST firefox-104.0.1-hi-IN.xpi 561057 BLAKE2B 534d99648195714cf41099d9479c685365e74dee516ffaf678c550a8db05a98a41b59144d742da0f4e29f9ecff258a6eed8378e87444d805570c9af7668964c5 SHA512 ad7435615e7f365850db9a8f7c9bfedfc3568e3c1644522c4616f1937d77cbde6e8120cde17d01f95b42ed9e5d2fd42f7235118a28d195b89fe332e30ddda65c
65 +DIST firefox-104.0.1-hr.xpi 534658 BLAKE2B a42c1706c687700c5de00a22f6428fc8a044735f0542a900eeaba7198448c1322de19594c8176958aa4ef770dda9d2f6dd48a189ef2bb7af1f525b7c591fcb17 SHA512 e9982e73d7ee41cc5218cc02f04b369ef1967b6bfdbb60447f2f7f44bae8a85a62fc851b509dbfe00d991b25e2c1575e65bc69e0cff1db80637e84e51647bd57
66 +DIST firefox-104.0.1-hsb.xpi 575814 BLAKE2B 973e5329fc789700b9c5e2144f7f2ec26864ac6349e5939c79833bd7922183a1b788551a1280fa1bac69c0f4d9b5f17543dac4455437f8de83841398b6e8c50a SHA512 ee76006209186b9713582466066f39f80d52363795752f290ec837bc48e2e2aaa6c120cdcda6f753c54bfcef349bfed3d182d85a38210e0d36b5c2d07a30a065
67 +DIST firefox-104.0.1-hu.xpi 579190 BLAKE2B a9682eeb079a9f788c27d80caab2f1068b4a0cd44459aae6a11934532dc0b8f15477dc91717ba4e32ba8af127d9a73370ea977d7ed99bb37c8ae0a1542cd2779 SHA512 38d61848c77ccb57c953fd12d29048e9c99f02b0269dcba3016e705f39f169db7f87885a1f1cc0221d225ee678f508caa5b4d192f8a1ce22b97d78c64423812a
68 +DIST firefox-104.0.1-hy-AM.xpi 586073 BLAKE2B f31aec6bd252566082612308102ff48bd554480bab69c1f75cc19c976ea02f7700b9d7273d8c2e49e7b030a4625f2477c0926ab937ed27c61489a8faffb0a9ed SHA512 11e2dd01bff999965a0051f49101aa3fd21373559689c2a9e977d21c807c618cdf72d3faa978c4ef10cce89101f703de48e817d8c036815d5bfed87c39d89923
69 +DIST firefox-104.0.1-ia.xpi 545105 BLAKE2B a6460fcc17e74d42f036595d85f453f76be7e117b96e5cb9a4dd45b291b0014f6762cd7debbab042352da3287bd9e3bbb5d6c960b610e38277861a4b8b62f81e SHA512 704c9e780f3655f602d0aaaf38c6407f61a32929dbd375a6a43a19db05964a883f54312b82a70f06f48cfdbe28fc22a415e473ddf9f614d2ba64d956c5c8050e
70 +DIST firefox-104.0.1-id.xpi 541017 BLAKE2B 156ab808962ae78f64f418c1eea3a3e7b5dd5deb982d345775e1f5141a5b1ce33e6de4f6b5def472fee5e17ae1058eb8f3b747957b1528f80565629a29716e58 SHA512 a03d3575879605dbe538013bdcacb8e1aa54019ccadc919188dd29ef3ddc10c2acd27933e2f398d2d12dda4883e29b553cb385d324c6c65f906fca40b7e7bc96
71 +DIST firefox-104.0.1-is.xpi 549338 BLAKE2B e7e6b8bf2a59e3d90e03b7fa7fbc9668477728564031f3d31e5e7f2540f422c4eeb5249030f8819b255a0928cd769c30aa268f6da28e7cc02a36dba071366a23 SHA512 b0f4a4971e9e289f8033c6848ac310ed4f3fef5cc9403b55ffd2fc6f11071ca70ad43e2532a37fb6910d9d0c8b53d8cbc4c290f99afead5c81cd25453c51beb4
72 +DIST firefox-104.0.1-it.xpi 462407 BLAKE2B d4a153e255fcd86fddc5539134aea823c3934657bd67d90b188f4bc6505001155567ef7ede223bfc724b875f047d33d4be17ac28342e490e349506b6feb90aab SHA512 a8627c339036faa5fd08c59c975f65e047f2dd2370d5b75f86ed503dbf8b5f6e308883c1165c79238570aa3d8c8cfb1521fc4e84962ea91f2aab893314a73e1f
73 +DIST firefox-104.0.1-ja.xpi 583518 BLAKE2B 4603deefbea192bb5c1d6122bc257065b8021eb153b8297c35d78de6231cf47906f15b7954e78e91b32d98f38b79b6958ebde97b7b7fbe8b6368891bdf86ac39 SHA512 b1aaabd92b837ef31dd73410e2d137347b950374fd024eb5b9225ed6e8b41b3200cf70fa215aec616cb14b1ccac86e5fa4edf853294e6cd3f6e06258457b7b08
74 +DIST firefox-104.0.1-ka.xpi 605059 BLAKE2B f5a2a8e3d51233ffb8ffa9ec15c0682d538cd31f900f57213f03b358653184a5ca11a59ddaa0055799c7d125d935358da51a24ae00e52a0b9ed0fe5bf5a20b86 SHA512 6f103e483a3e07560520bcec5ca0d282e9371b3c49d7ccc480d4456f29d82535167d2384ffebc984c0de45b118ca9611c9cdff65da63f44628ec29f0a492cd7c
75 +DIST firefox-104.0.1-kab.xpi 564779 BLAKE2B b896c4994441818a791335f153e462959bf97966fe16bb7eabd0635e402bf2ce6e5603cc000b19b5b6ffa6c1fd34d1e4109811c396e9f98e65fb46e6e3de7462 SHA512 17c9912b761e221ab8eee3dd3ca610bf60b87832805bddfbb65fbfdf093e9b35cbc05691b4eb950ab1de71dcf979a00c286aefe545ee735ee6c59ad99ad489d3
76 +DIST firefox-104.0.1-kk.xpi 624339 BLAKE2B 40dda70960add2deb085aeb7e1865a6c65c0b532a55369f333fda20d1792dc914cc5e5d17d59bf01971972042b0d9c7d8b7e92d00107defa859de7df3a9855da SHA512 00c2dbc8c26749627546403fb7cfdae78d651b1c7725f07dcc29250f765101cef0a6c164404ac577779f4d56997a759abc56ab62af7c25e876fb241853ef684f
77 +DIST firefox-104.0.1-km.xpi 535687 BLAKE2B 3057867369a3ee58eebcafde5d3cf9c1c103240b86ed4d6af1eb07472fd06613175906bbdb4732a0d054053abd040beec93d4277b3438621e73b39e1b4ef8136 SHA512 17d7a559c14af8f422c2e5ffea10c5b93f80233e9b70e0e441547e6773600663e6495f3fca25a2a16cbce4feadeddf78b346c3806d2936da7c29562e64655401
78 +DIST firefox-104.0.1-kn.xpi 501800 BLAKE2B bcff09dffe3f639040866552d7e1cebab25bbb84349381a2fb79977dc6411bfca6e1c925845b546464d814ca2a768fbe158078c502e2b13f28a90039a56ee76a SHA512 9a3c388a461cb2f2821c7ac5978761f0e60e544431b5102dd2bad096d9b0b368703ca2be3cf410390beb7067f9540355210493b0a5620e9c3dcaf02167f00496
79 +DIST firefox-104.0.1-ko.xpi 591407 BLAKE2B 49efebe3abcab4d383db7b2091d08f6da198dadee9dc332e511c947ed2e9a6b11734f7f118e79493320cc3da9867a825a38df278193cb31c7caf03731c3f29db SHA512 b44c72cc02e4df7f294651085a467dbf10512b155031bbd9b7eca8c220ea90b9a1b2d3f20333dd52a158ef06584378937a11e6fe1d9ed06f0e45f956eaa2e565
80 +DIST firefox-104.0.1-lij.xpi 474399 BLAKE2B 3574608843c14aa0931ed65fafaec19285ef8d360fc5d9034a5abf03629828285c87a8db5e34a0239db5fcaec634d61c00506f350d42bd2666ce9a1b933720cf SHA512 1ac6758410ec39d3ce2e48a92abe67a2477c17f931b8b523ccc8c8f155de6b4a465938fbdadab074698657d07c40a4c178ffa41c652261b0ea6672472da21e6b
81 +DIST firefox-104.0.1-lt.xpi 565107 BLAKE2B 14ffe0604b71ce0e09b1d9baba16d6199d9010538d6d52857fd73d05d5e33b0ad2ccccd51d7f4f7f20a76cb231cebeda8a45938a0721bb028d58eb34e4d1cf6d SHA512 c8dce5d637b18c11a0300c58735855386236ac56b4fcf8b643e26bae040f3ed172f90bbb20c7857744ca462bceb6e0efb46fa8dc49c85fd3c6ebe20f429e702c
82 +DIST firefox-104.0.1-lv.xpi 467543 BLAKE2B c3553ad11ee1f23323a1cda40f0693c0742c2e4dd167442f553d771f722cc52a5e24893148958b896916bb818d25140f202cd4bc96ff6ebffc8049c9bfffdfc0 SHA512 5bc80730c979d67b69ab6bb13678605c279473c869f1c733c47dcf550bbed7a1c0455eb159ee596dacf0da9b18e3285e06777b18ca75cebc55ba6b4e8844456b
83 +DIST firefox-104.0.1-mk.xpi 479889 BLAKE2B 48c8a66875526449e5b6f345c356abbbcd3c1c97067da8feecdc9e227dc182b1e8b81d353e75188e37a342652803cd528ae03047a7f7437191fb16469eb2908d SHA512 ab1e5c3053880d3a03389eb2cefe6abd24624b552d179212a5fa48ffe6a37a50f787b13f39447613feba679317c389c49130d74a744245360d92ba7a7758bd8b
84 +DIST firefox-104.0.1-mr.xpi 534736 BLAKE2B 7e37e63efd417dfc5039258765390f417a4ecb203fb2c903f00fc40a4218f8b27a6f008fc7a8c718b17be6946566bce9bfd88f97b6f0069bcd8b52aaad1b800f SHA512 14e3ca4b1e62acde94a9ca6bee8bfc614cf2e3021f37a2caef0222bea08219ddb34072b63960fe0c5a25954b2a228d14fc1f22465b894bb7d30767f97b72f501
85 +DIST firefox-104.0.1-ms.xpi 452537 BLAKE2B 81f05276044b0049aaa49359f7a64cc4585f9974ac8fa05eec55a7841809622eb482a9df719b6faf3223e206aeebd071ae5ef88ed9d0dcd310fb5f0935eeb88a SHA512 26159026cf73c943a2146a2a203e7d576a099a8f7a63ec8ac5a0d633283010230627dae8c4ff0a64efea2353829ce4161978b3d675fd620673d57404bda1c3df
86 +DIST firefox-104.0.1-my.xpi 514706 BLAKE2B e2da8bc53c4ca14e8ad46662e3136e5e2f822d024b8bdf55d7333b2d53eea813ff60b76c8d9e492215cd9ffae88f4509ea6b3c1a94780687269fbc90434f6b2e SHA512 4add44e7e3d1e7c76d272051667773870cb3f598f2bfa800bf57b607ceabae94066f5a74e291db750d3fc8881579e21780c8747e1a640301eab3a0b1d4eecc4a
87 +DIST firefox-104.0.1-nb-NO.xpi 542660 BLAKE2B ee646fd3b512634b8f2d4ec77d6443fe17201c6a6f176a0538f20c8926bc8feb905102028c7b106d4197d158b5233271c6f9feeb089efab85ce4e0c1c0e7ecf0 SHA512 0b3d97850051d4f62fe32d3909e311e8dd8af54bfb281d01f6c8d4079f690338ee6bf56c9a589b39e8b3f9fc6be8b9c1f88834a968c1044bceb3151fcf898f16
88 +DIST firefox-104.0.1-ne-NP.xpi 493557 BLAKE2B 6226a206ed86fa9c6a59b0088c1d10280e8abe2039a9d5e9b719a022c25fdec0247365ada36fa302665efcd48747f5a3648a1dffd3b125b5f273dcbcd7dedbbf SHA512 1908a1f3cc9d96807986c3b4262d25662b7b4bc7b421bf36029a46b1a71a0cf3691bf5362fa66d149d576ef9cb73c17388b070a9eea5a5297d054a38f26f4fe0
89 +DIST firefox-104.0.1-nl.xpi 546988 BLAKE2B 4856b74b6464d2eaec1f521c01101c0440a397aa321f36c29b9bff811c13f0b78fe74b7462b78d61785232ea8797ffa40680882b3c782163b50322c03f9472e3 SHA512 56f53e27ee357724318a4f0002a6f6d335b4a4d420dac8d0ad8fc7026d82ea0461de53fcf29da2b80ea4e21c1007151aa393d45321fb80055bc30f29432aa9db
90 +DIST firefox-104.0.1-nn-NO.xpi 544283 BLAKE2B e9445d3e21c59461a92fe91af1c59199acce65dc12a4dc60619cd02fe0f225bf2fa1381cc6edad73fe314b6c45c5150a04b5560b4cc4e2e684036e63239ba13e SHA512 a8efa9900de65ac8e814d69be0d3312ca93c8afb548b5cd2c8a464dbe479d39d7622290026ffd56acf42a392d28785dcb8876a0b2d28fea02484d69abde55cda
91 +DIST firefox-104.0.1-oc.xpi 560752 BLAKE2B 1240b32e1e73c540de5c797d1c0b858d9fef3ea1756c03f6efaf8f7a7040b6d703cb643b4cfed8bc0210595f1e980c9792a08b329fcda6a2b366b5df3bb722f8 SHA512 ef08eb4daf7aaa6429ff1a358a0a673b93fe14d15e2f7a8aa5b9176afc850e5d2a1d18f0dc25b4b4a5eb98e51efb1b9418b29189ddb93479ff70a6afae110026
92 +DIST firefox-104.0.1-pa-IN.xpi 611564 BLAKE2B 8cc61765f25f64b65ee8d73057d189cf02ac099e090924e385dbedb89c08f13478724191bca54965833b586aacfe213e44be77afa4500e96648afc753d409132 SHA512 a7fdaf63f24fefb834057f67095aaf3c2f65403fbf7ac8d594132ff7ac2d825880d339e0a87adfa2d91ad622343eadfafbd40f2dc81b0f76825566bccaea2a0b
93 +DIST firefox-104.0.1-pl.xpi 570614 BLAKE2B 1a84a0cd8b73dabb045a7b044e08d81bc48254d482549dbc6e04bbb8ef1431a0e8113cee2caf557c9c75450c78669e415ed567ba86eddd0005ff99699b4085b1 SHA512 b11289762246b2f673b563088676d17b8747232620406bfb6914d370b2556801e117521bc94b735ac9cfd39eb501be7064c6627d75d5e4e1901fb85b02c46188
94 +DIST firefox-104.0.1-pt-BR.xpi 555631 BLAKE2B 6e13f509691015709c01b8f6a929b79d549f58deb86236be976335531dc5851ed8f212fc4950be540cbf79ad8d593d6177ee8cc7503a4c97451904b0ab9f4580 SHA512 11f0b47e7e6f10052a9f7eac362d6e99fce09d78e25ae5beeb0f1a6d697c1b6b60566ed7d03c433cd9c3fa145fcffe2831b9e308a6c8762644d2afb357233ee9
95 +DIST firefox-104.0.1-pt-PT.xpi 558697 BLAKE2B 38fb11d6f073bad669cde048ad9a3b4165703a53925a0a53bc8e79ff40bc08d184e74e532deeba38fd0124b71c64322b0b326fd2b7726d812321261b897f5985 SHA512 e3ac451dcdd83db53dedc455bad0d1d4f8401f3499fe8b6712b02e9dfcfa6f4e0e7abf008aaad547f56c79878fa6a0aaa043c6754b49f6f4d3977d5b84083912
96 +DIST firefox-104.0.1-rm.xpi 542681 BLAKE2B 7771294d13a07bae3adde0a82d928032fc2aa7f4f871e29f894f87c61df739273de1de95c79cf543ac89496de4ff89c3ca252447631b2ad28c25a88016dcb9e6 SHA512 87949e5cee4f72604b3c25e2f85df418dcf5463cb63ba3043a35fb5dc61b26cb6d593b7d6177c943fff9328135ae9f814490deb75bf0d6611d7dfe12132fa709
97 +DIST firefox-104.0.1-ro.xpi 532715 BLAKE2B 768aa448772a70b63984fe090135c5a45fa27d9ca10e1613c251d744f088b2b73eaa23fbbca8e465de06f7d96aee41f234de6ff05f9607ffa8760319c9e3f8a8 SHA512 4b40b6340dce039a1ca6ce0104075fc9ced79b39fc285ea487a7cb0a0cbeb7cb57cd20b31d5446a55d8b828fc55875a8cbf06ef91121bf67cc7e8894c381a891
98 +DIST firefox-104.0.1-ru.xpi 641377 BLAKE2B f5234396311d0a7bf2d3ff6444eba2879fea0f0d092769ca4fc097184464b61da5d05df6388e116ddd4736e6ca6cc2bb5ad1eb1e6e3c0cbbd64bd7bd8614a906 SHA512 92fbf75bac9a5778eb8e8b26091ef9a8ef672e34440119ce7bc20c81af639a4e30baae4d75292f93097355e706102a4d7d1a185b95c0c63e144df3e7f3009a38
99 +DIST firefox-104.0.1-sco.xpi 500767 BLAKE2B 82ac497cbf1f0db9a626cc638ea9ce25a4d59f65104edb85c2ce6190156fd9d200b98ad877349858d7785029dc2163ae5b57f5a75d4555102f84f19b156e3b8a SHA512 5278a366cd697cb5d1f1e3154ca9b3dd5ac24dc99dc7091ca5e66cc53b11567322233773029e6cf4385ad6c72a0f7ce76f245422847caa4a446e13c9fb923c24
100 +DIST firefox-104.0.1-si.xpi 489442 BLAKE2B c0f8480ee4016b38bbe9190578c278a947afe3b6d8614e8816b1f2135d1e32d54f43c9762fcaa044bae343b5d072311b07c17be24baec123622a38f1e10270f5 SHA512 fbd9c0d6632430e2f140af6dffc5a27a2feed1b9e98563d98abd5a7fd5d5079e6afde7dfe2cf35bda5fac67f5ece942fa9fa9e6e0a9d385b77bcda20b87fa06f
101 +DIST firefox-104.0.1-sk.xpi 579420 BLAKE2B 7d26bff2850c77712790f15c7e3478d974bdbebf9dc0a8a950875d72cd265d59ae9c2a6db12a3cb3413a6de870a5ea22edfb23d5d4fed63bb8d338eb182029fa SHA512 3872f9ceacafdf9807cce5355869f9113c37442a39c39c7e41787ea07557e2aac6fe388d24589ea28ad6474c8c9b9a6cbebfaf17db2423d31f2f4239be44e0bf
102 +DIST firefox-104.0.1-sl.xpi 551983 BLAKE2B 1f221e153ea8523dd8b4601fbd127d74d42ae9e00fae6d8d8232bdcb7249bb13c655ee6cdc14b34316ab74b19c561405ea8798719545977fd58419e49b3a2e08 SHA512 72fde8afd681f29b29523d6e49610125a69092c58ae4465fb4ab9fe70d79fa30898ba01b48a5156ea5f65549a149b26b81626c29f6b884d055fce96fe60d3521
103 +DIST firefox-104.0.1-son.xpi 430379 BLAKE2B 1d23a15654a960984f132a6f962a33055e7f9941de5c80a6bbc519e72efd8a180c556f969850c80a28b17efdcd8687e9bf2b3582440b77d8b2f5d81076737ae9 SHA512 14d7807f6d823c3d0b5d749fde1f60835d57a20309c1eca672e248a416c9ec4f6927b27d89ef41b77149c8edc6c0ed084782f441b4acca3d7a70508181ce2834
104 +DIST firefox-104.0.1-sq.xpi 560591 BLAKE2B b4262992fbe58e25cf69a827c07a7159816d5a0c924b0fac042ad21f582aa40b12dd742a83b7377e5ee56c7ab281ce6545e366e9620d79f0a32efbe9e07a8e21 SHA512 472987faa8e4764e9bb09e5ee0a781ddaed2082a0d0af2f82a06edee316f8b3852cdbd6bc4dba6fa616d5026e881c508a5cf2cc0026bc289966f335964bcfbd5
105 +DIST firefox-104.0.1-sr.xpi 586834 BLAKE2B 90d52258def9a690a826f82cc3ef6b7676865ec472217bd108284aa1657a1a6dc479c589141eb8b7cda399a8ee655bf2a880ff91f49b6922466ada5bcf3e43f5 SHA512 57d2ff25ca343093d1dd662df9f8abe0228f5472aeaa55e1807ed76a856ec167df975422d8abcc9290aee782ee619569bb2706c7df6ea7f6a3b75a79b5646ace
106 +DIST firefox-104.0.1-sv-SE.xpi 552470 BLAKE2B ea9e9cf83ffc94ffc11ea1ee838f0b77f2eff9a71c0faabef80072bf57e230de39f49f63aed56e98508c1f8e7646b243634056f393f97f3e0fc093fd3c7e238b SHA512 eac620d60017a86dc7b61f1f3800506391f67e2beb1a142f9c6dc64fbe05d1f9ca91933a0a73d306086d195b0ba42baf3925af181a68a5f3959548656cad899d
107 +DIST firefox-104.0.1-szl.xpi 512566 BLAKE2B 1302b08305030761ceb8be28413c0969b3c68abb15c5441c4d2273cbf79fa1e1f2c65b884962fde3781e8037243cb4e8afdbc81bc3726c26e3b8d33e60a59e05 SHA512 fb2706b7cebaa58821c3240a0fb04a517f4b7a29044a2ee28aeb17aa2493000255202b4c6609976d5340d87e0353254e8d973a9f2c069c79066c5b4274062b70
108 +DIST firefox-104.0.1-ta.xpi 514635 BLAKE2B fac3324b196615771d1252fee4d02f803987dac0ebe4461263837b1ff89b01d9a70ef897cb35920427dde65e2e11e3d03b11413103557ceaebee5631437b5a73 SHA512 4ac9ed10e83e6da565c72f0c8332d0d76f249a1ef4c30cef4217f907c367a788c1492563b163da30cf488f658f0a90d339c33069614fdc3db597610f183331b9
109 +DIST firefox-104.0.1-te.xpi 555352 BLAKE2B a795c95a33a3d42cb4eadd4bae4b2b63aac3f4f3ba7f84c97eb6973da434b5cb6e7286b35392779ba139d247e0c44315aa8c4d733805a9eeaf80f16299259b8d SHA512 c6866cecef82f08cb07acb7606d206ac5c3e3ca94cc448171f05c0e72fbebfd9b01a7cf1f22bc588a12dfd10d21c6ca4fef5364c8ebfb4fba0f211586f07e5b1
110 +DIST firefox-104.0.1-th.xpi 615066 BLAKE2B 5207b507001adc1346eadd12b38d7711564ae3abd96967157944f375f47ca53303a541d532e72be4ecfa055cfb5d687d4ee4cee465127f732359ca39a5c79a9a SHA512 ba667b373a365f6e33ea57aaff668a00288cdaa6f008013b24579c6ec70c86e76f412122f618a7d0df46c3c314d731c08e1f5cc6c7ca6d6cf058196e0a4014e1
111 +DIST firefox-104.0.1-tl.xpi 522949 BLAKE2B 6475701ff083d5692a4897dcb27f81cdbf5c9e418f575dbead74d3464a05697bc8cfea362ae28a7936fbafe417b49aa0194dbae3339a4605dc2a20420b363d24 SHA512 e9c538ad44283822aa48af5dbbbc2c66fb77053588e9c3728ece40f4aead6295d36b3f4d13163455cec211042ada2e48a42162a93b9cc1e677adefd6c9f10fbd
112 +DIST firefox-104.0.1-tr.xpi 565829 BLAKE2B c8b668cbb8c9aebe00ae31a157b7adecf3a1f96f1ace59f01ab2342db380863387f4f0225e22cdb46634fc0410c92ad9b5b3f9ef19199327fbf147612c900dd4 SHA512 e5d3ea275ce3a1a8e5d4a15a83e6ee45c2f96852692b8c3aca320a0deaa632f4dea263eeab4d264abaab57401e7e29d8d06a9657269a316622ee7930cf56b2b6
113 +DIST firefox-104.0.1-trs.xpi 493322 BLAKE2B bc9bcd6965d33988346184f6bc07e718c7ef570c0039ea0d9898bed3891272fbf8a99832e1d7b0bb4232d0c8fc0869fb1fac33dcc176114b36bb568b1d9bb438 SHA512 bb084128c1ca689ad52d626a9acdf7ceb58c823f3b43b4139fa2ca2877429ab3fc7166be28d0081ae723856329f17f2523a8d413b878a07aea646a6f9bdca94e
114 +DIST firefox-104.0.1-uk.xpi 634718 BLAKE2B c6ffe5efc8102765c0d938fcba7524050b68966ffbaa64b28566b46e694995f8ed4d009bc70a0ce01c49868f68aa62628a1d27a9ae394c390d20053e6d849b47 SHA512 f113d00ec562bf60afa8481208a05b8adb7c57c9a7877f09364ee7579d0050db2949412f4a0d1fcf800387c176a38761b4d1cd7b12f8803d6053e709132e081c
115 +DIST firefox-104.0.1-ur.xpi 561593 BLAKE2B 76d7e3ea789f361563e0b39ac4c31eed91df9c74088e7fccd57c6a10e50e8cf943c2f0056a4ff48e6c679b546b487cffad789796679ecbb6b79b1d18dae24944 SHA512 a15afe2de44f980ee5e50c82a1a6bd718a75aa1b7daf7608b1fa48f28621582d669d3436f30e20cebe68f9ad57d01024869a4545227e14b89ee0bcec5c46bf5b
116 +DIST firefox-104.0.1-uz.xpi 482121 BLAKE2B 1fd1dd119e9d898371aac69c8eca45edb28129b835dcf677904bd595c741ae80c4d95205f0a6ca5cedcef600d3d8ab396190a70909722b2179da80195a0497f5 SHA512 0a60d5cfb9c5f14456ca426884a9052ddb0ff5344aa0335e1feaaeb45f7d6c42b3bf597eb41d26463d8304b8cb27affd4e5ce9206dc71c21a4a070fcd4353e18
117 +DIST firefox-104.0.1-vi.xpi 586740 BLAKE2B 04faddda962842fa0077c1291cfbe104fc0fa6d159c1cfc03052b68d415482c864640df172256f1136b7bfe317db55ceca4610ba362ae8949b9d8c91a56bcbf9 SHA512 db418eaae8cd457fafdcfc49fda963e0034263a4331f0bcfee21673501a3dac091488b01740971a84c21008438ffed0541d4a36a8d7d9c5289ab085a77144363
118 +DIST firefox-104.0.1-xh.xpi 433358 BLAKE2B d9ab0fbbf5a13f5148dd00a67e66794bc9e1e5cc108435e57163d4a079ef7218c2f204118777f560e87a32fb61e3dd32bdf40aa52915609dab5bd271713c3232 SHA512 9a21325ab198c2391fab2cce4b1ca28b70b9223a360c3fb77001ec35b27e26b36e6da546beca813d0042ded8850153039542d303dfa4a588ca33673649923d75
119 +DIST firefox-104.0.1-zh-CN.xpi 587664 BLAKE2B 6a872096ed781d3e9a5b25003d509645fa533adebf76a4e49094b4a50b3dc57962f2bf26f543aa05e96c645497cb2464b91894ea2252c514f2548ffbd5bcc895 SHA512 611fbd6a2f3336d3e9d349498927303b88bd5d66f459a68b5394f6d2dad2c15f244ecfca6c34ae89ac0e495d745022ef423860f8d73190e8033c3a500136afae
120 +DIST firefox-104.0.1-zh-TW.xpi 588454 BLAKE2B 191fc277ff76942b6a67f96b49fe242a6e684226fcff3060e94a68afd2213250baf7b27b2831d5f80577afce85590da366363153290c7e0fc338c40f745b8732 SHA512 b51692a001ac04f29784f7eaa2b510f5bf59ca80864624de05bdcdf5df2283303e7497cf179fb386b229b1376a3db932e339246fdba34e0fc2eee2f8eb167920
121 +DIST firefox-104.0.1.source.tar.xz 485616148 BLAKE2B 285ef1cb8f9ed2d8dfadbf93af97ea6bffa6f202804170edde8b55ecc951c5c305140ab4f16aad684b8b5f76666baaa0083d297365f01bdeb63ff87e6d363fcf SHA512 ad80fccfde34a201fc4b596c2a0a1d959abc132946dde0865b6da624a07fd9c57381bc268c394a17f295e0e183d122b2cf5c5126e8a0bc99684affaa6212e246
122 DIST firefox-104.0.source.tar.xz 486299816 BLAKE2B 9de094ced1a5cbb6a5db2ec78a9a762adecbe95295a1184a5ee018350354d67d2a861a89365cd51cc07f017cd8f7a029e727577325fa63c8925d11238b18cfa6 SHA512 8778650ffa3c2d18802c348e27789f00cff143c7ca0ae01b1bcd050b6942c149db25696b48f3c702fbde901c15fcae976ac731a456f641637cae3eb56d0077d3
123 DIST firefox-91.13.0esr-ach.xpi 453223 BLAKE2B 88b43c79620d3e0263f7e251a41c8ee88f10798982d8a0db3d8d545b83aa4e3da75140f5d9bf879f2229ea831668344cefddf6c67ee45f3169c7d854cf53a90d SHA512 795ca4fced227f29861de8fe2e93acb339d41de8b09c941244f4b62c8e7835971ec4366bcb3a35aaa75e779087248df459364c262f2fd7b294a6d7176b74e1ef
124 DIST firefox-91.13.0esr-af.xpi 426921 BLAKE2B c0a89908f46ba666c9d3c9e916636e5aeff7564a0f2132213aa443c5dfed474006dd65dc8f47d0e0fa30d5435c810937da98536b3408dae62c428a5f1f4bbe78 SHA512 8c8a40cb2117479c08c13077eeffcd3473b4e2fd9164269da58a68b3c0e77c339184a2edca79ae80480f2b7e41c42e598a9350f01061b424cef1aab35a7480bd
125
126 diff --git a/www-client/firefox/firefox-104.0.1.ebuild b/www-client/firefox/firefox-104.0.1.ebuild
127 new file mode 100644
128 index 000000000000..24cea78da335
129 --- /dev/null
130 +++ b/www-client/firefox/firefox-104.0.1.ebuild
131 @@ -0,0 +1,1278 @@
132 +# Copyright 1999-2022 Gentoo Authors
133 +# Distributed under the terms of the GNU General Public License v2
134 +
135 +EAPI=8
136 +
137 +FIREFOX_PATCHSET="firefox-104-patches-02j.tar.xz"
138 +
139 +LLVM_MAX_SLOT=14
140 +
141 +PYTHON_COMPAT=( python3_{8..11} )
142 +PYTHON_REQ_USE="ncurses,sqlite,ssl"
143 +
144 +WANT_AUTOCONF="2.1"
145 +
146 +VIRTUALX_REQUIRED="pgo"
147 +
148 +MOZ_ESR=
149 +
150 +MOZ_PV=${PV}
151 +MOZ_PV_SUFFIX=
152 +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
153 + MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
154 +
155 + # Convert the ebuild version to the upstream Mozilla version
156 + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
157 + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
158 + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
159 +fi
160 +
161 +if [[ -n ${MOZ_ESR} ]] ; then
162 + # ESR releases have slightly different version numbers
163 + MOZ_PV="${MOZ_PV}esr"
164 +fi
165 +
166 +MOZ_PN="${PN%-bin}"
167 +MOZ_P="${MOZ_PN}-${MOZ_PV}"
168 +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
169 +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
170 +
171 +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
172 + llvm multiprocessing pax-utils python-any-r1 toolchain-funcs \
173 + virtualx xdg
174 +
175 +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
176 +
177 +if [[ ${PV} == *_rc* ]] ; then
178 + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
179 +fi
180 +
181 +PATCH_URIS=(
182 + https://dev.gentoo.org/~{juippis,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
183 +)
184 +
185 +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
186 + ${PATCH_URIS[@]}"
187 +
188 +DESCRIPTION="Firefox Web Browser"
189 +HOMEPAGE="https://www.mozilla.com/firefox"
190 +
191 +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
192 +
193 +SLOT="rapid"
194 +LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
195 +
196 +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
197 +IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
198 +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
199 +IUSE+=" wayland wifi"
200 +
201 +# Firefox-only IUSE
202 +IUSE+=" geckodriver +gmp-autoupdate screencast +X"
203 +
204 +REQUIRED_USE="debug? ( !system-av1 )
205 + pgo? ( lto )
206 + wifi? ( dbus )"
207 +
208 +# Firefox-only REQUIRED_USE flags
209 +REQUIRED_USE+=" || ( X wayland )"
210 +REQUIRED_USE+=" pgo? ( X )"
211 +REQUIRED_USE+=" screencast? ( wayland )"
212 +
213 +FF_ONLY_DEPEND="!www-client/firefox:0
214 + !www-client/firefox:esr
215 + screencast? ( media-video/pipewire:= )
216 + selinux? ( sec-policy/selinux-mozilla )"
217 +BDEPEND="${PYTHON_DEPS}
218 + app-arch/unzip
219 + app-arch/zip
220 + >=dev-util/cbindgen-0.24.3
221 + net-libs/nodejs
222 + virtual/pkgconfig
223 + virtual/rust
224 + || (
225 + (
226 + sys-devel/clang:14
227 + sys-devel/llvm:14
228 + clang? (
229 + =sys-devel/lld-14*
230 + pgo? ( =sys-libs/compiler-rt-sanitizers-14*[profile] )
231 + )
232 + )
233 + (
234 + sys-devel/clang:13
235 + sys-devel/llvm:13
236 + clang? (
237 + =sys-devel/lld-13*
238 + pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] )
239 + )
240 + )
241 + )
242 + amd64? ( >=dev-lang/nasm-2.14 )
243 + x86? ( >=dev-lang/nasm-2.14 )"
244 +COMMON_DEPEND="${FF_ONLY_DEPEND}
245 + dev-libs/atk
246 + dev-libs/expat
247 + dev-libs/glib:2
248 + dev-libs/libffi:=
249 + >=dev-libs/nss-3.81
250 + >=dev-libs/nspr-4.34.1
251 + media-libs/alsa-lib
252 + media-libs/fontconfig
253 + media-libs/freetype
254 + media-libs/mesa
255 + media-video/ffmpeg
256 + sys-libs/zlib
257 + virtual/freedesktop-icon-theme
258 + x11-libs/cairo
259 + x11-libs/gdk-pixbuf
260 + x11-libs/pango
261 + x11-libs/pixman
262 + dbus? (
263 + dev-libs/dbus-glib
264 + sys-apps/dbus
265 + )
266 + jack? ( virtual/jack )
267 + libproxy? ( net-libs/libproxy )
268 + selinux? ( sec-policy/selinux-mozilla )
269 + sndio? ( >=media-sound/sndio-1.8.0-r1 )
270 + screencast? ( media-video/pipewire:= )
271 + system-av1? (
272 + >=media-libs/dav1d-1.0.0:=
273 + >=media-libs/libaom-1.0.0:=
274 + )
275 + system-harfbuzz? (
276 + >=media-gfx/graphite2-1.3.13
277 + >=media-libs/harfbuzz-2.8.1:0=
278 + )
279 + system-icu? ( >=dev-libs/icu-71.1:= )
280 + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
281 + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
282 + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
283 + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
284 + system-webp? ( >=media-libs/libwebp-1.1.0:0= )
285 + wayland? (
286 + >=media-libs/libepoxy-1.5.10-r1
287 + x11-libs/gtk+:3[wayland]
288 + x11-libs/libdrm
289 + x11-libs/libxkbcommon[wayland]
290 + )
291 + wifi? (
292 + kernel_linux? (
293 + dev-libs/dbus-glib
294 + net-misc/networkmanager
295 + sys-apps/dbus
296 + )
297 + )
298 + X? (
299 + virtual/opengl
300 + x11-libs/cairo[X]
301 + x11-libs/gtk+:3[X]
302 + x11-libs/libX11
303 + x11-libs/libXcomposite
304 + x11-libs/libXdamage
305 + x11-libs/libXext
306 + x11-libs/libXfixes
307 + x11-libs/libxkbcommon[X]
308 + x11-libs/libXrandr
309 + x11-libs/libXtst
310 + x11-libs/libxcb:=
311 + )"
312 +RDEPEND="${COMMON_DEPEND}
313 + jack? ( virtual/jack )
314 + openh264? ( media-libs/openh264:*[plugin] )
315 + pulseaudio? (
316 + || (
317 + media-sound/pulseaudio
318 + >=media-sound/apulse-0.1.12-r4
319 + )
320 + )"
321 +DEPEND="${COMMON_DEPEND}
322 + pulseaudio? (
323 + || (
324 + media-sound/pulseaudio
325 + >=media-sound/apulse-0.1.12-r4[sdk]
326 + )
327 + )
328 + X? (
329 + x11-libs/libICE
330 + x11-libs/libSM
331 + )"
332 +
333 +S="${WORKDIR}/${PN}-${PV%_*}"
334 +
335 +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
336 +# overridden in the enviromnent (advanced hackers only)
337 +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
338 + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
339 +fi
340 +
341 +llvm_check_deps() {
342 + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
343 + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
344 + return 1
345 + fi
346 +
347 + if use clang ; then
348 + if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
349 + einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
350 + return 1
351 + fi
352 +
353 + if use pgo ; then
354 + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
355 + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
356 + return 1
357 + fi
358 + fi
359 + fi
360 +
361 + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
362 +}
363 +
364 +MOZ_LANGS=(
365 + af ar ast be bg br ca cak cs cy da de dsb
366 + el en-CA en-GB en-US es-AR es-ES et eu
367 + fi fr fy-NL ga-IE gd gl he hr hsb hu
368 + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
369 + pa-IN pl pt-BR pt-PT rm ro ru
370 + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
371 +)
372 +
373 +# Firefox-only LANGS
374 +MOZ_LANGS+=( ach )
375 +MOZ_LANGS+=( an )
376 +MOZ_LANGS+=( az )
377 +MOZ_LANGS+=( bn )
378 +MOZ_LANGS+=( bs )
379 +MOZ_LANGS+=( ca-valencia )
380 +MOZ_LANGS+=( eo )
381 +MOZ_LANGS+=( es-CL )
382 +MOZ_LANGS+=( es-MX )
383 +MOZ_LANGS+=( fa )
384 +MOZ_LANGS+=( ff )
385 +MOZ_LANGS+=( gn )
386 +MOZ_LANGS+=( gu-IN )
387 +MOZ_LANGS+=( hi-IN )
388 +MOZ_LANGS+=( hy-AM )
389 +MOZ_LANGS+=( ia )
390 +MOZ_LANGS+=( km )
391 +MOZ_LANGS+=( kn )
392 +MOZ_LANGS+=( lij )
393 +MOZ_LANGS+=( mk )
394 +MOZ_LANGS+=( mr )
395 +MOZ_LANGS+=( my )
396 +MOZ_LANGS+=( ne-NP )
397 +MOZ_LANGS+=( oc )
398 +MOZ_LANGS+=( sco )
399 +MOZ_LANGS+=( si )
400 +MOZ_LANGS+=( son )
401 +MOZ_LANGS+=( szl )
402 +MOZ_LANGS+=( ta )
403 +MOZ_LANGS+=( te )
404 +MOZ_LANGS+=( tl )
405 +MOZ_LANGS+=( trs )
406 +MOZ_LANGS+=( ur )
407 +MOZ_LANGS+=( xh )
408 +
409 +mozilla_set_globals() {
410 + # https://bugs.gentoo.org/587334
411 + local MOZ_TOO_REGIONALIZED_FOR_L10N=(
412 + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
413 + )
414 +
415 + local lang xflag
416 + for lang in "${MOZ_LANGS[@]}" ; do
417 + # en and en_US are handled internally
418 + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
419 + continue
420 + fi
421 +
422 + # strip region subtag if $lang is in the list
423 + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
424 + xflag=${lang%%-*}
425 + else
426 + xflag=${lang}
427 + fi
428 +
429 + SRC_URI+=" l10n_${xflag/[_@]/-}? ("
430 + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
431 + SRC_URI+=" )"
432 + IUSE+=" l10n_${xflag/[_@]/-}"
433 + done
434 +}
435 +mozilla_set_globals
436 +
437 +moz_clear_vendor_checksums() {
438 + debug-print-function ${FUNCNAME} "$@"
439 +
440 + if [[ ${#} -ne 1 ]] ; then
441 + die "${FUNCNAME} requires exact one argument"
442 + fi
443 +
444 + einfo "Clearing cargo checksums for ${1} ..."
445 +
446 + sed -i \
447 + -e 's/\("files":{\)[^}]*/\1/' \
448 + "${S}"/third_party/rust/${1}/.cargo-checksum.json \
449 + || die
450 +}
451 +
452 +moz_install_xpi() {
453 + debug-print-function ${FUNCNAME} "$@"
454 +
455 + if [[ ${#} -lt 2 ]] ; then
456 + die "${FUNCNAME} requires at least two arguments"
457 + fi
458 +
459 + local DESTDIR=${1}
460 + shift
461 +
462 + insinto "${DESTDIR}"
463 +
464 + local emid xpi_file xpi_tmp_dir
465 + for xpi_file in "${@}" ; do
466 + emid=
467 + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
468 +
469 + # Unpack XPI
470 + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
471 +
472 + # Determine extension ID
473 + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
474 + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
475 + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
476 + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
477 + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
478 + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
479 + else
480 + die "failed to determine extension id"
481 + fi
482 +
483 + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
484 + newins "${xpi_file}" "${emid}.xpi"
485 + done
486 +}
487 +
488 +mozconfig_add_options_ac() {
489 + debug-print-function ${FUNCNAME} "$@"
490 +
491 + if [[ ${#} -lt 2 ]] ; then
492 + die "${FUNCNAME} requires at least two arguments"
493 + fi
494 +
495 + local reason=${1}
496 + shift
497 +
498 + local option
499 + for option in ${@} ; do
500 + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
501 + done
502 +}
503 +
504 +mozconfig_add_options_mk() {
505 + debug-print-function ${FUNCNAME} "$@"
506 +
507 + if [[ ${#} -lt 2 ]] ; then
508 + die "${FUNCNAME} requires at least two arguments"
509 + fi
510 +
511 + local reason=${1}
512 + shift
513 +
514 + local option
515 + for option in ${@} ; do
516 + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
517 + done
518 +}
519 +
520 +mozconfig_use_enable() {
521 + debug-print-function ${FUNCNAME} "$@"
522 +
523 + if [[ ${#} -lt 1 ]] ; then
524 + die "${FUNCNAME} requires at least one arguments"
525 + fi
526 +
527 + local flag=$(use_enable "${@}")
528 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
529 +}
530 +
531 +mozconfig_use_with() {
532 + debug-print-function ${FUNCNAME} "$@"
533 +
534 + if [[ ${#} -lt 1 ]] ; then
535 + die "${FUNCNAME} requires at least one arguments"
536 + fi
537 +
538 + local flag=$(use_with "${@}")
539 + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
540 +}
541 +
542 +pkg_pretend() {
543 + if [[ ${MERGE_TYPE} != binary ]] ; then
544 + if use pgo ; then
545 + if ! has usersandbox $FEATURES ; then
546 + die "You must enable usersandbox as X server can not run as root!"
547 + fi
548 + fi
549 +
550 + # Ensure we have enough disk space to compile
551 + if use pgo || use lto || use debug ; then
552 + CHECKREQS_DISK_BUILD="13500M"
553 + else
554 + CHECKREQS_DISK_BUILD="6600M"
555 + fi
556 +
557 + check-reqs_pkg_pretend
558 + fi
559 +}
560 +
561 +pkg_setup() {
562 + if [[ ${MERGE_TYPE} != binary ]] ; then
563 + if use pgo ; then
564 + if ! has userpriv ${FEATURES} ; then
565 + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
566 + fi
567 + fi
568 +
569 + # Ensure we have enough disk space to compile
570 + if use pgo || use lto || use debug ; then
571 + CHECKREQS_DISK_BUILD="13500M"
572 + else
573 + CHECKREQS_DISK_BUILD="6400M"
574 + fi
575 +
576 + check-reqs_pkg_setup
577 +
578 + llvm_pkg_setup
579 +
580 + if use clang && use lto ; then
581 + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
582 + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
583 + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
584 +
585 + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
586 + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
587 + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
588 +
589 + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
590 + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
591 + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
592 + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
593 + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
594 + eerror " - Build ${CATEGORY}/${PN} without USE=lto"
595 + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
596 + eerror " llvm/clang/lld/rust chain depending on your @world updates)"
597 + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
598 + fi
599 + fi
600 +
601 + python-any-r1_pkg_setup
602 +
603 + # Avoid PGO profiling problems due to enviroment leakage
604 + # These should *always* be cleaned up anyway
605 + unset \
606 + DBUS_SESSION_BUS_ADDRESS \
607 + DISPLAY \
608 + ORBIT_SOCKETDIR \
609 + SESSION_MANAGER \
610 + XAUTHORITY \
611 + XDG_CACHE_HOME \
612 + XDG_SESSION_COOKIE
613 +
614 + # Build system is using /proc/self/oom_score_adj, bug #604394
615 + addpredict /proc/self/oom_score_adj
616 +
617 + if use pgo ; then
618 + # Allow access to GPU during PGO run
619 + local ati_cards mesa_cards nvidia_cards render_cards
620 + shopt -s nullglob
621 +
622 + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
623 + if [[ -n "${ati_cards}" ]] ; then
624 + addpredict "${ati_cards}"
625 + fi
626 +
627 + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
628 + if [[ -n "${mesa_cards}" ]] ; then
629 + addpredict "${mesa_cards}"
630 + fi
631 +
632 + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
633 + if [[ -n "${nvidia_cards}" ]] ; then
634 + addpredict "${nvidia_cards}"
635 + fi
636 +
637 + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
638 + if [[ -n "${render_cards}" ]] ; then
639 + addpredict "${render_cards}"
640 + fi
641 +
642 + shopt -u nullglob
643 + fi
644 +
645 + if ! mountpoint -q /dev/shm ; then
646 + # If /dev/shm is not available, configure is known to fail with
647 + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
648 + ewarn "/dev/shm is not mounted -- expect build failures!"
649 + fi
650 +
651 + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
652 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
653 + # get your own set of keys.
654 + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
655 + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
656 + fi
657 +
658 + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
659 + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
660 + fi
661 +
662 + # Mozilla API keys (see https://location.services.mozilla.com/api)
663 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
664 + # get your own set of keys.
665 + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
666 + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
667 + fi
668 +
669 + # Ensure we use C locale when building, bug #746215
670 + export LC_ALL=C
671 + fi
672 +
673 + CONFIG_CHECK="~SECCOMP"
674 + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
675 + linux-info_pkg_setup
676 +}
677 +
678 +src_unpack() {
679 + local _lp_dir="${WORKDIR}/language_packs"
680 + local _src_file
681 +
682 + if [[ ! -d "${_lp_dir}" ]] ; then
683 + mkdir "${_lp_dir}" || die
684 + fi
685 +
686 + for _src_file in ${A} ; do
687 + if [[ ${_src_file} == *.xpi ]]; then
688 + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
689 + else
690 + unpack ${_src_file}
691 + fi
692 + done
693 +}
694 +
695 +src_prepare() {
696 + use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
697 + ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
698 + eapply "${WORKDIR}/firefox-patches"
699 +
700 + # Allow user to apply any additional patches without modifing ebuild
701 + eapply_user
702 +
703 + # Make cargo respect MAKEOPTS
704 + export CARGO_BUILD_JOBS="$(makeopts_jobs)"
705 +
706 + # Make LTO respect MAKEOPTS
707 + sed -i \
708 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
709 + "${S}"/build/moz.configure/lto-pgo.configure \
710 + || die "sed failed to set num_cores"
711 +
712 + # Make ICU respect MAKEOPTS
713 + sed -i \
714 + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
715 + "${S}"/intl/icu_sources_data.py \
716 + || die "sed failed to set num_cores"
717 +
718 + # sed-in toolchain prefix
719 + sed -i \
720 + -e "s/objdump/${CHOST}-objdump/" \
721 + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
722 + || die "sed failed to set toolchain prefix"
723 +
724 + sed -i \
725 + -e 's/ccache_stats = None/return None/' \
726 + "${S}"/python/mozbuild/mozbuild/controller/building.py \
727 + || die "sed failed to disable ccache stats call"
728 +
729 + einfo "Removing pre-built binaries ..."
730 + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
731 +
732 + # Clearing checksums where we have applied patches
733 + moz_clear_vendor_checksums audioipc
734 + moz_clear_vendor_checksums audioipc-client
735 + moz_clear_vendor_checksums audioipc-server
736 +
737 + # Create build dir
738 + BUILD_DIR="${WORKDIR}/${PN}_build"
739 + mkdir -p "${BUILD_DIR}" || die
740 +
741 + # Write API keys to disk
742 + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
743 + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
744 + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
745 +
746 + xdg_environment_reset
747 +}
748 +
749 +src_configure() {
750 + # Show flags set at the beginning
751 + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
752 + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
753 + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
754 + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
755 + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
756 +
757 + local have_switched_compiler=
758 + if use clang && ! tc-is-clang ; then
759 + # Force clang
760 + einfo "Enforcing the use of clang due to USE=clang ..."
761 + have_switched_compiler=yes
762 + AR=llvm-ar
763 + AS=llvm-as
764 + CC=${CHOST}-clang
765 + CXX=${CHOST}-clang++
766 + NM=llvm-nm
767 + RANLIB=llvm-ranlib
768 + elif ! use clang && ! tc-is-gcc ; then
769 + # Force gcc
770 + have_switched_compiler=yes
771 + einfo "Enforcing the use of gcc due to USE=-clang ..."
772 + AR=gcc-ar
773 + CC=${CHOST}-gcc
774 + CXX=${CHOST}-g++
775 + NM=gcc-nm
776 + RANLIB=gcc-ranlib
777 + fi
778 +
779 + if [[ -n "${have_switched_compiler}" ]] ; then
780 + # Because we switched active compiler we have to ensure
781 + # that no unsupported flags are set
782 + strip-unsupported-flags
783 + fi
784 +
785 + # Ensure we use correct toolchain
786 + export HOST_CC="$(tc-getBUILD_CC)"
787 + export HOST_CXX="$(tc-getBUILD_CXX)"
788 + tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
789 +
790 + # Pass the correct toolchain paths through cbindgen
791 + if tc-is-cross-compiler ; then
792 + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
793 + fi
794 +
795 + # Set MOZILLA_FIVE_HOME
796 + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
797 +
798 + # python/mach/mach/mixin/process.py fails to detect SHELL
799 + export SHELL="${EPREFIX}/bin/bash"
800 +
801 + # Set state path
802 + export MOZBUILD_STATE_PATH="${BUILD_DIR}"
803 +
804 + # Set MOZCONFIG
805 + export MOZCONFIG="${S}/.mozconfig"
806 +
807 + # Initialize MOZCONFIG
808 + mozconfig_add_options_ac '' --enable-application=browser
809 +
810 + # Set Gentoo defaults
811 + export MOZILLA_OFFICIAL=1
812 +
813 + mozconfig_add_options_ac 'Gentoo default' \
814 + --allow-addon-sideload \
815 + --disable-cargo-incremental \
816 + --disable-crashreporter \
817 + --disable-gpsd \
818 + --disable-install-strip \
819 + --disable-parental-controls \
820 + --disable-strip \
821 + --disable-updater \
822 + --enable-negotiateauth \
823 + --enable-new-pass-manager \
824 + --enable-official-branding \
825 + --enable-release \
826 + --enable-system-ffi \
827 + --enable-system-pixman \
828 + --host="${CBUILD:-${CHOST}}" \
829 + --libdir="${EPREFIX}/usr/$(get_libdir)" \
830 + --prefix="${EPREFIX}/usr" \
831 + --target="${CHOST}" \
832 + --without-ccache \
833 + --without-wasm-sandboxed-libraries \
834 + --with-intl-api \
835 + --with-libclang-path="$(llvm-config --libdir)" \
836 + --with-system-nspr \
837 + --with-system-nss \
838 + --with-system-zlib \
839 + --with-toolchain-prefix="${CHOST}-" \
840 + --with-unsigned-addon-scopes=app,system \
841 + --x-includes="${ESYSROOT}/usr/include" \
842 + --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
843 +
844 + # Set update channel
845 + local update_channel=release
846 + [[ -n ${MOZ_ESR} ]] && update_channel=esr
847 + mozconfig_add_options_ac '' --update-channel=${update_channel}
848 +
849 + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
850 + mozconfig_add_options_ac '' --enable-rust-simd
851 + fi
852 +
853 + # For future keywording: This is currently (97.0) only supported on:
854 + # amd64, arm, arm64 & x86.
855 + # Might want to flip the logic around if Firefox is to support more arches.
856 + if use ppc64; then
857 + mozconfig_add_options_ac '' --disable-sandbox
858 + else
859 + mozconfig_add_options_ac '' --enable-sandbox
860 + fi
861 +
862 + if [[ -s "${S}/api-google.key" ]] ; then
863 + local key_origin="Gentoo default"
864 + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
865 + key_origin="User value"
866 + fi
867 +
868 + mozconfig_add_options_ac "${key_origin}" \
869 + --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
870 + else
871 + einfo "Building without Google API key ..."
872 + fi
873 +
874 + if [[ -s "${S}/api-location.key" ]] ; then
875 + local key_origin="Gentoo default"
876 + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
877 + key_origin="User value"
878 + fi
879 +
880 + mozconfig_add_options_ac "${key_origin}" \
881 + --with-google-location-service-api-keyfile="${S}/api-location.key"
882 + else
883 + einfo "Building without Location API key ..."
884 + fi
885 +
886 + if [[ -s "${S}/api-mozilla.key" ]] ; then
887 + local key_origin="Gentoo default"
888 + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
889 + key_origin="User value"
890 + fi
891 +
892 + mozconfig_add_options_ac "${key_origin}" \
893 + --with-mozilla-api-keyfile="${S}/api-mozilla.key"
894 + else
895 + einfo "Building without Mozilla API key ..."
896 + fi
897 +
898 + mozconfig_use_with system-av1
899 + mozconfig_use_with system-harfbuzz
900 + mozconfig_use_with system-harfbuzz system-graphite2
901 + mozconfig_use_with system-icu
902 + mozconfig_use_with system-jpeg
903 + mozconfig_use_with system-libevent
904 + mozconfig_use_with system-libvpx
905 + mozconfig_use_with system-png
906 + mozconfig_use_with system-webp
907 +
908 + mozconfig_use_enable dbus
909 + mozconfig_use_enable libproxy
910 +
911 + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
912 +
913 + mozconfig_use_enable geckodriver
914 +
915 + if use hardened ; then
916 + mozconfig_add_options_ac "+hardened" --enable-hardening
917 + append-ldflags "-Wl,-z,relro -Wl,-z,now"
918 + fi
919 +
920 + local myaudiobackends=""
921 + use jack && myaudiobackends+="jack,"
922 + use sndio && myaudiobackends+="sndio,"
923 + use pulseaudio && myaudiobackends+="pulseaudio,"
924 + ! use pulseaudio && myaudiobackends+="alsa,"
925 +
926 + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
927 +
928 + mozconfig_use_enable wifi necko-wifi
929 +
930 + if use X && use wayland ; then
931 + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
932 + elif ! use X && use wayland ; then
933 + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
934 + else
935 + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
936 + fi
937 +
938 + if use lto ; then
939 + if use clang ; then
940 + # Upstream only supports lld when using clang
941 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
942 +
943 + mozconfig_add_options_ac '+lto' --enable-lto=cross
944 +
945 + else
946 + # ThinLTO is currently broken, see bmo#1644409
947 + mozconfig_add_options_ac '+lto' --enable-lto=full
948 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
949 + fi
950 +
951 + if use pgo ; then
952 + mozconfig_add_options_ac '+pgo' MOZ_PGO=1
953 +
954 + if use clang ; then
955 + # Used in build/pgo/profileserver.py
956 + export LLVM_PROFDATA="llvm-profdata"
957 + fi
958 + fi
959 + else
960 + # Avoid auto-magic on linker
961 + if use clang ; then
962 + # This is upstream's default
963 + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
964 + else
965 + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
966 + fi
967 + fi
968 +
969 + # LTO flag was handled via configure
970 + filter-flags '-flto*'
971 +
972 + mozconfig_use_enable debug
973 + if use debug ; then
974 + mozconfig_add_options_ac '+debug' --disable-optimize
975 + else
976 + if is-flag '-g*' ; then
977 + if use clang ; then
978 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
979 + else
980 + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
981 + fi
982 + else
983 + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
984 + fi
985 +
986 + if is-flag '-O0' ; then
987 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
988 + elif is-flag '-O4' ; then
989 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
990 + elif is-flag '-O3' ; then
991 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
992 + elif is-flag '-O1' ; then
993 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
994 + elif is-flag '-Os' ; then
995 + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
996 + else
997 + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
998 + fi
999 + fi
1000 +
1001 + # Debug flag was handled via configure
1002 + filter-flags '-g*'
1003 +
1004 + # Optimization flag was handled via configure
1005 + filter-flags '-O*'
1006 +
1007 + # Modifications to better support ARM, bug #553364
1008 + if use cpu_flags_arm_neon ; then
1009 + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
1010 +
1011 + if ! tc-is-clang ; then
1012 + # thumb options aren't supported when using clang, bug 666966
1013 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \
1014 + --with-thumb=yes \
1015 + --with-thumb-interwork=no
1016 + fi
1017 + fi
1018 +
1019 + if [[ ${CHOST} == armv*h* ]] ; then
1020 + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
1021 +
1022 + if ! use system-libvpx ; then
1023 + sed -i \
1024 + -e "s|softfp|hard|" \
1025 + "${S}"/media/libvpx/moz.build \
1026 + || die
1027 + fi
1028 + fi
1029 +
1030 + if use clang ; then
1031 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
1032 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
1033 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
1034 + local disable_elf_hack=
1035 + if use amd64 ; then
1036 + disable_elf_hack=yes
1037 + elif use x86 ; then
1038 + disable_elf_hack=yes
1039 + elif use arm ; then
1040 + disable_elf_hack=yes
1041 + fi
1042 +
1043 + if [[ -n ${disable_elf_hack} ]] ; then
1044 + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
1045 + fi
1046 + elif tc-is-gcc ; then
1047 + if ver_test $(gcc-fullversion) -ge 10 ; then
1048 + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1049 + append-cxxflags -fno-tree-loop-vectorize
1050 + fi
1051 + fi
1052 +
1053 + # Additional ARCH support
1054 + case "${ARCH}" in
1055 + arm)
1056 + # Reduce the memory requirements for linking
1057 + if use clang ; then
1058 + # Nothing to do
1059 + :;
1060 + elif use lto ; then
1061 + append-ldflags -Wl,--no-keep-memory
1062 + else
1063 + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
1064 + fi
1065 + ;;
1066 + esac
1067 +
1068 + if ! use elibc_glibc ; then
1069 + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
1070 + fi
1071 +
1072 + # Allow elfhack to work in combination with unstripped binaries
1073 + # when they would normally be larger than 2GiB.
1074 + append-ldflags "-Wl,--compress-debug-sections=zlib"
1075 +
1076 + # Make revdep-rebuild.sh happy; Also required for musl
1077 + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
1078 +
1079 + # Pass $MAKEOPTS to build system
1080 + export MOZ_MAKE_FLAGS="${MAKEOPTS}"
1081 +
1082 + # Use system's Python environment
1083 + PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
1084 +
1085 + if use system-python-libs; then
1086 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
1087 + else
1088 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
1089 + fi
1090 +
1091 + # Disable notification when build system has finished
1092 + export MOZ_NOSPAM=1
1093 +
1094 + # Portage sets XARGS environment variable to "xargs -r" by default which
1095 + # breaks build system's check_prog() function which doesn't support arguments
1096 + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
1097 +
1098 + # Set build dir
1099 + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
1100 +
1101 + # Show flags we will use
1102 + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
1103 + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
1104 + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
1105 + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
1106 + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
1107 +
1108 + # Handle EXTRA_CONF and show summary
1109 + local ac opt hash reason
1110 +
1111 + # Apply EXTRA_ECONF entries to $MOZCONFIG
1112 + if [[ -n ${EXTRA_ECONF} ]] ; then
1113 + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
1114 + for opt in "${ac[@]}"; do
1115 + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
1116 + done
1117 + fi
1118 +
1119 + echo
1120 + echo "=========================================================="
1121 + echo "Building ${PF} with the following configuration"
1122 + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
1123 + [[ -z ${hash} || ${hash} == \# ]] \
1124 + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
1125 + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
1126 + done
1127 + echo "=========================================================="
1128 + echo
1129 +
1130 + ./mach configure || die
1131 +}
1132 +
1133 +src_compile() {
1134 + local virtx_cmd=
1135 +
1136 + if use pgo ; then
1137 + virtx_cmd=virtx
1138 +
1139 + # Reset and cleanup environment variables used by GNOME/XDG
1140 + gnome2_environment_reset
1141 +
1142 + addpredict /root
1143 + fi
1144 +
1145 + if ! use X && use wayland; then
1146 + local -x GDK_BACKEND=wayland
1147 + else
1148 + local -x GDK_BACKEND=x11
1149 + fi
1150 +
1151 + ${virtx_cmd} ./mach build --verbose \
1152 + || die
1153 +}
1154 +
1155 +src_install() {
1156 + # xpcshell is getting called during install
1157 + pax-mark m \
1158 + "${BUILD_DIR}"/dist/bin/xpcshell \
1159 + "${BUILD_DIR}"/dist/bin/${PN} \
1160 + "${BUILD_DIR}"/dist/bin/plugin-container
1161 +
1162 + DESTDIR="${D}" ./mach install || die
1163 +
1164 + # Upstream cannot ship symlink but we can (bmo#658850)
1165 + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
1166 + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
1167 +
1168 + # Don't install llvm-symbolizer from sys-devel/llvm package
1169 + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
1170 + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
1171 + fi
1172 +
1173 + # Install policy (currently only used to disable application updates)
1174 + insinto "${MOZILLA_FIVE_HOME}/distribution"
1175 + newins "${FILESDIR}"/distribution.ini distribution.ini
1176 + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
1177 +
1178 + # Install system-wide preferences
1179 + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
1180 + insinto "${PREFS_DIR}"
1181 + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
1182 +
1183 + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
1184 +
1185 + # Set dictionary path to use system hunspell
1186 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
1187 + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
1188 + EOF
1189 +
1190 + # Force hwaccel prefs if USE=hwaccel is enabled
1191 + if use hwaccel ; then
1192 + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
1193 + >>"${GENTOO_PREFS}" \
1194 + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
1195 +
1196 + if use wayland; then
1197 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
1198 + pref("gfx.x11-egl.force-enabled", false);
1199 + EOF
1200 + else
1201 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
1202 + pref("gfx.x11-egl.force-enabled", true);
1203 + EOF
1204 + fi
1205 + fi
1206 +
1207 + if ! use gmp-autoupdate ; then
1208 + local plugin
1209 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1210 + einfo "Disabling auto-update for ${plugin} plugin ..."
1211 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
1212 + pref("media.${plugin}.autoupdate", false);
1213 + EOF
1214 + done
1215 + fi
1216 +
1217 + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
1218 + if use system-harfbuzz ; then
1219 + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
1220 + sticky_pref("gfx.font_rendering.graphite.enabled", true);
1221 + EOF
1222 + fi
1223 +
1224 + # Install language packs
1225 + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
1226 + if [[ -n "${langpacks}" ]] ; then
1227 + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
1228 + fi
1229 +
1230 + # Install geckodriver
1231 + if use geckodriver ; then
1232 + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
1233 + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
1234 + exeinto "${MOZILLA_FIVE_HOME}"
1235 + doexe "${BUILD_DIR}"/dist/bin/geckodriver
1236 +
1237 + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
1238 + fi
1239 +
1240 + # Install icons
1241 + local icon_srcdir="${S}/browser/branding/official"
1242 + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
1243 +
1244 + insinto /usr/share/icons/hicolor/symbolic/apps
1245 + newins "${icon_symbolic_file}" ${PN}-symbolic.svg
1246 +
1247 + local icon size
1248 + for icon in "${icon_srcdir}"/default*.png ; do
1249 + size=${icon%.png}
1250 + size=${size##*/default}
1251 +
1252 + if [[ ${size} -eq 48 ]] ; then
1253 + newicon "${icon}" ${PN}.png
1254 + fi
1255 +
1256 + newicon -s ${size} "${icon}" ${PN}.png
1257 + done
1258 +
1259 + # Install menu
1260 + local app_name="Mozilla ${MOZ_PN^}"
1261 + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
1262 + local desktop_filename="${PN}.desktop"
1263 + local exec_command="${PN}"
1264 + local icon="${PN}"
1265 + local use_wayland="false"
1266 +
1267 + if use wayland ; then
1268 + use_wayland="true"
1269 + fi
1270 +
1271 + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
1272 +
1273 + sed -i \
1274 + -e "s:@NAME@:${app_name}:" \
1275 + -e "s:@EXEC@:${exec_command}:" \
1276 + -e "s:@ICON@:${icon}:" \
1277 + "${WORKDIR}/${PN}.desktop-template" \
1278 + || die
1279 +
1280 + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
1281 +
1282 + rm "${WORKDIR}/${PN}.desktop-template" || die
1283 +
1284 + # Install wrapper script
1285 + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
1286 + newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
1287 +
1288 + # Update wrapper
1289 + sed -i \
1290 + -e "s:@PREFIX@:${EPREFIX}/usr:" \
1291 + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
1292 + -e "s:@APULSELIB_DIR@:${apulselib}:" \
1293 + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
1294 + "${ED}/usr/bin/${PN}" \
1295 + || die
1296 +}
1297 +
1298 +pkg_preinst() {
1299 + xdg_pkg_preinst
1300 +
1301 + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse
1302 + # does not need to be forced into the LD_LIBRARY_PATH
1303 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1304 + einfo "APULSE found; Generating library symlinks for sound support ..."
1305 + local lib
1306 + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die
1307 + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do
1308 + # A quickpkg rolled by hand will grab symlinks as part of the package,
1309 + # so we need to avoid creating them if they already exist.
1310 + if [[ ! -L ${lib##*/} ]] ; then
1311 + ln -s "${lib}" ${lib##*/} || die
1312 + fi
1313 + done
1314 + popd &>/dev/null || die
1315 + fi
1316 +}
1317 +
1318 +pkg_postinst() {
1319 + xdg_pkg_postinst
1320 +
1321 + if ! use gmp-autoupdate ; then
1322 + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
1323 + elog "installing into new profiles:"
1324 + local plugin
1325 + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
1326 + elog "\t ${plugin}"
1327 + done
1328 + elog
1329 + fi
1330 +
1331 + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then
1332 + elog "Apulse was detected at merge time on this system and so it will always be"
1333 + elog "used for sound. If you wish to use pulseaudio instead please unmerge"
1334 + elog "media-sound/apulse."
1335 + elog
1336 + fi
1337 +
1338 + local show_doh_information
1339 + local show_normandy_information
1340 + local show_shortcut_information
1341 +
1342 + if [[ -z "${REPLACING_VERSIONS}" ]] ; then
1343 + # New install; Tell user that DoH is disabled by default
1344 + show_doh_information=yes
1345 + show_normandy_information=yes
1346 + show_shortcut_information=no
1347 + else
1348 + local replacing_version
1349 + for replacing_version in ${REPLACING_VERSIONS} ; do
1350 + if ver_test "${replacing_version}" -lt 91.0 ; then
1351 + # Tell user that we no longer install a shortcut
1352 + # per supported display protocol
1353 + show_shortcut_information=yes
1354 + fi
1355 + done
1356 + fi
1357 +
1358 + if [[ -n "${show_doh_information}" ]] ; then
1359 + elog
1360 + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
1361 + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
1362 + elog "DNS traffic to Cloudflare by default is not a good idea and applications"
1363 + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
1364 + elog "(\"Off by choice\") by default."
1365 + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
1366 + fi
1367 +
1368 + # bug 713782
1369 + if [[ -n "${show_normandy_information}" ]] ; then
1370 + elog
1371 + elog "Upstream operates a service named Normandy which allows Mozilla to"
1372 + elog "push changes for default settings or even install new add-ons remotely."
1373 + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
1374 + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
1375 + elog "concerns prevail, which is why we have switched off the use of this"
1376 + elog "service by default."
1377 + elog
1378 + elog "To re-enable this service set"
1379 + elog
1380 + elog " app.normandy.enabled=true"
1381 + elog
1382 + elog "in about:config."
1383 + fi
1384 +
1385 + if [[ -n "${show_shortcut_information}" ]] ; then
1386 + elog
1387 + elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
1388 + elog "each supported display protocol. Instead we will only install"
1389 + elog "one generic Mozilla ${PN^} shortcut."
1390 + elog "If you still want to be able to select between running Mozilla ${PN^}"
1391 + elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
1392 + fi
1393 +
1394 + # bug 835078
1395 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then
1396 + ewarn "You have nouveau drivers installed in your system and 'hwaccel' "
1397 + ewarn "enabled for Firefox. Nouveau / your GPU might not support the "
1398 + ewarn "required EGL, so either disable 'hwaccel' or try the workaround "
1399 + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes."
1400 + fi
1401 +
1402 + elog
1403 + elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
1404 + elog "useragent checks. To temporarily fix this, enter about:config and modify "
1405 + elog "network.http.useragent.forceVersion preference to \"99\"."
1406 + elog "Or install an addon to change your useragent."
1407 + elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
1408 + elog
1409 +}