summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2024-07-27 14:59:27 +0300
committerJoonas Niilola <juippis@gentoo.org>2024-07-27 14:59:50 +0300
commit045db23eb339789a34046ddea9ae63c49f3bc1ab (patch)
tree9aad70077b548f175f0246063f261cf6ab4c2ed2 /www-client
parentdev-perl/Business-ISBN: Stabilize 3.9.0 arm, #936781 (diff)
downloadgentoo-045db23eb339789a34046ddea9ae63c49f3bc1ab.tar.gz
gentoo-045db23eb339789a34046ddea9ae63c49f3bc1ab.tar.bz2
gentoo-045db23eb339789a34046ddea9ae63c49f3bc1ab.zip
www-client/firefox: add 128.0.3
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r--www-client/firefox/Manifest101
-rw-r--r--www-client/firefox/firefox-128.0.3.ebuild1403
2 files changed, 1504 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index f1e655ca140a..13b9f50036e2 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -301,4 +301,105 @@ DIST firefox-128.0.2-xh.xpi 417171 BLAKE2B d17ad8add3886462206a56df9d528b5c9f4c5
DIST firefox-128.0.2-zh-CN.xpi 657106 BLAKE2B 80a6e21e5ce7ec1fafc164e86f5dbd26ff6a32859df7555a656e1fc5e0fde7bd9b1d72e8ecf1f21b45975c346ae1a6b60098c1476105e9ec2b18ace9c6fdf00e SHA512 330e81c388a15352286d4d16721bdeac018891364b76c4020f251b968d364834f09add1666794d02577cf0feb7454a3a1177b66c30cf9398ddd05d9e73bc0141
DIST firefox-128.0.2-zh-TW.xpi 659230 BLAKE2B 1d11133f2e6900f6cfb00ba75bfa84c29382c700cdb8be49df1e9aa7a6ea11da3a52396ab2245cb49c705757afa791e691195785387621050132ab573a1dda4d SHA512 8955f84ada33a73b8303efdc4e0bc61dc07d8a2702bbd7bc514d1b516778bf1d1ca568676e06957c560cb78b27b3011cbe1c2e96b6a630e01f8eccc98cf0a3c8
DIST firefox-128.0.2.source.tar.xz 562183904 BLAKE2B 38beef8eda209f87d2e7fc02dc11bf77794b3fdf94878dc25b1a95e88b8f7ddbdb3e9528cc6be74b74953e165b64664a90e10fe87559e3c2e67142f9e5a367a3 SHA512 e5c38fa3adf26f5f072b6dfe5955004e67f576dc67ef68348d58fa0ac13bd3c7764e9289dfcadb2bbe034188bf296267d74fde13fb9b53beb5421245fee69da1
+DIST firefox-128.0.3-ach.xpi 464070 BLAKE2B bd1e92adb3cb6f1f4f61e9c1a168190c26972ef846fcf45cd14e7f29d6b5940611d6348fd6b3815f356f80bc9ccf5143775fc602cbb2035ab33bd77391721139 SHA512 8ad9af4e2c693130d471f8bd99f32579cef658317dccb821521069c130647ec7e7a0cfac9d8d82c8f3e3600f22e080ec4174bd8bf7f7cab6107a6a0ecad1936b
+DIST firefox-128.0.3-af.xpi 417515 BLAKE2B 45b368d5bdbabeab7cace3e29dfad7d2cf4957fbba446a9ace922c0f6cb0683de1d634a9146dda7367a376b6802d6579d2f0ef1095bda24886a3fdae87dd6ad5 SHA512 a7d2ee5bed99cc18ed47be14c0421d84a815af7f870b4307517f9ae3929c81d6f2f7d646aedef11a3f91143aeaabd57a7f2386e92bd6e176849356690ba009ce
+DIST firefox-128.0.3-an.xpi 505881 BLAKE2B 0f9ecd72aa5b4bd5af3a659002b9956bf9bcfdb3a709b5f698afaf393e6426b3606ad6140b861e5740edf40910b9d1d07dc6eb092cfb1d742b07dab209803295 SHA512 b3d16a753b587acddda69fe1e55967c88ccb3624a603be4030c78048385aaeba74f9b2379bba447a5e0495f3d1942fbd6f5ad6c41ce2080ba762493036528266
+DIST firefox-128.0.3-ar.xpi 610860 BLAKE2B 5176beb66f9425c5996fadac95cf17c9377840d0e6a6dfeb4161f51f6538afa0fae0188be85f802ac0be5e20d658fd0687c7e2ead170525476335cc8890d100c SHA512 7e3490a77ccf13b0c2f0e625811439e0e4004cf0875b8177822c6fbeb999fe676b24ffc613ce4debcf7ec0ad3fa05dc7b8a2aebccbea41683c6b5c625d640621
+DIST firefox-128.0.3-ast.xpi 496342 BLAKE2B f0abb0158c2fec99b922402eaf070252096723b2cce94ac815f458b01ce4a671c1152875448ef138ad38ec6b4d33bf0f8bb294ca0efa8558e639462167cc6e50 SHA512 6b9003ff4b47041ddf1622c1b139506472ecc86c3445e36a6936134a04635a7d3f64609e5cd4222757ef7d9b32480b6478477b2dcf8b12a4d4d67514db6d859c
+DIST firefox-128.0.3-az.xpi 490772 BLAKE2B 311b1ba01f7eb728c8186dcd08c7b65578b67086003b696f4e08cb10dfb6771d35c9c88d25cd42ed8b3f75445c6e4ff88930c9346f832519245afe24008ff256 SHA512 335d130106fe22c540528ced5f2277d6315cfbe33072a76fbfde3ce225543c3013311aad452ffb187554b575c5f3b656112f343c085b83397d9be8a70dc74b20
+DIST firefox-128.0.3-be.xpi 714336 BLAKE2B 1b48e36e40f5ea942afe17a751d17be28644b75ee9bafce2f1d33e00ff3d8f9850eb5f146a3e5ddfcd613b8f441c1000946ae22ddba74127ac317762c5ead1bf SHA512 5ef69e53b8aa687e05d223df109c84e559095a725524f0d0d23fa1682858072237510e4263af5ecbd4dd7dd28924d9c177bc78db247d2686eb1d8376f71241d6
+DIST firefox-128.0.3-bg.xpi 606582 BLAKE2B ec4c722681e6d15e01f3fbdfaba5879a906ab790c09b295f4bcd7aa6272a64a2a3714d4fcd60fe28adc1a8a469d9842ef95ca158ce9d0a31dc52cbc26e7d6413 SHA512 6c79c587e32e57b5640b09736cca745f5e536e115007825de1c14ed822ed5a9a0b212cc760dfffae8cafc6b792b887483afe105a3b1c5aa42df0bde3ad80639d
+DIST firefox-128.0.3-bn.xpi 581536 BLAKE2B a7dd44af2911ed3a24f738e6e4c29fcb2789658bad7a52389e4647a2afb57e2741a8f54a282d6a540fe27fac9e424dadc1e79b3838508f52ab8b71bfbd79468c SHA512 655bc0615a83481a4803916244d3ba6666501712f8c684a01e51c5118f70d3b5b7a1c8f7658843c554d7849cd56a287a2794ccf4bed28780dd2590e843be17ae
+DIST firefox-128.0.3-br.xpi 588930 BLAKE2B 6b453122beb85b5462feb48a38bbe0bf968dd69df5d08e322286cc0b7d42ce48f603e29da0bb1b48d63ac9ce46192b391fe237ea8ff37789bdb007b422f7830b SHA512 65e7498f17888ad8352751493d9de6303140dd0a1ddab5336e4fd050975aaf6e97f9234b91642b87de585af19c54e4312e3fb71e3f2cb8af14ca56aad0d96686
+DIST firefox-128.0.3-bs.xpi 501988 BLAKE2B 1f04823572f0aea757d5906575d0c3c8cd5d6089503f8622e104f00da971ce5c44a436bfdc0506b1c93194a54d1335d4fe353c377614927bfa9348d4a2e3c7b1 SHA512 4875b5a5f46de9325a7ba0973a4ff050704fb99dfd2bf2c196541b7a9b53350fd5216c17711010ec719037b60a4440d4b151c5e6fb3ea8ba33b49005a6d6b639
+DIST firefox-128.0.3-ca-valencia.xpi 546189 BLAKE2B e1a59c44c5a00703e906dba00317636fb85461c4635a44419fca74320d4f07359e43806d5a3c19fc2f5f8e8f298902dfb40de8e346514ffce16138b802f2f6ea SHA512 93c0068c48e44dec07359ea8904d9f6b8254d55544a46f8f814a5f92eaf35b3d860cce864c0a2c60bd95b6cc107fe4beeb5e9aa7d7a746034999dc9681ddd138
+DIST firefox-128.0.3-ca.xpi 597111 BLAKE2B d99208ac1f2c7fc9736b9575c7826fee0f1a4588488d873aa689d66b328d569b8ccbc79e7c1c478b19b3d86ca40d1143efdd0eaa7bbcfa091d04614639d689fb SHA512 c15669049e0b2f62524d5c57af8b8bd48944b299e860b1c2a55cb7c05718a03297fbbbf8b3e4e5bc2292a817048221ef08682b02a9cae485b8c2215db77621eb
+DIST firefox-128.0.3-cak.xpi 593083 BLAKE2B ab040d4397c6c14b2590c66845ddb32e04c9e421f63630924c5c8c42218911b80ae2d7e4d8eebf4b1cdb924e1908c7ffc8198344b015e8e4353e6fbe260f9298 SHA512 028f61bd1cf887d51ced7e5dc6034db5a4cb50f2c8304dd6d6146550eb9aaea35bb1078e6c29129979a3e1c5e12e9f204101041ffdb57e335ea5120248339b44
+DIST firefox-128.0.3-cs.xpi 658964 BLAKE2B 77440f97c2def843531d0da78d2fa187493781902415ccb8f1ccdbe54569204f63f9f786d60011ece646201adaa6bc405c6156e04492f4322ef38786898f1bea SHA512 facad91e1587788e8bb052094690529fd580e6171a0dde9b3c226470acc31717d154a1d1947b004aae7fde2b7f96ecc05a481cc88eb2e3f590fa9bb61b5567ae
+DIST firefox-128.0.3-cy.xpi 622920 BLAKE2B 4c6832f17b962bc303c06493eb5611a512f4d12c49154b7659c081a9ed6fede434c55d141ac37d513dfa0d9ca8450f238dba269461529008dd240f92fe938f8f SHA512 784cacf3813c3c9c5e1f3febd408d0100f3579d3eaa4a7fc910a6c26a731b3bb36f885df89a58aee291f992e105e231e444a2e3325d4ca56b9dce77b5740b9c9
+DIST firefox-128.0.3-da.xpi 610842 BLAKE2B 9015d327ac2a263a0c344cda13bbf68467038fc5fc0b1eae05aa8db86c38026f7e69f4a34a0877a12abc6a0e56aaff009bdb1137f28b6833d4313eb5835f439e SHA512 ea6e6dcc0eecdddd597e94d4400cf4bbe152329b5e5a2b02f61c9962995798ee4f009ec5df709e100c9da4200d98a853cf865bed38e047113f44bffbf20940c0
+DIST firefox-128.0.3-de.xpi 632474 BLAKE2B f86ccebc80756fb5ff83a8a56e1e05814605c3e6caeaf17f4bca1d828b51c0f99f18254484aa6ccbed5aa265881c2ffdb8e12efcfcff5fd444e64d2f35d2db3b SHA512 5a92a77df3466d3604fcf51cf73f6c2b76d64353e81f437413a1d3405ac213c2dc987f77b6efc3b5b048d794884fb08e456a316fc0206ce1f3f13e60aa88c522
+DIST firefox-128.0.3-dsb.xpi 650816 BLAKE2B c96a1a12a5afaaad739e05e0e319440d4cc69561dd7f715153753b4c93a2f7e26708eb33a91d7f83375af6d5757226f6e93fa9ae39439d8b462fd66885227ed4 SHA512 e4e590209c249797a9accec4e7cb1c74a5c40f33afc217e03d9f2ba0706a15110aca38179e0968d89fbbbfaa2ab1acb6a870d8112c70756ee930c2bd4c0b9433
+DIST firefox-128.0.3-el.xpi 733070 BLAKE2B 8b33f0a93ce6afb660b2c6782515b52534e39a136dcafb7b93b706e2b6f6fbbd26ab62797b0f6e4a837f9d52879a43babb8c26ea0cef987a149078f3a45dc637 SHA512 d002d58c81cf7de1c54d979ac7423f57e1b581a76f1671e8a74369b78cf70d5937a5ab52bf842ac73846a06ebec5f13c1ae03a9b31b2cad17c95a6a966350c52
+DIST firefox-128.0.3-en-CA.xpi 584678 BLAKE2B 8387203395cbd953bf19962d2afc473e95237bd2c4f41be9dbd109ae114bd51c2b91edd948b6196835a3a4d24f49ae4ca882799ed39996e5aaf82c4ac837622d SHA512 f7c5f2aa5f06abc9b01a9ff23983bd66d6ad42388f84b308586b5fd9819d863d525ec28e8657d7e387404fdcb397ea08e71ad850b0e27b8d71f89afae52d02f9
+DIST firefox-128.0.3-en-GB.xpi 585259 BLAKE2B f30f63c71bdb7d4836f87aa7b7b4adb45c5fdbceeb24e83b5176e261e50143045fa678a06098f0abd8636748aed74b9bd95dfbacc9edea99c88a747fe6eef34f SHA512 cfa76417eab21bd6daefb52c9527838ba18903ed1def71e50a873a038ea947d33acddf3c6f327e0fb82cb30b80440ca7a166ac5f43b0d927465e3f79d046f060
+DIST firefox-128.0.3-eo.xpi 613700 BLAKE2B 45f53a29dee57ba65911bfee5197f0a6fd57e16ea33a550a81d19bef57ba3937ea87a023a8bd63db6cf96d2f8ae93965b8572274a6e3c852df7b42911fdc7277 SHA512 3e68dd24d146cfbfe0e647159dab64b74e772f0978ee0dc2027e2b7c16601da276f50c782a17ae4a0e2c67816bbb372fbc98f1d1d1d08758806589ea86e1ab11
+DIST firefox-128.0.3-es-AR.xpi 628031 BLAKE2B 41f2e8ce30210bf5b16ef41294c851e8233090a6d96676ff664369633dc9ba01d23946316812c1b7443f7195f62b7d7e07281e69b84bdad7f4f77e97620eb35c SHA512 11a5654fb99b6802bc756f2854ef8feec159bc528d7aa4886c94464a072a9c09117effe751446e9788e317f7ce4f782e9b43ceb965261b48d11aee936117b362
+DIST firefox-128.0.3-es-CL.xpi 627301 BLAKE2B 8c25642bc62cbcd3196840296acb71e91dec55c8ec92b2132a1dbc83868a82cf64675720bb52c9fd3069cdadc961295e93dbe3ce4cec0cd2c718ef154d42fb4b SHA512 5b549095bf4f7bab34c1b8f275d088db6196a6aac05061125bc8be3dac755eaa3b5756422161b7afec5e47d31a675738ee9421a296909bba8b28a6c055fd8282
+DIST firefox-128.0.3-es-ES.xpi 621076 BLAKE2B 8c65633ced118634a2d948230e9666480dbba8184b85d85bc0e0f932c379143c0318dfac60f94c5b589d10197fe5c9fe24f9850ce43115ed2a1ff4fdf5a04565 SHA512 e9b04d2b405efa09474b9b61ca371eef0d26331de252256ffb92f8a504aafc1466c7463024903e6b918663465afd8535e1e9ee5f238d83cdf011f35ddd62ac34
+DIST firefox-128.0.3-es-MX.xpi 604994 BLAKE2B 13514fdf5b7cecfeb365f4d486da91fd8326db66d07a8360416f0e364ea01a4c5abe14e54272f599b1877b4c5ce4dfdb4393ac986da14407d0f547769e1f1b2e SHA512 5e0046b8b9da59a3f810c2040e2d4d928d0706e168374d2bfe5970c42e619ceb07d9b4720d53dadc96c47559fee5eda22d8c68c536cb7df4966c825e24eb6457
+DIST firefox-128.0.3-et.xpi 539535 BLAKE2B 451d9a8605d16f53044271e98b0920ca5b2bc099e142c087cd5b1df5984c5f8291f98236e5f0f4d73cbbfd061bea7d2b0c9b55b2ae4ea094d333d1cdb0e9caa8 SHA512 11cc2db54e703cfe221baad2412dda92603cb7111ce6386e8fc303f20bad116f62490b7bf456a086f0f275475f74e77b605d55787539d33c7d23017fc851031c
+DIST firefox-128.0.3-eu.xpi 599329 BLAKE2B 8105442b04a5c9eb520caed777311997c5d6f60793f2f3347bb66189a1275e4f1d47b7d9c701538e97248f884d50839769fd5bb806f6490727e4a68900221582 SHA512 656350dff1b95f1e101ed9be60af3ab0c939d74b7af4f36c2523504c83c0e5cbcb39541ae553d7af69ab2f705b48cb33b9881df6f34568fd7f474d046d0ba651
+DIST firefox-128.0.3-fa.xpi 590030 BLAKE2B 7b2dfacbb93ba1e3b667c79e5073414c629db63595b519cdf4a9c8ce6bd104ba9a1208d1a44fd9f73fa25a242842908db5e5ec36a44ed46cd31e8134a5d26357 SHA512 e2a77e4492e71ef4881b774f5b6e1fa98ca67acd5a8a388c43801c2c15309966bf3539aa2c2f2902ba70707dba1735fc4e4a77343de005bf41e52927bf785862
+DIST firefox-128.0.3-ff.xpi 476055 BLAKE2B 931afa781fa667af22c0b51fd59b9a1ed312c7db3cb91a42b74309198f2a71c71b70a0df6768084e39077b5115fd908561d58b28c2f6d8b0bc3f1f8893a073cf SHA512 87d744541af7e9a05c843fb7040f30c8b316a41827f152946114e1e63d9fefd47d23b326892266c93bb8bd1c4795ec547049e8a1af843a1614d4a109908c0279
+DIST firefox-128.0.3-fi.xpi 606457 BLAKE2B a207329da5efdafb981ebaf5316504edbad5180377765bef51d4cdad5a7e0e1b4266dc0e7bba922b593d9955fd25dcc5661abaae5d1337a3eae67abbb2347644 SHA512 e6194ff84a353244861ecff3a5082c1324daa59443f2567db76ff5984b37309889f287e5393a1ab7607bb350b9508b86f842917aad17a3a109731c94f145c839
+DIST firefox-128.0.3-fr.xpi 640303 BLAKE2B 5f3d77d8489322a04611d9938fa4db843d9d57caf65bb18ea95317bcbbbaa43fe97a937c79ba9e3fe2ae813da6a0d8315e2215e0fe9232e9f4b9e4606ae7bb52 SHA512 760b277ba49f85b9053ef8eb7d9e6b9a2a8b324f5c74f9d6fa937fb6b8186a7a08816485b324b17807f62155c763b6a6f27587229b562c044216ad538e029513
+DIST firefox-128.0.3-fur.xpi 633990 BLAKE2B 0b005856dd524faa70b3df7d2f5f5c7bba1ad4a7e6eac96c854c7ee34e015434fb136fbd15ad6bf4ce9dcb112bd546599939101359302d5703a0c497b06a75e6 SHA512 ea394254ca7b055b99f3f057c61345e22d6f23e511d41ae513fa3aa8d77b68de436bff8decef917c211a5b9f26221f520dd7b52a54ae250704b476e0d05d8afc
+DIST firefox-128.0.3-fy-NL.xpi 623727 BLAKE2B f5a1668fba78d69fd366db423e07603b7209c9cf1c28ec88d3a9042fccac16f8a90ae7a6b7e3e8c3271541c98869f0f82cb965e4738747f0d04c53786f6af514 SHA512 c6fb36046b321e78e4c59401683f6c9e58c343d20935c29fad34f89a8974591776494ddc78eaa9408a3d6e4303bcbd0f1cb80b131b416dcb1be45860832cb74f
+DIST firefox-128.0.3-ga-IE.xpi 470992 BLAKE2B 69047a8ebc01e503f4a972d215081b2c9833209f2ad714e0f2580727f7c080557b87137f46af7d0d04221edbd3888581eeec1c57ce30103e17258b279f4e003a SHA512 db94156443a1b7b21778ced1e574fbe785013d63ddc186aef0619aeb15839d3d33614e701d5261801819c469490b14950f28da9211f50a90a04a3d70a5eec88c
+DIST firefox-128.0.3-gd.xpi 596589 BLAKE2B 7f8cb4e09c817927fe2d6bc1e4253c0e6297226c67051ed3c4982155519ce25f8c87d36ac42f51bffc24a838a7c1158275447d19f7623ebfbca35e37cd3b9dc8 SHA512 321075e3b5feb6cbb27b3829837f1fa3d53c59b2012330b8e170e46198da30b181a15d96da403952f9da210e0bf32659c01b46b1cd3744756c6b19b582d7677f
+DIST firefox-128.0.3-gl.xpi 604094 BLAKE2B 96e4aa3efb08935d34e15b946975482c271bd9ba871ca00dd7a3c4996a16045b58d224b8183d9e5c3d8393ef1e3627e9e14b7a89f1d8b3cd1dae9ee819dcf808 SHA512 b8d450fe80e5ec0ffa0c0090cf62a5ece4e9643ef1d4e7b6052fa7ef3e20a5d2b61b5771f14a990942bb13cfb7cfec9d11a04ea1f578b1875104a7177f8a9789
+DIST firefox-128.0.3-gn.xpi 637427 BLAKE2B bdee578c515ed1a03e123c50b1ee8a63e6204fd46e67a51d541394b382238b6f35c97a524b16d9080276e75ef024cab834a36d95950eb930312c577bccaf5794 SHA512 0e7df3485b0168a0b74ca9cb59ed80f633b097f53d1ddee826d95831868cbb887f17e8560cf0ca843ef183760481e57d3dce53966dcc40c2d7d0bb428db4f197
+DIST firefox-128.0.3-gu-IN.xpi 527344 BLAKE2B d06eb237de22b1977831568424837eac47305cd8ef0114074c9ce2437a4f9da003b820bce722293b36303c23ac3b0142acf1231719573472f545740b78ed8892 SHA512 edf17a82f01afb28aedb484287fb70d35fa62341a2c65dfc2160c8962522b55146bac85f565049343059feed02ce22f067e1217d6ed10071d8a09301f18289bf
+DIST firefox-128.0.3-he.xpi 631587 BLAKE2B 38694f10578228bd18f3e810a667575b3a004b02a84de07449506c6c4305d67101c4a7ed31e9d93fbd9cc8ee2bd79d2b681c4900d262d635aaad8d4f71cf2bb8 SHA512 2a2da86b5ed0015f278582dd6c7f61a7966c078cd5af77eeee107ea5e6418914948586659a0786b418fff0f23292404f48165622d9d5e518251c1a15be372364
+DIST firefox-128.0.3-hi-IN.xpi 566770 BLAKE2B c77643df28520e35b163d86ded59343a228ed88e55566e035d45d4d1af165a63390d9720c6c2e516cba69b33f0f692062a0971d4a2b3a21ac19981b0456f82cd SHA512 6d1b410f653ea49e3356c73942e8f3b6791e9c74ab54611d1b24a1e49374d67ffceaed239ae90ab580cc02a02925e357a87e780c6a1910b17294eeecb561252a
+DIST firefox-128.0.3-hr.xpi 559805 BLAKE2B 32717e35361b2471c9ac163a1bbfc08ba05ae47db26c773ce094196024dd9f80fba173738532a58d07182822a8f5f309d08861f6937b2986b8d0f1298cfbbd2f SHA512 ddfca42876ce1702e1b65754a1411f66392efb9cf7ad474ee892c29a372d5f05d4594d52b3a4609b0f77e7e4eefc8e38c790a462149d34a8b302ae89178925bf
+DIST firefox-128.0.3-hsb.xpi 646889 BLAKE2B 2519be9e83cfb86f8cd335926f8e3c99ec9dcba8291ad247f86a0dba7d86d2a71fcc4adcec735195d57f6961290cdf9e766d724cdcb66a84e4ce0d99d90da027 SHA512 9c3432245bd916f09da1847f3c80291151bbdb4d38926411e672c04609d78c0dd79b625eb8650edd800ab31f0419de261c171709f7c7cc6df6d4ebdd6e82bcaa
+DIST firefox-128.0.3-hu.xpi 649176 BLAKE2B 707fb79f74a5b46ca6de44e6d56112c2a49c34422ec95ce6d4f978bea904a2a3f017c88286be882b2c174e7e057b610753c030889c5c54c3ba28f7c42a810cc8 SHA512 ffd814aedc6e9aebca5c0209ea01d2de21b562734ff2264bf21b45d2c600d7c46d6ff65a6ac2aa250e7fd8e6b7272478af859569fb6a1afba7c893b1099b9cf1
+DIST firefox-128.0.3-hy-AM.xpi 651598 BLAKE2B 6e90a64ff88c240e253e06a3fde78fb4efa95883f7daec20982ff7402898e3ca1a3c6eea098a27ca6cd15dc84d066eea4f36784f205c95296bf2b8655d5cf167 SHA512 ee664c2a7a60782f7ea3e32b5e1439b9e4f5b37e8da28f6c05d43779e896e2dcc99505ee34c690b50ae478bee1a5f500c9049ae79fb4475c993c2a1afbb1f3cf
+DIST firefox-128.0.3-ia.xpi 611216 BLAKE2B ff2ab5c4bc21204842145d7a459dc09f99209ad49989e94fd28c0f5b1b34389a2995af3f63dd639c436ebabdaf2cff99c6da94dd3b30f1c3fee385966dea64ae SHA512 b7adf46f3a17caeabef6b752f3ae09095bae922cc1646ebe06edfc0cca31c82357ae466ad97603d92e611a5f096ecd6d973cd2a38fbdd7f28d2ebd523a11c61c
+DIST firefox-128.0.3-id.xpi 580206 BLAKE2B 75d9bd05b30b9d052657ad9d261d5999a60b7ee0fcd80d6e48b45f6019b6c834fc1ba12a32613ba2f255bde8f8165804135f7005e79940d83e44ad2ce87c9ae7 SHA512 43d18cb4d09145675ca816cca910feaa7af41a34cfbf35e42df2d9d3a9b862c5818fa8194ecdf184e4f2ea19e6ef0c553b0145bc19f6368e28ce3e3ec62f8cfe
+DIST firefox-128.0.3-is.xpi 616485 BLAKE2B 94249d9d33c13d2d43b14032a1c60ef8d2ed59490e8249fa60787a2da489137c38a57a086fa857d215473669a7dbd022c50f73425b29f7ce6d47dd8d013663ce SHA512 3db273effce357e5bb4916c783b8129e10c976cdab39cf0e0c5b79b59742265ad8f3b477030500de914335ef3df167462d3d687f5bda27023f637e610adf2ca9
+DIST firefox-128.0.3-it.xpi 567318 BLAKE2B 759bc1e76eb91b0897554a8ec1756c5a34e5a78a91dd2239b89153b2d72b403c06a6f63a08af2ca875764bbbace1c319e36173f7bd76866cff0f14749e0a7658 SHA512 25c4765ed40c64ffc550910572e4d01ac39c3aec1d76b5b6527f6c2a48e8854b8e3182154b3a09c6c12ea4dee6389df9e3417ef8084ef96e9a1313a39b58ea53
+DIST firefox-128.0.3-ja.xpi 675632 BLAKE2B dac46fcb428768d09ea65fe3aaa73ceb6517a4f14dd2bae6f0ec0f9dbbc9ef2647f0ab9b63d8607c8931316e973a111e54bed6da825e6a790abec5b3497c8e2c SHA512 a409699efa9053660a123fdba9c78969b9771775621549c0ee562f8ee83008b0119e4bb25315325b4e456412569c57d3fba64289a9c614ed5b4de744f8ba50a0
+DIST firefox-128.0.3-ka.xpi 660713 BLAKE2B 1c81c2351081db0783938c6f0b8512847be4562e67763ea8663fe542ac25f3e48f99edc39547270a0d8282296dc400c65b8f16045795ffee80c085dde7c4b646 SHA512 68d45b09e7da2be9a835e75982617c1219bf9ffa4a3990ede1dcb7709d58959741ad78a258082639377f125cb5cb9cc10c619a3697bf367a3e8555f5a1b47d4d
+DIST firefox-128.0.3-kab.xpi 608748 BLAKE2B 345bb1a7f7d2acc5563be97434be928eae6b113ff9ceb6645f834208354beae6f21ff82a6ca7adc0c8eff9fc75c0bd89e63f05b634deed0d8b1cb299fb4b23e8 SHA512 3f5637cd8013626ef3a0cef44f205f021a8eb1e7794e1a84a4afdd836698d72327fb94f4b2c572cc5da94c7f6a40cedff1d573c17a222732f1884f987d4077a5
+DIST firefox-128.0.3-kk.xpi 707825 BLAKE2B 2ce39e085bccdcd6a1399867bb42e0a74dd4bc2e1508a6f51e5c8ffe4b52901062ab1cac3645c1704569dc1177f58b457a84a6c1c98982fc00a34bcfed112f6f SHA512 f4337887809f5f02a7fc229996bc3a15fa77d79ef37463e396eb74c9fe4a56a9677e312ca61e6a80d3b29c7f0111f5b8d0916e59905858682b3dd77f9cb98fa5
+DIST firefox-128.0.3-km.xpi 525884 BLAKE2B 912b0436ba3b7b339673cdf7c81f79e441f0c442ad72cf9bb27fc553ff178dd4cbd7b519e481632b8295b13ad8bbdcddc82bbefbc3fbbb315c2f73eb6750465b SHA512 508fda7db4e760393936493133faf75dbc426fa14f0f13d5084a2d5fd7972eebf2f500eddd567f7eca215d9a638748e1145d7a3c824de15b3679935b412a8aad
+DIST firefox-128.0.3-kn.xpi 491252 BLAKE2B 3e5c41b6ec15d880e1c8f32c96aaefa1fbcc015939765fdd6f15aeba7c01e94f2d52f5d4fdf4cc17ecd0abd22920a572354b3a12dbd78f7bb9e77ae9afcaf3e9 SHA512 c2e1f572ecb7e222d32e498c49421fe4f7837ad1acc4671822a7a54c0191fe9d6d356d8b2b49f607f2319d9bd6155ac6722a4446c95604fce4bff85bd03ef453
+DIST firefox-128.0.3-ko.xpi 661599 BLAKE2B 57d7bbfa64e2ba94edc7cf797d48516279ebabaa8e9699871edc428b83b9f7970c6210ff13dd5b8b2916403cf60c74eb9e357078b6c5e5027b982e16a46c05ba SHA512 39a3ac1e689d58a016793983659e164073943b850962a72e96f59ac4ba9300b3238aab77366c8497e4a0a1d57cc5936336940d0d123a9e2510c612655e1c03a4
+DIST firefox-128.0.3-lij.xpi 484092 BLAKE2B cb59f07aaa69341e117baa9985a5be36232101066d519e240cfc6e819520ef676ca9be09c1b9972182a73446d59bbd5c605171c0f62b9d29d3df2d3745d7b5a7 SHA512 a10a2c3e950245f7cfa5ac79d66ee58efb29988eab3f2bb2755ead5eab3287ded6291d3b3e23fc74cdc32f227e4f71eb0525cc46899caad771550ac6a4a60e7b
+DIST firefox-128.0.3-lt.xpi 572684 BLAKE2B 3603ebfa2cd0ff6d451eaba407a832db725fe8e6e82af9e0465a6cd9249982d1ad6798c22fdc58ff3ec69b77b6aace97b76618b9bd7ddade2efb52d0a9f907ab SHA512 862131b2bca7a61b11872ff5caf0322b1cb61741ba3927bcbeaea352869a7929949dc93c0a9eeea05b92c0314cffab9a9588087ba04072474fe189e180bff937
+DIST firefox-128.0.3-lv.xpi 574392 BLAKE2B fe46033315e198e87469837608e674c8c0fff0a569e61e74a778870615821ad0446946cd6fe8e28be68c37292905444f31862cf01cc61a5fd7c15c09ecd05a20 SHA512 f10537c5997cb222dfa1e23819b2a12f94744748e6c4e7266e0f9cc8ccf56f0fc6011088e223f5bd1a8407451d832acf83bb339b9191223efe7042ca7857d38f
+DIST firefox-128.0.3-mk.xpi 493840 BLAKE2B 87598e549efcbd16468d7971f741c0cba877f0cc4396d20d183e49243a685bc557a0ad851bfc5f6f4baf65b27fc7a00655c60192440af4f76dc1ffda5117f86f SHA512 b142a6890dc0a53baab76d667e777101ecdc07051a61247a10d8495c56a9966da9893e92a2f4e25a205395bddde12afc621b725a911ffc76cc3459f3252c97bb
+DIST firefox-128.0.3-mr.xpi 532094 BLAKE2B a7fd734d1db3bf102560748af542e1b46f44d461af49d60f575dc5a227590eb7b4b8d0fa8699cb0ab02662e40ecdd3f082348dc7959ec7e780da1b3b10433b6f SHA512 2a89a64657ca0280f6ce854d678c23abbc0f162694a59676998987e7eb80ec7e990984d48e2cffc571f18c9d500e324c77c77e0ce3519c2043ad38d9fadf66d0
+DIST firefox-128.0.3-ms.xpi 449731 BLAKE2B 1fb71d1d685d717ff9422bd1ee20d705d81406924799a559defad2215e5d63cbc3da02f0716291db318de811ce47afddfb5d233350eeda7392c9d1de34f9e609 SHA512 58abfe466d93e551029754a31f91a2c2e6a8cdd453efe8e74f602b0a3fca27f80b3c35111d23f930a93d82548b46756cfa8ee1aaec8023aed27ace891e8d60c0
+DIST firefox-128.0.3-my.xpi 518622 BLAKE2B 2d090409ec509e341d5e17de3f792d087372fcd028d790b71939b8334b41f4de87a1c47380ea73a3205dfe166703524d0d49a02a3037db6c064ce326b18628cd SHA512 1c3252f76dbdd69de40b23df6645bfaf47970a4088ea48642f6354a87f02cda82d9b05e0413beff6192ef87c497c642d9901e8c836cce626380d0343fb9a066e
+DIST firefox-128.0.3-nb-NO.xpi 607049 BLAKE2B bc56de8a276e2d76091239d735a96c4df9d0b1565ca250062288bd1cf751a4a67cac5a368aed6036d5b80a8c7a548904b09add5ca9758b075b10bbfd74ec374e SHA512 a7df37359438c835ccc40749aecae90576cbc3c647fbec7742fd7d510cc84f46a82db8c998098ba96394d8aba12bbb7fac393c3dd12d07e24252b526a854e969
+DIST firefox-128.0.3-ne-NP.xpi 510942 BLAKE2B 216913e673179e124b36413ad702d9ec7dda2284675b6257f234a5ae6417c98013b6c86f096cb91d1be5a1952b35122af1d1ec02caa2ae7a065a69bcc03dc3da SHA512 ee082c60f564dab5ef1e83a4e2feb26fc311567254e0b1a8caa74c5ad0179c4bb93ccd541ce05a657a85e04af2d2d13f7e250cfc77174db68f460c7af2b35158
+DIST firefox-128.0.3-nl.xpi 617411 BLAKE2B c89c8044d76a0662594709ad3cfe600c1c5abe7276bf8fd91db5a205d7cf15e24384fc294e50768ade1a5a73272b5ebbcfef2df7c2a7f304a4b43a6a4d02a328 SHA512 e883b264861e35a7fc5eaa0da2ac6aa51de858cb3d91a0a3beb1140a4db9bf6bef214362305906f5d9174441aa84728314031994503393d009900681fedac45b
+DIST firefox-128.0.3-nn-NO.xpi 610252 BLAKE2B a3d2d7760c7b7d47d34964a0314d23c66a608252eef4f7409062955cbebcfc33ecb73cb85b71761ce72cd4a9770aaa8b229c6c43004eb98609286e7f76b8e472 SHA512 67fc048770d1957432156ce3fc9c97eb45d22e4fd7aed2f282f12e1d60185b6891ca0ffa21ed0f32a2763cd009e4df338581b2aee36e15258cf350818868c892
+DIST firefox-128.0.3-oc.xpi 612809 BLAKE2B 34c0873944523c5aae085ee2decffbe08837c2e81acd049ae9b7b36dfffc6863dcd2d0b89ebafebe3a181af31998c34c4a19782ce0b617158abce6c495ffdb6a SHA512 593b0b6834e7d94189bedc91d77d562e6838edfbeae7cfb4f8bdaf52694b1bd7b0f2ba927f927b27ac8a6489678831ca9298c3b0ec6c1a270379e9c9427dad32
+DIST firefox-128.0.3-pa-IN.xpi 692032 BLAKE2B 1bfc754b0d9007f76e3b901aa5393a2917aa0c3b750835df96cc47b9cf3c922c84bccff54e7a2b63b8f77a5eb10ef388268148c8a5fca2509972f047282b1060 SHA512 a8fc7434e7833312ecd263e4f5562bf6fbf5a3025e9575b278db97535ba76740bac2626739c3b58c0b00132d61fd5302621272114c74a60b3def1a3cb8537b90
+DIST firefox-128.0.3-pl.xpi 635776 BLAKE2B 1113d75c1948f7f18adbc2da3569d8c7319341cd49d157eba17992f3ed72b0644c7dba0b0f3b2c385fd6bf7980f23cd5c34c5388e97d6076b501c85d0cb3bc36 SHA512 5ac939b0081fa7c1415f52f85f89180a96abde40571df0a9a479876e346c4ab758af25e2334d3d9fa5a9c516382f1e8788f7c99409ce7bfacd14b3b67c1388dc
+DIST firefox-128.0.3-pt-BR.xpi 622152 BLAKE2B 5992d51887d7989051bd60d0925a475899ffa8012d6b3f2421d9dfae092367a3a0ca505e9e6c601a275c482e7166d7f17dfda23c59d6538fe7941497290fc5b5 SHA512 fbab54fe96f778703ee9ccf5b5c160979171266225c72da30b7a52bb35c7b4274ac3284f72088212ea70da1630d645048231460f409b904ed4b3994e032bd875
+DIST firefox-128.0.3-pt-PT.xpi 626182 BLAKE2B 8b183aca56b82f58f3556427af3681c1c0dc2e3c1a76d67b1ebb6b5419947e5f08441e18302c207f698c7565d6cba045c25583be56c770a56de60a9715c07ea8 SHA512 98c8416be8020ee5d9240fd04ac653c772b9b98b0aa05f0300445c2dfa858e8c35c5eebe27ac89c3c220be58aac4593e6c3f7136d613e3cc98224cfefba43002
+DIST firefox-128.0.3-rm.xpi 616896 BLAKE2B 5429ec89787901f540d3db31d71664772c5748c297dd1765411bca8cc2d51e1b22a618e15528b11aa33fa93583ea13f0374fe1d54ac0bde896164ab78b37ff57 SHA512 f18b79781b9fa968ba73451654dec8b942fd501591d6106c5105dc679ec90fdaa93f29c976778aedf9579d4226a760099e18b28eec5a02c14e4b85ed887f65e7
+DIST firefox-128.0.3-ro.xpi 549799 BLAKE2B b40a49d70d64a1582b25c64526c826cb260de98e813babf59473133ff0419fc3a58c29bdcf1d565f744fba5168bb01883b8834ad689f31bf65da94ac47155ef3 SHA512 dc73cfde82074a805bb8e7d2c61e5c2de2dce28c5ed9334e5568ea21bfc5a766afd19a0eca576ce64c65d7aa85a34fe8f6099cc32b2c0afa48c62217b0297d69
+DIST firefox-128.0.3-ru.xpi 720402 BLAKE2B 0943c618aef992664787cc5ff017317642307cc14d21184ff5a3ec98e28417aac9c22c976f63a0b4468de4b6fd2e57afb6f998d7e6c1f019f4822ba7723f0f53 SHA512 4f4aee7c7f2a42a0c58f2e8cc6cfaef5a1cbd59332809aeff66735ea11ebcf79b74ee4943c39273d6ab188294e8fff8b7844752fea7848370d852300c958153d
+DIST firefox-128.0.3-sc.xpi 588574 BLAKE2B 7d33c96b2c99418e75bd80a2f7cf1329001cf9d79c79cdc88874795ac17f3b5c242ef58cac4fd90eeddf090c403ef6812b93eadc640047965cb174751edc4fdf SHA512 e8cf30bc97022c809707ac95b9c15996496487a8a39f84c5b6dd8f00be82ca451ec9d96a779c087b980b19696a807daa672811df76092835b70de46c0cc980f1
+DIST firefox-128.0.3-sco.xpi 511285 BLAKE2B 75eab6a274672dfa625f2ac0a1756b9323f024b08780f3ea69c355c1fa85fbb6caed245bcc308620cefcbd04f1a781976d6af74f3ad3f913c45d0a1a5911ed24 SHA512 5f0dcb78644eee646d1bbe3edf86be60cec115cc6524b3700d03bae29998487ab69fe6e3fae6b4375f5c570e667265dd1c7a721182775ae1ea0fb6906fe9f5f5
+DIST firefox-128.0.3-si.xpi 611295 BLAKE2B 16802d279bf3632e518e3e46bac1d182cf1b1648e0e6c150e27e17959e92041e2bc377e94b990d66d71cd6a0b9e7104dd1eaeb00a6fd7e629e8d25277fab8131 SHA512 c85fecc2241629e49158fbdc4aa6312cb9c638984e9772756e65c591bd85b500345848d17f9cb74bde41d997facb40edc982de57f1799c3c48c39039be5005f6
+DIST firefox-128.0.3-sk.xpi 652438 BLAKE2B f368517d3fca5da608f7dd5930b71271abfbafa8204ca1bf471a34bacdc6b07c9fc657a93e7956a037a9db17448bb49f14b28afcb5695b5720db18b3a3279570 SHA512 26b2f72fa22ce32016b4d21a1720170d56f76e969d31b72c9ade58a66cb7390f57083aefc05f5862bbee62a445b05c78ddc510a07277dbb5ec77b9be3f2e35b0
+DIST firefox-128.0.3-skr.xpi 707656 BLAKE2B 2329f046dc880f0816f6e6d600d2e8d18cb59051f247d6591625f0ab0f4055929bc2af76256fd73d48b892eba681901895f1c021967d0a5fb8a4e72d67278d98 SHA512 74c8a291d1f0a18ed23a15921a2ccf398278288a224f399709907bbb16f1d3ddb99ca268a8917edc846ce01b415ddc54305d99a8c53f5cae8514478c86713296
+DIST firefox-128.0.3-sl.xpi 617396 BLAKE2B daad5f91bbb5e8bb89d0af35d8ec13161996c2679436a1beb5ad41fa67f8ab322d66c46c44b46e7e8600db5111cba116524b09fd658a4a2c3682a29e3b30a9e8 SHA512 e63ada63e8218ed4b2fd1c758d2ca8300504e6a5064b80f2b59d0a76fd17b2d11b43b2e5899bfb5bf7a0607971d35ee7b0af2f8d1c9a9486d2588e7cf2d116dd
+DIST firefox-128.0.3-son.xpi 416404 BLAKE2B 86685fbe19f40bc7afc376d56635cc87c6224b4d00fc5ab7549bdf21ce7021e9daa60994458994511d131a6888c3a59101341102a4f6164335f0bf234a65f1b4 SHA512 56a350ad3b1ca0b9a5e95c8e0a3af70a7eae12d72a2f2a335d827784941904b94a45373f55a60cd5bd0bcba3fe3532650370d60996169b7ade1b0862fcdbaeb1
+DIST firefox-128.0.3-sq.xpi 636981 BLAKE2B ed38769559df3bff38eb30a26b3825438f7b54168d17d3537307eaa687e7c58ba5538a7e81ec2f289b3e1b7360ad0c7a019cd8a7d49b30c2732897052812c46c SHA512 f698b489aca4fc639d3721c2b06111854c7be97672900384e118a25b1273e122b303e607439ccc850946f6bbed0c8f4e801c6cbc48cf953a1f05d8062d7fb8df
+DIST firefox-128.0.3-sr.xpi 639353 BLAKE2B 145dfeed9830d01d0a8ce35df69aed7f625284b626897d683fa9ba8c01921beb54d13e479036aeaadb3449af9fd8758cbb9b3764d17ffc2462d726c2679ce4de SHA512 c5f6f347315f789fdce11927a0b139f0a43cfb93289bea7794977f158e4147d5f47c67d5c8c0e3a87e055d92f5b466c9d164aad210bca4d18fe9efb062d156ab
+DIST firefox-128.0.3-sv-SE.xpi 619123 BLAKE2B 4e192f20586e54061ae120326c759a565318d128ae0fcf1cd0104faf709042b0ae45184f940614cfc4c2bc8dbfa23b2298522a06c3f9e1c7812a0633bb1ecbe3 SHA512 b2595d15df36bbc4192c72d274fb1f8511e5098edb8eeaedd26df10059ab542dd5694d1d3bb429b6610badba5c5528059e015a07f41ceee30efca83f65e00cfa
+DIST firefox-128.0.3-szl.xpi 526394 BLAKE2B 23b1acbad3a06051efa3b53b1ab43532774e741e2459e476b5f4bae1b66cc9e6d8fcabf708a2899470d6f94392f0f8bf6b41c1f9dcdbddcb0d6dcdeea2ec126e SHA512 898794f23ae188436d35ff05d5f4c7e817c7f7537c6056952d1a06abd15746628a2841d0933d00fc883cccf2e0268f104c271b873c138593f86373ebbb93bb61
+DIST firefox-128.0.3-ta.xpi 507521 BLAKE2B 21e1004fab9d36739a84dc2bed6b951d2b084af7479061eea23fe78805a76849baede4612bc5b4f18151614a434cf84f9cd34fb6806b0c38662517c27bebf1c1 SHA512 2a1fa7ebe9a2043a592e4601a6c300779e7770298d2c2df0a0113cf12bd044cf90c3fa7ffb8eac18260a1ad6b25bb2da66b0ea6a490310958193b25007591d7f
+DIST firefox-128.0.3-te.xpi 561028 BLAKE2B cfd179c8db54f5c98cf3c1d9552d98e279ba8330b6610f64c9d1288b0fe33c39f876ec888d27e4465c233254433a55d3b0aad6510d9e115d8e3f6f63fc274ec6 SHA512 0e4d6cebbd33433eceee64eab8b40f1e36bb344e15e55328efe13177fb63fdc275bba266688cb45e8481ac5e713ff3e5317d4daf4ee313e411bf5b79bb0bf854
+DIST firefox-128.0.3-th.xpi 693562 BLAKE2B 0bbbe31a866de617c80c22ed199bcf09b93fd36c78aa0b4c7ee1317fb7aef4540947e8e6caa48a7d116b790eaa052bbd7b59ca642772e8ece308dc579393af6b SHA512 f8358f8d5011ae2bef783aa2171b42798eae4dde7f8ef62391769c12c392ebf367c3f9a2a222fde1aab22066e010de7e04ccbc1f660ead14067b2fc944d4808f
+DIST firefox-128.0.3-tl.xpi 534190 BLAKE2B 40f1db1b12c292a5e26e97715f0f77a6eb5513f679c21bcf99406bbaba4dd533472138f13cc2be631a402a1e4e57ee932267a061b33d82ce96fd6d30400f2129 SHA512 3c44d168d8890390b698383564a8ef9750fbb6fd0caf344c4f3deb91249aa0093b891997657a99b62abb694ba097f305fd65abbbb600f69ac3e653ce5b37230a
+DIST firefox-128.0.3-tr.xpi 632468 BLAKE2B 0e7c7151e9be548471d07a56b93925b0f7217ecbd7d3b2ed39d8052473644865bd42c53cdb796161672c2b84133dde6c8db70a942daf1a88077810ae0a38afbc SHA512 2b82e6ff9af985a59eb58da37655064e036211a7d1f1e7edad5c9fe5a898ff30d949bde31a151b0748867c9b6e9811a0f6089322f7f0898a90865d2df966a2b8
+DIST firefox-128.0.3-trs.xpi 503974 BLAKE2B 34a4cf3546aee4e4cbdb971eddb640909f45186ac6e8f0746d5cdf22c580fe75ad760866933f44ab8accd44973e3eb85cf2ce5326151efb8cfdfb7b1e92681bd SHA512 56d999fa864a8ae752e011b1aca21f68141890d8182af58d03485cc77f35cf257ff3e98b95f1fe4ec096b6ae641729209f04e8fa1f9d3c0b842d264dc0fb7a77
+DIST firefox-128.0.3-uk.xpi 707283 BLAKE2B f7864313a5bcb40f1bb2bffdc6daad3c82e87184a8e4d6d10a18a9d04da6769f402b1cec85cb6ddf8164ee312e8ad686c0aca5d07537d761d7d5153061ae6bbe SHA512 200a906734dab6adb054ec835b9cf378fd7edec2021a9979dc7ef910c179ab04434a7941c2b08929a9a7a238e423ba02b167e2673156da66c29f981088df1a32
+DIST firefox-128.0.3-ur.xpi 560478 BLAKE2B 0d85acde4aa9e0576aad590fc0c7d3799c73c6d89f9f1b8efaa8ff32f2c889f71382bec19c526c6ee2af0bb86ed9c518ee8dcb8c3b5ef4a65514080e73b1917b SHA512 0d30c97debe0bd3690b6938204ee5c079df0df3cac7ce5131bd316b62a048690a3511fe553b44bb6fe0871582c689940f40e5f6e9c1408d8ea739f48af7d4975
+DIST firefox-128.0.3-uz.xpi 478785 BLAKE2B 45b321b8143b10099a1246aa99f0f72dcf83c1d4846f7da1b0091a26bbe4ef563aeb51a7501795ca1f2e64d8b3e2dae4a83b6f121dca47989b6ff9d35da3a1eb SHA512 12ca3b256fce234c683d9294dc612dcb50c5d69d2ae98e01d9e5fa91987fcd13f4d08c6be103cd9c76e39f5776f2a8de02c122971e34fcfb0627f38502729bad
+DIST firefox-128.0.3-vi.xpi 655581 BLAKE2B f9ef15bd809f99d525792ab9785dc15a892c6118c283f15d79357ed3687a94733e70272126c947e26f7007df74142c5aa3e3861c454c08292ce18c327d9350d5 SHA512 0d23d23da8cdcbe4005fabf53104d4502cf6bce0e13ea8c9acdab8f5e0dbb01a62e3987ff83fdc0f99a2c8c5b00c6fced52b44878440d5c4a100bef370598220
+DIST firefox-128.0.3-xh.xpi 417171 BLAKE2B 9e0f3da87a68da99ca52353ba8caccf0993ef27fd2661deaa78687eb6158e0a70c4ce2703390b9f0d9855a7449636dadc1e4cf8cb1fc146ed768eb65dc8d8d8c SHA512 82504106fb3908a4d8654addad204506a44529658f00cc9f4efdd9fa5bcaccf340642e1f5f5c36353173846eaa9b9c8483b4d59bd7d43c31c6d03c21a650ce54
+DIST firefox-128.0.3-zh-CN.xpi 657105 BLAKE2B 85d43be34cdff7ba76c8b9d7466678904b913593abaa4538221a805d59012cc9d4923750d41302057dc768b59a21ad8ea9af367af91c85924368821f303a7036 SHA512 8ff9a0c898c344182c1e0eca16b3adb47fea59c47a71ce5e1fa12ef02275e9204919eeec552641973704bc4e20b5f405bf6152192f4fce9d756c975b67bcb5e0
+DIST firefox-128.0.3-zh-TW.xpi 659225 BLAKE2B 5f7cfc5d21e1a98396259b46c28ca5531fc50e0fb0b78000915ccd7c97c1885aa53866248a9d8f0134f706bd5a920c63a11937dea304eb7b6c8b5dd00d9370fd SHA512 3afcf932e426fd3673f90fd1f8fb7f974f03d1821da6907768d50f755c5e59a0c80564ba7884a925d07ca2f53ee3980f11e802723c2a07dcc1c731aa650456bf
+DIST firefox-128.0.3.source.tar.xz 563698520 BLAKE2B b717044fb0af090cca8adb03eddf9d1ba7b2e46c25d78de7aa36298d3b6466cf57b0a1c6c72ae369c5fc3484b9da9a79b902529350f3329b5f7254386dac9271 SHA512 52a0a1a6fa653f5a621a9e16e1937760c05a5ebc81a058ecc16b2c3d29d09d418dc5129deabed86ad2f82abdb3100969478a67f48b11616dc3b3e3698a1acf51
DIST firefox-128.0.source.tar.xz 560761840 BLAKE2B a50c7ded69d86c9d45475e701f83295ab6ccfc4eb59d9c91379504bc35dd0e7e1fb59e8c7737684709fe62969b9762e2960fa90607c83f9e8d637b78e60f56b3 SHA512 309c0e2a0bea5699e6daf4fa02300ad7fd118d2c02c35cb5fa97a5fcc6e250cc7aec34e50fe872b8fd516436bfcfe37ddf33c9d0f9291860388cd6f3f08ea9f1
diff --git a/www-client/firefox/firefox-128.0.3.ebuild b/www-client/firefox/firefox-128.0.3.ebuild
new file mode 100644
index 000000000000..e4df0f33906a
--- /dev/null
+++ b/www-client/firefox/firefox-128.0.3.ebuild
@@ -0,0 +1,1403 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128-patches-05.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=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-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}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp"
+IUSE+=" +telemetry valgrind wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( lto )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ !www-client/firefox:esr
+ 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= )
+ valgrind? ( dev-debug/valgrind )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/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
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && ! 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! 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}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # No mold here!
+ return 1
+}
+
+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"
+ 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
+ moz_clear_vendor_checksums proc-macro2
+
+ # 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-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 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ elif use valgrind; then
+ mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # Enable JIT on riscv64 explicitly
+ # Can be removed once upstream enable it by default in the future.
+ use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-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
+ mozconfig_use_enable valgrind
+
+ 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*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ # 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
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ if use valgrind; then
+ mozconfig_add_options_ac 'valgrind requirement' --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
+
+ if use valgrind; then
+ sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die
+ fi
+
+ ./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
+
+ # 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 desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+
+ 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
+}