commit: 5426bc9c9486e9c8cfa028da7e8da7aa3c68a95e
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 19 19:08:15 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Aug 19 19:09:23 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5426bc9c
www-client/firefox: add 128.14.0
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 ++
www-client/firefox/firefox-128.14.0.ebuild | 1380 ++++++++++++++++++++++++++++
2 files changed, 1481 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 90afb8cb50b4..42adf94fa61b 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -99,6 +99,107 @@ DIST firefox-128.13.0esr-xh.xpi 452433 BLAKE2B
c330ad76a270e7c94a9e37d3f3d6e6cdf
DIST firefox-128.13.0esr-zh-CN.xpi 686325 BLAKE2B
de94a7da3f1cf245ec7f1863573a57f46530dc38feced9cafd647871baacc481ff479452adc8baf5a47d7d663a7e1f0e503484c0e3afd5b31fcc5c62567e9f4a
SHA512
5af6435f6d5fe2cef242410fceb72c7a0047f0bdeac550d0f473a69756f9cc4050ace096e8a52964e645f1b8c15c0dcf7c1db081861975a63f2711b712b997c5
DIST firefox-128.13.0esr-zh-TW.xpi 689138 BLAKE2B
213acc88fe7813b792999815157c07fef91f73c1592b7025aa745e0c848c85d7bdedee7bff0870cdaeff217123b355b45be46ca66cf1dbe1410f288b6efa3bb9
SHA512
cf0db4539410ee101f853ea6e4eca48c8304506c0168846b29ee630538b2c628b03693a3738b24e9bafe5a3203ceff487830a8fa2138542811a337996aaa0024
DIST firefox-128.13.0esr.source.tar.xz 560782432 BLAKE2B
1be2fb1e76167f83061fa805dc09b2f32dc7c813655cde72eea4b0ccc44a02570a78e2f177c909f2faed96eed6f47d08b783cae3f19c1d8e44dc8e531eb1ecc2
SHA512
9e6f3af535e0904219bcac947d458789cc43cbfaf476ac287328323662391eaaadeff57b244599acf3626a2fadc0bc41b70d07e33ca6af4412006ad01ceff034
+DIST firefox-128.14.0esr-ach.xpi 482242 BLAKE2B
30635f4251440d12bf07b704856bbaf78fca6b4dfea7a28c05e8be1abb1026a526ef98c51f0c2ec3382d381b42d401aa6714404e4591756d91c403a365c63011
SHA512
b0836eeb7ecaf61ac85b60ff35bf439d0b130b24076684b6d79ddb6c4a47be0eb822da42a5ddbbd5c61ef302701c2e0310158e0033ebe17431a4b20f9ee2c535
+DIST firefox-128.14.0esr-af.xpi 446594 BLAKE2B
a066b5af3944ebb9853b4009fffb1208ad04eb01bf8ffbb39b4887fe520f04bff6298453bb4e93e38f40ff54242dba7d5e83535780e935e6407f451e0d3f332c
SHA512
ccc3c484181b88ccf61fcadd74bddb84af116f27c094b2a18ce9697534e6d1e90c1d290260386deba7d9f0a3f6e3261df83c7e4f15965931f9203bd2b6312b6e
+DIST firefox-128.14.0esr-an.xpi 526057 BLAKE2B
740cfae51375c564bff7e0ffccc28919d4119e0761e98ecd198b4171beead9247649c013fbf8c90680c6dfa264d45accdc03b6b55aeb0bae05567a2c349b38d7
SHA512
cdc7858dd510fe8d920413e3c317da138a808f9ff2864a802fa412ee8eec980827f00baa6b53f4f455df3aaeabd74c4fd74dd25030eeafcabaef4ace9de60af0
+DIST firefox-128.14.0esr-ar.xpi 650457 BLAKE2B
a0c2e0dbdb0eb66f9e90283a363834f8b574f464381dbc649c5a6a1b77a2f161df7214857166ba4eeb1cfbb66769281e9b5dd334aa0001748e2f06e98ffed7e9
SHA512
cd7f6f57ef660eaac8697758d483303543de6cf95ceac2d436b50336501e3fc947964a1434ecce32e0df03db931a17eb5d79a8d7829c3d96f18dac428e9ef11e
+DIST firefox-128.14.0esr-ast.xpi 508564 BLAKE2B
8b0265ef8de71016caf88943638fb6ee98389178e4c516d8d47a05d159f1cc431e1d9be341116b51e44fd7e954fafb98778ecb8915424f7f5bc62a19894fc7ef
SHA512
b87d5f42824867ee4861f4543247e2896d969503b903f668489df6b6a8fb658b980e4b3e8a1856ef1cd0d023df1b2549602d11a5182c291e82542407209dba94
+DIST firefox-128.14.0esr-az.xpi 509838 BLAKE2B
23bca7684db3d25f01c21c111bd5bbea8d9ac52d8f65c2f9caea7cccbd165ad6e73a6b7d3b7d0e65bbf7c990c28937555fda09fce545d0786ceda4807494fad1
SHA512
acb630eaa7059b1eec744d35f5adb7a44fbf058edbfedf56099bb8a7fad9e7c753f3f8eb215834cc1f15cb12e4ef47ec974266c5ea4a5c5a59ab677b162f89ff
+DIST firefox-128.14.0esr-be.xpi 748087 BLAKE2B
cac216e90d166f81a290f31b779c1b9dfdb57d15ca11875f23192b95aae202bca20921367c8d3a4d08e2f4052f217b3d1a894179becebe103a1cbf83b0f07977
SHA512
337085fd96d59a44e4ac1ef21cbda76672f50f14706b1505487c1989412fc62db7429082beb27a3dfb326f2a7e428dd573c26f5573cd8df67fbd4da50211c310
+DIST firefox-128.14.0esr-bg.xpi 672062 BLAKE2B
1fbc0a9ef5497607927552d6761c12fe0688629267ca5415064e94e9dcc0516fda7ff2163e74a738ed65dcbfc4457a14efc36aeb489ac6728c95ceb0b686981c
SHA512
4606f4ec4f206fdf1e135b9d9d1b5b83c5b409e1631b30705f8162f2159bdba86026d7b88fb347efcf6259bb2f2fac4ed13456310f5526ac74b568724ead0874
+DIST firefox-128.14.0esr-bn.xpi 624740 BLAKE2B
5c3711111365eb95400c8baac912ad57cc2ef0657c3a7567064317f08f840fd0340bad95204ae7886b43afb7e9c555ae79e8f0ef6f09629b47d12463ef38146b
SHA512
3a8c06587b38d0f1f6b5b78de42f43a54cd8c15de5bd6ac0db5da38586d82766311e6906c892369bcba9e80b52e61e71e45cba003d65440913bdd45e38fe8bf5
+DIST firefox-128.14.0esr-br.xpi 598755 BLAKE2B
43baebfefc2458cf9a76808c81c06902a2ea56f2f15865a30a0746ffa5f128bf383a0aec0783adfb09530433a449d1e2098ea64abe2d0be7fc2711ac170ca59d
SHA512
71ce7b6879d15fbbbb9fc39a91bed51c02b038d27ad6e3789a6bc3d3883733a4b251613ab4d844c89a9da095b9b8d7190b628da3212a4c9a084d23b3f53a6358
+DIST firefox-128.14.0esr-bs.xpi 566004 BLAKE2B
38c3e50edc457827b19e244b85156d1f55bd8f9cfa1b9fa4a31ccb01ccfc54da841be841db956e29f0836631a002d91c9bdc2cff420d34efb2cb69c0cd305d14
SHA512
2dab54be041fc8c690b41f424438931f41bc9e10c2700d46d92e86b71e8b277f28b26835023bddcd36943e9fad41021c7d01c68ea5eaaf48d4cebe7c39493410
+DIST firefox-128.14.0esr-ca-valencia.xpi 561150 BLAKE2B
2ee2c208e07caf01ccf001bbfc0e056dcf8f94623a09d2182cfa8e41464f8a391911df7b7b8fec77ea92d074853e43f46fd07b27b3e3966e6a44f7b4c648f111
SHA512
c340ba18423f31c0a7b12685cb068f788b1cd408b8da0bb5e667d464f2b932c4903148442bfed38e46d55bb54076f9ceb7aafd468a816f1cdfe568e407d400de
+DIST firefox-128.14.0esr-ca.xpi 609974 BLAKE2B
5c28f8bc6289ba283dd51b7fd3cfe2a46e0723cc2700e6b3499cb3fe41c81537da235c7e167404c7c8517b3a8395f2c67b0db86649efef4aec60fb77435ccb53
SHA512
4edb7299c9202a124ca1fcef756ed8bd3d399a29a7a895e3dd3771a84d3d56a4d2f94ce13dfc94d876e6ad8402cb3353d168ecbe2a0c82d8558f1f32724c461e
+DIST firefox-128.14.0esr-cak.xpi 601493 BLAKE2B
49e9ed8ed05768707caa055ee831d81b0c4b6f198d47dbf2bb663788582ba32795a8e4937e59a2882710a2e63b5c40aef4a39cd5e45e3707d1b98ed64b4fadca
SHA512
69f4c72387860804d008f1bea6d03337b47e6d6252d5c9bb3ab336da3db32377a6b64c1046adda8c5bf38d2914289a492167f087d8c5e3a88c4ad199be94b726
+DIST firefox-128.14.0esr-cs.xpi 690643 BLAKE2B
a5c9f79b70aafd3778ba9d59902d1077b7ed90639a56458f401c8da85265958bd6d169c0574f0372c454fa39c0e93d9b7d76e0945955d4a6ef696bec77b168d6
SHA512
1e211a4c2bc9bda87f8ddc278cbaf2021b2eb30439bc15e79c37db1515cd4cf7387b040e84db8b3a6694a98dc5c954879a2d002fd7fc4c7c7f5e90797bf42f9b
+DIST firefox-128.14.0esr-cy.xpi 650604 BLAKE2B
bf462422f29cbcf48f22926264a259861da3467b4e662eb5acb965f87bb27cbbd5493a0b0394edc73b0fb23e34bc75a21c0ca201a4a53592f469e3dc8331629d
SHA512
c002a7f58e466396e4c191f227b94a020e91416d402c75ca4c2845b2c6afb6348fc914d5cb90a23e54af31dcc02517431bc555c59c9932fad3369d5a5c9e3377
+DIST firefox-128.14.0esr-da.xpi 638632 BLAKE2B
ad3469029d5c109a805e3bdfaa234eaf2f1df658552363a17ef61216bcbb99c44e0b4af7b22b80893c0f9879f690aa3c2fd7d84b8856162b9c68bd51a4ee43b9
SHA512
4c53c0191c464d077ab4fd146842012667373013280e0a06207c0e050659cae9fc24dc9ed3b6ed6ef899d17d0e12d5456cdf0e429cd77c843d043ef04d86129d
+DIST firefox-128.14.0esr-de.xpi 663134 BLAKE2B
7fbffa65f30946f1c78b66fed713d4b7d1f74845ef53aa770bec9d15b086426cd5e4a4690b2b35261091ef3ecae6b97ac8d287ebb3610a90f5662b9b3b343213
SHA512
f05eded3f9bb1373abbddac65807325b91a6e29e6b57669aee5f063d2442c8b3622c611839ed78aad9fcb3594b09f807c883b316f008cfe7abfcc8b008699038
+DIST firefox-128.14.0esr-dsb.xpi 679871 BLAKE2B
5321be197585f111a9234fe35f729f4473919c60bff2b2fac172ac2d2d7ae35828bcb41ceb54fdc339de3e885c21eefbef822adcfcdf905fa5a667bdf74dc925
SHA512
cb1e34d9f72bbbb297e71644e04aeaed13c8625407e0519dc6ec681700a75d85cfbc9afc554cdf4f53cb370c8bbb968eea71de3f4aa5c3ec595cd8a9e01a32b0
+DIST firefox-128.14.0esr-el.xpi 764541 BLAKE2B
27e32d7ee3cf8dc6ce16818d1dae5d66e9c1006b6e701b46228d723a91c253d34cf08677a0dcf32c1fe153da1bba039a3617308569b9dc725becb3eebdf12703
SHA512
3d1f8b645a3072ed1f334a4df997081e7b585eb3b10526a8089cdd3649794150ce3bc6edf894335c221070b7ee4dd56eec986db769c55becc2670652a9de2954
+DIST firefox-128.14.0esr-en-CA.xpi 610420 BLAKE2B
1f7da07356a18e97a702349f8f944e8d132c5283164bec40d348d9a485b6131d582f6c3b3d8c101a6e0fde345bf121e0fac7b8e192163be7cf5489e70abd48a8
SHA512
83e202f6539305831b3fb007775def6814e2bb6d2e708a4f26766051bdd6b8332d1da7cb255cbdda76c1a2a9f43e507fb2d110cb475b5a5aa2625d94453440b5
+DIST firefox-128.14.0esr-en-GB.xpi 610788 BLAKE2B
f7967cf491e7c36a040e010b6014a37e36424619d4f3515a127c3d1c3abf9f8eeacbfed5e705e895b2c613ded192b67ad63edcd5c278ee0c3be182b0f6ad1782
SHA512
67a05cdeb3444ca8e659766454c69e879e198ad926b113250ce436426f75e3e0fe07e7ff11c1a749ae92a1c3e9ad0cb3781e172a7a298041767be47d0cd3b189
+DIST firefox-128.14.0esr-eo.xpi 643526 BLAKE2B
f19e7755f224106bb86c5b784e2bb16fb28860c471c17ca39f778357c45c32de28a625bc80a7f201126baf88673bb79125b8bcd14295024fb376e23a4efc9ab4
SHA512
96a2b47f4dd469251274af9b55137e34f13bee8a938068492aa4752e6c1231b1bddf01cf75e081ec3b1228cd16cb95b09c2cf0f752a5598a9decf56fafc017ca
+DIST firefox-128.14.0esr-es-AR.xpi 655632 BLAKE2B
3ba8c951203b574bf3594cfb681fb12dd8124da7efcb30ef6d59feccbbeda0092b5d89627b6a420830fb32817ba06dfab89ef709fdb3147a3d3b59a5b28df8a8
SHA512
7bc7416ff77aa8a27aeb5134ade38cf07790519b39e22df453a1a9ba476c8d93793fc81716567192d06f3c79a1a68d53e8ba1ee89716d3354e7902db56a8efee
+DIST firefox-128.14.0esr-es-CL.xpi 656071 BLAKE2B
8090d82da53a8671a9108f671a864a6a9d71d32ebee09236351058e5d27a6aa9015a21862e0936dd9882707444dba3d79c8376bacd231d48c884f8b9faa1753f
SHA512
d88b0bd7c2a62abc3668149859ef1bf99a19d04ee298aa608181cc6f663b5032d3e907f8f82f0196b2427c8148176f5bac4c6dfecb50bfdb14c1e384897ba16e
+DIST firefox-128.14.0esr-es-ES.xpi 655186 BLAKE2B
6db65d480271f2aa52ec1609d4a999c211ce5cdd79bf91abdada60cf138eed3073f6729d0debe26aff4abe79dfc1da15b84c806fd33715ccad755b3808f2a48f
SHA512
cff516ea0a371e4d3185ce4c6a1d6d2cab45f08954478a22d6c3b77fa294d3954e3cc8f7909918dc552dea14f6836478ea85684cd20c7a852ab84e389b1bd840
+DIST firefox-128.14.0esr-es-MX.xpi 657402 BLAKE2B
fe995a34e2996bb0d1b393215e3e5b474ad858ec008e08ba32dd35fc8afae27b28761ae7c3b9470b2124e942fd9f250c4e15712a95e099e66d4e4912221bfeac
SHA512
7b2ebaf2a586fb585452532709733a8d374fa42289455e9528ada74eba836709a4be3de236d3af16cf183e050bcea04b067ed345fb66459888d091faafe64802
+DIST firefox-128.14.0esr-et.xpi 556260 BLAKE2B
bae38d25b3000d637ea44c80bb07f879188b95416ad9951c105120e4a790178a6d0559d08bbb6892dd40347d89394443afb72288f7ba19b547788e576e2b24a1
SHA512
25d73811d6f8a533dd97b0bffcc0410eedd28ea5fa8acf769a1d3174eee8e82b0aa9dbf757fa67d4593e3e098990f8ca42269a2ff9b967e65a1a939e2a614fe5
+DIST firefox-128.14.0esr-eu.xpi 623950 BLAKE2B
b4958415df2a9a533cc497d85e0a6b2e0e3098264d0c143ae7a011958781a50fb86c4fd503f95d5b083a346d751d20d70d346b151d6c01576e0c835e3e5396ea
SHA512
f0cd2b93c8eb658ea9a2797716994e353ab1d5845cd37cb1496b4599e6adb30fb72b9642f17949975bc1e986c9ce4572379574ff170a0d7a180381ce320e77c7
+DIST firefox-128.14.0esr-fa.xpi 631012 BLAKE2B
bdf9a65bbe71eff9e9af95295a97a9fc0f7b4424128aea1952faa41822047280680f5b3cf06a0820e0971088a5226cb90bf41cc12843cfd5861d17eeeba1cd70
SHA512
e99ea8a3792941733323e01acff339caf8e2912e1ce5ced8163ac7882087782ca1d88e1a234f6dc7f1a2687e19a5fd3122ac0612483b1173adca56c76497e78a
+DIST firefox-128.14.0esr-ff.xpi 497849 BLAKE2B
82cc385de6aa372bd7b91e6b1086c7805566e7d219e3e3a1920bed8bfe0894915e7aa031bd0ef031836937ed1dfdaac78ad4841a65528f5bfecb81b1c1f9056c
SHA512
64ad8152d343b2d3e4ebb4a2fca624c410478580a9f1a68c068f76d15214166c972c1230ea10ee27d0f8db23251a45bf50bf60b63d9e5ade588a539709901321
+DIST firefox-128.14.0esr-fi.xpi 633882 BLAKE2B
97d2b2c66084b5bf961e2ed9db9dabae260b69d5e4d4ebb06255d883a43cbc6c8ff21d8bfad78447dd1e3f9f4bd4bbb0dd9a723f73f726a3273d39155e08b766
SHA512
b04620de5d9198089768a433a26ae3e216a153d8c1dfae689aa941b50118b1facdfbb90e1cfc9c2cc12694f884a334930ba1c24488884d62e488a81f16592c83
+DIST firefox-128.14.0esr-fr.xpi 669628 BLAKE2B
89d38637b3c2521fc94ef1bdcadf53d3fa289b1bac13d0afd0978757dc87621c106747dde3ee3e4d9104f429da5e5ed34b3d1cddbcc3fb23af97252e4f20155e
SHA512
5f0b63582fba04a68c8c15c8b995527e094346e067f9d70519a14ed9dbdddcfe62c46c06f71e11102c224aa04b2744daff865ee047c87f5d25771f74e1db54db
+DIST firefox-128.14.0esr-fur.xpi 651569 BLAKE2B
efcbd00e84ac1c59ef2addea861d27292d222bae4039384251b9a52dbf18263ac430e850098ae368376375bbcfb6511cc008c59ecfc91c1e876deaae21ba8217
SHA512
a59d69221f44f77b01ac28be3a23e573c3cc05d4635b773aeefbe20c29e0b69f1d074612c229e4ef0abe160b3707e0ebb24cae6284f7875d3b292c7bb768e1e4
+DIST firefox-128.14.0esr-fy-NL.xpi 652082 BLAKE2B
09b9dd2c39b475d20d72fdae5f3201845ca2b633a1761d3d3872e7aabcd8ded7015c9bb6aa518189d815c834dbe957ceed8a886f3891c5920e190005d2b674bc
SHA512
93d44838baa83525b5d6236de7ddbab777b64f766852778c296940c417be41c1668c496325669a6713e806810c36d0cafad0bea2bce14a675bc62d2b4b15cf34
+DIST firefox-128.14.0esr-ga-IE.xpi 490831 BLAKE2B
81cd1fef26425ed11994cae2aba6304c51b594b0707a18f4dde3f5218ecc64016249fc9ab8e383975e435474c15d50098bb379a59cf1b0260dda56fdf61b6c5d
SHA512
95d6e330fb196553f5890716da707afb92ba38d12b93e03e7fb79dcd8ce58f5a4215dc3aa7e1be717f0d9d26cc3f19c57ba3374310fc966ec94d5fd7c2d745fc
+DIST firefox-128.14.0esr-gd.xpi 609627 BLAKE2B
4429c0fda187e31ff2e185506d7eb57cd3f7b8d75ea0ae4ebb0eb57f0e8b170cd6638e2da771afefd9851a976828a8ca6415d52df2d866ad1dbc37001d1a883e
SHA512
858de8ee8ca1bf0281090d159646237f7f54955d288fa84990d0bc64a4b75f82474b45ca31d991373921b6e77441284c1d3aeabc1533303111aeba80ee369751
+DIST firefox-128.14.0esr-gl.xpi 615552 BLAKE2B
016106f3f25bfb494c0a5589c611336ad58feb99f560b2dad67a7d8f1efcbed49ef3d78f603f9e2006891a2928985743d45c74716a450f0c78c83615581b28fb
SHA512
b7bb15dbfbdaab8102a06c378874b1adf4e1f98a2016172a138bb99d97d3d7764dabd3c54cec374650791988a63a3f240ee0ce57d805c11181ab91c35180b2a1
+DIST firefox-128.14.0esr-gn.xpi 659912 BLAKE2B
e3aedfe89c3d2804eed8173b80d46389dc8ff728082a151fe420669f61f01662ca28557a500788e849e561aa81f7a883cbc3556f03ed56708c6aa04875434528
SHA512
c249b8756f850c07f85051bc887bfbb6cce3d8d306524a28ff9a47123657a663a04b09899d736233edc9b3c1b7a1d9620b136bdc7e7c9800f56f40e9343dea99
+DIST firefox-128.14.0esr-gu-IN.xpi 552338 BLAKE2B
8e5ab3db7d66e917c5a03d5e79344985c8093a5894074f980987220d67a2beaf82b494af10fe4f307c0da2644cdcf09d9b3cf75c6add496c5930853fe51a74e2
SHA512
ab93d9676d48ed031da2c020da8278750463c9b47277ccf23d7fa2605a2803105988585aa6f5a3f3e5245f2c559807a9a3e2d690b02a93db20d9c30e104f5ca4
+DIST firefox-128.14.0esr-he.xpi 659483 BLAKE2B
4ff796526c3ec5e99e6a1fb4cf0d00ed22fb866f2ea31738af0207e49439429c30ac43af092cddfe15ab05227cbbda779b1fb9f53f73a0798df00bff454ded03
SHA512
6535df0475bc83be5a25ff7bfa144d1679f64ed9ed93b41037f321e48de4fcc3a1a446a71aa5641a3ea6af5853b08137f83236d788cd2e268bbf5b627a760356
+DIST firefox-128.14.0esr-hi-IN.xpi 578986 BLAKE2B
cdf7c3edef78f1f2733d676b0925a46d0fba15587e6785d770684463df37ff1cf50848c172db5cab710ea5a262c1f9eb2fe54c2900c12ff41e9e29de0e148eea
SHA512
8ea4765fc562c5c6b8ec46da5914bd44eab026640b68299d061267a54d68b491e4f365c170b373b6a0bc7bcfb11900fec1db5a28b4fae21a93062ac6fc87ed36
+DIST firefox-128.14.0esr-hr.xpi 645457 BLAKE2B
dbd2b6dca13ca101c41025fdc2bab1d98cde989451c70b6fbeab9dfe2a3b648353efb9f2986812119afc1b839033cb617c4eac577917ed7862790330d79a8549
SHA512
f44c02e020972559e357c4b5a5a72ce6e8a88452d07f984572f5f9d514c3e9f08fc4f1321b2a42cb984058f74038f03bd88975b812b09894b0227ebaf81101ed
+DIST firefox-128.14.0esr-hsb.xpi 675866 BLAKE2B
2ab8f53ce283545ebeec002d85502dd69d30e353c1d914a8a933f1c271acb57e31d57ee3e8517e9cc96bcc0085b1907d68cfc2842e0cc83d02792148366e0327
SHA512
eec7eb24923e6e2f41f30e1de49dd14e2977f0f62078181d360ec1a82dda4c480bc7ec95ce64cb77ccbd7a82643a3369042431fb00d15bbb2198e9ac0e5a39d9
+DIST firefox-128.14.0esr-hu.xpi 679679 BLAKE2B
71a6c3feb908fd3c86869a27bfacea39b98f276c8a8ae6a5473174f890a64de8012075e45ce8e80435997688b2e60deffb9d83f7d25c3a26ae376f26f37fe79e
SHA512
77fed5000653ecdb3ef0f385530929622c1fb901501ab201412299558187c72ffa46a88c4370a2a45b367d38ba4d268e3c0d4132645f8d4f56d56f4d28001b90
+DIST firefox-128.14.0esr-hy-AM.xpi 664455 BLAKE2B
7162b9d454096c1d1341c2512f492c3fed8796c3da6051752fbc55d9fbe664a17aa168a3d428050dae577f55ad5820e7a45d29219c56035bbde31fbba8a52d60
SHA512
a91f4a745d3a99435b8c31a5636dc677a8947dc8cd36e6ac8326e6bea1c5d3da460306ffbfb103e934a152a0a8d6cb9f5f7011b45590f7dc7ce772259e1297d0
+DIST firefox-128.14.0esr-ia.xpi 637955 BLAKE2B
062f23a492b91916d69d070d2cdebf725ee7960b6adf50bd4a25f28f50b645c5da4c1e66bba91f775d6f83a0e5fd732edbb0fb1747616761f26caacfaac89b69
SHA512
806ed9c6bf1ee4a9b763da9a682d3676d17658c090a796129272812beb6cbcd1e5ee979970e1fef86612ac5a3491a9449e817890650acf13707932263b191c28
+DIST firefox-128.14.0esr-id.xpi 625997 BLAKE2B
600e939f3173ce052defd2bf285f9e0d06dc75e52620db9e206b2a8e06dfb77f7394b086999b63b0c04be6baea0c7f7a64b83899c2c93aa3f836b56cfc9155e8
SHA512
4671f0eefb2de7d163b9c5c1578be6764d0bae1162b3f96b910029bb73dce4e48ad82dd14399e545dd34f828552360d1d3863c155fad0b54dd4b165b9a822500
+DIST firefox-128.14.0esr-is.xpi 646733 BLAKE2B
26f2eadefa364767c95011dfb0a7c26d24e5fcb0f60277ca9c6ea1d1e6e2afc0ed1013ac28884730c2228c376eb329aab17b1421bf31c1a7fdd572507ba72dba
SHA512
cc9dcffc21bfa2a0393a2a07984754b9609337d2502057d464e929aa89367b0c765c266dac012999193201e05e14c8a39f77d8a41bd7fa7824ba11b74968e936
+DIST firefox-128.14.0esr-it.xpi 648861 BLAKE2B
a87cf55c916a652934441100fc8ce3c4bc85d26a6ee6bfa7cfba6023d083c903058c32cdb7f381c8ef3a445e6a86606a5d3fc983b0d09170a2da550c16ccc9b4
SHA512
b9f3fd8105d98c335b807982989313f07a71f879523d971234a6d4c5a063d099c1f597e5a7a744c168dec74ef8b7c943bbcbb27dbb645309cbaec4c86fd91f12
+DIST firefox-128.14.0esr-ja.xpi 704125 BLAKE2B
2c30827be7576ec63820b4cb2f6eafe14f71eb3e855005d704da0a9206919fc1f71505208fe8a014fefb27cdd9880ee7fbf1c53c0a6e1ea12d519b55fde2edb7
SHA512
a4f616d6212b7187f348a5d5993689cba2d5ffa5c59af6c84a82f14ea4531aa73c5dbf8596a53c1c6645687d753b2d5756fa1d7a7c281e233cce31211982d02d
+DIST firefox-128.14.0esr-ka.xpi 714514 BLAKE2B
cac962dc16ca27324c10344a8da7a27f7b4c239c5c0d7297b9d59ac76a2f27e6ebf21f99f86db971ca4781e87828f922e2a080655d930afe0d2ca844d4a0f71d
SHA512
514597adea7c0a9e5b3c870f30617b9c6ed3a5db7296ef65bea6a5c69d31db088acd4f09e116af3b362447a3ab5e8e02d133526d117d1d226229d98bd9713cb5
+DIST firefox-128.14.0esr-kab.xpi 626276 BLAKE2B
cc9c93e15b10631b6ae406ce333b2993b2ae95d29aff358668b344499faaf07a0c81a40f46a2ef5a752ca084caaee6532c6851a75ea18ff1ecf37e70836b1ccf
SHA512
52915391fc33baaf0acb72a7780c4eae96f546409d7ffd612915d763c36761fd397bc1523baf7562a203b8b579ca4cf1b5f8b189001471200129dbed792fe192
+DIST firefox-128.14.0esr-kk.xpi 734549 BLAKE2B
9cc6bfb66986cffcc5fa0c6448f902fceb3530058a5d633ff5f549e20fc1757165014bb4fb69c81b855a9f6f914d673c2caf78b55a68b2465abd3831e5bc8f1b
SHA512
76a5476df87a6a85910ab22d2f25c27ef1d190c5ccb490df9bf78feb7cb33cf9a3ea4054f96b3068629a0dd35a0cf7f6b124b076d37ddd1fb99d72fcaef34c3d
+DIST firefox-128.14.0esr-km.xpi 543174 BLAKE2B
854ee493a1e0bf16635ca31851015ecd8faacf1028914f4430fd5894ade0ea39e1a2c59e363776d632df1c2790112b1fb3cc0d9dafee21122883b25fec0f063d
SHA512
7c7058c03a290a371c06f5461e774944b0c0d8599d62923ebb70f672140ba31694d729a97fc8f1f95e7bfb3fe160b93918c7c43224765ecad6b0d3753862e344
+DIST firefox-128.14.0esr-kn.xpi 520332 BLAKE2B
d3938d93e8bea92cd1be2dbbba6d91e5fba5238d4b2c3c8ad3727063083f34da253cfe103e49b59ed6631300ec7a4dc0cdef483a11b0aa481703f616414b8e8c
SHA512
c841f1794e088c89a3869018c304ddb9dbc494eb77058584009408c210bb9a15fb9ebb22c0922a699ec9ebf3f9e0ddf97c5943d66e769695ce2a884e797ac38a
+DIST firefox-128.14.0esr-ko.xpi 690557 BLAKE2B
edcf351ef22c01632d71f8f5e5673c779b2cffb62a25c2af062ebb8974df46e03d303a5ab8f40d748f7bc34255fe4061272d3bd5330a4a7b5d14ff2b6d9a8b90
SHA512
c981723151086ae3563a274c60c91a727b2b6fcbb349b81349afdc9291ede145f23e90d991af35435089fd32e672038c0b997b4f3adf01f5388ddd616a65c17e
+DIST firefox-128.14.0esr-lij.xpi 506299 BLAKE2B
ea05bb1941b6ad141609d4bed36a96ba156fe711a3edc9e1e6911def483172107e54a77b1017c19e2bb342bdbd324b6e56afbac47875594846384622010340c7
SHA512
3e903879edb792e3dbe178a6d93ab05ea0ea7aac092192ecbe5344948e233bd4661976e8bf6a25d194259cd6e4f4fb2597bc49612c5754d59254294e7facd77b
+DIST firefox-128.14.0esr-lt.xpi 585999 BLAKE2B
6f24c1bd11269679f75dd441ca8491360b1f623b5b08743ca4185eb6d6b19b9348d165e10a13f6986733bb076ca9cb12a9ba1e16ec7e2c14f1eb045ea1f09f8c
SHA512
9aac27217b31b16dd3ff381bb8fbd9ad852257e656ce22b3afb4961f72148589998374f95dad914135f5d1fbbfc432eab17f38629d1f7c15e3611dab336e219a
+DIST firefox-128.14.0esr-lv.xpi 595101 BLAKE2B
6f63fa845919ac9edaf3a155b748708677cfd7a5c19878c012123eaa448141d78cbc6b4c5e90cc67a4077a83eba2a790205663f45825446ef02d5c76f56a798c
SHA512
6619eb8241c1cdf21eabae62b4751562a0e5d165807f06955e1f166c41900db1126bf7a35dbba5482d62d300589c563e432bcdb1fbe1c719e3f209c78ccc2f5c
+DIST firefox-128.14.0esr-mk.xpi 511083 BLAKE2B
2302b90ee98bd71d8a905012aa7fe936d1576dfca51e5920adb11af8baee821da2ed0ddaec99a694565cbb644545b3809bbf3c48d6b0d1cdf5211d5f90baa327
SHA512
49148ed9fc329f58b00d2bb98b908ece9d8f390a05c855dccaf1c555aaa76fd469fef9f4f0187a9042b603f5d448de0815f4c80b378a9491adc151b0e51ff547
+DIST firefox-128.14.0esr-mr.xpi 552813 BLAKE2B
8304c63b947e667604f50674c1e80797fc04748d5b6ea6f2c0e72c17bedfbccbda2b8c80de09ce04d12baf4fdd3e573a96d8ce1157013288c17cbf9d4ac4ff88
SHA512
3a3b34054e191039f66aa99ddd29a21ab5ca3dcf8c9138bf3e5548299623a73eac1a0a973983ae34b6dcfe8aff804c1e7463b3412d441e95d000ca8a2e5c264f
+DIST firefox-128.14.0esr-ms.xpi 477965 BLAKE2B
5853296f98663280cd2b5a6226cbd9d44742fb43f75e7af3fcb90e6f3696ac3deddff9984f8d2924d5ed6c5ce4fec948dff35d35cb2551d0d500fe2e100caeb6
SHA512
697c6f5dba41bb96ef2fe26f97b5d710508d79dbd3a08ec5c063d53f2e5dee8bec79a179c7abc6e2500daeafaeb102ff526d88f10bb5131ced612e771be7835a
+DIST firefox-128.14.0esr-my.xpi 540060 BLAKE2B
dad888b48b99fed310611883ba3a01e3c81b120ef8704c795ba22e44f3a0ab6b6a967a07e3239ed93bc931fc8133e1e0b8b3bf35e9636f97f32d16329957394d
SHA512
0eafac9d8eeb974bd619e692872c5d05fe910a7ab1272cd6f2fcc838ce9ce8cf06e57c63ecb998a28a75de97f04c3dc7794be134b4eb592e1098cc791714fe5a
+DIST firefox-128.14.0esr-nb-NO.xpi 627685 BLAKE2B
940314d3052a79493e902fdc5b886107d0286cdd1f10b49cdbd6ea8217d653bf5c8945f92d5f118160d27dadd575466d6099c067ead7355e9e665cef667e3a91
SHA512
20868b653f869cfa3434d34b9e9a108b612fbdeabbb9b62956074a6897bbdaa302e75148bf02df8e32b4f62dc46affb1873a31b0873377b1567340b41cdba299
+DIST firefox-128.14.0esr-ne-NP.xpi 543838 BLAKE2B
b19b160f77747fe750380b749d8e8f6cc3449ffddceb3cfbe29b9785a3e486c7914c043e3a6917f6159d2e7c3aa0c5a06087cb01b915892c36df835bcd60aa40
SHA512
0996d6df93d5e91882caf4423a149f6a51a9f37ecfefb9343ea851e13ba10491906a5eb16921b642159d1bb444b4390fcc6493711bfe0c5f60f6b71532cc9d21
+DIST firefox-128.14.0esr-nl.xpi 645186 BLAKE2B
644e4cd196207b6a309916505dbf01608d54f392f35d6e9d5f67ab20d7eb5ce83aa3d83561f13ad22e140aeff76aaa1d9b84b667957fe80766336c421bb5a8f0
SHA512
3e9e1281899f2ded276b725195b17670146982bb1179b49c027199d09d18202dd3aa373c54c305bd9cd144c975c1318f322db62ba92c65e880a2b3a94af2516e
+DIST firefox-128.14.0esr-nn-NO.xpi 630297 BLAKE2B
5ecd8508ec06338ef5d9d1d9ab5957ffae1aee8cb7636e01dedf56c53e39145d6d55326b2a82e4b1a2308434d8e3649b246b6c28fb12a273f10d1f848075f838
SHA512
74c5fdab5e77d62becffa53624718cb9900af9c98e3311c247eacb09ecbdd96d3ec8bf34b1489cf4e114d2f8fb553807f490e83051fa5e70b3c614d8c6edcbda
+DIST firefox-128.14.0esr-oc.xpi 626833 BLAKE2B
32c787996fd3ec35b9ca0fa9f70fbe52bccac3f130478d2f2461f5030d66e8d82f80dbed932381a49d22eaa25c6560cb2a04063134fc564f23387fd3801d90f6
SHA512
fad47ff1b29acf285a5ecdba0a39f1b408175a7e3377de12fe2aae9cc1baa49abd7787e87124bcb920ad8a827b5079512ac142095bfd814fa0011d492f857a56
+DIST firefox-128.14.0esr-pa-IN.xpi 726725 BLAKE2B
7c1127719142dd05b46ce6de03fcbb3ce262ba2b62c712f428e1e3f3f282d8a16d0c45d60792d8de711be60981f88ed8c74339adf037c301fc940af86e26a7ad
SHA512
f9217a68c9a75b574415161ff0b35dca091f5081c219b792b300d36bc371506cc720cf38f06db15c9999da4ebe970aeaa5fb1ab2f0095ef5be4a5a2315a56db3
+DIST firefox-128.14.0esr-pl.xpi 669249 BLAKE2B
82e8ffe7b9903a0de3ebe72af8a8cb276ad1ec7d002975e5b68d7745008923563c524006d50c7a2584df366f2948e1f89fa240186cf6a143eaa58dee847ecb92
SHA512
c5231aec3caf86a40c9e42a1a3bbefc67423d96fafc3c91c11a70f6a5e75cc01c99333647d21e39d4762fe3d93e7413da67027e62550cfeb5f2c949a2f9a46bb
+DIST firefox-128.14.0esr-pt-BR.xpi 650222 BLAKE2B
520f0b6512f02780eea7d121a88b674ca535db7ddd692724fc3d5e39689ca61193e94e68529ba8b8a0a109193bf9fb19d3863395a9ca49fad7e4b8f2cbc6376a
SHA512
897b9eaedf6b798b81c2f50354d2fa8c408b0457c1c302e64c6ea9d252862d1f59c1e2791ea605ddea56b19e39d5af552cdf00031c81194f19450364704b9c4b
+DIST firefox-128.14.0esr-pt-PT.xpi 654883 BLAKE2B
d557a73a86467d2bcdb98c56dea8038d9002f914816282dc6407fb7b9a3792416a80c9a29274c1d3af38e4b6eb0755ce030b3cc09eab06e66fa4d6d0fbd9c73e
SHA512
8b2df76bd1917070c49371101dbf4b6839ca1c735fad83e6d3d43f0a59e32819bd642217020c8b5ff550b203fbe04b73ed0d88487f8359c4eca4eca721d64d3b
+DIST firefox-128.14.0esr-rm.xpi 646693 BLAKE2B
58f535d761ecadbe647d975680750173678e5f57c1f8547250629be4d1aed3dec3b081a00cc0789730303afb19c63b8d3b7dd65824b4146f25fec1e094497502
SHA512
8359a8df781cb9aa6212efd168f216e2fd8c37c739e5332fbf27055550ce47a1a51d1638d3a67a34bc21aebce8de93e3361bc409a685effe8bb938e3b78dc0a3
+DIST firefox-128.14.0esr-ro.xpi 562850 BLAKE2B
cff43f880a344bb64cc28247198ea78048848c582ac41b2379edfb35b0c7c5f62c9d05c23fbe6a17378309d46733010e27d0b95e8b2c6a893390918fa19a071d
SHA512
b1c8d26d426b039a8d948b0138eaf6149f80da570a2e7e2cc48b57ff390c0bcec3fbfecc9a197e2fcf0dfc54ce5a3f62d273c0cfe4e734e5e0792ccba85ba9b1
+DIST firefox-128.14.0esr-ru.xpi 753065 BLAKE2B
12dd7711ec52fafa30aec794f255c2e859f54fe582a80113d9e63d09df31fe0ffe87d56c737c4f5aaf5aced72421d6de712f4a4f7ced67ee5edf956f63ba952c
SHA512
bd47ddf3aacda48875024ab9e0ce15182cde6b7fe0f70ca9a2ec7ca845d54f004bb2903220a4760edabb57106012a0bfa39a8e0d678bf054bf58b195425b65a5
+DIST firefox-128.14.0esr-sc.xpi 604292 BLAKE2B
6c566be22efeaf2caf9109a8247ee6768b6f4f1d0018fd22562440ae64c9bfc60beddbd056d914980ab40f2da183512e47bf961754df2ac29256d1881701ff46
SHA512
8117f98a686450938a1994c191fab6e6b3e71cb96cc7ee460a5e44b18cbcc9ba340e096e1f561b8b6b40beaa85c1c397155aea83d3a97b6ad28a8c64aaaf6854
+DIST firefox-128.14.0esr-sco.xpi 524663 BLAKE2B
997bbec85eb8a3de9610343f84ca7bdf27ef84eb4ab8c1d5f3ad1a6384d9f266fa28283c93e4db710a885e77d318b3bea2c7b2f2a576f584941311d850e4479e
SHA512
4f962174621d7f3e2048b1cb34decaad0103558d7be0168892e96e0d70c51070a06fb985d6bb7158058f4dcac601c5a4e2a4c2eb21fb88314a3d0571f7b9dbc1
+DIST firefox-128.14.0esr-si.xpi 628193 BLAKE2B
c86eb53b5d91707abdc98030a1ed8f2d1d31330167d859e1a51b42662d60444d6b72fb5d309393ff1adb147aa175822fce5e785893a9b8d57560d467abc552c9
SHA512
348dd2df46aed72dce935ca046919835192c86600b24aa60677d2d9724a7668a05676990308be94c6d04174c19276a5045dc308ef43fa9ec06e11cc8367a2866
+DIST firefox-128.14.0esr-sk.xpi 682226 BLAKE2B
17ab3084de0c8be5ec3caacadacac84604cc68b2625e2cbf1af813c60a1fc966b8d05f9d546185442b14e3a07a5b76d8ee7c1a44da859dd4d276f1b7bdc7d402
SHA512
17472b56d867aad708f8da830677290c8ba8483e9140ab574e104296d10426e119c1378b9d8e9ff1b8843ee11d728352e44299ab597bc6d98be7dd3aa6defe57
+DIST firefox-128.14.0esr-skr.xpi 726685 BLAKE2B
9ed7e1f589f53929903118581a3dd6fa05747c525136956f46ff46a90e2031e92bb22bae9641d196ea3d7ea8cb81b1d14d84568fa85ae31f4f6ab6848fc159e0
SHA512
723890c530631347a8fb4af341d31f213b8410189c5254d44e634559b28ff61d6561c784430227943197945b411050430ccf302b07533afba86a2a34009b2560
+DIST firefox-128.14.0esr-sl.xpi 649033 BLAKE2B
4a07fce7fb1be7e8f0cd169f26b566e706b0d65675f6568b665429f5a555146d5e9e6dfe2a659a7ea603ac1d217b27788f32448a2a757985a2d049f36484520a
SHA512
e9cc3679b47d036d43562d6b068ad2ba9422c9138e9ceec4801d7e9eeb244929084ab8fd2f6243fcdc5d54509bdbe56b711849f3d5bfaabaefbc3467e7af999f
+DIST firefox-128.14.0esr-son.xpi 451699 BLAKE2B
3f0c222825025024bf452403c2eb7892dc4f18e3ad534c0860f46d0a96ebf9a9eb5667c4e9b77ef32da2199859d146be811b56625fbc749e5536f5a9b1d00ce9
SHA512
0be3d61ab2cdaf91c67e7eed8212bf760947e9bab6142bc530eef125952c39968abed9c690724820c63c7af48c0b85d2083b4135aa0ebfd3a23d7d984c6ccf48
+DIST firefox-128.14.0esr-sq.xpi 665749 BLAKE2B
a8f6d9bf039eb3d54e4adbe045f9d6c98e6c5e3c23a749187e2ae5146a8ed20fbb8cd2fd9fa669a7baec756db95b6099b53d37b228338c9ecc9a3f62882182a6
SHA512
67585095be57f30b4ed6a3f0dd718b47321fba296bf495e940bfa33838afd99e4020eafa7105967abbaee60cc9aa7ff649dc214745c90c94a99f5d2dd85fd034
+DIST firefox-128.14.0esr-sr.xpi 678444 BLAKE2B
90dde6a0a42595b9c5ecafbdfe0bbcb3fd1892bf41188785adfd2a4d1e09d55db10398300ef7e81109007b4233b7187a272d0ead50bf074654e1f531b4d3f650
SHA512
75974d4d79f17ca65b40f14ac2d162ba749285866d6089d01fcb918edfebe45a8d8509075bf87b69efb1cf90047bb611a8939ca341a777a269842ac771bb54df
+DIST firefox-128.14.0esr-sv-SE.xpi 646491 BLAKE2B
579148df07a5ac9764f7f62002c65f65712fab6e8d0d924bdb071ed0e59950bc892ccc454b18e35e775873fef85b7211385b7d43577d97392633496ff225a367
SHA512
91b1f627109e5c971f3bcc6dd7acaf647db1203bc6ade1339b7a96837f5956e185fc7aeef17f1ac6d3c69f3fd38aadd1448faac59e8a2ee3e8e70c007c054541
+DIST firefox-128.14.0esr-szl.xpi 541726 BLAKE2B
71a5afad054794a537146a03a46ce601b0a2260f19bf8d2c12895d82eee75390faf0f0cc71da130e2585b74e1169b6462019936f37e03167e39e35a401916572
SHA512
803d4144b030b1a19bb09ed7bcec011d322fdd85a2d65a04fa62d1979fdabd75710a8cd1a883a106a9cd831896fed2180aeab9e2906b77808dda2df450ffeb52
+DIST firefox-128.14.0esr-ta.xpi 530547 BLAKE2B
b77f3af4c841f188370a0bc20645768ac49c01338b692db3eb0ca5b3d99a03e8e8999612ffb3e2a4b0e0fed8356da847fe789843e92994460c5cfc9b3ca199f2
SHA512
910b01f62e51c55cffb9e263d85b4ff38fd70f0bf4ffe27b05319420c338bf5b231e0ed5da4f02bf8e1104041c0e731634a54ebb2146bb7fbcf358b32a1d7c16
+DIST firefox-128.14.0esr-te.xpi 583153 BLAKE2B
ba8501210b27321bc538cdc0a4ddff1404c7df092e1a1154ff6106829d852a148b4369c089553823d2a365ff9381573455c13498a510e8898a389cbb45f4380b
SHA512
e931319bc3d33429ac1602fa5e6be502cbf414861b09a35b95233824e6a098f9e9b59317a0a0b5e1500bc3e5f6822dff40cb9c24afff3a5ff544e64694012265
+DIST firefox-128.14.0esr-th.xpi 728443 BLAKE2B
c1159cc737becd7539720a8ab47cbe26ffe2ebf1d1a5eb0c41c39e0d2a873365977ffa463daee5174d3c877400ff82918183163fbb81b7713a01931026837bd5
SHA512
e16b9ba861448f8e7c23802f5ff85c2f35c8f480d69524c176a67132667f5267feea08329cd626f680e442f38472c01e1184ace126f940a97284af7cff7d60d9
+DIST firefox-128.14.0esr-tl.xpi 546941 BLAKE2B
84f0c941263eed78632e513329c8e4750730c3b476ca26eb16d317c40c66e08e5a53514b630ec6ccc4c9bdfd081598850998ebc059ef1082b16ba4fd6e72a34a
SHA512
4d9bb2ffc520bd78b235053b04e5456b62b926ea5e231909102ed63c22ddd0b60f78a199219cbc9c40bbabbaa1aad8f254c6b8f2595ab7cd18a57bac7e7c8384
+DIST firefox-128.14.0esr-tr.xpi 659458 BLAKE2B
84b658bf1f02a57158431e74da452f31961d99536ba0dee9e2206c4f1a433aee83f3954d360e3a5ab4ecf3045529df2b67521e1577ca107f8560f524daacedde
SHA512
c298f688cbc139dfbbc566336d1213cfd61007e11fe976b55a4165dd96f4c15c4ddec10d9369b6a38adc1fa6efe9cb73f50f5a075cb8123a20ef357aa8765151
+DIST firefox-128.14.0esr-trs.xpi 522156 BLAKE2B
0b8240cc64bf15e8489140fce0eea51e81176965c2331baf316f84ddcf6f579e63a37e0fcaf3301e6defa1e6d79674d30d578ef121e72296ca5cd4575f297dbf
SHA512
b5061fbbbb5c97c5e0dabd11b62299b3a4b22fc7847d95c354490baa01987d71219bd121f6cb25eeb54fefc1b37daa143190f3a9e8d7b21739b07f291eaf31de
+DIST firefox-128.14.0esr-uk.xpi 744002 BLAKE2B
b4be732550fed792e25bdecba5a892de2dd8d400a19d5253e4cdf85922d5bde3fa8a4b566585586abe3b846c9445a3d3a72c80a03efd7ba3082360a0cbc62c0b
SHA512
ba7aa73123dacc7387454aa08f77df1e23041335beaa7e4ea22a0dfecf4516205452dce3a67f4395cdc0e327892a9b8d65a97b7abd5c8d727f4cb13eb873abec
+DIST firefox-128.14.0esr-ur.xpi 574507 BLAKE2B
641bb41103543fe80ced4347b7774c1fd0a7fc7b9afc9c6d88a10ca8716ab4257cc13bc99a34fdbcf78f58b699e074d6060e7b90ecc0cc975c91ef02a32f6e1f
SHA512
aa0a20b76bb0b6e78b5f74a182b65f36f7f21c425fa5e42e88262f4dd37ecb78fe95371403f80ea45276884855eed4b1462b9f2667e922227078ea52bb457c91
+DIST firefox-128.14.0esr-uz.xpi 495302 BLAKE2B
929a21a9423fcb5bf6ed9b68f8d6848ecb68b69843c5026b3bd5540cde43522da8c640577b68ba2b7582033f2ec930a9f0b736f93f6ae0243541bd13c3239f62
SHA512
6b589d6b77e2eb82f46e794b5483fe82b5d47bf457d55260b68e74f469923ba86c4ee4424479c902a6ac2a19bb8de655057355c8a4a1c3857c393fe4ceeb553b
+DIST firefox-128.14.0esr-vi.xpi 683673 BLAKE2B
4f244f6ec930dcb6a8b4220e477005b177a98e65f0ecf9d895656087a534ddc23cf2d811623643393c88bf59ad67d435183ee33894f5a0ff028ec51a91c594ff
SHA512
de6675f106bd66fc25162ecfd63503bf2f2992be0fa1c2ebf0a59c54bf79c989c6ff632062f393f79fe05c5d8490216c3f31556c782660b030d9566ca28223c8
+DIST firefox-128.14.0esr-xh.xpi 452423 BLAKE2B
aeaf0872edcfdf9f8d2ca95089d8269754dd444afc99fb7abf5fe0e5e4b53ee11ab73a6fc69520d7e4a018ae09b4b2e8c12bf0ef74adf76bbe6bed04a5f73113
SHA512
73ff1fbc108334698806172f9825515edd25595a246e3234651d660a38d29b0174c7a5e80c05e7be48bcb7e4d4791482ba742742c8850a2fcc4fcb1d002b3bb0
+DIST firefox-128.14.0esr-zh-CN.xpi 686341 BLAKE2B
1cbf1d1ec15cb1b53f54e96fa20e9657b9c67fd4392090f60e19077fb2e4e1e731964693ca44eba2b59291cc607f29b6d8987d7000f06bc8c68f74c9805c0384
SHA512
989e4bb12efa131bc70b38398a6d2ff6a92b7d7363652c68be77583c02b204dd0495c4d5ed5fad65fb636039fd21cfcf0466c14f60cfc2f7a6f8f714917c0ed7
+DIST firefox-128.14.0esr-zh-TW.xpi 689145 BLAKE2B
716f24a5f02a226da2d9dada5c21ad3bb1f5ea755f1ed4058c5c690990e178ce1271c07cf1122695c5a9e2fa54311effd614bc6ba40899037e7fa455d8ee8d4e
SHA512
f0127a050fbd4e559c8ac7aa3eb4d581206084880f725e1a91767ae4aad05ff50eb5ff686bff2eeef3de7a2ab4226be1e9ee728a67768d6c841ddb7fa4f91993
+DIST firefox-128.14.0esr.source.tar.xz 562714012 BLAKE2B
16420f803f5fe9cd1879d7f3fa24a42baa78a2e048212696cb0986dca3e3c07c52ab411e98ee2c71047f52fc5f644ef1a2a223e2ee4c69aed41fde66b9a63749
SHA512
a3cf267e82b6f5ab8b6497a62b12f85afb78fcaef6b12c43ef79564ce8270d3327a873368ce48fc018e46fef5e07339c07b9a494a5ff6c22a84099f939f6a9de
DIST firefox-128esr-patches-12.tar.xz 19024 BLAKE2B
e6e1cd56548cb429590cac156de6e5ea003e9db30e3486ef3c822dea063f22bed08685a52036c0ee749b50a803c84fd998470d049145bdd70936068e9fb9568f
SHA512
0af68f23777038cbd02c9991a5c5d59cc407295b21065c144428869f3a2ce21e8fe4ed80983950b75809a7c6d530cbf629510c5a18f5ec0439e1a0daf852999a
DIST firefox-139-loong-patches-02.tar.xz 3096 BLAKE2B
2e9c0f3dac780c808a13f70fe3808df9976898360b55113def97bf3594893166e0647c70ebc389b2d14fa2c2453fc1dd68aba20d92178670ef97d70c34205e1c
SHA512
e1244007290e2e15d14cf519e3ade6a4da06abe41c416de60569a11396609661cb62fb5b592e763cc079406699dc33d6a34851f71068f4d09bdf34021b035a59
DIST firefox-139-patches-03.tar.xz 11536 BLAKE2B
a7610d1348a2a4d02305c8d694a1648997040c69cb1445b901fe456045d0b1a73f28b0102ed03d34f70d8cc1ea9ab0245599a104b0063c7fb0dcb5a8fdd6f60b
SHA512
4733d34a842d525824fbcf6ef5d8f33e26b4f37a16aa87043427eaaf1e0665aa257cb8487bd692e4fd095c2a78553ab3f0213208124c3455e534394576fb5614
diff --git a/www-client/firefox/firefox-128.14.0.ebuild
b/www-client/firefox/firefox-128.14.0.ebuild
new file mode 100644
index 000000000000..796d59c1056b
--- /dev/null
+++ b/www-client/firefox/firefox-128.14.0.ebuild
@@ -0,0 +1,1380 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-128esr-patches-12.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+PYTHON_COMPAT=( python3_{11..12} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+# This will also filter rust versions that don't match LLVM_COMPAT in the
non-clang path; this is fine.
+RUST_NEEDS_LLVM=1
+# If not building with clang we need at least rust 1.76
+RUST_MIN_VER=1.77.1
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+# Information about the bundled wasi toolchain from
+# https://github.com/WebAssembly/wasi-sdk/
+WASI_SDK_VER=25.0
+WASI_SDK_LLVM_VER=19
+
+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.firefox.com https://www.firefox.com/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.firefox.com"
+ 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 rust
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[@]}
+ wasm-sandbox? (
+ amd64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz
)
+ arm64? (
https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz
)
+ )"
+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 libproxy pgo pulseaudio
selinux sndio"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent
+system-libvpx"
+IUSE+=" system-png +system-webp wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry
wasm-sandbox"
+
+# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being
llvm-19 based, and
+# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19
is already stable in
+# Gentoo so it should be widely adopted already - however, it might be
possible to workaround
+# the constraint simply by modifying CFLAGS when using clang-17/18. Will need
to investigate (bmo#1905251)
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( jumbo-build )
+ wasm-sandbox? ( llvm_slot_19 )
+ wayland? ( dbus )
+ wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/lld:${LLVM_SLOT}
+ pgo? (
llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] )
+ )
+ wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} )
+ ')
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.26.0
+ net-libs/nodejs
+ virtual/pkgconfig
+ 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-libs/harfbuzz-2.8.1:0=
+ !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 )
+ )
+ 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 "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/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 "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot
use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+
+ if use pgo ; then
+ if ! has_version -b
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo
"=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2
+ einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ 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 || tc-is-lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+
+ # Get LTO from environment; export after this phase for use in
src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and
FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ if [[ ${use_lto} = yes ]]; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to
fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || [[ ${use_lto} == "yes" ]] || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ 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
+
+ export use_lto
+
+ 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} == "yes" ]]; 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 loong; then
+ # Only the LP64D ABI of LoongArch64 is actively
supported among
+ # the wider Linux ecosystem, so the assumption is safe.
+ export RUST_TARGET="loongarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ elif use riscv ; then
+ # We can pretty safely rule out any 32-bit riscvs, but
64-bit riscvs also have tons of
+ # different ABIs available.
riscv64gc-unknown-linux-musl seems to be the best working
+ # guess right now though.
+ elog "riscv detected, forcing a riscv64 target for now."
+ export RUST_TARGET="riscv64gc-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post a new bug with
your rustc -vV along with emerge --info"
+ fi
+ fi
+
+ # Pre-built wasm-sandbox path manipulation.
+ if use wasm-sandbox ; then
+ if use amd64 ; then
+ export wasi_arch="x86_64"
+ elif use arm64 ; then
+ export wasi_arch="arm64"
+ else
+ die "wasm-sandbox enabled on unknown/unsupported arch!"
+ fi
+
+ sed -i \
+ -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \
+ -e "s:%%WASI_ARCH%%:${wasi_arch}:" \
+ -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \
+ -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \
+ toolkit/moz.configure || die "Failed to update
wasi-related paths."
+ 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-pixman \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-ffi \
+ --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 '' --enable-update-channel=${update_channel}
+
+ if use amd64 || use arm64 || use ppc64 || use riscv ; 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 loong || 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-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
+
+ # wasm-sandbox
+ # Since graphite2 is one of the sandboxed libraries, system-graphite2
obviously can't work with +wasm-sandbox.
+ if use wasm-sandbox ; then
+ mozconfig_add_options_ac '+wasm-sandbox'
--with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/"
+ else
+ mozconfig_add_options_ac 'no wasm-sandbox'
--without-wasm-sandboxed-libraries
+ mozconfig_use_with system-harfbuzz system-graphite2
+ fi
+
+ if [[ ${use_lto} == "yes" ]] ; 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
+
+ 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
+
+ # PGO was moved outside lto block to allow building pgo without lto.
+ 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
+
+ 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 loong || use ppc64 || use riscv ; then
+ # '--disable-elf-hack' is not recognized on loong/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"
+
+ # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; 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 llvm-core/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"
+
+ # Prefer the upstream svg file they use when packaging flatpak so it's
always up-to-date.
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${S}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg
firefox-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
+ if [[ -n ${MOZ_ESR} ]] ; then
+ 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."
+ fi
+
+ # 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:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" || die
+
+ readme.gentoo_create_doc
+}
+
+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
+
+ # 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
+}