diff options
Diffstat (limited to 'www-client/firefox')
-rw-r--r-- | www-client/firefox/Manifest | 102 | ||||
-rw-r--r-- | www-client/firefox/firefox-128.7.0.ebuild | 1376 |
2 files changed, 1478 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 300ea881ac94..b112f3249164 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -311,6 +311,107 @@ DIST firefox-128.6.0esr-xh.xpi 418478 BLAKE2B 54d8625ccc0303bd0168476884a60a2018 DIST firefox-128.6.0esr-zh-CN.xpi 675204 BLAKE2B 25bf725f17d878b72125bef0d3f18e8424b3cd19c53ea98e6b5822b278b39e71e60cd19efb8f5d300b19d185e14f3f92eaa8f5247475b7fb81d90b3bba9fcc74 SHA512 ddeb8b74783d6654d9becda9108b1e2285d761de7170f850b854b78006a59775f341772de5806a50758d675f341e34b64b195772028d07a75cd6ceb27da0918b DIST firefox-128.6.0esr-zh-TW.xpi 677426 BLAKE2B b1c7f621ef3a73053ac60f57845d721fbedee579f098beac71f3b9d97b60c6a9ef97963829b4911cc1215f7a1dc935f3c9d30720b92f0eafa0f9d4ee46ebabb1 SHA512 1c415b1c94bbaabd6bb454a517aba30b7c19bab2a57641b48aedc2362ed8cffac1956cf56adee45ede9a9604dd1ce270d294b56363e859cf9e12e24d7adae48a DIST firefox-128.6.0esr.source.tar.xz 563259116 BLAKE2B 401c54e4c3e81dd1d4aa9fed072e5266a7549d9ac05e03f9755d3da192c9c46d2bc636e8bf0a7fad2269074615789ab274b897c8bd75fd524f4a5f138c3aa1d5 SHA512 49bce966e062766861712bd65cca46a438b339fe31598f69e4fe64da78ef6f8b4581c1d502341ef1c032aafaab2f4f88e69cb93a0b845ba7173fec277ae695b5 +DIST firefox-128.7.0esr-ach.xpi 465483 BLAKE2B c0717d674ff6ef9d4b9cb16ee4a6a023467408364be0b95ad9c483d3ed2e85b07b7ba0b7c855235cc6fb476e7bf2db1489bd013d72459e65f47eeda6b2bd6155 SHA512 e52338351c9c04f52a1cb2b78a252e1f419c2595d173e565a4ef902bcc4bd78ecc37acf7ba6eb3062ba8d09a2ac2fa83a72593abf020492ec437d843754bb5a8 +DIST firefox-128.7.0esr-af.xpi 418819 BLAKE2B 3d040b9ed03ef6f458d591d3db5f2c58b52ae2bed6b0b591fc0fb5ac179ed2f5cd577b9d2e1523fd152bb883716654f07eb1ef3eab659244fdbf7c6e2b0f3f84 SHA512 2f51ea8f920a2b5e694ebb847098f9807c1392ca0cebbda156904894314fc6221f428f4dffdeaf298681192b486341baaf25f75e896be191456317168de10c41 +DIST firefox-128.7.0esr-an.xpi 508460 BLAKE2B 0e2328a7dbeba03e903e4773f3d1915f4afa79f3766e1f3e901cdb5e6201d5dd959093cbe2410c28549a409c04b2c5731d3b1bbdcbee699b78dcdbfff66feb1e SHA512 1da8dcd4b9b1dcaf1a3f324dc9057beb40e18ccdbe249f6121b629a05059e1de4c2385d773f52ebf043acf550ce1f3fd88acef5f070c25f6919a874b3e1ed0a7 +DIST firefox-128.7.0esr-ar.xpi 630804 BLAKE2B 409aa9ba28b196014526e3f78fc89e658722892c237539f110f56567ec16e6ab10896fc83a5998e7269dbe9e31ff369668c50e5f856187a43074a5d8e3ef45bb SHA512 9595b1a87b7f59b632b29718539b8ef830df19426940f5c04b837bc0dafdb10ff2be62d90d486395b8f0dc26b2bd60aa58f8aa48de0eae25ba26e580b5476b72 +DIST firefox-128.7.0esr-ast.xpi 497755 BLAKE2B 25dc917d95d110a54c594f2ca0812cda91af64ffaf45ed731cf5fe56b50a652ffc88900215fa6ce1fd5c2c800755b0fc10d234c0746b23ddf959ce12666d49d7 SHA512 b645b69ec25be8339c067a9f7c24640e778be70a09f4aeff0b57d76d43bb7b3cdb085c069784465626b3527b956d905ed741cf46747dc09c2b202b118cf7f397 +DIST firefox-128.7.0esr-az.xpi 492196 BLAKE2B 341f22a0da5ef46e09002c373bda7eb3ab5b772a54028dd3ff93e368644e8a17e10421879e529af1caad647c619a1e556360c92d52e65301f6b2cbc4de23c4e9 SHA512 ccfe501bf75ace33d0dc9e0b8271fa715e9b9e3c2bab6395d49a3671e6fa8e11d6530f2e04763b282991995f8110763fe8b1b9a0484437347f6cfa65f2d407db +DIST firefox-128.7.0esr-be.xpi 731599 BLAKE2B bc61e97d46cf47fa32af39c8ef5e5a0fdcf7433f4eb940218e635c89b3a2d108e8236b0a909e541fc5cf60c23b8a23243dc8aa283804edf3e8e7ebea6bb28710 SHA512 ea2dd0562293447b3a3b67d286f45a35cf0b61496a3ba4129d05018af0add11ff78c758341bbff550104a6d96766b5fae6d1d96b7a0093b9f18623e572adf64a +DIST firefox-128.7.0esr-bg.xpi 647383 BLAKE2B 8970cf49ffcb0ba77ea13bafd52638939fcce83c6d847d9319418eb1efaef243a0154412ac2242bd27f9c4cfe943057fecded3e5119aa718a97f3aba688df43b SHA512 6bd507162933c12c089254d3cc52fde6be7bf8fd07dbdaff17db9617557e52fbc9d07d6bdd982facc9989e8a58cefcb405939aa381e6b145b0b96803bf0b6ec9 +DIST firefox-128.7.0esr-bn.xpi 582959 BLAKE2B 69085d183ecf08712c95e06081d6acea16b9b198996d3772b7534e2988c9e0cf432f234bf693630751ebcf386cd4039fbb1a1558cc726e323a2df7504db81474 SHA512 76bff1022714f4cd634133975b939b6f5eade0be0677272ff82a896bbe79829ac8ac2b774502a8c08984ce968a9a6ce1012478f62f733379a682309991128141 +DIST firefox-128.7.0esr-br.xpi 595350 BLAKE2B f7ca2f9bc0624213cfab8c8b656374825dbc243453cf804250b5999d9ab8eb31bbf35a5c6e158ccac70fa43aa765903c4ee2f4f310089f16e3bd1858c208fa24 SHA512 20bb0d649fb3264b9614a1962a78a6fb1de956e973c0f929c72abed1224f134b61e293e1f52568e9b5d1dd9b69dace3497c89376fa47c1470ba1abf6fba5d69b +DIST firefox-128.7.0esr-bs.xpi 515699 BLAKE2B e464b7f37c7b4bfc1f82d9b35a81ce713cfb2e8af347bf922b1e0d5b9af254a622c3e380b027681d0767a33cd8878a4279436f303cfbab81696a0e1531955b1c SHA512 647aa9b0a31f447feda5f2486825e0d2585682378f27136a5bd875f8528dd95ac5acf3ba9e15603e8443f13956d15f67336239f25a461579596ff9f8376cb46c +DIST firefox-128.7.0esr-ca-valencia.xpi 547674 BLAKE2B 42782fb0776edbd7e8531f6b40425069479bdecc483512a69966d4fef2e570939b3ca09645e702b3a592ceef27fc660470a8d469acecb7467c2c2741b0af225a SHA512 4731c7e66f80f30f50bbb0a8d4d74a342c5159fcf207e51885f84f471cceaf334c176d70f953151f5d2de165463d3d75822d04e1cc5a0e13e7e43f74fa367a2d +DIST firefox-128.7.0esr-ca.xpi 599211 BLAKE2B 4a3a64b94b72c22308474b4230fe7159a24ddc096ad279031c81314e3412a0973d6cebbda5912aa04e5bcaa2ce5b5ccb97cce8f60184bde411cc06a5a82ab909 SHA512 d999ebf32fb7ab11d6eb2e2739926769e716c37568336d50a8de9bd89c8debc7c8562ed8e5b59e3d414ce5f8f8867859e08918bf521b796003ddb9d3ba3b6666 +DIST firefox-128.7.0esr-cak.xpi 594639 BLAKE2B 65ffa086eecac9a70df7cc28ef129c39a0b49e9dc880805af2a7173b485818c7487784f129a4211b8f5b9fd97252593f4e87dd8029bc27d2f11fae11ccea0c11 SHA512 9d4429772183a9868a360cdc0df0aefbe4239eb324197939334ca858352e67d4de0e255cd096f13bbf91911ec65582697ea16962327c358f47a171921049f4ab +DIST firefox-128.7.0esr-cs.xpi 675127 BLAKE2B 4a8a22a479eaff56aeb5d83ff0b2db0086f9fb0a8f4a021fff1b7507d7d9762caa882ca0e1f03bf37ab0619b9e1be0c9351529d33ca466d4e2595d756084376f SHA512 7637cb7036b0ea5b0b0b3d47128ba4ac75a50dae788e1d55098431d21d61ab45f0a2e5f41e346d4691ee82ad933660be6a62bb056434fee13bb242771506daaa +DIST firefox-128.7.0esr-cy.xpi 641505 BLAKE2B d550bed591b840b7a9ea9ca420899e22f47b20d2347288b35ecef2e05d5c68eddecc0309020feb021f030776af4097cec6aa677f621509ef2bd0efb6e8524b0f SHA512 1fda03acf5f9b6c121b8fd0c80b381a0bfd1fbd055d89ecb0b4598629e022ee94f9087d6db70e69e547d7e7425c9ad3e7d1750face58b6a230000301fa3ecb9e +DIST firefox-128.7.0esr-da.xpi 624953 BLAKE2B a09caf036a30b41978254d006756badcbdc6c952ceb5216f5fd5c9073e3f4a4773c3c18e243d0c34a46fa0e8738a93a8e3dc14e1f15df520cd77ec0e19aa7f56 SHA512 1848b785ebc27d3440b76528ac40b39fe74ebc124d7d11deed977d4d2a03feac87b8bcbd326b32ea88ad829d218515b298110cc7427a6d3b806815b190de09de +DIST firefox-128.7.0esr-de.xpi 647908 BLAKE2B 44dffa5bc188000d04009d4c809d16edad8bfc62264f80b911629a8d282d281d25016396281a6287eaffbc7384284cdf9d26c1109f51ea515930aa48d42a5d39 SHA512 9f54dacdea129f7e6ceefbe6f68995d0b032b594f6a754dc7b7ae7df8f77c5284c404a83decafc72b74e5e3a78a7ff12d1a52bf07fd764bb451233c05b7928e2 +DIST firefox-128.7.0esr-dsb.xpi 667677 BLAKE2B c708712ee3a962bcfc8f67a6d786166b156446ea4e4079af5fba5aac95b16a38ddf74fec29e71bc2ee960874d9bebb0e4ac65124173c089d171e33742a63031c SHA512 3e46e6466e5672944fdab9d5a9bd5d2a2535d2acc5f75187070831946788e8ba63db775ccbb48bc52a36b3232ce2f8b2cba57e756ecb73582463c2a3d5c2a41a +DIST firefox-128.7.0esr-el.xpi 752451 BLAKE2B 746f6dea14a29766707292d6cafc0710105dc16d2f7890d7dc9e57fc590aa27783bfcd28a8ac4041de9849d0e5198de35a33ccf364cfbd82ab369eb70297f261 SHA512 f5084c71326762fa049b6d20a2a67cd1e4c7fdb133c9f30f4af20085092105b22b68f62e86f0ef177a886d802bec5ffd665154dc6e7997e459e72a581a5b35c0 +DIST firefox-128.7.0esr-en-CA.xpi 597230 BLAKE2B 3a44aef6adc8289ef4cc3197c8e38e37ff1191ff9ba6240647a8b9172e70df9ccc80e9c9828bb26ee9a194e76c76567ffb0371e085e6d99e1d490b6260aa1ba2 SHA512 099b8afd7c7fb5daacb947e20e5e64c208ede29c7b72b8e020e6005b00554b32e136c282f679fe8ca7850bb1c7c6adbb8409e304938a64d539118bce163e6b8c +DIST firefox-128.7.0esr-en-GB.xpi 600792 BLAKE2B c4a5943c47511ae3513c5ed12e7574a95dc6158d76dedef0d9bf8c76f50977ca3c80903064f6463a636cf87af897cbee0df56f1fa94b5635799b7ffdfcc1c5a7 SHA512 d69461a248da1ddca21ee93865eea8a4283c37687c2c75c568555c37b898e2788cc86009941c891ec50838e9fb2333fbaf7a46f771edc78956c4a7752c3fa51a +DIST firefox-128.7.0esr-eo.xpi 628830 BLAKE2B 4ec7ab9524b668b65b71007d52657e4b7770ae6cc4662115806118a1965af7b14d95a5375c724f606cff8b7412b0de558d1c2425a4d8e08bcc21f663c0a8729f SHA512 3b5a3a134ab1dc4f883ccbec519fe4c939a22148786543a30ad19fd99bf28e63111032ec160e90d28abeb89fa5a43db138a29878038eaee0dc55364990ac120b +DIST firefox-128.7.0esr-es-AR.xpi 644964 BLAKE2B d00f51be339de81c93c3a51cd21e9feb97a6393aff925a356dde0efb3c93d03f4f718f8efcce8cee1ebb83b782983dea5b6ad2371e92f3f4be622cf5a7e1b4f0 SHA512 b22c2a96975d412629a1e79a616a505d951bbc4699681a456606352a929a64f1686203987637059d02d0d9f82c45218580bb0138ce9a4edac95850f871a1ba3e +DIST firefox-128.7.0esr-es-CL.xpi 644428 BLAKE2B 43cdb3b7afb889113ecbf51d84793e40132274efb1cb04b0b9449a4f93ea14e254b9bee6056582cd2666a18080a24f2a8e9dc431d9bb700f0937cadfe5695e91 SHA512 51889302b604ae367dfb23e2ad80b87d3c5e7119b7f515c0b466a9cd3104f7cb9f3fcddbc0ad00d2da46de6d248ea342808f6f426d4daf69ea7d89e6a0e7f5e3 +DIST firefox-128.7.0esr-es-ES.xpi 637339 BLAKE2B 67d7bc561e56438e0aeaeaa9b7670b36d7c26c939f22877c0a6eb0f8e6131ccce9d8e15a03e3b4bff9db55ad37a66d0521a54b10ac69eb61983343a50852b7b5 SHA512 94e5cd9ad2037c17f3f23711cb51b13ba6cd6c4c1c229e42eadd60863c457225e5077b6055384f638115f83228efddb16925e39371b4105c5bbc170825670853 +DIST firefox-128.7.0esr-es-MX.xpi 638918 BLAKE2B ebce9d0fbbd89eac929a4b05c81981c005a21db7cc48d82ff9b139550b9afcb6d0f5f5aab142887f7f1bb8c8508aa8ea902bd518354e02f557e8d768486f2705 SHA512 5648462262f63f0f71aa288e9283d2fb607ebff512e9f92368dbc07cec54d29daa201b2a5c29648fdf0f7f60605306cef5a1a5d501cd3585c2a66baf68dc2972 +DIST firefox-128.7.0esr-et.xpi 541123 BLAKE2B 582a9411e0ffdf3dc8e0330961f93f016a4a51d68c21d556c875e82dd46294d9f2bfc873decb26fbd6065176615657ea2117d9555640187933e4467619ac21d2 SHA512 0c78f511c9a919f078c7548fd6dac2955a9fd39107ce7c9824beb51a529c40b018bb015ede00e0627ed01f57fcd0fc17e23e87d0c248cdd25284679a00f395d0 +DIST firefox-128.7.0esr-eu.xpi 612333 BLAKE2B a0bd8dca7ec305e44d5069cdd53f5967a53e7ae89587916e3e11c06df242b44ca4c5ab3237d73c6354e94dcc471035d736790499f9527f6ec6c18b6574df3345 SHA512 f022b60feaf1875ed5ded956001c9c9b69dd1fccd452d3f8755d73d422a641539e34a97e8bd62e470a24bce075ef7e529f72125ad107def218c15a3eb2ff52ae +DIST firefox-128.7.0esr-fa.xpi 593839 BLAKE2B 9750819f819ccc0db3f872c7ff5438fcd1d2edb98ec1cd6d93fcdcb31327d0ce9e493302a8c5b77eb14600731e5539b81816fdf95b35f5228fc5b16db6d4dea6 SHA512 e271e3f84bd19ce671cd676864bf521bab9655aaf5b5377ec3c53c6667ad36e15465fd17b7725883d2360d85047c183633a8582b39f51ead3824970576aac71b +DIST firefox-128.7.0esr-ff.xpi 477474 BLAKE2B 66398649808ddc748feff2c31d7110aafeb0a13cbf012e75263ad126fd852d325288eeb6127d659af2e54b32a7484f795e0b92d3daa289d42f36e549a655aabf SHA512 5ce43cceb00fa1cee1fd77dd05894593092923aee63ccb6b3cbb04b674c13f5813549db6393f33f11a38985d829d3ece0b3481ad654420f0e33fdbf11b9a969d +DIST firefox-128.7.0esr-fi.xpi 622991 BLAKE2B 10912886bf3baf02dee4ffc14de89e64245d6846bafdb5c6cdec099f4b95c4e21dd462e4af42bf38072349c9d4cbbb9bed5db8203f5910a1ef7612c0b7f9f300 SHA512 1f3759b7618167194910692bdb4a4721e56ff9b0689d321faffa9c8ce4bbfe03c2f3dbff2e738fe098c01f05ab5e74a2086cf531a3ed9779c04d9dda2489c21e +DIST firefox-128.7.0esr-fr.xpi 655856 BLAKE2B 3454d2a9114c8e45bda9af1d9658ab0960c4538dc2ebbae0e28aa68dad1371d6af139d9c83e785155b3a812b0a2db898ec2b726439ce40e6a0fd42bea0461dbf SHA512 057b2b5a19ff9aa876f4399ff10bb4b170fa3c27d9015c094dddc1dbfb66ff7eb359e143c4bdee4e80caedaa29c0b913abfc1108cf0a21d38476a94383e6e0f7 +DIST firefox-128.7.0esr-fur.xpi 651348 BLAKE2B 3b9f5f5607a6ae7451d3749d979e22d9782a3fc35a963238442a64f2602bc3093cd6173a1bc5d6e23e6ad29665f26b35ddcdc92712818418c54fe719a6fc05e0 SHA512 7706db7c71cb29557ef2e5da24c284195b54fe6b614db987272964de7679cb1c113bbd58af324d761b04d57d20d664c7cc16365495c78f6737ee44d2e858c459 +DIST firefox-128.7.0esr-fy-NL.xpi 640610 BLAKE2B 5262f46e3771d921dfb64cbee52a8e2aa346c94db891940d87941dca98b1d4e301f306afa03391fcc6546720d2c3d16ca5feaefc3b3329688a9d95d636486490 SHA512 7a8bc523ad28074792e28ca654b22954b905f148d2ba93423d2de52cf5e78380dcecb8622cbbd5cedabb9cbaf30d46d81f8420f4a397917e20cfe99c51d740d9 +DIST firefox-128.7.0esr-ga-IE.xpi 472340 BLAKE2B fd89516f031ecb68b1534e31aa68c5e6f746276096003d77ccfcb4173117fa7ce2ee1be5ffcaa1f5b87e8fd3968705feae7dc38a24fcd6afa3646167cc2c6e84 SHA512 a313b0275def574823739c81519b6148d622ac69c249a2df41a2ba5116f42e816707798825fafa25d089c3077c4bf9bc7cfb1c2bc1220d01c13445b2eafcabf5 +DIST firefox-128.7.0esr-gd.xpi 598315 BLAKE2B 4aa692e993bcfeccf794d69fdcac60d1f35388994dd5fccd964d9eccee696b5a8711bb15dab753f87544dee9ce5e10425ed4edc3b57c7c72b3f21caa19b98131 SHA512 dd46afdbaddc04f8c2cfcc9b53f477275dbcd0d89433894924b49b89bde2d07b593e3b3a37a0cd939b17ab96166d9ff322d9fe9774ef60c1149bc05855aa50b0 +DIST firefox-128.7.0esr-gl.xpi 609630 BLAKE2B 124ea0a0765672a031042a4237eb601f6d252c6c8cf87fd4e5410626f7e68dd76fc4512c70d9f5369744536c9093c52fdea324a4296ead3105c95e9c336f0fd4 SHA512 a289a316228eeba2f536b0853c41e24c02a48acdf77c82f75be4952adac7a9b93ac47f40429c1e6c2da7b8da240dd3b43de1fe028747fdc3c2e942fe2d5d70aa +DIST firefox-128.7.0esr-gn.xpi 652876 BLAKE2B a4db36dadd148715796e486f3042a55b8d98999e5b3749f39810bee568d0a98a8796ffc072c9c9242979ac36537e62caa2cbfe2ad3edb1eb44593820fc14a747 SHA512 9c8988e1b136ddb7ef5f86f495d10ab804eae80498e26e9a7745b485e204f1d5b8897a94142355a68b577174a4e7e2dda8c6e0a726b90ded00468ac32f05f8f5 +DIST firefox-128.7.0esr-gu-IN.xpi 528791 BLAKE2B 95868d0d7e297751bdccfa2355626d461db15d77e4eb7194531668d29f7ca49aaa61742bb4da9bcb942762f25c61eec315d3fb618e525165229e386f23f8c0f0 SHA512 6580a50e9e22122a6b400e1b258937c7adf5c247a27cb20eebf0f5536d69fad9e15f428d2735d5f2f8dfd267e2b05136aa7e008769f032ab4f685167a5954d3b +DIST firefox-128.7.0esr-he.xpi 647295 BLAKE2B 9ce86e695e77b7f969d5838b51ac8dd16b0481a90c85eb1360405ba2ef84b03351d23eb0d7d50b8417c727f71e366cdb341ca2f9f7a2d104ae22317f754e7ab6 SHA512 c5d4d9f5ef1ab78b2cfa0ba0438bd59a8d2db9d1c1d6d93f8b049409d868aeca78df41b21b1fc77a2064890910a5b1520c07514885daa73d889b44cac6e2e968 +DIST firefox-128.7.0esr-hi-IN.xpi 568352 BLAKE2B 8ec3f01b955928e5146c6f50a3b750615501ec2f83a437b6de77029c77991dd6f6c1091b4970de8c60e615d4296f0cb892c424182093fb81add68da6ec24f3ec SHA512 51334f50656598a69cd873199612e2e693eb0288d3886d00f14c2edb911f271db75887499aa2cda406980180fe16d241ac1c4757362ef28616f768e40c016a80 +DIST firefox-128.7.0esr-hr.xpi 619164 BLAKE2B 39dbc0cc488b81d1d410fd8a933452322fde38a616a939a731e5d8a10b6d6df98044a6da88f43fecd244865234f9e195089bc37709de646519fa8b15daa7b027 SHA512 d9c57531683612ddccf934edfa76e7aafa6de5ebfba159b6293a23c55d6d1a943f13d03f405582fb88e1b1a41ee2526ef39eace8cebe0d24a204b837ce574986 +DIST firefox-128.7.0esr-hsb.xpi 663542 BLAKE2B 88afd15084f8ea35a3897bcf9e8280d75788b09240aca1d81848ca95a72702751204fd4b32ae301a891dd489bcfd11c353de992633592ba5eb3ccafed1c91276 SHA512 fb03efc01d7ed389399d94d57493dff5fce8d9e3bd5b8f71ed79c991954ae6d553d5a56e6fa9abf105f6c3413fc80c53c97b310a9846c30df789ea83f08ecbbf +DIST firefox-128.7.0esr-hu.xpi 667800 BLAKE2B 9d030ca60ad9225d4a21ca81dd3ba8a0fbd4cdcb717e11e76465c5fc58d268226e6a3bdf2fcadbe86e02188744a567107bcacaa2d78349b65f69bb7829880221 SHA512 d3903de671f16660928c7c1a39dfeb1b78e39cf2fbfceee68b322eab47df9e4e9ddb4d1a86f35588c375f5e34a82c2c2621da3d5ad7d5eafd09784e6bc09e0af +DIST firefox-128.7.0esr-hy-AM.xpi 653033 BLAKE2B 9b290ba98e839690825ef1537304394dcd53fabfe696eda264d8b35ca19a1b6043cdf26c3f1020ba3a712f3674a4039a301670fbec2d1b30fcc866615e546550 SHA512 6b5d7e05eb402bbc619e8dd0a963c3669ed1cb771d8f5eb89932e9d32c811b00f931b44f2dbdca9555ac287add8e30da1d5d44babadb1e2f752e7c1d75a4c9c5 +DIST firefox-128.7.0esr-ia.xpi 627664 BLAKE2B e6c6d40f1f7c43eb18656a1bf4e8ae9b5a9948208641d4c7b3feb8c84f78ec516c815bcd540b10e910a8c8a343d651a07c0ff491b5631837d5b99f4b6ca50dd6 SHA512 87c9d8f3e0839bcd0ab58abe329a65718be7fd07a38c1bcd3a9b4f0775431f14efef9d95e5165bd09718cc3591c29149426016ff6d1e5a45624d283dbabb40ac +DIST firefox-128.7.0esr-id.xpi 587626 BLAKE2B 7881f0f950fe4109cc87b440771eaeb729ed246a52fb1a3a30ff5d09dd9c6417c8c6b4f2e886e570f08345e31113fbc3f3b71d5c21c061f07d5b15411ee829a2 SHA512 0cba7c09a86a146255c2e749d47fa37f23b7f20e01d74e7433aa5f29deafba0cac5bff3ab217a90648bfb52036b716babc7a1fed794357b4f8ee96dbf2d083a1 +DIST firefox-128.7.0esr-is.xpi 630678 BLAKE2B e9fa508910c260bbe3ba19880f26c101d31f03238b853974e9af255f028294e82289273537b55fc7e5c2cc37e966f92aec65243a5fd6040b00c532001c6807b0 SHA512 4a4671ef535faeba0dfba5afa1eef39d1803510ace737665f271f51cf7e6fdf3a1f7642f93f77dd5797c023bfa1392662de1495596f72d6a7b533285b4ffff2f +DIST firefox-128.7.0esr-it.xpi 584344 BLAKE2B 0e2f576cc9d5b7c1c6227d87cb97fccf4e4ca7da88ca65dbdef7920c7a043bda578d6db78fd712c726d674fac44f24ccf9e552c193dcb4345629a74a68e57ff3 SHA512 4a75a3d263214d11d00e39700ef311378b10950256b34590fb4c00391e378610a71bbd49f41320633c4656d607aac984e242c96d2dd8ca22f3925b5b3f4eeb60 +DIST firefox-128.7.0esr-ja.xpi 691952 BLAKE2B 9d9b914fb4d174dff9e01a2a27da7ae69be4b1927d53df84ffb2d2145c54dd867d7f239f27f82974e004d9e2c6083d84b6b0a45db72f825427125d57cc3f2e2e SHA512 8d5c5de551f79396886e33b1199fdc6bac5b0969b3c9a1f84b8239b9b62e954fdde34b6e069d118fad5ca1cfe1568bc36441ec24ab6739991c898372a65f88ac +DIST firefox-128.7.0esr-ka.xpi 662317 BLAKE2B cd1be8ff1ac777b96732582b0900a067d9a3f61c0ca476e00c095c11655d399c5189186aa5bebff4132a7d20f664b178951bb5c40df3728a0d5cfce82c73278b SHA512 a330c2858a8b2087fc166d7d08a89dd246778ae23700a1a2ee241f1d9835b60f1588f052a05bcf15fc2cdf1ce89f11dc43f595b61468a819bfcfa4069df644b1 +DIST firefox-128.7.0esr-kab.xpi 619284 BLAKE2B 996765046e2e0fcc9288781701da47af7a44ca03bb1bdf2279f7e796202112bbf9aff9d969d9ccc2048e26271a67d0cc28f787967335c7f7338427848c5febb3 SHA512 d84ba6dd112bba69534ae93819b12ef63e59f31ff8ff2a731627da81ac10d9eb62835ab583bdcaa0764191b07d66c8fe42a7fd5886b3bc9e83d514d431d00a75 +DIST firefox-128.7.0esr-kk.xpi 727325 BLAKE2B 2643479c1f79870a5a9ca255b42530de886ea3497d321d2976894aee62f853da66fb4982c66683542593e80e07f5308bd309405cae3deceac2b6177c1de6d6a5 SHA512 34908a6925293e0b488af13b3155a5cdd50492e8bd89e67f911fc7bae9c401234732860b331861ecfaf161e30a4aa3ddec7f62dd87fc6d20694e089ba6f5c23c +DIST firefox-128.7.0esr-km.xpi 527178 BLAKE2B 3c6597c835b2ea286ae025ebd72746433ec84d6c19cea3eb9b0a365da32bd64191a65d2124f031dc4505d008eccf5c0733432d4e92c569c40fc2216cd4367746 SHA512 53d4e90429a8d318bbb2c720fff0e1d49a426521ebdba3dad2a1e4f9f6f2b917293595a4e9b912b96cc3b06d07a650b74cb78c4193bc20e7c121ac38ae640a0a +DIST firefox-128.7.0esr-kn.xpi 492548 BLAKE2B b6c0af5c1059376f526cc945e8e1a4f20f672055ed964c632ef46e24a82e4af8a58040a20ede07dce05d073730f79dcad51ee7bd9979c951527bc31f70e3ceff SHA512 0ef3b15d5101155b904513ebd64a8941be2ea282462252db8ac73e957fba005779cea4ebc047a20c22000b5b304c5ed06f2671363b99fcb877b41189572aca8f +DIST firefox-128.7.0esr-ko.xpi 679384 BLAKE2B 948b547b92e165ea2bff6ad817243766bea8bb09d558fbba193c9bd5c484c4d610d9fdfe79fa2edf731f3a6b795ea4f4514807a469ed21b1536babeeeb2f71f8 SHA512 09ac3c0db7802207d8a22b93581a170c361e2b706410c205e7f479924426ec704328f9daa82417d9ecaf4a4a08217b045122bf6490d97e6ba1dc9e4cd9f80b53 +DIST firefox-128.7.0esr-lij.xpi 485540 BLAKE2B 60ad3114e58b01334b7d2b3ea3b92cf6fbb0d2581e413787b1a8f71da3ccfd26d1f1c55b7e48871b8ed78b8fd823e19544c205c38aa2869e5cd756074d21f863 SHA512 a5706941340de16a7d691e92255d2a01faa8d2bdf089647450dbe16e8405cb0787e1b15d5f2daf58212f9a23389a9693d997187f234e66bea4c97fec01f3b934 +DIST firefox-128.7.0esr-lt.xpi 574118 BLAKE2B 9711278e06f0e560fc94cf7eca2f9e488ab41bcdeaca5848b0b3198529c13172849b69269e51eae52bdf75ab744e278bf980142d6dab0c6a0b7747bbc4d4276a SHA512 1f05ffa418eace17236c0eb16e60e85017d913cb89b247125692bb230b98df5d0aa0c91da2023ac3f65cb2d07a8ccc079c7906115505cdffaa26755c28bcfcd4 +DIST firefox-128.7.0esr-lv.xpi 587212 BLAKE2B c2681b7304ab4343f7d35d6a2b148d56b294530088545034dc73e6c677696293b64a11b14b72b58a24610c19ed464ff5170f6a37caaa9603b39f9921b894b819 SHA512 65e6c6ad4d72646a3ace4593ac9760019ee5da05a5a11f1591fab321413be64d67ffbd4f40724a16499a9178a109864a407818db2b8bf25489fa114580b61868 +DIST firefox-128.7.0esr-mk.xpi 495164 BLAKE2B 268a89c36e1f56cc33a4a82a1ee30361c05353607cde0bfd5007b16d7a6391203cd731e78dc909d3a90727ac59d209c85e5c6567e33810bf632889026d7de270 SHA512 351264d6e2359e8e219f0d6897cf4c3ba0626d41aaf44ce6570e820815fd77fd42e31859cacb1d87781b6298f3f421c2e00f76f8e954a46db1147ef8c855bae2 +DIST firefox-128.7.0esr-mr.xpi 533536 BLAKE2B 8e3fefda058d6a94ba5e38285028f4a605efa6438a226c0c53e67bcf8941692df5f3f60449956b2445d3ff24484077d1bc1faefd5ba24c7462c46c79e044bc3d SHA512 b429cc0199bf8e74378cfec1f2b778b4afc2020bbd69ddd159028cf3ef2441a73f800ef60fdd55b537f766f6cf5c026b8b30c5925795424cf1f704eb7634740c +DIST firefox-128.7.0esr-ms.xpi 451145 BLAKE2B 124f5991d2dd7160de00a1f3eea26989fd5965643b6f9f5dcc7aaa4fac4eca049b1964b14888fe41008dd2408164ec5be9de94b7e27bb4a76f7ae3d48ad80342 SHA512 93a1d4f60d388f50e5a10c60d41539a8ca3064a28a06380b50544e9b09877d711288b7ae4fe84d9ca5119d699b4c628fec7bfc16b30466d23678258c46a5f3bd +DIST firefox-128.7.0esr-my.xpi 519907 BLAKE2B cd2c32a1a07f3a5f2d98bef5ce3cddfccba1f9788a94b89dc350f2c802f1f80230a765c4cd7f7e63cbae864990ab775a32dd13d3267da166a56db92d0fca7bb8 SHA512 44f22affc656e750f8e5788ddf0fa544f6736d46460fe89ca189207d0c1e92b71e3bbf6136a4f8e4022b22f0dad5e003569543b72218c6a7e8f28dba9b8a60a6 +DIST firefox-128.7.0esr-nb-NO.xpi 620016 BLAKE2B e38751f0c073f0cadec543fbe3872b97233edaad0932dde584d3828a4203bd472c822dfe741fc3b53fe2e44fd608a87fa9fc2ac9ff137fbb40c69108a0860116 SHA512 62b8b7dd394635a376ea893b6443f6d809b54efbafb6cd34f60ec14fd665f7b5595bc3b793aa24d682e4d50850ee5ca8ce34f744070cd7d451bb7c6198a29ddb +DIST firefox-128.7.0esr-ne-NP.xpi 522150 BLAKE2B eaaa681fd5bff9be32fcf7849dccbfaa4013b11128e1ddd9bdabddd510a819521eee51a188e86b938e6e0a45f0bece4f4313ee014f5ba0e79c544e57a5370f37 SHA512 15a3b568548bdb6e7a9c0077d25a26e26bc452c4da2f0b83e0f3b362d5680156f729324e51561dba8e088a5f32d9b7851e49b8226c8c91c20c6119e4c36dd8ba +DIST firefox-128.7.0esr-nl.xpi 634319 BLAKE2B 3e2c93e9b88dd59f899a3cbb5e2043ad8d81626b491eb0c13482320ec15106bc3fdb6489b6dad917cb54835cdce2ebce698f66dafc04daaaded82633fcd0762d SHA512 3a5ca8ed7a390f8fa1ff1428e464ad0117412ac545f83654fbe5db676560907f960464d5172755449ed3dfd18a18fed41dfef72b49bb503bb5391f040f449d79 +DIST firefox-128.7.0esr-nn-NO.xpi 622824 BLAKE2B 0ff6b48abc184e6caa2e851ba759d1d15c43c8b0e64ad1a88a62c3f35e1793fb0c687ad52e08a37155d4cf285a5aafa70ee3f3d5cb0baaa69ed71345361fcdec SHA512 dfbdbb24b235e6f83b95e57d363b35ef06922000aba4c8f9f92fbca00328dc4bb07d9519e230fefae658ecd890a60d9959834988309c36486dee90a4c4144fb1 +DIST firefox-128.7.0esr-oc.xpi 615788 BLAKE2B 67e41d5fe310bb5f4c532a228d98cf3d9762213b3794709e1b01422c62b56e97e6b57954069971af11dcb9f88f9aa09da6bb2bfe5492e033e853ccdd8bc6194a SHA512 89b6d950044423ce10b76d21c56955eb10139fc03e7f0c8d9b7e5b5ceb5ae563b6a11e9a95d839ceb87c0f294ca8bdc97b3a24a6ca863b7fba5e1265bb412fc5 +DIST firefox-128.7.0esr-pa-IN.xpi 711068 BLAKE2B c213219faac28be54a1fbd211c4e3feeffad79b7752746d19d027d9418b79cac0c72c932141b73cbb113f9b162edca8ac312490b10fe7bbfbba141818f6d33de SHA512 00c077a2053e9402eb94102c1d51d19a3b5201875932ecaf1c97705f8656b3adb25476d6b60980e06552005165110315c5a99399d42247aa86366cdb049c10b4 +DIST firefox-128.7.0esr-pl.xpi 648791 BLAKE2B 7c917f35ee5b001bec2dc05b0669f54608a5bfa0e162edfaf7d865543096d60e194b7b9706ea8d81a0b43b1ef51e34a71166cbb55c2602fe4d6e9812bca21aa9 SHA512 282fb1cb78614289f922992a92895d2f87239062d26ccd4fde8857abb26736339f45306506e22547a8a10ac3197e9f8138444c77ea82ecf9db3a42053df60df1 +DIST firefox-128.7.0esr-pt-BR.xpi 638904 BLAKE2B dcaf73f669ff48050c53960a8bf5c31bb35e31a6958854aad41a1f958867d190a482ac00a7ceeb84df51236df6bcf4f2f3fcc2d1db15a644a79ab1902b69907b SHA512 d96966539ac61aaf47f6d0bf7b6f39682dc0c4cbda3320799fa67d17fe933625eef7c6ef2cb2bc3c53e2fe6a358a20928019a638473dc59be56b8886682a6be0 +DIST firefox-128.7.0esr-pt-PT.xpi 642502 BLAKE2B 945bec76ad9a18010ffd6c1d525754420d88252193e7e982605d6af73259f528b5d01695c59981d908a1c57067266dd6a1556cc57fe822f64f547a86cbd0d41e SHA512 9857306f575d00f560740083a045b3db7a36be8f694b4c40e66fafedffedd2d091b24c3e93953d88568f75f701427b427431cdd573aacf4fe83cbe967410a4b0 +DIST firefox-128.7.0esr-rm.xpi 631436 BLAKE2B 4c8d165dcffd1a72c0853727ebe32bda6619e5a8c4e57d64cb4947efa374fbb51759cbde8710f20badb7018c21b6e777d983b81d5f8983e6311512d702723b4c SHA512 b20b2e7c444045f3e3faf21384d96273e32fcb4f3bd6b2082ba91fa4ea611db25311d887af29cd7cf957dd73c096c6c33c5a2bf74f6b52bafd914b5c161e73b1 +DIST firefox-128.7.0esr-ro.xpi 551219 BLAKE2B a2b834fbf41e5298aacbef031038848bb6c1e1ce53db7f310258f2ccb64334bbdfceae9683d4a3586a6bcb24b56b124eb1460410f29cff4ee30180e2bd77a65f SHA512 12e616de8eca4205b74f31d249f754f72a07d3cd402c13e500239879f1230eb475216b070f0d76864c426279b085c86b20531212550b6985926a042659485e60 +DIST firefox-128.7.0esr-ru.xpi 740411 BLAKE2B 05d00c4d9d3d96714294a21ef0ecceab3294defe56f1b52dc0d0bae8d7c6477cb9ac2aab7e1cf1523773ed72a4ed553093b87c8b70b180394e813fd75e67a9c1 SHA512 9038136cde24e027f20146cdd1ca6a447b244b47477bb2e3f86e21d9250126f8c66809b267c662902d6cc0f27000b61f01d46f2f14948e8072bd8f1bd69a8b6a +DIST firefox-128.7.0esr-sc.xpi 598928 BLAKE2B 9c74330d7ecd4a6a4235928c507d063830ab6e28a2b93c341e46c8904d14967f9df5b11deb0599703753b278098b7d0bbc4b8bda3938a296f9120806367f4a2a SHA512 5116bb2ac9a0f047984d2879ef7ebb845d5a1505d0e537e42844964d4c4e942bf4a3f294da61b3393ea48ce6679c0f61ee42e897137070bd91ebe071c53a6473 +DIST firefox-128.7.0esr-sco.xpi 512689 BLAKE2B 08574018942cbda4bb29f65976c0abceeb0f42795894f74a0f8c8d983a853f641092d3c82cd5e696274b768e82d5d41b58887308ea46241a97ec47b5feb06a4e SHA512 247348eede7945534df99e2ab0db1c139c82326215e30270f187ae83cc0275433434288578347b14e94b48c6891ee0c671061806bf2fcfa5e3a4e8da3109864c +DIST firefox-128.7.0esr-si.xpi 621560 BLAKE2B b389c17829334ba6690c99fc1fa3958018a4a34755aea8fc7b4b6421039d70eb5b9bf2d87ec992e1aa184ce00d3b72781cf7a693f76bf9e8e378e0dd3a56c6b9 SHA512 390b59b7454d6b47eb484dfe94d8d891c17e482c88d21db60ad77e74ab229b9a6c0feb7a1d757ae6aefa52973521578d5f6a11d354301851ba57a0958ccad7d1 +DIST firefox-128.7.0esr-sk.xpi 670797 BLAKE2B e116ce5e829e9c913fda86447dc7ec2809cae1b87d9f78de84c3ce3e2bc13a7d5d0bca871ebb45d9b43627a21c2984fdb3d608e269e25c948d94a75b6bbdb2a7 SHA512 d5c1870dec6beead2fac388dff8435df3d82cf971d41e980d05e6d3ac114e5a33a944b38369a8596c3ec79f92e1b880d8cb294c046183c3fc111c308a89c1933 +DIST firefox-128.7.0esr-skr.xpi 722718 BLAKE2B 99a2e8c28f611ad00fd432da3a26d1fcf05a85583b99be6164a2e6c35838a7ca16919fe5e6c9fe00631e1f4ce9b7e95f29687fc007206011613098b12a94ea03 SHA512 daf4c7b29876b01649126425680895625455e604da0a0558d5ee73725e21d7ed4432ba514077b889b6530727ce63479e0f6beda9e5680498d394d4b33846d541 +DIST firefox-128.7.0esr-sl.xpi 633851 BLAKE2B 0a3272001301f713bf9ed00719fe70f5ecfafcb52f7a6f831e0586b4ff68e0ed1def6c3b67aeab2850d3a5f2317547ec5da9ef6de5fe3df62b583d747dae7507 SHA512 2776585628cb1dabf862af5bd7c3bdf73af17cd02dc9b6196c25c3bc00faf6ce46712921aca5af128a6452398c651e87579608bd837f7e7b9d058d2bc5eefe68 +DIST firefox-128.7.0esr-son.xpi 417712 BLAKE2B 8cf6bae8eff9f4b946e9a7501655b815336139694b9f38e7dcce74b9328988dfe70c1cfe33f7c36ff9db21e892aa8d8a58880136ec3bdcc055fb3a30ac1b9f5c SHA512 2a6372a4dbbc8d016095bab8dc10134355924df1b4359ce3369687829340448e749664cef778564bbf9983ba4f7203202c073c88fa4aeb77443efc7acdd9e1af +DIST firefox-128.7.0esr-sq.xpi 652190 BLAKE2B 9d366dd4d20b279a26d941de02ef7d899da591ab15e6f9dc5cf765f44de9f93cabba972b28309821c2a9f5ab280de9403142c885483613d3c90c01cc3cb38742 SHA512 e029bd46301ca976d05bae682582a08e27a7011ef56332ec8a0c3837ff38ca85c28ebcd56399cd2e277e963eb5a1a5a6a0b82c2e0599a741a1635a0ef3ce41e7 +DIST firefox-128.7.0esr-sr.xpi 640904 BLAKE2B 6300348ca3da0c2b7d0cddaad074a59e7235e1641082506efcdbf7008d34a44599510b72d80fe5e4184b2e7e63ba5edcf4a98552a782692d6e7fd93e2099e151 SHA512 8e0ea23425f43d0bf59205343843f5897d5bbfb4932cde90b7672c5dd7c569b0d1edf2af3d896815739e8d02e5c8915c30fc52db0687f0edf71047ba92fd80b6 +DIST firefox-128.7.0esr-sv-SE.xpi 635651 BLAKE2B cc106559218e46ea06d5e340ad78a80fb1d0074d9e6276d243e59210d94ea76556b8e4fb86af1888c907431ac01e03de69cf599d274d678071e83a0e6fb515e4 SHA512 51bb6328afc91a3ee4df5438e99ffa869058c21af724267087b0681eb305e8f35bcdb923cc5d9bc3032abba6a98f9380e71f9a723a1076a8b8f855f124770aeb +DIST firefox-128.7.0esr-szl.xpi 527825 BLAKE2B 3c3dbc45eede87d9dd17e1123bd797049236ba2608fc83237b017cd66e2d68e6e266a21d564c95eb9fdf215205feb377503c6b3e673e11cd1558122df58a5519 SHA512 858409e6189e3cc9a2e01e10cdf02c54484dc5b0a2e5f02fb5287b7fc59526b113d40859bad9e1095bc20f256515f70008d498de57fbcc85da58668e116b76e4 +DIST firefox-128.7.0esr-ta.xpi 508804 BLAKE2B 074faf25b48574c392f5c0284389818c195f54044ad3f0b622bae99acbd9760dacd1252528c08ca18103348a95a23dfc5f725415e498c8f000148c64da4d0560 SHA512 c3e307a704ef9466aa22dfafb39769fd013487c24b489b29ba5fc4316c130e3194527bfe1ed79813e4943a8be7942059895b9ce07c8f26e5ab47f8c9aa79910c +DIST firefox-128.7.0esr-te.xpi 565170 BLAKE2B a23016f2268708443f541cee6fde09ae715d95c164224a5908902bc6408ae8f5168f7e2cd536b5c4d2edef6fafb64b803f68c38314a8f817c20af0575af8955e SHA512 5a78c2f212e33ab8879e16291ef6c4ed4a2024d6984c04ae46f35777f0c7760ce5f12079f783fb16d3619d43874b4bb7fe84d2cc0df46ab557a9a4cc7f0d7a9d +DIST firefox-128.7.0esr-th.xpi 711787 BLAKE2B af023c3fe7f90b625eb3c7cd20c82c90da2154789b464ee2c472430b4846cf02f5ad86ef9fd3b78da6a7473554351ef43963727c1a77ff8e51b4d9714c9502e5 SHA512 129798e28f5927afa37fbac3a2c7fb1ecf819baeb3f0bc769629c9f330c247b99d8224cfe52111d40177f909f8c924c3e72b476484cbaa07c0675c91968066ce +DIST firefox-128.7.0esr-tl.xpi 535613 BLAKE2B cb44f58c7d64ef26547d90b33286d03e9bac330046a782ffb79b6156b044362adbe663339e4d5942b469216a27a97abd17e928c2599c40595bd7f2572aa9ef0c SHA512 859c7f00780631db0bbea50fbc1957ae8047f8e65b4dcea35b0c29a33d96a6163aebf1edbc0f589d68e33afbe60601feedb28d746b2590c555ce636634d120fb +DIST firefox-128.7.0esr-tr.xpi 649208 BLAKE2B 684163a4797dc431db6a5979f048e146ccb0fa11b5011b71f66e9698748a572ac6663207e6ac27d2268297e095ec18bea16f4617af72e132779fbf1a807cafb9 SHA512 8360ee4ec520d0fef0d19701517a446ed3bfda48c5e76615677f3ef3e21ff176d4384f6afc727c73e5958781b575d04cd6f2e919910df784c4e5a5c97b6431c4 +DIST firefox-128.7.0esr-trs.xpi 505791 BLAKE2B 6212157a0801f4ba66aaa6517c7d971499bc5e8505d59b1d7f3c17eaba5eb96f861edeeb570916b719bd14a1697138bcbdc13f2ebfeb42ca2c1dbf9f0618f73c SHA512 33ae70d2f59b14022fd640abd3cc5d66f0584332eebf9cec783026b646d12d597c9e5940e65cd7a062a4c2bf754aa91846bbf56130669d190e729526c90fdaeb +DIST firefox-128.7.0esr-uk.xpi 731686 BLAKE2B 99220a16fdd4f9146ffc950347ed782f1ffaa9a3a58f96cc02f19b6c1eea5ca96b9914b538716d7948d65b81b72235cc4737acb3edec9bfd925a5bc9b0b9e171 SHA512 b60f5e0bd0f14fd050c1f0382f8609184083647cb81f28d5691dfbde941153a0df2bf8f6dc75ae26fa1e7ac342c0faa8ec441210be112cc4a513b7b19b89eb5f +DIST firefox-128.7.0esr-ur.xpi 561779 BLAKE2B ed14106cf11a82a74f4842b44b2d6a0075178b7a2dcfab48e0eb6a348646857893c2020697fcfc2ff7e2b7cd33dc68fd6e5f24cb1e6bd4a5d7b61b7a9714578d SHA512 f68bfd0fbddc0dbb12ddf9d29cd4b5baf8d795040d5059516740e3df09b7e791ff51882d21f8ef8d746cd12bf52c2b34a830a647a0b1f231a00fe5b63772e4d3 +DIST firefox-128.7.0esr-uz.xpi 480212 BLAKE2B 2530f502082bdc1ea377b821a7fd220557077b80bf476548790cc2561530b586a014b71a52558fdc4aa9868a51a995f208efed8a48834023e09064139ea54d3f SHA512 df42eed1bfe2821aaeabe02324454ff76641c674c48d3f14f681ed8c36eff4967b13002e41bfa8aeb34fbe7e57ee2e3e9a8027b2d3d009fb6e5b751f535fcb4b +DIST firefox-128.7.0esr-vi.xpi 673226 BLAKE2B 31ffe88a73ed83975a81e541531c4a985c25754d0b055363920ed4287816a0a11cbdb88055613bd1087d96543444c98bee6c74c72ac4335f332f97607a43f0d0 SHA512 99cae768c73f615683b41e581cafab1a5164c366f7a7d8020103878eae014fa214cb2f85705b15c1656031314031f45f36b273326ea7291abe8866c0aae9b243 +DIST firefox-128.7.0esr-xh.xpi 418474 BLAKE2B b44cefd8149e389013cf36495c62be4726ba97e85278321c9853156f85084a9470346c0f88a446f6ae6327cbacf04bb4c8456da3c76c84f9c3b03cf608e7a28a SHA512 2e3910f114fc2e3d7d7f8fb8a0ffafe7f2528a5b8ee9689ca8c9fe5eb93d401a9b35bf06eac8f89a47fa45eb3108fbf769309108dbc46f394a2b2c65be5eae43 +DIST firefox-128.7.0esr-zh-CN.xpi 675201 BLAKE2B e07f861f85c0abce293798029206ac795755eff1647bf1842eeb2f7169217303041d2506498dec27e5e0c679534bfc8450477a169c16ed8744b7b8dcde04a3fa SHA512 9ebeae24f93cc2bcb49b8c482ff474ebe3357286d2fd35864e4a1e156d1cea5933fc776e18b75fc686ec84f91e355e49a8ad9e5f9bf044b8ca3a7d0bbe2bc0cc +DIST firefox-128.7.0esr-zh-TW.xpi 677437 BLAKE2B f2587278e02f26340261501b694c372fa7164b2113572176305263c10479466fb481e3bc5d857bfd068caffc5c7efdc9c6a77506eb955b035b0c707fbfc3af39 SHA512 d6b2df29a1bc98e49a96953c315f3aeb4fbea66fc9691d37085d0946c3710f6f0174927fe7103009343cc038f4eedbadacd592a4eda24b1d3f7f395474853c7c +DIST firefox-128.7.0esr.source.tar.xz 569300208 BLAKE2B 08bf5b571707b7a5acf1ebde12e370be5999e3ac8cac2e952fae635faa16e07ba4d9d0a00b304ba43b5a327c825cae04c1ccf8434456e27d4c396e5b09a4b6a7 SHA512 26f9661b395b85a44b42bd72ef1ad976c614216c68f6c2dd834d0ac8b84b9c9f398b8ac550a47396995d96e6bb5fa9a50064d7f2f526bddd45aed5039ef131b8 DIST firefox-128esr-patches-07.tar.xz 18856 BLAKE2B 44d0ddf11518c7eef0a96de4f475a6ae1535e43e5bf89b8f61dc95330f28d6a053d08e6a183cf71432107256c83cd6ee6f742b235ca82babe4dd83698bf80d07 SHA512 60b4f18f5d91fc25f86cceccd561b55f167299908fbf2f9d7d69a8ce299c643f0b538d613d4348e42dd17c3812e4fa315e15004614af1f40fbe2adda417a1a81 DIST firefox-128esr-patches-08.tar.xz 17564 BLAKE2B d904b74fdae2e76866ded11de5377a7b6883d35996b358ae3419ffb7da53b04b2c7d4bb10d48998a8318a84e8221de39955289cb33a8f278c131b4af2006be62 SHA512 344a2d04dec679cd8ed714dcecc9dd5b56696803cee9267e7c0c45c439d78728e7eae674bb5f0a64f2e5802dc59c1ec25f1703885024d88bda8a02e2b3e0d69e DIST firefox-133-patches-06.tar.xz 20296 BLAKE2B 4665a955e844460ecad42bb888c15772a16a8c28ece22e3130803cbb7ee00272c067ce160525f45efa4441e1e74084262ea012ad5e9b30afa7ebd66ef5abe7ef SHA512 1b630605c4b91acf56deefb476d8aaf2ec6c37b4fd79b09fb2eeec79113d92c8f3417301afe8b0da4d1992291b7c17d1eb37e877de2c3d0503021b0eccc53c7e @@ -828,6 +929,7 @@ DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 07618828d4c25d67421aa72 EBUILD firefox-128.5.0.ebuild 41203 BLAKE2B c7f12ff1ec0ab88d1ba0d2e96e5fcd62ce294715906b9bb381090e89c7b33e5f42035cbf9366d3eec5be6d3c5506654025cfed5a1c5c1e51b2b959a5f6ef440f SHA512 bb574b16d9782045837514d0434f3a627398cb75aef7aa7fbf68bd151dc5d24806ad8c711b33fba4c65d0f9072ea7989c30eb5957811a023e0a948ded93aed2e EBUILD firefox-128.5.1.ebuild 41205 BLAKE2B 62be1b1a02d0630eadbf2b441febb6d02bb9a0633ea8c46d0fe35bd5df9ca30ab85b854d5c1bf5c8fce0e5fa020d6085d358e69b80ed43f919dc5eeb80a0171f SHA512 299056c24bda66a12cb4a29518b522fb7551729631d01d2db3d54a5c5dda6bb568d6cd5db27c57f686231034397162841739cd6e49ff244fc29ebfcc05f1cd32 EBUILD firefox-128.6.0.ebuild 41758 BLAKE2B 52d51a1d0935179c0cc46c541e1645ae850b89400ec65bcc74ad4dcc23c76c922da2104ba44501c8b1f16655410d55f126348054fd3968ed3c9c0714920437c1 SHA512 4c125c2316f9678bd77d662337ae785b384c23f894d0769cab210bd444920b108f7f0b15baec04334903056b654e9f842d0fdd106fa79a80e45f8c1226009272 +EBUILD firefox-128.7.0.ebuild 41826 BLAKE2B 7caf74cdf28ba30644f774cb6100a800299ff21a03e0da83ca0c1aff26d66b6686bb621e7495d640b482e3303aed9fede39d2e4d87c09f7233f612c7f0e56906 SHA512 bb7e0e91dd8481b9bf7f6de1ec935867e1dfb88b6cf4c9bcd37b4f2373119655d522c5d484f90ed533bdc340decb3ca263cf36703818501ff31bef1ee724ef28 EBUILD firefox-133.0.3.ebuild 40775 BLAKE2B 80594fd1b2501bda3d6852cb9af0c0eeb25852c4dca9fda50c45af48b439fa716f624a5c6885855c72370edf540bcf216ebbe097ac1e922c9281c3c645a8d7ce SHA512 90f5653a1f8b81bf99a87f4198b28d4a207c7421fcf88a19a4cc57b360e69e944561afe571e357f9d0f2e09709f182260bc03d4b08edd7a31cbe4fcde394b9f5 EBUILD firefox-134.0.1.ebuild 41083 BLAKE2B e3c1339be6577370c54853d08abe549be982de7188427bd138103d7c6ba883956a280a6263cd86224e3926d62f4fd8f57dcedf810a9e3c432812bb5453443774 SHA512 c0e4115dd53a93c18fa98e622b7386d7f27d6899eb333d1b1a93027a1804ceb65ed93861ab2bb7d1bffa7d746735acd8b6eec2a54ed1a41cb7fb6e750d35bd78 EBUILD firefox-134.0.2.ebuild 41083 BLAKE2B e3c1339be6577370c54853d08abe549be982de7188427bd138103d7c6ba883956a280a6263cd86224e3926d62f4fd8f57dcedf810a9e3c432812bb5453443774 SHA512 c0e4115dd53a93c18fa98e622b7386d7f27d6899eb333d1b1a93027a1804ceb65ed93861ab2bb7d1bffa7d746735acd8b6eec2a54ed1a41cb7fb6e750d35bd78 diff --git a/www-client/firefox/firefox-128.7.0.ebuild b/www-client/firefox/firefox-128.7.0.ebuild new file mode 100644 index 000000000000..6448d4c13a44 --- /dev/null +++ b/www-client/firefox/firefox-128.7.0.ebuild @@ -0,0 +1,1376 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-128esr-patches-08.tar.xz" + +LLVM_COMPAT=( 17 18 19 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.77.1 + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=25.0 +WASI_SDK_LLVM_VER=19 + +MOZ_ESR=yes + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.org/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.org/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-png +system-webp wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell +jumbo-build openh264 +telemetry wasm-sandbox" + +# "wasm-sandbox? ( llvm_slot_19 )" - most likely due to wasi-sdk-25.0 being llvm-19 based, and +# llvm/clang-19 turning on reference types for wasm targets. Luckily clang-19 is already stable in +# Gentoo so it should be widely adopted already - however, it might be possible to workaround +# the constraint simply by modifying CFLAGS when using clang-17/18. Will need to investigate (bmo#1905251) +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wasm-sandbox? ( llvm_slot_19 ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.101 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || tc-is-lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || [[ ${use_lto} == "yes" ]] || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + # Make ICU respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" + + # Respect MAKEOPTS all around (maybe some find+sed is better) + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-gpsd \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-valgrind \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly, since it's not activated automatically via "known arches" list. + # Update 128.1.0: Disable jit on riscv (this line can be blanked to disable by default), + # bgo#937867. + use riscv && mozconfig_add_options_ac 'Disable JIT for RISC-V 64' --disable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + + # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date. + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${S}"/taskcluster/docker/firefox-flatpak/firefox-symbolic.svg firefox-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +} |