commit: 12f00f86649803e49d3111363289239e44c02cf7
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 24 12:05:57 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Jun 24 12:06:36 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12f00f86
www-client/firefox: add 128.12.0
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
www-client/firefox/Manifest | 101 ++
www-client/firefox/firefox-128.12.0.ebuild | 1380 ++++++++++++++++++++++++++++
2 files changed, 1481 insertions(+)
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index 89be666501c0..3f316f63a33a 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -99,6 +99,107 @@ DIST firefox-128.11.0esr-xh.xpi 452429 BLAKE2B
483463ca6f9138c350d6ecc1a3884f1ad
DIST firefox-128.11.0esr-zh-CN.xpi 686330 BLAKE2B
33e93f2bc66b2f9098d32284f74e91bc5c668c4ea333d7c2bee8e36077ac0af6248c54212ae2f0e5bb3134d5ae15d6c1009c8fec03401636bc156b5aa43ff1d0
SHA512
70848eac6b137938528544d8cb866f53ddd22e80495bb9d00908342fdb1f84efc383e2346891f532b04c33d89230ccbd40128e78a8cb9e7c4100bd28c7a3fa1b
DIST firefox-128.11.0esr-zh-TW.xpi 689140 BLAKE2B
92c6c66db406c6805b88902b4f22a8d4346c403818e74e72143f393992eecbb129fde3bc44825380bedf2b48d1e9c66c5fd28910f55579be0e03999caee65a28
SHA512
78b1be4c75947426ce20d82f3dd22cbd6b34bb1c6436dcd58ac2e8ce39a54dff8fe42ddc13c215e4c77dc6fb04a97e8a1191e423d5c53e4b710d97d54a461b50
DIST firefox-128.11.0esr.source.tar.xz 558920388 BLAKE2B
698828743acb046589b5eadaf7699d39b170c8e9491585e9704599e3a7a2519a3e5c516a10b8af9ffe425319b6c386cfbcd6694c8feb309c702eb7e44a9a2c8e
SHA512
80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279
+DIST firefox-128.12.0esr-ach.xpi 482233 BLAKE2B
7d365f676629560c0ffc1b335fd83e93431327ba610c106529d5645b9600a2d6a6a27ca1c656ba4bb582aa097708e42cb4246a679a5967e84ccade312a07257b
SHA512
fe533e259dda3c1a79b1b637b17e0dde8d662bad0a9bb18e89cc0a912717e003ed399a8edbb149999d3afd03081cae4576deb3a87570230a00a1e47e1567baa3
+DIST firefox-128.12.0esr-af.xpi 446588 BLAKE2B
2403f87a3dd87cab40bebf7e7493ce31a65cc17b4aec48d3d6a7160201eb3a91595b772267b7fabb8c9c797510d5b687104ef7e60924a996e74ecbfd16fc7e63
SHA512
f7fdc86b8df628a90cb9b260a555aa0e112047064ff9f5770822d5516b866eca5ceab5aacbaffde526c2b194964511bfddbbfd53b2f670b7ecbca568f66bef79
+DIST firefox-128.12.0esr-an.xpi 526056 BLAKE2B
0ef11312ed28f04047dadaa84fc375a2bd2a44e9857cb058d9cb2fb3ffa2db8e6c531932cb0b3275657ec7e69ea365e8c9ca05be1131c685e5d66f6d37bed001
SHA512
56afdb828452bacd5817a3dfb5d36af727c249ddce069834beb09e3852ecf7247fe5649670553d45b9f26b9f601e34d2d2d636caf20ad996d101695c751215a4
+DIST firefox-128.12.0esr-ar.xpi 650466 BLAKE2B
2671c8df121ee76fb834d5dc8d90ac435246ced3ebce36630387f0a788fe9a945687718427bec831c84bfd1970cf01dc4130cc064b24220af621cf6d0c0a0147
SHA512
3f1e3c58c103ffd9a9f149d63b57980b905884fd75df097c36ced098bdf62394098ba1a983bef0bac4b11cc21eeb86fb6fd8c968c8b39b3bc84b2865047ced4b
+DIST firefox-128.12.0esr-ast.xpi 508557 BLAKE2B
62bcf0cc4c3b2e9196ae99a521de775d5e20285242ad2dbcfabb0646eaf5cb419e58eab98b3d91d7b9250b7a2e01e876ecdb0d050fa4ba339a296f80e2d571e7
SHA512
919f3d2a0c0c8c9f52aa5a77762f35f833b1b120b67a20089e9296ab54f97e404d7974ad4822d578161d75bbec2c1ee354a2f4aa098be4f87d6256a3f0fb57ff
+DIST firefox-128.12.0esr-az.xpi 509841 BLAKE2B
a58bd46f570aebcac1c972fe350d63e6d7455a04f945b827403e0f3e38e02323d898e1be857b262334fff3a9ccb4d4aa66a888cc901108c9e87a5845dbae5f7b
SHA512
0acd16489d970028e71e60bffda584defccf5b7e38ece833d6ef7a9b68392daf0f89bf498f2429f1ceccf6fabd75d3bee5ae9de6edf8a22981755e6192b588cc
+DIST firefox-128.12.0esr-be.xpi 748084 BLAKE2B
a90cff0c01c6e2dd6638454d5bab94261732749a4dcd47c6c6102cfc59af40e630285cfdf66ee7e0a3b28f0240a74045cfc45336f4a9e533b0881c5aa59c0394
SHA512
b6c30ead72c5cd1a21753b08dc1ab8b71439737a0154f5551ef3249071248a0ce689a8c41692ecf434e24a65302163bbf3815f29ccedc20ea040a1bbcfc71daa
+DIST firefox-128.12.0esr-bg.xpi 672057 BLAKE2B
fc29734e56318a24c839db51de555909ba47628dc6a1b4faf6af4dec66bbda6173ba59ee2108f3a2c3038f469d2ef5a1b13abdce54dd2a115ba78cb217748be3
SHA512
381d4de6291bbd2d5934cf8ab66b9ec361bfc614e6e3f00407f49389fa89029e8733e5ca3370197da8fca76f796d8be518a8590b95e0b2ebd20c2ed1964fc26e
+DIST firefox-128.12.0esr-bn.xpi 624737 BLAKE2B
4c56717987441f8e2b723c21d5bf3942fffb233d388faef428b2709cb80f94b8eab7071d830fb794eac4eafb87b986c2f8049fe06aa91186963c192fe1c16cf2
SHA512
2592ac331dfd2a84b99b5c004d47ce7624aab65269252571cfcca5504adea348e6bd1d1776277f05aa9203a2e82576ad8387122aca1a6fd6a1efb6b34ffb6b78
+DIST firefox-128.12.0esr-br.xpi 598746 BLAKE2B
9aa38a915e05004e2ad206b3626b8894ebb22657c7ed4494ee6ebe24b6fd21a56e18379689b6c6c9f86a2595fa9b1b7c2e88efd63789f6d993e9a325de8fa989
SHA512
c3c6161f33aba7769ddf266a8d02d20b823a4927a93b5d93e5cdb7f24970c8c172bad2beae954a45daee222edd83fcf7e5c08f50aa514f85b7deccd13232d630
+DIST firefox-128.12.0esr-bs.xpi 565998 BLAKE2B
372ca2f3bcfc1ae4ea7ea3386f1452f6658991bf42080ef3bd0bc0be9123aee023260fc20194a28903be7b31d86256832f6a24ebbbf2359f49172b35507365b0
SHA512
986fe4a388d8f25d714317487efcee7938a6677dd335b985014ffcf9b866be319e7e3c138cf717b8eac9e052e76a2371c7cd2ed5e3caf4e48fb24073a8f776ca
+DIST firefox-128.12.0esr-ca-valencia.xpi 561145 BLAKE2B
2a6ebe4390f2dd86c87c967fb8c85126d88acfe0c65a25905540b0a89333120a4a9ed430911b0d53a9bbec104640ef26a72ab56c8baf1e92c6b0e91ffdf77283
SHA512
a736c9cd89d0fc136697287dd02453987a3dc3e1df42ead6e912ab6ab24bc742b51f6854b46bcb114b84d348d13cfa96a7982e36eeefef84c187d743a9d8dd1a
+DIST firefox-128.12.0esr-ca.xpi 609963 BLAKE2B
9efd3fc4fb62d651b7f3bcb510d4746fa10544bd7309fbe196d4ebe8d4e203dc199c599a8a7bdef87b2e15a7268ce6aafc1a276efc11dbbead3c581bf71d27c7
SHA512
bc9aff5787b34492d4d01a9352cdec1b20ec681534a441249fb1335f78c83877bfe07678b6a75ec11f00d50eef3394f9e7ad55e904cc4ce158fc04a0ea1a2fbf
+DIST firefox-128.12.0esr-cak.xpi 601484 BLAKE2B
2c24e775e953dbcd86e820882348d35b9807e3f0256c7822e263682728c1dd237198cdb0fe0c181e283147d50ea0d6ef25603bd205e0c103371bb72ca1cf6a45
SHA512
26da9882514e33dfa32d65cac884d18f125100e54d150f3cc6c079961109236e51aa7832a87e4df1e803eec47eaf4f4de7d424047daa276f1371254659ae331e
+DIST firefox-128.12.0esr-cs.xpi 690636 BLAKE2B
2c685a75e95793bf23e2c97c7c4f50764318b4a560b9b0f1870c71f853b4c8ca6328e1aa2ee8623bba3b22089f38dac1ad18e029a3cc376fe4e59c54faab97c2
SHA512
694580a98d50b72388ef7aa748cff84f6b437d4d6d1bd67269cb8ed609d74521d3e1fe6818c4b116e0dfc1ebf37a096f268d061ebd10704bb0a99730039a762e
+DIST firefox-128.12.0esr-cy.xpi 650601 BLAKE2B
0e601fe2b4562eb6ef2a417e76e8f77d659d53a9e9f23ab0ed934ad6033823a4abab9cd8cb3a626cbbcc62ddce43fab5688d4324de051a0c05385999f5ce379e
SHA512
e3bbf8dece6724e3489924cfc958ac6a97b7e92f668f86b587c0fafd1f7056b08bfd9982f0e3588b3015b9f05ea3d126a401377c9174b0fcd22b41dde3fa9574
+DIST firefox-128.12.0esr-da.xpi 638622 BLAKE2B
c0001012d0642ce4f5bcec2623521cf2866802083d8df561c4b90c77f02f53d99c924adf455428e72736afd98be76d4e5a815204771c21f534f49aabde3b4c2a
SHA512
de0aab3ff813e4c5949657e67e3fb86b3908a4953923f91bcc75c855e12245175b22cc0d2302e75d04416a5f30d2514c9e2d954ea49a38b3b901c15484dcf4ae
+DIST firefox-128.12.0esr-de.xpi 663127 BLAKE2B
83ade44c9d7f0ee751cec729df44f8f3656462c05a7ddecb043a2b9e5da2d0ec55ef64e87ef238bc377d513ee4a0c1eaea68e81bd30679e3bebe46dbc3397651
SHA512
1b4c8ac74c84766aa2a205a89fed2170a3d2f501f9015144ff856782304d395cced06727936dc2409fcb41cc164ba181c0d9bc6693bd27ef39d93a68608e5703
+DIST firefox-128.12.0esr-dsb.xpi 679873 BLAKE2B
0e12d0aef118ca926aa2363af6a8d60e09a067d70736efbb6cd10639b190f8dac36a7b98f7e1ddf6103761c057dcc7e20d7a43aa22c9eedfb1c5916d8c46e763
SHA512
0f138a955961b369b29ea7d9c9484fa7d301960f499d8bf25669e5b5fbe89108973492c5fd7bd43bb90c0f50d9ce4fe523d54ebe955c597b2b2c8131fddabeec
+DIST firefox-128.12.0esr-el.xpi 764548 BLAKE2B
7556c5f1516ef40086cd3427d8cb60b40dfb7f7d172631f8ee7a7086bbec4a0da222906990b90cbb6b67634dd30c8f2dd4b71772591d67a3d9aa15c01c11280e
SHA512
82b777620a8a925d92ec1905cfb9abfa1cd375453ab774e06f9264c402e5b982b001b1adcd684f02e3b9e956326ced16b467ab10e62b64b3cd2b40ee3a881efa
+DIST firefox-128.12.0esr-en-CA.xpi 610418 BLAKE2B
8b238b43149e8e972a1539b58b4969ae9e88976e4b36a4ce1875902dc616ece59e127c2bf76132d409fff2258b2cd110d610047ce448870d6dff625771f4fd84
SHA512
1200d46fc764e698103b2ce6ef4ab4ad941ff8c80ef38d35ad5bb2ea93bd62943919cddd497e794f6d58135f9da2fba543b19fab9206e774180ed4c9b3f4643c
+DIST firefox-128.12.0esr-en-GB.xpi 610785 BLAKE2B
8a65f7f88f56241cf796393224261559b6d9a83b2d17f589653e943cab77560ef66e410cab2a618e395c50d258bbd4e2b6cb361d6a16e8611f718100cc7bdeab
SHA512
3086e43ce2c0164b4a8cac31b4dead0807f88cb1df559f64699cf69a13d2021072d143e249a9429129c5e6b2b264390db8322188ba36583570e561248e847dc3
+DIST firefox-128.12.0esr-eo.xpi 643529 BLAKE2B
ee9c52a64dcc1c7b67c9897e223dab0d2460051fea093bda1779ada53c6d7c3ba45df6da1f64b932f6ea8d75be3cb10d0843deccd0fdb3bffa632e409ec66b12
SHA512
a40f5d2d714c1fefdf389a9829752709323730dcef8794c6be8138fb5ed687fd0c5d618f66606b3d81cb2630eec55d468287b599ce5a96d6f28dc09c499d9f06
+DIST firefox-128.12.0esr-es-AR.xpi 655633 BLAKE2B
a5ae9c78daffaf6b4e5ae32dfd1cc3744e10ae0bcadff839947b19f367f764f78c457bbd3201fa50fd3ef2cc674b77eb9a3a35462f8cb7289ed3dbf60f9a4498
SHA512
877d36dee260e6f5b28394c840913aacfe04363ab9e1d416f7afdb0b3cc2bba92c571c29b2e228a927be2fb8746d084da02d47f91558a4441392efaaacf59bc1
+DIST firefox-128.12.0esr-es-CL.xpi 656055 BLAKE2B
982d1ea26a383157cbbbd450c207eb40b6493b1e30c06ef6508f3eb0ddf76424b4229acc267181a43ab42aedc0c655b62e03c3e8bbb43a1dc2e7a1dd242d3cdb
SHA512
cede01768cf1be1f2affe98191fc9c2e1645b9ead232f7c72f6a51e591ed8003eacaf95a9f1c105345f4acd7ac80bd5673f5a73f663ca73242ef688e0e11468f
+DIST firefox-128.12.0esr-es-ES.xpi 655185 BLAKE2B
0bdac9db7592614711c6741521b4e02a04d198866569d2e351fc1a4d5b7333576b834a05b427fc7f60f19c224bc3e70fdeb311315e063928b42a33fc6562e3a8
SHA512
ba9c016263d665242a76aeb6e1d45377f6dc26ef9e13e14d260647606e7df178dcdc5071e0d868b8d953c42ee3737e324c1dc91e425559067655f9afbc0f7246
+DIST firefox-128.12.0esr-es-MX.xpi 657398 BLAKE2B
61cca6a0f51bd1eb7abf71aae653f1694a185b4bc37a95498687fb352e5ca941ffa486ff7dabb4502517f271a1111d33148cfaa2a62d27377012ea75c0d6736d
SHA512
eb090e139417e685c0bf169da644e8b30824e6881d0012801a1eb56d6213bd845fb72a78cb5ec51e030a7e8c0fbc4e7a1a41257cceecff27f2e02acb353c7e1a
+DIST firefox-128.12.0esr-et.xpi 556260 BLAKE2B
18f2d0942bc3073e18565aafd64707027a80011f8d9312820aa845de76fbb0faaed8083195d9d89a4f9c5502058de748851f1d72b4e29e561a7c03406691d5f5
SHA512
fc50c6dcbfef10bd92ea0d7e7374079f90a395e28b3748caf62b8eb409cde72366486c70ab3ec9c03876dfbba89b60f78307f972b06cbc33bff1e07a716a2887
+DIST firefox-128.12.0esr-eu.xpi 623941 BLAKE2B
2df30b1ebef640d2c103d2968ac84d76bc708b9b89f1a61d9ac4b3869eb23dde541c5b116e0804d9607a72041bef1335d64a5dc8cda03d4c0b27d0fff8861d5a
SHA512
46528a0cb770ca5f3db222fde8f713fc39b6569e300a353106ba39e14517fb049ad9609fbe94c29bc59124174be3a8f1b5f32152f3546053f13b130f7c6652f1
+DIST firefox-128.12.0esr-fa.xpi 631012 BLAKE2B
5bf90acc07daa23b64748b095458c9e74d005729c1fb920fa0526a72807866b3895680d39023dcf7d60e1240b1356d3686091de33afb0e38d055f9dff9002b9e
SHA512
8570d90631817209c5c2ea4aad784b5e94912b57acd4c15eb6bbc8ed656eef56b60a7777dba43bc3839323a47c41ffa5dba2fa31b3d68d5764fb6b742a31f6a5
+DIST firefox-128.12.0esr-ff.xpi 497853 BLAKE2B
2a5cd945fbb4089d9dc32e3777bb47c09527a04ea700982495c50e3b0016313209498fe4fa4c22cfe34572dbab9265fd00bbd46dbfcb2bd58b9b2e2fcd0eed04
SHA512
dbf26159e6eec2c550946cac74ae9188f7e1d51b02c194d1439e9dc8d8fd5f993d9cefecaa97e29849165f1e519e088c8844b3fdc7e388ad0de70e6910a709b5
+DIST firefox-128.12.0esr-fi.xpi 633882 BLAKE2B
da305a2d3531762bad509e5b6f0ad63710f50629d1bfbbd0f3bcc55e1acb949438d64452b9a067b45cb284379d07ba1a5a3e81e5041cc798a8bea06a8faf03b7
SHA512
7023360990cf18270f18bf193ef3fab1e85640c8b038e876f40bdabb8dbb3ed292daa8a0de4e740d2ad7f895bce5104cc5851e4151257b525f7201758669912c
+DIST firefox-128.12.0esr-fr.xpi 669623 BLAKE2B
0e4dcb9e3af7e660343851aec12cf1e1d636705d19cbd6de7832031267deb1998fe057cafb9b40e24d3b9f5f4cf3689cb2ff626bfbd4112bc56694c5e908dc08
SHA512
7ac3871922daf3e4ce7d34a9d7cb8ed9e0e47f3025cb1f3b092e65dc4e676f22b513741734bd1470db292e425387522048a27b8c37bac311aca054daabc08555
+DIST firefox-128.12.0esr-fur.xpi 651570 BLAKE2B
42993bb99b9838dd7cd87389eaa2c80aa74e6da039a70d6ee52affe1d6694afae6add9ca170df5082a855b6179ae0ccb39cb2b0fc36c66e962363a2ff89e9f3f
SHA512
e9a4deb94eb6e23accd4c4e63906db29c6055d0ce3eb97621031d2293c6f8dda35f2e739f5299b09fc0ccb4263c03edc8e59ddc7e1672cb32fbd98a54e54d51c
+DIST firefox-128.12.0esr-fy-NL.xpi 652081 BLAKE2B
6a851d77670b5efbecf6129e55c2f0d6bb13c173636e6e8f54ada8a837c3ddeb5863e62238c1b78f96bf355adf6781a8803a9e2b10dfbdf27c28499a03062004
SHA512
c93828c6030ff99ea00af537281c5348ecc5808ae6e7ade488c3fe34dd21e6295c27218197f9d5c9f0ad307cedf51ef7d14d38682df40b04ebb721c90b5724d0
+DIST firefox-128.12.0esr-ga-IE.xpi 490832 BLAKE2B
6d2dd1cbbb58a703e48b66eb7062ed08ed0e411210994106b169e10b1d0cd8a286fbd3a651257286e2fed62a91531b9ff2a78bc66860c47b5056d0d41a3ac08e
SHA512
84d125c621f45306e0cdf2e68432bcce62d7044082dae18fc489e836d4493840842e84609a99aedf919664bf8eaef43165aa7f4d3c47b24842d6f4a92d3a71a0
+DIST firefox-128.12.0esr-gd.xpi 609622 BLAKE2B
a5ead2238c6fa347aec5a918b1ed38ee3abda7902b3abdecb1dde422c6ec3421ea92439d7262de908be561326aa2b6637803c639306571a4da50a18cdb5bbcfb
SHA512
2de39e1d9d547b88a5087450aefbc17aebe86936b981d050c216848a4cc6d99bf10f009a0692e75ca30da77f22fcbea5e30f93cd66449608437bc1d9a0d58852
+DIST firefox-128.12.0esr-gl.xpi 615556 BLAKE2B
c9504b058f2864cf3ddfe14f82f362b8b6fb38ed2fd1381da02dc62c1b45823bdd2c8a42b605dfcb0c7c2e0410af0fc8ea5208d9f1e448784555f7694dd8cc5d
SHA512
d01fff5028cda8e2b60ac7a3953e71634bebdc6fb8da6d6c04f27da4c1694a09b5d97bc2dfa2585c8d8150c072bd5319d0991cddf82b355257ea9a346cc5dfa4
+DIST firefox-128.12.0esr-gn.xpi 659903 BLAKE2B
1c22dc7e1dce3e5c32c204d34c2cdaeb3bb1958334df568375360bf9f2616f4b91a4fcb3fa6569fcd2ea59c2327b3511b3639e00db992444317e7d8b2a47e95a
SHA512
5cfb6da81c8ca4735d9f7fc9ea94ddb3289d0fe7ca1e3fe639e1311d240d37e46415df1944798f1ae6640d9d6c49d5f0b88fbf40ccd0747914ffbe905ac665c2
+DIST firefox-128.12.0esr-gu-IN.xpi 552327 BLAKE2B
c0d45844a6f1f973d049242f71baa1ade17a27046dae2ecf910b855021e68872cc7599a4e661504558863d037edcc44220cce2e4447ba8abf38f1bd80b129598
SHA512
2cbb32415906b5e090e3845fb1cee3436e46ffb7419f9b8c4f93d844fc0994789bb3a1761d890feb1343454ee904e86c23077058e72b9196eb8222f1e53e2a95
+DIST firefox-128.12.0esr-he.xpi 659478 BLAKE2B
1b23168ba95345176bedc48ddfe915d0ac50763ad1a9e3a5891376edc735862e44cd79cb6fd8be27c9247809fc6471e6addfb6964a0ffac77b843021a9ab892e
SHA512
0ed5322cee4216ff2c0daa3dbd12247b5b031c5fecaf7db3a8283496fe7066ae6d73b6edadae8f57785c35cf71e176cff88faa06632c5e70298b4cb020133d6f
+DIST firefox-128.12.0esr-hi-IN.xpi 578979 BLAKE2B
c2c9b7e5ffb41bb2099f97320232490220a17908a88186723cd1969ba0ec90517135a0e07a8991576eeb229784d5097fd6c41580aeed47e50135480a9b5240e5
SHA512
7fe9f8c3bb45b977f94bc87d553104c962f3c310e81cad5617ae2a613aaddf8d76be1d49607fdf7cbfab755895379174656a7ad831d3193cb8e6385af56c6f84
+DIST firefox-128.12.0esr-hr.xpi 645458 BLAKE2B
62d80ca08f2feb56bc1f66dae4301c51db8f19c7b1be94254f208b691b8ba1dd856e2135de311f4efb6b22e0dbc2b9e0bdcefffb10db17e201d762374bdfebb2
SHA512
9c3d055317c81cbd8c2d78b6397979ca854a641b5406144f7902d74bdd6df23fe45d725ea87d13e095c6f20fb40ddcca9b92a4c7aef87ee53450daa784ff000d
+DIST firefox-128.12.0esr-hsb.xpi 675854 BLAKE2B
e5f47aa8c229fe238c65c5b94b6cdd4c77568b0d6bfb9f252ce83ca7bcdbe67310106fe8d5c5e4cdca2ffcfec5d71a249dd75dc3e03ec7ddb8ca8601ef11118a
SHA512
01888c2a81f7d84532f8f1218ed7500074a531e41b27401fe2ad0de87da8945a4abce04aba3c5a9171dbf904b9c92cb1c92534755483871fb576449e1ea325e8
+DIST firefox-128.12.0esr-hu.xpi 679679 BLAKE2B
3260a779c8775a4ef5485d02e4b50a0c259b78d95d96b21d91968034dddf7c5d539256cbeb7b5e534fab1203b7a6f994033df49e2bb438a1a35e51c90aae8abf
SHA512
dc41e876146d35ea066102025904482f18ccced64c39e856a28278095cb6b90184b384abde3a53b6c61cb428d2263052b261efb73ab939f400b22be28ae46cbe
+DIST firefox-128.12.0esr-hy-AM.xpi 664448 BLAKE2B
81690ae4bf930260b506ce36187c7f7c8a690793b46b5abbef3b684580fe454779b9f4c143f9c0805d85e26927136c91fce0989ff787822f63180688c493b3ad
SHA512
8ca543de36c30afe7121a1d5af75f343d9ef0c103c99e28eea72db5cda6e48ca5b329c7e1f36cfb72586864cfcb95f873e738e0ee213caa62276eab5b027c33e
+DIST firefox-128.12.0esr-ia.xpi 637957 BLAKE2B
bd3660a2228e4c72d47f172001e56a08eed5b876bc17c56288424f680e1a4274c80d3a27031b25ba183aff1a447b54bdb747ee65e74cbd5874b3e65f91ec1829
SHA512
44ff12ed855fcdf5278271d418f11b8298110e5b56b0970530d3676ba95bc47f5e5e8c5c868b88d543b69d4bd69b7f6f045292d2132a9efe3ff018b842056c46
+DIST firefox-128.12.0esr-id.xpi 625991 BLAKE2B
564f35744c9a3c9f6e7d90316515baae42911923b1ce46fd381f3782676f286f431ef55c87e6a96fb22acf9a8a4279c0550dbf113df58e9ea4edcb24f2c52f5e
SHA512
c375c83969e835fa3b55929c60d98c6e94c6508030166fe9e4aa61635e192bac2a321c65e2dc397dd5418fa8bf2ffe7f08d7d5dd00d980b8072d73737bb852cc
+DIST firefox-128.12.0esr-is.xpi 646732 BLAKE2B
6863b15ba202010ef2dfe654a6eb799715b7cfbd4c4836cfc91024278e6510f8e49b41443a35ee2e2c7f8a1c4bcae8beb0d2c9c0720eb401e1f70fc84e59a62e
SHA512
abf8fbc573079dae514c1713025d3b9ce3f117021cb4034fdb2b754527b21d946ace22971cdd37d2761c7f67da87d34f4b4c10438634d5e462d5fbfa549aae92
+DIST firefox-128.12.0esr-it.xpi 648858 BLAKE2B
ab39e884e152d8a828fb798a216bf023adc2c32e8a86c53f61f58671264725e6c37b3fe7eb48636c116741c8f67c38918d7cd07d88a30a924a557b6881a8f1ab
SHA512
a7b0c418fb2ffe8b7060d393fdb19418c908abff88d1fb1abef89f1a6468ffe8d11b97af7591d0e65a46734aec9318f04b6c4099dc7ee24dbe9349c933f9c035
+DIST firefox-128.12.0esr-ja.xpi 704120 BLAKE2B
b4b1da2eeb897212d60c097f52c42a24bb09ff8cbd8e9c867958b9792e8252e40441679737a2fa54dd23ab75ac8ed7ab719de086c8eea4055c83c0158fd7a2a4
SHA512
d46c7c55f70048b3cc571cf30d273132b13d450dee40b4e30a864e9b018c34d77d78a238964db23f6f26be50df8b582b8fc15c1c15a5334ceb5924113c55ac2a
+DIST firefox-128.12.0esr-ka.xpi 714503 BLAKE2B
68cc187deaa7677fcc3e3cc6d7061db567140f9dfafe445e128c9cd779f205f490be634d2f74ed4b44012687d8b95843a18d9dc4f3621066276ed479ebd2628e
SHA512
c89dfc551bed1da0019475ccbb8f6635acadaf996c51ac8fe89c10a320c8a2023a7335fcfaf21a8db4da89f1a0e624fab242a7b6a898b9867ca99d50aeaa76da
+DIST firefox-128.12.0esr-kab.xpi 626280 BLAKE2B
202b7d3db5fe433ffc40eb63628e4cde968c81018a0b77e010f7584305f89412a756f121a4a8fc413482178f549fbaf660127c80009c4328fc8c35089fe44b6b
SHA512
25d32dfc81c1961e28502cf4487b6b96c4ba4d061fb9bd397ad520da528515a2c37b88ee7b50463b6464eafba64055c6afa63052eb7f3e3c969e08c0263c5b0d
+DIST firefox-128.12.0esr-kk.xpi 734539 BLAKE2B
fb561601765393612ac615c35049d1eff82c159565e9ca75c186b3091fdb9e26b9df7ee5787683712befb7e613e1d88cebad4333b4419e59645506969cff48ad
SHA512
0b1c5d5671a6fab84d3a822fb7ba57f4b524c8a47cd774dddc2067a507ac6e9c4506a47bf85753e623ce365d47a8ce7e30e432ae88dc45f09f23de96ca845b87
+DIST firefox-128.12.0esr-km.xpi 543169 BLAKE2B
eedf6b42655a0f94793bc62270e3c1e6367d97bda47f8266159fc3e01a42a85b00a8d30476f947cdf889888aaa7d5af17915b3fe7ce7ef59a32c46b37930228a
SHA512
07bb56116d4d612b4cb9ddacdb44a5edaff6ed40a5c6160d97162ef37c7aef76d913e55b4d0efb305664cdd68c51aca73ce3588d0fd6c88ebb90c9af972a6317
+DIST firefox-128.12.0esr-kn.xpi 520324 BLAKE2B
159d27f03fb412b165c0d2b21c13c410e3fb7393f9ccdd9582d00e8a8daabd5b58b8f4a0dd15e86ee65ce03fe193fd32ce7ea29ebb6bf2d62979818d9639edff
SHA512
b83fada7aaab6f3d636f971f530b8c16a0696d171f48a29b1119bd0883592e12fcd265ed72df1eecc7555f3597e91250970aae0d7d569cb5cb23fad51b651fe9
+DIST firefox-128.12.0esr-ko.xpi 690562 BLAKE2B
2ab3dce4df0dbfc4fe7d73f88f839d4d2cb773f60c679e95a9c8192250ff3546307151721692fd9741ec9ae42aeb7247c9a9902ce7ea9c1343d61abcd9e5fcf9
SHA512
e5658528f1f76c5773be30d0dd7433308e5f3a1fef6f244460bf000aa9c0040a06805c53a8049e47301601eb6d26ea70e1239d6dac14c14f724f35dd05fc2630
+DIST firefox-128.12.0esr-lij.xpi 506296 BLAKE2B
04a508bf25d56a58d6833c371769da3fe018be71d45c7df0b6c43c9351df3f832c90cf2b857b8ec0c1c93313be31d6ed1189bee478e6d5f0d2cd41e4a134a153
SHA512
51e807e89f6e4718fbd96e8235303abfb3dd8e268d62244e18a3eb625e798cad5568b30c43cf36fc67a342fae5d5ae0b23816dcffe136f383f53753a07f41d50
+DIST firefox-128.12.0esr-lt.xpi 585991 BLAKE2B
c2c099b403d1ff2917f7117c3ae8cea1e704f0d800f9b3d0bd1c62a1944246d6f6c9f7d0c5ea13948a664588c41bfb4b8e1fa167c676582ba725aaaff3271472
SHA512
3316cb425510609911bf7e80c47715fa8b9661b92465ed0a4051a5ffdfda026d715e5feeb71ceadf4abab79da5c50d0d0c8515bbb7341cad7c2a4a528b460f5a
+DIST firefox-128.12.0esr-lv.xpi 595102 BLAKE2B
0e9f8593798f47d7ae066d5e3402301dcc1a4443659b642ac7dfd196b7e9d31302322a10ffbb503e8c855a4f389c7589a6f2352776909ebf78f246e7be9ea05c
SHA512
beeabd64632d0e0239128b9534b1f9f6b6f2305d9d637549d12021d1890847a8193a21307cda2b0d814035e9b3e7ec3e9ff5b04e436411018a4380c7da38262c
+DIST firefox-128.12.0esr-mk.xpi 511067 BLAKE2B
26a565191e653b1d4b9f0a5b4d63dfd91b76377265170044b768ba96b0ebfa795495eb911d5b47a9bc738f9342da785bc44f699addc09c7d73565f86a7177c4d
SHA512
e82545db1ebf4cd314308a64c86d6cca9aab6eb64075074b58feee5a75777280b087c31b752de1cbf1c5c79252bc255c401e1c10c7184a24d2bb9578a3858197
+DIST firefox-128.12.0esr-mr.xpi 552809 BLAKE2B
d100dc1d6eee0605c53af807b38fabc77b38a4a00e8c912abb94260e5fdb62c7cc4684ab8d88dd942c6a0b665481532872fd53afab3a13db770c98f83ca3054a
SHA512
f652e7ead07d940fdbde9488dba3499b5b160d334be7488a8a8b43f4d9ad2d7feaed1781ed513b5d2f574522d2c0d3d8bbbbac2f602eb741fd2a8e284c43d477
+DIST firefox-128.12.0esr-ms.xpi 477961 BLAKE2B
f3c1b353cf9ae62e5efef4c8247e82c44df7308a4f6bcbdc290e17f8f5d39fc0e7d89f889e6e0bb6585ee11bdfa67126462bbdbcca0d1a5753db915ebc617404
SHA512
977f664b4794d4c23d2c44ea3356c8b1d2c91b0c85e634eeef602052edf2a0081b72633ecb8bc1ad6c9e5b89d7dba75c1333f5c009bc466e45153a7aff7bdc2f
+DIST firefox-128.12.0esr-my.xpi 540057 BLAKE2B
02fb28b6948663d2f6fdd68f3b9ec00adf0b50dbbd4e591e00cfd4bf6289da53aee95a7ad1c274da85c63c2037cc3c995af70e261717ae926e820ff13b38c706
SHA512
4a381dc4ec243437198cb254e953cfb025b275835f52596a7e397038800d5fdedf6eca428ba4e929a1fcfc2e036b6b76a3d9e0381e2c04f0c59033dfb501a4e0
+DIST firefox-128.12.0esr-nb-NO.xpi 627687 BLAKE2B
1db97674c2759514e9cabdb6c3897ffe3fcbcea3b2e2f5ff4b8d493dfe1629696d90812f3b9d9aa7639340c814b292224bdc37cd0e070e4945e26e1c47093164
SHA512
132429e24964433fc099e878ac256f3b2116ffc9105ec30f43ac641abd6abef5c77adac08caa407039e1fd7726ea79fb192d141c959b2a08e70726645675d7f0
+DIST firefox-128.12.0esr-ne-NP.xpi 543832 BLAKE2B
de5920680d938006a64cc7520c5659b58c0caf0e8809f75dd6df41bc48e2294b1464f4122cecfc6b1a2cf0b27c172e72f5552387373c4f3373103182e825ef55
SHA512
9606c4ce95f7175d1dadf076defc4e01ffa5d24809d48fee3ae2d5e25d5e246546f03d607aad342e09da635404edbca756680981927a3dca8e2abb53cd2c7bb1
+DIST firefox-128.12.0esr-nl.xpi 645179 BLAKE2B
a4af1fa6fa95b0331cecffaeae06c09885d3acc06ef6cdc5a874628849f7d5b4025d7b6392bcc2ccba67ebc6b9ef9232f3d138c3de8e081dbc2a5769000329cf
SHA512
421811f29d0b222546344c91cdc6c3c57f99128d7ef705a2943ec297fb726beb9cedad34bf891122ea6670ef6ca7f56955ddb9ae10fa69d4c48df5374b7713ce
+DIST firefox-128.12.0esr-nn-NO.xpi 630282 BLAKE2B
45411b51c33b809186de7c38e0eb3b391b5c6549aefcb99c208a287b6e3ddfb6cc67fb386e435c5e79fabd1f89e4005640cd6198b25ccc17903ebeadd0495864
SHA512
12fd72426f31d7dea917f770b06e44ce8cabecf03e62c9865e82f5187cbd6871e7cb9d47cc2be13d7d030a87dc448018fcd4ab7851685871cf65b760e9b57cb8
+DIST firefox-128.12.0esr-oc.xpi 626817 BLAKE2B
0bfd55843f5ffafa05492eee62ebb6a6d0608414babf6d257af260b34abf001e83fc74c84789fb3175e3e7b781be1c83a1dd818770d4793db6c80d8402b51432
SHA512
f2a4f72c56f814486dbd750ece439f328e7db9f8c2b06757ba0b37226c323bd845b47d393068f71e5fb82dcdaf8f39844d57d90eb11e8ba0853c6090d4755d22
+DIST firefox-128.12.0esr-pa-IN.xpi 726729 BLAKE2B
a0af6df6fca4599c99e15529144f0eafd54ab8cdf1f0a4fda4c642d6bbd54b72842e08d6c9fe1ad029aa51b5b414139d61756a221d4332ac6967b1d6c7478677
SHA512
1820182f48e2feb84aef8ee48e026b7010c376c306b2372eed639e0e80611a8683f66f88293dc9c945cfc719884019dcbb54b4973d9838d2e1ddfd9d4838ffa4
+DIST firefox-128.12.0esr-pl.xpi 669250 BLAKE2B
dc0289c4c814a99e9fb03af671bdf25969db79dc62b736e76a4d065dbb0086770dd4afaad73a5e0b089f337b2899f154d76af7849ca0b60adcbd4ccc00270f67
SHA512
84d63901a70c2bb58dbbe8eceb318ae7cc7fed52845e04f3eeec8399182cdf3dff7fc187f4b172b39cdd2cbcb2be619fbc5a4240341eb5e4da7fcb0300c3ea8b
+DIST firefox-128.12.0esr-pt-BR.xpi 650219 BLAKE2B
c1e73361a1e3b57d24ef7032477711a49400619edd4457df4e4f3d389065ad45c5601eb8c6d2f2dced69d2806f4d731fc987ba3eafa7265765bebd5b0246b713
SHA512
51ee07cbb49a357744eb78d121aca8832ac51c0193b458e97420373baca77f905aa3ce20a06eaccb6b0119a2b00300d9c32654ef73823c34cc9279d2a4afe3dd
+DIST firefox-128.12.0esr-pt-PT.xpi 654867 BLAKE2B
f7aab6782652c446cba72acd6a128851a595da930be9948c9cab3f4751c49c0e21bedb8e419f56c6b521a011304d47f88b0305755cd4a8abf0e7ea9e9df16838
SHA512
94c7ab1fd0d9f6c7db5804392794df8cb6b08aca01df33d813c903fb712eae661d154be8d21a77a21d37bd532ad9d70806100e7f87ce555662efb022bc419c4c
+DIST firefox-128.12.0esr-rm.xpi 646706 BLAKE2B
ced63c7b14dfe4df8ac3e397a4b8e818f883f36e5657ebc6350fdfadda380982842b4e245999f7259a33b369252ae9fede38a018f3dc57e110baaa8c5ddde08b
SHA512
39826dd463de7035ebcd5ff0fb424a49f71a19efc133079fad21c521037fee9c8562b2e8e4881fb51894ba49ddbd1be1320aae9a3467d4a214526f9b04fe4268
+DIST firefox-128.12.0esr-ro.xpi 562847 BLAKE2B
9ae34dda03f08b5758bad47d3d3adeb252255d17fe63b65bac667a648a58392202f90014d1fdf307aa53c79a91a1e3b9df13bf77639cbf35b4b48d73e91de328
SHA512
0ce441de32f1bc84066864928a615fa0dbed1ee6932e3d5531eb1edcb5a1d7a7196775503e7f8768d1d199c3216dd4972c42bab552a554575aeb8cdbef017403
+DIST firefox-128.12.0esr-ru.xpi 753069 BLAKE2B
ddb0dcec13d26b57287095933fb9f9e0d398321710d55e758ba5e20ee9927e9e17a219366cbbf28be78c2bf5a33016136c913a2e98e7658b8c149948ed24e5a8
SHA512
8882262d95ed0639b29ff340f97b0a77518d52a61d9cd09a2084aeae9fd2de24b516c5dee4551c5c62a5cffe96bcd141fe8211b6a3f0f2cca737d341546ef1a8
+DIST firefox-128.12.0esr-sc.xpi 604282 BLAKE2B
a69536d29ff4f679c0a2982ad2765719f86a546347daa2eb1c41a2b359a6d0283be4334b2664bf3c5d7ba469b0a1e421faa4c171f7a8ff075a3eea3d06f0c259
SHA512
f61e56cf42d902841047f65d1c704d348f920d1794654966b08f71a2c6f00b8b3e4cfca20cf91650344925fe6df09bc1b3c4673a821e7074f8935855688394c8
+DIST firefox-128.12.0esr-sco.xpi 524653 BLAKE2B
b8ad208bd1bd1f970c1fad7fdf78860dba61bef7d1792ca0cf3774ae7c072ab3e222b54b51246a0a8bd4d1e01633d9f4ee606f583e3e7be876b588991585dee1
SHA512
137d3cb24c23c3d6688e3e4c51c35424d7af7b3310e2875040b3cebfeecb7f302ded06fa11736c28929177f7049d4c806d3d862eb03d4ef7e3a5f4fa4894ced8
+DIST firefox-128.12.0esr-si.xpi 628205 BLAKE2B
74ade61f57d8d3d3f307a181946160b12d3d2867e87bb5a8c135d285113c5471f0f33ab823f9197b45a6bb3b25c5f91af9cbb8a5f0a9394991a0daeb358ef5ab
SHA512
4f6698e0a45e8ea5aeb317be1195623373b73255b75ddcc8ecc397746a4da372133067899fff41def99f407eda3a9039c42373f099d8cd7136c9a8fd8517f4d6
+DIST firefox-128.12.0esr-sk.xpi 682220 BLAKE2B
d5d6f1f6afccbe2d3664fa6c74ad601ae172090e67306017b56dabc3453d9d670f08320207e42211bfd5f31ac7f5a3761cfd4f54dadde78160528223d2ebea17
SHA512
8b711aa094e9f52ff34152ce9c3b1b8f021952db137e84ec78c0f11ba168ae59461908a916f3b9df4c9ad56ff5df200cc2885d27674137c8a9438252c473970c
+DIST firefox-128.12.0esr-skr.xpi 726682 BLAKE2B
1f305338d7b0a08105449478b078a89da20cdf08b23e6d781bd5f7cd97c01c25a128870bad9de1223ce222fec480dfc0343b9e9a8e4336887149b001b02cff3f
SHA512
f33fb6ad48e60c8eb057d2d1b2a91112b976048f6e7e15c8967aaebd3841c032ca9510822ea7e3a4bc40e3b581758fdcd549359b3d700fa240f0e7a48ac9e317
+DIST firefox-128.12.0esr-sl.xpi 649028 BLAKE2B
46d9b510838f8d5665be7f243245cad6dff773a6c1aea8ca5217b02f58cd2baf11c413c9f1c2c877503600cf9e2dc617c2fc774c47f6d45f109e1f97a2e0b83d
SHA512
5380654537fe53e125e0e775c63974c7712bc0dffe31b902a20b05adfcac0350871e92f245ad5cd7e913a6682fca38f64f9e78b30f5f01308f0e3b50a70482e8
+DIST firefox-128.12.0esr-son.xpi 451682 BLAKE2B
ade2c1dfe06758fbbd6ed711bf5331d45f8de57d01345350b13fc6cbece1b5514064ffa697e62d422f2a81cde613b7ebb22fc3645068ab5d10af031d4ad44c1d
SHA512
208d9d4d5ef014817521a58bfb73fe4ca1d286af92b224106606568fafd9085bbc3f85d8bfd2f253c61cb2ccefe1deacd46fa06f58b9063353a90eb9eae7f648
+DIST firefox-128.12.0esr-sq.xpi 665755 BLAKE2B
b918edf4ba9f67df6fac33f9a7556fba7cfcd67942e2c8ec755d3345d32019872720362a8b163d570026f86f68635a753eed8a6724ad20a64573ac09ea13b2cd
SHA512
fa1b4636f04bb9e9562e55e0a4f2db6047fb7de341a393bcb3f2ce23849e75962daa9ed8eb21a2c1ba552a8532cb2f47ca5155ece5bcc59ef867a2ee69ad759c
+DIST firefox-128.12.0esr-sr.xpi 678437 BLAKE2B
99a33aa51ff4a28f5dff48b534f54b01c07fd071f11db1b03c93f570b5aa8e9873f7733da25d607eb08ab19407ece58a38950237ddeb74d847ce0d80d221a3f5
SHA512
51bbde189544a3f4a9a9756b2d048f7a7ef4171c81d16e01a4667132f73bf9e852bab46c0ef006a455e6ca4c51ab5228088f6167d95bd6794f60e3354a16a805
+DIST firefox-128.12.0esr-sv-SE.xpi 646486 BLAKE2B
ad9767ce2ef4eb4e1d435eac24f8d6b186f8709d66b1f5c01f598cdd70cabfb21ce724e227e8e50eff01c9c03443f94b482dfe598ff141ccd24cca2d3bf74043
SHA512
494537cf9560301b97a62745546f02fabb161f6cda20a43543b844f2feb9317878b7d029a1d5cfefb316f1417540e60df2de0910492d7762359da398da924786
+DIST firefox-128.12.0esr-szl.xpi 541733 BLAKE2B
30c4f4c57f313924a08c5695d99a965c4c3bdf34ebbecec5a2c7cb8e7e204cc8838a03161c114bbe3699bf2bc1aee902d5cdf9c50c1dd5660aa7eef66d077d38
SHA512
8aad9fa85507e3c600c4534055da1e58180353e617958ea6316c7ce155c5cda1251f14b1f2909a1d5f0f0e4a102b462d893e05b68cee30b6f4f1fb878d1a6c45
+DIST firefox-128.12.0esr-ta.xpi 530547 BLAKE2B
d86a5e253caa398f95d974cdf1442e253e854606b99940751185b46b20d44a0a8beb27e8049846ebfa57aeee3b847f91ce2727f46cc53237c3a0a105827785da
SHA512
05380e199bea952d488b479ca1aea74fb7562be4ede53d88a57d1da5fc0f8cc904b804a817414309c251b57c9952da4aa9cf288f7c434dee85a04b2bfef6510c
+DIST firefox-128.12.0esr-te.xpi 583148 BLAKE2B
66d5c82a611f67f9810d5daa51aff1197ea7bcce02cd80289d523ad597035a922041df9da4772b2c8e31842e77391fafc16228504fb34d20c6f856553739624f
SHA512
01dba4e64838c993cee7fedd99f4b67099026798a2f8fa4a93b2287b68e0014dbdba6dcf2262f43ba0a6ba53a5eeea0f734df690de9d6f98966993e6a28e9961
+DIST firefox-128.12.0esr-th.xpi 728449 BLAKE2B
3889748beb571c838737c49791ebae87ec96d98573cb5fb548a488d5fe5de62aa2f5a90b1b4233e93a42a6c07c620dd32de635ad90c716d44e961ed54643c700
SHA512
3f75bba07eaed84075a682557f873719eede02568e3c68ce8043f30369dd97c91663e8ee3b981e4a5297bdf4c8c4d8d808602858458c68601d8b2a5a5cea0ea0
+DIST firefox-128.12.0esr-tl.xpi 546949 BLAKE2B
1ea2168b634c4053a1db554adffb4a19bf58703677cadd033e56b9cfdc84d9e776c9cb89a694faaad4cba3bd1828561dac98632d27b876e3494f379a4a5ce133
SHA512
c35b1a7f1cfcc1f6dd7cf57fe3155b6cec37dd156fa25fea42fdc8d92a963d062313a36435a518388c0f4f33fc25317722b6f607864d0846b2534b0750f21b06
+DIST firefox-128.12.0esr-tr.xpi 659457 BLAKE2B
c3e3f99029c8f79e167d032cd37e690505e054a886dc3a3765c444d4be0d68180fdd3a7f5c4f8fb84c34da6ff207657a126cde918d35fcf540e44235da4bcf94
SHA512
8129df3585d18d848befe79bfbf201e83b1f0aace320242f6ef0f4e4c2f7105fa36b26ae1652d41f2dd3598beb622967f5a7cadaea0ebe42a71e8903b8d1941f
+DIST firefox-128.12.0esr-trs.xpi 522146 BLAKE2B
fea366085d63673536b0d13c685d7a42e9f2cf792eb3593ac97c8e3e0ea6ea13cb992ef1e6297e31dedf2f80980546e7f5fd56db5877679871bb05762bec7d79
SHA512
a6d46591af59c4c0b896994963be2382ff592650e34ddad8be2e9523820c417d254abc0e0336af0243cb4e7eb338ea451fd2cf9180dbaa668e0627ece03e8252
+DIST firefox-128.12.0esr-uk.xpi 743999 BLAKE2B
35e61b855728edae87c06cef6ef0bb9f3949f211fb1ab501de78ef596f1cb9245b9fcfcd1763473884dfadf5ea59a73e3b39947681ec283b322112e8529b9d25
SHA512
edaad7233553f03eeeadd20d1c669f51e251b83d46bc5f778c57651d6365c011f1b46aa3c15d0be35752a310138bbbc029e4fed6f753819b87c218437248d7a6
+DIST firefox-128.12.0esr-ur.xpi 574509 BLAKE2B
27390997481ad15ddef9eddc60bb67dd72fe25cfaa5b435396affac6d135fa193a91e6bf1ec55316271dfa49614ab6b332a23d563b0f93727af2b20b92bf0657
SHA512
3e35508df3ab9b41ddf723fc6d99c990ec310e764c2b5e49e1d76882d61677cefeee22113ef912e1ec9cf1921d5b243cb061b57f4d4e4f4b3830f7f4d98f7438
+DIST firefox-128.12.0esr-uz.xpi 495293 BLAKE2B
3f5f962688d1361c83defeab814cf92dcb161740879572bffb01b7b0f506704c803eac07803a880077e983afa1fced6590da41813e1f29ad6c9e3f50771d1dee
SHA512
7a7bd36c46c6618e04211a70d7005d7607b04e193487d62931f9fa791c9c5967a64378ece02804797111707c8b4f47c8fd150ba9196106c2ae06d0957b494323
+DIST firefox-128.12.0esr-vi.xpi 683661 BLAKE2B
7343c9cf274e8e6273d1de6644cf19da1c92f3f99f55356cab2742e8455ac24c9bf68803b06ad0eab1f644a4ec69f9a836b5b66faae7b1e39de152eae1a21361
SHA512
69d3161080a9712af5fe5642b1e2fa3ff234e1edce44c25a0814296f3bdc9eefc4cc53ef795d13e9e95d54f996dfcff1bb15fdbb34a0a8c5ebc276aa83f23d52
+DIST firefox-128.12.0esr-xh.xpi 452428 BLAKE2B
799bd465a3d9cdc02f57d36962382c7e3187a391cda964bc4b5e59ca6c9195c06ddde8026243c55fbbd871b24d179a9fe32c71c87705e627fd9d94316aad2dd1
SHA512
a994e57a3f8f219be35b288418549c6d1736a71399d34f004fa1a50efc1375a98ddf3ee53443e05307591e8ce877e0e3282f3f403f4ac77fa3f1320ba2eb5dfe
+DIST firefox-128.12.0esr-zh-CN.xpi 686326 BLAKE2B
c9d0f1991b784534e236239e7dba5edbdaf34eb0a4c8c55fc334c204e4ce1ff88d6791fdd261b656c4e0e90b31f6340a506b3fbee2ca105529bef61f26be11b5
SHA512
db3177d09a62ea93f7621d7c223a0fcffc12188fe8417d451d56687b05125641010af41492de73421579d8e1709b4f629b031f88277f04e0289e848264664ed4
+DIST firefox-128.12.0esr-zh-TW.xpi 689137 BLAKE2B
bf9a6c880fa9e9b7de2ee869c0eaa0ad51aef313f1878f316bb4deb0163e528b7d39de73441b79c0a04e1692a01da2e446a06e141ca4696913462ea0cf4565a7
SHA512
d5800e39b17acd8bf110c42939162577e98afdb486103b4332770ee27ee62ea62dbbaa0cde514a47ccae06fef07b1890a2eb461dbed036728b5175354b12868c
+DIST firefox-128.12.0esr.source.tar.xz 560934320 BLAKE2B
ba87d758e9f0d6803db2090fec27a24d8eece75226401190d76d11163424ad24d9db4882876bb88c872a84205265fac4a7b11b5e2826ce667466452b062f4807
SHA512
442d0b2b6ce02adcd878975f01e86548ca8fe93840185d77a1acb41ec99440c7abfdc8757e6f30d60593dcf2c7f50563b6ea6ccd4d239beea01305615b73c359
DIST firefox-128esr-patches-11.tar.xz 18696 BLAKE2B
0f35eaa29f1daf9beb09c7303b3e92676eea84337683b8f7393e8b52e36ec1f37683a050e1e8d7939ebb1bdc190acaac887bebe88812c1b64785e38980f18be3
SHA512
04bf8bbf3c4e7901a6681fec66f179f797615613be838cf35a4b03cd9a347656b1264524ac7355f0c3978a5e740ddc5dc438610e5cae6ffcad73a8988cf0e572
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.12.0.ebuild
b/www-client/firefox/firefox-128.12.0.ebuild
new file mode 100644
index 000000000000..26646b3a89c2
--- /dev/null
+++ b/www-client/firefox/firefox-128.12.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-11.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+PYTHON_COMPAT=( python3_{10..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.mozilla.org/firefox
https://www.mozilla.org/firefox/enterprise/"
+ SLOT="esr"
+else
+ HOMEPAGE="https://www.mozilla.org/firefox"
+ SLOT="rapid"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info
llvm-r1 multiprocessing \
+ optfeature pax-utils python-any-r1 readme.gentoo-r1 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
+}