diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-09-04 12:28:34 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-09-04 12:28:34 +0100 |
commit | 518b45bffd19d0b75715f338985f96c459f9d129 (patch) | |
tree | 948dfe5d479374fd6b85fe72ff2570e8a4af47ff /www-client/firefox | |
parent | 3f559ef486314f9b3b48d48eb303d6be68463af9 (diff) |
gentoo auto-resync : 04:09:2024 - 12:28:34
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 103 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.2.0.ebuild | 1354 |
2 files changed, 1457 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 201b0151ffaa..271e9a781fd0 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -311,7 +311,109 @@ DIST firefox-128.1.0esr-xh.xpi 417178 BLAKE2B db647fc6764380635d796baaf6084094f1 DIST firefox-128.1.0esr-zh-CN.xpi 657339 BLAKE2B 37acc3369de9339eb10a39211526bc8cbf82f3962b0415cdf96b9933fa88fd5359361fa6c0a32545cf31cbd86d590efe9814b67d835f486e2a39387c00bc6e04 SHA512 524d90cabcf3ec2f882670db7571156c61b19302371c3c17703fcf3abd6758aea898b6231c51a50b3db6607855a6d79677054a9b19cfaa522bde9211b9ae30a4 DIST firefox-128.1.0esr-zh-TW.xpi 659474 BLAKE2B 98d0e9d960a32692cd34e4ac99ec5494e74b0b55d45a2f36cd4f722ac8ea2c9074c733ef2b04a0bba60e9622c26a14bd38d8eecf8a810f0819a5c85615023ef6 SHA512 1a431fd2d01a78fb761c812bdff06361c2c5f59fbda12656a38622346cd9370e6748b61cc98ab38a3d31d9824aa9f2da4e90a0cb6d0533e40136aec7ac8f1469 DIST firefox-128.1.0esr.source.tar.xz 561953208 BLAKE2B 6d22bb17ad22d5e29008fd98f6b90bc6869f71c03b09e5b24a6a8a8304f303b316131aeee5d3e5f175a9194074d586a507ae121b9397aa371839dbdb1349f2bd SHA512 8055a7f83acf0cab6124ba5809aff1c082e81a0d30ff318ec719f8fd3f4af9aa60e2094c1abd6c981193d751075a9569370176e20e50f3c1959fe27a15511388 +DIST firefox-128.2.0esr-ach.xpi 465016 BLAKE2B 70b8839a5028d7b87218116dd44fa724fdc1aee91c371bd5e84112a9153568d7186ef4237f707e08b9e22f0208affd03141b49fa4b842cc82faa5ebe7f19004f SHA512 688b8fdb84a6bf069650a65218615d605cd9cbd52435261f3f4fcae749cd67373fb1ce34c24bd3d0712c5e9416a2c111e2bd245050130423c944b64ca9092c1b +DIST firefox-128.2.0esr-af.xpi 418343 BLAKE2B 6b52d8b28d7e1095257927e2e894276cacf131fbd8827bb321729787d4f2b9d35418c5b834a87c30fe035f31f03c003d3691d2350ffa6972d1ef8de15952fe6a SHA512 70bfdc67a3f2ad213de61387f611bd9f6231eabc7012f190b84020ee3c75d70579d88db5cc1995f86fe1eeae72c31438f64019824c4ea28ed589b39cc12b9dd9 +DIST firefox-128.2.0esr-an.xpi 506833 BLAKE2B 0c46cfef3202306b143015195ad4dc8d04c1bbb51dfd643b55abbcb44903774a4b119c0cd2336209eef2ef57abe5c2f6d0b82eae651e1cdc738580e6cb56474c SHA512 3dcc2c6ceca2d8452322fdb129537447d4bfc9951195e66a24ad7fc5c5f3bf9cff17326eb98c3fe7afc4e33ec9ae6f5d5b15e2976da34192a712bb1a08dc58d9 +DIST firefox-128.2.0esr-ar.xpi 612892 BLAKE2B 940c8caabcafa3a9c95905d820bb622adb94b259da739ff5ed88338b3354d572aeb03afa98aeb8f89b83dfd5c0fd5a6c0221c64ece8b1be8bdf0913a5c7e29fa SHA512 2c18828e3694d898bfb0c7fe36ac5937a1baf70dd1613570e1c11101197d5a66593334fd6a2b007ed680d8d62e6f5eacc1ac2e4766dd0f6fcba8fd255adc5780 +DIST firefox-128.2.0esr-ast.xpi 497291 BLAKE2B 752ad97fd9c00912228226324eb8647bd5c4cfdf3a8339aa0100047a4e75a818cdb327b5505e9ddb8a33cd80a26217a0bd9cf0fef6ea0a4895a3db331686b830 SHA512 bbbac520b9dc6eb6fd9c4a00651842d8765411fbfd2803c6c536f0e5b1fb7e0ca8886eab0714588dd26fa191363f503550d39ecc14c6263cc1247cab9d43b007 +DIST firefox-128.2.0esr-az.xpi 491719 BLAKE2B bf70d9814f2951a02ad0522d23e8162785087972ba02355613dd14f196308335b0e126845aa378cee1e11188f832cb0e11064d7ede7c3257b5dde0cc5932c32f SHA512 c35f461cc54aa04200729d212525e807c3361b081ade3d6b7a0bab462fcb43c7ecc05ca0cd8a1c3a6471126de7c45386c5bab6b9225940f3bbf11441fd9c2195 +DIST firefox-128.2.0esr-be.xpi 717327 BLAKE2B 452c846fddd81bf764903eb42d4aa87d7f96fdbb2b9a87718abf6b6ec3552855a6fa066fc69eda91bc51143ecca890fafbc5297f9c7d3f1a5730b6eab39e04c0 SHA512 7abab5270899c9ac4be6ced477c630096475164caa37d88089fde40c1c3e8c794f21c4a88a001f1ac5c7605eaa63c3d156e27eda331d77ddfde5ef393f7d45f3 +DIST firefox-128.2.0esr-bg.xpi 637126 BLAKE2B 7bfc353a577a31c3baaf8af178dc34e50b36fb02f8a23e585cb8f7a6d97252c49a642fadf2ae47ad0615af9c4dfcd77b631d164d3bc1fce87fc2008c2d109e1d SHA512 16cb5b6eaf1f4691b59d5354b4df9cf1b55d317e42d07d59226315448c9ae2b61225bd6f810bf192e2dea8ad8b0b574a51c47d7196f93367a78f873255a21eb3 +DIST firefox-128.2.0esr-bn.xpi 582470 BLAKE2B 7395bb68fd185e1559dfd94ea67c9e70004c59b0d2fca92596ebf2f7b53e3985f0dd1f00660d591317db23f460048bb89cfe832813060e53e52cf3425c5c74d2 SHA512 731c42ee4b5e0ebe309bee4370601324ced7e7d95f5543dc4fe72db60fb1d03e5d4474755b329744e00ebb3fb1c3cc905c50ec4a9a6ded85da90ec4fe4bf5c86 +DIST firefox-128.2.0esr-br.xpi 590836 BLAKE2B 3d3352e5466a2df24f294eab8d604ad97615aeb5edc02edda2485ae47db99702e6dd163dffe4d356e651ac1bc36b3815cee22b2d27ff1ec6bffca007a4552197 SHA512 1a59e68eb68c3f2be052ea6291bf4cea5543c3843ab31f76018515e3cee2d8e0191e0ab9ddebc3cfa2563e242e6a8a58c72ff6d087ef0e3bc5fb80f6c2a30aef +DIST firefox-128.2.0esr-bs.xpi 510170 BLAKE2B 0c4de7a6883be7bc6520053ba86bea54b9bf57ec470841eef74fd412f2c11443057ecf952cb2125fbcbdab9289128f12b8071b9052b78321673fb80b0eadde0c SHA512 b51596dce4e77c3dbf0f98fa21e430b18fbe5ea9806bf0ececf06377d2fdb2064f5205af839bacd066ca886797ad0b050cee8b7069c23a864dc146e5c8d76138 +DIST firefox-128.2.0esr-ca-valencia.xpi 547190 BLAKE2B 1fa8d3cb7d8821a1e62185e260fdbcf54b5f520d71ecf984c9c7a56958c0fa535e1406b6183d0198ffb847c911f4dfa632f200500b2e32efeb98112dd04451d1 SHA512 98c0b5b46620783ef2d21e5915fe8130968e912bd553a7e1a116445d82be4931fcca213621a33a6b1cbf4e744d7e14d59f9017bd51f58df7b1d673b179986801 +DIST firefox-128.2.0esr-ca.xpi 598610 BLAKE2B c526d2dde8315fce06a2e272c8145f2f14b7c0a80d04fa002b01a79e496e4b134d2e219636908d4ff9d2bd43e1b478d5be5093b31dcc5b196a1d643789489f47 SHA512 82b80def7796f4770c93535a45375ebea9777866f28fc9f5b527e7bccc086d3d9d7e1cc20b8d83cbcc13a007ea457bcc683b67f62cd7f5c869d11b5ddcba3607 +DIST firefox-128.2.0esr-cak.xpi 594027 BLAKE2B 1198ae6b3116e0f52fe7042060cd1eacdd9948787bbca82683140c1895429e81a2de3df46eb94dfaca757071fd560982221dc674f0cd79db5235071bda463fde SHA512 3e2f30e4cb499f46322c6b0074a54bbd51d8d362d6c5e7b6aad16a5cf092f29d44701c936ffed8132e1a904eed2e787b0f4e47e68980f5b56718f59d5187650c +DIST firefox-128.2.0esr-cs.xpi 666457 BLAKE2B 77b1848b1bc25b4280725c0bdab061e9b70429d07c197761b9851d5723a6a542215d714df491b93760268c25fdb47a0f8414a07871095e25b8cf6708fa58ea12 SHA512 b3792b7983065ab253c4891e79cf4ca4a79027f0f23e64e34c1e0ecbc9eb3d0691a4def5a386160b59d287d3f2dc1e13a9a6534704ab5230c34474c52db1a032 +DIST firefox-128.2.0esr-cy.xpi 631265 BLAKE2B ae4ed3264337d1aea359ae0ba2d0235f351079b7558fe3869b662e91cdb557d1742a66bf559295e0d8140b25bb77bb53101163da3a85c9cdb3d3b38275f05dd8 SHA512 4c65b218ad5acbee572516ab21a379dc8f4049884854cfc1ba4feae67adb8479668a01d0313304e6b8c26fe8dc8ee35fd1bf86f7cd6327fa3edfa6413373bba7 +DIST firefox-128.2.0esr-da.xpi 614503 BLAKE2B 30f2b5f42edf0cc047334a5c1ea1ffe0ca11bb269eabc1613ffa4c65806059da4460a34d2ac9a0022e19f9b5de3ea5c01cbc8a3893ce1a9c64e04a40628b84a9 SHA512 53abd8fdf4cf933be6b5ba430ef24a42579388bdc77ae38aee88389836b3096f1435f7cdb887a8079ba44f1f7b5f8c170eff43445f0e435a4fe2a291f1d6ee85 +DIST firefox-128.2.0esr-de.xpi 639266 BLAKE2B 540568f54d7405422b3a096dee282b69b77c72cf1195698c996762364b5fbfb845e7cd9298596e51e942330cc2ed8020bcb2facb544ab5f3c27e7553bfc36cf0 SHA512 f1d3e6c215830b964d093ec484732c100d2fb2b54f815e462fe8665ec7608bcb969155df8d1ab0ae556513d58ca906e02b1be9ebaf1902ccb6e41b169eb6bc07 +DIST firefox-128.2.0esr-dsb.xpi 656622 BLAKE2B faa31d365e4b25b5aed5acb01ec2724dc43ee859aac2bd7dfb832fdcc080e1ceda16e793450295a3167d17e236c244dd8522c809eb9e2015563683a43c4cdc35 SHA512 0c25b972d6fc0bd8a5c3610174281e2886b45e660c6b788f8263a9b85ce0758a1e2bb0c6e4fceb0f9033d3a64db90ac02cca65e2ab63af11a4881de1c2b33c45 +DIST firefox-128.2.0esr-el.xpi 741108 BLAKE2B ed21c5bc8a104f6002ab96fa2d1bcee0ec93ab9e3b6990834839b5b5c98d3df06bf237f6cc6a5e3a3eecd2503e33d91f7b5f3babfa858ed4de77348bdf6c2a6a SHA512 ec3b0063c15587637b2e6d58b11a6aa8ae775cca51c53f3e3a88ca3da939248bbdeb02e94027e4b7b55baae05c4106f3c2172781e397fff56569eb819fe6dded +DIST firefox-128.2.0esr-en-CA.xpi 590919 BLAKE2B eacce54324130d863dc70990c284737b8ce1ccebaa67726f57f042f6bb3b83f3ebd31acccaa3e61869074f4cc46ff71ce5ee57b2a831dab4160e99446e44e02e SHA512 83b02b2b8ed6e76c1c6dbaf7570d3ba71c75ec7b253248200ab445ba571a741c3ef490025ea1fcace9994de94e5f80a8d74c469b83bf1ccf2df48d7b4fed05da +DIST firefox-128.2.0esr-en-GB.xpi 591530 BLAKE2B c487037962e6f3319dc2094f96fb057566148316fa2613e8e9c520771fb546b58ca290e91c20c295d1f1e4b53cdf150fc15a64e00b08e587795b9e2e3dc82d9e SHA512 6e92e43a559ac736ede9089ee6929deb04cb1c00e296398e579fe1f6e2e273649c1961cd599c6d6aeee0a2b75daff86bf0f7b469d340e7bc6daca2d1c3d78dd7 +DIST firefox-128.2.0esr-eo.xpi 615506 BLAKE2B b6be4576f6e8e661e084100547115faf9d823f3a9cdd256a136bbc052e51a05409591d3ed5f378bade142331840ef01e99ddd633d360afcb980199b494cc1fc8 SHA512 9b7af6122011f922c8306fce5dd4e0fbb2afa2d8b00c08833087cbbf38e86b313c5e9b594cb9f137f5ccb4a33fbfe6ec94a7329656512f7a39394df6f8356913 +DIST firefox-128.2.0esr-es-AR.xpi 634653 BLAKE2B 764ccd63612f0d10f9efc920945c5978f809b7e2fa6eadabd263a85d37946a59211c417ab22c2af34e7f6725cee554876cb456dd9ed2b9f534e855d91fc9ac1a SHA512 c68b83ff1118a0999faf3d17341f80c73307e01e594be163e1231b69d3e5180a6ccb0084ceb00bec49823cf96bb5f13d1ddba73583590ccfceb120ddc07fb699 +DIST firefox-128.2.0esr-es-CL.xpi 634136 BLAKE2B eb8307f7756ed19bb6fc5cfd043f7ac946aa7302da7363e20364d5d012b159e0fcd026672b7d666efe8f1a4e4ae4f325ef6c85c15fccc8cfa30365719d66e5ee SHA512 a542f65f22873c09c0fa0f9afa80e69f997f1693ab6420977ec71a053cf3a7631552a538e927511e753556c08720bc4bbb67fc88c3f1b5143e0e3721102cf22a +DIST firefox-128.2.0esr-es-ES.xpi 622027 BLAKE2B 95a3e27ace81c633711300b1579589c9a03f8b87266a6312b4b009d072abca81d89889d4084ee75a50bf6e8e566bbf6091c41a59ad9f7304fdd06509e3f514e8 SHA512 2183fd66929fe418edd1b86c16b2f2d910fb141407ed2a20d86002fc0cdbdea385f6cf6012f0982d7a863ea5c7c72d199ab312b59a9a6b0acbafc5640650a1a8 +DIST firefox-128.2.0esr-es-MX.xpi 610639 BLAKE2B 0592cdfc5b9c29f7d9294e76a6cb0a968bfd45ce37b888e4cae56d90234ff33feb2d42a30ce474616724994a27dfc1dac305bf797bad1d94d976d304af869810 SHA512 f4363783ccd52ed042f1a4d97c8d96e799f0ec67b303627ddcc7ba397656c3f14200eca1b731a0e1ba3ca1c118a177dd4103f7c9f9df064ad0ee542c9c0cd21f +DIST firefox-128.2.0esr-et.xpi 540637 BLAKE2B 12c24fa32eb588245f2e552a855a9af486761e1358e380d2d734862b8f48f043ea84e219965b5c5b7aaa9a1a0d4f8abdb4947f2988512108b61fbb1a592429c5 SHA512 ae8bb76206803313cf8eadc3e794f5be13beba527166965cb30f7aa33809deadd8a4a5ac805523e129f0feb198d9239ea4d4be709d6ad8d1abd856b6c49019ff +DIST firefox-128.2.0esr-eu.xpi 601114 BLAKE2B 94532229dfe560e1eb01dcc6d3a22c33e67aa28759334436b47715477f264430e196dab25d19d0e0089a822b343c12c23eb6d3e66da4de1c3a35e8f60652e4a5 SHA512 ee95366c8e79895d89710c1aeb791064aeee409e4fbbc6935d552540ba6d7e0a2552b7f2f1da89fec23f91e9dd684e9a78a5e96675dc40218cc2a35758f8d520 +DIST firefox-128.2.0esr-fa.xpi 590957 BLAKE2B af0a782804463e6bed41a4b75ee0207e80669841eaacbf0aef41a3cd8ef2958546ee97dc4b1e5270fe1db6b26aea34b1b3ae76a49913e764911fe401bdb1245f SHA512 c63af3bed58982c29b55610f66939e7464e11ba8a28b3a66777b1c2c5677cf171f8637f3ecd4513afc7661fa3279779851797477b2f01120a72b54b2a74ef611 +DIST firefox-128.2.0esr-ff.xpi 477004 BLAKE2B 80fe9a1ec25cd512daf3a54d6a84e63e4538e51372ae55e81096da8207ed5c29ad090dd4026f09e001c75e74d1d8fe75e0723c39c66d0ea7c0f4711807fc0d07 SHA512 b6f6cb712e98192dc2dbbfb5118cdc6aa450378e8a9d6292ef1c38260302c507941862444214fb88b9a2e2c5d35e885a7ac81d1872975a4889f6b9bb5a1f60ac +DIST firefox-128.2.0esr-fi.xpi 613340 BLAKE2B ca22ff04b8f70e7aee2809f407913ab2f32050c1890d9ef6ded3dafb9daed3419c5139c1c6d4aeb0eb97fda12b6361eecb0e1702c73707e646d0da4fa35da96e SHA512 25e674d343b78e0fce174d897f7692cec5717bc10285ce83fa528dfec452c8358930622ab2d5f3e54efd1234846676677ec8026793da374ce44612ee55b8af88 +DIST firefox-128.2.0esr-fr.xpi 646209 BLAKE2B d3eeca16e0d20bb5b881555a6688060394e6ff686510fe1e4aecdab0822d393d573231b65b4ef64ca88ac150c558b57644371a60555841192df4ede33e668c31 SHA512 85b5d205b27fb696f8e8fc5ed9ccd7607ea8b93045c415172e4779248051741c9dcc3a1fa9675d5d89047f70a38551bd240244b34ebd40f3327930e8efc083d2 +DIST firefox-128.2.0esr-fur.xpi 640939 BLAKE2B 1a2e29dfee505c07d4f8e6c8182eeb3d224de9ec844e893bd731be82a99e51d8b9a79f37a2cbabfe50d400dff21f52c3a68fd00a353feddc6aee21aa0908e491 SHA512 d0c2cb70207885acd9923ea227464e19bdb8da0c767ec26743b551ee8f9cb10023578a023cdc0e05d4f8977ce6170fa0926428c2c026445dc548ebcc4ddab2a1 +DIST firefox-128.2.0esr-fy-NL.xpi 630346 BLAKE2B e8a3d6d2e03c798bb71b4d346a510a0579ac25b884c92f637a6807591b016a3807ac46d9844974b889b79316f2bc07b8e64fa054e3e7453c07b956c2bbfffcaf SHA512 5dd70c7888c612d6dbbab99a4864187e0003537eb267c293e297591efb896c2510ce7160b836622e9f4bddfa8bc0831aed95c8c5053749e2c0fde9dfd6e32f0c +DIST firefox-128.2.0esr-ga-IE.xpi 471840 BLAKE2B 9aeb9318dc067c1da9b618fa7cff37da0068f63f3d12f630e329d16d2b5ed8da73df5825bedd84aa141b05d0e2a06a45f6d57eaa364d1654706e63ecd46f7c9a SHA512 ba17302c32241cc959f20b5b4d9fb81fb79ae4011caffa97b6d26a0541eca41d0a31e16815b9c15b483fe925ae060b0aaca1985f94fca18375750e282c033f1f +DIST firefox-128.2.0esr-gd.xpi 597538 BLAKE2B 9dd9f2745301f8f310f33a190a65a20f76b4bb1c000fafb5d69282b086944e8731969b28996375e38e5fe97597e712021019e93fedfc7d2de9df519d3d42dc89 SHA512 42304ddb1af2bdc9b4f7e4ced0867004f203972ac454a597b8b50ddadc0ca3be8d5276ea8df355e1ab605d20b626f58129cd538467087bb99d3524cc63c77544 +DIST firefox-128.2.0esr-gl.xpi 605038 BLAKE2B 2c5bb207281eb993317336451c9f9579cd64dc4cffdd52ad19dcd0d9cde97b74240501623a1bc4921ed34d1239e5bf87347c466e1fe4da75cc1095eb08d018e3 SHA512 a164ebdd56d88834ac79ab92ea23cfc840cf7cd808008ddd68886374e476e228f9562cf8452d012c17b48a1c99a963da352aa921517cc2e560915b05fc99b388 +DIST firefox-128.2.0esr-gn.xpi 643641 BLAKE2B e61563bc66ec0ba0a71eba877163b670e29d8d3bf2b782db166d71af9bf17ac39b151ea9c4a6f00daf560400cb02124e2f1b43dcceecf265d8d6721c97c32f92 SHA512 7f9f0eb9771f05e921937d78519e0f03a43fff450545fbc1f7dd19cc01391b0b6918022bac1fdaabf3f3637b25333fcfa5a9081ec54eed7d6ae79d713a4a697c +DIST firefox-128.2.0esr-gu-IN.xpi 528311 BLAKE2B 6e9335f5167e79ce9ca1cdcc628615ea41f03e91bece3ba6c4b3c4c235a0ce1fd9cc502400ae53aa21e8ec7b2c50dc4513ea2b90b7fb8ba8766caa82f1f65e0c SHA512 0dba09b2a209eb3d9bc0abdbd108bd906c2e2426b75dc961f828883cc0be44e61e730bd6b030f6f66de7452afb5a61e25dbf68de4e362b5d29bfd6392ff8fce6 +DIST firefox-128.2.0esr-he.xpi 637789 BLAKE2B 09b9ce4818f609bb14e4f7647cd34a6082e2411a57cb9dd7d5a7599d9adaa964b551a543da6f05a6ea63eb4046fa79634b5383a414d09eabfc6c2d52fd7f64d3 SHA512 e271dce2a47ef65020cefe41bb236ecfbbd0c0b0d558d32377985b7f2c8608614f58429430e54309b2a4754dbc66fb96b032b08efbec5773a359387a54786fa6 +DIST firefox-128.2.0esr-hi-IN.xpi 567736 BLAKE2B 38881624b5793b8b6a9d352bbe9ac95f17128a31a2e666761f341d83a8c77619967b2382034a59eafd753e38623c315a87c2805048232be1e435d5f86840fbcf SHA512 1181a815abc6a258798251d62e200c9a2c36da3ab1256899e86972a47ba5eddec9a080ef7d1cb4e280faa5419125d670c9f75a4f8ebe21ab7d6390d0234660e9 +DIST firefox-128.2.0esr-hr.xpi 615348 BLAKE2B f302229dfafa7923af9339c196b9ef6267e5eed846fb09d9e1520fa47cced0c2f13bc3c891118a9253cfaa8d1c6e666b978ee27b1418bf9208340991c70e586c SHA512 ed7b53d4e4266ea24c864ad83044d60729b75a1e2a0a6a2350952309b337e6461ea44f9894adf232512bec49079b375a48e1117db01d458cb28ae9e1e91aeb87 +DIST firefox-128.2.0esr-hsb.xpi 652642 BLAKE2B cdf7e6541df09fae4a4d12b0537a5ef9538384c1a92e48dfdfbe37ffced85bb576391e8abc2702fdfa65bbb3b1515740aebbd6a0a61027d84e1974b629acfbf7 SHA512 ca993b1e2d95fb54b5552aefbbfb6ee511fff898f01c5bc45c542b3076fa20211c5e68d0c7139825bab260671e7ced609c394dad9e371cefeb55ded6ca3e0cdc +DIST firefox-128.2.0esr-hu.xpi 657494 BLAKE2B a4ccab55a678d878621586026bc34ba7d67fb48db020befc9432be2404e71b1c3206fa4bcf791ae7aba839e2791a17d2d535481ba5a284878286a24a64518b37 SHA512 0c4566a47237e13c8aeb5bc859b65819d72878365a41320311f6afdebb778f2f2cee7778fbc01763cd99cd94897160a2696a94c71e01df2aec444b96bb19348e +DIST firefox-128.2.0esr-hy-AM.xpi 652579 BLAKE2B f9116e2d45ba205d01cebdfe38597e72a3da56ba529ec82a1c2a2c63c9e8798a879fd229c1aa5becf495aac33dab116388f817afbe14ccf3b3524cc2ef2b151a SHA512 657681a0725d89886690b832d985bf59bc7163521a81da4a3b253a0bc66f598d305a45092c655562d61632ca48c562d8366dbef9f39fecea96778f7dc2506848 +DIST firefox-128.2.0esr-ia.xpi 615359 BLAKE2B 3807846bba513bfc0564f3712be5e93dc5f5a9c7378a152af7dd56a5d6271894ee2bd60255ff26c979c67968c1dc8a1e2d53c3c4222e248cf750c93f691bb20f SHA512 2567f8f3776480882fc7cdd43a6a23ea980806ea6bf738c6d84e18cee28558613baabedc692b1bc0489c9c93c9a5c809167b5f96f96aff107a9996d883856eae +DIST firefox-128.2.0esr-id.xpi 585709 BLAKE2B 5349e576eca2e00af352ec6c8a685b4d2a930b70c33fd60cf8569820985664ac8de3f580063126ec340fd5967ec4ef212b04271d4a0f3218729bfaa08da228f5 SHA512 66f988217ceaa43cdf600e36be136e063edea6bffc573c0b39cfa67fed9e1b1d8d620dd9fa1478d78914a015338bfd02e8214db916cf79cd08f527510b67e09e +DIST firefox-128.2.0esr-is.xpi 619078 BLAKE2B 54a0d0d695438bd6be120b6ab61ebcd048fa439e342d5cbda1c437a8d69a5dab2dbcf295a9e47c3d430a7249058e880c99a2661d8c86205902930caf376d6cc6 SHA512 2feacf83bb6c0f8f87e8294ada857a3060419449bf34233c2af2a01bd84a4916d529ba34faefebc90dcf23abbd1255dfb98a87066782b29b67a885beb574207a +DIST firefox-128.2.0esr-it.xpi 574457 BLAKE2B b9d6aa31442cbd73e5f328e136b45fdebdfc2881a5072caec60609257a2e0388dded259fc9fc0fabebb5320e22bd731aaa9ffca1d5514a361c7b887881882deb SHA512 db880c8fd054c08dbf5427be39bfbccf6a11f4192ba2137e00e792bf3ed2138b31164de3fac9af78d2c751809f8d496812b9915b2dd4bc93abdb8587122de6f1 +DIST firefox-128.2.0esr-ja.xpi 683774 BLAKE2B 305bd1fca5745927fc52bd6c29b1497b5c6a6b00926c1f8b7a95bf77d47897a8adeaddefeae781a9f0f10a8172ebcce11c1b1193857e16b540fabfd73e68b9b5 SHA512 f1e5bf2cf5ce8eedcab383d2f691009a561e16416335fcccf75fabd95d228aa25aadeffffcfc6ddf2f2a73be8b23d36afeb98ef30a94e3f79bdaf784c0fa6218 +DIST firefox-128.2.0esr-ka.xpi 661655 BLAKE2B 84357ff5ebc44125b7a097e229a71eb104ee960a0630fe454c11baccab20c66e4a2ef9195ed6bb46cd73b4f1acd047e13a4c4b87d0cd14e5d02d7b79cb6001ea SHA512 7b7468fc8634e20a2a1f7f262c2e624b0f5c45c1aedde30a7d0a963002f10d2e3385dbf9cc94a94253e748ac2d89d2f99ac8446f22d42e573f44c18d0fcc64c8 +DIST firefox-128.2.0esr-kab.xpi 612142 BLAKE2B cfa29707cd1c249f553d7ef495b7ae591c3e09441998d36ee8436dad932590b42f180af474ab29acafe4344fd4bf51d137b7ea9cfd9ef1184e70ec166bd9b37a SHA512 43ecb078d97fba83dad71cb284db809404943d3bb1999fc755acdc2d29a84dfe047f23b5357c3f9eff638d70f325eb62698a57213406020eb9575199cf494d60 +DIST firefox-128.2.0esr-kk.xpi 715705 BLAKE2B 14abda57a8e75b8a4275fcacbffab2e138e8b0b22d64c58a3327f9692db3a80a630e11912be906bbd073e419453c1d558e94c4dd80d555d20e2fecb42987311d SHA512 93f8560501c830faa25fc3cb697e3e28296dd3a67298dae68cea75f6be59ee5dad95153b513eb0bb93e129ee8ce1d4fc4f8f9887245e1156e711483fa4a1f3f9 +DIST firefox-128.2.0esr-km.xpi 526704 BLAKE2B 46d8c5804c04e4df7e409f4cd9705c71169800e7a63c71f713771643ead53539f586d9324b9671cb748a59df663ee08a1e71918a0d237e985a639d8e29a5dae4 SHA512 8c894f9aa95ba2ef3460560af5a001bf3511bde6ee961db33a01667c8a32133a2316fa2908bc92b30fb290999582d8d79dd39190126ab1592d925f687c4b0a1b +DIST firefox-128.2.0esr-kn.xpi 492069 BLAKE2B 31ce67d4d3da710c2dc93f9918ad367567dedebbb5476c80e9d90dc66bb2a586ca3ee562c5da1ef2713cc7fc78240d60efab0ffdc61a3d7e83abdc861297c029 SHA512 dcd4edd6b64f482bdd98254d83a34b7e332afd62c4e97dd0de360a71ad084cb5aa7e12dffbce49a27b68d9d5b881e231005592156a4d7a49f3c37ef7b89342a1 +DIST firefox-128.2.0esr-ko.xpi 668819 BLAKE2B 1855b9bf73f05feab03f167a6f5d32d1fc70c3d02d5c46e5253a415ad779ad0b4aed567985b42743b7a8ff1f3e67b2b0950703fafd9f693c64221d9da6429ecb SHA512 36a1da1fcf63b45423e578bd2346d8e01fc51e7f740ef21082d2d3f9c49cf480e8208e1e42f5cfc99fc911ae59854fef241009873fdf9811c906938fd285c648 +DIST firefox-128.2.0esr-lij.xpi 485047 BLAKE2B 572e5ad0d33aa885b2033f67eacf7b171688615361c1941fcdc2c4fdd9e2c4e647c51b22cfc4268586679976cfeeac8d4e1d65ebbcbd04ee878bbc0cd056ad7a SHA512 ccc5d837e485d42fc12405642987fd828c86e438c70d70ad075a665bbb3c81a6ebbe2a6f660045fea13c1bb490fe0c5353cd5a2623ee14cff6a60edd0b3c308d +DIST firefox-128.2.0esr-lt.xpi 573642 BLAKE2B 0275ff8e100ad123c9e53f2278f77fc6ce845eed16f57dd265f8452095ead916ecade8abd4e9795d73304c0325bd6eca7d62ec532b8a6cf6a74c60f232bf2412 SHA512 ed7ab421a9c6f1447525e3622324e0d97cf290b67ea132a49fc2f94207c69a0b93bd0e4dac1099dd12802b20ca2d102cd1aafaa2f8ff9d846577b14b3d43d443 +DIST firefox-128.2.0esr-lv.xpi 584340 BLAKE2B dd5986975a2b7912a5612a5b547f927582aa5edbbe9993d32ff053e2f6fd321c523806685e136c8860cc30d6d44e1c61e0dec17d0f4a11c24d3a49b417db1464 SHA512 93d0c8a3a40ba33de1ae212534eed4ea318f6f0ade740f9b4f58290534c2be28598eaf7aa934cfbb83c27f1890b614edc59b186004f76617248b55b8954541c4 +DIST firefox-128.2.0esr-mk.xpi 494673 BLAKE2B f26a42c95c613af468f027120b0c38ecc6ada51a6fcf64ce84e8a42e650e236531d7f72b3e94fddbf0f317dc9c6ee73fde88d3fbcd42d8ba12bcff81d68414a7 SHA512 672d1704b38074d2c716319b1b06fae8a8cdaa5d0e27c3c4705226d86ad4741dab028afaf20627f8cc8b5cc6201537e5eae88e5a6fba290711af141acbd48f05 +DIST firefox-128.2.0esr-mr.xpi 533051 BLAKE2B 0468e82ecaffdd73b5b56164a902a83971d71a333ea34d95089147aaef14493c4eccb1b44b2dd4d7b8310112990a512abeaef42d0544cda9ff729ca27ec1a6bf SHA512 97b1a900a06d2676d91506d2aac53c9908ebe5a0605990c7ff7451e6e6ee3863067316988393341fbbd6428508a27362d509e843f23697d74dbd96ad3f3a5461 +DIST firefox-128.2.0esr-ms.xpi 450664 BLAKE2B 8a72e63cf0a067b3bb35c572b4955046c72667cdf0f34517ec8125cdaada61150a4195c47bd7706348d269c6ed18d42a05f4da222e19556df8fa0edf1450f2dc SHA512 e6755fb932bc33645497775e80abd02f0a471b12d3ffc914559eadc85ed37c0976e097c036c70c650ea2763ed294e427411c3be696bf7d687a61e90e6708ab9f +DIST firefox-128.2.0esr-my.xpi 519448 BLAKE2B 3ac0adf460518439627c2bb94325c40a328f548090105055b022bf6a5ff140e3de174ce21f31dc9bc3de6684be43292ae6af0b222fc05156c5ea55c0f87dfb1d SHA512 4374efc78b9af35eff75f58ef78bda2c0dff79864362e242a0d3859c10a65d5356d564c6ce715c7ba7d0569b997736c72d7bc9e09b713816e297841bb13c0c1d +DIST firefox-128.2.0esr-nb-NO.xpi 613393 BLAKE2B dbabf5089d6bb9256cc9cfe0bd13b819ed29385d96c2a5afbab4e937051ff64cdf243cc3d715e4eb8684e66c1799a1707e2eff4d300592999a5aff7c043072f5 SHA512 53b2d1f4d5f75ec611e2865f7a81a26d4a1e74ec852a9ff3680ce587463c90acd2392d113aaf4d5c7915bdd35d12b3c8535a87d97f5aa6aad18df84333053ab2 +DIST firefox-128.2.0esr-ne-NP.xpi 515342 BLAKE2B e7bcdf670c4d5f0c7722f282660fc304447e58048e110dcacca1fd955bc2bd71dbe136f55e99b8505404992ee7280c52798b6210d239617d0141e713c3c470a9 SHA512 e62e660caad1b3dd07396c97a29e207cc0864c6c4e08ffbebf55fccfa6bac419426aef9d4c278d72e6c4682ea85e6a8cf98294356ffd1a631426cc90572c4f01 +DIST firefox-128.2.0esr-nl.xpi 623990 BLAKE2B 29c2b1c34365b39a1ae6a3f9528deb24fa8c6e7e514db12c52a3c7c87748c533f6909da30027b5451633c2bc5a3abeaef65a0aae4da4d33cd0fdd26ee5b3407d SHA512 abc32055b91b806d0b26f58fbb3424c2fa7f3cb2fdb4c6fdbfe81b587dee39d9e69d546589e49ae058f806134f3b3c78975e673520615a7e5f4013e278085d5f +DIST firefox-128.2.0esr-nn-NO.xpi 617333 BLAKE2B 0b190cf732698d36648b23969b6253eb9af420f348a295b06464528dcedfdf479ee93e7b28f9142ca5004cecdf134ed1ad6d55a6e4f6db94901a517f3348751c SHA512 79e4b38347afe93413a8e9125f248bc6a0ee07b33f772b624d4b75282cc48dff89027fcd90ce54da91ee414ac91de983dbb6a511b5cdbc5c8481e76131a75dc2 +DIST firefox-128.2.0esr-oc.xpi 613834 BLAKE2B 6bfb9df2b1d3cf7814d790ea74822ec0ee3184bf6446da361352730e6bd842bd017ac291aa0ea8dc9ce18a7922f06e0adf7acd9200263049a25a2e3e16f57459 SHA512 55c7736eab5c2a87bd7f1f0466154ed1f4a6b50556f6d8d730070ec9bc9ca867fdf9bc301b87a8c3ecf3e918b9ee8e8d14cbd2c65943d3b3467b4f52a366ed14 +DIST firefox-128.2.0esr-pa-IN.xpi 697916 BLAKE2B 99d73c908caa19e2e5c08710263efef7430685a7ce15b52470b7a05ec7113d4cf39085716f4e4decfcdffeabee5a555c44e753d72d56f7d62807e2ab71d8de43 SHA512 16d362b213424ea92846d2088cc05aacbe27e3fbdc825968b68add8e956e3edc25dbca67daad0aa6d6d63807648f766ed5ca488803eec71b8690b9c4432d4cbc +DIST firefox-128.2.0esr-pl.xpi 639651 BLAKE2B da262755746f8011e90c583772ba3e871a741cfc0fc56e8bad8d3d3707813141d6c33dc6b3bec27d1543afe281cbaa2f1c21f1256514062623fe662e20e16bd3 SHA512 54069bb979c4b046bd5a3a1be37bb76a7c3646b242733f6644440f8c6c1691974304d2f724a3eee47f3edf37c6e7fc7daf9b0738d01dd55723e3651b0185d33e +DIST firefox-128.2.0esr-pt-BR.xpi 628970 BLAKE2B 676cd8b4a844ba42523f0ac50007d361796f36bdb81d0516145750ed8bda24928d58e04657164793547696e98101f9ee56c6b714d49ae1df26be49daa4b4d3a6 SHA512 530a16c982e1c24b2ad60898f8b2a09a4065a7b4fa18f481f4965bcec2824e3cb19c65b7a0ed2da215fe5cb9f6fd700be27b03bb6b3016077f7f4da6c7d408b9 +DIST firefox-128.2.0esr-pt-PT.xpi 629945 BLAKE2B 4724719ce5cf59950112d559679f97d97c9150ac71beb826066af4da1cf82c9980942bb39cf1937602590109ce8db8d9b0bb3a8b401e237a0af15cc7d0499088 SHA512 b2ff671157019dc66a44ee52b7bf5daad6412b0295e6836c63e4b75dd32226275e71905c22e141fbb51f30913489d92ab212fb735c9c160abd736b07c7e90e70 +DIST firefox-128.2.0esr-rm.xpi 619532 BLAKE2B c8838ad295b07b859f52a977539c7a23bfb6fdd58d331dafc28a1cc8cc00f8ddebb0003d89515c5d6887c40360db393e3e36c836a87373466781907af9070fd5 SHA512 807ce9c606de457f5323ad48c37f4eac14a3f17ab103982449fbc3fb00f1680cb2fbbd6aa08a2ad9086771c17e8912cf58e87726c03d58ba841c59b09527c362 +DIST firefox-128.2.0esr-ro.xpi 550737 BLAKE2B ed6e51156ca30dafe4fff0e487095fd2f61328efa05ca5be566238617789db0c9e48b44664ab774ca7dab57d632468cc664fff21e23af60559108dfbd2aa9e34 SHA512 d11ac70543c25e05d75b8bbb060dc61d76b7b3db580c371c92bcfcf600ffa4d2314e61456989961f490c3a351b3e9bb0e8de97b85eb2b5c7d0acc91cf0f7472a +DIST firefox-128.2.0esr-ru.xpi 728469 BLAKE2B e1a4ee5a5a3713775e02337ac2703614b212e08d2c18a1ef1f6657ca185f7eb54bb8072c8bb6863d4a60a23379fe48b400b51777521897f1cf8da24e326f6aab SHA512 a0fd618808ea2618b7a9aa91a542b67a756142e7db998f72494470da6b7317fce117b997cfd88fe1754c0d98e30dbcd787f0d247e7b0c9c93d774b3c47711586 +DIST firefox-128.2.0esr-sc.xpi 588769 BLAKE2B af42a9beada81fb14968246c381f1e7265382087c33b890ed9e3e156592c281d5d531424864f8b6e954335050978bc6e8d05610397e8899ed5ba30d50f96537f SHA512 df1236340a148a9e68d3de33dbab3c744d85a236402edb4f5d6173e7efccd18e15ea6506cfe660d5bb971676124057151f27ac6c68301f368446a491af7bed9b +DIST firefox-128.2.0esr-sco.xpi 512222 BLAKE2B 12479059be1a8a6e68495b741d9e47cfaa81fc681812d49c886add98a8509b7c82795627188c419f58d146fe528c56849ebdc560b108776d8df38e5507cf249b SHA512 915cdc9e164d67afb4802a8f462e07a1b54bfa6d8c1ef8a176fa3dba6f5298cb56aa97ef1cd35bb3c7c96c4b3cfd8fbacdba6da72e329ccbbdcc464894c9862c +DIST firefox-128.2.0esr-si.xpi 614271 BLAKE2B 6683d541e613a6a1bb38c3851a506a7d1b488ff6e322a2f13d225726325acaad01a695dad930a45b28f7c8dd7491fc79bbfe229e28cd8907312381747e60ea8f SHA512 2ab355b69cdecf7477345c6ca66007ccc5d0ed8cd3b1ec4c50e781a9e373a27d92772c5cbdb61254efef0598922f42ea52ae4197143ee3a284daf39b791d2bbd +DIST firefox-128.2.0esr-sk.xpi 659877 BLAKE2B 6e645f0ced95c99ee23bab4330d3c2b0aeea689b16b8c74afddf2efc2544f24e313be7312ba959fb8e830ea17645b95dfce69fbaac8dc7b269733443bf622613 SHA512 357bdb4751c53f5e35de22f11fd36c50775e1d59736000568148f27dcbe1ec33c48f640b726c9b02a79d2f5268736034be9f89c20a5067c55a531249e63927b3 +DIST firefox-128.2.0esr-skr.xpi 712006 BLAKE2B 38178aef30a77647f3821a2e84b59c0b9ee5a47e7c904fc84b2545fd748f5e51bbc67925bac9b1c72798ec5c58eb39693214b4d76d1a85f6acec65503b5084d6 SHA512 c0bd866771b7d6e8959b641b3279706ecbe10b542fe26c5d864bbece17eb0f528e282d0ae89c2e076955e2afa13f92985d2a4782ac33abe789778d3f8c8e1e75 +DIST firefox-128.2.0esr-sl.xpi 620258 BLAKE2B 8c6e6ab087c3e48f4e0ea90c811c3e75f2c6e10f3dc45b57308d26360b82ce885e98be7d4da12e686a60cbf09fdce9e7b78dc0d4834d9f197a87a398f474dfaa SHA512 857fdbce80f9efaa419e87203f4346d470453a5f68cca18e0437bdbc0e7458f14e1e95cb2b5e0f5320232a1fac0b3a903a6d584790abbca9787605a83f131863 +DIST firefox-128.2.0esr-son.xpi 417219 BLAKE2B e499f08a154ecff0963adadf6e8e3cb07c8fb3e76fdcf7594b843cb8192165d9bca8607925d13eb1fbc92633baaa6d7892d9717210206262ebb63d1d1d5af0c9 SHA512 ab5f1dbdfdf61b4b49a9523ad417523acc6ef045c104f4af9ab3affa322a0cccda9dee469dc75cd648c796e51e697c2c11cc2300b310a283992bc2221be23d07 +DIST firefox-128.2.0esr-sq.xpi 638610 BLAKE2B 7dd2fee860126ad961ab83649c6993c7433be1b7d2a90c99537908aa168bbe0b0483ed21e4d9d6accf182ae39372358da987f8804acf6cbdf60cce82456f9976 SHA512 e60570a45ca423262c40a34a0d7ed2e3a8494ba7ca87d7e7db7749323372af165d86e518c95972c1e632678fd21e656bd0ce9565a50d70e4c2cf221d262ebd1d +DIST firefox-128.2.0esr-sr.xpi 640303 BLAKE2B c7e1b321433e77e75e2ab20df6a8d93fb40ad441e3b023cb34eb16d3e4bbb68a1770ab32626b75d5a8734c9297fa09dee4b02ed49f5ae72f79ffeb49547f3c5b SHA512 10b9e0960503b51d25ca4482bc30b286987c4cad608686d2575042057e881641ebe3961ef4b67057728ac25e1a8e8e3676c7997e47bd9e539c924786c2680d5e +DIST firefox-128.2.0esr-sv-SE.xpi 625704 BLAKE2B d39240d2b595c4f1a07d79782c04f8d3a8959527554ce80deef87f0da6a99775e17fc84d9d4020fe597f47c281b08a0622b780d6914959ffd2e5a3398d845a9b SHA512 0b2ba39bd696213a32866bae50b51522fedb8b1159914b0c67e92894abd16192f71937fa84ec9b21e520d099e09dce6c9b165d7725cd45f364d99a3296d6c199 +DIST firefox-128.2.0esr-szl.xpi 527336 BLAKE2B 54dfb34d1eeeea2be05326b88d576a309759ab6915fb8e4978d60542d5a7c54b37336d5a4cf14840a4c0ec14a5ac9d1aab799d4878a0b5e96aae7f6edcea3b01 SHA512 5613ee2d332cd235964d949a7111505374d8c3bb9262e5ce3a9f499db383700e86b33410ed1647adeaf1c63a14aba30fc5b3414a7dda6e4a9c06a2ca2e59bae6 +DIST firefox-128.2.0esr-ta.xpi 508338 BLAKE2B e6157c1b8804d9f4a3df96da1bf5875feea25e2c1f0a9a4ffb9001de9e315cafdc48d46c92737015ace07429b585c07b075c10fedf53c6cd053bc516e481d007 SHA512 3e33c7be34a9e731362588a9a6577ccef65b9e6b8da0f5cbf91cdd6246d1e69e7c894d850e46c03cebbab3b150c20def6ae7c8e67f7dd88dd20acaafa2768daf +DIST firefox-128.2.0esr-te.xpi 561989 BLAKE2B e71094282dc51e0e22d6a30f752efd977891cde9bd20bddb6ee806ca819486d18f73972414e431f1431a3a3fc6a3ba24048b73f06e1e803c783a4c7cadae403f SHA512 7871051b85ef4603f0b70c3eeed0554d14dcaf58bb68a9532a160fcc5edb6f4ee72f551b9dd3cb6edc430e140a3aff0eeef212dfd33a6d04dc59fa49e2e5790e +DIST firefox-128.2.0esr-th.xpi 699560 BLAKE2B 262f81f2a972f23de74987c6c4f7f1abb3bb0a58ad2ac9d58bd8f4faf7cf21a80d984ca6f55bfa6e28537aa1ff0852b30680ca7675debada05885ded6ec8fcdb SHA512 55d43defdc19081862de57d85a58ac0c600ff3d4ca2a8e2b65a1ff62edc2ce888f275aab962860749cb80ff7f3e3afd177779fa3c7eb82187925e7b6e712b8e5 +DIST firefox-128.2.0esr-tl.xpi 535125 BLAKE2B 402f624b100eb0a9217ca568fb39cf8e4925fbbc6fe5c73ca187010bfc33371646c9eab140a32e7c5b77a3765dab6c285e400d57059e0deefd5a721c616c156b SHA512 e0b27a950526c12aee235a597353ba4359bdaecf65d1eac070465535edf55cc507a0e20aa2fdd12d41182d22f9547da239fcc6ab72228dc07ccc09dc8d7cd947 +DIST firefox-128.2.0esr-tr.xpi 639354 BLAKE2B ce3895f42612848dd8502d7bc26e6cda7ed6af5acf56154bc81622a0fb43e261064a609c5d3d369d25f7b4286fc9dfbfab5899ea28beb56594a37fe73179f21b SHA512 abd8b5b45d381dfac8465dec6d03ae7d329cdc77189ff501d80239962d8bb700f16bec0af102211d35f93c59464e94cdcdf1e2ac0d9c49e346ec00e26ad18063 +DIST firefox-128.2.0esr-trs.xpi 505308 BLAKE2B 43ebb6d081e01f2f19ea93326f12e55d09bf7051dc44c174b341b886784d36a491725daead5e686c765d5bf88bb4e1caa8f7ae46a5c5db828ad33aa5bd6e9e29 SHA512 27498d147e8a8210f356a7a4bec13b9ac56f8401680cb4b202d680e24a441840595ce6449d383854adb47ec86fc54291d5781229149715a4d9b7dc122d76ed9e +DIST firefox-128.2.0esr-uk.xpi 708236 BLAKE2B 6eb7793590b30a7f8fb87646bf5d360b8b2db194a823cbdfc4ba5264076966c21660d175832cacf9546d0e25c9b1f6cacd96306a67ba62736e2bf918fc6119d0 SHA512 7f84aece3bc051a4bc8f1d110adbfa6140e84bcd073067f2bfcf28b131312bcac481d2399b9b530addad61e5d74e4b53d71006019fcafa2fa168396b5228e93c +DIST firefox-128.2.0esr-ur.xpi 561298 BLAKE2B a7e5e158f05b2d054a31bbe04a2612d30b0819c6df168730e4d9a583612c83f23954d0606a09085950187761d2731543da18d83f9ac6e72ff7ad1ecc07898fdb SHA512 fe1db13e4cd8fa3c0b8133aa2fbdb3e7d9fd7cbf1263f8bd11cc107f813e9c1f2a8fffa6fcb90ae54222c56aeee71d54498e4e589408d2c6c05a95f215af7087 +DIST firefox-128.2.0esr-uz.xpi 479731 BLAKE2B 3ff018d97d47b43dd94922ecac370fb3b35fa0ee65a7c03e80454b1c9aeb696278f180cca64c0afdb46919b143766ea76407b68e27ff9107ff9e724c85f52f7f SHA512 d1c7d7dffbad956f23caa746959ea08161513470bd89cbb51e443530a6af3180c5eda8cc8b3cf92c5ea019bafec244d47977e1f68bd314e2e874189464179e56 +DIST firefox-128.2.0esr-vi.xpi 662722 BLAKE2B 3d807f971885139a5ceda0e1e4892418ef5c11ea6b9f858033bb22f691ce954afd89d871bd9ece4cbbda02ebf9af94720478e8a906b369c1d2ab11b4e074ece7 SHA512 4c0a4ec3c212b5037177569fa73313f6cb6252a033c42a3be087acd4859da655f48b33af67543150a0d316ceba52996212704b5614da2d7f9a215af5b369f628 +DIST firefox-128.2.0esr-xh.xpi 418005 BLAKE2B 64fd099e72391d0b761d0b932d6a64fcfa08c422999867fb74f09e154c267d9fb773d4a30fbe9344bd67d76b6ffe478b3800e2bad226681b9611acb8bf9b0ebe SHA512 826a3cfacde3c34c1226d4827173989f4f53a0cd01988c155b7b31898c6e2d598a03fd20dda627e20f06dab429612d8aafa3e3313241ddda8dad9f948546986e +DIST firefox-128.2.0esr-zh-CN.xpi 662335 BLAKE2B 703cd2d34bf9f71d3bf10029130e3fa0676eeab6477a5bb877d22dbe252f8026d25439303adf109d41ba2ba7fcd0a5096eb343387d29cee4a38a3dc657b71ed5 SHA512 0d1fec76fbb07eb737dc8a606defec8c28a016bbebbe87815cc922977c89ea950d3f0cd187215c6e319b1f028fab97e19ee8d00e0cd743f7d90775a99e457b65 +DIST firefox-128.2.0esr-zh-TW.xpi 666623 BLAKE2B de33858cff0cb04c6eb4decb4a801eca99223f9d4021ecc8ad1da526f5aab5f9acde107ce2844a7b235303639607d24b9c1804e1fcf25171d33fcad778b47ea9 SHA512 136074ee7581588ced7d8c2d596dcf92d9b2cbd0312fbead9f3fefaa9d28a294e2c048b1ec0e472b4224f3b17e1176ab1e99d677319c1f9c941665ca2e4219c2 +DIST firefox-128.2.0esr.source.tar.xz 560831528 BLAKE2B b22cf139e2bd5a18dd0a18d1f1a323f1cd4ef0773ac55165318f35e40f2f248ceb11938f40cbc82284f276fe7afc4e214193e48d48dd7498ea29b09b4ab17cc3 SHA512 9a689929f6f86d795ea2c0318bb78f77f72a552f40715a1108dbd6361b0dedc3aaf049f1883424012459899607067d5a8374d895564591ec6679a1ce80708d7d DIST firefox-128esr-patches-02.tar.xz 20052 BLAKE2B 1c5646e6111d400c4f85910380c407c0000efddd9f9dfc228b042bbbb38755d4a2003f5fe9717a13ec53693cd6fdb1cbf9822649e8726f165a9e3d101a8b213f SHA512 ab0e7ad443d0b5d0a44867c9a732681df3bf28b30a2e14dc7d2eb43859483f452723b614ff6e8f52666be3840d88104aa2c82616628210215e1765b60beb3ea2 +DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d SHA512 c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258 DIST firefox-129-patches-02.tar.xz 20272 BLAKE2B d7dcb68365ba8e065430c9ba782c98f1b39ff4210a048703fe6434fe2baeaf25e0db71768dfcfcdf530fe02eb8f5d7d5804d1d66c75386642ecf700ff28da2ab SHA512 81659f6960768dadcfd50994aa91f6794b3e9cdc371b16ad8e01a0f2d4da6cfb17864c0ea0cfbf1ae593a67a9c95e239553632f2f4e66419db46e7f5337b483b DIST firefox-129.0.2-ach.xpi 466199 BLAKE2B 102d1397136e012f3f4d9c1d2907828bd4b3e1f8da78c36ccd222ae39e2ce0000765a163d30c5f226c3bd823b9f10f72481080455d3b6ffd651eb1580ac88ca6 SHA512 261c59e806ca018794e6cf84bfea0df49985a8bb09b3c78c6c2be29ae8e65d835813e364741b4b636c8ce1c8554fd03c3c23f648e40415298190697559014dba DIST firefox-129.0.2-af.xpi 419649 BLAKE2B d73fae55bfd931f7959161e479c4dfcc6bc6a16e8e331d36ae5d2fde87f86a5dc95e56f4bb09406e947da43a76d1845b69f1279b1fd11b61ff1db980c079801c SHA512 29347cbe60a2b6c4e1740ba33fabd0f850aec3951313039a382349e36b701b8dbe41964479068f24bfa838542dcfb4c0f6486e0dbc5e4b46f634df299461e993 @@ -519,6 +621,7 @@ DIST firefox-130.0.source.tar.xz 568295588 BLAKE2B 9c7dfc43145e442d60f6971806848 EBUILD firefox-115.13.0.ebuild 39935 BLAKE2B a5ee41ddf96552edc4a346c5cf261e2f1bace515df4c7ff962ef1a2a95cc65bc20d6b09d368fadd0ca2111c514f310ac91e56d49260ac99e320c6a0707406bf3 SHA512 9d6232a69adf9fda97441dd6e46f5263fff17e25be47f399454972d4d69a895ebd5f14e91109174af196c158019c4b23cafce9600eb6d6301b4aa84a67560ca3 EBUILD firefox-115.14.0.ebuild 39936 BLAKE2B e32793dacc694d457ea7306eeb4493e0d8c2b3746a74d0f4db20bdb3323618f300ad866ceca9e85ffb8c75c05489b591dc0afab53e0a2ff00ea9eceaedfb5a8a SHA512 c9f7268f20624677f007f7797633bbf5e3994498f3392f78d2d6654494d55526193dc8b7dc8ee59807cb4be5fa1e3137671b56de1e3451b12d56af87dee57650 EBUILD firefox-128.1.0.ebuild 41438 BLAKE2B ddac6cf583726dd18d7bae4021a3ac6f6164e220f45f96af4accc604f36a383231523c563ab7fbe0ff1d41f5a7b92be5e3f809d3d7b91ad052321c56c05ce225 SHA512 a102354cbc15e30894fa59d5f4fa966810d5fa492d10c7caf6147ac741230a69c27d72816a1dacb2bc748f7e96de4c7ea6b0418656693e3af415e7cecea0503c +EBUILD firefox-128.2.0.ebuild 41031 BLAKE2B 01e89aab4fcfdbf6b05a05e79ddf6a31c0bd463790edaebb8a833f9860250ba7d0273ceeb69deb87b85e5de750826229b94c974b3d2c0360b9a1b7b246c54d75 SHA512 fea42865df029f090db7a1c793947e59d713dc323ea8c51d6a91c945121fedb6928feb3e9962f1135a786c053d94d09864928048497be910d6d64b9ede0aeffc EBUILD firefox-129.0.2.ebuild 41326 BLAKE2B c5abed4860e8542d0afb8d800906495936be3ac1f1cfa9e1de8c4ce970181afe740f02ca6447f2d2486c421a84c7bab18c930a972a01831360e21753da93db95 SHA512 b8500ba34ca68e5dcdd018d89cee27989cb17086f7aface4fac2650671f72de7aa084925bb813e0d8b388b71c365d7298d8f071c7525247d6d00d9f0181af8ca EBUILD firefox-130.0.ebuild 41307 BLAKE2B 25bd01bff4cd06fa108355cc52aa475b92b92c42365db25ba50563f3fc8445060e8bfc7822f7e8ca091e61de12fcb0f1fa9f8abb11f9b93836f25cab4ef5239e SHA512 63f5df796711941c2430b748894061aa3441c2b7dd1e2594887bc27cade19930add01dc04e90794da4900055112a75171c6d93c962f005752dd5373414e5c332 MISC metadata.xml 2597 BLAKE2B b449997bc096ed8fb7bde41a5acb8d9f4c1c8cfc9663c06ff603cca756e8868d40049fd292a459a00d80b4e8c3a74e91e29fcb04abe87277640fe65d070f0bda SHA512 703c7f6a2b46748786145b0973a7b8439e530c96fd7c50d773efac7d5d9bf74ccb4f0c252f2701459944f2b3ced22d3e57ddf049b9aed0c8f0e094cabddda251 diff --git a/www-client/firefox/firefox-128.2.0.ebuild b/www-client/firefox/firefox-128.2.0.ebuild new file mode 100644 index 000000000000..a6327fea1b9c --- /dev/null +++ b/www-client/firefox/firefox-128.2.0.ebuild @@ -0,0 +1,1354 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-03.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo" +IUSE+=" pulseaudio selinux sndio +system-av1 +system-harfbuzz +system-icu +system-jpeg" +IUSE+=" +system-libevent +system-libvpx system-png +system-webp +telemetry wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.101 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly, since it's not activated automatically via "known arches" list. + # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), + # bgo#937867. + use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # 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 + + 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 search-provider file." + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} |