diff options
| author | root <root@alpha.trunkmasters.com> | 2026-08-05 03:04:47 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-08-05 03:04:47 -0500 |
| commit | ff03324f0b5c30484659977ecb3a56e73f5856a5 (patch) | |
| tree | d3d9a7636e37b0d2eec93ddf61a47caeda399de0 /www-client | |
| parent | eed03ed6da4435154826115469c3956ad88ee8a5 (diff) | |
| download | baldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.tar.gz baldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.tar.xz baldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.zip | |
Adding metadata
Diffstat (limited to 'www-client')
| -rw-r--r-- | www-client/firefox-bin/Manifest | 99 | ||||
| -rw-r--r-- | www-client/firefox-bin/firefox-bin-153.0.3.ebuild | 359 | ||||
| -rw-r--r-- | www-client/firefox-l10n/Manifest | 100 | ||||
| -rw-r--r-- | www-client/firefox-l10n/firefox-l10n-153.0.3.ebuild | 181 | ||||
| -rw-r--r-- | www-client/firefox/Manifest | 1 | ||||
| -rw-r--r-- | www-client/firefox/firefox-153.0.3.ebuild | 1389 | ||||
| -rw-r--r-- | www-client/mullvad-browser/Manifest | 4 | ||||
| -rw-r--r-- | www-client/mullvad-browser/mullvad-browser-140.13.0-r1.ebuild (renamed from www-client/mullvad-browser/mullvad-browser-140.13.0.ebuild) | 37 | ||||
| -rw-r--r-- | www-client/mullvad-browser/mullvad-browser-153.0.2.ebuild | 1399 |
9 files changed, 3539 insertions, 30 deletions
diff --git a/www-client/firefox-bin/Manifest b/www-client/firefox-bin/Manifest index 06217defd5a1..0b1eb1c4beb7 100644 --- a/www-client/firefox-bin/Manifest +++ b/www-client/firefox-bin/Manifest @@ -192,8 +192,107 @@ DIST firefox-153.0.1-vi.xpi 527343 BLAKE2B f426e8779fc4553197d3fa8a69f1911fb0cf5 DIST firefox-153.0.1-xh.xpi 355137 BLAKE2B 156445729de0755be20528bcac101a3fb57709e0a80c899a04754be000cc7d5263a219fd64cf41eab700885eea952836a113bb2d76c1df609dac64311a8c12d4 SHA512 09bc2b9932b223b68d6611155aa2c33cc955eafeb8c82675e2c91f9673098580221fc5c58abc619bcc32d375c1e13c676eea2c4e299f50c23b4e26f1feeaee1b DIST firefox-153.0.1-zh-CN.xpi 514222 BLAKE2B ea9d71a05f93dc5cd80c5b92c433399d9a79d8f454ff37056cc1d7c84263db8517a0132049de10f87dba6fbcb983970499bc35be3df433293e9f58da522d6cb2 SHA512 00d4113c50e5cb251599807709c02e23f5a1694b230244c08daa16d3eaf58c7662351e6643d033191d25d21b9cebee93178fc7ad211288eade6dd4e728e73782 DIST firefox-153.0.1-zh-TW.xpi 518766 BLAKE2B e8b623f477179fbe951d6af67ade4ae2fd316890c73d55954553f559239a19ff08a619239bc8273a558ce9fbdd23042b7f6c3804d331b0e9293390b0dfd99acb SHA512 b3fc15776f123858bfc14b1974799fea89db387c3ed75f5a76d957b203697d63ef7622128853094066f67b17d19e5ac07308327a28a8de49fba4815bc76bf1d4 +DIST firefox-153.0.3-ach.xpi 364018 BLAKE2B 72c0db859ab66c2b54e1881488d43b9a649554686937e9f757b2c636fe532be094503797e2a58aed044e85334505b9a6d28d6090a47fb4068c20676afd013a89 SHA512 dd6005b2ff73a234ca5e93d31f28501ef906ff944742f6235ce451ced45b986d18cf0bbb902063a13caf2aaf04f174ead2804d55e15ef66ad442419ea9124b1e +DIST firefox-153.0.3-af.xpi 350017 BLAKE2B d0413119f45ecf8851201f50d942ede5b2e5077814370dda60d0a2cc64aa9af47f10302ba52891d8e9e68256aa2f4057f73974da1b0a8593441ff152363d10a1 SHA512 55423c256256c16a3ec1cbbff094ee197cc6f472d05f7e2a5a2f4e869536dbd6ee55f81a0031c5a8d9c57eaf6a74846001b569e270caa59da0e244c4416d8134 +DIST firefox-153.0.3-an.xpi 392382 BLAKE2B 43c94ee3628adaa4452d8aaac4ed8e7d62dddeab43612caf91d9a65de955bfdf0d435909ffc780d62ed1fd2bfca85577638449786457db6427184f60fbbd2891 SHA512 d5ae2a2ff847fa8deacdc2a86843413b21b7002d2524bc650e92d7c48ced57c4eacc64f242a649f30b0fad120fcb1546263e49f3712c8c2f3c360de465014d20 +DIST firefox-153.0.3-ar.xpi 532643 BLAKE2B e31120f5765cae1e3996984867b13e9a4dc2ea2e3339a0f84a565cdea4fd265be7f154927d5b584e9dd5baa4137c414bdb808bcc20b684caf64f3ddcd06eaa65 SHA512 4c737b8275a544f17b2d84aa0ee98bb0a92e64f05bfb8645c2da04093dc1642d98d5fcce42e48d5e0ba4adfae781a8c109c2d9bab80f804bf1080f5ce7313db2 +DIST firefox-153.0.3-ast.xpi 387348 BLAKE2B d306e71ea3840b9d838cbd3cda920ba23213328dd5e1fe581261ed3ade58687cae66cf2dccd4b4bf5dafc5b46406bc47f4a865fea8db04f81c143274d96c2444 SHA512 477c0257d9ddef6fd3692a4c50b7d7a99c8cfc6f25467b80b02d81d2158dfc0d52c47ea969bcd980e201aa156e522d4b5f1ec87cc2de188577d32a65a6cd6819 +DIST firefox-153.0.3-az.xpi 394202 BLAKE2B c527b1ce9c26ce12341490f99dee7431f0bb8e22b95a40b2fafd4b35f5f2ebf4c29bd6433aba98d8e4f6d1848a0f1b6bd45bd9735e1bf1423a94210d04630902 SHA512 bf67b48fe990c3dbd9fe5b37ba3500afa0b183f121c6dd23e5f3574f52b577e538b3406e5023a3eccea3c0146272c3691823a2b7be8618e24e42b902e12e8c58 +DIST firefox-153.0.3-be.xpi 585947 BLAKE2B 591586f9ec3575d5f4c9b3d4d610a2b003eb05068c967004fb82b270206c2c429cc69e1b7b956355a3f8b3b3c9681f27602a37baccf41020272be89d3b0a6980 SHA512 0abf063c3b2ddb68d85dcdb9623bd1806f1d19436560bf282b9929704d31010b9ebf1b7667279883070ca74f8cb2d0e506ce726d65c3d0bd067be58553f85829 +DIST firefox-153.0.3-bg.xpi 511623 BLAKE2B 5e39919ac100bcd7422cddfe01c217ff86a25321f2eeb8eaebc325485d72aea79e0ec493c5d4bd194435efd0a440c3fce41591feb34b19ff58da031a0125f9fa SHA512 7eb3c162cd374a8d705bb1b74254a0d2e2e67d76b3dcfad8248087f0de9cab2b3c3628ed5148baa3e83e27617c1b9db90b43f1e91b54cae23688d0d71708b907 +DIST firefox-153.0.3-bn.xpi 463688 BLAKE2B 0adcb4e42172f8b9cf8e48dcf36cd2929846a118a510e66f377d79f46993ba018853618bfc2c1bf2ff6c388b2c5cee3c337868c22d28085e5e104ab04131011a SHA512 42f1fe9af0d24f08a8447a3285ffbfa858ab3b6e7c3af82279d3ae7127df331f7dcdaac53e00f964f461ec6aef69486e05dc0e738e8f1310fdf4b1eb826a4d60 +DIST firefox-153.0.3-br.xpi 434254 BLAKE2B 4723487062e476748762ef948f5cce8629623f01ba90f51f801fbaa88cb0f2f082766a9146880305521c9cf8d3a18cf72879398d1b5e6b70f46ed6808d5e20c4 SHA512 5d1f5504cd17d4cf6052d993c1234ed5966d23beb8f556bdd4dc7acc62929387e73413d82d1262a2fe8727aa91c0e351a86fe49c75d9beefb3224b1c1cf375b8 +DIST firefox-153.0.3-bs.xpi 470468 BLAKE2B 5ba1a81f57a6f5764b696103611274397e3f483a924492cccd926113a8d9f2bebf2f683ea1d0e44df22017993fd2553c0d1611a2d11d6c4261f50d36d5efe880 SHA512 37b6f551aee6c9d120c0791eaaf84a844775999047decc299e8041ab2b47750b4717be724d2f4cd01ee27d5bda33d016b9be3ed28f80df465a691526f8bafb60 +DIST firefox-153.0.3-ca-valencia.xpi 412958 BLAKE2B 64dfc1ae3dfa7c977170de95e32581687d7de1555108d4657a6f3cd6b50ac172dcfeb450790feadd1efda43b10d29206f92e5b9a7869873b6ed9731986c9ef20 SHA512 8d2c84c588e0db6e221a15be4a1b4c0cf88da99189221ed2b6a3ba77826abf952b6a52e41a4b8ca6eef653d11e4e9167528914790bd42332409a855c615e8137 +DIST firefox-153.0.3-ca.xpi 471235 BLAKE2B 8380c0db3b09143fd468ee10c860159669d224c19a2da28a9164a03d8987ad0b09eeb1084438ef951943bab6808a2d377a3fbd438e6662a2b7609f1479c0c0c6 SHA512 5474630a784bbcc20467951d589081e81bf9bce906d2b975bbde1795c5e8049840b3a423af2d6a0ff5baad60cb310ad87efe685ee6509bb7c15766e0842485c4 +DIST firefox-153.0.3-cak.xpi 433004 BLAKE2B dd269d2a732ac744baf7e6f475bb255b00198cb5e7bcb332ac5ca2096c224cfcbc77fe8ec33d19121fd152d1151b46f00c03cf46a07ce989ab1e0e28b251fcc3 SHA512 3f0f0e94f5c2123671787aaeba4d8c3dda48415f2276be4a2b7e904fb8677b4c92d27a5cf52a3408c0c96dd8ad9f27f817725b5d42c645e2ef7e551dbffbdf61 +DIST firefox-153.0.3-cs.xpi 536278 BLAKE2B b1a0e23406fb08657ab86d46e28a8f3ac895df8803c9f73b2011bb367e56e57c8e063bccbf0bb48aa026bc7bfafe3d507608a13afc3a9ab4fde27b07a5f29131 SHA512 3ce2b27f6b0c3d085e85b11a646cb11c93e2cc66fedcbfcf356687f4a1325cde915e5d5f161b40a2a520c1e93d74be2e9cd3c65bbc731ca2d1d3c765a3ffaeeb +DIST firefox-153.0.3-cy.xpi 496709 BLAKE2B ea53bb267e4d8cc38a19c4b3a8bb1aa2d47aa9059231eb64f44a59abc7fc18c117c25e9fc6e4d4955921e664d325281231607e7d17feb7046996def784210066 SHA512 d60158831cf8804c0c3202cbb35cbbafcc2bef88e431cacdba2eba4b3bd71db25420b0889d2f2e6144a7c90a639a1fc6a53a6ccbbb873d5ddf25b65062ffc2ea +DIST firefox-153.0.3-da.xpi 477570 BLAKE2B 951144968e8577745e6fe5d5af46b0d0e5b74a6763352b6dfb2dab8d3881b4a0d06562d9ad1a84fcb9b9e766444dd0e10348f28d9137f6f658dadd63b338505c SHA512 265e365d71d4b703cbaad7ea4060084717bb98b950d394792d47e09297e1452699329ec3ada0acd36bb1621677a096a0f0f370cf56a2680e763e47626d860c1a +DIST firefox-153.0.3-de.xpi 508055 BLAKE2B 0c39f62fd55fd327b909d04d75622015211112bd2ebc9aeb24b45482aa49180f6dd047e8c5a624ac30ef505199aa4e4ef5a4a66f276cafe121118ed2d27fc486 SHA512 92ff3b42b8fbab12739510afac2b3dc9c7be5ae9db194b9d7b1a131d3604ebcf07b14172f929123fd0d46dcd7c587f0943cfb12381b1ed69de0abef107c9a805 +DIST firefox-153.0.3-dsb.xpi 522585 BLAKE2B 3ad90af0c4bce9168a8ec8f44df358adb8cd0b55007cd725a2878345dd548a12afef5197ab276530b0ebcc143bb63ef49bc14de243bf67196ddc3959c4ae38c4 SHA512 d0f0699b44a8e28935f7e4a8edaacabe12bde02de8d2065325268242507578b60e39dc3e0857058a21f3fb15ae95fe4765da6f6107ef36d75c0c591587ce50aa +DIST firefox-153.0.3-el.xpi 601751 BLAKE2B 9a20f78c227707b0c1bfdce07dd3cf040a8ab3f0bd0e9edf3eaba3849da2d73227fe1099a193d9ee083815794f535d5328daa8ffb10e7e615723f7a91e3de4ba SHA512 702e98349ae74cd59410b7014cfc5815b94688d52de8972876ddfda56b7bb7251b02e3c0d81c10d4d8154d206d6129d01f63a5dfc9fff63a6f7793c144fac69e +DIST firefox-153.0.3-en-CA.xpi 459401 BLAKE2B 8f1ac2ed63def289b97acbcdabf3624dca684f32796c113d7549099c432566c3b1b9e2d400d0624911a324e9a2377cf2bca1579dd9eb74ec9eee36cf3412e5a8 SHA512 23bba18f5fdf7a0ff1e56c23c608421e3fd226fe4f0917ef44a1c35a1d81bcb9729740440b98cc573967bfd686339eda14d23217dcaec9a3fbf83c9d14003ce2 +DIST firefox-153.0.3-en-GB.xpi 459798 BLAKE2B ac15cb913be979a2e3d262d0e4995659f01dd0d8eead19f57022b0fa55313ebf7cebe608482377c838e8da3bfaf4d7f6e388608b9bf8b01dcad2597f162e39f5 SHA512 c0634fce203a9638ba52a6feb5f82524f93e369bc03e6ed4e7076b95efbd5eecd7f70c43e3ef71ac46bb3ae7fdfa715d8db5cd7a7add91d9ed39c42d43b5d30a +DIST firefox-153.0.3-eo.xpi 485807 BLAKE2B ffd89c4690eea81ad79bc6f5e11b299f849734765846e2ca62299d16ca7c96c32c15c64c2932b48889815cd3c036edd6206c6f4f9a73f22cf7fd233ebd2436a2 SHA512 6244bfcf50035bc456db09f245303ad0fc3e75c54f4bd83bf1d997b3c83294038fe3d9a62c781d86707d0f08dc24c113d22c0b327638af89eb874968bfe26995 +DIST firefox-153.0.3-es-AR.xpi 498375 BLAKE2B 184c399f5349bfa918f37794a17e8d069de899a6cdf1a69d0cf249763c64d249c4ad00509401e5b8e31d087b40b00a7beee8c4068c688231c900f7cf555b6d2c SHA512 fe4322c22f9028ab5b36e058d6030202f7394e15c71e3f80c70ff260bc3c54c3cf767492296759b927b4bb8e11ddc38fdf1f4a83f8f2807c4d8060977904444b +DIST firefox-153.0.3-es-CL.xpi 500102 BLAKE2B 1d293694545563c86c540cfa427a364c0413e4e4bfd34f29c372ae7470dc1a110343d78ee2665b74c135ec5917997a1b9de81f72c9923d9836f8a38665c6b43b SHA512 5bc8e25dfb815dcc3b8b79eefdff305b8136be3c51c78425b7ff5b109f058bfbe99c19347b5edebea761c318bf4d752951440d7a9ed620fa20e3b7ec54fe1f8b +DIST firefox-153.0.3-es-ES.xpi 500411 BLAKE2B 3f4878767cce3e0bdbb0ea7996deaaf07fd5e8eaa39788960734629c83d577b19661a082aeb8f9a640b380390aec15ff8ee5d95238d4ad9f9142c58c70e6a13f SHA512 f49ddebe753ccdba4e36742a44f61ad00b10a1185fc515986993fcfb8cf7ea7aacb7d6bf04fc42d4f3693d9a00af46f8246a1e92a92265b5593fa450d71fec28 +DIST firefox-153.0.3-es-MX.xpi 503023 BLAKE2B e678fbf99d4bc724d75b6b50117c40ed80803b6b272a05675ad57e217c9fe51c5f689d1016c9ef949468a19cf97a2c47acda7ef2d4cbd676f4732e7eaa580601 SHA512 31d16bd884fcf5a9f7e81f9f18833eb1016957df2358ee7b06a88be6c0985c19b957a26f5716a61aa235af7d305c4c1ccb92efc182ff85010b00ddd0a2f0dbff +DIST firefox-153.0.3-et.xpi 402987 BLAKE2B 5cc407548a62e42d815a4c0b16e59483d2183fbfb40af55761089a31ce1673ec3ff42ae5c1d0dbd832b584b276d924f65a9442f31c185cc8edfbae4f99a57b9a SHA512 2b433f56107f1c9215980dc7b2b44042e06c581632ea7f30bb4570ddc448c19ae52754f1bd5a896bb3b04228fce5c7f61168029da6d2c1f9b393d2ada13369b0 +DIST firefox-153.0.3-eu.xpi 485815 BLAKE2B b7e0c949bf76c15eeb25b944a124e19effb7124e3be15422ec0d7e6318f0be3d9b5cbe6e59e6ef6e3cec6912b916051010861ae06d256b60c164c753ddf8ca52 SHA512 bb2ece689bf502d34d7efa47d0c8ad1b367efed40ce2e174da9369caa57248b45e0461f6cb0704952e54f6122b70ec3d290095ac74f9c20a03d96152be4882c7 +DIST firefox-153.0.3-fa.xpi 470105 BLAKE2B 10c9e08707992409905a117a116466a164ebbc59751a6766521b65190fbc4337e6f45198503ab880b16a516962cc371336f9456c4714ea95712c5504bac472ca SHA512 5b2591d7e6bf7ce011c269b5f24d253bbc2029220500392e174a1533abc46e0648f1d6f946e62771b846ff2493c5aff644f1c724d64040e1375bf4b3138a0717 +DIST firefox-153.0.3-ff.xpi 375323 BLAKE2B 197dae25855b146358126e7a867320b37e5f309c1ddf94ef8184b4094082ceec74b224c404927f39205634d2733207b22f446f88d76d58e253820a3f547c2a7a SHA512 5e32ada15c912cf2aabc02755f8921bee0e492b00ed9f9d830fedd850c6fcbd91de34acfaa66cf1f1ba53df97a2f61f8998ec22cba9a2bc18458bde8a3ead4fe +DIST firefox-153.0.3-fi.xpi 487366 BLAKE2B fe40e5b19743003c4c11b774b6070b5bf22530870500f854016e592227da2ad441af141d7b4c7281fdeeb5913f3b11441e6b8661fbf5866b6edbf0213e3ea611 SHA512 e9cc1b8ef57f9d4961fabcecbe018670fd17caa1221efecad103896cab25bdc538055d5c1486bb5d933774997d5d1d4761d824fa9580fbb34068049ccecc6dc8 +DIST firefox-153.0.3-fr.xpi 513862 BLAKE2B 50976a8ee94e7c3dd0a15ef61ebda71cc10da39faad0806115091f3148992d9431b32e75780fb5bfaadd6c3a4c22dd8ff93d3e64f527761aa84a1f6278a2e534 SHA512 9345f448e09590b818ae319aed7415d909bee44c0dcea75c910967d95bed44668cd3e506ec829617793f076d373a056042aff38b9fc8f9a5b9fbc9148a18c13e +DIST firefox-153.0.3-fy-NL.xpi 495226 BLAKE2B e5a1168df69951e6ea18f0c8ec302d571b6022f485d2518096e9e4687be7a5202e504470aeeffa6f664a11be7386b75c37fc5fae3ec19dc4851972a1bcab9b6f SHA512 49219a8d63f949dcab1d4fc50fae198c1f1dce378357fe82375602747fd5b701bc39c687b46fe65b20587bd7e7b28701f74b5ed5090269bc0aa7ea0b2bb50017 +DIST firefox-153.0.3-ga-IE.xpi 386529 BLAKE2B 1e8a098b555fe3f5bcf7ed327bbece23f7d5e030cfedcb204924bd56524b661df671349c5501145062b0e9a3d4f20324e24e26b247c0fc572c0634136db5ce85 SHA512 3e49a9abb72314eec17ed71b840db376dfb089d95f090686634f01b38aa45100aad7573887619ff2326e88ad5942b323f43fb4067e88aeba60b01fc10803e710 +DIST firefox-153.0.3-gd.xpi 444871 BLAKE2B a8c539f7e0bd38021f73f1e306e69f2ca0d72463983095435a5cd79300ce9117da9748ecc0e58368144e3238b33e170a09fe395b6226ce416cfcc44e90e4ef1e SHA512 5a0cd632af1e522bd46bfae515ecc44050d1f6edfe74c14b5a7257ab74c97fe266a49eba59654f00ed1782fd6ce42f9e1431e8dc662273716bbe1d06b3274d86 +DIST firefox-153.0.3-gl.xpi 466742 BLAKE2B 5eb2d2547534c88cced8fb4fc395e4e52c4a933cb7a2c729c5e83fb967e207d0659523055b2674ab1a654a34c7f9e167773276a97def4c9545e08481d55ad526 SHA512 0becb55dec43282777fa1eaaa171bf5b2169c1b57a5da1a0903983314c83b5b1116ea141e4eed4487f74de1043137bbbf42e74a63a21353b34435f3541edee66 +DIST firefox-153.0.3-gn.xpi 504554 BLAKE2B 59bc540227dec7c753d54570e986a6e061b748d2215d03e3712e856da70d5ed83b7306d4acb2693bcbbff59bf0659c6bdef36b1e4e9e253bf47eea3c6f52d321 SHA512 9c8efbb061cc931fb293540c46fc59267c9aef89462c2141b85337af34e9959d22f04d1db1ceed919c48375dc10979de762d95cb9048020b22138b38bb04c377 +DIST firefox-153.0.3-gu-IN.xpi 421973 BLAKE2B e6f0e93e508f7b3c57915c594f543ead3578c58257c586f8844def8261a8541ba477769733e372269642d96cda4cf7583453d053e8cc928a255028970dd96932 SHA512 c3e3ba157d309bc642c618574239caf4144004c8329bf1e359075e4a948e2f1a40de2b38048873d4ddda80adb81728f73044d62732604fe5550e0350dd705140 +DIST firefox-153.0.3-he.xpi 510767 BLAKE2B e40cc336d53b3e17d34438a68f77fe62e2a303fa06c709e7eabc19424dc2bde1ce3878b1b78fa7812588ca548f4a763221ae06e88a3b037139487a19a1e67a69 SHA512 f42cf7a891b30a2854d6e3be3d0ee11145e9b08ce423b1b5d650e5001939af436e79e91114552b7bd8b3c01cb685451ce423b9c6b63bc59b432991eb2bbc9ab9 +DIST firefox-153.0.3-hi-IN.xpi 436699 BLAKE2B 7ec072f32d5c02a5a00bb2f3c654b42d715be10bc5d2f7974454df75aaea59a1bef047ece214dc30ff10e84e5ba05fd6cde04f534dc9ff6a545788dfbabace7f SHA512 f68b1b024e86fc5a9c376b8894d033e6c1573274eb4b645bafeae8d5bcd82539619d15e22daf2ff7b6384a6a236e6ea6638d411111698a4cba668faf881e540f +DIST firefox-153.0.3-hr.xpi 489525 BLAKE2B d24d341137d6a1847f94e827cfc6d764544390ed6255f24e1cc9a7b50137aa7b52f6545c05ee0bc3d633dc75a668dbcf2bded735f02640dcb3b1978bce10fa79 SHA512 47d8b403920caadb37e5c1e52deb234a8aaa05a1c240c1081d0eea3d85c15b8416ee27370d4baa84b8950a17dac2d9db3c728b34bc4ec906678d9aacec6e3c64 +DIST firefox-153.0.3-hsb.xpi 519206 BLAKE2B 0a2769554630f26028a8c8eb1728b3a67548524aa300465e2531af7da47296e56cedb0ef83fb077b6ebdf91275b4e294eafeaecdfd3f04abd5242c3f6bb3f0be SHA512 3b05ed12fa0cf78028f5237837f35db7f6b1203801ed2fba5dc1614987a0536368aab3b2987d41f8834bb84ae6e063a98db4a78b8ede841f8b4cf1950958abf0 +DIST firefox-153.0.3-hu.xpi 523483 BLAKE2B d0fbf28171f9c4c0a3205da2fb8efda217f6fcb35d315e8abc949c20d72179c173a5c5f89692636ce10597c49f689c25dc1f438246818058274085443b2dd1eb SHA512 5d14d95f11fe68f671f5f4e6f3abad07eba3c4ba3433a2327ca5c8738fb4473fe1c0b358eb81604df50efd2e05020038991348a0335cfc6e39f41f74f0255c28 +DIST firefox-153.0.3-hy-AM.xpi 529088 BLAKE2B b0660897e840fba5b5226e13ab2472fa0a6ec7adf1817e4426011aeb9e794f157a0c439c2390dae4a4c5fc7065dadc17609e29794fc4ab6aae900ac6e5f0a650 SHA512 7968838b4a7f37b3805756964b0e4ca54a22d083dac9996755144f8799d822df6c3869179c8606665b60c6151e1cc5d15b6fbb685aa8cd0f8638edbbebd49fa1 +DIST firefox-153.0.3-ia.xpi 481821 BLAKE2B 7e0efb4f3f61c598bbcfab048c871e2b47dae2f6b231291adc5f5340a0eddb372ebc4850fcd419419e9fc8095f5af8ce20cee26823e971e9a4cdffde8a1041d4 SHA512 bbb48200ad742fff35f8f3514d50fb9db8eb7a3c6674721322f8d5efbabe6b9d86f91bb8d99ee1e7fbdf57a94176cca85b18ef7599d3e469fc19634ab1e076c2 +DIST firefox-153.0.3-id.xpi 453118 BLAKE2B 8d6357cf792b887e2a7a680a26348efd18061266915e4eadd982561d1b5dfcfa1c7fcf7a1e5dda9a5d97b745a4c6abb7c7fdd4936f913dcf5ff697b2ac0dbca0 SHA512 1c44856dd384b66a49638867467c6605cd465b074a80bb54201435000d637fcead0c314e738a40ee89ecc162fd42f30849fd76c432a9a64bd858d7ffcc71ce55 +DIST firefox-153.0.3-is.xpi 470300 BLAKE2B da961abc919aa7f7132f793a898586100d57d69ffc0fc12ca65d1f9a935ff020c71774c492019f520c54ef01fe28034d8e8274599f6b0d0737513a38f2a406ee SHA512 a884d5ef463fc6403c87bf1a5d3c0c6734d2c310deabe291453e85e64964475696d8cb0259e5e8a9b33e9a6289508df5f3bb2aa29e288bb9955feb38d52edd97 +DIST firefox-153.0.3-it.xpi 494065 BLAKE2B ab7a988b1650885093382784908127a5e40e1753ab37899866bed3e4e6621739c97e6867eb84351883bec3def3693cae73c0245bbd62098128f02cf55d6576b4 SHA512 0fd7f05dd526cd77b5adf783195ec250813e37ba5d04a04a8f3de1ee7fd2d797de38ca0680ffbb4b5f6d3ccf88842a7a387a0f16e820b6b6b1e057d251f20d9f +DIST firefox-153.0.3-ja.xpi 538118 BLAKE2B 461a6f9303128765d3feef7eeb2d05955dd18b126e816c696c16b1a806b5dc17d57aa46ba38d796ce754acce5124233b4b879d13ad0221796fb300f4af6ded36 SHA512 2f500af4945eb80b5c7a7949801062e4fe9021ef3d685a31328f173e88561c5e874ebb6425bdeea79dd9b1d1367ee89b6b176ed1fd1f49197f88f209b2962a94 +DIST firefox-153.0.3-ka.xpi 557835 BLAKE2B 4c2536fc20ad6a30e03ac95108dc8ba5ec0368dcffbf59ba9e056eb8d5df7af8a295f9ae3f1df20291b3d513d996036dd1df928936502c162e82586049f06173 SHA512 d8a19e359756a93ba1bacdea55b5b380d9ca88b0eb21dfa94477f636f3cbe411243dc7c4e5bf17f3d60706dc62fdda31e1b9c0eac13d225267c2176307287174 +DIST firefox-153.0.3-kab.xpi 455124 BLAKE2B 93c59675624d0dbfdb04e06793ec402fdbd05eb3885e536c0092b3a79bcb5c3cf6efd10a3a6cfd2504b3b9d05cffc0b3f4fc84309f417504cd1f65e8bb2e3e60 SHA512 16ac71532f1397c2f59131239b50fe45a007ea1c961a83831cfbe1ea0fc003dae82b4941f3647d1839dd3f1d169dad76b568134b4e53edf0468fda414c5146eb +DIST firefox-153.0.3-kk.xpi 576964 BLAKE2B 525be8d9ce09a750e9bbeae8f92a67545d1f3ec1b431bbe7e8118b58d402a4d93116979b6fec496c0744e6faa6c6310f07d7248a235c592484e24a813c4c6b84 SHA512 ed61ccd7ad41661438f43623e70bd00649d28489f511d343f888f9f3ad999ab92f8db11187df5ec538567152c5380da49841f368eedd79ba5197374a09ad4dba +DIST firefox-153.0.3-km.xpi 441199 BLAKE2B dea13989cdfefcce520895879425b74a53339086e290e36caa3c08587d4ff49d7eb7236dce90e3bcc50191934e248eb8cf5b51c6d225cb4fd5427f7e1bd19d42 SHA512 5089f7547c3f06e0998e3f1d4a132498d53d0c74bf3b27ae48b1066229fde753eb548f13c6ab1fddf65373b65deb9423338b931f979617a9070a893c3df114e3 +DIST firefox-153.0.3-kn.xpi 404965 BLAKE2B a35383f375eab366408f8918d282a42f62d56e0ef69433201951807bc5a2d27604e1582dd4e6bbd66093d6ed55757b703d8b1ee606eb2248231cfe2153f3753f SHA512 c8d8c9c862cf9c145535c0a6ea2691311f3e29cb39aa0dd7926d42269c8a9121ffa2986d0bb0aa2337b09a752a58bf085472a236548fc067f87c3aaf8590eaca +DIST firefox-153.0.3-ko.xpi 522226 BLAKE2B b529d047a5b3fa79d2f72967064f03cd6b0aade3b75cf5ad3c5dc1606fc6ee484fdc32b1f0234fb2a66a87aaaebb3c657fcb4070a271154795dc9bcf1e8ab7ac SHA512 8cf750ba17031ab4a6cd8832ee66a9d341d993b6906e248a48656c053f90990d0ddd8f03afccffd40f6325e34a7d923de2c9ad6d7e70ded665f400ed54321011 +DIST firefox-153.0.3-lij.xpi 383932 BLAKE2B afc372b47a1a5c9dd1cff3e5f6c1d6e8acf6fc15e3dcc8cf7100daeb6cc6f0ca61b77afa9e7281a55bf5831f2126dd09ce1b6cbfc06a63672a7cf2dd9ceb07f3 SHA512 16a5ae80b7fa9f5e5dc76d69515e6a3a770422e5932cf532e6140fead0f5dece1a6fc0a649cec4cfff6732aab901d4b21be8e9f8e2267ea3791cfb967c2caf5b +DIST firefox-153.0.3-lt.xpi 424463 BLAKE2B 25a2a3e62330beb3ab91a6dc361320bb400b1550bf16009d869deddff85bd50ad96841028153a0dff34f20ceeeed520c34b9669e20a12bbcdaae4dbfdd7ee37e SHA512 84ee4656246f80c34400bb2d2ca47565874f1ef6dc5e2d00a24533974afd55dc7aad01f0889cafedbcd5c1662b2fe215bb63550cb30da281c8113fbed15d05d3 +DIST firefox-153.0.3-lv.xpi 440453 BLAKE2B 083e9c7ba3acb494bbce5f45d89918b4304221f46773cc8a7e38fb85c42be2450318553d8577e77ca2d9d2ef45c69c1805817f128d755f3dd00acabb6cfca2d7 SHA512 05085a06bebf32fa3e31749c534362c9866166e0a5946a82114751f85f667ec799cb80122f3b946bfcacd90d29c83ba1ec3cf7ab3ccf84d8d8eede435438c358 +DIST firefox-153.0.3-mk.xpi 433633 BLAKE2B 68532b360cdd819744cd2952b9dd96ef01a7e63b4afb7277fe706753190e249071a824c27bbce8927308539a4546780d3a52227eaff152a9bae0e655e8acad5b SHA512 94f3a5316fd887b2667e8a75da8b62e6479ccbfee705585bcf2f058534f9567865586b2ec787eee628cc1e114b8f107521e32444250a5b8dfc5c13a3c9c3c172 +DIST firefox-153.0.3-mr.xpi 419627 BLAKE2B 9a983f9b4bd0a019d1e42b6483e3360901ec39d4ddb34eda1ad3a376b8bc086918446c400fe7a0215ef8e80dd6614747551fdbb18bb15dc1aaf556f5ab372709 SHA512 6b55349d8ed79fe864e677f9b7680fa350c49be3b08ea7c0e41c352db1b019a05d7a14478f47819fd74fc8836d8768c411a7c01d2d84f085125d7ac69e256e8b +DIST firefox-153.0.3-ms.xpi 375073 BLAKE2B 840820b22198dd7160cf98724c6275d03c2fc8ec9aad43fccd313695792d05927326488e3668e57bca5e86d27931f3dee17bbc31ccd240bd7b559f42d4d91a06 SHA512 31fdeabd0b51ea5aeca5f8ec5c0db315b3cba236e3a12b806a0e2488a0c9053832229f9ff1c4e3b992fc9a13b9103667bc93f40f55d8ae4730e5ae5fc15e8e36 +DIST firefox-153.0.3-my.xpi 416277 BLAKE2B 71d2ec98ecf8a20d093c96e9ed688353fd7bb54fd62391e5e61eacf1ac21503845012797f1bc3d6d68d75dea2be5a302810fbe9087625bf287c9de11656ab23c SHA512 9330c3ce48d7bcda97a13e2f354f9e6bfb16544498d55e8328044bae03ed561a85604f3842f923b9a8a6bd30046d9f1ec3ce7ba009c2324f6dac9aa14c0f257a +DIST firefox-153.0.3-nb-NO.xpi 480782 BLAKE2B 7a1b4a9531fff0627c14a456b6c8beaad93a73ce3d40a28b190b78e112f9d236ffd117854eb5a54def009ebc8a9247435946f2ed6f5818bbe52904a08fb41950 SHA512 2480aa11756af276a2084049f119a641d20930879ba7eb7fbbb677dc8168b10589b4e82583e36bb88f9a619da8d6d83ff8ff9214231091d393c6243f4b8f1a3f +DIST firefox-153.0.3-ne-NP.xpi 417537 BLAKE2B fc725bf62f6d54f926033c9b87978a2bc48fa875625bbb824b91cd966b547c873420503cbf3f07630ef5cf4a54ef65d03189947362186b5c508ae25c5a821efa SHA512 bc988955e08d9611a859e44341e5539a6ebbb804242bb1f15a884928a4b296aac9a6d8db1a163077595263fb9cc5d94fbe21701bc46f6f0a2e6c63e546568847 +DIST firefox-153.0.3-nl.xpi 488742 BLAKE2B 39776546bfdbedbc97ad668603b4f4af0ab1aab1a2e7cdd7ceec01dbedc6885f10cef299aad799f0c6103266361199864d5d4a6424cac1aa155b3513ed82cded SHA512 37c80f02fcc70c83a67ca01e9f7fe1958d5dde6bedcb5e2b5c25c7e04566dc5bdaedaae39915d62894eff40c964855b9148f33e36a651f25e54a523c21dfe584 +DIST firefox-153.0.3-nn-NO.xpi 484318 BLAKE2B 1fca6ba809e6925e0a7137a00c85617c769d322231b9b9c8f28378c7e97e70541a019ad1269fd8e3d53290dca44722d82a0dab6fe3aaa2f4b07376a1f8b9e700 SHA512 ac1a190a4ba133a646ccc358700354a9a1fcb40aa068caeebd96fe83c17b17c7608b71aa455e6ad8f357e83bd2f287edb253fda8aa7e8b34b831d84ecc535d35 +DIST firefox-153.0.3-oc.xpi 448148 BLAKE2B 0e3945ddbeb40733934efc5df6e81a8c6f8b984a23600c93a39ae6d51a02b9dc913b3e6fd0557530f6b29a359350ec05f0ca9307606b22cc4d1d3152ed376657 SHA512 5e05a5b8d48a88947fa4f5e17c703fc43be837e41186885e6e77b6211921f31f1548186506498121aa0b6fbe0daafa0bc9d98e1776e22744201623ce537d0e62 +DIST firefox-153.0.3-pa-IN.xpi 571642 BLAKE2B eda4795d9043a1ff97cd9b9a986405081fb7ac09679ca14cff2a95d04aa8071589379ad0ddd257efde866dc4d7d358c4267f5ed7f9dfff2a59bbb6ab5665ff8d SHA512 f46f3459a72779196b312e0dd9352abab078649afd7ee96de8ce16df5a43b278be870670ce6ecd16f6b14d34cc353f3fd3baf2817beb2580bbc70556b0eb35e6 +DIST firefox-153.0.3-pl.xpi 520243 BLAKE2B 94bf70a56e09343f2ac4ed1f8f82eed4c68d38aa88b8f8f9d33b2b0728729b0a6d344ef8b0e3cd29239c4a88cd11ed6c52792aeae7c80787007beb2b49b6c5a7 SHA512 1d7f8b0637a84a9e254cbf169fdd6e7aeac77451ecea86fbd1f50775478564ea332e50b1993247beaf4950f7f5968aa9e9f698f6c8e390d2e0bc95d3ce600479 +DIST firefox-153.0.3-pt-BR.xpi 493509 BLAKE2B 15d8fe62859a21606660f0f063fe571d533c9a5f0366007ba78bacebe4179b71ea8c522298ffd34de5b5e2cd2114f21ec0cc100adc35e8f724a7a661d86c01ad SHA512 a2346f47019360f3e10d3708ae1b7f25ac9930713453a55f179a6f05f34b9f669bf5c3f2972d08b3af8cdbf922afacc11d60a1438bc871d58cdd3e2af91c8a32 +DIST firefox-153.0.3-pt-PT.xpi 496452 BLAKE2B 8b49e541af538736d34a57fcf4c552c59dbb90d2b6857bfe95e273df41f281eaefe5e2c6d68e6aafb9bdf566bb47129673d7b416a42fb4ae5f0d8c645c9c4eb6 SHA512 ef743e0986381d8c6c0cd90d39bf5d74ca16ded384c7d49dc539c1d7ae3bdc6cf4be7a3c431eda81114f4696650146df97b96478ec48a39f94fde44a707a8207 +DIST firefox-153.0.3-rm.xpi 474026 BLAKE2B 5a76df8a25d3f327255e76f8d236d5cf5d90e232f3d673802d29779d69ffc59646cacbd84cd79ebdf5399e0d102309c629c17340929615d13ec956a7b5204bc1 SHA512 30926a2c6a7868d6f097335cf2b7d53b45ada89ce19175c257c3c1a2bd5a78705c6becfd2f5ebf53c834f9a5548cc752e6a88838c069bc80dd3f36b8eb04a4bc +DIST firefox-153.0.3-ro.xpi 507753 BLAKE2B 3b1dc49a15a729e5c2cb42ae16a7a96b3000ca27613a26a742bd0972e1e3e2692bdb8a3b3920a5670a625b8cffb22b8e22c2556983514d187a512c5235dcf466 SHA512 1a4001780e21b28ceab71d90d2cda37334e97ab6d804d62c9c7a6fd7a210c9f21f52ff4276dc82fd08283c2f895e3bdc6fa75f5da191f8dbb6e523d1e2292c7e +DIST firefox-153.0.3-ru.xpi 589697 BLAKE2B 16bb35dbe10c70a0030569030f8dfa04b9dd6b151327585bafd1e5d69699a8a553a4321555d5abcc51ef21c2e4fc2450caac142e4f0839dcf8943261fa1ee0d5 SHA512 9ac1a9053c229f384a8c07e48915373b29a3e8b5c765b4699045eb4846e02cfcdbd78dd9beb69365b258667c950202f18c8329c7b03887af29039745ffda7467 +DIST firefox-153.0.3-sco.xpi 387297 BLAKE2B f377be9ea8f43c2e05245c5a3c2c24325f230fbd46a9ab6877bd1003af740c02a21a1c018a71297b22aa491797e041c80acf3650547c775ddc092bae0ac9f581 SHA512 05e3f6082b902f45d52e7b84e8fa2ba506980288dd7fe0244779c0f548a38467159e44a523611b13b4735ba86891862ba757bdb4386ce5b9eb3f1e4384ebf10d +DIST firefox-153.0.3-si.xpi 465722 BLAKE2B 7a3332d936909b61dfd647d439969d802f1c29de6613e07e91adb69bffc956025fb7d56e16a2be50247d3c455e5216e9d9fe5ae3c6e12a81deb388b1faf96653 SHA512 390cf48b683bcdf6c1a6a352c90d93868b17c6a248e9168a0833ed0ff056c7e3b85e7c35f273ed128a9c1e3d3b90290581a3fe5392c32acc7332aba9f4abe9a7 +DIST firefox-153.0.3-sk.xpi 526402 BLAKE2B 080ab31e8724171b8fc53dbdad5bfa8b73fba787018f2096fedd283feaf41b13991e030ee5221929ee39023205c8a0d5388bec724a30fd197352696ca95c0234 SHA512 aed38fd5f7125c5bb48f7b6a3c920e09b73ecdafca6897a598240be3d8e1ac3a2a17b3d7a07e87af97fe1df9d596d5a99f1a82e5fc2c356e3bd038f1ae7abf79 +DIST firefox-153.0.3-skr.xpi 513306 BLAKE2B 2cd86ed8ce4f6ddeb3c4550ed839fbb0044d255d400d8063c0cfd228ccf0a590276a71b6309293e8ca68445169272556c10a51664e313e7a6238dd91d1ac48c2 SHA512 66913890732a3172bad1ca7b6bb0776cb04cbe760d2bc70073d98251e7a79d5eb151f756ec6df3c8dfadd962d997f9661ab5b216f7a8b3b2236736b97ef7c804 +DIST firefox-153.0.3-sl.xpi 495418 BLAKE2B 2b72670ef6f5aceb4097cf8efd040a3ddf5b96dd9f74015f7a6d350f56b6e8431b269fe02bb92bddeb0cbd0ccb5ba46f44fcf95c4e138fe155ad5f1fa90b789d SHA512 be9ee95fbbee06dd43908cd5b9b7872d29d39c1bf85f72148748d612ef28870f8654c50e3ba158e30412bc0c30e87e1f34a8987e3037a37f41f64c8735ef1c2e +DIST firefox-153.0.3-son.xpi 349851 BLAKE2B dc234ff2a3b4f85a72bc61f69c683ef877d3273a306ea02c27d99e4592438cbb367a6ed72177e1ba0556c5f7ce7f60065e3dc1abc332e92c7bde3f24093b930f SHA512 d329cb7dc3a16c3ad9cca2ba63d0c98f57dd6d8ae98eae1b20d2dda499d401e5c57677b2ae90781e566d90fa0b76bc466918b3aa832d700ecec783cc6eb71d94 +DIST firefox-153.0.3-sq.xpi 503897 BLAKE2B 31039d61f6b2c441bff63a6865822efafd53a85e8fc7b962eedb05b59ce5fa059b14df94587591b2e574ff4ca3d756314e41bd12c2a2d973390de2aa0351a05d SHA512 cad0eab6bfb8548539738c9cf18a03bd297628ce490630c8fac797b411eff001be5108296faa8055806954ea3de861bb218ebf1f3218183a39f241322447b9da +DIST firefox-153.0.3-sr.xpi 561263 BLAKE2B fd091057ef84068f2be486b883fb0041332aaa679eaa56e8a60e578693431dedfacf5b9a5968e1a712e6f2e7fe91b00b2582d88f7104c780ae1fef71dc4d65d1 SHA512 46397df481f516c7a4b2d3d0f1ecd7993c50ad1941a4fee8b42b0da09717b50cc21c4480d91260a19fcb159af45de24c60669a7ed2ca2ade0d0d54525525ec94 +DIST firefox-153.0.3-sv-SE.xpi 488206 BLAKE2B 2206197e45bd699e834f511deadee52ea731e117b173736806faf9247e52024f968e3eaa67006d01431137170aaba34ed56f5da5c864a726af39fab00cbcf2dd SHA512 ec637576c5fe7a3e37ef37aa524c28a8f155f0ac22742a664f3192dfc8e42f5b938c78cbbb304332878cd8833c1f006e6a311c724a4d7864466164fecf92cb0b +DIST firefox-153.0.3-ta.xpi 408037 BLAKE2B 4331773abbffce65da6b4a997c9663b05d4ea5b410afbf815dd3bd62314523006d85a160fbda408de01d1f750154929b7f5969dc3f6b1581b572e707a703a5a2 SHA512 e08329cc574f2ebb19e997b3c478704e59157904533684f7bbaa592f6378824bdfd693641f81ee9a78484c3661dbc84605b4589da8bcb24811d18985c4976d76 +DIST firefox-153.0.3-te.xpi 447261 BLAKE2B 5080c335e2c88d3304431f8cc8d08eef0cb796ce34534e9f720c4baad6e52fae7b7ffa3424840e233700639d61811142d058d7aabccefa4f07614e4a4779a3b3 SHA512 e3fd3c0db8e528728548b3aecaba3f6dbe982dd85eb9f41f4d8c950881346bef0bf41054c2d5c52d8ba748bc29993c1f126b3cd292bfeea8a92b3a1810ec489e +DIST firefox-153.0.3-th.xpi 565322 BLAKE2B f2a704f0ad716bea3868ecd523963ea54b18b9e214028997b327327d0397ab7e471024444a4e7bfb5998bc2bc811a722853824b77b76ded4e6a2b400ad64b0b7 SHA512 72e683cf4ddb381129d3055f9a55c7e70a82ab2ad6378fb3e5fae2d24df47cefb94c8a1789a1f71e33aa1bd8543d0d47604dba5e5068a8eac750ea496e330e36 +DIST firefox-153.0.3-tl.xpi 404175 BLAKE2B 17023f27f5eb4d7c66417e0df85d3e65c3e70953961133acb0c4cc2ed6a4d984dae0d5de2e581a618c9dbd30491e16412235cb207d458d2f92439c2ffecb59a5 SHA512 2ce5432e9c7e54d125bb90b44b6d96c5d05abc14df2038f8ea33abd0d4a71a91c86ae8379eb5fdd55ea922b507f239e61d0b2a47d25cd26c91947a36c10f4678 +DIST firefox-153.0.3-tr.xpi 503083 BLAKE2B 0c2ed51397cbe881838b8deb6b4c6e56a2862a86f333fbd5941cac5b8cc5113a0116d5fdf5a1c1a8e6af6198054e7073e4656ad8b39976fc8e403dc9c6171bd1 SHA512 3c716170398615d2682a57365aeccd54b0189704f362f0ac1c03439776837cc5c3e7e0320ee8d02f89e0b330840ba5e06e043738ca4da63efe78b1ad30dde601 +DIST firefox-153.0.3-trs.xpi 394910 BLAKE2B cacf68bacee9268a3c58dbfa73fb03b97864bf10fe9c1e79532578a3969f64f6655d378d07bc8ab22bb76d4cfbc70d7abbad2d619d262823854c4588e0ed05d4 SHA512 bfe2c9b91ba30913e0ff174ab6bf20dbba5c77d09ebbb0bad8be4c133edac83648e1cdd697dbae3f2f2c43378f142704288657991c0cb07fae5c635ba7e8ffc7 +DIST firefox-153.0.3-uk.xpi 575479 BLAKE2B a0396420662be9fecc9a9677747e32ceb2d48ebd3beecfc312ad39bab335feb6e132dd9fe1607d2b51edfbae8d61c9f5a645bf5ae42b9c64e69d5cb9594d30d1 SHA512 2f094917fb77d4e613fdc462f4edd0b2449a459d1b8aac69c4a972876a48bfec5872a55ea2da175ee485ae295c3fc1da142a17e4b8328354ef8f5c3388d2bcba +DIST firefox-153.0.3-ur.xpi 429408 BLAKE2B 42aa6d319419d38835bb1ad3306d02a02ffaca11efeb9565fac968f23bd394645c04fb98728ebd16538ca4d8f950654a92969ce34e5fd909b90c2022b1be89dc SHA512 eff3b6d8624736a83a24ee421bb81f4c35f240acc2d67a275c06723c543b8717ec2bf1b318206c39f2b3b4787ac441d209896e47ad942e0bc23ed776a7ebb343 +DIST firefox-153.0.3-uz.xpi 376416 BLAKE2B ff849476f2bae9907f02a2eeabe93a101f97b353c9dd06bd4e2df066cbe635180109a990c25e5d7ffaf61b96fb315042adb02a8377070ed3592085e8d768cff9 SHA512 ec4283cb35539d70d02fdcd9d46552cb89e61f20129c27f98017299dd1eec710bd441b26098de1c30d467af8c713644452457efdcd616d05ec8431a8bbf3c0df +DIST firefox-153.0.3-vi.xpi 527368 BLAKE2B 318bf7ea61816cb7a9ac64a65f184c33a1889866d7cdbc15c963fcc88b66e761f666ab84f9060f4befad003dd2deee178c264f05d2c3258dff1745bf92d78457 SHA512 b523b41e20a0b7be5f403ba009cb92a80ebe4fa79723b5144474cd3ce60390926bb5bd6768603c20a8ea8098852bef204abb16ae5116114a1fcd2dc34d31f14c +DIST firefox-153.0.3-xh.xpi 355306 BLAKE2B b9291f6e8eea59e3a439865be44763f232cc6c6299e3083b278b5f666c29fb2c8e5a8451ecb63866269dde4a3797177a36e905fffca7bf5bead731db119fdb4f SHA512 505bd1eea95eba8f069269e6079b04cc24f115fa0d37d95f7c63c552594297bc9abc94afa762d454cb80e018140983c30f7e78c237a0fd24071be6bfd3a77a78 +DIST firefox-153.0.3-zh-CN.xpi 514258 BLAKE2B d441894e766e4a0b01f8449c25a56434c417ee5ef36850c2251858ad3547a05970b50fd86b8c720a1e84335bfdbe40a0f64cd8a216ab8ea28acfe83d53dbc6cd SHA512 f2c0b405e6ccd04a9a777028c43aeeb8c02cd0674f65ad88b04dbc52c4cc4512c293a64f0f00709cf1d11d06040109daa1191fc592a6310f56e523697007782e +DIST firefox-153.0.3-zh-TW.xpi 518947 BLAKE2B b12f12959d5595f88648e39dc8f5c344077852b9a465a7da95aeab8ccaec6e0eff2fecf0191d9eb8e05437b92b539ff0b19a908dd54e261373fe72208310d142 SHA512 3828047795e8bbf9102b336a1e66d3d1dd485b001921277825209ccb8f98355544d32a58781763388c42eb01813ca165df638b2bca0a73e1e47da5a9deac0b34 DIST firefox-bin_aarch64-140.13.0.tar.xz 66786160 BLAKE2B 2192669f573158d88d2dc72a4541a76b0681c03c74c2fe8b655aa930fa8d1c3d69a0dc679b97a68ebb9f3e51ca5ff3f2358907196dd1b30ff90fc0aa539bc613 SHA512 4d6595ce379b5630f98e30e64c35274d77c78b143ffbd52dad88be9e77566bfb5dac6366f76cad28ff49ba1ce1f74cb18bfc7ca10de7ef91acd02b253618d0ff DIST firefox-bin_aarch64-153.0.1.tar.xz 73786864 BLAKE2B a1132ef4ffbe3f7f4f97b0e87c15f432d41caa08e504801176abe23e8923f2fd4b37df57b79fafb1a72805fed8c3bc0876005fc2766cb9166576a5d9dacb88f5 SHA512 c7c03b22ec7c75e4960dae33af4581426860f69477cf3b6c3ff4f65cfa4be3eaa0923f5c7c972004a4b2106c27aafe230fa5fa3a8234db2dc3c158209b75183a +DIST firefox-bin_aarch64-153.0.3.tar.xz 73768412 BLAKE2B 0f7a1a59289a57034403c3787417eaee6fa4e2cc8123db4b1b63869c91274a6c21e70aa453ea9995b2fc40f663cf704ea66a2a3056e661038482597a951411af SHA512 d73fc09731ab203f647c325876de637448a8f7a257540e3ef20a62a88970f5a01ea28448269868b0c1bb8e30bf16b391c030ba65c378086dda710c1c046aa333 DIST firefox-bin_i686-140.13.0.tar.xz 78599164 BLAKE2B 32413b1a0a7f5a84faaba90f3086055cc0511a58a5a0d9afb381ae03cd42e5e1b824ef83e6269e8a64b907038ca312295b0fe2666c3e64624e26c3d89f6fe264 SHA512 439b8829a98ec5c5c7c47f1b5815160f20748fb1166711df14888dc663e945311c7a1085fa2e44c4a5da590dcfc034774a8bd46c6b78f4f195d9e8924acc2893 DIST firefox-bin_x86_64-140.13.0.tar.xz 75619012 BLAKE2B e6b176455e0fead187a921fc39cb8816dd1230e4a582bfe537a65543699597a5ae722f89f8e83504f122b698e8109804f42252bf23e57ff60a32eaa1ee6fab80 SHA512 3a12a13a9f2f49224e847adeaf3032478e68d7e1d393039d9aab1016088d2068b87e99bb80d4135ed0eadc73a82c91cad62eebaea31e9c863603cd4abadf3f4d DIST firefox-bin_x86_64-153.0.1.tar.xz 86308292 BLAKE2B f134395f98ce65435f34faab13a4011a47d2a4f58c36f85930793314fe62a5014e143c9f4f3b45b8783408ad2470ae1093d61d6cce9b074d1e78d440e726e993 SHA512 85b5eac9447f2e1bb6c44eaeaadd9f87b60203fc59763119abdfab952134ba33debf48ea46f1a111334bb168b6c305acdd5faab1a4ba12d606b67f119968bb74 +DIST firefox-bin_x86_64-153.0.3.tar.xz 85844364 BLAKE2B 427d0e424c700402ae1af3ca477f4436858779c465626b4d65914ad9cdcc1b519453e5efbe3b2200e3ed8fa5f359de8396e9d3c158b1b5b745f4c70c69323fdf SHA512 4ac76c35ad6750bc599febce87bbbdf773c6e00448bcdc35f854c02d8b8308a9ef730eba9c69b4ecac5e90ba69059a45c6840ba8aa7fe6672359e00b3d52bfcd diff --git a/www-client/firefox-bin/firefox-bin-153.0.3.ebuild b/www-client/firefox-bin/firefox-bin-153.0.3.ebuild new file mode 100644 index 000000000000..dea9320c7c9c --- /dev/null +++ b/www-client/firefox-bin/firefox-bin-153.0.3.ebuild @@ -0,0 +1,359 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.firefox.com" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop linux-info optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.xz -> ${PN}_x86_64-${PV}.tar.xz ) + arm64? ( ${MOZ_SRC_BASE_URI}/linux-aarch64/en-US/${MOZ_P}.tar.xz -> ${PN}_aarch64-${PV}.tar.xz )" + +DESCRIPTION="Firefox Web Browser" + +KEYWORDS="-* amd64 ~arm64" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+gmp-autoupdate selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip" +RDEPEND="${DEPEND} + !www-client/firefox-bin:0 + || ( + media-libs/libpulse + media-sound/apulse + ) + >=app-accessibility/at-spi2-core-2.46.0:2 + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + media-video/ffmpeg + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[X,wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + selinux? ( sec-policy/selinux-mozilla ) +" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox-bin:rapid" +else + RDEPEND+=" !www-client/firefox-bin:esr" +fi + +QA_PREBUILT="opt/${MOZ_PN}/*" + +# 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 + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk skr sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +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_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 +} + +pkg_setup() { + 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 + + mkdir "${S}" || die + + 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 + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ + "${ED}${MOZILLA_FIVE_HOME}"/plugin-container + + # Prevent auto-updater from popping up. + echo "This installation is managed by Gentoo's package manager." > "${ED}${MOZILLA_FIVE_HOME}"/is-packaged-app + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + 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 + + # 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="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" + local icon_symbolic_file="${FILESDIR}/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^} (bin)" + local desktop_file="${FILESDIR}/${PN}-r3.desktop" + local desktop_filename="${PN}.desktop" + local exec_command="${PN} --name=firefox-bin" + local icon="${PN}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + # Add apulse support through our wrapper shell launcher, patchelf-method broken since 119.0. + # See bgo#916230, bgo#941873 + local apulselib= + if has_version -r media-sound/apulse[-sdk] ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + ewarn "media-sound/apulse with -sdk use flag detected!" + ewarn "Firefox-bin will be installed with a wrapper, that attempts to load" + ewarn "apulse instead of pipewire/pulseadio. This may lead to sound issues." + ewarn "Please either enable sdk use flag for apulse, or remove apulse" + ewarn "completely and re-install firefox-bin to utilize pipewire/pulseaudio instead." + fi + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" \ + || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${EPREFIX}${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" \ + || die +} + +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 + + local show_doh_information show_normandy_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + show_normandy_information=yes + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 713782 + if [[ -n "${show_normandy_information}" ]] ; then + elog + elog "Upstream operates a service named Normandy which allows Mozilla to" + elog "push changes for default settings or even install new add-ons remotely." + elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" + elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" + elog "concerns prevail, which is why we have switched off the use of this" + elog "service by default." + elog + elog "To re-enable this service set" + elog + elog " app.normandy.enabled=true" + elog + elog "in about:config." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "speech syntesis (text-to-speech) support" app-accessibility/speech-dispatcher + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + # optfeature "ffmpeg-based audio/video codec support, required for HTML5 video rendering" media-video/ffmpeg + optfeature "desktop notifications" x11-libs/libnotify +} diff --git a/www-client/firefox-l10n/Manifest b/www-client/firefox-l10n/Manifest index 8d6f37d4f539..b54d0a3a2eef 100644 --- a/www-client/firefox-l10n/Manifest +++ b/www-client/firefox-l10n/Manifest @@ -98,3 +98,103 @@ DIST firefox-153.0.1-vi.xpi 527343 BLAKE2B f426e8779fc4553197d3fa8a69f1911fb0cf5 DIST firefox-153.0.1-xh.xpi 355137 BLAKE2B 156445729de0755be20528bcac101a3fb57709e0a80c899a04754be000cc7d5263a219fd64cf41eab700885eea952836a113bb2d76c1df609dac64311a8c12d4 SHA512 09bc2b9932b223b68d6611155aa2c33cc955eafeb8c82675e2c91f9673098580221fc5c58abc619bcc32d375c1e13c676eea2c4e299f50c23b4e26f1feeaee1b DIST firefox-153.0.1-zh-CN.xpi 514222 BLAKE2B ea9d71a05f93dc5cd80c5b92c433399d9a79d8f454ff37056cc1d7c84263db8517a0132049de10f87dba6fbcb983970499bc35be3df433293e9f58da522d6cb2 SHA512 00d4113c50e5cb251599807709c02e23f5a1694b230244c08daa16d3eaf58c7662351e6643d033191d25d21b9cebee93178fc7ad211288eade6dd4e728e73782 DIST firefox-153.0.1-zh-TW.xpi 518766 BLAKE2B e8b623f477179fbe951d6af67ade4ae2fd316890c73d55954553f559239a19ff08a619239bc8273a558ce9fbdd23042b7f6c3804d331b0e9293390b0dfd99acb SHA512 b3fc15776f123858bfc14b1974799fea89db387c3ed75f5a76d957b203697d63ef7622128853094066f67b17d19e5ac07308327a28a8de49fba4815bc76bf1d4 +DIST firefox-153.0.3-ach.xpi 364018 BLAKE2B 72c0db859ab66c2b54e1881488d43b9a649554686937e9f757b2c636fe532be094503797e2a58aed044e85334505b9a6d28d6090a47fb4068c20676afd013a89 SHA512 dd6005b2ff73a234ca5e93d31f28501ef906ff944742f6235ce451ced45b986d18cf0bbb902063a13caf2aaf04f174ead2804d55e15ef66ad442419ea9124b1e +DIST firefox-153.0.3-af.xpi 350017 BLAKE2B d0413119f45ecf8851201f50d942ede5b2e5077814370dda60d0a2cc64aa9af47f10302ba52891d8e9e68256aa2f4057f73974da1b0a8593441ff152363d10a1 SHA512 55423c256256c16a3ec1cbbff094ee197cc6f472d05f7e2a5a2f4e869536dbd6ee55f81a0031c5a8d9c57eaf6a74846001b569e270caa59da0e244c4416d8134 +DIST firefox-153.0.3-an.xpi 392382 BLAKE2B 43c94ee3628adaa4452d8aaac4ed8e7d62dddeab43612caf91d9a65de955bfdf0d435909ffc780d62ed1fd2bfca85577638449786457db6427184f60fbbd2891 SHA512 d5ae2a2ff847fa8deacdc2a86843413b21b7002d2524bc650e92d7c48ced57c4eacc64f242a649f30b0fad120fcb1546263e49f3712c8c2f3c360de465014d20 +DIST firefox-153.0.3-ar.xpi 532643 BLAKE2B e31120f5765cae1e3996984867b13e9a4dc2ea2e3339a0f84a565cdea4fd265be7f154927d5b584e9dd5baa4137c414bdb808bcc20b684caf64f3ddcd06eaa65 SHA512 4c737b8275a544f17b2d84aa0ee98bb0a92e64f05bfb8645c2da04093dc1642d98d5fcce42e48d5e0ba4adfae781a8c109c2d9bab80f804bf1080f5ce7313db2 +DIST firefox-153.0.3-ast.xpi 387348 BLAKE2B d306e71ea3840b9d838cbd3cda920ba23213328dd5e1fe581261ed3ade58687cae66cf2dccd4b4bf5dafc5b46406bc47f4a865fea8db04f81c143274d96c2444 SHA512 477c0257d9ddef6fd3692a4c50b7d7a99c8cfc6f25467b80b02d81d2158dfc0d52c47ea969bcd980e201aa156e522d4b5f1ec87cc2de188577d32a65a6cd6819 +DIST firefox-153.0.3-az.xpi 394202 BLAKE2B c527b1ce9c26ce12341490f99dee7431f0bb8e22b95a40b2fafd4b35f5f2ebf4c29bd6433aba98d8e4f6d1848a0f1b6bd45bd9735e1bf1423a94210d04630902 SHA512 bf67b48fe990c3dbd9fe5b37ba3500afa0b183f121c6dd23e5f3574f52b577e538b3406e5023a3eccea3c0146272c3691823a2b7be8618e24e42b902e12e8c58 +DIST firefox-153.0.3-be.xpi 585947 BLAKE2B 591586f9ec3575d5f4c9b3d4d610a2b003eb05068c967004fb82b270206c2c429cc69e1b7b956355a3f8b3b3c9681f27602a37baccf41020272be89d3b0a6980 SHA512 0abf063c3b2ddb68d85dcdb9623bd1806f1d19436560bf282b9929704d31010b9ebf1b7667279883070ca74f8cb2d0e506ce726d65c3d0bd067be58553f85829 +DIST firefox-153.0.3-bg.xpi 511623 BLAKE2B 5e39919ac100bcd7422cddfe01c217ff86a25321f2eeb8eaebc325485d72aea79e0ec493c5d4bd194435efd0a440c3fce41591feb34b19ff58da031a0125f9fa SHA512 7eb3c162cd374a8d705bb1b74254a0d2e2e67d76b3dcfad8248087f0de9cab2b3c3628ed5148baa3e83e27617c1b9db90b43f1e91b54cae23688d0d71708b907 +DIST firefox-153.0.3-bn.xpi 463688 BLAKE2B 0adcb4e42172f8b9cf8e48dcf36cd2929846a118a510e66f377d79f46993ba018853618bfc2c1bf2ff6c388b2c5cee3c337868c22d28085e5e104ab04131011a SHA512 42f1fe9af0d24f08a8447a3285ffbfa858ab3b6e7c3af82279d3ae7127df331f7dcdaac53e00f964f461ec6aef69486e05dc0e738e8f1310fdf4b1eb826a4d60 +DIST firefox-153.0.3-br.xpi 434254 BLAKE2B 4723487062e476748762ef948f5cce8629623f01ba90f51f801fbaa88cb0f2f082766a9146880305521c9cf8d3a18cf72879398d1b5e6b70f46ed6808d5e20c4 SHA512 5d1f5504cd17d4cf6052d993c1234ed5966d23beb8f556bdd4dc7acc62929387e73413d82d1262a2fe8727aa91c0e351a86fe49c75d9beefb3224b1c1cf375b8 +DIST firefox-153.0.3-bs.xpi 470468 BLAKE2B 5ba1a81f57a6f5764b696103611274397e3f483a924492cccd926113a8d9f2bebf2f683ea1d0e44df22017993fd2553c0d1611a2d11d6c4261f50d36d5efe880 SHA512 37b6f551aee6c9d120c0791eaaf84a844775999047decc299e8041ab2b47750b4717be724d2f4cd01ee27d5bda33d016b9be3ed28f80df465a691526f8bafb60 +DIST firefox-153.0.3-ca-valencia.xpi 412958 BLAKE2B 64dfc1ae3dfa7c977170de95e32581687d7de1555108d4657a6f3cd6b50ac172dcfeb450790feadd1efda43b10d29206f92e5b9a7869873b6ed9731986c9ef20 SHA512 8d2c84c588e0db6e221a15be4a1b4c0cf88da99189221ed2b6a3ba77826abf952b6a52e41a4b8ca6eef653d11e4e9167528914790bd42332409a855c615e8137 +DIST firefox-153.0.3-ca.xpi 471235 BLAKE2B 8380c0db3b09143fd468ee10c860159669d224c19a2da28a9164a03d8987ad0b09eeb1084438ef951943bab6808a2d377a3fbd438e6662a2b7609f1479c0c0c6 SHA512 5474630a784bbcc20467951d589081e81bf9bce906d2b975bbde1795c5e8049840b3a423af2d6a0ff5baad60cb310ad87efe685ee6509bb7c15766e0842485c4 +DIST firefox-153.0.3-cak.xpi 433004 BLAKE2B dd269d2a732ac744baf7e6f475bb255b00198cb5e7bcb332ac5ca2096c224cfcbc77fe8ec33d19121fd152d1151b46f00c03cf46a07ce989ab1e0e28b251fcc3 SHA512 3f0f0e94f5c2123671787aaeba4d8c3dda48415f2276be4a2b7e904fb8677b4c92d27a5cf52a3408c0c96dd8ad9f27f817725b5d42c645e2ef7e551dbffbdf61 +DIST firefox-153.0.3-cs.xpi 536278 BLAKE2B b1a0e23406fb08657ab86d46e28a8f3ac895df8803c9f73b2011bb367e56e57c8e063bccbf0bb48aa026bc7bfafe3d507608a13afc3a9ab4fde27b07a5f29131 SHA512 3ce2b27f6b0c3d085e85b11a646cb11c93e2cc66fedcbfcf356687f4a1325cde915e5d5f161b40a2a520c1e93d74be2e9cd3c65bbc731ca2d1d3c765a3ffaeeb +DIST firefox-153.0.3-cy.xpi 496709 BLAKE2B ea53bb267e4d8cc38a19c4b3a8bb1aa2d47aa9059231eb64f44a59abc7fc18c117c25e9fc6e4d4955921e664d325281231607e7d17feb7046996def784210066 SHA512 d60158831cf8804c0c3202cbb35cbbafcc2bef88e431cacdba2eba4b3bd71db25420b0889d2f2e6144a7c90a639a1fc6a53a6ccbbb873d5ddf25b65062ffc2ea +DIST firefox-153.0.3-da.xpi 477570 BLAKE2B 951144968e8577745e6fe5d5af46b0d0e5b74a6763352b6dfb2dab8d3881b4a0d06562d9ad1a84fcb9b9e766444dd0e10348f28d9137f6f658dadd63b338505c SHA512 265e365d71d4b703cbaad7ea4060084717bb98b950d394792d47e09297e1452699329ec3ada0acd36bb1621677a096a0f0f370cf56a2680e763e47626d860c1a +DIST firefox-153.0.3-de.xpi 508055 BLAKE2B 0c39f62fd55fd327b909d04d75622015211112bd2ebc9aeb24b45482aa49180f6dd047e8c5a624ac30ef505199aa4e4ef5a4a66f276cafe121118ed2d27fc486 SHA512 92ff3b42b8fbab12739510afac2b3dc9c7be5ae9db194b9d7b1a131d3604ebcf07b14172f929123fd0d46dcd7c587f0943cfb12381b1ed69de0abef107c9a805 +DIST firefox-153.0.3-dsb.xpi 522585 BLAKE2B 3ad90af0c4bce9168a8ec8f44df358adb8cd0b55007cd725a2878345dd548a12afef5197ab276530b0ebcc143bb63ef49bc14de243bf67196ddc3959c4ae38c4 SHA512 d0f0699b44a8e28935f7e4a8edaacabe12bde02de8d2065325268242507578b60e39dc3e0857058a21f3fb15ae95fe4765da6f6107ef36d75c0c591587ce50aa +DIST firefox-153.0.3-el.xpi 601751 BLAKE2B 9a20f78c227707b0c1bfdce07dd3cf040a8ab3f0bd0e9edf3eaba3849da2d73227fe1099a193d9ee083815794f535d5328daa8ffb10e7e615723f7a91e3de4ba SHA512 702e98349ae74cd59410b7014cfc5815b94688d52de8972876ddfda56b7bb7251b02e3c0d81c10d4d8154d206d6129d01f63a5dfc9fff63a6f7793c144fac69e +DIST firefox-153.0.3-en-CA.xpi 459401 BLAKE2B 8f1ac2ed63def289b97acbcdabf3624dca684f32796c113d7549099c432566c3b1b9e2d400d0624911a324e9a2377cf2bca1579dd9eb74ec9eee36cf3412e5a8 SHA512 23bba18f5fdf7a0ff1e56c23c608421e3fd226fe4f0917ef44a1c35a1d81bcb9729740440b98cc573967bfd686339eda14d23217dcaec9a3fbf83c9d14003ce2 +DIST firefox-153.0.3-en-GB.xpi 459798 BLAKE2B ac15cb913be979a2e3d262d0e4995659f01dd0d8eead19f57022b0fa55313ebf7cebe608482377c838e8da3bfaf4d7f6e388608b9bf8b01dcad2597f162e39f5 SHA512 c0634fce203a9638ba52a6feb5f82524f93e369bc03e6ed4e7076b95efbd5eecd7f70c43e3ef71ac46bb3ae7fdfa715d8db5cd7a7add91d9ed39c42d43b5d30a +DIST firefox-153.0.3-eo.xpi 485807 BLAKE2B ffd89c4690eea81ad79bc6f5e11b299f849734765846e2ca62299d16ca7c96c32c15c64c2932b48889815cd3c036edd6206c6f4f9a73f22cf7fd233ebd2436a2 SHA512 6244bfcf50035bc456db09f245303ad0fc3e75c54f4bd83bf1d997b3c83294038fe3d9a62c781d86707d0f08dc24c113d22c0b327638af89eb874968bfe26995 +DIST firefox-153.0.3-es-AR.xpi 498375 BLAKE2B 184c399f5349bfa918f37794a17e8d069de899a6cdf1a69d0cf249763c64d249c4ad00509401e5b8e31d087b40b00a7beee8c4068c688231c900f7cf555b6d2c SHA512 fe4322c22f9028ab5b36e058d6030202f7394e15c71e3f80c70ff260bc3c54c3cf767492296759b927b4bb8e11ddc38fdf1f4a83f8f2807c4d8060977904444b +DIST firefox-153.0.3-es-CL.xpi 500102 BLAKE2B 1d293694545563c86c540cfa427a364c0413e4e4bfd34f29c372ae7470dc1a110343d78ee2665b74c135ec5917997a1b9de81f72c9923d9836f8a38665c6b43b SHA512 5bc8e25dfb815dcc3b8b79eefdff305b8136be3c51c78425b7ff5b109f058bfbe99c19347b5edebea761c318bf4d752951440d7a9ed620fa20e3b7ec54fe1f8b +DIST firefox-153.0.3-es-ES.xpi 500411 BLAKE2B 3f4878767cce3e0bdbb0ea7996deaaf07fd5e8eaa39788960734629c83d577b19661a082aeb8f9a640b380390aec15ff8ee5d95238d4ad9f9142c58c70e6a13f SHA512 f49ddebe753ccdba4e36742a44f61ad00b10a1185fc515986993fcfb8cf7ea7aacb7d6bf04fc42d4f3693d9a00af46f8246a1e92a92265b5593fa450d71fec28 +DIST firefox-153.0.3-es-MX.xpi 503023 BLAKE2B e678fbf99d4bc724d75b6b50117c40ed80803b6b272a05675ad57e217c9fe51c5f689d1016c9ef949468a19cf97a2c47acda7ef2d4cbd676f4732e7eaa580601 SHA512 31d16bd884fcf5a9f7e81f9f18833eb1016957df2358ee7b06a88be6c0985c19b957a26f5716a61aa235af7d305c4c1ccb92efc182ff85010b00ddd0a2f0dbff +DIST firefox-153.0.3-et.xpi 402987 BLAKE2B 5cc407548a62e42d815a4c0b16e59483d2183fbfb40af55761089a31ce1673ec3ff42ae5c1d0dbd832b584b276d924f65a9442f31c185cc8edfbae4f99a57b9a SHA512 2b433f56107f1c9215980dc7b2b44042e06c581632ea7f30bb4570ddc448c19ae52754f1bd5a896bb3b04228fce5c7f61168029da6d2c1f9b393d2ada13369b0 +DIST firefox-153.0.3-eu.xpi 485815 BLAKE2B b7e0c949bf76c15eeb25b944a124e19effb7124e3be15422ec0d7e6318f0be3d9b5cbe6e59e6ef6e3cec6912b916051010861ae06d256b60c164c753ddf8ca52 SHA512 bb2ece689bf502d34d7efa47d0c8ad1b367efed40ce2e174da9369caa57248b45e0461f6cb0704952e54f6122b70ec3d290095ac74f9c20a03d96152be4882c7 +DIST firefox-153.0.3-fa.xpi 470105 BLAKE2B 10c9e08707992409905a117a116466a164ebbc59751a6766521b65190fbc4337e6f45198503ab880b16a516962cc371336f9456c4714ea95712c5504bac472ca SHA512 5b2591d7e6bf7ce011c269b5f24d253bbc2029220500392e174a1533abc46e0648f1d6f946e62771b846ff2493c5aff644f1c724d64040e1375bf4b3138a0717 +DIST firefox-153.0.3-ff.xpi 375323 BLAKE2B 197dae25855b146358126e7a867320b37e5f309c1ddf94ef8184b4094082ceec74b224c404927f39205634d2733207b22f446f88d76d58e253820a3f547c2a7a SHA512 5e32ada15c912cf2aabc02755f8921bee0e492b00ed9f9d830fedd850c6fcbd91de34acfaa66cf1f1ba53df97a2f61f8998ec22cba9a2bc18458bde8a3ead4fe +DIST firefox-153.0.3-fi.xpi 487366 BLAKE2B fe40e5b19743003c4c11b774b6070b5bf22530870500f854016e592227da2ad441af141d7b4c7281fdeeb5913f3b11441e6b8661fbf5866b6edbf0213e3ea611 SHA512 e9cc1b8ef57f9d4961fabcecbe018670fd17caa1221efecad103896cab25bdc538055d5c1486bb5d933774997d5d1d4761d824fa9580fbb34068049ccecc6dc8 +DIST firefox-153.0.3-fr.xpi 513862 BLAKE2B 50976a8ee94e7c3dd0a15ef61ebda71cc10da39faad0806115091f3148992d9431b32e75780fb5bfaadd6c3a4c22dd8ff93d3e64f527761aa84a1f6278a2e534 SHA512 9345f448e09590b818ae319aed7415d909bee44c0dcea75c910967d95bed44668cd3e506ec829617793f076d373a056042aff38b9fc8f9a5b9fbc9148a18c13e +DIST firefox-153.0.3-fur.xpi 502579 BLAKE2B 2fafd855f753fc3c1d0479d86c83b80470292704dbe513aac86315abb36f85ad405e95716e784400e1e5bac9fe70778ea0df3bf8202026be3bba39b855c43042 SHA512 432f370d1b47461535b82b2b4f6487f8504f827e000248e8433b97a2b7ea99840ba68c3b510aa10efb1999fed16ea5020e5bfeb536a3bcf0f47b8ca997de3fd8 +DIST firefox-153.0.3-fy-NL.xpi 495226 BLAKE2B e5a1168df69951e6ea18f0c8ec302d571b6022f485d2518096e9e4687be7a5202e504470aeeffa6f664a11be7386b75c37fc5fae3ec19dc4851972a1bcab9b6f SHA512 49219a8d63f949dcab1d4fc50fae198c1f1dce378357fe82375602747fd5b701bc39c687b46fe65b20587bd7e7b28701f74b5ed5090269bc0aa7ea0b2bb50017 +DIST firefox-153.0.3-ga-IE.xpi 386529 BLAKE2B 1e8a098b555fe3f5bcf7ed327bbece23f7d5e030cfedcb204924bd56524b661df671349c5501145062b0e9a3d4f20324e24e26b247c0fc572c0634136db5ce85 SHA512 3e49a9abb72314eec17ed71b840db376dfb089d95f090686634f01b38aa45100aad7573887619ff2326e88ad5942b323f43fb4067e88aeba60b01fc10803e710 +DIST firefox-153.0.3-gd.xpi 444871 BLAKE2B a8c539f7e0bd38021f73f1e306e69f2ca0d72463983095435a5cd79300ce9117da9748ecc0e58368144e3238b33e170a09fe395b6226ce416cfcc44e90e4ef1e SHA512 5a0cd632af1e522bd46bfae515ecc44050d1f6edfe74c14b5a7257ab74c97fe266a49eba59654f00ed1782fd6ce42f9e1431e8dc662273716bbe1d06b3274d86 +DIST firefox-153.0.3-gl.xpi 466742 BLAKE2B 5eb2d2547534c88cced8fb4fc395e4e52c4a933cb7a2c729c5e83fb967e207d0659523055b2674ab1a654a34c7f9e167773276a97def4c9545e08481d55ad526 SHA512 0becb55dec43282777fa1eaaa171bf5b2169c1b57a5da1a0903983314c83b5b1116ea141e4eed4487f74de1043137bbbf42e74a63a21353b34435f3541edee66 +DIST firefox-153.0.3-gn.xpi 504554 BLAKE2B 59bc540227dec7c753d54570e986a6e061b748d2215d03e3712e856da70d5ed83b7306d4acb2693bcbbff59bf0659c6bdef36b1e4e9e253bf47eea3c6f52d321 SHA512 9c8efbb061cc931fb293540c46fc59267c9aef89462c2141b85337af34e9959d22f04d1db1ceed919c48375dc10979de762d95cb9048020b22138b38bb04c377 +DIST firefox-153.0.3-gu-IN.xpi 421973 BLAKE2B e6f0e93e508f7b3c57915c594f543ead3578c58257c586f8844def8261a8541ba477769733e372269642d96cda4cf7583453d053e8cc928a255028970dd96932 SHA512 c3e3ba157d309bc642c618574239caf4144004c8329bf1e359075e4a948e2f1a40de2b38048873d4ddda80adb81728f73044d62732604fe5550e0350dd705140 +DIST firefox-153.0.3-he.xpi 510767 BLAKE2B e40cc336d53b3e17d34438a68f77fe62e2a303fa06c709e7eabc19424dc2bde1ce3878b1b78fa7812588ca548f4a763221ae06e88a3b037139487a19a1e67a69 SHA512 f42cf7a891b30a2854d6e3be3d0ee11145e9b08ce423b1b5d650e5001939af436e79e91114552b7bd8b3c01cb685451ce423b9c6b63bc59b432991eb2bbc9ab9 +DIST firefox-153.0.3-hi-IN.xpi 436699 BLAKE2B 7ec072f32d5c02a5a00bb2f3c654b42d715be10bc5d2f7974454df75aaea59a1bef047ece214dc30ff10e84e5ba05fd6cde04f534dc9ff6a545788dfbabace7f SHA512 f68b1b024e86fc5a9c376b8894d033e6c1573274eb4b645bafeae8d5bcd82539619d15e22daf2ff7b6384a6a236e6ea6638d411111698a4cba668faf881e540f +DIST firefox-153.0.3-hr.xpi 489525 BLAKE2B d24d341137d6a1847f94e827cfc6d764544390ed6255f24e1cc9a7b50137aa7b52f6545c05ee0bc3d633dc75a668dbcf2bded735f02640dcb3b1978bce10fa79 SHA512 47d8b403920caadb37e5c1e52deb234a8aaa05a1c240c1081d0eea3d85c15b8416ee27370d4baa84b8950a17dac2d9db3c728b34bc4ec906678d9aacec6e3c64 +DIST firefox-153.0.3-hsb.xpi 519206 BLAKE2B 0a2769554630f26028a8c8eb1728b3a67548524aa300465e2531af7da47296e56cedb0ef83fb077b6ebdf91275b4e294eafeaecdfd3f04abd5242c3f6bb3f0be SHA512 3b05ed12fa0cf78028f5237837f35db7f6b1203801ed2fba5dc1614987a0536368aab3b2987d41f8834bb84ae6e063a98db4a78b8ede841f8b4cf1950958abf0 +DIST firefox-153.0.3-hu.xpi 523483 BLAKE2B d0fbf28171f9c4c0a3205da2fb8efda217f6fcb35d315e8abc949c20d72179c173a5c5f89692636ce10597c49f689c25dc1f438246818058274085443b2dd1eb SHA512 5d14d95f11fe68f671f5f4e6f3abad07eba3c4ba3433a2327ca5c8738fb4473fe1c0b358eb81604df50efd2e05020038991348a0335cfc6e39f41f74f0255c28 +DIST firefox-153.0.3-hy-AM.xpi 529088 BLAKE2B b0660897e840fba5b5226e13ab2472fa0a6ec7adf1817e4426011aeb9e794f157a0c439c2390dae4a4c5fc7065dadc17609e29794fc4ab6aae900ac6e5f0a650 SHA512 7968838b4a7f37b3805756964b0e4ca54a22d083dac9996755144f8799d822df6c3869179c8606665b60c6151e1cc5d15b6fbb685aa8cd0f8638edbbebd49fa1 +DIST firefox-153.0.3-ia.xpi 481821 BLAKE2B 7e0efb4f3f61c598bbcfab048c871e2b47dae2f6b231291adc5f5340a0eddb372ebc4850fcd419419e9fc8095f5af8ce20cee26823e971e9a4cdffde8a1041d4 SHA512 bbb48200ad742fff35f8f3514d50fb9db8eb7a3c6674721322f8d5efbabe6b9d86f91bb8d99ee1e7fbdf57a94176cca85b18ef7599d3e469fc19634ab1e076c2 +DIST firefox-153.0.3-id.xpi 453118 BLAKE2B 8d6357cf792b887e2a7a680a26348efd18061266915e4eadd982561d1b5dfcfa1c7fcf7a1e5dda9a5d97b745a4c6abb7c7fdd4936f913dcf5ff697b2ac0dbca0 SHA512 1c44856dd384b66a49638867467c6605cd465b074a80bb54201435000d637fcead0c314e738a40ee89ecc162fd42f30849fd76c432a9a64bd858d7ffcc71ce55 +DIST firefox-153.0.3-is.xpi 470300 BLAKE2B da961abc919aa7f7132f793a898586100d57d69ffc0fc12ca65d1f9a935ff020c71774c492019f520c54ef01fe28034d8e8274599f6b0d0737513a38f2a406ee SHA512 a884d5ef463fc6403c87bf1a5d3c0c6734d2c310deabe291453e85e64964475696d8cb0259e5e8a9b33e9a6289508df5f3bb2aa29e288bb9955feb38d52edd97 +DIST firefox-153.0.3-it.xpi 494065 BLAKE2B ab7a988b1650885093382784908127a5e40e1753ab37899866bed3e4e6621739c97e6867eb84351883bec3def3693cae73c0245bbd62098128f02cf55d6576b4 SHA512 0fd7f05dd526cd77b5adf783195ec250813e37ba5d04a04a8f3de1ee7fd2d797de38ca0680ffbb4b5f6d3ccf88842a7a387a0f16e820b6b6b1e057d251f20d9f +DIST firefox-153.0.3-ja.xpi 538118 BLAKE2B 461a6f9303128765d3feef7eeb2d05955dd18b126e816c696c16b1a806b5dc17d57aa46ba38d796ce754acce5124233b4b879d13ad0221796fb300f4af6ded36 SHA512 2f500af4945eb80b5c7a7949801062e4fe9021ef3d685a31328f173e88561c5e874ebb6425bdeea79dd9b1d1367ee89b6b176ed1fd1f49197f88f209b2962a94 +DIST firefox-153.0.3-ka.xpi 557835 BLAKE2B 4c2536fc20ad6a30e03ac95108dc8ba5ec0368dcffbf59ba9e056eb8d5df7af8a295f9ae3f1df20291b3d513d996036dd1df928936502c162e82586049f06173 SHA512 d8a19e359756a93ba1bacdea55b5b380d9ca88b0eb21dfa94477f636f3cbe411243dc7c4e5bf17f3d60706dc62fdda31e1b9c0eac13d225267c2176307287174 +DIST firefox-153.0.3-kab.xpi 455124 BLAKE2B 93c59675624d0dbfdb04e06793ec402fdbd05eb3885e536c0092b3a79bcb5c3cf6efd10a3a6cfd2504b3b9d05cffc0b3f4fc84309f417504cd1f65e8bb2e3e60 SHA512 16ac71532f1397c2f59131239b50fe45a007ea1c961a83831cfbe1ea0fc003dae82b4941f3647d1839dd3f1d169dad76b568134b4e53edf0468fda414c5146eb +DIST firefox-153.0.3-kk.xpi 576964 BLAKE2B 525be8d9ce09a750e9bbeae8f92a67545d1f3ec1b431bbe7e8118b58d402a4d93116979b6fec496c0744e6faa6c6310f07d7248a235c592484e24a813c4c6b84 SHA512 ed61ccd7ad41661438f43623e70bd00649d28489f511d343f888f9f3ad999ab92f8db11187df5ec538567152c5380da49841f368eedd79ba5197374a09ad4dba +DIST firefox-153.0.3-km.xpi 441199 BLAKE2B dea13989cdfefcce520895879425b74a53339086e290e36caa3c08587d4ff49d7eb7236dce90e3bcc50191934e248eb8cf5b51c6d225cb4fd5427f7e1bd19d42 SHA512 5089f7547c3f06e0998e3f1d4a132498d53d0c74bf3b27ae48b1066229fde753eb548f13c6ab1fddf65373b65deb9423338b931f979617a9070a893c3df114e3 +DIST firefox-153.0.3-kn.xpi 404965 BLAKE2B a35383f375eab366408f8918d282a42f62d56e0ef69433201951807bc5a2d27604e1582dd4e6bbd66093d6ed55757b703d8b1ee606eb2248231cfe2153f3753f SHA512 c8d8c9c862cf9c145535c0a6ea2691311f3e29cb39aa0dd7926d42269c8a9121ffa2986d0bb0aa2337b09a752a58bf085472a236548fc067f87c3aaf8590eaca +DIST firefox-153.0.3-ko.xpi 522226 BLAKE2B b529d047a5b3fa79d2f72967064f03cd6b0aade3b75cf5ad3c5dc1606fc6ee484fdc32b1f0234fb2a66a87aaaebb3c657fcb4070a271154795dc9bcf1e8ab7ac SHA512 8cf750ba17031ab4a6cd8832ee66a9d341d993b6906e248a48656c053f90990d0ddd8f03afccffd40f6325e34a7d923de2c9ad6d7e70ded665f400ed54321011 +DIST firefox-153.0.3-lij.xpi 383932 BLAKE2B afc372b47a1a5c9dd1cff3e5f6c1d6e8acf6fc15e3dcc8cf7100daeb6cc6f0ca61b77afa9e7281a55bf5831f2126dd09ce1b6cbfc06a63672a7cf2dd9ceb07f3 SHA512 16a5ae80b7fa9f5e5dc76d69515e6a3a770422e5932cf532e6140fead0f5dece1a6fc0a649cec4cfff6732aab901d4b21be8e9f8e2267ea3791cfb967c2caf5b +DIST firefox-153.0.3-lt.xpi 424463 BLAKE2B 25a2a3e62330beb3ab91a6dc361320bb400b1550bf16009d869deddff85bd50ad96841028153a0dff34f20ceeeed520c34b9669e20a12bbcdaae4dbfdd7ee37e SHA512 84ee4656246f80c34400bb2d2ca47565874f1ef6dc5e2d00a24533974afd55dc7aad01f0889cafedbcd5c1662b2fe215bb63550cb30da281c8113fbed15d05d3 +DIST firefox-153.0.3-lv.xpi 440453 BLAKE2B 083e9c7ba3acb494bbce5f45d89918b4304221f46773cc8a7e38fb85c42be2450318553d8577e77ca2d9d2ef45c69c1805817f128d755f3dd00acabb6cfca2d7 SHA512 05085a06bebf32fa3e31749c534362c9866166e0a5946a82114751f85f667ec799cb80122f3b946bfcacd90d29c83ba1ec3cf7ab3ccf84d8d8eede435438c358 +DIST firefox-153.0.3-mk.xpi 433633 BLAKE2B 68532b360cdd819744cd2952b9dd96ef01a7e63b4afb7277fe706753190e249071a824c27bbce8927308539a4546780d3a52227eaff152a9bae0e655e8acad5b SHA512 94f3a5316fd887b2667e8a75da8b62e6479ccbfee705585bcf2f058534f9567865586b2ec787eee628cc1e114b8f107521e32444250a5b8dfc5c13a3c9c3c172 +DIST firefox-153.0.3-mr.xpi 419627 BLAKE2B 9a983f9b4bd0a019d1e42b6483e3360901ec39d4ddb34eda1ad3a376b8bc086918446c400fe7a0215ef8e80dd6614747551fdbb18bb15dc1aaf556f5ab372709 SHA512 6b55349d8ed79fe864e677f9b7680fa350c49be3b08ea7c0e41c352db1b019a05d7a14478f47819fd74fc8836d8768c411a7c01d2d84f085125d7ac69e256e8b +DIST firefox-153.0.3-ms.xpi 375073 BLAKE2B 840820b22198dd7160cf98724c6275d03c2fc8ec9aad43fccd313695792d05927326488e3668e57bca5e86d27931f3dee17bbc31ccd240bd7b559f42d4d91a06 SHA512 31fdeabd0b51ea5aeca5f8ec5c0db315b3cba236e3a12b806a0e2488a0c9053832229f9ff1c4e3b992fc9a13b9103667bc93f40f55d8ae4730e5ae5fc15e8e36 +DIST firefox-153.0.3-my.xpi 416277 BLAKE2B 71d2ec98ecf8a20d093c96e9ed688353fd7bb54fd62391e5e61eacf1ac21503845012797f1bc3d6d68d75dea2be5a302810fbe9087625bf287c9de11656ab23c SHA512 9330c3ce48d7bcda97a13e2f354f9e6bfb16544498d55e8328044bae03ed561a85604f3842f923b9a8a6bd30046d9f1ec3ce7ba009c2324f6dac9aa14c0f257a +DIST firefox-153.0.3-nb-NO.xpi 480782 BLAKE2B 7a1b4a9531fff0627c14a456b6c8beaad93a73ce3d40a28b190b78e112f9d236ffd117854eb5a54def009ebc8a9247435946f2ed6f5818bbe52904a08fb41950 SHA512 2480aa11756af276a2084049f119a641d20930879ba7eb7fbbb677dc8168b10589b4e82583e36bb88f9a619da8d6d83ff8ff9214231091d393c6243f4b8f1a3f +DIST firefox-153.0.3-ne-NP.xpi 417537 BLAKE2B fc725bf62f6d54f926033c9b87978a2bc48fa875625bbb824b91cd966b547c873420503cbf3f07630ef5cf4a54ef65d03189947362186b5c508ae25c5a821efa SHA512 bc988955e08d9611a859e44341e5539a6ebbb804242bb1f15a884928a4b296aac9a6d8db1a163077595263fb9cc5d94fbe21701bc46f6f0a2e6c63e546568847 +DIST firefox-153.0.3-nl.xpi 488742 BLAKE2B 39776546bfdbedbc97ad668603b4f4af0ab1aab1a2e7cdd7ceec01dbedc6885f10cef299aad799f0c6103266361199864d5d4a6424cac1aa155b3513ed82cded SHA512 37c80f02fcc70c83a67ca01e9f7fe1958d5dde6bedcb5e2b5c25c7e04566dc5bdaedaae39915d62894eff40c964855b9148f33e36a651f25e54a523c21dfe584 +DIST firefox-153.0.3-nn-NO.xpi 484318 BLAKE2B 1fca6ba809e6925e0a7137a00c85617c769d322231b9b9c8f28378c7e97e70541a019ad1269fd8e3d53290dca44722d82a0dab6fe3aaa2f4b07376a1f8b9e700 SHA512 ac1a190a4ba133a646ccc358700354a9a1fcb40aa068caeebd96fe83c17b17c7608b71aa455e6ad8f357e83bd2f287edb253fda8aa7e8b34b831d84ecc535d35 +DIST firefox-153.0.3-oc.xpi 448148 BLAKE2B 0e3945ddbeb40733934efc5df6e81a8c6f8b984a23600c93a39ae6d51a02b9dc913b3e6fd0557530f6b29a359350ec05f0ca9307606b22cc4d1d3152ed376657 SHA512 5e05a5b8d48a88947fa4f5e17c703fc43be837e41186885e6e77b6211921f31f1548186506498121aa0b6fbe0daafa0bc9d98e1776e22744201623ce537d0e62 +DIST firefox-153.0.3-pa-IN.xpi 571642 BLAKE2B eda4795d9043a1ff97cd9b9a986405081fb7ac09679ca14cff2a95d04aa8071589379ad0ddd257efde866dc4d7d358c4267f5ed7f9dfff2a59bbb6ab5665ff8d SHA512 f46f3459a72779196b312e0dd9352abab078649afd7ee96de8ce16df5a43b278be870670ce6ecd16f6b14d34cc353f3fd3baf2817beb2580bbc70556b0eb35e6 +DIST firefox-153.0.3-pl.xpi 520243 BLAKE2B 94bf70a56e09343f2ac4ed1f8f82eed4c68d38aa88b8f8f9d33b2b0728729b0a6d344ef8b0e3cd29239c4a88cd11ed6c52792aeae7c80787007beb2b49b6c5a7 SHA512 1d7f8b0637a84a9e254cbf169fdd6e7aeac77451ecea86fbd1f50775478564ea332e50b1993247beaf4950f7f5968aa9e9f698f6c8e390d2e0bc95d3ce600479 +DIST firefox-153.0.3-pt-BR.xpi 493509 BLAKE2B 15d8fe62859a21606660f0f063fe571d533c9a5f0366007ba78bacebe4179b71ea8c522298ffd34de5b5e2cd2114f21ec0cc100adc35e8f724a7a661d86c01ad SHA512 a2346f47019360f3e10d3708ae1b7f25ac9930713453a55f179a6f05f34b9f669bf5c3f2972d08b3af8cdbf922afacc11d60a1438bc871d58cdd3e2af91c8a32 +DIST firefox-153.0.3-pt-PT.xpi 496452 BLAKE2B 8b49e541af538736d34a57fcf4c552c59dbb90d2b6857bfe95e273df41f281eaefe5e2c6d68e6aafb9bdf566bb47129673d7b416a42fb4ae5f0d8c645c9c4eb6 SHA512 ef743e0986381d8c6c0cd90d39bf5d74ca16ded384c7d49dc539c1d7ae3bdc6cf4be7a3c431eda81114f4696650146df97b96478ec48a39f94fde44a707a8207 +DIST firefox-153.0.3-rm.xpi 474026 BLAKE2B 5a76df8a25d3f327255e76f8d236d5cf5d90e232f3d673802d29779d69ffc59646cacbd84cd79ebdf5399e0d102309c629c17340929615d13ec956a7b5204bc1 SHA512 30926a2c6a7868d6f097335cf2b7d53b45ada89ce19175c257c3c1a2bd5a78705c6becfd2f5ebf53c834f9a5548cc752e6a88838c069bc80dd3f36b8eb04a4bc +DIST firefox-153.0.3-ro.xpi 507753 BLAKE2B 3b1dc49a15a729e5c2cb42ae16a7a96b3000ca27613a26a742bd0972e1e3e2692bdb8a3b3920a5670a625b8cffb22b8e22c2556983514d187a512c5235dcf466 SHA512 1a4001780e21b28ceab71d90d2cda37334e97ab6d804d62c9c7a6fd7a210c9f21f52ff4276dc82fd08283c2f895e3bdc6fa75f5da191f8dbb6e523d1e2292c7e +DIST firefox-153.0.3-ru.xpi 589697 BLAKE2B 16bb35dbe10c70a0030569030f8dfa04b9dd6b151327585bafd1e5d69699a8a553a4321555d5abcc51ef21c2e4fc2450caac142e4f0839dcf8943261fa1ee0d5 SHA512 9ac1a9053c229f384a8c07e48915373b29a3e8b5c765b4699045eb4846e02cfcdbd78dd9beb69365b258667c950202f18c8329c7b03887af29039745ffda7467 +DIST firefox-153.0.3-sc.xpi 471638 BLAKE2B 86e363bf34aad32c559d40c948c24abc85c64e3fc738d12d1a1fc4bd639a9cb289a48076ab467119c682326bde98afc7c854ae855aaf5d5774c6aea337e417ff SHA512 4c25eb3e8a87b1d0481ab7b29fd0bda647c75da95990bca6f5e39a4e6305bd94315a9dbd17656dcc57ad3f6822ec4f7bd1e91563fdabb7dadb7ddb2d51e952c9 +DIST firefox-153.0.3-sco.xpi 387297 BLAKE2B f377be9ea8f43c2e05245c5a3c2c24325f230fbd46a9ab6877bd1003af740c02a21a1c018a71297b22aa491797e041c80acf3650547c775ddc092bae0ac9f581 SHA512 05e3f6082b902f45d52e7b84e8fa2ba506980288dd7fe0244779c0f548a38467159e44a523611b13b4735ba86891862ba757bdb4386ce5b9eb3f1e4384ebf10d +DIST firefox-153.0.3-si.xpi 465722 BLAKE2B 7a3332d936909b61dfd647d439969d802f1c29de6613e07e91adb69bffc956025fb7d56e16a2be50247d3c455e5216e9d9fe5ae3c6e12a81deb388b1faf96653 SHA512 390cf48b683bcdf6c1a6a352c90d93868b17c6a248e9168a0833ed0ff056c7e3b85e7c35f273ed128a9c1e3d3b90290581a3fe5392c32acc7332aba9f4abe9a7 +DIST firefox-153.0.3-sk.xpi 526402 BLAKE2B 080ab31e8724171b8fc53dbdad5bfa8b73fba787018f2096fedd283feaf41b13991e030ee5221929ee39023205c8a0d5388bec724a30fd197352696ca95c0234 SHA512 aed38fd5f7125c5bb48f7b6a3c920e09b73ecdafca6897a598240be3d8e1ac3a2a17b3d7a07e87af97fe1df9d596d5a99f1a82e5fc2c356e3bd038f1ae7abf79 +DIST firefox-153.0.3-skr.xpi 513306 BLAKE2B 2cd86ed8ce4f6ddeb3c4550ed839fbb0044d255d400d8063c0cfd228ccf0a590276a71b6309293e8ca68445169272556c10a51664e313e7a6238dd91d1ac48c2 SHA512 66913890732a3172bad1ca7b6bb0776cb04cbe760d2bc70073d98251e7a79d5eb151f756ec6df3c8dfadd962d997f9661ab5b216f7a8b3b2236736b97ef7c804 +DIST firefox-153.0.3-sl.xpi 495418 BLAKE2B 2b72670ef6f5aceb4097cf8efd040a3ddf5b96dd9f74015f7a6d350f56b6e8431b269fe02bb92bddeb0cbd0ccb5ba46f44fcf95c4e138fe155ad5f1fa90b789d SHA512 be9ee95fbbee06dd43908cd5b9b7872d29d39c1bf85f72148748d612ef28870f8654c50e3ba158e30412bc0c30e87e1f34a8987e3037a37f41f64c8735ef1c2e +DIST firefox-153.0.3-son.xpi 349851 BLAKE2B dc234ff2a3b4f85a72bc61f69c683ef877d3273a306ea02c27d99e4592438cbb367a6ed72177e1ba0556c5f7ce7f60065e3dc1abc332e92c7bde3f24093b930f SHA512 d329cb7dc3a16c3ad9cca2ba63d0c98f57dd6d8ae98eae1b20d2dda499d401e5c57677b2ae90781e566d90fa0b76bc466918b3aa832d700ecec783cc6eb71d94 +DIST firefox-153.0.3-sq.xpi 503897 BLAKE2B 31039d61f6b2c441bff63a6865822efafd53a85e8fc7b962eedb05b59ce5fa059b14df94587591b2e574ff4ca3d756314e41bd12c2a2d973390de2aa0351a05d SHA512 cad0eab6bfb8548539738c9cf18a03bd297628ce490630c8fac797b411eff001be5108296faa8055806954ea3de861bb218ebf1f3218183a39f241322447b9da +DIST firefox-153.0.3-sr.xpi 561263 BLAKE2B fd091057ef84068f2be486b883fb0041332aaa679eaa56e8a60e578693431dedfacf5b9a5968e1a712e6f2e7fe91b00b2582d88f7104c780ae1fef71dc4d65d1 SHA512 46397df481f516c7a4b2d3d0f1ecd7993c50ad1941a4fee8b42b0da09717b50cc21c4480d91260a19fcb159af45de24c60669a7ed2ca2ade0d0d54525525ec94 +DIST firefox-153.0.3-sv-SE.xpi 488206 BLAKE2B 2206197e45bd699e834f511deadee52ea731e117b173736806faf9247e52024f968e3eaa67006d01431137170aaba34ed56f5da5c864a726af39fab00cbcf2dd SHA512 ec637576c5fe7a3e37ef37aa524c28a8f155f0ac22742a664f3192dfc8e42f5b938c78cbbb304332878cd8833c1f006e6a311c724a4d7864466164fecf92cb0b +DIST firefox-153.0.3-szl.xpi 406526 BLAKE2B 2ee94128d1d34bf93f856b8a1fda113aed413cc20198ceb990c0772edfbf959773ed2723b03baa610be3d9c4c39d7fd43248ab9215f42c0054fd6e1c011dd536 SHA512 c77fda6ecb7f7501954fefe282755d5fea182ef586311f5bac0b81a42e233407a73773f02fea4a45fe1eeca10a6f66f375449aa265cc10c8a8609d8007182b18 +DIST firefox-153.0.3-ta.xpi 408037 BLAKE2B 4331773abbffce65da6b4a997c9663b05d4ea5b410afbf815dd3bd62314523006d85a160fbda408de01d1f750154929b7f5969dc3f6b1581b572e707a703a5a2 SHA512 e08329cc574f2ebb19e997b3c478704e59157904533684f7bbaa592f6378824bdfd693641f81ee9a78484c3661dbc84605b4589da8bcb24811d18985c4976d76 +DIST firefox-153.0.3-te.xpi 447261 BLAKE2B 5080c335e2c88d3304431f8cc8d08eef0cb796ce34534e9f720c4baad6e52fae7b7ffa3424840e233700639d61811142d058d7aabccefa4f07614e4a4779a3b3 SHA512 e3fd3c0db8e528728548b3aecaba3f6dbe982dd85eb9f41f4d8c950881346bef0bf41054c2d5c52d8ba748bc29993c1f126b3cd292bfeea8a92b3a1810ec489e +DIST firefox-153.0.3-th.xpi 565322 BLAKE2B f2a704f0ad716bea3868ecd523963ea54b18b9e214028997b327327d0397ab7e471024444a4e7bfb5998bc2bc811a722853824b77b76ded4e6a2b400ad64b0b7 SHA512 72e683cf4ddb381129d3055f9a55c7e70a82ab2ad6378fb3e5fae2d24df47cefb94c8a1789a1f71e33aa1bd8543d0d47604dba5e5068a8eac750ea496e330e36 +DIST firefox-153.0.3-tl.xpi 404175 BLAKE2B 17023f27f5eb4d7c66417e0df85d3e65c3e70953961133acb0c4cc2ed6a4d984dae0d5de2e581a618c9dbd30491e16412235cb207d458d2f92439c2ffecb59a5 SHA512 2ce5432e9c7e54d125bb90b44b6d96c5d05abc14df2038f8ea33abd0d4a71a91c86ae8379eb5fdd55ea922b507f239e61d0b2a47d25cd26c91947a36c10f4678 +DIST firefox-153.0.3-tr.xpi 503083 BLAKE2B 0c2ed51397cbe881838b8deb6b4c6e56a2862a86f333fbd5941cac5b8cc5113a0116d5fdf5a1c1a8e6af6198054e7073e4656ad8b39976fc8e403dc9c6171bd1 SHA512 3c716170398615d2682a57365aeccd54b0189704f362f0ac1c03439776837cc5c3e7e0320ee8d02f89e0b330840ba5e06e043738ca4da63efe78b1ad30dde601 +DIST firefox-153.0.3-trs.xpi 394910 BLAKE2B cacf68bacee9268a3c58dbfa73fb03b97864bf10fe9c1e79532578a3969f64f6655d378d07bc8ab22bb76d4cfbc70d7abbad2d619d262823854c4588e0ed05d4 SHA512 bfe2c9b91ba30913e0ff174ab6bf20dbba5c77d09ebbb0bad8be4c133edac83648e1cdd697dbae3f2f2c43378f142704288657991c0cb07fae5c635ba7e8ffc7 +DIST firefox-153.0.3-uk.xpi 575479 BLAKE2B a0396420662be9fecc9a9677747e32ceb2d48ebd3beecfc312ad39bab335feb6e132dd9fe1607d2b51edfbae8d61c9f5a645bf5ae42b9c64e69d5cb9594d30d1 SHA512 2f094917fb77d4e613fdc462f4edd0b2449a459d1b8aac69c4a972876a48bfec5872a55ea2da175ee485ae295c3fc1da142a17e4b8328354ef8f5c3388d2bcba +DIST firefox-153.0.3-ur.xpi 429408 BLAKE2B 42aa6d319419d38835bb1ad3306d02a02ffaca11efeb9565fac968f23bd394645c04fb98728ebd16538ca4d8f950654a92969ce34e5fd909b90c2022b1be89dc SHA512 eff3b6d8624736a83a24ee421bb81f4c35f240acc2d67a275c06723c543b8717ec2bf1b318206c39f2b3b4787ac441d209896e47ad942e0bc23ed776a7ebb343 +DIST firefox-153.0.3-uz.xpi 376416 BLAKE2B ff849476f2bae9907f02a2eeabe93a101f97b353c9dd06bd4e2df066cbe635180109a990c25e5d7ffaf61b96fb315042adb02a8377070ed3592085e8d768cff9 SHA512 ec4283cb35539d70d02fdcd9d46552cb89e61f20129c27f98017299dd1eec710bd441b26098de1c30d467af8c713644452457efdcd616d05ec8431a8bbf3c0df +DIST firefox-153.0.3-vi.xpi 527368 BLAKE2B 318bf7ea61816cb7a9ac64a65f184c33a1889866d7cdbc15c963fcc88b66e761f666ab84f9060f4befad003dd2deee178c264f05d2c3258dff1745bf92d78457 SHA512 b523b41e20a0b7be5f403ba009cb92a80ebe4fa79723b5144474cd3ce60390926bb5bd6768603c20a8ea8098852bef204abb16ae5116114a1fcd2dc34d31f14c +DIST firefox-153.0.3-xh.xpi 355306 BLAKE2B b9291f6e8eea59e3a439865be44763f232cc6c6299e3083b278b5f666c29fb2c8e5a8451ecb63866269dde4a3797177a36e905fffca7bf5bead731db119fdb4f SHA512 505bd1eea95eba8f069269e6079b04cc24f115fa0d37d95f7c63c552594297bc9abc94afa762d454cb80e018140983c30f7e78c237a0fd24071be6bfd3a77a78 +DIST firefox-153.0.3-zh-CN.xpi 514258 BLAKE2B d441894e766e4a0b01f8449c25a56434c417ee5ef36850c2251858ad3547a05970b50fd86b8c720a1e84335bfdbe40a0f64cd8a216ab8ea28acfe83d53dbc6cd SHA512 f2c0b405e6ccd04a9a777028c43aeeb8c02cd0674f65ad88b04dbc52c4cc4512c293a64f0f00709cf1d11d06040109daa1191fc592a6310f56e523697007782e +DIST firefox-153.0.3-zh-TW.xpi 518947 BLAKE2B b12f12959d5595f88648e39dc8f5c344077852b9a465a7da95aeab8ccaec6e0eff2fecf0191d9eb8e05437b92b539ff0b19a908dd54e261373fe72208310d142 SHA512 3828047795e8bbf9102b336a1e66d3d1dd485b001921277825209ccb8f98355544d32a58781763388c42eb01813ca165df638b2bca0a73e1e47da5a9deac0b34 diff --git a/www-client/firefox-l10n/firefox-l10n-153.0.3.ebuild b/www-client/firefox-l10n/firefox-l10n-153.0.3.ebuild new file mode 100644 index 000000000000..47f081fa54d4 --- /dev/null +++ b/www-client/firefox-l10n/firefox-l10n-153.0.3.ebuild @@ -0,0 +1,181 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/" +else + HOMEPAGE="https://www.firefox.com" +fi + +MOZ_PN="${PN%-l10n}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +DESCRIPTION="Firefox Web Browser's translation files" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +# 149.0 is when the firefox-l10n was introduced. +RDEPEND="!<www-client/firefox-149.0" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}" + +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_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 +} + +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_install() { + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${MOZ_PN}" + + # 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 +} diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 54b27a889d61..ab4679164e10 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -103,5 +103,6 @@ DIST firefox-140.13.0esr.source.tar.xz 644768324 BLAKE2B c30fcd2ddd6361cd0a94d4b DIST firefox-140esr-patches-13.tar.xz 15628 BLAKE2B 824c3d42f2f6cf70932fe395cf11dfe9043e09e20d6dfd2bd64ce4567206def45424e82b738f27c71648f0b2d97608746d22565cf7aa35713dedd71a24cde449 SHA512 d4d59818944f6a8213598308a1095a0f3c9818e6c517587e4630056d432a0e9673ad627447ca18dfa884dbb35bc2921e54cfc63f9c5646765e0f66a75279584d DIST firefox-153-patches-01.tar.xz 11308 BLAKE2B cfb7e8528f46e780ff10d728d6f2f00215c9cb940f3ba289aafee183199fd2a38cbe866697b5bd89458d8dce7e82e9a7dc6977e817bbeac1a01178a64adb0405 SHA512 11895ae7eba03b12ae60c280c3ea555c2954dd15eaa8a459f9a95b96629723ed599ab4e7738b33f1bdb0d09d19bccb53d511eaac9913a58e6418c11fe93c92bc DIST firefox-153.0.1.source.tar.xz 803443372 BLAKE2B e7b1749b81c81744d3461c18b48e84a72adbc130a54256321bb2a854f8e96fc315d5dc97ad685610774e27de39145aa6897b9c832a1da9fd9f7ecd89555f678b SHA512 310d1aa27b7902ef5e052962e3b7d2819d0f5f6e596fddeafee53f09e9390d4801f5b654f4ca1e9fd4c15c71241fc31844afaa4d086f82c51b516a401fbe7f40 +DIST firefox-153.0.3.source.tar.xz 805598752 BLAKE2B 643a82abbb618943f4f299a25768d77d1b21daebec81a2101a0d69288a4d7dd76734f4a58d6e48469e75740f6e08f9339e6a5f3e00fdac4963489c66b22fec35 SHA512 449f30c51c94f53df2ceb45e27d7a2724269c929519159149de9c8f63f797af2c1cb2b5cd0a6aaf67326ccfd0c23c133fd6831b832af1a258632da5a864824bc DIST wasi-sdk-32.0-arm64-linux.tar.gz 142940986 BLAKE2B 45712415f916c2749bac9002157def84f75d005bcac0403cb9b5a814623a1e0c2a2f24092d55478ca5204afa82c7499cabf405b8e5c6e95a514351801da4a91c SHA512 e39f3130290e63a7c2674e8838bd6569ca6a630c0231e2a303d6bd4a6b7f9c78b59a99606193c3ba3e200d93d9221339d23653e98ef720632d54c5c6866dde69 DIST wasi-sdk-32.0-x86_64-linux.tar.gz 143157058 BLAKE2B 62b83e2db70b24361962b392551c604b21c59535b8d34a5e652447d7b722b033327334f0e17381d28eaa6dcb31fb02aad9978c66b761fb592b6de502012aeb57 SHA512 f77c08d1eb0f8e765bed4955d4794b33bb38149df5a144bebbe43e91fce3cfda7210cdf57073c0ff23c1d3c68105b6c69b4782af1643a0be2f3310001a2398f0 diff --git a/www-client/firefox/firefox-153.0.3.ebuild b/www-client/firefox/firefox-153.0.3.ebuild new file mode 100644 index 000000000000..86ad01dd5105 --- /dev/null +++ b/www-client/firefox/firefox-153.0.3.ebuild @@ -0,0 +1,1389 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-153-patches-01.tar.xz" + +LLVM_COMPAT=( 21 22 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 +RUST_MIN_VER=1.90.0 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=32.0 +WASI_SDK_LLVM_VER=22 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.firefox.com https://www.firefox.com/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.firefox.com" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit 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 ~loong ~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-pipewire system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +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.29.4 + 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 + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.125 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + 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-3.10.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-78.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + 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 + +# Firefox-only RDEPEND +RDEPEND+=" ~www-client/firefox-l10n-${PV}" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "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_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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="18700M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10900M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + else + CHECKREQS_DISK_BUILD="9700M" + 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 + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + 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 debug ; then + CHECKREQS_DISK_BUILD="18700M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10900M" + else + CHECKREQS_DISK_BUILD="9700M" + 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#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + rm -v "${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.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" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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 + # glslopt: bgo#969412 + moz_clear_vendor_checksums glslopt + moz_clear_vendor_checksums encoding_rs + + # 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-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --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-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || 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 + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338, bgo#977845 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + mozconfig_add_options_ac 'Disable JIT for RISC-V' --disable-jit + fi + + 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-pipewire + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + mozconfig_add_options_ac "+hardened stl" --enable-stl-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 + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + 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 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=TAR + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + else + # Attempt to fix pgo hanging with gcc, bgo#966309. + export MOZ_REMOTE_SETTINGS_DEVTOOLS=1 + 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 + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --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 + + mozconfig_use_enable test tests + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${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_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +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 + + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + + # 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 + doexe "${BUILD_DIR}"/dist/bin/vulkantest + + # 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 "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + 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}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.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 + + if use jpegxl ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable jpegxl via pref" + pref("image.jxl.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 + # might work fine with vulkan, starting in 152.0? + 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 ! 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 +} diff --git a/www-client/mullvad-browser/Manifest b/www-client/mullvad-browser/Manifest index 7d1607075dfb..eaf804ae82f5 100644 --- a/www-client/mullvad-browser/Manifest +++ b/www-client/mullvad-browser/Manifest @@ -1,5 +1,7 @@ DIST firefox-140esr-patches-13.tar.xz 15628 BLAKE2B 824c3d42f2f6cf70932fe395cf11dfe9043e09e20d6dfd2bd64ce4567206def45424e82b738f27c71648f0b2d97608746d22565cf7aa35713dedd71a24cde449 SHA512 d4d59818944f6a8213598308a1095a0f3c9818e6c517587e4630056d432a0e9673ad627447ca18dfa884dbb35bc2921e54cfc63f9c5646765e0f66a75279584d -DIST mullvad-browser-140.13.0.tar.gz 799233754 BLAKE2B 3e7c592a4eb87e2a25c6046251a47f6edd2e3e76adb1465a8c4cac021eac13bab98280d230b91d3bf43a1b7ddbb37d6bc2b914f338c8bd431474603af6225fb0 SHA512 743e2649806dd665ea821a01d0ca30cd9a81123711d54c34b0b8446198156c22a4788c5df92533d8a594eb6a931a4cf20139e982f204494de8732cf6e12d7e20 +DIST firefox-153-patches-01.tar.xz 11308 BLAKE2B cfb7e8528f46e780ff10d728d6f2f00215c9cb940f3ba289aafee183199fd2a38cbe866697b5bd89458d8dce7e82e9a7dc6977e817bbeac1a01178a64adb0405 SHA512 11895ae7eba03b12ae60c280c3ea555c2954dd15eaa8a459f9a95b96629723ed599ab4e7738b33f1bdb0d09d19bccb53d511eaac9913a58e6418c11fe93c92bc +DIST mullvad-browser-140.13.0.tar.bz2 799233754 BLAKE2B 3e7c592a4eb87e2a25c6046251a47f6edd2e3e76adb1465a8c4cac021eac13bab98280d230b91d3bf43a1b7ddbb37d6bc2b914f338c8bd431474603af6225fb0 SHA512 743e2649806dd665ea821a01d0ca30cd9a81123711d54c34b0b8446198156c22a4788c5df92533d8a594eb6a931a4cf20139e982f204494de8732cf6e12d7e20 +DIST mullvad-browser-153.0.2.tar.bz2 911379618 BLAKE2B be0f0a7f02258b58d2149061af3634e82600eb7b78a63c1437728ed4af763ffa31c800ed46115f5d76c9efc204986fe58baa40ed0eefa28b4f662a64263a286f SHA512 511dd6339774a22b25ff519dc042770f2ef3e433c9a264817bf6e70e6b63e01400d4914a015e8c3d771cd5892c231aa17877bda807548f770d3d4c3df31eb00c DIST mullvad-browser-extension-0.9.10.xpi 687004 BLAKE2B 24bea115caf9b1510b43d736adf0a84c0f5554125044697fe965c30b0459d7910f6381c9b5e758ed7d19c778b4b8353f6cba8ecbf81473969a82617fa85f2d07 SHA512 8bfd5f656bc04c7c65633e22a4920db339dc7b0f41c31c28e40b4f284059485d6118b19bcdcf425d0db1f2a61c6244b1e59e569b51974a249c7039e33c68bf03 DIST uBlock0_1.72.2.firefox.signed.xpi 4585322 BLAKE2B 86d5f46ec0bc31ad8c32604a8f58e654b3b0c2506856e8365f2912bdb47b31e26091dd2b1d1df554839870e81b476e37a3d105376adb641e8b4ad8279561d033 SHA512 644b7d455962372cc7044e6c522246594a248a614ff5745ad2c63a23d0ac047ca78271551c93beda7a04496ce093400aebbfea156e31dfbb298a95589f4e8fe1 DIST wasi-sdk-32.0-arm64-linux.tar.gz 142940986 BLAKE2B 45712415f916c2749bac9002157def84f75d005bcac0403cb9b5a814623a1e0c2a2f24092d55478ca5204afa82c7499cabf405b8e5c6e95a514351801da4a91c SHA512 e39f3130290e63a7c2674e8838bd6569ca6a630c0231e2a303d6bd4a6b7f9c78b59a99606193c3ba3e200d93d9221339d23653e98ef720632d54c5c6866dde69 diff --git a/www-client/mullvad-browser/mullvad-browser-140.13.0.ebuild b/www-client/mullvad-browser/mullvad-browser-140.13.0-r1.ebuild index b3ad4cd8fa67..01041116089a 100644 --- a/www-client/mullvad-browser/mullvad-browser-140.13.0.ebuild +++ b/www-client/mullvad-browser/mullvad-browser-140.13.0-r1.ebuild @@ -14,7 +14,7 @@ RUST_NEEDS_LLVM=1 # Minimum version required to build. # Max version supported by LLVM_COMPAT. RUST_MIN_VER=1.82.0 -#RUST_MAX_VER=1.94.1 +RUST_MAX_VER=1.94.1 PYTHON_COMPAT=( python3_{13..14} ) PYTHON_REQ_USE="ncurses,sqlite,ssl" @@ -22,6 +22,7 @@ PYTHON_REQ_USE="ncurses,sqlite,ssl" VIRTUALX_REQUIRED="manual" # Mullvad version & extensions +MULLVAD_P="${P}esr" MULLVAD_PV="${PV}" MULLVAD_EXT_PV="0.9.10" MULLVAD_EXT_XPI="${PN}-extension-${MULLVAD_EXT_PV}.xpi" @@ -34,6 +35,7 @@ WASI_SDK_VER=32.0 WASI_SDK_LLVM_VER=22 MOZ_PN="firefox" +ESR_PV="15.0-1-build2" DESCRIPTION="The Mullvad Browser is developed to minimize tracking and fingerprinting" HOMEPAGE="https://github.com/mullvad/mullvad-browser/ https://mullvad.net/" @@ -42,13 +44,13 @@ inherit check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multipro optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg MULLVAD_BASE_URI="https://gitlab.torproject.org/tpo/applications/${PN}" -MULLVAD_SRC_URI="${MULLVAD_BASE_URI}/-/archive/${P}esr-15.0-1-build2/${PN}-${P}esr-15.0-1-build2.tar.bz2?ref_type=tags" +MULLVAD_SRC_URI="${MULLVAD_BASE_URI}/-/archive/${MULLVAD_P}-${ESR_PV}/${PN}-${MULLVAD_P}-${ESR_PV}.tar.bz2?ref_type=tags" PATCH_URIS=( https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} ) -SRC_URI="${MULLVAD_SRC_URI} -> ${P}.tar.gz +SRC_URI="${MULLVAD_SRC_URI} -> ${P}.tar.bz2 https://github.com/mullvad/browser-extension/releases/download/v${MULLVAD_EXT_PV}-firefox-beta/${MULLVAD_EXT_XPI} https://github.com/gorhill/uBlock/releases/download/${UBLOCK_PV}/${UBLOCK_XPI} ${PATCH_URIS[@]} @@ -57,10 +59,10 @@ SRC_URI="${MULLVAD_SRC_URI} -> ${P}.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}-${P}esr-15.0-1-build2" +S="${WORKDIR}/${PN}-${MULLVAD_P}-${ESR_PV}" LICENSE="MPL-2.0 GPL-2 LGPL-2.1" SLOT="0/$(ver_cut 1)" -KEYWORDS="~*" +KEYWORDS="~amd64" 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" @@ -1189,28 +1191,7 @@ src_install() { "${BUILD_DIR}"/dist/bin/${PN} \ "${BUILD_DIR}"/dist/bin/plugin-container - #DESTDIR="${D}" ./mach install || die - # ./mach install doesn't install the locale information for some reason. - # Use packge-multi-locale instead - local mymozlangs=() - for lang_tuple in "${MOZ_LANG_MAP[@]}"; do - IFS=' ' read -r l10n lang <<< "${lang_tuple}" - - if use "${l10n}"; then - mymozlangs+=("${lang}") - fi - done - - if (( ${#mymozlangs[@]} == 0 )); then - einfo "Running ./mach package" - ./mach package || die - else - einfo "Running ./mach package-multi-locale" - ./mach package-multi-locale --locale "${mymozlangs[@]}" || die - fi - - dodir "${MOZILLA_FIVE_HOME}" || die - cp -r "${BUILD_DIR}"/dist/${PN}/* "${ED}"/"${MOZILLA_FIVE_HOME}" || die + DESTDIR="${D}" ./mach install || die # Upstream cannot ship symlink but we can (bmo#658850) rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die @@ -1236,8 +1217,6 @@ src_install() { local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" insinto "${PREFS_DIR}" newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - # Enable extensions in private ( this is always required for mullvad ) - #newins "${FILESDIR}"/mullvad-extension-prefs.json extension-preferences.json local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" diff --git a/www-client/mullvad-browser/mullvad-browser-153.0.2.ebuild b/www-client/mullvad-browser/mullvad-browser-153.0.2.ebuild new file mode 100644 index 000000000000..b61dace0745c --- /dev/null +++ b/www-client/mullvad-browser/mullvad-browser-153.0.2.ebuild @@ -0,0 +1,1399 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-153-patches-01.tar.xz" + +LLVM_COMPAT=( 21 22 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 +RUST_MIN_VER=1.90.0 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Mullvad version & extensions +MULLVAD_P="${P%.*}esr" +MULLVAD_PV="${PV}" +MULLVAD_EXT_PV="0.9.10" +MULLVAD_EXT_XPI="${PN}-extension-${MULLVAD_EXT_PV}.xpi" +UBLOCK_PV="1.72.2" +UBLOCK_XPI="uBlock0_${UBLOCK_PV}.firefox.signed.xpi" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=32.0 +WASI_SDK_LLVM_VER=22 + +MOZ_PN="firefox" +ESR_PV="16.0-1-build2" + +DESCRIPTION="The Mullvad Browser is developed to minimize tracking and fingerprinting" +HOMEPAGE="https://github.com/mullvad/mullvad-browser/ https://mullvad.net/" + +inherit 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 + +MULLVAD_BASE_URI="https://gitlab.torproject.org/tpo/applications/${PN}" +MULLVAD_SRC_URI="${MULLVAD_BASE_URI}/-/archive/${MULLVAD_P}-${ESR_PV}/${PN}-${MULLVAD_P}-${ESR_PV}.tar.bz2?ref_type=tags" + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI="${MULLVAD_SRC_URI} -> ${P}.tar.bz2 + https://github.com/mullvad/browser-extension/releases/download/v${MULLVAD_EXT_PV}-firefox-beta/${MULLVAD_EXT_XPI} + https://github.com/gorhill/uBlock/releases/download/${UBLOCK_PV}/${UBLOCK_XPI} + ${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}-${MULLVAD_P}-${ESR_PV}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +SLOT="0/$(ver_cut 1)" +KEYWORDS="~amd64" + +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-pipewire system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +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.29.4 + 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 + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.125 + >=dev-libs/nspr-4.39 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + 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-3.10.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-78.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( + >=media-libs/libaom-3.10.0:= + >=media-libs/libvpx-1.8.2:0=[postproc] + ) + system-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + 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_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 + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="18700M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10900M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + else + CHECKREQS_DISK_BUILD="9700M" + 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 + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + 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 debug ; then + CHECKREQS_DISK_BUILD="18700M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10900M" + else + CHECKREQS_DISK_BUILD="9700M" + 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#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + rm -v "${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Fix spacing error in `${S}/toolkit/content/jac.mn` + # mozbuild.preprocessor.Preprocessor.Error: 'AMBIGUOUS_COMMENT', '# ifndef MOZ_GLEAN_A... + sed -i 's/#\ ifndef/#ifndef/g' "${S}/toolkit/content/jar.mn" || die + sed -i 's/#\ endif/#endif/g' "${S}/toolkit/content/jar.mn" || die + + # ValueError: Item already in manifest: chrome/toolkit/content/global/aboutTelemetry.xhtml + # this is caused because our mullvad branding conflicts with the original aboutTelemetry + # in order to get around this, we remove the first entry and keep the mullvad branded one + sed -i '/aboutTelemetry.xhtml/c\' "./toolkit/content/jar.mn" \ + || die "could not remove original 'about' telemetry file" + + # 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" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-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 + # glslopt: bgo#969412 + moz_clear_vendor_checksums glslopt + moz_clear_vendor_checksums encoding_rs + + # 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 + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-packed-relative-relocs \ + --enable-release \ + --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-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --with-base-browser-version="${PV}" + + # Mullvad + mozconfig_add_options_ac 'Mullvad Branding' \ + --with-app-name="mullvad-browser" \ + --with-app-basename="mullvad-browser" \ + --with-branding=browser/branding/mb-release + export MOZ_APP_REMOTINGNAME=Mullvad + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || 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 + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # riscv-related options, bgo#947337, bgo#947338, bgo#977845 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + mozconfig_add_options_ac 'Disable JIT for RISC-V' --disable-jit + fi + + 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-pipewire + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + mozconfig_add_options_ac "+hardened stl" --enable-stl-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 + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + 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 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=TAR + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + else + # Attempt to fix pgo hanging with gcc, bgo#966309. + export MOZ_REMOTE_SETTINGS_DEVTOOLS=1 + 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 + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --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 + + mozconfig_use_enable test tests + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${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_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +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 + + # Install MULLVAD BROWSER default extensions ( mullvad, ublock ) + # these are normally provided when getting the pre-built version + moz_install_xpi "${MOZILLA_FIVE_HOME}/browser/extensions" \ + "${DISTDIR}/${MULLVAD_EXT_XPI}" \ + "${DISTDIR}/${UBLOCK_XPI}" + + # 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 default mullvad policies + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/mullvad-policies.json policies.json + + # Install system-wide preferences including extension prefs + 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 + doexe "${BUILD_DIR}"/dist/bin/vulkantest + + # 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 "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/mb-release" + + # 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}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.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="Mullvad Browser" + local desktop_file="${FILESDIR}/icon/${MOZ_PN}-r3.desktop" + local desktop_filename="${PN}.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 + + if use jpegxl ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable jpegxl via pref" + pref("image.jxl.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${MOZ_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 + # might work fine with vulkan, starting in 152.0? + 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 ! 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 +} |
