diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-10-10 15:35:22 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-10-10 15:35:58 +0300 |
commit | 7fd8f003be0093ba374408164a5303a0d0647e4b (patch) | |
tree | b4c8f8052cf7c052b2f698a20f01e76073cae1c3 /www-client/firefox | |
parent | www-client/firefox: add 131.0.2 (diff) | |
download | gentoo-7fd8f003be0093ba374408164a5303a0d0647e4b.tar.gz gentoo-7fd8f003be0093ba374408164a5303a0d0647e4b.tar.bz2 gentoo-7fd8f003be0093ba374408164a5303a0d0647e4b.zip |
www-client/firefox: add 128.3.1
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 101 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.3.1.ebuild | 1368 |
2 files changed, 1469 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 5b4dee2d5cfa..85faf41cc948 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -200,6 +200,107 @@ DIST firefox-128.3.0esr-xh.xpi 418008 BLAKE2B b7511594e6522c623c1c57b4c0f5781e68 DIST firefox-128.3.0esr-zh-CN.xpi 662331 BLAKE2B c64a2f4b2643c3e590b13cb88d9103e34681375c45edf3388e3561f0fa68811cd331243e91f8e5dc97d8e88ff850f6ea33815012f3ff4598ed1902e44491614d SHA512 0df66f8c593ca887c22b84ef75d91035f476a0325352673106b58ca83a7ec1875601aa5491bc565d3e42cbcb20799c6dcce7feb723dc30c57a1a2be0f4d05e60 DIST firefox-128.3.0esr-zh-TW.xpi 666620 BLAKE2B 3538b25e9b685638fc1de2877c3a6534dabf545cf18b8baadd02fd19829a367e2b5fac07518cade4d21a6f2c69d5dfb940ea299d9ff5967925548111abfb6398 SHA512 dfd8e0f86ee5d78d77ef68a97b6030afe34db6c338c0a73288a68a2a6bb864a0233342f5f79b1ae043d0b97f92c35fec3304bc0a49310e66fca8b6554a389ef2 DIST firefox-128.3.0esr.source.tar.xz 560960556 BLAKE2B 015fefb408dcea5733053151aff05579b007ab757542a47956e007dc127b460f4a35e885a2ee4ef4dbb936820c8ea3907b00383f659b15a84e701590b50a5d72 SHA512 3c6ef272c0fb653d030fe3f7f72aa0e1097b1c6759556166815cde15465330f988b3bc23df4b4eb753daee930edbb1ef72145273cb29d0952bd9d7c547050f9b +DIST firefox-128.3.1esr-ach.xpi 465009 BLAKE2B 6fb67b0098c36fadca7c4f10c128c7fec3e9d654184739361293d3c3fb86193bff220fa394d13f1b210ad9023a153f05a2f2b6dd5e4ddbba858107a2b5b518db SHA512 7e213b54f0c502f3dfa1561cbc0c00cfb374678da18aeb514fd606b5e4948fe6169c787167b0f869c8c3501a50339ddb832aedf5d359fb4ec78866c29403303d +DIST firefox-128.3.1esr-af.xpi 418339 BLAKE2B 9da53c6d55065adf2a4c95afa88e566a2945a7f1156c55ce05e2221bd8bcb9ea9b194bc4f291246a23c44565734becc0c043fc63e446307b114e927690aff1c8 SHA512 2f0f6a22bde70af4c1a5ce495c3fc88c7f08bdb911fbef0db9a1176a9716f668cda8ecadd3cb73d35b28b7bc7255087201e50fd8afdfa72796284c315a61ba4a +DIST firefox-128.3.1esr-an.xpi 506830 BLAKE2B d0484beed94db1ca4af0cbb1e48d6eb04dea11d7ee939b44c64049aab4ea60648a2430faa7e19faecea033138c584d045c877d6a13b0fafa93f6f3c76208e1b5 SHA512 fc24abeeb18fe078c3231f216de0c4cf9bee36036dbbdfeda9b9eae7516871ed7eb246f02f0ba0a2b770fb05d8ca9b680f701331e53820c5e8042814f7811aec +DIST firefox-128.3.1esr-ar.xpi 612889 BLAKE2B 159b09c5b5958b6abc5f93bbb58bda4ec1d6ba1785eda9e52bdfb1b2601c5e9c5959affa4b9164c1eeac1a53a46e00fef231460b6673462d599c773da347e8df SHA512 046df98eb50849fd82651aa67a8f04b8cc91929a75232a2722a1648bc99cbc82a037851348f4772ba499942c83ae7070c2c942047a3c6838d486c9fb88c94cb9 +DIST firefox-128.3.1esr-ast.xpi 497284 BLAKE2B 79c13d8806d628fdb47cadb80b60654508e2b7b5194d2a5b2c79b1ae88b2358e4fd921e427f7e69448c5ea642760de11aa39e5293d0e9031b584d1a3218f9cb9 SHA512 f1705e7aef8c24ab7f3c2ebcb71e9697959f7a15d6a8c400dc68a0ed09a3b3dada8f8f0c681343a99da20cdd88610151433d81df04d4b58471dba2ea34fbf3c1 +DIST firefox-128.3.1esr-az.xpi 491718 BLAKE2B d37266bd7cbca8d9df27623aa3e6da3d505c8a41c61bd8f3b7a1da5110802d0c350d548c1f31c01890af98e69e2f26d68db669206c721e22284acb13083896d6 SHA512 5ab53b6be6a5dbd8ba3aa6ef4a52b5fd6e660a87cf3467687c37b51e73a494d520d0c1aef46b029dd4ed5c4c335a58678f5e1a6a66c50a105c71f950eb317550 +DIST firefox-128.3.1esr-be.xpi 717316 BLAKE2B 54f1017fa41fe8ed258d9996db0e56ef47ac153e0a8c911ef69e9e19c92b31162465fd31b0ebbe2579109d459e694449e0e366f9d167adf912f884d081e63f73 SHA512 8b75da75504a66a4b4dbbb9ceec892c423483557604594ef9ae3b2a819e4c3b52b2f2a7f0e42ad25a9175a42b86fa05783c8434ae53f3af55040812889965cbd +DIST firefox-128.3.1esr-bg.xpi 637135 BLAKE2B 4b8ab5fe1921c35d3be7f06af76261e3ee14edd3d347f031ae832cbb3b02ac5d5f072537d3a8dbde69079ff513bbf33f26bde6f9c57b36708e9b41b053538eee SHA512 00685393b82d71c021c8e87d6f2dbd0967dc5b2d89877f4a7681452473cb4f577df25bcb22f2af0a23047770dbef19b14282726748943488c803dd2e89bcd192 +DIST firefox-128.3.1esr-bn.xpi 582461 BLAKE2B 272baa4d11936b7cebdd78c2d32aa0027b6f739e023db0f5306cf8d84a0494ddde7d642bd279b5fbd749b2dcdabcf4e713ac55d716e02df2e57912a51d753660 SHA512 198c5132738a782989d68f0ec7933e24a23b69745438b0f1ff36bd3c5e9ab86698619f3862aea385ad0435416dccaaff13eb283b51b0ae9d04705aba2c1bef46 +DIST firefox-128.3.1esr-br.xpi 590828 BLAKE2B 8f7fc715795f204cbffb92ccfb31dc5b0f0b9d5f9eab8a08435e1e67a96ef12427af2b5bdc271a148e27aa81ec773a23b2e5de4731c930a2054347013fdb353e SHA512 9d5c01a18ec9080e7c15df54eb2303685333943264035208a1ce29f76da980068c55d9c06828356fef188f1e9bfe1ba05567efc69b677117abd61b1dddf7f55a +DIST firefox-128.3.1esr-bs.xpi 510169 BLAKE2B 832aa36686162ff36adab7e256fad9e006bd627ff4fb5c2c1b877f6ffed622d0a06c2fa5a75c8a3dd00b4d653c9212966025e340f3adb2af3f4d3ed7c1350c57 SHA512 fe099381c4def9dab4c66a81d1c80421df0ab998647bd9564bdd3a67e43ae42ebf01211f1cfc334937da581d9f937af4889a5a4ecf12fa230047deebe9d8aba6 +DIST firefox-128.3.1esr-ca-valencia.xpi 547177 BLAKE2B 3d74dee3ee15663c2023ba06ab33267a85251c4b10edaa29a6ca52933b8b3154ac910760e2fadf746a66ca7bd770bfdd897306c41980ed05cfec53ee15c661d5 SHA512 55ae0831a864d3538c0bc19990afbe2af3c6e5cf2c3de00f6764cfb4945c840d34e44e42f840bb64caae184622c944c8a7fd2d347ded0ca2deae63b8940d3f88 +DIST firefox-128.3.1esr-ca.xpi 598609 BLAKE2B ecf7872c878178b9dbbdca37da34d34bfdcf1e40d9f28cf50e062c313e09f31699b4328bd13dc6784291162906a5ced4bcb7458e2b57ddbc5ba069b3e3de8058 SHA512 d94f4c307c1ce6e1aa4de082c4fcefdbdaf595858844a81cc68bacd56712e9ff25b501372a3369440c1e47e508351fcfd82bf83a9c783c330c487ad2e2e9d328 +DIST firefox-128.3.1esr-cak.xpi 594033 BLAKE2B ed4d8764dbc257a45716e70b17c732359ed39203ec673e4a1c38ecbbda4bc83a93d61d8364d210aa63d2d143cb71f8a963947528061d71cce0be03558c429349 SHA512 f66f446cd83add03f08b77041de28945a1e3098721a2769e65f1f6289eb0a00d6bfa9400025dadcfd3d178addca66484eafdf4116fc5d0ff0fc0c244639f48bc +DIST firefox-128.3.1esr-cs.xpi 666458 BLAKE2B aa51de4375015d53e70802c3eb7935d92cb4b80b37cbf6d4a8964d813a7c323f15f66e50f36dac293ecb99126395669d19ed4c1fde69a1c5150762c60719b679 SHA512 d55d5a9abdd7d3e26198ccfb3dc633a05d4d1b80b31b02a3f64e12421022e3f10229b76a78f87cd322beb43d862b5fa682960a38a8fb4ada3decc75109994f6e +DIST firefox-128.3.1esr-cy.xpi 631256 BLAKE2B 1f53cd9860e4ab44bd0a465e105a35dfc68672f076a64a2513a9af0f2b3ee69d6fa3a06c55b456b75049e313b40c0d5ded88f93506de806727ef0e6f9395b5fb SHA512 02a5a4d5d217964c7abdd630b06cadc2ce7789684434bec8bbe415dff5943bf45d7741070c457f9da99273361ac1c7de8bed0b8a627c6f3820d6f8004e27bfff +DIST firefox-128.3.1esr-da.xpi 614497 BLAKE2B f8b4aa5c7fe500f4e4486e4269861ad379d8e15e36d887be44286b61c11958cd7a605666428a2783ffc3d505742c5ef30eb26325fe94ae9c57e127650cd6bcda SHA512 280a743eb2e1a2a6682dbc3d74ae5ac071ec3a74be9ec972824f618ad4c09238f44b685fd0d8850fe4457249f606c900e33950727f00eee32e5975b6cf9c96dc +DIST firefox-128.3.1esr-de.xpi 639267 BLAKE2B 29d2314f9b0f2a9e57ec1b14c62157a825dd6a7bcbfe77be6632f8f8e0a2969fb20885ba30089e1575d0f264b7ddbba2d4ab1d5434f1e0bfb5d31afeb52678a4 SHA512 d1b8c6fc15ddf6332a035676a08bf45044676f130502e12d66c84e754a3d082e9fef7bc3e85f93a834c67b497d7b2e023f5d2884b44466d02e52c8cb32162ad8 +DIST firefox-128.3.1esr-dsb.xpi 656617 BLAKE2B c413b929f0039b38665aa3b62682c9347a9e63418b2159ab0d3c97609748bc09f91ea3aca3bc9611a000c4151022138eb042fe942b2e34b1e82e923dd65ff16b SHA512 7f149fb7d015353e7f723dddb3cef9227360b270329394fa58fb7f10d14e4ce86eb5ef587ded6e03fa9d0ad7f7fe27685fa1311a66d1e4160cdb207eb9624774 +DIST firefox-128.3.1esr-el.xpi 741109 BLAKE2B ecc91de783081da2ecf3e4226616c00f5f582f098d031eb96b0891a8d752e95bdb6bf4f631c14eef2847735e987f9858a2ffff26b559679a5b3fddd00b23a389 SHA512 9b7498c8a3c2cad79d2e6d82e16b8b8411ba3b6083b113a205a42e9d3534c8b49c5ede082abe94b9ce3e279eb3b764fdb26df0af16258e2fb63585e637b26244 +DIST firefox-128.3.1esr-en-CA.xpi 590915 BLAKE2B cf70d36b4f500471019a2f547e7a25460d1dec6c01bdec0c5b42039baeee0840f62b28fa368a6ef7e57edcc2f7c869c1e6fff39a167f350fac6955b69c23ad1a SHA512 6d94c52d5c64bebf0bc16c964ea4722560af47e0ace0ff5445602daba96c5b78f072b7c15ae7a86ed64b1a10893ea5271d7f672a54e242c3f1c342f94a3221a7 +DIST firefox-128.3.1esr-en-GB.xpi 591528 BLAKE2B 8aecd4753ac68d497102f4088cb4d7045915113f868f78e2210733a3b365bbae6e078d5b37dcce322560808bda9bcfdb559f77191645233c4fbbb4d23ede2a80 SHA512 97b501c3038a6b05404491af0d497b3d4c4a115e508d7a7dfab3b51d5c5d09bf9908e990dc8e92c0ebb85fe32af4200543d94a091387eb592d077c78d31b9bad +DIST firefox-128.3.1esr-eo.xpi 615504 BLAKE2B de3aa98fc809c4325d88257c9ab705767ef9cb0d77407c648c3133fe7653a97598adfae6ae5ee74d2c456dbc959c3f5a3f2f44bcfb78f58198e2c6c1f4743646 SHA512 4a8d293666640a6f1f927963b562578dca581aa4085f0fd3a1f748468a8cbd74539e2023783c076430d9e7f72fd563db544c351be6092bba42ec2b3dc54eea95 +DIST firefox-128.3.1esr-es-AR.xpi 634655 BLAKE2B 96d3ffcc95204848e165772670e9a31fb5d663eddcfa8a565285f24f0fed51b12dbf22c70ccc3b0abecd6a405772e8aebe65766615c8db2da2a0c18665f078db SHA512 4a4726e3948b4449402cdb488d44d27d5b7d5b34e8bac5c58a9a2c4db7c930ae2699af02af547a611cc8a07db99a77b4270db13f660c4204955658d0fc8860ed +DIST firefox-128.3.1esr-es-CL.xpi 634130 BLAKE2B f9d55b64542bab3ae4a337b618bcf814154f1260e3677069774477f1611a5929169d163bed3196d049bc9ec941e1a70a8a2892185f1e44ab289d8efe05374f0c SHA512 efd55dacb7b7caeae258e389d1112a3dd2e6f5389972990c11f9f686e881e524fc98c7e79dd50a22760ed0ec3dbe01c54b8a891d249a3bd34cd24a22f6087e79 +DIST firefox-128.3.1esr-es-ES.xpi 622030 BLAKE2B 103cc77202277381dd9c06c22dfff7a68ad69238c9c577601716752404cbc6036ab5245baf8bace961951a9a827504ba8bf7966368bd8008a78b56ab65492b9b SHA512 62ad5bd92bc57ef7a6dcb754b2375efb92a74eaa8ab249188cbc9881f5c90369e2b1cf96461b84fcf4d5731ee7fabdc6f4e8c407198b470953c9a74a1018f049 +DIST firefox-128.3.1esr-es-MX.xpi 610629 BLAKE2B a2d466811e41e89c25cfadc2870a0742a14363dcefca9a3758035bd4f5bad9bae8588484298c159b1499bcc8ffe3425d2617245cd3933d2521e99ad8885f698f SHA512 e6d1fd58ea4c75c98b5daf3ec45c780668586516a95b262034cd02e11345b6b3af415b050c43401d84b63f21668db63a855d11f83774c5017e9475aff53f16ea +DIST firefox-128.3.1esr-et.xpi 540644 BLAKE2B 8811f72f4f2f524c36dcc79e398b00106610de768ca68fa0413abd6ee809d90274df6d88df2003735379f19a957110d0c9b9283c247e028521d792d214c51178 SHA512 0fabae5149d9bcf61aa6826766d7b74f879d175e021398247ce4bf2daf0c85415a9038949fdacf62392e2b2b3b4f2142c482e341fed45f594534734c49afd697 +DIST firefox-128.3.1esr-eu.xpi 601105 BLAKE2B 10bb38ec2944ec29d4f2f1d34ef8e5f766954dbbce427fd5ebed80eb7f5a53daa47c1c9e6cc01ea20cb3a5f4569cb0c11f58818c1125e738c22f7666024852ea SHA512 39dc9b1a1eb3675cf6731b0a9092d975d3312cc4fc0b1d934fba50f50995fd697abfc112869f9668800df18c7ea88bb15deb6e6903ad298fdccee63c65118004 +DIST firefox-128.3.1esr-fa.xpi 590967 BLAKE2B 0c1f13d1b2e904b5f1d7855354235b60fd49447e871dd40881a5210ebeb3681f9df742f9fbb78be5639e215ecc85487e79c02a6f508e77e21cd396b66f54b8cf SHA512 d37e0a4135bb7dd87ff4f7b7b5f24c9b9ad64139a103242604a98372ac13f426f2fa8cb2e001384bf8cda71fb8edb59e4d4e5624ce1fcf5788c1c77196eb246b +DIST firefox-128.3.1esr-ff.xpi 476997 BLAKE2B a37b1dbc0301090e708d3ba91be1253735d613c8a111f1f96c92155a4531d010a0ea0fd4eada827cc68ecb5739bc1e314393f2a307bbe8e546364145c80c50a3 SHA512 8b0649b9e48b17127f0c9ac13c02ec42ef395c0814cae2b57687c9be737723b8f5cf9adb22fe5d027b76998ebb48208a935eb15f45ed712f0351191f2a6c21ec +DIST firefox-128.3.1esr-fi.xpi 613324 BLAKE2B 25dd28065683a2d60bc7d15cc0d2da01818d10bad2e5091115f23c0e8a401d249d70a14be0e94a5da37378ea5249aff0e5e36363f825cfa3bb937e193e713ae8 SHA512 b3ac5a0c56e363a48f6bd635579a28343122c54209d6b2ce0fe1ed9f16d53280bb7adf95815bfefa4a546c632af00a0568e8be63a9d3a86a20de34df7af65753 +DIST firefox-128.3.1esr-fr.xpi 646208 BLAKE2B 626777dcc7db9933a50cd669206ecba5c7b58d2e40cede888e287afc4883055cb26753f79577fe3eea3ecb573e4735a922fe2609de195527a17cd7e7b9596a32 SHA512 d315f85734998d128a24acd12a9f5b5eb12b15f02571a008366eff1ac866ecb47a0c4f86f30ba71aac3d9e1cfb6041bfd138ea8abee7bb9e7e11bc7df4fc4adb +DIST firefox-128.3.1esr-fur.xpi 640935 BLAKE2B 6b0fbf417cc63c721b8abc6aaa6446143cdbd1647a9c616a305a2258a66a28d25c56a2cf8dd0168c14defa98320570f44ab9c8b3bfef9091225bd81f8f6e39f1 SHA512 3f9aa1d782b31c8efcbc40c4760ddec8f2a551aa48db08c362e7daa5176c63588ee8390271d6dc3d44fb1d8949a072d27a8ed7e4237aabc2d6d9285b84efff8a +DIST firefox-128.3.1esr-fy-NL.xpi 630341 BLAKE2B 12b774c08c96d6fc6753e7c47888fecdbb3871a3b1c7632b084c31b40aaf43851e16240bfc63cb6a50a6dd0294700b8a411aa936bb94bc104b1aaa23849de4ae SHA512 8a67c3aae5a489a346a05bc560ead85ff7a5873d9850c9edee0f2cdb2649e3f90699208769c5099c347731b8b4f24ffbef011a9542c3977173211ce5e60ffcfc +DIST firefox-128.3.1esr-ga-IE.xpi 471844 BLAKE2B 54028388b381416a3f8eeb106b6d74cbc60264c2cab15ffd74fc58110bf647ffbfd2fa4c6072e616dad90ed7059a75eeb46a55e3d11670998c5bf34ee4ff7542 SHA512 b31105128926a84d10bfade01854c510b32b0dc53520f997e04a17fef37e100faede0d726153b6f2b112d65d2516da2869b3cbdb7e4668b0975cfc6cada10e8b +DIST firefox-128.3.1esr-gd.xpi 597536 BLAKE2B e40f7ef9ed836bb2e3c7745d7dd4c6ac795d942f7026aead90787b6acc1e7996eeea2fdc337c22ab037008cddfa5d6d0e560bde0b3378428c194f19f118faa9c SHA512 778a39c1d3bf353477f1f2c7b82d646b06c987faffd83a22f19fd344e95c07cfc7bc7bc4860f598e11c370c8fde85630e51eca763357fae006e1f776fca91d65 +DIST firefox-128.3.1esr-gl.xpi 605030 BLAKE2B c96b551818ac06587dd5e4bf1a89d8c2c556c02660641ec97890bf6eaa77e6030e91b0a07e1aca32f143532166beb72df836a015b817e70a0113a4d163ca2524 SHA512 1f55ab73cab99ede1d959d37f8a1789bd221419020961e103047dc47b87ef613efcc1723e1e9cc0aabaae9e9fcda89a92940763450d21a035778c7224ca30fcf +DIST firefox-128.3.1esr-gn.xpi 643640 BLAKE2B 2b4535ed43ff198a725025ebe1bc826a54310114b53b240fc8565f24b1dfafdd7de7bdd1a332ac18c0c69a56f3d4b92ca5d9b45d2e03c407f138bff257868d6d SHA512 c916e24ab33f5851a2df1c0a5c938e505dff236048139d66956e57a2b1aa7b7d1e75090dc226594de899863ca8438cd55d63cd7ea59abeb33b1d94816b804108 +DIST firefox-128.3.1esr-gu-IN.xpi 528303 BLAKE2B 72714ec3522862347fad25c976d89762f6712281b517e555accd6f129757ac7e74691c3e95e1580f760ac38ec4065c7f8f5f371974479056a17c49dc8153dbf6 SHA512 eef8e07280292360a6499577589cd7df3957300c6bf515b48a232cb354fde1b1aa3348830cceeb29d28243b413eb77c04e484622e68d9d81c71f0fe81340fff3 +DIST firefox-128.3.1esr-he.xpi 637783 BLAKE2B 8ee848441f4705cd05354f9e7a967b018dce77dbee5aa7c7e8676abb4691ad4b9450fd5026c81ae0a83fa9859bb36b5c67ecabe55029044a7bb48b192540a563 SHA512 afbdb6ce8e7defbb87a3118c635b24d9fc447228d25875c1cba7ec68e8f1fcc49333cdc2f09b01207701259f96f832e5b277d1a10308467f427289ef33362b29 +DIST firefox-128.3.1esr-hi-IN.xpi 567737 BLAKE2B 9ec788b5bfe6d11a1498459b6d99846ae88ca387451d2cd61d8576f6709fdf681d0a7e1392468991fdd99e6abbf5dc4c3a91d81cd7fb30e603571e99c6d47304 SHA512 fc5454cca5c8fe47c90ad895bffc40b397b34bf142d20212e3891364c6fe7398b1c85023a1bd6cdebcd7a089f0bf1e86e16abef6d140377f03a72222ce4fe99a +DIST firefox-128.3.1esr-hr.xpi 615346 BLAKE2B a2676ce43edf0c7d77c892f79f5a31a3e68b6969bcb7de54b6ee2fcc7cb3109a95c9b73989aea3f89a2b3550a8edab4efecc1602ab8b3749b79d38c6fc08576a SHA512 4f7e8e596d4250d97ed70433da03dd1d8d58290ba0833831e7dd85c4587278fb47d2f8f68aae146a7bdf63a5f640434e5a9ff19732367bbf21a87aedc02a7e58 +DIST firefox-128.3.1esr-hsb.xpi 652640 BLAKE2B e11f0e107e21cdac8c864a196e1400fdf3f1280c9a2f95b1e98ff25634af2b790986e0947d86acc1833ceabae9e50fcdccdd29b33afbd4571a59418843d90364 SHA512 46d0613305dead46179dbc81282c7494b16981005f59ca8d360bc1445cb5dcf7904d282313862e1ab479fe71f109a15cd05e5a7ff1ae801ed3918639246ee4ea +DIST firefox-128.3.1esr-hu.xpi 657500 BLAKE2B 313f47411e7634eea19c7860c19d27fc960be864956d49be880df2af3b7e2a82d25edad96a56de694e3bdf03a9dad570c2c7784f021129f52a2ced5672a39801 SHA512 ff967ea9b551890b3073e73ad501effd1d2f1e7da65f8ee4b57d44186634c8f8344e3a6fc0456015969c523af2f15881b0f1c2da1cc1f4dd7c0624789651a910 +DIST firefox-128.3.1esr-hy-AM.xpi 652578 BLAKE2B 97408e8e047ae75dcbaf9c142945c6e6994b8433d7439eda7bfdf62842eac15ae832eb6f489c72ed1bdfd9d0d6c366adde4ae039a0df4e8d3371a87670e8b747 SHA512 5c6dc0f9d6adb80ac7b7989af0ff53d2f877586de63b86eef24428f1f89b38a4102b639b6f802fa30b7df07fbca7f9d4ac8f4a47d454aff160bdf56391c3fb61 +DIST firefox-128.3.1esr-ia.xpi 615355 BLAKE2B 5146978fae716f7f279389d6f75d9d16caea671d7a3f35d23323cb636e3a68842e35cd77db59a80974139f0f5bc991fd5af607b60d0f4d2cd6658563c4497d6c SHA512 63e6a9cfda694030dbb0f9be3f6aecd9f90ee9ac0f41257e24495e3658e7478ee0f6e54d7ba7a52a653d115d725298263350d488d73333c3509c10b4e8bc4758 +DIST firefox-128.3.1esr-id.xpi 585703 BLAKE2B 94122f749bc668883551f3a59402388b9129585355273d52e05f289319e62365edc79b4508cac2409220bdc8683f5acda5a730f0513008b7360db83c66d3bf4e SHA512 6faaeec614d999418005055bebbb290bed6260c43150938ecf0b745fa08b6dfadf5420a364da9cc173475ff520fc14733263731b3345856b259110e4ee8dcc7c +DIST firefox-128.3.1esr-is.xpi 619063 BLAKE2B d836ae694bf2021333d4b1717eed798ce24178b3a967a59b1b57980a5ab2169a5c4e5c92eef1b44b673b2dbceac2db201226677c7ee6fff10b1797d7e182cc7f SHA512 4b405da69ff132998ea8f0bfd7b3ecdc700d20bd63446fafe5549e8dc89a5b04ab0a212364c1a88fb32c478ecdb1daeb8d09f1cd59185d8c48fae82cdd697e19 +DIST firefox-128.3.1esr-it.xpi 574451 BLAKE2B 89a7c30481aaea6c2418c712afa480a6e91c71faa06bd0fc82a60dd53893cd95f36d2f8921ba6395048526fc6466562769a9388b800821d1740deb3dd5b300f9 SHA512 4b5fe6a336f5b5f247f152f7e26d45855589d61ba241a2a00f1e74fba1f2c6af9d3d111868914554d11b8cd42d254a405796e9f9fb1bedd2319bf126d559e5fa +DIST firefox-128.3.1esr-ja.xpi 683762 BLAKE2B 30b9bfd044c253d81bbfecb2970ca36b39bdc7ab001848c2a60173bcf2befff723a02923d8958899f3f540bead8b9ab23de3b0fc940b8b71d24ede77e53be43a SHA512 63fa755a52d36c17b3dd0fc6a17e2d1ba6fe63edad635798f260a75910924d2fccc41cfcc3ad45a093568e6262b1d73d34bc7204f42c2147d387f187ff4305e9 +DIST firefox-128.3.1esr-ka.xpi 661662 BLAKE2B db888e1bc0c951e58eea84381d8abfab0fe07be8e95b876c559d884919338422855a44863aef0e3fcfd74b4240f58ef82fbb2b0452b073e80e06e6fcc5b51e36 SHA512 81c83c2385c484f9c2b72c2bfbe5c3f21c72b84445b39266ff3b9b9bbbbb7c5569521ed0677a91f4166f8d10b4f8861eba3c151f92cb8615561db4d9494c4d38 +DIST firefox-128.3.1esr-kab.xpi 612138 BLAKE2B b3ce56b4570686c5f6209aef788e7497288e9f63f7c72103a5d84a48b762e6238cd1d11c3c8dda3599899cf7d0cde5e380e0ce8d25b3b9e68ba450a671e8ad27 SHA512 9140d452c443ec95bbdd41a027b374bb2011a69d106e6b2ed65447000aa68a23cd556d16e118befaf5877225a3297a8c157f83fd7b7b48cc27300d007749bdeb +DIST firefox-128.3.1esr-kk.xpi 715703 BLAKE2B 8ee939bce20ab583f978d31f750e1d67ab3caff2f2cfcb507d54d39cbe9f7cdac07044f5a20d3ef5bd2b82ca5f869b1e3c2f7e103953afc0d4ca46ae41fa9cc2 SHA512 c21994c37cc5226bf60f6db4e97c99746d0f7cb2718110ff28a2a6e429a09b6b4a121f9f79402b82f12ab380e89af878b0544d68ef3d8cb9ccea8f3f80c7fdca +DIST firefox-128.3.1esr-km.xpi 526702 BLAKE2B deb1a9a38150d060000257bf007cf2879aed071ca75e0af9f0cc4b396edf8be6d243bfcfd76996898ad9b9bd9471e36b06f8c50c1813c64d1e7b12f004d695ab SHA512 8866419e7077fc459428ebe3e5ca78c43aeea5b3d774823046dcd79146b4c814bb519b49834b24067030b1e5a3ddfdddd52269624c453accf35b40b4ee6ab84d +DIST firefox-128.3.1esr-kn.xpi 492071 BLAKE2B 64cc25e5b7e6f2c8244d21d6d7eb32a3b6e4dbfcfac6861add0c841d8b8fa817342fd4660ea32f6800d87b5e4b4247bb467d2be1115396032ae034d16819140f SHA512 8400188699de5a94572ed5b6b2ff2a82a736b8ef7a99f6c9b594c9194ac6ad9aa8dd2baf833c5e46140e0df65560b84adcc0f25f57817623aeb46dc3cd5f3ab9 +DIST firefox-128.3.1esr-ko.xpi 668819 BLAKE2B 799d2d1554c0279a83c609def3cb91ff8b74fc913fac3a044ce8cf289fca51ae9eae714479e8a01dab8b84b5f4ed9d62991a5c046d3dcaba0976ef9f77901c5e SHA512 2e6f6ecc16ca5d4e24c587784271ae17855ba931be46be67110a808a0749a1cebca987316ee17d20abfaf87c4e92bfa4d53071988323e38124ff3f1af819579c +DIST firefox-128.3.1esr-lij.xpi 485036 BLAKE2B de37671894c3a13f8a7e43ea13dba2f1845f633e994b0d4747dfe7a6b526668a6bedd27da3cac57fb9d9e31b76dc3e9f380747304be6ab7fe237335a30fc293a SHA512 1dc40cc3ec888817d67ece438cfdb5944cbeb5e54c8ae4a30b49b3e8430577cfd88ae728f6ac2c07644f938525214f959ab3aad109deeee4d45470eb7fb5c9e2 +DIST firefox-128.3.1esr-lt.xpi 573624 BLAKE2B c63eb8f975e81b32546b2153004077e5d80e27e9657a04bbba2c565e82bf541c7280d22a1d14b461f37aee79a1ee3c12e95bca93986d8ea3fa28bca7bdab31e4 SHA512 a826530fa83d99a2749a7ad8f256f42f769520c4ab62320fc602822eccc802a1808a157502f45fb7b2d69b11a56fc9e466e03f35a6b3dee0d80fb27019b58211 +DIST firefox-128.3.1esr-lv.xpi 584359 BLAKE2B 5c1c6e1aafdeb0b43e38b9bcfcc50dd77a582539e16d36efa86bcd144bfbaaea0a795e81894669c1bfd403c56b10c4cb7ab5f28ccab68eaae6d7fc5d30de1ac2 SHA512 11d581f395ba22dae6830173f3a189bee4bfbfe8c152ed52603010053914cb132216065417bdc2abcee659657b08f12b0c8958a47b3ccde74cda9d1d8841d4f9 +DIST firefox-128.3.1esr-mk.xpi 494680 BLAKE2B 3e41b57c8f6396c0843e9e3f3237e58efdc38dfab74887ef5ee309a4b5608933ebe43028b1e9f43f4e85433710ced2ff73ff4ef96605b5f557165bf0c92eab9a SHA512 fb7bf53ea84e5b6d91afe42cfcb9e8304e06cf57b4ec7e2f85f8fc7fc1a36558d05d9fd28eb661f82682f3b14a062a6bfe31cccb63ae7a8297de6d2e48df5d38 +DIST firefox-128.3.1esr-mr.xpi 533059 BLAKE2B e3542e2567271f5aa62c329aeefd2b6bb2ed7b10166b4d788a7f675b0045508e88f7b477e9f0e21730961e040db5bf4366b4d2ba33b712ebdeda8d95597e5ef7 SHA512 f7f2262a100e537efa9d8871427259ca82a21df4a2521f91d215ceb93f41308aa327ed45c4d8959baa828828f0d8fb25f0d23edcbfa7a6f204fa8655a9e6b45d +DIST firefox-128.3.1esr-ms.xpi 450666 BLAKE2B 0da897f5ba5fcfbae533c14863c81cba446c6a16562d7919d455389ae4933ba4533c4dd6f0aac6ecfa029d7b21d090711c6138f5e22ec0454e3fa103fe758f22 SHA512 c77e6688031c677bb87981dbc0bc9f791f79eee204843af18d9ab58b5c31fe04e284247d76c5feaee0ad4b93f1abde14d7dcf6d56258e33a23ed270a19105d59 +DIST firefox-128.3.1esr-my.xpi 519448 BLAKE2B a07ed88430674c3b9835619c5bccf8bfbf4d7c74610ad8768ed2c7a1aa3e981883329a08d1f60eab245278a663786d0046c7fbe99503cf21b712b095d9d53ef2 SHA512 5dfb44cae5d56556233188deebff3916739996e72807b047bbb19734274e4d9aed9c10b513bf6c85c9f10d2e75ee4871a5e097a9b404317b986da06d351d78db +DIST firefox-128.3.1esr-nb-NO.xpi 613395 BLAKE2B 97b8b6ce5e382595d3dc422ad38a917f00c65405b582c3df1f58e62e318197bdda299942e9034a6f379442dc037839f39235100b1d119dea0fdadd0818294743 SHA512 aecf0af03246ce46a55d400d4a537e56c276f087e3aa5b0ef0dcf7581ed1286f1c9f0934d809d7d2a3a05ef19d9494c2a374b8e93c1d231e004174d2a75ce62e +DIST firefox-128.3.1esr-ne-NP.xpi 515328 BLAKE2B 1de2f752a8ab5e11fbfe34920123663f768da34c4072267748aaeba8b123d16eb87625cb5be07fb019475747855098eefa8436b14f06e9805ca20533abb1b6f1 SHA512 e660819c3fbfb5187f3b1615eb010ec795191baf20b7ee3790ce8e7f219d2c415539610bd00c9676298133e1c5aa22ecb3a9e01eb7e9e13bdf10be4660c757e3 +DIST firefox-128.3.1esr-nl.xpi 623992 BLAKE2B 31e9119cfa5762c241c0e9514cd8c8290cc609a5ac7bab849c4b77321e799533fa24e65852faff624b67f9cff1f21bb70a3bb6197d9dc31beed9228a0bb3d7f4 SHA512 5c1c3b3a9e7f861ba3912998e559980dd30e36945f4730b9aae500233f4ef4b33821dcbc6c745a39c04ce072ea8bbca328e4407ca0e781575e68443f6f6b56fb +DIST firefox-128.3.1esr-nn-NO.xpi 617327 BLAKE2B ea50d2bec48eb9d86027cc011efd16455223180d916533ae0584aee99e07fa488fbb48e63d448e5a7f10c88d201a77571ca78c7cfe7089327cbea76786652ec2 SHA512 0f7ab657b82e04e5f9aa7c9ea4311f459d0e1e33623deec6e7610055674918d34d9caa67355072d3b58fb75bef9dbe36795c364b76a49d37ee7cea27651baf51 +DIST firefox-128.3.1esr-oc.xpi 613843 BLAKE2B fd351d9bca3ae00e67d43000dd1fc24937f061cb6e9bbcca866f13ab6fc543c74159f066774c4214236d130bfa311ba056cf5def7616747e61216b0bb420a9b9 SHA512 b4d3d62bf5d4ca3eea1d016a1dac4994bfa75cfc8ff22f7f9ac365f0593045fc83c6939f10663138ebb272d89c6eb2ac68b26f97aab4beb51b011ddbed7f7ed9 +DIST firefox-128.3.1esr-pa-IN.xpi 697913 BLAKE2B e3c68624d5cb347114b0ed81641080074d1e514207a873e0cba948fb8dac39a016c655166a98d4404ff9d81d1932a80aa0698787778ec821bd5f2c01a9cd708c SHA512 91732ea8a5d0cb8b1dcb75ddfb43a78dc8905552ec296eb5561a0f135ad7cd4f04bc5c1e55c46fe0e75b72c8540a3d26e158e1dad3b1a82df5aecd651f7e470a +DIST firefox-128.3.1esr-pl.xpi 639649 BLAKE2B 8072dd2e8a82658d8dd5417eab9462b2affe259602ef5a2cd2622f51dcc653b942c0d6c31b4ad74eb4ff52a5be42ceca600ae3d169aeb060918a51d00ccf9cbb SHA512 821705eb271738da2a43c83a68702c7bf02d926905b3db26645ab1300dad0ec0a51a9b9dd3c17080408595f02aa1d7bf669e5d7e9aa105171bf878938ebb0cb9 +DIST firefox-128.3.1esr-pt-BR.xpi 628967 BLAKE2B 17deafa2a27a5ccb71bb0b99c8c065a98fb4be4f2b57bbef86e5baa5b6fb344e15b5c43363b9f4c7c1d8fdd1ee088065376712107318acf6322e8c9c31aaf059 SHA512 5aba1febc78dc5219e4bfd8f8ec3e487f62e0444286434e70cace14f1c6703efb20e22351b9f44732644b3258470abf50ed533029760eb4a6768c35851f71775 +DIST firefox-128.3.1esr-pt-PT.xpi 629953 BLAKE2B 5c900f610ecfaa463d7fc69c162a4c80f2347207d75b4e10b5cbfe90cae67bfbea5c774bb08e9f7982e3dccf2e9cc9e5cdea34a7c320363c03fa9e6d9080c946 SHA512 aa0b0cd4c17b027a07e942b22abbafaae11c42c8ca01729777de8e219b338470bf4e5ffe2ef216cd3fa635e479c517f30b504fcd6df7ad9978a519199a8cff24 +DIST firefox-128.3.1esr-rm.xpi 619519 BLAKE2B 795f794b6c90f9ec04687e34f6bf07815dc082ac9a2ca8b0972652ae1c9671add9ae7ad3311ec2260649063b1a95a5a1772bf6b1d410c0981972c9638a6f5ddc SHA512 1da34c1e28840b95e3cbe55a853791e81232e81f838b3791825d7fd831985f47e29ffd101c40d5bfa8526fd5909e20d06cb9b3d4c5ac3495bb0fa91aabd28e84 +DIST firefox-128.3.1esr-ro.xpi 550743 BLAKE2B b6b60977fbef8413bcbf987eb69c071586cabd3061078d9a07a691e3bf633f7a0bcd8346efd1b59a74338a5686c94542e66b4302f6ee49267f3063f14edeeb9f SHA512 427f424e45cb1377d9cbf45f4eadf369d06f7b7c83e85b411407a33fbbf421ac5e76cd85ff824a5eb8f12752b515c97001f64149121d7857efd686c614b879de +DIST firefox-128.3.1esr-ru.xpi 728459 BLAKE2B 94b8aa75807ab184b890dbfbf289b8d081611e5d8ebbff22e2e63bbff8a6ca9bc2bfca3b5aefd6d95e6f180c9b5a435e98af6e30978c0528279b33553fe38217 SHA512 8b11467fa145a4262ffb3af23566a809ba5a7058a016d8783abd61a7586e9f586baa8e72e213f5bccafe654a75be9897af59081f8cba1c9a188bdc400df8a051 +DIST firefox-128.3.1esr-sc.xpi 588769 BLAKE2B 5d97252c8716d0b19973cb19853ae8b4b5b4399b33f50dd5b797d00ca992405042c6c678e6103acbd6b31ed641a5a54a3135719cf32048d815fb9bf898949f5a SHA512 9610f610addb0428d8126865011285be62021ba3c117df12eaffb1a5246ee06fdfd5c2b956e2ae2a5dee41ae992b3668d89caa703e53aff642052ae25c291e3f +DIST firefox-128.3.1esr-sco.xpi 512223 BLAKE2B d04a893db3d190ce6dc28cfab267d794366eaeeda592a574e57075b3c13184697d2e631800153aac23e442d863c9db7a4b17f57e6c7822a3435e61b6b3766196 SHA512 fa552be5073ca7c75509766222ed9c37c5455a32eb975106eea04864e8580e0af4de4aa625eb2fb40ed6de40472a6749167a1e5c71733981ca670a499d866b75 +DIST firefox-128.3.1esr-si.xpi 614275 BLAKE2B d195848c101924bd65c3372c147e28366a1fc7620cc84d9abe413c8b81ad2c6d4d51ed877031589224926c977287992435b3efc6797bcaefe599729c6683abbf SHA512 e76e88b5850f203e03fd4d1efe48fa5a3636a4090d14770c6aef0aa13495fca3695aafb463fdfa58316de9d8e62deb8f2b5786a63a1aac1e3921da92cc1e3fa7 +DIST firefox-128.3.1esr-sk.xpi 659879 BLAKE2B 1b0283d450aea4c25acc6cbfe0e07410e75f1b6b25665824b0fc4ad96379ad6902341f9075ff10a5f3dd617c3c10b8bde7b49d5c3e46363ac2d9a8aea83ff42d SHA512 5139bd2a258f4ba7d3db176d017d193332876cbb7de5be935b6339adc9b9a1850cb61f48d089e7bcad909278be9a1ad35339b5c40bfd351cd7b2e044cbf5a5e1 +DIST firefox-128.3.1esr-skr.xpi 711999 BLAKE2B 6484516a00665ea0220b315a5d0e19b00acb53de2bf416422116d78bf4b9ed86263921a3738075ff47a239f065827169660e0bf6528ff5eca0e49182fbe2dc7c SHA512 2f2644de2903a7cf001f17bd3b689bb0befc55113aa8e00c130047c865d4155861c9f2906b61991f2f7c03f66c187a18797a5190ec2a1a3399c38e9f518593f1 +DIST firefox-128.3.1esr-sl.xpi 620265 BLAKE2B 13098fa09fb7ffa14ec2f86a2ba57f00163078b1bcbf0c89b57119ec1dedacaa3d4064d427a5e81fa15018c6f4574163970b20a171ca4667bc1dad926250d352 SHA512 8991676cb3d908d57d347be61ac4eef55e5ff74d35f7aa411d1ce099f705b4d6ea37a6f5798cee8e4be986169164e41b41c58181207a8301cf9b589c1a548036 +DIST firefox-128.3.1esr-son.xpi 417224 BLAKE2B 99db86c6afde6f44fa6902092079713d08a93744f7b06af77e160eaf4a54970e3c1f3db047c82814653356c25c49f4ee99bd423f7f0506e7939c987b452fe1ac SHA512 3c5463896e97b518806a134410dbb720d711b032d92526133e40039c5b8307566f496e03014c2c46cc7878a0db9a825885568e1177432ff15664d9f7bbda502e +DIST firefox-128.3.1esr-sq.xpi 638606 BLAKE2B dda3ad677c6ee1b897b271b4619924b2dd52aa2db344aff3b92c16a8cd875ad5444664f7af171ae906c4e5e0e631473f83bfb3afde42737db7ac2d57e2d5eb55 SHA512 1aa7980bb1a026d2a0dbfc14d3204c41361a9343e84fe32cfc1595041f812bc7b193eeaac9194d46c9f5607c1129e57295cf96288151bcfc1cb67e5714adb8e6 +DIST firefox-128.3.1esr-sr.xpi 640305 BLAKE2B b1f37c732cc47a268ae4b2958b16612e16a531e1ee7fd8d686953d82735f247e4885d8bde47f64c42a3767215e87b8aa7680f5ab4119c3250bd805fcffaef90a SHA512 7d05296ef804e89fb1a2fdb59da572caf5479655270368f12ccf2c2108a2695d92cfb09a8e19315b20465734fdd57e25c9f397a3ab65fc222d1f52d51f788301 +DIST firefox-128.3.1esr-sv-SE.xpi 625711 BLAKE2B f5a02d8b16dc95b225cc5485c0ef82630145410e014bf41e2daf098a46767342ce331c18d1003b4d0b8792f10b5a11ae21cdbd44d046317ef6c86a8ea936eeb3 SHA512 cae11f08e9229415417dc9222f524f3bbaf477b903c4154e2eb63dab28a90e05c02f4477a171f88e33956e7331f68b35dbadad44a6e247449f4f754f858de2a9 +DIST firefox-128.3.1esr-szl.xpi 527346 BLAKE2B 7772984bf087bd5da4d92d6db39bc248b67fe915b0290c74b863ee8f664fe7366f9c08a4118d10f1b354192078d0193a7bb08027d1a56bd4b4644ea4d44d22b5 SHA512 4013085d6a3687e420793683d2366cb39b54265715560642b2821880423525f5ce317693f2fa4e3c9e7f63faeb52845cb3d397c5c5499c694dff7f582d86f8fc +DIST firefox-128.3.1esr-ta.xpi 508334 BLAKE2B c815108bc75e43962afe48344e9c468f438a69fc55f39514594d4ddfc15b0e68a654c037633ea2ff798d9e1d5662f2a41dbac7ae82e7f7cd6a5d3544bcc04c94 SHA512 e6cf3b8b0ad0f23bacd9d2979d4f819e70fbcd52997daf79e0c53769af7bf296dd5205da05537df0c8c4772ec92bfb987b9a19d12abd94fbd0af097d668f7082 +DIST firefox-128.3.1esr-te.xpi 561978 BLAKE2B 66097c8b5ad1606de732624c586cb5a1697bce14e943ef4f7b13b6822c2785345544d0463e87ba18565a348dfc5fea52605951c0f3837ad475ab369d7ca1452e SHA512 b41f43a84e5039957b2c6afdd7dc7a54b66f460b727d3862075c3244ac0f1a986ff6d9421c3b503c45998e27ce8559036525a8133fab4834875174df72135728 +DIST firefox-128.3.1esr-th.xpi 699560 BLAKE2B 9aabca3e7d83908b3b7b3deb5157064d67ed18106f6144d0f2eac66098aa6efb09201385701645d3f81b41b4f6ea68d092045ed7454f5479a87efd0502f8084e SHA512 009c6b0947fed95a3d24024ae673df15f8573f139fe81ccc8d30b3e50952117623fa58d6b094c83b0ce0c28e6da327b67329bb4f1d1071f573396437b179c08c +DIST firefox-128.3.1esr-tl.xpi 535131 BLAKE2B 4f27ea0b868a5f3892e4b446433912d8d52908083aa91fc8feb3364215040ce2c160402c29343faa6e245a13fec04abd81ae730c80af067c10af382f1f3cb6f5 SHA512 a79d992dec998466123f620ccd1c741c0720a2ad7dc9d31146c4160a1a1c282a0207d854fab532c6fda9f9195618bdd864a39822563870d2da037cfdb89f7a38 +DIST firefox-128.3.1esr-tr.xpi 639352 BLAKE2B 35abfdd44236cf1de64c3c5fee5bf5526d3fe4f1ebdc40a1c54e95cfde72b09c815e4085853359a0a1dcdda5743e6a300435062093a1b3535702e039e854c77c SHA512 bf9b9f5f9239007fa3244799ac0084cc5992157613496bcbf15c67fee23637b0e08e162bcc1552a5e42528b3d8b9c0219ae61ac1de3214c1c74316648d158358 +DIST firefox-128.3.1esr-trs.xpi 505310 BLAKE2B 39b5aeeacb0075e5ea8e9d063cc43e5c4caae19aa6f2c27bc67f7684896848e2fa2ce1fbd84ec0c397479a9e525cbeeb7845c9e9c4a9a3535ddd1d7e193e3b2d SHA512 1e9e7cfcfc9fead32037994f3569c48417784626dd3713a8b0eceb45b65d9fe441ea84ed89db5b882ea4460e8d891486e9dc460bcf323807b7e67a8ed5f1d6f9 +DIST firefox-128.3.1esr-uk.xpi 708231 BLAKE2B 90b4ddaf47f8d82c9fbaa85fa8aef53ef436879fffd4f21081e713f990459417c430450e2fe5d5a6bce8294e9ea99258b9413368da9fdf41651bde18fd3becaa SHA512 0c29eb62924dbf8178c70b8b410ae4a2f54f52cde6182463ae486b32441d8865d1a463d75ce982ba06037c01d4af47693277a5b0dfeec8198fb94be708b8864e +DIST firefox-128.3.1esr-ur.xpi 561307 BLAKE2B 1a88914b5acd4f2fdd933d5a72eaffb586047ad8469280b1364b349067cd5396abbdaf5b37a860a5fe93b205c19dee0db4e9c2f0079311c3935bce264a5ed99f SHA512 8585316d7c1a48a2f4205c7c622c1f3ed1b55bff96deb59e991a9dc9e0ce6048f87895b8838fddf31ecf73772cba2d21e22cca4efa4f8a821a5d8f3d03b77000 +DIST firefox-128.3.1esr-uz.xpi 479735 BLAKE2B f6347a230dada12248cc3dd50687b054163c988ecf871f06e8815df4e2264a5bb3c24bad4fea40770fa7c533da6564c6a6b0484822b3ef3f589b7fc363503965 SHA512 3e7b63185c5f79ebf8e5d2c7973a66333acbe86e34c8c31925e494f99a37bdfa130a335f8e8b123c2f1dcd5de2ebec1eeaec5e676e42011b3497acc78489e74a +DIST firefox-128.3.1esr-vi.xpi 662720 BLAKE2B ce6979931760b29283719a9e4359644c3009a29f34e7943fcbbec607450680e93ad4656839b65527dc991e633e60c1bcc74801968e23ed0d152ad553c94db2ec SHA512 130f56dc615e979a4e168533be72c37ddaed1155140c39503eac5498d68683ed81088895d29172aa7ed2ddb912f409a5e08d1b590a00a252431f5dbcf3132491 +DIST firefox-128.3.1esr-xh.xpi 418009 BLAKE2B 9ba1f877b180250bbf48770209106df37868cb2e12504d12f3adea7a1f4ecfe7bec910a80a1b8dbcdf603751a881b8cfa8e6b21a392169657dc74dda49dabad0 SHA512 3d969044933b2eb79c32c68cb247d617b9ab07411b6838b2261ed29bfe7357bd272aee4158abaf841e31a22cdf12cd4aee26bc79b089a70d76f2ccd716e0eb76 +DIST firefox-128.3.1esr-zh-CN.xpi 662340 BLAKE2B 3dd74f61ae75ecd3a14f89650c77862ff3269067d7ad4120f6ffd72c54d1c40410ff2d9a04e7a57ba1d51447e1dadb4985b4c4c3a43ee0b18e97bdde490e0200 SHA512 7f136bba190419ed5a0fbef9f960cd52eddb077b897b41b09086dd067a376b27d572961a6e4545f6de2d69b738fdfc2c90154b867863c731726826f48a5286fd +DIST firefox-128.3.1esr-zh-TW.xpi 666615 BLAKE2B e32de7972b874e7ed948b5a0caf8af823e05b976ab59007bf9216f649b86a63be93fc7f0cb7a8d351260e4ef0d8d0317c67cf60e3612898f4c1df634edb03e93 SHA512 da06ee72e5857e61f50dd806dbe1a816191ba81c7b5f8093cb4aac319c6410829e0d838609357775720fe17854b75e1e9bb9e757ae21d20e336c284cb6d6f573 +DIST firefox-128.3.1esr.source.tar.xz 562947536 BLAKE2B ff2663743c160b227057bbf05915d27c9f04dcf605811933f91cc50b9de55c9e75c3583144fbfbe6a1bbc4570b636ba5918b30f034b6af744f615e6e9de0d594 SHA512 c5c1a2e951e0dbb1259a0f77a26b8678bfa4a4c7e909f8fcd5c6d0f807625926824ed235e114d9bab5e289232efaaf4c6691764db64860161ebc9bece9200f0c DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d SHA512 c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258 DIST firefox-131-patches-01.tar.xz 22188 BLAKE2B 7044be5613a50625e54694cf88ed1ee96fd2c4e39dfeeb10b68858f67eaf5a05697e70f9940a015aaa66c172590b9815c801967be578bc48996e20f753a87929 SHA512 1bef1dd2a8fd9fa0723be40d7d38343fe00f4375c15b1c2bdbe04624d94d6b96357d22c353e6ce0fe53d857c74aeddef09668cb3ebf8d6dd7a77966ca920ede7 DIST firefox-131.0-ach.xpi 468402 BLAKE2B ff7a03490b95ed57cca023e49889f516a3bf976cc0ab2645ea182882b479a122639620348b6d64e947c24c54d78add8dbee9d19c497da47ddeb36e5f5618c63f SHA512 e1947463e31a60ad49c27807927358a898b77493f773cb9e40fdf1e74c96cb94d026f746bacc37925f221215a444a6a43bafb4bbcdeb1bf15370a5935d782624 diff --git a/www-client/firefox/firefox-128.3.1.ebuild b/www-client/firefox/firefox-128.3.1.ebuild new file mode 100644 index 000000000000..e66d33fb8c17 --- /dev/null +++ b/www-client/firefox/firefox-128.3.1.ebuild @@ -0,0 +1,1368 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo" +IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg" +IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.101 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${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}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || 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-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; 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 + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --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 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly, since it's not activated automatically via "known arches" list. + # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), + # bgo#937867. + use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-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 + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + 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 + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # 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 + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +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 + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} |