diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-07-13 10:57:49 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-07-13 10:58:54 +0300 |
commit | 1e9e290f0eda2a64d499ad0d85172d1a18e9b5a2 (patch) | |
tree | 9a927598779a270657764f041cbdd548d4206bae | |
parent | www-client/firefox-bin: drop 115.12.0, 127.0.2 (diff) | |
download | gentoo-1e9e290f0eda2a64d499ad0d85172d1a18e9b5a2.tar.gz gentoo-1e9e290f0eda2a64d499ad0d85172d1a18e9b5a2.tar.bz2 gentoo-1e9e290f0eda2a64d499ad0d85172d1a18e9b5a2.zip |
www-client/firefox: drop versions
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
-rw-r--r-- | www-client/firefox/Manifest | 602 | ||||
-rw-r--r-- | www-client/firefox/firefox-115.11.0.ebuild | 1414 | ||||
-rw-r--r-- | www-client/firefox/firefox-115.12.0.ebuild | 1414 | ||||
-rw-r--r-- | www-client/firefox/firefox-126.0.1.ebuild | 1423 | ||||
-rw-r--r-- | www-client/firefox/firefox-127.0.1.ebuild | 1420 | ||||
-rw-r--r-- | www-client/firefox/firefox-127.0.2.ebuild | 1420 | ||||
-rw-r--r-- | www-client/firefox/firefox-127.0.ebuild | 1420 |
7 files changed, 0 insertions, 9113 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 191043732e1e..9a3614a2916d 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -1,203 +1,3 @@ -DIST firefox-115.11.0esr-ach.xpi 458870 BLAKE2B ee11c834ad609bef253ecc5e0656325eabd0fc6ae494c6464ef75470da134de9e8dbecd315e82a583b4f4254dccb1b0588c718f7d79309fa4505f3d7986b6a83 SHA512 02bb5ff090eae756f5c6a88fa1958e278bd245e3c63cd7ca6203f1494d80d603316e45972098a19f1ae60ac5b9b609cfebbe629c9d2d7cd90739dcbe024f3178 -DIST firefox-115.11.0esr-af.xpi 415016 BLAKE2B d7367661d8af676f52a5b7bb519557ca970dd43ffc6f37abba6b0f54376d57f125d6600c1eab9f5229b86cdaaa1dec01e51ceb13cb4f64216ef8b56607e83a9c SHA512 4698b724b44df392ae3318ad53e2b59dfea743db9a2e98c6c35237e2dd246bfd6275a6938edecb38b7bcae19789ddde37c4d3f2f2b2a39192b43bebd258aaf87 -DIST firefox-115.11.0esr-an.xpi 499405 BLAKE2B 14224019cd0fe4d0fe344fb41d0a202dd392db48933c45739c7287a266cdc54c0978a8f7569e91b98ce8e844a40d7a19b741c3adba5005b366af84833c54b75f SHA512 aa99343d32625e50cfb9494e494840bfc18d46391b8b43d004f2741bc9fe89dec45ea8d5d35fed4a21b6073608878a62b9fa0330418777a331922e7cb934c475 -DIST firefox-115.11.0esr-ar.xpi 605436 BLAKE2B 62896dcc3152fcea27333ba2c1f86c0e19873c5c433dc547265dcf6cb24f6c6f9cf52ea90083fed5d9f06ad80a4f461d4284592e9107a2c9feaa321a80005bc4 SHA512 668a504b62bf619fb2c41bd4a933cb85758900e745a0ed80a4ca968aae54954a265c5e166e2dcc52674600566112a9a64f8808ec32e62ba6078d05322b32b8f1 -DIST firefox-115.11.0esr-ast.xpi 491169 BLAKE2B b90b1f531c03826f1dd618f0777486003f793b1d21a7fbfb22a9381270a1bdc703cbb7135487601a8aa60adaf82d9e538fd00d3d894248a7ca06d0919c3b8e3f SHA512 8bf37999519cc0c0008a3b319a59a6ec49aca40ab37a50e25953c64d59f5263b79eeb18350f0433bf904864da486ecebedc9a50c5347ca91ffda4121df4534e8 -DIST firefox-115.11.0esr-az.xpi 485934 BLAKE2B c5cb201be6162eb8251c388eb8649ce77d4b75c1b16530e1755ee025e658bc1d366128c840ff9246de865f27df2d323e63199514c67f89c0ea7da4b7e9d3f392 SHA512 fe2ea407c8208b93f969a4302f95bdcf234106146d029bf46027d00f12109dbc3f792da56ca0791eda506b3289f5c269b159659b58ef33c90e2847e7075d939d -DIST firefox-115.11.0esr-be.xpi 708810 BLAKE2B 6d6eee10a4ed22e19bf57852f11c9a23e00c5fbc4d6d31bd02e5b1f172358a1ccba49ab981cdef2b103a4d9d68c39124fc4e195b0f767c100c1225baebac3321 SHA512 dcbea4323f239b16243e5a07c2abbdfd2ddd340f8fa12f5cefdb590ed0d17bb6fe55d40983789e948d79a4dcfae676575c6d7c0c0fcb7c2d5cfd9847cab1819a -DIST firefox-115.11.0esr-bg.xpi 597454 BLAKE2B df84239b16270dfbf9b45af80c4ac97f5c61dcb035dab15b2a1009db8f947b90899fdccc9669d0477a21ea70a4b6606c74a1d5ef07243c2b0872a88b41f82c2e SHA512 1581d718277bf003c2b092fa965fcc55242eb50a17c75c9db036952a6c372943334701bd2f9971a600320102d0f3aab2f4535da91ba6f988e3d7ce5ba3e42940 -DIST firefox-115.11.0esr-bn.xpi 576193 BLAKE2B f67d2119b4e6cb6566154724254dbb50ccba43ecfcb83db871e9a7e0ed190c8b8b1025cdf4768d7061bd515fb1ce4ea8802bf7dd9408b6b48a9f55f83fffc8eb SHA512 95098d8961877a05a6c6799b6fd83019578cbdaccfd47fdfba92a4ed02f63b6f51246ad77c117cecdb6d05a9ed5b17b7b9ae2ce57683ab5ad49f0936e21b8e52 -DIST firefox-115.11.0esr-br.xpi 583246 BLAKE2B 6780fa4f56c7033beeaa8756d0661341d20f638efd3668c445fcbe3e0d995ffced13d8796e078cd36f8dc1e4a83b32e3a557febb61955ea43e46a7428930cbb2 SHA512 13afe5db46878f9a0ab5dffd2206d8ee853f2fef4d3ac92f611398a01cce8325fb0aa72c8b0fb1d35abd958631a792bce151cff53f06e40b1c02e529687552e5 -DIST firefox-115.11.0esr-bs.xpi 496134 BLAKE2B f34a207ea8bf541abaaf1c3774a54df3eb896d2df723e00ae2a999aa041152c237be13bdb079bbb18565d4422c1e2baaad565e018eef23b3b3deadd2391ed7fb SHA512 f49be7e030600a2771fe4e14abf547339158185c98e1e98f19f2fa0037665df8e86de44e3c2662d3aed16ac4e40461b34ebf200267321067316622dcdd626375 -DIST firefox-115.11.0esr-ca-valencia.xpi 539091 BLAKE2B 10fd8774965294579adad15ccb15ef236de78160a930b4301cd96dd85482735d9fe369dbf21e8aac7fc4997f82c79f4ac92049433281d92762cd02de89b8153d SHA512 9e643abe68577b4a3096d33025a33a8a93d1f855afdab5a0bf3604146abdc2ff2b1185dfd7f44cb6bb826730bb68000de2d5381e1c5117ac36c98ad81c891e3d -DIST firefox-115.11.0esr-ca.xpi 578622 BLAKE2B 47432fd910e493bfabcaf88df1de3835051057b35c0df061211062f76aecac56955bd06f4445410338c27a969cf66fdc7c34bef1b64068b07ca507953eb4fbbb SHA512 79014f5841ccc0eca1f2f90c2d923c9659853dd01bc0f1388f6c7f732c05b1d5adea90045f9f843f0d29b5a28851c85ca64ffc1f62bf854e830fbe60c7992ff0 -DIST firefox-115.11.0esr-cak.xpi 586177 BLAKE2B 688670344cfc9c34881d7681c87dfab3c5cf60eff6b1285d3764a571262adf9fdca40f98afda23dd48c2088d716e32ecd5952bc3b8e978118af0ac6fcea8ef88 SHA512 6a438d847b0fd4c74e587163ab7f0c445064171d21b356ddf72f8c891bfab3e450b9b909f78059fdc34eedc2c42e60a7e16eb1f79d5454dd9e11ed3a38c16e00 -DIST firefox-115.11.0esr-cs.xpi 652701 BLAKE2B 2d03b37790d0de88ea54d8aa39ec2209c53d5e89f3147ae129bc45bc7791173a084952b21433b54693382d659f86ed90e9f5d866ff8e4dec2f51224f1fb685e6 SHA512 ce05f6ad4f5fd866712fc6b7f44d497a3ea86598587a2536eeff73c48a87f557d75fe6d26c9e56ce5f2282acaa13150d2aa001a450cf52a47c6920b21d1e8d74 -DIST firefox-115.11.0esr-cy.xpi 618117 BLAKE2B a1e8daed2fc36e6f08d5130b8025e414a34430331a30aef5fd155dd53bcc483d49bddd1900da28af9af2cd2b68263fb662fa52ef9e6ada6e5e6c803c73b359e8 SHA512 33e5d383318bd4c3e8bfc1ad6b28bc2deb89efa5419cba206f8c3c2d60df6c62749bea493a599c09deb7ab671bcaefff7af153200c9ccf87cfbed6e0d4278c50 -DIST firefox-115.11.0esr-da.xpi 607114 BLAKE2B 6d0d2bc5c1687aec5d870fd785d13dcf7a81de52c0d3d2d4a3e7143dc4996ef812ec351fb765cfcde921575e36a34c807be44a1cb85ea2c2b043fad7e00f3bbb SHA512 c056f9be65efb91a9a087597cd2f64345110af7e13f6d4c48009ed7f5888fb4fcd4cfbf3b94e4a6f7a21184d7384fc2f6bea6c99d97d50f7af002b3199174782 -DIST firefox-115.11.0esr-de.xpi 625984 BLAKE2B 7a7e54ecd30b3be217a014f35b34c04af7b369ee3bf794b1af3d63c6e0eba67c0bfd71adce0da1a86ea9a43e2f6f0dfd95aff05874e65bfbba7790fa76e2578f SHA512 03558397c2183503777e157b627f9de123e61a9c6139deb0c5e998acea2c652af3dbe4b0c20a537e5ef40817ac3dd32c10a4a78c0d49636d570100a64110caec -DIST firefox-115.11.0esr-dsb.xpi 645188 BLAKE2B 1d72ec4d3e4e780811a8f0c32a4c7b767950e2a77de94106c92ad4d850d2cdd9358b291375ca337992b02611bc69c5e9e7de431ba7f33fa6b2d202c73f065e05 SHA512 dcc88bbd686d0a1beab10f1d7695a41a01e9937df9dce0d59855c39b6862ebc6f1c3a18a82201e7cc9b4f566afbbb106e5dbcf884ca7d762724c734a5e7897bb -DIST firefox-115.11.0esr-el.xpi 726135 BLAKE2B 38448cc96e5e029cdcf0963c89ed7502c36956d319cc966ca411e341a45f270cb145f8e8dc9b5855c37fbd7a2d3857cf50ee65baa8c75963da8a296ee3111c9f SHA512 cf7c21274f546a570a58469021c3be929cd138ad941a84ac1573fc5afc2ce0f8d7b00c063a18656c3b6e86d3f296d04b8b41f92ca01fe1be502d92f11822ca51 -DIST firefox-115.11.0esr-en-CA.xpi 577339 BLAKE2B a90b68201923e2c4cd4554befeac3b3386c1d0eb578e14818a2ce5859eca0094bf0a821261806044842e974d35d2d0b9fa2af3a5f79ca3a4f263d0ec32ad6ef8 SHA512 3d79d4acdd6713b21d09e310b416ace15ffd83e77ee6b507cc3c2fcc33134a510ce13c5d54fe18465cbb4dfadfb9efb7802b1d7647944d22395818f67b1fbf9f -DIST firefox-115.11.0esr-en-GB.xpi 579674 BLAKE2B 25407ea301fbd2e44754b644623af3590eab29fec9e9a995df34a57290ac646f7ebfddc30da2c28e640b2865c0a3893f48c1949dff8b45f0293702d24379d5e3 SHA512 ade0870512377dce42d5d83666d468adac83398414030d07fe21e15201d8b32695a165464687a7ad9d8eca417b84ad5e0e6d7e88b4c147850430f63ed8d26189 -DIST firefox-115.11.0esr-eo.xpi 605193 BLAKE2B 2d7b6ea6223cc6ba274dbc09272ec02518332a8bbc0c0208fe6823e2fb8639862943d7d797b5bb1438e8acb8d2551043ac2a7cd196ad4bfa24e9487bac24e2e2 SHA512 5d58997d4775cc0a4e1c2292712cffe03454e82251fd89fd09a60bed5088def989482d912ae8faaf8cb2df34ffff121ab107ba2e6f8e388e94bce784e8733861 -DIST firefox-115.11.0esr-es-AR.xpi 622314 BLAKE2B fa3fa773fdb8b81ade45d11d7d3e61907e4809b8f6b7e2c055fc7e189ec3573dd92b8751572c885f4ca0d1493bfcded4a06e69aa928cf81904524608a50844cd SHA512 9dcfab125e11f7a7c6e7b6701e478f70f172a5f565554a5e760126dc4903973a52e26ad62c51d2728edb87b431b17b69cedfef9f43c755c0c3c13a0337e6bcea -DIST firefox-115.11.0esr-es-CL.xpi 621595 BLAKE2B 0a729d2eb989193c2dc0906243c5be2f9f5dfa0ebf40fcd3d004120d139d60dccb84c904edd7b4bc61982448aaed8632b5032d2835e1a60b80120629ed760655 SHA512 4d0634be2eb7fbc5007595c939232554338a74a488abefd7a4ac584639b1dd73869cabdbe80aeb3139895cdf6f4da015ad39cda43c75804818a25b869b6efdb1 -DIST firefox-115.11.0esr-es-ES.xpi 616429 BLAKE2B e25891ae6f7c2ecd882e16d604c6bdd6802850a1d0d098b43509aac29d3fe98a3ac44cddcf178b1f5394152abb3c52c60298e27d01a9b46e0c1d900fcba25e63 SHA512 1bb522b427114b9ea2c38d7f77e284a199bce54c49ca9a3cf6a5d7d5c5935e77e3bd10779816f40d5bc9cf7e71903245f9f5cc3b7b74dec54a6febb64de03f5e -DIST firefox-115.11.0esr-es-MX.xpi 584251 BLAKE2B 13b5c291cf3da1e8927aecf7598bca484a986ac3a5c7b1e0ec790364dfb4fe1df094d6729cbe569a6c2f1edefdfa80f8b9343b5fe464a2a02580bcba50f05fcc SHA512 d91cf6b3bd3eb97dc66d8fdfde6666b028ecee22cfaa04808f76477ef0837a21371c624c2d848ec6b52c41fdd6ddf09d4deca1cdbe67d655895b856ff0a1a108 -DIST firefox-115.11.0esr-et.xpi 532904 BLAKE2B 4e31216e5ead8de64b8273499ef2e9f2f735d4cabeca574a3fd515382394b9e49357ecc411e26111dde14715cac5e734c44c5f679a5d2b66d86d614d032db78e SHA512 f46c104e219fb014ef72d372608072885d429a78e88197762524bc769bf470edeb142e87a52077f18a1188d91b39e244cb352a2cb0faa76d445f653188f69eef -DIST firefox-115.11.0esr-eu.xpi 589105 BLAKE2B f40b6c02a047d10097864c64369b1c00e802fe9a226e89750cf32cce1d726884ea66fd62a58ca90b19497d7cb4ef8918fa54b5df763439d6f44bbecb39438eb2 SHA512 f3f5c4b54a168b3ab7ca56f978f50b0847296b13dc5be77d2bd176c04c01caa4a5b38ea58cb9c5977d493b94c91fdc73e3cbc35df20aca332608c1d9668a06bd -DIST firefox-115.11.0esr-fa.xpi 584183 BLAKE2B 1a6ae2554df47971b9ee116109f5ac6814174572cfe0ebb5ed62f1146630c8e6bfea50aea6293beb7507d40f7f54b22778b7df7aabe4a9a1e12587ececbf6e73 SHA512 35e06958797349c556cb89e18a3916570a84598e624f8cbcf137f52ba05e839c8257d084f7b7ebdf35f057dd6c7aa5bcbaf2cb6b2eab255d5dfb114332c0ad83 -DIST firefox-115.11.0esr-ff.xpi 471575 BLAKE2B 905076568606dde2419df1114622de83f6cd57949bbcddce59d152448bfefe8371e77d5e57ef5b0619a53fa76e27420646adc9bb368054973284ac07693a8777 SHA512 d6e44ef52015716fa19fd63869e7a464069b6f145a2191453b9027fdce0638ec5003c1af3c662628a331a8ff7994bf2af4021e95e04c4fb261ec159f5bfbf79d -DIST firefox-115.11.0esr-fi.xpi 600782 BLAKE2B 2f9bdb8c1c11c275a195496c63bbcbae402b09f419cb32caa5a84b1a9a550afbc46167b953cf6a20d9444bebc60f158b35d3331b11d5abba091d27aaa1387925 SHA512 d761c6225220a445980827445caf242042cab73632435ec8b5e4ac986b7783ac53ba293a3c6667ae170a03ee3b072ba7ffaab103f6d6eeecbcd019cd90f8055f -DIST firefox-115.11.0esr-fr.xpi 635409 BLAKE2B 37759582330f5db563bb54cb8ac5b266e80a0bc29b61e1e9c974e9a47e98c1b7b1d759c7fd8e90ff69433040769bf8ebbe5efd05927ab30097cded9b6da11826 SHA512 a25b1114c88985a6ac73ac447938923809bb7a6d4a3cd54fb9c76ece76d68512929ea9a91cef3d8efad427ba5f17da0a0a877684c213c9164c7ef6bdd45396a6 -DIST firefox-115.11.0esr-fur.xpi 626927 BLAKE2B 91cb6d0a93a513d67e63e657ea2cd6e267df5177d4a7745a06f15d24c96ae6447e4e714b4f75f8e2547a473cd6976e2256383ae5e34a7f71b1dcd9077bfed357 SHA512 0bb72466f24b6d6d6770db9e4385dc53390c055e3f5fa80d6dd484a3f76a9b0ff78f7344fb22acf89d75e0894e61880b49a7f177785338517fcd5552486438ab -DIST firefox-115.11.0esr-fy-NL.xpi 617933 BLAKE2B 2be547a0ed29e255f261bea4ed08b4d98949f6a619b6bc4cfddf2d15908ec1b5915f0628812d57b8b954f7e4ee4550ff7926482101384ddee85f8dec4fc3d0c6 SHA512 0dd6e124f023f37ff6a750a5c718e796d16488839c4bdcb7b1b64438b38c63d91f9635215d3ede8cc9d114a9c972162e50aa3df4219c8b0e3c051d236bb549e4 -DIST firefox-115.11.0esr-ga-IE.xpi 467475 BLAKE2B 731e89491cb2e3662ced5b5aa667077497f791eaf076d7689f6bca2413626a0d28a761be6045ed9f1a481a7b939c68779c5e1bd707fc2df376da2109bbcd95ba SHA512 a050a784f42e5bc5c474d67869e1cef3a7f64ce8bfdef57eea1bbb689c053bcbec6c811771dda8e4b2da173038eb348740481994c0a3857893e52988adb465e3 -DIST firefox-115.11.0esr-gd.xpi 589785 BLAKE2B e7389f3e513d4d923c3a25ecdac547b15134c5e2e7d4c2845e13f2ee86a73f1a101428deeb42eab9117a97a38ea9cb478ccef6a98257d7e80a867ee25bfcf158 SHA512 0385b75dfbbcd6d2e06adde390f27002288e444853f9d4f5158090f7ebada61e0f8cbb157b9c899cc853b8281625c1f63b0bbf7f3f71077de55e6e4ad72e965d -DIST firefox-115.11.0esr-gl.xpi 599795 BLAKE2B b78fea711842210c9d70b4abeeffdf8789445ba896f5fa630d8d5cdf113cc063b20722dc0c773a431a7cc45442f4374e3762db440da6380f2d7b7fe1832b9216 SHA512 a53759e861da71e7723b168b084d91d976660623ee1eefdb2ce5db97e3c18ffe0b49140c99983f4245f02ebd6913a9db0442d3ab270e5ca6f601ce3d603994b3 -DIST firefox-115.11.0esr-gn.xpi 633562 BLAKE2B 118460c105d6b8eba04792e81437f7c6a5046eaa8d579588bb3fc0f9089a44ec53b046efb149409a22fbdc379ba0844e6d7400a9320db84be11ef08cb4ee4eb0 SHA512 9992b5582c27b33eddc4502461c26940757028bd5cbdfc10145a05d6664dc11fc87832fe3422dc26891b802d5cfd6bc45d29cd0f766f45af07dec33f7249ffe8 -DIST firefox-115.11.0esr-gu-IN.xpi 523224 BLAKE2B 1b0b40941e4114e757624d02b6102a14d79c63f70130b80e5c82f100b01cb2a460bab6c3e0284db2d93756e8cf7864414a573dc63e72e89b04b6de4119251df4 SHA512 ade5801ce0c2ad64b362abf05dc3407cc5c2ee34cb2f88542dde2c63bb3fa503323e8da75d83a04ad49c0e563bfac3d2ce040005361243470f8c313a8328aa0c -DIST firefox-115.11.0esr-he.xpi 623918 BLAKE2B d36d023e200cd0bf0cd24b222d541def5fe2d1f9829e9af1c1390a3f6f4bad3d673b2225106eccf29bbfe37d31b7fcf0f697ac683ae0714880a8cf47b40e610e SHA512 c38924aeb6d8118d65808dde23a1269fbe6a41126651fa99a96fc2732480ca63b7d3372cac787296bc7ca1b03ef0361af945d033468ad9ec8cbab1b5f09bcc15 -DIST firefox-115.11.0esr-hi-IN.xpi 559909 BLAKE2B a832ff8a8ad30fb25e29ae9e74c97364b2d567b98007544c0699ef066a4fdd86274f8ebc76cd0db75f03f4f4cd2acb26e0d3a34e3bf6ec291fb7e9e7126cbbc5 SHA512 8f385db5e3e5c617a1fe4d783f80bcc7b2446bc40c6e09edb956301073a31bee5b73c87fef92723ef4c72a70d99fea30d750752f3d512ba5c4b07011082c28c3 -DIST firefox-115.11.0esr-hr.xpi 550256 BLAKE2B 909e7112c01a990458ef87079291ed589ddc133a1bb3987d9b2a327e6c358fcd5bd4fc163a0609ea22f6e8cf3231a81e93c68610e448de9a12aa7f0d22c0b1d0 SHA512 68b82c858c63facdafe235eb70d6476f9c0d4590de22182240734a279c8bc5fa25450a3fe622d38acb47180bcc8996b793677feded9a362a8b17da2546db2325 -DIST firefox-115.11.0esr-hsb.xpi 641181 BLAKE2B 2febc89a49d3d1865a38eb7466551cf9c4fc72fe95f5a2527ae1f9d054d1f94016d25922ca3ab37232fa9a4b8167a28cf7721461628dcd5efc3ff12febf27bcd SHA512 55e0ceb644dd34445ed41abcf91d2ff77d79edeebda18055ddebc7bf33c279add4d51465a0b55cb27cae3fdd8169cc11caffc97d0ea73f6310c4d428564b9537 -DIST firefox-115.11.0esr-hu.xpi 644321 BLAKE2B 077287c37c8d744d578a0f0892b07077aea42b60587e754fc5ea06fa39812503e0bdde1050845e4aed7d4f4fa1ab9e2303f393a73edf0c402c2bd46af3c1eedf SHA512 57d7fbaf7cb95064c2636d4430414e3413d83a1d5d1eb7f43e72da949e9407270ae968702eca8699e90705caf7816fe49e07ec8424cd531d0eaf338d73a933a3 -DIST firefox-115.11.0esr-hy-AM.xpi 645130 BLAKE2B 1415f8ea22f354428eef5b872cb0aaa8f57509799ea58f6acdd13ae61a16767fbc3c6039d14412c8a4f5207f26e593e09956305488d621edd6033ad5fc362842 SHA512 8675f81355577b0ad92b3d6452cc7b49835f92a0b9856cd19a26ae2604cfad1c9ba206ebe232ece986dd37757767b963589ace0d1f809f3b7041229fac0d6aa4 -DIST firefox-115.11.0esr-ia.xpi 605528 BLAKE2B a4bd330b6c545caf7cf2001b500252ea5f8731cec5ce0e9ab9a8346c4073d86bd63c236dc051da071250c11f840f4c0c74c44163df5d8cf46e2accd291959a88 SHA512 51b65e1ed0ac2b383ebc20be10671d02df3cc96d81c1e90aaa58bd64b783cd53e3c58f9296d8e1382e5ed3d9f830f011f1953c3d76a72dcc741ebfd5bf2b729a -DIST firefox-115.11.0esr-id.xpi 567387 BLAKE2B 2878a87d5827e057e463f8bc9b440c8a8b58c39eb71fcb874a93d56a9886489987d7d2326a4b39e11a7c54cf39aa33781afcabe80fbcdc01c1b6bd0188af170f SHA512 d369700952312caeceff244b17fbd93baaea1f3b494094c5b9f1811a646cf8f9073a76894fcef854705af580316f6dfce8666022ef9939ab7398cac7e2e47ea5 -DIST firefox-115.11.0esr-is.xpi 608056 BLAKE2B 338ec3c60ee1340e9416b8042733bf6044049b70bc0216a4e2149fd7842013e8c8944fc4286fbf360a7fe9e113ce23cd226a9366af03a3afc657e56ccd2f8210 SHA512 fd6a4fe9f2960050ef6c5305e126d953e0be154b06181a838fb1fdd3fa7ba2321b41ef0f15b81fc924c0ad3242ae48784861f2c6f31c4be2fdab6b3c9f817853 -DIST firefox-115.11.0esr-it.xpi 561840 BLAKE2B f69056a03ecfed7a951275b1a19bab7cc6ccd1d60633ba48416bf2c46f7deec7993511895d48ae3dc821dcf9d046953ab618474caad39bf8989c15a97035220b SHA512 d45bacbf14a86c4df8cb63e1836195209bf960a4d7e29da77fc4e21f84c2b36d37733288660098a7c38186fcb081e2bc42932f33d64f34c63b9233eb2c7a3665 -DIST firefox-115.11.0esr-ja.xpi 670985 BLAKE2B e2832037fdf22b202ee708d49eb29f691dab878669c50e0ed32ed40746bc032baa137e1f8adf5b24946c195deab345a15e5c5b021731a6dde34c508ae2f15282 SHA512 42fcb7701c0ccb1ed0cb2a691c0dd8f1af81759f7259c7ad9b57e7268110aad24a880d4c25b795fd0c305923c62d8ac53761eb0a5d4878b7c7df224c8d6a2b0d -DIST firefox-115.11.0esr-ka.xpi 657821 BLAKE2B a6e84200b7c2daf46fab1f97df31b8d7df799902402804573ee154d6106ad61f8ab701b6b4eb1bb6ce841cd57c86366b29c7b594f14bd6a4ce624ef55cc5f99e SHA512 d34cc1b191033e3080fc957df4a660b4e2da1a9805b2ebbc1f8e6b3f772df799116a208472eac05737cf3777e054effb21ed6a98057a93e58f7acfa8c2503e58 -DIST firefox-115.11.0esr-kab.xpi 598708 BLAKE2B 93e183676a6396e05b596225725c6e99f94e23edc3e82819c747d224ec9f8a563a2e42c07565b0e29a1da48cb085d666db1085fc390c13d59d66ab3466d800db SHA512 dcc73bf943cd22b5100bbd2a22d191266b1251f886d6cbb49c5d39d256b77a85fb2b0a6d1da90ef62b3ca1e418a2075918e486c1520da0b85599070081a37ff7 -DIST firefox-115.11.0esr-kk.xpi 702213 BLAKE2B bf99af8bd4a952f77598675d2dcfbf136565e85793a139b51adb91bd64aaacf86b8de19bb603788c03a89b745a4828fc3b2d627218911644ca92734e58f3409e SHA512 b3a6efb47901cabb40143b1fdeb34b835153162cc077fe26aa24bee9630be186b5d7f26c1e2aa58d08e700f7c5a43f48465d390767c83438157efa7bf246c216 -DIST firefox-115.11.0esr-km.xpi 522162 BLAKE2B f15dcdc105e201abb265f7d9681c205ae6a3b5f95d8ff1f13585933f34cbaab467ca12fc85dd8ab125e2fecd621613e04696c94d1189b144944ff7fca2ea0a2e SHA512 7e75247943bcd116ca6cc077b912d4d9c03bae7f133e9c08cce6b5dc34346fa1a52c25fe4de1b4ee3f06e427a2d5cd5a7089305ddd4efd2e535a03a5c8b6faa3 -DIST firefox-115.11.0esr-kn.xpi 488044 BLAKE2B d41f709991f63654f8d849a6e475575491582811c990499902384793fe27b4da2895f4a1221ed82d2c36e3c9400a0d06e9bfa4cc1061ea43b2616c24c611de4d SHA512 fe3dbe277c072732816cfce4e85c271d87d64008a9a6f550dafc34a8f45e35fd5da2f862ca954996ee1811d699e1821400ffdeb1a7b3add44799692538558aba -DIST firefox-115.11.0esr-ko.xpi 656076 BLAKE2B fba0e373752a3f16dc8f0c33a7c5a8d958dd28045fee54ce7e18f5e0e4988770a04a1fdb72a068f4132e0d971c57653e47e39073bc1b6d89675ff3194fa5eae8 SHA512 c4151f6b8012284669e2be27514bd7fb89ded14225c426c80adc7b3465514e8c2032faea4c93470ea6615ca049ce9f2951c906b9e407ca6d8a086bb8a48af270 -DIST firefox-115.11.0esr-lij.xpi 478952 BLAKE2B c0bf55f8bbc32524364faabf944473ddfa00570e518e502c9cec5c365000b2bf054fb46462f9e72ccf7b90d9090b7c97b0854bd2dcece1ec1002cc8a08de5517 SHA512 2e9d74aea194a5c1896f53362da5088ddfbc2359e795d46a3efc950be1f4d397c6d16706d0bc12dc635baac81043f22b953eb241229a8cd556fb800a91443630 -DIST firefox-115.11.0esr-lt.xpi 566062 BLAKE2B 2c89b311dcd27da0ab537e25579c4ea4b8d390146d00b7248cccbdcb39167d88a028ac9fe326bccbc144cbc7a642c159df4f7b8a54cd241095fa8987b341d7dd SHA512 73cc3316d5fa5451b8ecbecc5ff644daa81bda1005c06857a044414a2c13e2dbaedaf050dc4a7b4a2465c514820ec497a7697dacabdef24a22685ae416a36b42 -DIST firefox-115.11.0esr-lv.xpi 568021 BLAKE2B 778c28a2a16f22c6053db6b828eb521f0b7e66cee98e620557bbb45394f71f548ede84e706bf99f4d3b13c2c58f6c5a7b0ef1debc01e71fe32c7d11f43b18dfb SHA512 a761f0cc8241b7e6736e7739843f5b26784b05f7d66ac7b451581a4991bf9e6219693aa064dfe1a3ddb5300c014e9cf27637a3bbf7681b1435848a7214c33db7 -DIST firefox-115.11.0esr-mk.xpi 489768 BLAKE2B ff7f9db70f023d1421fb204fe1406fc85682daf3970d1c4262bdc78556cac313394e52553153dadc94c81043f561de656ff5502404d0b5fd3ed6be035e55215d SHA512 94788d96ef9817988848b4947bf40309a2fda3b86db216446b0124a6bf036e8a367dda721e60c6634f8b0f9e1b3d8820acf4c130327f47a37ae513114449d33a -DIST firefox-115.11.0esr-mr.xpi 526704 BLAKE2B 55b17e1a99473d0893f1ce638a4f6b189300120f25a2f7c73e02135ca9b2c2ebafd34a26cb31decad974e5ed185e4e450cb8fb4c8cbddb930209ca7a8ad8644f SHA512 5c678b1cd483b43e1894643ecac5c69ac1cc47e15914adb86014aba1412979908804d8582430256f65beda14aa833f1be4e7d80160674693fdc0c67c926c90c7 -DIST firefox-115.11.0esr-ms.xpi 445360 BLAKE2B dea5e310afe0266dae8986b1b2e7caf80b9683ba9a4154e804a431f42fec2653ec95bdc0d7558eef77c2937efb2030fd487bec05936babeeda02343f4ecbac76 SHA512 3e440e7a4238a5c24491fecbf45840c2c3bf5634cf10f9786d95b86668a03c436e977292cb12a20ab9dcb2355f1404d2e70958877d2cfde1693330349087b2f6 -DIST firefox-115.11.0esr-my.xpi 514754 BLAKE2B b2df1cfb7afaed229d86a9137d7e0268271f9972af660ac5450545d10710171fbefce3a1e82106e6c8eba091534ca08252c78e58d68e577a1b39babfb89b34a1 SHA512 065247c9ff4ef12d3e7ee0f4bf1c6089ca097e28034d2b24a8d7d597a6055d3f6a9c8053142fb4be50da032f95d0e223250b6107d40371f646c390a461b6196c -DIST firefox-115.11.0esr-nb-NO.xpi 600612 BLAKE2B 8846160e4f1a44bf2fac9422b872b0e0a89ba98758c72ba0f9701ad53b6b5ed7b6510d5f85ea94cb1e44bbbe0b96353ca9574b0f9120d6a01f66024bd1d5703f SHA512 c1e73527099edd13ffb0c95ffd863f0c1df4ea8857809d4f4a7811bf5dbfe12ad21d3ef33c4970c15106b7af644e844bef0c32f0c4829b3867d58794fb71d43d -DIST firefox-115.11.0esr-ne-NP.xpi 496355 BLAKE2B e961f0f5b2e700ed6a7be12e75285d1962a408ac43e81d04203e2e0f9ff40bf3240e04a0f691e9a55a7912a705b33f9117f9f3a808ee82454cbdb21929faf939 SHA512 d358b5a6a054a644e87a4e4a9cfe88ab74ccdd0692d63a455a10121f32d868d037c41e727471b0e5cb198edf5c7ab8cee822a7c525f3e59e9fa874c8f7d2d23a -DIST firefox-115.11.0esr-nl.xpi 611706 BLAKE2B 7b57e9f48a52218bb37acbf13da085d726fd3ded5340dbc12d671bc56dc50bf67cb51774372568fe8f97d6d0e107aa2f734462e47538747c293801d97c5b5931 SHA512 04e96af4b5e68e7e0f5d7dd33f910b2912f23dbc8771acf65f482fc57d3b2b21a18ffd6f2f5e784df5d65ecf35768a5b1a2635e5832a9c9caace83b8e32492a3 -DIST firefox-115.11.0esr-nn-NO.xpi 594035 BLAKE2B 171d8d6f11237a23a4716bbd66c8fb8ff6529fb801e0dbad9a767302a0d4e20b07f8ddf42b99dbb82c5a6d9058c0be308eadac6c694f120aa7bf7ad3fe3e0041 SHA512 ce761839d7557808ffdb22e55130b910c453c2f67d91d5826878b826a0b37dc3887d304f39a4229f0e42e651b103e7b0ba786bd08b638ecbe52ccc2423082d5d -DIST firefox-115.11.0esr-oc.xpi 605586 BLAKE2B ca94d057e8343817c6ca21bfb0689e9159054e62a2b2f318db6563688dfd29a29e24fd07baa2c6026c2616ce2592bf04141547890512ebc33adc10173664f27a SHA512 c0bc76076cc0a5f9684d6d51f4ff2dd455948df0d814b2c60ae63d001d3a57af802da345b25f56c7c8e12d0fb6a23e772a080353239707ef86f23e42f6d8b3b0 -DIST firefox-115.11.0esr-pa-IN.xpi 681659 BLAKE2B 3fabd39635d758b859e34249f40d5a1861c90c0e6facea65bbd7460b11585457578bdfb64d970e9dc5736abd83ec22381a5c06cc1b6e7de115ed3124465d961e SHA512 4efae168ef49bb6d325a9a3d11c8d2e563486ff49798eca6dccb161dbcfc7e0800d86e2df4864b2511cb5812a811a516a3f22e5de64d81ab551483ef48699221 -DIST firefox-115.11.0esr-pl.xpi 629674 BLAKE2B 73df32fd4b1c80c6b495d6b14632224e6b69b41ad33253008c8777fb2941440523d58f43f56058a695f29ddde282539bbf5329ba4a52a15e3823f68040e67a3e SHA512 69aae0a939ec6d0ef020f10a2b8be9053909a06b377121b8c7469c8b221a9383a68dbfef0add61794a5fd993ca30b2aa47522d1f5c7e7d427fe07011437825b4 -DIST firefox-115.11.0esr-pt-BR.xpi 616402 BLAKE2B c4d9ec6d658ddc3f1a0a54e978eee0a244a7c5774953556f79b48ce80fde90f9c12e3f392f37804793ad90fc939be4b93eab7bba398acd6fb441459a2d68a7e4 SHA512 95731038bea5bd4075a7bfca0e7c126bffacb6693a912d849b2626bb849a813f7b095e88f9ecd33a17bb96c94bbed9a7525b02a8084d280c9cc76aee7e752389 -DIST firefox-115.11.0esr-pt-PT.xpi 619990 BLAKE2B d1185a854e3c0a9395740f08da24e5d778683d18d66658f07de850e48d57229ab434959dd155ede4ec89c27f648ca199509c84461e3ae1fb45e8a7d8967341b1 SHA512 0fd3575c1cd73de730572171c86bbbd5eac6c9805eaa1619ab3ceadee5d9576b199c0b7dbdcb921dcd842abf84a6cd6c8cbd9585c0735c89cbc7b9157f8ed216 -DIST firefox-115.11.0esr-rm.xpi 609314 BLAKE2B 6c0e7fb095b20af07c75ed50250a7a257f3453ae2f907a34041bab8509a6e6569fa67eb6febfad36af9e5945aed246038c47308f60594e60db6aabf938c6122d SHA512 55bf5c32fcf1058411419c4a2aff07328547db5a567c632448ab2eec6ae28fde4603b7143486f20f24b5bb5039c6d60b92647395e9835c0c77a975ac26ea49c1 -DIST firefox-115.11.0esr-ro.xpi 543385 BLAKE2B 485a4ea7c5e2c5e061bf7e983cf6440d1fd5ac55ccd81ada092dce0f03997645ae3e1b0f204daf97ecc758b870ff2f6b428aac018ff6e1a8d02d17c9176fa5f0 SHA512 c6eeaa496d1550641b62396f3a0b8ceaadeef410f6edfb228779e887fa15dce2e72d3b1395fdf671531149c1992be65bd4e0058f9d3b094cb4a5abfb447cf86e -DIST firefox-115.11.0esr-ru.xpi 714541 BLAKE2B 11dd28379d56c7db5b0c3af3c3431499417a16ac37739dbb04f3629da61249387ebc3f9bc766e174c9c7a1d5aa518ff3b91ca33cae179cb3d5fa5a63df48d966 SHA512 ca34bfa8d8cd1eae64ac1944e6ffd8cd9ae22ac361b52164df37965e6961ce220da81dc311e22de44c4a1be76fe2421427ad6c908cd65318a6cbc23a5a7cc594 -DIST firefox-115.11.0esr-sc.xpi 571840 BLAKE2B f32bd83792a8ae3a1e69b53b2b93193df337a8eb2e55edaab211aff1a12a4bf0da2a4fb5b8222038502608f8a28777cef1cc0aad9ace4412292625443be1cbea SHA512 184b9657bd5261e3fb5aa91d023359b77d9eefa0f1c4447cf552f9ae38030b0ff2fa23d9aab238e9aa1ec34fe9b1fc5473d905cc91e591b51709fcb97443e312 -DIST firefox-115.11.0esr-sco.xpi 505549 BLAKE2B b80138f666259a1ddff4347043602cdd27311f9c31d0879493c2642de444d0e897fc3648fa95a1d3a715c54b656e2efd991adb2904fd1954c8a6bbef8a6e0546 SHA512 4326c7a6d4d104bf1edc39b53065576c149ccc7443063553d89db71298f9f37a05a477160c968f1a0264e4eeb650007a180f04b5b9cda8e735acdd66abfa7e51 -DIST firefox-115.11.0esr-si.xpi 600723 BLAKE2B 6c9f05c5f5c83afbb892a2b8f3fae6388bb928e1acc120f2b2391c33f457539880ea25f4d2616e3ac79d1c4e87a26561ac0c0708ea55e22e913138ae931cbfe4 SHA512 804d93acbb76f92ff03b88ace29e760fdc276de106e8b4db03c97a349c5cf1b3ec88bbbbf8adfb7a6b45f2f820fde47d05a233415ad0e64fa7fdd1ba5fe505b6 -DIST firefox-115.11.0esr-sk.xpi 645982 BLAKE2B b2f5beed5bb79d26f4a85283915e04a76ba6489c0fc3f6d6a968339fa8f679cbd1694f6ea7663c7f4a5564dcee263eb4c2be7b8e5e56cc720b18f718dfecb5c4 SHA512 6bd61dc742a6a4413aa7380cfefa60b74ddfc46e3f206ef9a87297e1a7400710ce73be5f40d8b1db489b94d0cab495f357469981f8bff0b6eafa944ebe6fa05f -DIST firefox-115.11.0esr-sl.xpi 608024 BLAKE2B 73a8fd5646df8d443b5eb3e831c249cf96d003af381aa91c500dd627835f046d96e291cdfad3219ffc7e9abccef50df4ffca8d45f6cb9d1d281066edc411d33b SHA512 e4b2373c1269819a162a93df511b9c864175a2d7196b35af285f90611a0032a17a38d3ba44fc355259e2a3ed7e48157a879ffe4326da89c383ab8fac7d47d3fd -DIST firefox-115.11.0esr-son.xpi 413535 BLAKE2B 3ac99102f7161a83491445cc953b441b0ca12262c421f3a75b98c2ff2af45025e2528d60f53a9553e9bfcd7226b398c1e3c3419c5c5813524c2201f4e225856d SHA512 aeac1452dccada5b48ffcf3e7d8b6527026cc816959f748fdca05949694511fd785e2efe2a4d9d717264d90054950ecf381b16e0b218c34bba9a9b307b567c91 -DIST firefox-115.11.0esr-sq.xpi 632192 BLAKE2B 53f700c912fec11102980662718f806be52d6e11690596297cac01a51f32058a9739f089164c2e86ed86390b16a0f226f942e6e317056a09cf3d0d9dbb3a5fd1 SHA512 2d6af3dc75e64ee2196773c442bf73de30e9fd77596d6a8971742200f664516e6180e546f6f0f681fd6e801cc97efcf7c603d6d39e870947a9348cc99380f267 -DIST firefox-115.11.0esr-sr.xpi 633090 BLAKE2B dac334371022d82b21719bf82e943912fd006797471c9e165276dbdd538f6cd011e2a56822d6235a03ac17b6b21b5f77c714da2fed07369be3fd72534cc14b8f SHA512 f3ed64a5d7dc4a0e51dc8911e6c299c663e56a22714947788ce8096bba4dd41943ac64b8a4fbf8260a0009e0c8bb2769800a5c1f3c5bce6c2e15b3134bada773 -DIST firefox-115.11.0esr-sv-SE.xpi 613542 BLAKE2B be65eaae07e11c913bb5172533521016cc32023e5d71bb41bf2580a0f70971d33f7fc7b5df8e91923747b8c74952885b7712446464b23c9ffc1a1ed8825793e4 SHA512 53e04a95c4ab9307aeebf342f662cca3e8faacd46303126ee9a542775a64a19bc9525f6bf537408e81aeb1d81d3195fe5c048ea23558cee6bbfa92abc827a5ae -DIST firefox-115.11.0esr-szl.xpi 520851 BLAKE2B 382f074f64985a8f98f8c34232d2fb801774685ae327568e5b9735124f5316f10e65ab4d60266adddc6f00b3ff0fb04948785aa959abb4eac277c830054fe375 SHA512 de687b871b4eff23403db01dbe373406493a6cf676995e02f31b6b0b4de27fba6e56fc7a94242dc01d40f6c6b418a57b327e762dc5e60a906b7c313dbbae8fa9 -DIST firefox-115.11.0esr-ta.xpi 503478 BLAKE2B b61e02ac7cc84ce627b0975a4f9dd973a2dcc2983a1f4e154b1dde318a93ca4dc11a0eb982e160d7c79210fadabc0f88649c3fb575bba0c35c1ea58fa9e9f491 SHA512 110c4f8190f0c9dd1152424fb93b86c0fb38e423ce0c126692d1b3e283d775052f7ea7e7f693a1ffe8149262bacf4336b8e2a551842f92067390f90fc5cfb74e -DIST firefox-115.11.0esr-te.xpi 554469 BLAKE2B bb7402ffe8aed43ecf449fd60d55cac035d8eb7e10f6e2a76b0da3e641c33dfac109e980220d0664a472a88a9ef852eab95515d138f16cd12db31d2b5eb44916 SHA512 355f78110c999034ed0bd0fce7117c27a868aae190e792a10cca0a44b1b1aa0204cc9239f52cec349708ec8a7027ecfe0ed5f92e76b8b7503c3450dba9aa36af -DIST firefox-115.11.0esr-th.xpi 689150 BLAKE2B 678bcf778b46c75670ab91086990ef3ae8f4005ec0d58fe81fa6ec5980ee45bf19111cb73e361cf6e9a0a87f4dc1f50f276a21a9802faab64464c12ec485f632 SHA512 671cf6169bf574ca091c986de35117800151d0030690faa69115ca7955d89576e01c38b91d64f908cb854003b68348478eeed4b03a8ce747d5d1d8c79bed4768 -DIST firefox-115.11.0esr-tl.xpi 527655 BLAKE2B 839f62c96f75b977bf57f0c0aac062a0e890a495313149f8394c5bb6a7861c98344ded12269fd44ec4c6540ecc73a75102d6307386581ad9ce6992e160da22a7 SHA512 f503eed82250f27c7766258719c6491e87e178e3f270ee8e6dba6aefa7705ff6cfb43c59e59d71a7e074f3a2404c982dd6ea8fe3b9bf49b860f2fe0a9efd6b7c -DIST firefox-115.11.0esr-tr.xpi 625234 BLAKE2B fde79f4e20380aedf2aa15f1506648912223c8cd269ef3340ee876edbf2949f35d2635e8429b7685dfa6bf3402cb0205880f55310badbcd7385fc5cd0f8ddc9a SHA512 efc4fac74cfbf23d7ae49578d92a326483f8b1d7e4ad747babe8c80d90aca7be82a9f58ad2ea32e587713cd904acf5d86d5e33707cc0a8a9336cfb60299f7856 -DIST firefox-115.11.0esr-trs.xpi 498528 BLAKE2B b72f0eb645a3932b13a56a03e10d2610b05ed757d26397e0dac5f8d74f7411304a6ec655fd22242410b1eb8aaebb9282f4d764724dc4378b3e986ceabcfb3d3d SHA512 3bd6b8cd9f30afa9bce3a86f8b79f5bbb1e808c244bfcbf50080dd7e1ce2b3acb8fe6ebff441afdd579f8aacecd3fa9c030ef66b121f8c5e18b177d2cc3ec5b4 -DIST firefox-115.11.0esr-uk.xpi 705521 BLAKE2B ba39b228282707b2d5af5d5edff2ad6e69e284234ac517573797a9fdfff371288a99b843e9f076183ecbe786c414e96735584defa4f4fdf9a838eaadc32a9ff8 SHA512 66e13f1db86de41dea5ec53d98480be6ef4e22b993c534d03066ba32058045e4aebe2cf4be2d051e890b67f4d569d1602a069ecc1f4e58db5176b4a8653a3273 -DIST firefox-115.11.0esr-ur.xpi 554703 BLAKE2B d315a77b5ad354f6509400e4bb586ebc0f6e312301de5b119642cbe1bd7f746914ff76d3e04dbc73ade6b2f07fd00ecdf0c8774a140503dfe5fffe5a904107d0 SHA512 af634ed4299c02ef1ecd1e6ffcd07b2cc9ca47d51a0d3fd08243349d31d3d0891f476229cfd43b9f12b42a45fc522bc4335f244a340ab25c1782de31d16c6395 -DIST firefox-115.11.0esr-uz.xpi 474518 BLAKE2B 1977bafb6b536d99afc72bd28b9f353783bc4c61a6aae99104eb1952d4fb03ade4381e0ea5a60f06ac55af61733a952942480a34b535b6a800c008f1f8e43585 SHA512 3b2a1eb7a96921612af1d1476a487cacb27c413144189ca143ced2a5d463f16bcfb4a1ff3f2f190450f303ade026131d4d987d019145055c8a5027cf2e697ece -DIST firefox-115.11.0esr-vi.xpi 649093 BLAKE2B f6b695b33cefee7ec84e829924c30cd1f23eca27bda79b6b2cc56907e26d032e79abdaef32f33f77e13d054df851305e1f93bd8aa7d9b5de34d5bd38bd6bb71b SHA512 e8e3c4f7e9bbfde77f3f70e889c4e393a016131258d47da89d75f6f8ee2ef78284ea966cd6abb61041f21b96d4d3891eaa7b0cadad8fe49d3ff220cc09416a88 -DIST firefox-115.11.0esr-xh.xpi 414784 BLAKE2B 0c0e12593115bf6bda6e94c6adcb9a565446973bd9ea153e15509b183233a0037b28776804cf801a060aa7002ce26dac6a5829b0e926468d9182e2caa0c8a54a SHA512 001b395dfa0d2776c28fd9cf8e6296637a0530ad097e1b549c088670aa798336b25d3fe4f9f93b13e398404ee74ae65d8a479cbed23e49f0879a4dae7be10053 -DIST firefox-115.11.0esr-zh-CN.xpi 650822 BLAKE2B 2c47112cad4d9ed8d66f6a6368c0939611d717b9d8c0d0bd9668f1c4c60b4e813cf1f81424d092aff8e139fc0e53171382f60ffd2f55b75c438f00904747f03b SHA512 79d7473f7ff7458f8570c0fc3fa8e192c9b355c32c6df9f8c4b2ad626e3616d56ce1d83792e53a275d83b977e8f292b56083f50154ecddd3056be7140af60eee -DIST firefox-115.11.0esr-zh-TW.xpi 653644 BLAKE2B ba76edda00ede0457a31267f6efbb12a38fdab0dcd8e90da74267e2a0f08a18744edb5b5d4ab05ba9fc26e8697961178e5a74b9c2637b949b9aa8588a2d34c3b SHA512 029c0b0682de91445a784bc0b5bfc8813b506ccfacf65ce6f33703519a8491bfd9bcfc76815e8e8718b67ccb78479cb6328538850c6ce67b1a9670d7f6f7abc1 -DIST firefox-115.11.0esr.source.tar.xz 506015444 BLAKE2B ced11d0665215dbf0aed710015a1e27863ecb8ccbba71ff6f6c57e1789e54c3c7c1940507db86ff2d8eea4d323a9ca7fbc40eaa6eaa7b0ec922ff69ffad64886 SHA512 0f3a87c99fb008088afd509d9259f893fdd44ea6bf6a5e69806fefb8d355415e81b9e8832a392acb9d0c1c50e4add7f1362a4aaadc35e1d9c2e55baf7136aed8 -DIST firefox-115.12.0esr-ach.xpi 458871 BLAKE2B 2248f7c3e97a1dbdd8faec8473763af575fc26a0a1ef6fc2f0d2d8994e2692dbb5eb6a304f58ec26ac856ff4d025e41542b0ef51652bb4bdb8b3c454f8e187cb SHA512 10006c2ac7120eebaa0070e067d48e5d841d17f66fa8dc6c7b1060888d9db324ffc46cb112c4924224b61812bff232fa852f75f5addc910b2240a83b30d7411e -DIST firefox-115.12.0esr-af.xpi 415033 BLAKE2B 9ed02f9444f6448f6d83c9dff2c2b3774742e3286230f2fbc5fabb01a3c754d0af61dd6d462e551bc546d73f2e94d78e591c199323545d1e8fb675d1ea7d1592 SHA512 caf804b635bccc5943c5884bdfa377a91b219e0b896fae6bbe1f087841e5959c9e3d452837f6461f24dc08f660105a0c950dbb639f55f6b6b1d18b6fbbe687ac -DIST firefox-115.12.0esr-an.xpi 499416 BLAKE2B 5d80997630dc31824a1a7d0ab948bb0bb7c986f84a5cd958dcc7a36d627899024d2e8b1fcdbb581a698b909aec8fae93c198c25808e37c63ef35911ccc31a831 SHA512 7128bba55aee22d753ce5b06395f920d5b389b4f0ae73c49458ba6ccfd20c79fb4a8cc4da670f4b7b50666b9d5dd8ee9983b28feef80d211cc74f83265a96d5d -DIST firefox-115.12.0esr-ar.xpi 605448 BLAKE2B 0ad4f9bc350d3045163958bc0436f2b1106def071c7cfb7f4fdff579310637ef490a9eb76d2718f1d02c5d354d2c3b707f687915308501427fa3ba52c2db5e3f SHA512 9267276fda3fcc8d189d3c5885b1b748401e634ec5e9c6a70461702058cbd85d385dc479a89168311783662eba94e3eca2bc82f5c2e76d6efd1e96ffa5a440d7 -DIST firefox-115.12.0esr-ast.xpi 491178 BLAKE2B b168585a78d30f93026d957c49aa56e62072bc1b13031d8c4b02c4da2b56e17aa2f0045978aef38a6ff4af4f7700c2301369e9c646ba50e5983844a9d4b77709 SHA512 f68b577e9118218c4a3afcdc9332efc1f6acb1522bcdf062f8ba5fba471305a26a817fa023af03e11c9df975771d23453ac63872fb113bd5dc04fbddf2eec28d -DIST firefox-115.12.0esr-az.xpi 485943 BLAKE2B 39433d83487517305966792cd6ab1da29578d192bea4e55dc8b0c347ccf68c060348da5d5e19f22a3371dce7773eff0c78127c8b551d76aee6ab4b061dc61e1d SHA512 6eee0312d977f6f7666a7b1da08ec1bc169f53d195b1b72e3022731f1f32b24b4965b96076d5dfa9522724931d7d4b92ceff94ac1e89e54fdec695ca735b6e2b -DIST firefox-115.12.0esr-be.xpi 708816 BLAKE2B 154af6e9a5796c97fbc1243fbd478126fc212f39337cc373392cce67eeb2074f0dd45b3c8bcc140a986863ed098cee2d3783aaf996994870e61a05106a408099 SHA512 39bdb8c0641c3a47df9191e6a87f24bcb79ce253d84493b97a1bf2ec96a07da8d21ce079e20d78a55a2652e10b53d55b0dd7d0641d6d11577ffe772eee03adec -DIST firefox-115.12.0esr-bg.xpi 597482 BLAKE2B bd00820d9ef5886c3f79d77102e14725c5c122d25e287438a374aacc04184ec559a4860ec4b0fff5a7ec6f9cb0da889a16101a8cd3318331971ac83c858ccb2e SHA512 70c96aa87b62cb5a62f398d8da8efcb2fbb48f3bfa1ca863edb1805830d09e0c91e2a219d0ef15ebb450376cb4f2255a96ef84014ddc5545797e41759b934fe8 -DIST firefox-115.12.0esr-bn.xpi 576198 BLAKE2B 629984fdd10b5b633cf1e6c580da7e7744ee16fbf9266b086d26c458c0cfbfa8a31ad51cba94b0691a6aeb11a80ba75ba6437e5c5c99257ee8174ca4d2fd7525 SHA512 a21d7cd4c695510707e669c7ee98dbf39fb6bcb36f396d51fa42913515f45f0fbabd011c5cb0a649a877580282426e1226c93b45995a6c5a6a399c2b64dc50e7 -DIST firefox-115.12.0esr-br.xpi 583261 BLAKE2B c1ff94f26b3ef4f6459d2d571994fa1465808b8d7555be1c833bb7424c6edc22b5beeff4bbf728457ecabbb954a5ec00a4657fb7782e9de86964a16c4d7ee1e4 SHA512 ffc2e8c1db04d1c60c797322a685b3dee07cbd0ac9a0baa177966191b4ce01990bffdec8e9f224fae41f22ac57b895018a4c1696695179c6b6a25addc5d762f8 -DIST firefox-115.12.0esr-bs.xpi 496138 BLAKE2B c24fde1d450b49534473c3f8a765d758d3e4e03d87aee04532a2e31181042d87ae0eb1e46e6ab9127ea990f63feced030c368998f146471397a04266588014de SHA512 d849e3b61ed2822a4250b874a386f9a348431318dd4ee60ccf3dc3c6c28be131a0f4504b8f2ce07a044216ccf310d94c4f359937319213d73324ed39ef562e64 -DIST firefox-115.12.0esr-ca-valencia.xpi 539116 BLAKE2B 7cda7f974051c78dc4ee0af93dda1be9e73f1c1eecc44097fbcd5d37a5e3f4fff92a859c99f7d41f3d826e38a89cbf022d5b500755128d7d805a32ccfedb29b6 SHA512 08ab75fcd349c4fc78baba779330c975908625cfb5c0dd6bdb70f35a1b261b6276b9898291bdc7fdc7153faf0d069f466c0302b0dc360d82c40e21b09a5ba1c2 -DIST firefox-115.12.0esr-ca.xpi 578636 BLAKE2B 7e4f0382c0b227098575f16a50b5d8e32fab616ec36cbea905292750a315094089466111aca6a92659d73fb447da2393d9a51d893a6d9194fe0f4808bb9ffabe SHA512 c73b56efb677281e2562cd6ee1101bdd2ba02480839463a759611f80cb32285904e9714163d9d646a2e0c13cd52c28c22952de70efa781d5d825b82afb49be86 -DIST firefox-115.12.0esr-cak.xpi 586196 BLAKE2B 79a19c17a8ee7153f37db50a1e628fed20c5b299fa62d62d7642afbee461f90997781ab2bf24ff5ca7c750a6ac32370026e9058f39d89876808c116dcac37596 SHA512 544b1e77224bfc69b4c26893d996f0a9ba85806d592f7abbe945f3ab970fe2c4e2201e3c24f6f939a408e96d44ea40744c01bc11df722ab1bdd1196340ee7340 -DIST firefox-115.12.0esr-cs.xpi 652720 BLAKE2B 5a66970d37b7127a4dff31d3d31d57761647615e7e19c0c12029d48c7c39590f5e9a5afbee138da6f02b06c8c158bef97b3cf506cd0e4c43dd90a60101691c32 SHA512 eff4635f9a3e96e143c171d6a8f120631c0244824e1fad9fe3cef3e2d2ffbe1e2573e9f4134622ad67d6de87cd9e9a429688024a8a3bea200c9779a7f7f5fb04 -DIST firefox-115.12.0esr-cy.xpi 618131 BLAKE2B 0516c1cebb90157040ff87e82804d0dfefb7cf117086b2ffa84abeadc74d2295073a868e49fa4541c61c97a9b03477e85f57faa29637f85ba96ea9634b05ab33 SHA512 77dcd57b4a8a4d630be5953f51d4804676eeeb49a3817756d6b967504d5cdf62f79481c1ed64930e860b5ed9cf5244bd90e1caf01e4ee3115920bb290135e4a4 -DIST firefox-115.12.0esr-da.xpi 607127 BLAKE2B 466503bf3dc57dad0254f5b4aa91772ceed8a768b2ed39b4057b9e92d66d19117a3f6f6ce87a77407a4421c3349e033fb98ef3c83b927b4dec91ce24c40accb7 SHA512 f223ba174cf06d04d64893fa5b11123f14c8c8d8de584a15a574842e5b7dc9a3478363b14260ff7f98427b5fbec67fdbdfa19b00d12058393befdaf734f97d70 -DIST firefox-115.12.0esr-de.xpi 625998 BLAKE2B 431174710428e888d43a15d7e27b328bb584098a5cbaf5ced8698e5ae21cc4d91b47537e026a889fd3aff0ac061453d2129bacdbd8c989a7980e102f3ef68794 SHA512 a5c7a3938962dd908bd30188064f878a307fa182c30bd38692c66e6076221afdbac917e365230ede4695d36354b83dcd7f68976221c63feba24b2a90e5f054ce -DIST firefox-115.12.0esr-dsb.xpi 645214 BLAKE2B c3fbb72b15f431e22512d44bf39c7d30a68e0394d2f5e33c26b758330027b87e8b15e5b15ab013fee2bdc68d905e8e826af21bd132d6d38728c10bfb8cb39839 SHA512 8e890f3e900ffad9bfa3052bc083350c67e7e389252df5e8acfea3bc2ad9e1977273f02a13aa3fc2f17e49f7f5760e17a13b588c4472598addec5f083b389fa9 -DIST firefox-115.12.0esr-el.xpi 726149 BLAKE2B 8365d9da2f2a2011f95a6397b4c938303a7bc38102a642bb256194567f2e09572f749193c9829952cab9e6bd01a9b136f9157cd2a4b9aab3e4a3ace099cd230e SHA512 de8653a03611bfbc257cd7050fcf5367fb69d17af2845a2ec59a94a7d708831cdba4020c377b3daba59e401985bf44d07fe3584c8c01f4254a05a78f589c28d8 -DIST firefox-115.12.0esr-en-CA.xpi 577358 BLAKE2B f365b4b9e25a412f465440031bf9e433c7942176957b6eca9060dc7da57199d090c4a506e3585abf6a718e3a4f6ae21dc8e365fae2d8e26613b3351b9bebd13e SHA512 f6a455a7f5ecf80b72d58c1b5f1931d6461e9ac186e304486cd16c993991f7f9e58cdb4105340ba7e824be3877af4a839d561ebbc2301cbc0f9b30a7d770b7ed -DIST firefox-115.12.0esr-en-GB.xpi 579687 BLAKE2B f88d078b8eb520728fd9fa518a6da077f9eae3d088ba8cb7aaad838090500093a9393a275999b50ad31171aac377da8f5897bfcf61504855fbd4b21e86a70208 SHA512 d165c1cc1a28862a469e96e9a292d3df5a7a2e55613686267c716c622ee17e0a51491ffc805064563b828bdaac34d689da03ac87f84786a468f12efdeb7cb4a3 -DIST firefox-115.12.0esr-eo.xpi 605209 BLAKE2B 6906d490d8c13bd423b238860399da80bee4aa5181fca598bccedd034b1a49f511c562d9850c4ba534cae3e9d8d7472eceea2298a949f69cea1b46067e244bc9 SHA512 10dcedbf2c40f7661d3165e48529e6559956c4b1ff8a146614d3297d11d9629ace243634612050c251fa05bc05a9e5ce5bb5bf7f25c41a0a7b9d383044e64c77 -DIST firefox-115.12.0esr-es-AR.xpi 622322 BLAKE2B 1fa446092a46c5195dec1139110f53b241355e9f7bb9c56c7c900dfd68275f6cf38c98d68f64e8ccf9a3cec53896bee1a34125293c104264916a91bd05c669c4 SHA512 61d3a34021e9e41674d8590dbc6577308461d1ab67a8835000d05f5d791479cdd0831a76bb114f2f9ecddf73bff5460e4d22ab59ea73b8f685d107813d113326 -DIST firefox-115.12.0esr-es-CL.xpi 621619 BLAKE2B 87ea92bbe5f2da0adc6696ddd8731d62a7d010b58c582e626b858140966f553ae8031933029b0be5ae19808f5fcf4865b57fc6786998ecc905165cbf26f939e4 SHA512 8353bc5ce2b62c76875cf85acfe4554392d976f6a682a3fa1e80dccdcd77b61276bb6b714d6a540950967a77a246dbd60002741232affa6d7b6781e04b0c3fc0 -DIST firefox-115.12.0esr-es-ES.xpi 616452 BLAKE2B 70c2bf47a57e7c0f44959f0d9b5468823d72a1ad7a05f5fc7085325ddb2c988feddc8087beb86f56397e4e5559ba4955a1f7f1a5209bb3b4cd489c7ba8d5d511 SHA512 3090a0c5a749c4c9a35c481d78cc326d740fa8362e9814128ed32ed1239d21a578165ae7c3049824178c66b390d1693a5e38af3482a231c96564392cbd9ef983 -DIST firefox-115.12.0esr-es-MX.xpi 584262 BLAKE2B 700c89d082e048252098759d7fc0b3fee4b2295f2aae7ecf36e9dc147a6f52040cab7224440579cf78e8216bdeb00caed7619b0d709800b29fae2517778e18f5 SHA512 55b11e012d4ef5703629c303b8e0fb54ffb1729a15051683641ec9f22abd73e6b84c608487a39ac264548f35fc6d2673e1d922ed67ac5166222ca17927fc3769 -DIST firefox-115.12.0esr-et.xpi 532914 BLAKE2B 9121f60a81f1937398a298947fa2adc163a8a667e6d779f5f15b3267f118bb759dc6361c9f2fd92d13aa0b1eab9cb694497225bbf61b924595d70e56e6c82962 SHA512 7297dc581a658a33dbdecaf5d070aabe45125104812a493d9516f3fea3ae83e134a7cd9e7afd80823bf23d5dcb614225ec53f56cf70eeba2a4e3ee86cc887ccb -DIST firefox-115.12.0esr-eu.xpi 589120 BLAKE2B a14bacaf147e8f3b8b06e963cad14e9b28d17c0368ab5178ef56e44959020c38e7543365d0ee2f11e69fe582bf1a39ed0540cef46bbec4db27ec65c45f0be458 SHA512 c7fcbcd436cb93e919fe6be78647746489981b8c6d61a3dd8902d37bea4d1f4ea44d31c9b1c5690d1d874d5bf1e9bfd4c7b572b5abb92afcf2bd87aed47821ab -DIST firefox-115.12.0esr-fa.xpi 584206 BLAKE2B 02c044de26628dd9765f9d4498f4b93e4b88d2545b291fd8292fecd4388d749adae837bf81970d79332e4c0eab2e6bc077af057db9a1b1e2fb5702b01a3f95f5 SHA512 5821002c5b37aaac5a33663ab4f19edc09190d78dad3794240f59b0ff7c971fc35a0ee057f7d8d1bc44a3196ded72a4891270d9e5ab316118bacd5407daab420 -DIST firefox-115.12.0esr-ff.xpi 471598 BLAKE2B fa6df59bf6d4ca71f0c033b63d7cfa125e221ca9e8b9af74c1895551ef5fe242baa71b4d2b3a82eeb3714494bbcc33242c1dc92f1d6a4866ccadf370b2196bb8 SHA512 c52b2b92982b6c7d98deaa825754061ee157b72a43d0aa9cfbf8a38e4d12c6ffafa8a61513eaeb0533fe4a86bb3f3b40eb28b1d7148e7c23d10a4a15703c600d -DIST firefox-115.12.0esr-fi.xpi 600787 BLAKE2B 4268db3a28ad83b6ee4e1b780575cdf92008e65ab49b59b64543c524d48319fb81622bb5e39c2da8c014d05cfbd115565c6dbb5785b2fd6ba712e56147447497 SHA512 18474b986f7e18581ad6a18024f95535ce373bf8b4cdcac71642350df035f0ade203c3ef9ab7fba2496f1090ce9a13253a9b64e88cc5a6296999350c827a320d -DIST firefox-115.12.0esr-fr.xpi 635427 BLAKE2B cd44bc5b076ae9e596c5db692d9d4e9d7471f37ca3043fa08d75eb3807fe8921663414bfcdf8ad65b19c100019eb3710483c411db651cd3b5666a7e7e4b91ed1 SHA512 c8f2419e3fb61402e2736cbe8cc3b9db7f1ce7e13247f7290e43609f7427620624d2828ebf9417641da6b44c1f883853f0fbec5499165204cd85a01ecba2a5d5 -DIST firefox-115.12.0esr-fur.xpi 626940 BLAKE2B 28b5ec2beaca0c3a6454536ce5cd302a63d5b0a15ee57caec09ac422b3d493ea7761c8e9ad6e473e753908857766d92ba9b2e56751d597a900b161fe50857414 SHA512 43367025eb82a7e1ccedce36858b19566fbec741904aca6a5eb21ab5432c489c8af98fb4a0959e3614e694f194cdc65c72bf263cace3ea86d11e11731725e5d3 -DIST firefox-115.12.0esr-fy-NL.xpi 617947 BLAKE2B 1ee6bff1636334f498297bbce1353eccd1b03fba5f2e64679061f2393b2fd31d59249c3f58d40660b383678003923ac442197c843a41133b8517200f2203b92c SHA512 d877309f75c8368f3dc2b3a890ad92b4961ad6212b9eb43675d4efd49425566b264854616f2ff98a7496ab783cdff91b8ca1ca324ff2ddf981c6255d840a5da3 -DIST firefox-115.12.0esr-ga-IE.xpi 467493 BLAKE2B d3c7aac9a3737811521d246e89055d2eb8aad1a5f4faf28306848cd841e59bbc958f72235e918817bcdf72e015ea75f3a326715b33a50bc91d184977d5b4732f SHA512 0b895ba289902d318d3da95d9319ed481cfca4720ed7bb13b7d3421e076c167cfb5da7af30d5af107f497f75d0e511fce9b4c3d8b38dbdb922a5e39c335ebc86 -DIST firefox-115.12.0esr-gd.xpi 589810 BLAKE2B 26c7446bc4f249e15a889a3db07ad02a09131e8a587d7db4530181e83842a82c530ddda26516e2a1c0d5f96a8a11d91dd194622dca447b136a79db4481321122 SHA512 6658d35b8029bf432fb843567e52ff6cc061f100ce25341b0ac7f3a4b566c9219b72c54053bf7a2c69ba2597dd72f868f27203fafb06ca5eba0029b8b361e37e -DIST firefox-115.12.0esr-gl.xpi 599816 BLAKE2B 39168be735116715fbb469a094d277a35692ea3494be28307cbedc5f8ccba7bcc403ca70b4c4022424e0e5bf3440a870b26dc47baed566139b5b27759a6cac3d SHA512 f0bc9c0ed2f9977a01895e61804d095a3e4ae99c355c3395b0ca289b274806c8bf008f40e43cb85d1dfc1c491f428fffd3e4aee24fdf955b3344a59b6d8faf7f -DIST firefox-115.12.0esr-gn.xpi 633581 BLAKE2B a27213cf8d4298592fb16e80e9e8c015313ec1a9616fabb1596917eaca54921fcdd43f092b4d945c05d00c427367bd19ca34261778846494fb6e9c5b18e788b7 SHA512 5bd8ab0cb3e1c723a7bad96f53abe0cf6aeaacb2b09a529fd6ca5182e66439b1e14a058d221ecd185dbdee12455fe87a9d583993b6b107264565e37325fb7075 -DIST firefox-115.12.0esr-gu-IN.xpi 523240 BLAKE2B 6eb526c39b660c1c1fbc9e1a1c103e76484720f705f148986ceccdee4e33488f9c37d3d611536214a97c5449afda62f92b65099b1e8305d826be87eb6acb4807 SHA512 e48eecc85c79b77e511981026dc30e6689c30157384b3e710eaad641b7f0f7201ee2f0c03b21e2794304846eb33398ecb3b714b1c54fbebf50bf8272bb7e50e3 -DIST firefox-115.12.0esr-he.xpi 623933 BLAKE2B a33953714107b57c0375da6cb06bde852033eae513c925b9d58ba0ff7fc9d6c902a5975076152a3a52978623507f80544a70afe4e4ec72073cf697738416aa41 SHA512 71986c5dbd1968f44637f0907cd26a4c260a23e6152dca6d73861f9567ffc400a2be8dc4c23bb7f37e57470314a600d4e00adee88b5c2ce8f29ad93c135e4d9c -DIST firefox-115.12.0esr-hi-IN.xpi 559922 BLAKE2B 80fd1df96fc7418169a5763cea79b4df9eb956aba35f9bbcf1dc1bee2d420f1dbdbcea329105a05a4cb65ee68b2568a57a5deb8255fa6330fc824031713b2216 SHA512 d9d1bf8fc878bf77fb5413be8cd579b520bca8ae22dd61a656bf2c85454ca240f2ec71b4f4a4fd269e79ce550c18738a4de10de537ffa6190d3f290d770a987e -DIST firefox-115.12.0esr-hr.xpi 550268 BLAKE2B d6c2f44b9a25b876dce5f96d09e6021e0670bf70b56bc47ea500bffc6f37478f9edc3714a5231e7de50fb70f571740b10baf58fb364cca25e5d8b2ca8695bc4f SHA512 da176d51f5b03958a6355361280533e0b6fff627028b5f559903965ba5813926155ef6fc8f58c940d8cc781c74dfd708a339c12fc019ca280e0746cbf73a5159 -DIST firefox-115.12.0esr-hsb.xpi 641205 BLAKE2B ae41673eb7d4c385c1ba8aeca6b084262da47c494f8671114e34a791b35b3c153928932ee69a95d68d59368317c3188c277f55988d80e6167d8c15cdbe3ef76a SHA512 2f956505757ee6de39d2b95c889736a5a4c1ad9a4dd742ae569c648e7528c3e5157f126326451755a8a6eed0a761182d540f0bb31cfaa29a14c91729f900a1a4 -DIST firefox-115.12.0esr-hu.xpi 644337 BLAKE2B 32fa1a01f76912f642b975bba0186fec6c5cd88c8530fdd9e1848214af3d54322fde37adcc80840869745b81dd7d83ffa6300aa3683d655688e8bf42a34808fe SHA512 12c9b1c9edd025261ceb4860b26a77895dcf0766dffbf41bd0a6a96673d9ea58990e2586682682cf64eb90080b009dce68a1ed4fdf64ec11f2d273a24d1ec554 -DIST firefox-115.12.0esr-hy-AM.xpi 645152 BLAKE2B cd04323e785593eae5c56f4aba0bfdbb28e4a94a9d4e611d42b01bdec9a87c5151e5cb67384839bd236ba5594e7291bea82312f298f85dffc982463219e56eb8 SHA512 dc12ec1a589ba093d1091eb29b2b0b48bdcf1155bc051592b9bbbd26cd2afdd57d358423f132cfe46f45ff44ba4b4ba7980a3355fd9545d718e69f7e0b5b5967 -DIST firefox-115.12.0esr-ia.xpi 605553 BLAKE2B 01b5097e5c81401094d4cb7bdb3c57f3e00cf0bd98c8b36ca90e79f19fa54ab1e34ffeeaa83e6ef64bdd6b64e1407fe65bc638dacd3c31488a77447f1a76d7c3 SHA512 284bc4e2251947bcd820cfce92b34c0c9c728d8b4f4221919229117bb8699650394e27da16b51655ab13b97652f05bcda8055646f227e570ecc10f8c2da42b67 -DIST firefox-115.12.0esr-id.xpi 567417 BLAKE2B 357ad9499048eb6f4b3da70dbc8ac2b8c1f64748ff8a6d4ef0c208ad5cd56e291e48b04405dd7dd8f75d88fb071bedd15685ef11402324f7b46115850211cd47 SHA512 5008d1379e40accbafc9db3c3ae3d1d45548f0013077f1e7ee5fc1c9b56df27d1989a77c916dba265e3ec5a331c77ae49f2752d35699fc5b7794503379619528 -DIST firefox-115.12.0esr-is.xpi 608078 BLAKE2B ee059a899f1a5c3e710f4fba0366d84b49e65fc0d77b5506217d91e3f5877198e155965a787ebb9dee9afb1ee231ad2895189dc4b9d90108ff14e46d6e6a8b0b SHA512 fa92ffe6001b56b3faca98625a1e7fe5a222a44de2b6e83a321b66bd7dd39e38e3a0f36d3815cbad462479ecfecdaf6f902d12321f3ad1b81d54958fe5d99f14 -DIST firefox-115.12.0esr-it.xpi 561851 BLAKE2B e3230dbd4fdaa1afb4694152e73f998643d1554419ccbf637aa47c85ff2e0bbea1c4f50eb8c1bf40673a9c6fae6a415bed2ca049f904dc52424b0d113dfaef8e SHA512 f3a90857b024bad26b5273abfff622c759aa68089b5d00794faa07aaed4c2f49082945051695a5004de2a9a8bfbf5b958aba5f73704461e76910e490ef7036fa -DIST firefox-115.12.0esr-ja.xpi 670993 BLAKE2B 8d1310914d31e402f9fbb3f3f3a1fd904f9b736bcad9341ce5d5bc3f27bcdffd5f434bfc1000d8c31e3b3d0ec8bc2cf4ce801e5901dccc37378f9f1c668e3e30 SHA512 26097d5a04755d60fd6f18bfa1cd27c8c2d351ab92d287b62e9180674b005bf39d7de5b850eff3e103a741a7109e588f2d94726c989abb4a82c2122ae06340b7 -DIST firefox-115.12.0esr-ka.xpi 657820 BLAKE2B 31f9752edfbb027b4c6b9f068ee0ebdda7c9d26b284fdf7c4cad8269841c61e9feffd4b9546f2a1dc3af71f705a7ec06f55e74d60f3a3eaefcb615800755a0f5 SHA512 a42cc532659b8f3e1372d4d98dca251ba47c64278d926e0cf8068946902ca51e323ef1bc06c53687eb4edc105af2caa56047635bb3908ff6ebcfc6ab3fa32e41 -DIST firefox-115.12.0esr-kab.xpi 598730 BLAKE2B d1f20ba4c5debfbcb76bb154eb41b33a64ff8ef954bb0789d25fe449acb7f124bae5c09f4efdbb23a4e64b8c07b6bedf1b5847bd360ae569f1c9d75261329ec9 SHA512 48760c6d052e6b8eefe3bda730f29d21a06c06702a150402278e41a9320482969554121b68f4fa420e8f061286b8d76522b7b35cc4931c02f1c02b7f6813cde9 -DIST firefox-115.12.0esr-kk.xpi 702225 BLAKE2B bed8add659eff79184dcc8523bf1e6b39baa9d3b3bb1ded3ae404ecbba8fb2d89a4b47c69afd2d40f126bd7583ae73efec31e1f10ae14e57819362cadc5935e6 SHA512 6ae8dd80ca2ba6905063062a70bf427f73ca60bab7bd9517da6e06ff2f9e524cb92dc29de0ff10fa47ce6e9b2826a3f543d468eaa64e1a500a05cfa3cd7a72d2 -DIST firefox-115.12.0esr-km.xpi 522181 BLAKE2B 3e853fc451b11b6f134b15322aaa9bbcc5ec152f024a5febc96ccc5cdfe30afc14d61025c1d2a3517011f15bd56649c596b8a87fcbe60c7dc57dc35f4a0c59e9 SHA512 bc548615441db4483f5637bda5085edf725d325e3697f083ddfe9155cba0c5c382e71359f0891267f16a2aefeb0b2c01db1380a05a7cd33bcb3f689e87f6a6e1 -DIST firefox-115.12.0esr-kn.xpi 488062 BLAKE2B 3547425eaadc0a3e5b95d3ec9e89e168c98055e0afe307ba87546ada2ce34f76df873c902b66998426d55e78d3aa2eaf5077fce1f59431116e654b134193b0b8 SHA512 3d43878e8a3c0d8260c55ac65d7b196ddec38702d822f8848b99bbb9cd3d525d7e1fffa16a434bffde69af1b7f08375df2b9d0ef7e0a1eb218a19bfdc46cfe98 -DIST firefox-115.12.0esr-ko.xpi 656094 BLAKE2B da7d15ac55a04e4e7a68c5b1b62f57868238ecfa13f555aba1fc58aa38378d06f8b423af66e3b2253d67398e769e5d97d9d5a896b26e3c8665ac4a6e41f13ca7 SHA512 6a5e1ceac7eabe9da1024b25f75ffb8e23cd4a367cd13924e7b24f4f171c2c1c86ebd52919f9ee4b769e4b08370ded8bfb6469ff2135cef80a65ca85d0132952 -DIST firefox-115.12.0esr-lij.xpi 478978 BLAKE2B 05aff4c58a8acd2d0703b6355e3a19d2035278b5d6a671f1d96bbe19235807d495b63e4c2613cbff99e6282c6bb8a4a9a0052b6d06dd3b3a710d198b47d7fb4a SHA512 d23f0ce15355b957aab07fa7da1fc2f4418880e294c8ff9bdaab722219f846cb16eac59966e3695f1d18652421815bc1c93c6c5560b9b0fc98dfde0f01b640eb -DIST firefox-115.12.0esr-lt.xpi 566073 BLAKE2B 00fbea5033fe10b3ffa3d454b066564c0cafb6f99187aaf9a5d0e04dbf228f039f4ad140be62a2191e0d489fdd9d45d04b0c680baf86c2c0d52f5fa9a86474a2 SHA512 dee4b2f5fb4d0c38bafd1178dc02d667408d78960a23a6d787d40f65b1f417019ebdb1f846ef1613c6aea169378295192db3c4f419ff6d4286069bd2313a49a0 -DIST firefox-115.12.0esr-lv.xpi 568042 BLAKE2B 6887011df026b5ec39556130e04079a63b0ca19d542561a4b8350897f1c804cad199ba9d592b7dda504e37eb71e6a9ad511781fa62d01986f056bb1f66ca6dbc SHA512 dc3e3551982561135a5738010e487673dec819558a058d01c03732697c41984a289c0e32c5af99ebe583ccedc0d1c7c2f125e9cab2474b7be7e0d1998352fea7 -DIST firefox-115.12.0esr-mk.xpi 489789 BLAKE2B c7155681ed8fc7ca7094ffef892d502159058fb45b455c61b55934f3223e1c9388688ef86d2ba33b235ce7b6fd1042713ee384e075c689cff961a98b510849b0 SHA512 c6fb94e1cd672f86ef5aa320b53e43af954b201ff9dad0829e0041f2cfa12f42b87b5a939d81aff2951731968b6bdb8420d2ca990c0a58c2bb0dda5c9cb4023c -DIST firefox-115.12.0esr-mr.xpi 526719 BLAKE2B f11d56c8ed3631dede36868d6d788facaabe9049df84d25f10d2b41c2106b7154b0c199a68a45e96bb52fd0c6924c19f70c4317a13d7fc14845c22dce5642a85 SHA512 58447231c8ca153eed5cd326595a71f96e3c0898ff176308dfa033174c8b00cd7314052905e606bcdb75e9037fb995e702cb5e67ecb680c763ce75cea580ba6b -DIST firefox-115.12.0esr-ms.xpi 445363 BLAKE2B e7743a8b57dc3a19f5e00e055ce1b099827369f46300474f7ee444f4a7e364b363efbb8661efc211505009881cdfb2473ccca2532c681150bb658338d4150c10 SHA512 67875307c653525c6b4b8152d9132ab58bd50f326b65fc292d8d93eb8a9dcabe9892e245ae2e064796260ccf0076c3bbbfea1a5352f9b8001abfeb537850c854 -DIST firefox-115.12.0esr-my.xpi 514775 BLAKE2B 0a7cb3535ee39260dcc2b71bdc1a27fcab12ed311bf314cf560a9f7cf98a9f48630c85258cf0ab4984ed55646ae29c0910fabf94cef1999b3069cb05d59efa6e SHA512 1a68926827a90051d9b8eba1127bab25602cb2cc918d0a6a45289829a86d9a5c9912c8908f04408430340f6837f73d99475529b531cc0ef232cfdc5ad235a32e -DIST firefox-115.12.0esr-nb-NO.xpi 600618 BLAKE2B feb61e57a7dcccb0a6f73a5e96a9dab2be3e2673068b73b3a0a24f19cc6b414bcee45675e969359e62da0d34a6f1b06bc9494832799a861df395dea42602c743 SHA512 f549f5b04bf5974968c4c84e695d7e77c9706050203e54dd33b68a6b018a759e4dff43bda5c3fb3f88181d3e5e81311ba4ec14bbe408c6f7cd25f578d0559c56 -DIST firefox-115.12.0esr-ne-NP.xpi 496372 BLAKE2B 1601a98ba8dcf6a88ae36fade10e9bbb5a3c033cb5088a0894f993412509e4d7bbf8fe2166d677d86084fe425fee2c4f199471b2bd63851aa9f3eeaf146b92e5 SHA512 f7ebe4ad55d10c5d8276dee7ffda939a714ece6e2cf298353b30eaf0da30736ff6907f4defc657b6f6cd4d7695d9a4597c5b83db6ea5992a23fbd4ba18e55c21 -DIST firefox-115.12.0esr-nl.xpi 611724 BLAKE2B 24b2f590d8fcef596ceb0609ee4559451f5ce26cd4547ae017d2988376114d211ad1049275678ea88459aeedb614ef57a350fb3fc10d6b234dc30a0bf178b29f SHA512 f7e151153abe0bcec2574e4e0893171d558313ebb6a8a14154fd715542a19de915fb9e1bd13f9a65437a78d48426b970d80660da7e7fdf68a7afbea2d8965a7b -DIST firefox-115.12.0esr-nn-NO.xpi 594059 BLAKE2B 4f066eadf909af50bc65c7f6a0be47a41361855500d2a1907278b2d64c3f4365fa4d56b9703cb5afe63f43d0956f75a0d4d0efc2ac39cc390042e7bae17d6050 SHA512 467bbb01f038d794a93d25c2bbe54fa3751103709c4c98c1d0f25ec95fc66423a92ed277c74246af4bbe19f22d3119c0a05fed9782cc415e8d198e0aee45f182 -DIST firefox-115.12.0esr-oc.xpi 605602 BLAKE2B 2da16eabb741cb0e143941a8c102ea41577836e741bbc0a4bb65a554f1ab3f883e89a332711ee4c305fd5e28810c93e7c0dbe520594964ffd0f61887ac556fe2 SHA512 3210afcbd762ce8195c8c414310ab57c40d3f0a714997bfc563a5ec74ef24230a813014b7f32a914ac0af18f3d9387ad62eeabd8fc6f193f6568aa1824d13351 -DIST firefox-115.12.0esr-pa-IN.xpi 681664 BLAKE2B 5954e85ff291393d96b937c62049df700721229a411f9b5e670ec7e91ab4ae04c73a4610faa56c0cc734ace7d2a6df9cca224b0ff2f9183a0fa087673d14f9bd SHA512 3e96a6cb5efba763b0cb5ccf8cbae0bd0631159652fcbf9773cc2a0461fa17153051773844c3706a2fdb048996343745d86f805b38ae61aece99a4197100a7f7 -DIST firefox-115.12.0esr-pl.xpi 629679 BLAKE2B d3037bfaa95161a023bbffdcf0ad82947d99c2e320bc752644b316ebbf96ff34abdd4921b0d355d5f71b6ad3520565f668d82bc2694459b80ec8eaede5f6e39d SHA512 efd22b8d52c1f62397587fdb0d5c1583e2b3401f2fc4fa22aab8f360c617e158a026c973523a358103da38eb32497f977922fdc9cda1fa359e9463df03639fa8 -DIST firefox-115.12.0esr-pt-BR.xpi 616408 BLAKE2B b2a6696c1a3d2a070a3cc51bd988e5de1870a093d9d04521fbd4f0d8cf6e5f0da3813efb351796dcb2fc4d9d10fd6580951f8f6ec6b3ca9f6c8c2954cdd254df SHA512 33da0f635add28d331d45e39657fdbcd19fbed34968153e611da549adaf4a050fce645f57e5b4afc19b8e37b7c5176e9a9b7eed7a5283353700b769fe1403e10 -DIST firefox-115.12.0esr-pt-PT.xpi 619994 BLAKE2B 1579c6410efa1364ef127e4e3671b8039ac6c73e36908573c17ef7d0bba09a1fe57ca4044ee06c35c75da15eaaf473928e076e99bbaded85f3465dbb07aac2db SHA512 b6db207cffe7d70ba2ede24e6abebe20fa2971200e4a6366ac345f855de49eaae50186dcc9ec4a5058868fe5df6a5f3040904c1cb83d10e5f8606e5180216360 -DIST firefox-115.12.0esr-rm.xpi 609314 BLAKE2B 700beddd7bdf72c15b2b1688386098181ec97d596d182f4ab3660a8d8263c474f081311de1eb236e17032e19942ac2ea65073328159e16699a41c6c0dcc975df SHA512 6c944003c979275afcc63026fc6cd7a9b2c7e6dbfc123a41a3bb3a9a0a3aa9ef28c693434d8acbccd148f258a855987ed23d0b70dcedc4ad63fb98da68763cc8 -DIST firefox-115.12.0esr-ro.xpi 543397 BLAKE2B cbe1f6a6b1a145033e24dbb0d06579d87b77f06c612a9afb3f07e9aa2fb9d8d2191ddb09ea62dd03b534ae12a874d915ef842eb94ffb7319aa1d31d24430bb01 SHA512 f960d840e658f94a7da8e93971ec6e848ec29ab8ee305033b8ac16d4b4f6531265e14ac6e26d494541ccee661b8ec34af2e18f65f05c5720a0fbaf2c0576e099 -DIST firefox-115.12.0esr-ru.xpi 714560 BLAKE2B 7ddea034c138222a51fa854bd4c4f96196b225a5de54de80572398abc032cd96cdf1a8c8183f9e0e3ab2120e5b4276efe5839544b63a33a92b670a72791b7d50 SHA512 d099f908c2d7fb5d1fedf128a8249990e06a4307f2d039cef7a330a871fca59b353c648ac2ee4e1e4fe33469a0184f67a1b41f1c3d45dc5f9684e16f99732590 -DIST firefox-115.12.0esr-sc.xpi 571850 BLAKE2B 5eb2876a1d79909b5d5325de6c4bbca52adc73e1d94f99e79c51d21ddfdcb88ad49207dc1316dc668fa8ace10bba05aa450a1fb7a3882d0bf5cd88aed5172d13 SHA512 1199d3c77a5daa53cbdd45f3f0b73bea9ea574dea1d075445bcf595bcb71c038fbcfd3ad039d4358935a1a15bf847edb0bd74d85fe3bca2ab1e878b15107da4f -DIST firefox-115.12.0esr-sco.xpi 505558 BLAKE2B 18f13511bbf39c308eeedc0050a5ec476b186488c1b55e5957531bf85fae2b4526f3e256aa259a14d6713b9897d0e8e11973a245cd81df49c520b910aef449bd SHA512 c664b37f91f3058ca6cf8e6ba239b5fa5cd2bb02c637bcac1babaf47bef804da13eb57c5bf7c2a9dbfe31653d10da80e86dfcda22f870cf9c39ee45ffd850492 -DIST firefox-115.12.0esr-si.xpi 600749 BLAKE2B d3bed487ae880a6d90ace0f97444e7a0daa00033b1554be20b37f85b56e27f5083fae90656f9d4dd2b109241b98f95fbb4c0555d3e068788960ae816c573197d SHA512 57a7e1b0e7a2925eb0923c23fce5118502ed5bf6c94bf936e2010ba67154f3d2d3b87fe4a27805677aa860eff520cd1aa24b37c372f6df68795218950ea0e1b2 -DIST firefox-115.12.0esr-sk.xpi 646006 BLAKE2B a97451b9cdf098ebef7ce6d3150248b3abb6c5359eea90ae182b5397d79b4a532ab6d0cec87be802bfba9e68fb79797ae995b4ad7e0bd4ec47db492f7222be46 SHA512 58453df0e6ec94de901d28ebca0f42dfcea4b7f5473ab24eba7665ee4b5e1d270a9b06f34916ee4ebc5c6a6cc7fc6cfadb7257c022355006041af0a00beb7d3f -DIST firefox-115.12.0esr-sl.xpi 608033 BLAKE2B 12e6fa7e47bb620fc35d7880278298d5ab0b76458d784147fc3e94dbb43c81e5854bab008cf75215d5e1fc016e58521ad9bcf98ccdbfbd68b721c544f88f39fa SHA512 e90b83a7b034ecd686a20e61bb13a75eac7eb1b1754d3f8fbb212b5c5ac56d8e3850726ade8783f718a9c12917d6eab8b3c0ab90b6c5935c7ddc70ea2c1090f1 -DIST firefox-115.12.0esr-son.xpi 413554 BLAKE2B d33d0599c7c539622192801ca520ab94994894f6e7e6aaf695c874d02b796332b99074dd88d34e7f9b9259f0bc7c7bed2a9ce125802ab4acb77acd33aaaa623e SHA512 0af418f711b55a30f23628e1e6a30a2d7085f9387d94a1846a058c0a65ec3e9fb5eb3538787e7dfcfbfb21b0a83f68db171af12fd86c12e389f54b68083da330 -DIST firefox-115.12.0esr-sq.xpi 632212 BLAKE2B d44c3533469b83e810b059762f7fb35a1fb167cf1d25481b9d25ad7b64778ed55f99a02c9c97bfd7e549d3b8991a7ae13cea383b62346b33b72f426ac67a06f0 SHA512 d820013522cea7a3f1d8ca0f01bb10ca54a60c47bcf0656f3b67ca92af20c16eab34de0b959549955893de7729af756141685143a201a4ff3b639ab75e5376b6 -DIST firefox-115.12.0esr-sr.xpi 633088 BLAKE2B cd4fcdcf629916544eb2b02e81f07dec839ef38c803274ec08c49bdde6e2b1a4b4ea996e4815910aed2c44ba9eca417d2826fcbf2419ceb01b3d31f876c9a90f SHA512 4bec34fd8a9ccd06e4879ff91f26d930d23b596bf687252ebd22041380785bea972f80b78d0c7e916279e83ad25ff6919b4d520036fd889a4c2c48b580a859a8 -DIST firefox-115.12.0esr-sv-SE.xpi 613558 BLAKE2B 8847633c1cb70d490876ef756e285635b66525255d06e2b5ef3910633398aae5fbb8e0c286716c5afdc2e6e1adcca33f1a3779cb4b14bbfb374b82dbc0c76fcf SHA512 959840826ce6045a04538ee2712f41ea412552b2eaf7575a9e740c577c617b0a654c56b2d3004e31cf82e6321e7df788a6136d084b3f8bf6a25b0a8a9001e766 -DIST firefox-115.12.0esr-szl.xpi 520870 BLAKE2B 84798ff084f5947de5a478173b8c9fa7381dac599ba2941ffda29ab93e9a06a034d29bd7d1c64687adeba6cc1dc0719bc57b8b4a2f6bab86c4c6abb71aa9f4eb SHA512 89f9cb39bf50b4e5f8d2625d6fc9fe27ed78374f418f998285e3e91e95bb97d87bfaf4d60acbdd10b5b819da9fbba2d651e4e8920adb00d9c683615a8237d0f8 -DIST firefox-115.12.0esr-ta.xpi 503485 BLAKE2B f9656c662d77ffdcd55d2a7574c102e4793719dc1209761115134c7f7220bc92d55e46647ea77feac6ea8e3a9faf5e33af41a0ebbb60a01a449791e386effea8 SHA512 be02cfcda94b55b1db43d26fcc509721c0874d9263d5c43c2bf7b4d9669db7a82857a411825903ec0888a4f12ef92c6bd64e6678d1b3e274b2411cff36a90a3c -DIST firefox-115.12.0esr-te.xpi 554471 BLAKE2B cc08663d339317fcc41ff09c095ff550b950ffd00605063fdb2a483272de41ba0a568e3a39e8d9e1dd0b14fbf4cb377030b20d2acba97f68f8b250deacd43a29 SHA512 6805b0b6121b3477f093bbfb397f3996b05a2f27cca82b8e1c9514db9505bec1447e9f6eff9985f47459bbab1c8e44c1dd1155a7dd1025dea8a3876619f7df9f -DIST firefox-115.12.0esr-th.xpi 689156 BLAKE2B 9d2f6ff9186efbb2755a291977d9a6ddb88278a077ab96ecd916761ab5805b3fa4053a792d792a0698b78ae48c4bad210a5bd07e83046bd54d0c24573914c7f8 SHA512 277a35fa8da2fd5c38a974c957113581c3a02b745fd42da0d9f363881a30c08b7f170d9407ca13d6320d145551dc1af1d15360f9f11b7931ce54dcd8cef92ba2 -DIST firefox-115.12.0esr-tl.xpi 527660 BLAKE2B f98d74c172ace927a7a374be58d4ecdbcbd344581f4f90a0210a14b7aaa34ad4328dc58c2a592fe922cde4f37ec78eb5de3ce6328ec2547c44ddb029aa239c0b SHA512 2d5f64549ee181fdd631f5c44a3a468f3a6e2c43ecaaf44143359dcd57564429403dbe96093ee4745241e9de175d9ead74815f843c88551a73f0454bf30d2fe3 -DIST firefox-115.12.0esr-tr.xpi 625253 BLAKE2B 9a44c7c5d1bbacd35e5ce22f6ddb42f6b833e88afa35a9095ba054d6c462703b55ce632d7f9ce2df3ec4de76b4eea0ebbbede17a1aacc1833cb012339566955a SHA512 f386ae6f20ed68bd1230cbac2234966a3f8143abaec13ab3e7f715140ad8eda0974f0605e533b9368a48423c6104954ee7699bf718e8cbff98d91ef52bb1c675 -DIST firefox-115.12.0esr-trs.xpi 498538 BLAKE2B 375100e00403acb0ee8bb731917cf65dbada51beed0addf34681070e12bce92e2f20b288e4902b841964ef0646217a99fbdd38afc432bd803b7ab3fc3628ea11 SHA512 f02b761eb806cb41ad0ec6b34b9b21f5247bde09233de9121f8ca8c65685a5cacf025f0c51ed1c771d8fa91623aa5dcebc8766caa72649dcdd52a2833695e207 -DIST firefox-115.12.0esr-uk.xpi 705540 BLAKE2B a4599de9bc68587f414b0a7286fbc2f7e4241cddbd040f1ec3a8aaa547a52b44b9e988317f7bc4f12156b040d20dda4f9f1fe47ffe68f9382e9161c6f6f8176e SHA512 f202a7a81b9d83429e81220447cf5c63aa421c27284129c058bae4caa4419e4fb776728e5205b4ffa5f42cea7ee8d9b927f6507c70b084ab77a95ba79bfc5455 -DIST firefox-115.12.0esr-ur.xpi 554720 BLAKE2B 6d61762afd12672d996487ecceba9704df02caf4214e7e82c6692efa47aa3e4d0c3fc6e8e8a5d0400c3ae51fd05b7b9aaad8bad81c8d65378de13f645133810b SHA512 6ce12a4b000306c13fd580e44d166f7436ad8fa6e7dd1276e415e7282d9d883cb72a1cc909cd40f43c8300c620c27a89ee3225be191f2bfab6a6299fe8f327cf -DIST firefox-115.12.0esr-uz.xpi 474522 BLAKE2B 7e8ee0b6449b9de464c3eb91a5b36e45d2b017551e476602881d2fb39380bdb924f8aaff930d206a0827ba1175afc23f8001b21c7572cbf1156cf492113fd43f SHA512 4b309b2da6c579ed58d5d15fb2983286eda8289e286157d95db9d18d735d19462a5fd25371cca64dc93c8d8fff4f60a25a1d8a38fd71851c819d265d0e60df31 -DIST firefox-115.12.0esr-vi.xpi 649117 BLAKE2B db2fd349e6002cf67c8e2967421c8179cbac733af9119f1ad84c63723c8b39f53d0485fcd0b013189fb77aa15a5f68a661160971510c84a4689b3ebf819c44f6 SHA512 e44259032dd9a1c49369a74746dacec494d111316593ff70cffa1904787c7c973b23e66ff92c0abc496a0fb3d100ae2e74ef7377ff0675c39e62e9250ff4cbbd -DIST firefox-115.12.0esr-xh.xpi 414802 BLAKE2B 35b5cabfb1830b21a34e7c57357fab5375fdae9cb655c7985b6b468008f2e8e8f5e40efb8ade25e92f64da9d6201827685831098887e976ddbc61531ed7da954 SHA512 468c745bcc6ee0e72c057484ad6dcfb84d715432765b1aa7071d8a08d4c7bb15f8a86cafc32b3d60de32f5c61b8372dd3aa0fdfafb4b5c2384e463419bc23979 -DIST firefox-115.12.0esr-zh-CN.xpi 650834 BLAKE2B e5b6e072a8609aa65c988dcff5824010276c372f12938e860aa50c5d0cb75de649a1cf2e035c275419435ca69bdd95550130c6de4e3fab80231d40b5ada995ab SHA512 bfa4cd5b8ca8419a0ccb19ffbb7fc7156283bbb784944bbdf1102b631cea372ceddb362cf8181a57bf8587bbaaa28deed78c0ce288b4d8a09145e047ef82ed95 -DIST firefox-115.12.0esr-zh-TW.xpi 653669 BLAKE2B e5b95c1f07618ea7ccc285e77eb92ed92ae3573af29ec29aec33e1f7e516fbb7df060de47b0f521df816faba193575f619cf937ef378f594f347dd7235b393ad SHA512 030d7a603010447d82d9670babda138f44f39b7c1370c0447124dcdcf4bc90086b973ee8664406b4d97fa292cfc692ec31732e9fead685a4fe1696c324431045 -DIST firefox-115.12.0esr.source.tar.xz 505219784 BLAKE2B 6d2cc80daca9977f73ea0c0fe7e7cac999f2d7a99c324332d69d9438a6d954fe72ffb35e4df4c2a86abcdc94231c4847bb3e64dd612240f8a6d86e63abdb1be2 SHA512 d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89 DIST firefox-115.13.0esr-ach.xpi 458869 BLAKE2B 766ff00e9e84e3b51fb84ca98219b606bf0cf5c5b7a3217a19653db39dabd16d8f8819d1492b216b18b2a9fdab7207f79f2b56c71b27cf51b1ab8959f5855aca SHA512 629bc6c9cbc00448467a1590588c04e6264713669e38f3b3162586c2bafec5908780b76d794b20dd8b511e6b0d652ab81b6a9d015b0637d2f63937d071797ccb DIST firefox-115.13.0esr-af.xpi 415050 BLAKE2B 2ff8b6ee58285be981cfe3406a6dd7d7f3f5f4a5fec849916c1c0cb415962de5f81c020a26b9965fd8492db4cc46f5120b3185c7d62dda0e1cbb94a7f68a4d1a SHA512 c29eb1c6f2baab48a6a1908071ba42281662709f717b0cdd9fd54d5fdaf4f4e34c23a0c7a69daed957957f9b651b554a17c7573cc5a12d4676c7f97b0bf9d68a DIST firefox-115.13.0esr-an.xpi 499423 BLAKE2B f72367ee01c38c4958c4416c1a3f54b2dcca90c93fe17311065e47e9c465a3cf2c3e363baf8720f7a261c3f92be5e4622ecf17ea4dc0cbeda40695a3d61bbf62 SHA512 2a6f4da626d74cd2dc05e3ec42fc063c631bdb6b70413fbc66ce7b890118219501e6e237b53f51393d9b12fef81f39afac7cc4a3d4f4dcae927874f10e006701 @@ -299,408 +99,6 @@ DIST firefox-115.13.0esr-zh-CN.xpi 652628 BLAKE2B 482eb1d85b53ccebb3bdc4a1c04d4e DIST firefox-115.13.0esr-zh-TW.xpi 656755 BLAKE2B ef8244f8c0d65d2c604a5a11caf4f493992dcf2d32aac8bca36a8a17ef21ca4050c3406b565822300c0333df2950ff6342f7ed05b02da1243aaa3fdedbd396ef SHA512 c62f4dddc59f71d944d70250dd0337680c789000f4df188d71f3fae1cb272c34b85711218a53727324adf190e26e1667a192b612d9f1d3a437f24e1b27eb9ed0 DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178 SHA512 799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c -DIST firefox-126-patches-02.tar.xz 17408 BLAKE2B 631345d33f0d3c5fb09657c9f286b9a73554fd6c9229dc065fbda482a853cf6d83ddfca77d8de44e650a147fcb0cb4add2b9dd6198851cf11bc0198e959f9112 SHA512 21c3f69c86fbc028b94947f1dec301c3fb829de53fa7d745e7b8e055d6fcb5f35581a2488340fce29646e70ba671d6b271843d4336b045b5b7a7b1881611e45a -DIST firefox-126.0.1-ach.xpi 460828 BLAKE2B b15137e1405cd3d5fac4817b25f35e4f263779a354ddc94c5e3a5fb1211fb3a4154c666b208b39d3ef51c762a0cb64a12cad7c7502c315e6f4061a0f70f51511 SHA512 01c01d57ffd56c5f98f2e2cd24821645a7e0d04452bdf77a57e067d2aaa54c3115770e1f038d08262acb0737e570ef680f4c20e20e28c16753a5ee8d9697904c -DIST firefox-126.0.1-af.xpi 414283 BLAKE2B 4704effbce0002c6a20bf99f43dacc37a3e76f5d02fe02b13f820308d32793df314bcb225fb1df92e009053df68544bd61c74dbd6eabc299405f36b996552be8 SHA512 2a5b64984539127ab2546a84febf00c13e19afba02b6a4d4b68a508084cd484e309ba400acc506342f27dc7da8164e1d30f706e5b58089c9985038d710f3e72e -DIST firefox-126.0.1-an.xpi 502765 BLAKE2B 4dbcca143ed116c99f0e07c35bc73007abe42c4eee30677c502a442909350b2bb0a305dd0628f7fda97bc84ee6702baa98c9d7e6b6c825a227eb13e47e469223 SHA512 ead34f19da7c4408b48c899561e8c7ecd25aae99910606f63c7472e5c25f8af789e513e80cd97fb215c45345d04089a8e3cdd67f90e0e1ffe4c3210775f8d969 -DIST firefox-126.0.1-ar.xpi 606879 BLAKE2B dfa38eea9d999f700b9434d47c32d6e1d1e6a1775b37b922e5019ba57e6a8491f4ce6b85267afe58630e3f5c4356bc316be4a0dcdba4c805585537e91e9f2757 SHA512 accd882aca83ade2fc4fcedee15856bc95d4599772ac72aef4fa4f9d11486fae557bd6874a96e0d585586bf28d9a1a61e2475fcc3400522e39e34b4c13481a1d -DIST firefox-126.0.1-ast.xpi 492945 BLAKE2B d7a8b250e139cc1d3f95313b24f49697cf28ef328611d3ad8d6a2a175787bd8883cabe50b7b71e858fd2911fc4788038e6d0f82f60e64ff4c842b228e45476a2 SHA512 f7920ac881f4d93c7f72b974eaa377719dd4675ac743cf7996342ec50d58d86342e3099a9be0274cf5b448371659be31f23929291556631a59edacd3a5a2e88b -DIST firefox-126.0.1-az.xpi 487518 BLAKE2B 70319dae9ec337878e64157d6333c84a61953c79eeb28a80381dd708c219948ed6e62cfec8f689c0149105ef11f012f8f7936bfb607b8c5bfa95d3902ebde6c1 SHA512 d3022f4e9c195565e6e6dbf3202f210d76ced81930611b77e5251c859b214f8aa077550971f54ffa9250890577e5b514e7ca862786d3cb2f8569988fec14f4a4 -DIST firefox-126.0.1-be.xpi 706207 BLAKE2B 41a2162a0d6e695154859fe5f76f4ffb1d938c50d060d2b629ebcb45442870e2287bc2ad762c91b83475c6b9ace28f583a961d59a28a29c0d27fce51b0885349 SHA512 6924c38e830dd8efb34ac3ba37a0dc31270f2c90c3befc86c620cd346599516826bd950cc4b9a629275f72d979a2117352b8ecfde46725ef8b474d51f0637a0b -DIST firefox-126.0.1-bg.xpi 600540 BLAKE2B 6de31d292e9e7af6daece21834709e4d0de7b2ce8315a6e000fbca9680a14b85193b5f4859109b69d61ddb111540357c2a128f70b39466715b02f1bd9f99425b SHA512 3e421b2125becdd58bb9e6a2fe4f6c11a804c7dbe62ac686d9eec9c8f3b56669f6ee48034cec7d289a6a9a893d92f50675fb9f7ecadf252267eec1d33bf238f9 -DIST firefox-126.0.1-bn.xpi 578258 BLAKE2B 789e20002fe2e54f12a0cc350a6cfb0e5f74927cef1497a6895467e4e231e381337be596725af3a6091a02d29b95274e59a04cfa0269e0ea886e1e7d26bc8827 SHA512 5763cec86b58362d3523efb8a2c1cebe043243c0f4fad015bc1dcb7392164c44065739867c3fdc33220fdc520cd632f79dfc9af825322fa60cc793f38d5e5b98 -DIST firefox-126.0.1-br.xpi 584218 BLAKE2B d52fede774aa48a55cc422f30f06de8ab7c30bbc6c81ea35acd48ce406ae6bf41bfedb375f52e7274a92087a23e9ba35fa2f61ed2591b86dca28884e15fc28fd SHA512 fff3f3118c0f51ceb06fc15956c20559b3d6e853b33666725b3eb17618b25b561509e061fd464dd80105ec2d1cf73b9148a46af7374554574a7a5cdfb9f08def -DIST firefox-126.0.1-bs.xpi 498264 BLAKE2B 64e1ffb3878a455d84e48bd1e4a82d39ca3af6d518d5b15397b58e9b3daa090f9466082ffc2dd7ace8ec08a3ebc96368354bc00b4573a37f5d40b25492a850fc SHA512 38fa1ebf2d3df55b8e37e480b6582c592c0326290517a935d7ed4d3525ee70e8d720e79e93bd2e3c2899b9e22f62a8f5f075c79b4d80aab596bd1aaf437a66a8 -DIST firefox-126.0.1-ca-valencia.xpi 542918 BLAKE2B 64dcf13efaec4051b0a3b6cb79d714399fa2bab927c7655a0a661afda06b16e6afb48f071434c3a373fd2c0bf9e799a786939773fb95c3544854311fb51ec385 SHA512 bb51eeb42b54721e6259b00e1fa32b44ddc9d2affaf956d842ff82a04f3abdc25b2814ae977fc8fe4cba6125a58c3e36b931f6fd3eeeaeedd15bcf4c752e457a -DIST firefox-126.0.1-ca.xpi 581729 BLAKE2B f64d24d97951cffc8a9c86a6f0d5cf3d4f6f9c375a353c5c8e2c67db5cc38ba7a82541615b5505fe45dcf7fcca3a116967166ae6ef3c824c3d13f651575cee5d SHA512 09b7908a47d9385bb6adff5a8a182c7c5eae049bfa5b7087b386b84fd458a09dc3f22f5bcf2c617540c91565f820587c000c592c20ca1437a978e888aea99f52 -DIST firefox-126.0.1-cak.xpi 589494 BLAKE2B 64d80ead40358eb9b21bf89663907d327e492b9f62e64e0587b888aa6895884fb9cfe8426a3f97892b48fa2724eb5a3929019187d017fda9494b76ea97fe6ad3 SHA512 9fc2230c79567abade024be5edb7b7dd5eaa49c9607a4aa17a3791dd52e483a621b44528881235c9e384e134b2d7a48210b651b5995087938fc5e399b76b71a5 -DIST firefox-126.0.1-cs.xpi 650908 BLAKE2B ac8f43bf764c10ff8cb39e948a2347607a547c104f16726b71b0772f06c365124b6e247532263f14fd65458dc4f8de9b9f7e5a15ff26bb2a12f8b9247219222e SHA512 7127932c56433b2f508e83cd7cabeba25ebf2a4b8b870cbe0003ff192ae9b8af82c8a7548022b203ec534c56c183a0148df9c76625a2803f6772fc4503c2aba4 -DIST firefox-126.0.1-cy.xpi 616326 BLAKE2B c35e71a80b04f3f8a422f0888f63d780ac5dd14d592c5fed165a3fc108027564ed09b26c8bf51f9ad7558c2e8aaac5f06e77de75f05a405576e2180439733bd8 SHA512 3bd707be15234fadf0d660837444eac30e4a9a7ed738dcdc4dc92e425aafaf282b288a0796e6af088e5f09fc99ddc8e8925a6f18dd41e03310ce92451c1e4af0 -DIST firefox-126.0.1-da.xpi 604650 BLAKE2B 7016806efaa576bc76caa3db8ebea86aaf675d3dec54c1adaf5624f614cf16451c3b7695780b5bef0fea222d46735123f0e95551909d44a0a54f97779eb38e69 SHA512 029f72b492a9458895ac2a5907dec6f9fea95362a88f40619e3c40dc732751bf6e857889bc35dc08126426752ccc329ad9f6fed13e5d71d24361f2176ac6f414 -DIST firefox-126.0.1-de.xpi 625881 BLAKE2B a21a882cea813fe3c1772b77ec384e5a511bbb7a34a23e68078de27a455af3eb117f27ecc27e185c4ac0acaa55d163e9bf047c8267f62942f12d9fd6daac4758 SHA512 965779052b13327468f80606375838330e7b11f4827656c4b2bd2d2bc5f1117784df2dec1667a9e5a939f61038f1649b36601f660cbbd4341d2e7552e0639e73 -DIST firefox-126.0.1-dsb.xpi 642402 BLAKE2B 666656b7bea5b233633ba2aad69611b8b069d0cb01a4f18d8c689aacaed88feb6888abe8745a04c7e74798711614ab9a967d3927243f78f860e6eeef454dd489 SHA512 4d1fd00d8f347d9210994a6b1de7ed74df815cabe9203f7572d1a9b1fd0e74bba7924e416eff0fc7e6a469526b0d42004fa5d4b58e2c63bd3c151a3fb1e58be7 -DIST firefox-126.0.1-el.xpi 723120 BLAKE2B 3370a0a67da6e5289f96811930c2865ae8217da7b1f6d284c109173b4d08af2c308c8015555b10c21c9b66d9a152d1842ddb12649095182ce4215c91a9042577 SHA512 91c65718928e0b24e56d26b65f796520145c5427829e6caed28dfe6c8a7287e145c1daa8e4239ff0f34cd73958164c25c892428291691d67115a9f58f1e9de90 -DIST firefox-126.0.1-en-CA.xpi 576990 BLAKE2B 2bcc669fe9d3bad5ce24fffc00759b83a0bdd4b9756488fdcd3fb86f21efd85f5006c96869b159445132f0e5051210932014269d4841a8022da5d9af59d23420 SHA512 44b15231214f7434ec378350c79161e62337b319e9ac1fd0e123a49a1b87d8476221b3f4f42889ff531fc3f67d0962fcf3d2bb1c1e1585ea8992e4e20d40db6d -DIST firefox-126.0.1-en-GB.xpi 577579 BLAKE2B b1797210cdc3a73a28a79ea457bb26cb1bbef07f6142adfbf33ecca9a47b967a64207482935520ee103a24faa86cdde44ed21efe8b09379cf68ebcbe06e4448b SHA512 196d14dbcc3477af219c862de7d2719eab524fab468b34d2a69ee0dabd80bc9ba691adb4a4481fe8003a1b375ccfc6d46f77be46a6a4d258d24dba53570912e7 -DIST firefox-126.0.1-eo.xpi 607948 BLAKE2B e7a5d4b5efa87cb0565225199a48a25d40314990631c9277a5c8965401a18f7a4df9807a5beb503b6593897791d6f447f40cb020c842675472108716d5e72ba7 SHA512 6187707c4d0bf8c73e3f95ccfe4d2c7ada08d1621017c01d330f7d78650ba152be2d224c64ed29c19d1b9cd566384b193edb356932ef8ea8c033c03ee6c6bc20 -DIST firefox-126.0.1-es-AR.xpi 619820 BLAKE2B 133f958434a6811103a05a095ece2ce99fdadf108bf39ce6283299a0f8ad9882df0dc31d7f1ff0813eb1d5e304f2a79c2b5d59a7264d8ffb3d1e27933527fc18 SHA512 8b7b97448d5b1ddd7ec41859f47b3ae632f0522050a3261cd2c148f6b0e29b3ff206898ef29e54c95c83d0ebdca551cda664ac7cbdeb23dc88b08fec4d5f8f6b -DIST firefox-126.0.1-es-CL.xpi 619032 BLAKE2B 25dc7eac927f0da1d747b67caa3dc57f8f3d0e08e1c3b5d23f866c7ac2848927820119a7b5fd18cc19a42a7b9c694e7f700cd3f67227669eab9fb7b3daffb032 SHA512 6f82e7e1589c155882c14b6ca43346059937a928128add9911bee37befe53d5fb98a8e99ea31ca1495828de295d4ed88585047193adf54d09077b5889ba8b56f -DIST firefox-126.0.1-es-ES.xpi 613853 BLAKE2B 54bc4e3e947cfce3793a8ea6cc583f6bd6102c179831978423f83a7210ee1c2900eeca4304ab767c557948466241e2e8c2e49329b7b4d0f9f70b75a9bfaec380 SHA512 1a5216b8533bf4541d10dfd65405c0194fd602de61ab51b10d8160f283367f6d39ae62abdbfff133a20a51239eea92bf1626f7b54f5cc2bffe008c8343b21bd2 -DIST firefox-126.0.1-es-MX.xpi 588126 BLAKE2B 219170782732f7d1248afdee4d46e449083ca79d816d5055d73c8509880b621d73807aa36b255b615b621dce54c043beaee5c3051202fb88214c1ee38c166ac1 SHA512 a82ac5471ce3acfc98f65c75573b6c88a8f8b5335aa5d797a7dcdeb0a64ac9f87cc989af46b0e629eb674db8558678e7f5a796497c1991b85bda741e687fcc04 -DIST firefox-126.0.1-et.xpi 536212 BLAKE2B 84118c499a3b7c8f146566849fb7f22b0f15ba9bc4221ef3124dfee37f00291d535105e8859ebd0484c51d1fca2c4222ea1c9bca0662df890ee5a33b194f3da0 SHA512 fa8f9afc83910d8b5ed276e0d13ebf292e6289e526a465a99ba4b2c7c2d8974a2692e2377a0d1415f797069b98ace64c6d7df007d4c403669fcedf72530b718e -DIST firefox-126.0.1-eu.xpi 591015 BLAKE2B 95d3066d267c7fc781890a01a7e7580bbea3fb78f22ee498680bc1cf7ec2c92cc457243c983347fb6bf050df8c9aa2fa0a5a94d1ade086944a2d7b45fb232cb5 SHA512 7d1ec25b1010d3e994feaf932ea43d9aaffdb234da0d91a278d791a97239038fcc07882f6188491ee7fe43033754d94ddad14f8e301bb931cec921fd7b806c21 -DIST firefox-126.0.1-fa.xpi 586739 BLAKE2B 0bf68af7d115e26c1d3b88ed53cd38e8dd3c34c399250b231bf9b03d8e3e5e49682f3815da346c48ba2f73c524545c1d2149d6e048e917e1f10c65ad002d4f89 SHA512 cc3bdc52f9f96859910792e8a10f20d078a9f10898a9a4a5d088f9a0f42e6c391f7a9917ff806fbcec2fc02f6cec88170ae7101f701d4c3fdb62731d29bb4102 -DIST firefox-126.0.1-ff.xpi 472966 BLAKE2B 6da91582e4323e8ceabdd5e56abe570156971df2ea61158a38b2f9c5adb50ce6ea0eb2dfbd4ed0533e181091579fb4183214e254625e457f0576258149f241b0 SHA512 19a86c4cd2ef9c1bf85d60ee67fbedc641206915e72e070a5c0abe2152a0a2755bb95253d5a93d9afded9ddf111b04d287f653d41b570f4f865fdbe6a897263c -DIST firefox-126.0.1-fi.xpi 599648 BLAKE2B add2cdbbc81654fca6b53b08dd3d0c04ac99ce09f32b1db555a941381d228b6cc34af2be0960fbe76f81048d3a53dbd80a4388d6c4ca43ae17ba0e7fe97d582d SHA512 2b18a21e7dd5e33ee7d07db718cdf03b24d12bee067e7edefc6af61119b81a3af1086d380d03e7bb9a11b432c659e0edbe51f92d97615628082a4b4818b9f63a -DIST firefox-126.0.1-fr.xpi 632731 BLAKE2B 4fcf59d7b4f36d2871aec196a0b2d70631430d8a9b5e6917d549067fe4351e47e5e091239a0aaff3dd5113c8567b39d77194784482180758f5adb58811e878f1 SHA512 eeaca76154a352b777e7c396433582c277af8e6906fa7a743c47414d3dd736d0ed89047a68b5156bcae7e34483eda7b2c2c6b139d506d50abadad534df02a246 -DIST firefox-126.0.1-fur.xpi 625337 BLAKE2B 34fdfa03df0b39fdfe79a3dd38e1e2470bfcfc9047a7c53e8982f869711f98cd93b670ee4f741887d52854bacd85d9a6bade8fa022f99c4ae58a349db2ddce6e SHA512 c640beadccdf9e774f86a06e10a92f2873435324fcc49cd9418e587fba441ba00eb895d1febf0ad4f5af46502df090afc81b5864a53f09f80209b70d6281059c -DIST firefox-126.0.1-fy-NL.xpi 615437 BLAKE2B b41025b238b09d001ce3213601d594e6cba1ddcf77d36000d3a2fd73b2feb239a640c1a392edd8c51e2d673cc5cc96c63f5715b5b65f287b4116d67994b496a6 SHA512 879d2aac67f1512d0059b73f2c9bfffde595c5ddccbc3e43c6f2f2a8dd831cb6170926eaa1656b459cfa13c8e0c839b08576d0858ae1a0b3acb37bf3de80e768 -DIST firefox-126.0.1-ga-IE.xpi 467743 BLAKE2B b7d44dcb84fafc22364216474370057f5efe2ccaf38c58ca0d6a137e3ac8d42298f83b50a030cc6d40e446ef1a82fa2a1e86344431f42a97acdd909d420ee2bd SHA512 f0f5f08ddf3b4d641f9f5e264cceb77941045b93e0722d20e86ae026c5b850758c0c1b820b4926a9ec3d6ce3fc1f9561da62f70ae26a0136d8816525d02db302 -DIST firefox-126.0.1-gd.xpi 593300 BLAKE2B 473b3b6983230ad8eed3b23f98c36ef780cca8a3d364ff1ee7399c47a5511fed72baf023fc35a0690f4f37feeaee7dee2951b14d6c3a1ad5a0de3a3ec4d49c46 SHA512 ce66dc92932f370492762cf30da8756a3d1b83d9ca60c3e6746c6fdcd33f32ff17118e789d1474c6a5869e5984108eb2d6b216bb2465b28112a8a670e1f44354 -DIST firefox-126.0.1-gl.xpi 600771 BLAKE2B 65a10fa8efafee069ca87c25a4d6d3018a2678d79b4e14e4951203cade16b27e28e3054afd5982bc7e04ebb49a241129b7fa56d2b1e0846c6df1e533c8a2a7b9 SHA512 7ee8ab6bebc3774af247e99ef57c16e4431d1e0921d4789ac353d6a32577078c468ce653420cd6e84a88a6354d1be99e8451c45f3fb949ac5aa773fd9acac76c -DIST firefox-126.0.1-gn.xpi 630932 BLAKE2B 105045d3125791d0e9e5d6d6b46df1b849feb361eabf0c49693d69c0c9906cc492ada6f788932aba4bfd79934242c7ef117b8a45e24604a5f41bd22e036c8e3a SHA512 868511498e9d35f2f843bcd11678da77deb44afac0017e7b23084cfbb4b79766fce308765ec25804c00c27f4b426f1dc138d823c59afa12ac8b7e39b60836f7a -DIST firefox-126.0.1-gu-IN.xpi 524055 BLAKE2B a9cc86984120f854421c53485ea551cde4141ce76694ab6229b519b473e0171efab42aa6950cbe38af6aae1f39d9a590e091baff4b3b21d499c89601af792294 SHA512 de1fa3a98ba911932816de5eccc4e93073a65ff47eaf9e818bcb0338ade1c21bc7aa4e6ca7a260572a113d70e1d5f360a5c3d3db6ab139df1b1b245669d439f2 -DIST firefox-126.0.1-he.xpi 624336 BLAKE2B 6a401531d559b0c44b7be634547af8fdd91590bafdbd04c376fef7af0c64780404007429fa642a417fadd17642f32743cc5fe09baa28563282aa7a0ab93e105d SHA512 e14974dfc8fd660abb13c83bfb1bd48d167f6c8008053ecaa4e2bca67b9402689916fcaed8e3071945efb118d316b0f358e811db0e501e215d622b55c46d4c12 -DIST firefox-126.0.1-hi-IN.xpi 562254 BLAKE2B 8977dd5471e808c548da3e19d0a2f8a07383dc630e0ec58f46e7146a0f0d6349ac6284e95d273ab34f6a9bc6b78d7472d39eadecd66c65c0d34f491945d05cd3 SHA512 f95cb6b90f055d44d5e0fcd012a432475b7080a2250e0cbbc726a1252424404a38a114949dfaff327e20832f1eb1ef3f6c1f5c549fa65c3126b1830dbaf596d5 -DIST firefox-126.0.1-hr.xpi 553504 BLAKE2B 527f4411fd61225d6f42da07d410b7d4b860741a83024d9cc3fe481dbac86a4613d59d7fdac5e4c32cce08b6c9a7428ec6501910ae0f23f5fc8c8b6bbee91944 SHA512 3e4135c4ec8f95f455d6b7ddaeea2019c7bb4e75b9b93eb0798b93614deb591b3269955487e3672db764ba3f94ad32c3196558ea4cf1e7434e2e25573aad078d -DIST firefox-126.0.1-hsb.xpi 638426 BLAKE2B d786f32be711faa01aacfd832f81e8e9a9066baf7c0bff6ac47db50ad205ccecb65b4afa7873583eb541eddfe7cb65662f4b9b990a413f88fbebc0c4f465169e SHA512 35e8fb53eb6da86bfb11c27120e29a2a792cd2c868efd0cdabcac0f18d59e4018584c1e6e8f72afcfdc6766e18603338356be868de2e7d0eb7409541ca8b34fa -DIST firefox-126.0.1-hu.xpi 641489 BLAKE2B d4f1bfcd5af1448e9296cd1b1564e564f9cb9042b40ae7845665c3c9eb8951434e150d5919c6a1f46f41540663e3710a763667f960649b9ea646c14b03281b0d SHA512 01e794587dd4d0af8d99288ea6f058b056e18c6bf7224d3d316b7a6064333b87db5f1eb88958d780625d63a098bacb005f3599805aa752f8498e910f95eb96a8 -DIST firefox-126.0.1-hy-AM.xpi 646067 BLAKE2B 9ead11a69d7f32df885828d2f1fc6f5eef8e9ae193015967858ca14acaa80e9dc929fa55f0f7947490b18f98ca2d646558388f6f1003f426b9ae0df79d1cdea2 SHA512 c282379f67da71cf1aa39d266442e49814d37d8583b033140670f78f6758a088ee2552a89444fa4fc4df36bfb94a57a4120a383ea8db167a8bc50f658d89392e -DIST firefox-126.0.1-ia.xpi 603094 BLAKE2B c6f2b8cb6191f1b1b1b9841ec77922fc707c2f08928cd5c3bfbbbfbc04b49643dec075124b8dd157692b99885e084ab91b8fdb31fd49f5ecb414d9afec6a0d1b SHA512 c24ff4caf57a0fcd4ae8ae9bc64f0b5c2adc9b369a0ca20bf68e04c7a72a0ace61a916c67c01132d7d97ec8783dad7fcda7c4ed30b34fd290e30682e3a701f92 -DIST firefox-126.0.1-id.xpi 571018 BLAKE2B ed150f4a9e19204f8e7aacaa2b7e7619e6a36653c292e7d1f3d71c7d25871079a8da3206bd801d31933bee8d020cffcd5b0b15af50d66a70f1ec24c42650dd19 SHA512 d89d43e19944154ec54c2448c6b5c64c22ee89a11ef93690768a18e53ad6a14520cca3396af70cfa32f7df69854e701eeb40da6a5b6ba6858fcb19ff970e96c9 -DIST firefox-126.0.1-is.xpi 609547 BLAKE2B ad307e90e5b2febb7ea47beca78548499fa3ddf7c04e2077e50f6722ca0d592da73c090ccc73c4dc3b39647f70c38a09a54e6ea7ec8e87b14667af0a616ff914 SHA512 98f8dd82527994fc54627678f72a622e6fac1255cac440a9384dc2569ac2f9f8adbd6765ef343325c7d87fe43168a48f8fc4788869e179aeecd5b860c753713a -DIST firefox-126.0.1-it.xpi 559948 BLAKE2B 08ce89231e25f06db6fcab76bf7af0cd1a0149e01952de4f23d201f067a4316d621d5f67411a6e1ca0156455e73596959b6883f79c59043284d3152c93087f79 SHA512 98fcbe9978b6a7aab151fb62613918c295d8e6fac4c6b9e6a870ed27a62f41b08718675e46e9d65ab8b4b7b114a9d91c167df9cba1c8cf3c74e6ed3c57d54186 -DIST firefox-126.0.1-ja.xpi 671058 BLAKE2B 1b0144cfbd43c783a73b131be3511909d16de4cc0e465d2207b50ca4cde9c6fa9d31017da57b2307cf70340622794438dbc71f6f1bb78a8983b4b27b939750f3 SHA512 dd096b18ca34ba86382110f28f007a47aa17482d0481795c7fc66974faf156b295cbc65aa901923e4020eb8aca124355d80a3214f221c2e959cd4ae9ce297b18 -DIST firefox-126.0.1-ka.xpi 657349 BLAKE2B 388812ff6b67d6c1b89b6dc4c15f781b25d58c2ecb696a604736c3f179985b67db82544dee70bc6307cc5e94aa528ed7d89d00cbc796e7dca34f8f8be1afc087 SHA512 8154fa42c4ed565900a8f11f94d61edd236da4456d1eb255ae6377d917ac16cdef2052bff9571c8d7512fb1d031625fb451358ece7c41b8f5a7244927cc86169 -DIST firefox-126.0.1-kab.xpi 600376 BLAKE2B 686aa0a16fd6b0612cf0a12d90b8377a5047e2abe552ee316ea1b53fbaee76a443e1b020bad37ca947242364cc001b5f22514350b86f5b4d355dfbeedc0630cc SHA512 16f9c72245f09f23dd74cf235f0e943676b81a23fc287e04126c7137ddcc4f9cc47c6808688e1b27baf95c304645d7d35091aaecd040008990b7221a09048fc6 -DIST firefox-126.0.1-kk.xpi 698849 BLAKE2B dff972f308516bf8da5b2c038cc3bc1a2a75d2dcbe75b57e4b24715a167b1754cc45d9af7936a1d3ee10b8c8731d23b534c3063ea60ceb83931c0fc73ff01bc7 SHA512 e1b7635615d6153f301b0a1fa64c1b9a47fc4f6b80ebfb8f4e9b1f9394b602b90dc9597b0bdb724478e4959e8c350149ca9265ace5f31e3e544a76d3d639ffab -DIST firefox-126.0.1-km.xpi 522526 BLAKE2B 2b66372c147ea5ab39233a728fac6ee06be751b678cc476aff01c4c70ff20c75368656499785f0e0492888c597da9d1948a2582d624213f24bdb774cb47e8521 SHA512 0412ef18db99b462f96170d003bec5435db2b24b9c13c0d193beae6612295a20074322f8de28b4afdc68720d462e70372f5d9587ccd5c0e7872771eb78220711 -DIST firefox-126.0.1-kn.xpi 488011 BLAKE2B 402b9480a7a67fbe761ab79c45d98518fa99e058a4a5995ed90d5a78935b754ee1fe584a311c6ad39125d98956dbd7f9da77dffd622bc282a42f9fc3df4849f5 SHA512 d2c675665c679810058a684996400176f0222fb28a19736b6d43675747f281b8593a9183d1ffc7fd44cacff0165952aae367a748317cacd203b1974f828ac0ff -DIST firefox-126.0.1-ko.xpi 653055 BLAKE2B 96fabfc2720ad382f945988b8632b90b1688b0b62a92b101f181baf4c491b11bde14cdb386a3eb234b4f2907bec282ca29729d588a124191dc1d0fb01b1d0da0 SHA512 6d9198f6672fc91470f6b96eb4924d851e6d002d7b2e5b7659f1b1b9ebf32963be400e45451b659b6b3ef4bb97f5386a781ff7cdb5bdf3e86f1b926478c656c4 -DIST firefox-126.0.1-lij.xpi 480887 BLAKE2B 5e0397d6dd7f3d0d977f04aff09717a265fad399e4a85fad94f2be8a9f4f176250c359c38e6ffb32d2aada9e95c3d9105cc37cff971be357b31029c4aedebc61 SHA512 35b5dea1615d34c9478dbd28fcc719dd0e7565ce163ddd9ea4d8eaf13d013dc690c03395b8a3001bb71c0240de25b6ccbca8db16828d4b3179a1bcffe8738497 -DIST firefox-126.0.1-lt.xpi 569361 BLAKE2B 81880cd8f04c58e122033a3203cc7f63c4775dd6c3e57faa35ec8fa7ca0893f8a6b829a39604c48c13ab4b6e0f1c8c2342659ff247d20687b39ad68676119f24 SHA512 8aabe910ce69f4c1705416b24e59bb1a741239eec346144ad1c4e677e5e9928e791ba24f53dc3cd68cc1a400c1d825d157125785026c30ef1aa54de15339c7bf -DIST firefox-126.0.1-lv.xpi 570524 BLAKE2B 943d9b6444ce20223cdcf1933c2c5c799769894ddc8f8712d6db749b028d754b9d7569ced7257390ba7d216adc89069b9db3a79e38e784b6070d2286cf52374f SHA512 5d028f4ea2f0b924f8c9aeaf32e35e44c23017bf420419eb7cfde87259ae1bd2ad57cabcab65c41ad7cceef2dc04acaa5b208ee61dddf00f7c298a2f9ae866c5 -DIST firefox-126.0.1-mk.xpi 490019 BLAKE2B 2ec719d630b1c845c1e9b03111eb725004438db548d8f7c76557bab4dfa87c6b2e292ba694bbd1d0e23de964f45cea1dbaee8465c8d5b1098ad90360e9320a70 SHA512 dcbc77b08e7fee0656cd26ca535384ba6868cb49e0a9c9fcae90dad6d54074a19628925492c8a4a24e883cd7942bb67e79c1e1446803e90cc45b3b9a67770b07 -DIST firefox-126.0.1-mr.xpi 528842 BLAKE2B baacf7e497ebd2fb91668c83d8c962ef816bb9d3d812f83d4532ef61bff70681e1ef1dde8347729c34ddbfc147292bfb7bcc35823a34226d319a2c77e0b55534 SHA512 364a785b050a9fa7902e867aec594741052cc52122a27e930e1bd52226419f1155da37b88d3ebbf4545df25557437d71ac2fc7d4f45ae2bc1685c302923b4410 -DIST firefox-126.0.1-ms.xpi 446501 BLAKE2B cfeaf8d9663df575d1af9132a5c5d1603918ca81469695e2f7e9a5cf6614144cb189c7bba1d242c15097c77490a41356824dec662e4e1046a7c5a2609136bc4d SHA512 db1908e1953609cf35cd78317356f06749fc661f823ee7dd8a50bfa416c49ed3c20331866f2946edb5ef6dbac03c4d537590496e08f75df6b91586dab7e096ad -DIST firefox-126.0.1-my.xpi 515510 BLAKE2B f31af323b972773f944958d0123ba2fe256dc5e51b7b0d5afc4e3dfe016603e33bfc49a0af2e62492e1cc6c4c3885277d90527c934980b409414b6897b656ffe SHA512 b2526a06cddaa430889b2e0535dfaa56128ff7f7aa73b75a22e08c4499a77d7f0a9aea937cceb5d36b3578bf2f8dbc99c9dafba106c236824424eedf4d6ef50e -DIST firefox-126.0.1-nb-NO.xpi 598799 BLAKE2B 41a167b4cc466fdc736bc76a4ec3bedb8592d46dab0010aa53374b8f1d4f2e785a17343c1f66ef1db264dd22c15c19b7056288f8c18f535c39de1e0466c98662 SHA512 764294d97b5d0bb03f7a4e7f0eabfef6718f45768d85137617f3e27ccfed376cfff02fc6c84af1f77e4119c59fdd2311d92123f9afa0437be980083b775b1c28 -DIST firefox-126.0.1-ne-NP.xpi 497281 BLAKE2B 71496de9d47d7bc00615a12bc2d2bc819a0acfa9ab1266af0ebc2212a4eaa9127d5d2d39782d79a09acf35992224198ad0e4d8b8c092f1d0f74e9044d239d6ee SHA512 14f6cedb2c3f054b9f30ad69c32e05217ca2d8fe4c5bde496bcb2560139f774a20a3028e8e18eef3ff1e8d6711738e19f617e40a4ebf609580e028103bbc367a -DIST firefox-126.0.1-nl.xpi 609207 BLAKE2B 47137fe2fe41b5d560e0c5873dd707a9c46052da0250d43ba9b070d2cb1df9936eefce9b79b819ead5183eedd93542c1bbc552d91e62ddaf24f36cf0b980e943 SHA512 9da394dbc1f3a1653f10a406f8189db328a035c94d5a219d9669883a2a3627b82b66d714c48162312822f3faecf09909e612d5f6609b1fe75b972495b0927895 -DIST firefox-126.0.1-nn-NO.xpi 592824 BLAKE2B 55e4aaf1ab5fad956f1ce4462843d0729b9a9be8bbfbcd772dc45feb78a62eea8756450032920b2b8ba3838909874b7c618550e9e788888c9d8415980087294d SHA512 b775de13cac3a3f4ba71c595c3506f2b4423a218b29885f73812749ce25b87882a13749e6c811db6588eab8310bb9252b67d178fb03e50357c128ab251332698 -DIST firefox-126.0.1-oc.xpi 607303 BLAKE2B d373adf2258306a329021c4325e7b28585346e7077045e718187eee203bd4414b6d6c00acdf1b0e88519fc2acdf74b6b207bfda8d3f17b2b287fce6428740cab SHA512 222d2cbe54cbc738925403d2b506a898c629837fc8092b643b0bce6a74d78281e23cbbd3953f4349d16b7c1e3c7a526fceea51e07025dd9a4a8256e8b84560f2 -DIST firefox-126.0.1-pa-IN.xpi 683170 BLAKE2B 0df6d5d8aa48ebb8989d6fb9b7e762cc494b1da62d069863b08cebe4e5647cad3f007f68818208fb95b84b060c14537f20b25f9a508263a04e9a6f8e4a815dd8 SHA512 8f7148591df5960004a25baa71499857546209e0972d208d6160b7aaeada0194f4e0cb29c4bfb283f9262b07bbbc9057102b26a1c33f93b61dbbe78a9f9deaf5 -DIST firefox-126.0.1-pl.xpi 629564 BLAKE2B 9cc35a4bc60f882e77d9e6d2836155ed9298a0ac335d9ecdb822261b9947e258213a4e9ef6f07cef2a1039731fd88080bcb3092d52220c8c6db766b13237f14d SHA512 1c5b784809ec6e7077449b979cd014ecaddec34f6afb915e35d5c45178772548f7e1dc688800d95d1796f53d17ca88584b5a1722c4a26078f3ce2b59c0abfc1f -DIST firefox-126.0.1-pt-BR.xpi 613862 BLAKE2B 39e8480dfd20ff9352730c95e2a748fda35ed863a0f0f4fa880ddf5b658990e60a7d1206ab11a53792dd7242372c1562d669e9189b0b7e0d1a627ccc97174bbb SHA512 715939d1ddb4115de34950aa4ee4eaf3d40878c293927ff975c6e47c2af2e2782622a929b4852767d17d1cd7d8d3ec07b6df0f62a933caa245826387b6166448 -DIST firefox-126.0.1-pt-PT.xpi 617460 BLAKE2B 50a2a52c1f21ef9ba1ece6f8529ad3e383cd5ffc4729140d12b7f90ac6ab0327804eea42b97be457408229b57b0d9be18a32bcc03edd1ac166822085815bff7d SHA512 9d613266b1fa8e124ea2344c7935f0e021d14ed38e3e41d5a3f825ed2743a1f8b109082f5966cf62c50d56084949684c92d2f6a8f117395c58e0579e19c2fe29 -DIST firefox-126.0.1-rm.xpi 609792 BLAKE2B dc38945f3e36f36f31369d82515ac69b5ece47aadb5d948951ff793ed0dcf497345b6869e18e9c04f25df3deb964d73d17e76bd95a1be106a1ecf703f67eefa3 SHA512 41b58222f798d9347a2f52e8dc9388a8ec585a80fb3209bd1f1ba8a7f89c3c67e1fd4b0ecb38bb9c37dc5a073bea63d0599a4d8b8d56670d7fa8bd9d0d84ad69 -DIST firefox-126.0.1-ro.xpi 546461 BLAKE2B 497982dff7c355b37ed02a790e62dcd919ca2665ebb5d82e15834fabf635b752d2430d7d2629770c87327d1cb9f9df65ee7fe3e0841ba3e7c370ee96e14da264 SHA512 35837ab05ef350ff4b6dc305b9bac7f5e2b382244c92d6fe21b7917086e3720dd760d610ac49bf9b0bf8341c7f75723c90f7cb5ab117ee9d68337b5d75a1519c -DIST firefox-126.0.1-ru.xpi 711042 BLAKE2B 694b5258df0143ab787babf528650b3403eac75032bf3a3080a881d6034a6a7b2d4b2ca2c75f88401caa785de04ae66047e268d39f523e34ba9d442b010df3c4 SHA512 69c512ac4c297e1c54f2fb6c1aba80a0f0682d54c951a99db481abf926cf2113aeb24189bfd56d9d1903a88cd073f144399f0484d6addaeede13711814cfc481 -DIST firefox-126.0.1-sc.xpi 575625 BLAKE2B c097005b91a5a708d217d8daa225865a47daa2935b438d3495b01096dc7aab7d2b4f310f7a5d630ebdbbcdc8872e3f7dd934b324e9cbc37b32e7ebd51043c1a2 SHA512 b415b171a84f95ef7194323a715191b5e79de6e3660b5290216c4e26e8ab0da3e544237586050012a3743877eed4ddb61b80aed42ae359e73227ef7659394097 -DIST firefox-126.0.1-sco.xpi 507927 BLAKE2B c3908426e0d00645c704aaa82f8d7ee5c9aa1b5885d8fa06a3b3cdfee2b0dc0986a9205fef5782678488767c23dfd20cb1287c323e0b8883d791c409ee001999 SHA512 f5de3d676db0c2334c63278c652fb69fb462372cfc0dbc734a08c1ffe3dc51cc33696165918b208fa7f1c15792434f7cb756bc508008be42487386fc4b392943 -DIST firefox-126.0.1-si.xpi 602659 BLAKE2B 2ad507adcb7f1f19485409baf89bb995aa0a3cc03d9816804b84119d84953bbf95d776911e2226de20647196eeb3dc55b09175d9f2b052b88b7446fa0a5e9e7b SHA512 75b62bc7ce234faeb784ba845d36c27bbc95b7e799e15aeee27fd2e470732856d246335c9cac240b5750127423359eedef60dd2c6b18517b7883f8f9836895cf -DIST firefox-126.0.1-sk.xpi 643907 BLAKE2B 828c0d270fb058031f3c9e9eb51afdba05ea945ba51aef9198c0c9eeac1ef7e3bf1729600ea7fd87f5ebc260821f6e2c342d4105bd9ebe124341897ce79b51b8 SHA512 2c75b47115ea341b85690e2ecc0ece0e2acb49bf214d538538a582c6d62fdc269aa93e1f33a652cb290ca846dc013f018e010882223eac0b0f471d5adb81673c -DIST firefox-126.0.1-sl.xpi 608097 BLAKE2B f8b3d257da080cedc124a536fe8a79a79aba2041e0291c197adafc2ae20bdbe1371078030dc1046b29127fa99af8a3740b0dcd6fdf44d7ab62eade99fae88f0f SHA512 1025411c4a9b2a033deccc57a7731ee1beb6ecd2cee38a60c306ef7647f06aef4fbc6b814866a5693e5f20721595341d7ba8a8df65b088d3be38640c3037f374 -DIST firefox-126.0.1-son.xpi 413206 BLAKE2B eb4493329a5d9f0069ef96ae0f4b90f3fe27ae4edb214a111c274ba12ae0d989e255b208177ca6087a1f1c8aa1d6185a6ec550dacc9d42d11767e2dd7867acf9 SHA512 2cd42507854e3bb769dc0b688b8c70ddd0da73a618f7f4df4f325e5962ed66bcdd69881e62bbefba81a5ef04da5ebc34890eb31e313467fb2739956023815e4b -DIST firefox-126.0.1-sq.xpi 630563 BLAKE2B 39964fdf16ec6024c86527e219b350b71032916bd524469a1ae79c99bc4b0352c3e1ce0f061c0da592019805a2e3e85cc1b38943c0854514ad8d3ac0f38979d7 SHA512 f68c82dab31e4f8f3131f857503977e1feeb60632b30ec904d1000f937d3276da09171663144080999869b4c2898f956d22bb18e311105f76d49b1af105281d2 -DIST firefox-126.0.1-sr.xpi 635976 BLAKE2B ba9edebbdaf0baba401b8467e9d90739782dd6b6fed995340fe6d7f5113bede99bf2e7f4e7ad9ec14e62e62a34320b5eda61e9452ab5a0d42a3586b987628ab5 SHA512 3bc4390711a3b326444e5ed4f02df11b4626e29e87472edb151ec8fdaebbf36cedccf06773d5c462c2e3e720c1a4513d8bbf5808a46eba21ae4ce3f81910e850 -DIST firefox-126.0.1-sv-SE.xpi 611068 BLAKE2B 60d03261051546e12e2dd42788e1a50ecafb781be139e2d4cadc6d8994563983642af6da0625a259b04527500798c9be89d20a6874315cd4a1495799be0ce09f SHA512 f089e51567bbfcd7c4451f2480fb084fe6b48b9885282d62b36e9f63bb36919dfb67d5ac9f632bad598c654f118d04631f40c531f9ece2fe7949b4fde5ea9c8e -DIST firefox-126.0.1-szl.xpi 523112 BLAKE2B 87372a62821b8fb7243c7d824d83c2be58220f7def4fd394da9539c5c26c64b978f6ae11a4266baba296718cf8ac1f1d735e61e79b9dbb1b202974c496ab2b48 SHA512 32b6df517fa3e78f60956f8026fb792f585d4501e474bce08bca2749d8c667f3630f823daa21fa87ca72df69c15910b330b68623f8fe44148c46b629601658b3 -DIST firefox-126.0.1-ta.xpi 504279 BLAKE2B c8437f154dc946a4e44c838b4c2a8a1d99c68d0c5e7dee18e043fa6f0d6ad23d32d8da4edbd432aff5fd311ab98117f6f21a49c751ee23f6cb1ce32db5093e5c SHA512 8333823f51b4433513a8580304776e7ff6ef0a5ac9978eeb1fb3af1b4e6590e6495e869683da89d77bfbc9bf86243fef073655fbe54bf81b889db44f6214aaef -DIST firefox-126.0.1-te.xpi 555754 BLAKE2B 29aa5e24df4df61553e9cbdedaf605cfcee40aaf8b6c3c328cd97f545e19f483c6c936224087e29ce019a736ddafd8981cba8d3eaa13a8f63e166c017d824fb9 SHA512 6d070117bec5566ba293609f2bcccbf8a9c1573d37c38da45d4033f76550532abec396edfa6d514a3f3a68809c3a81161ffee3590871164b788b4faf90f93f8d -DIST firefox-126.0.1-th.xpi 686788 BLAKE2B 5f85f3728d4d2dee54113945300efb5dfe9db42aebf35dd4373b2e6e7c88927c75b03a07ee955269ff6594d31f5a367048cb1ce319198d8e2888e79218316568 SHA512 0760924ed94931d57d170d93d844b07bf234dc19de2d82a72cf01cd371d21caae2d8c61e6233209fbd896b3a48f3c9a40f29d79b3d566fded0e5ecba85b238c2 -DIST firefox-126.0.1-tl.xpi 530903 BLAKE2B 91b05a93f08efdf1bedff86a46651624f881663c6c457f50b90dd11d0ba46bd484e64537582765a77c974c74bc1336c541b6e9f6892efed2cbbf0d708146bcb6 SHA512 06ec5e1cdfb02acb3d5e82052f8a272ebdf5898bad88be1d8d14650c76f87c2af1984a62bcf49bf22cb3af17efdfb834775b540fbc07de5b1d11d004f63f1007 -DIST firefox-126.0.1-tr.xpi 624076 BLAKE2B 51f896ae2b5a1c428d67b154cc73bcf58b4034bcc3d49af6dadbc2309b9809d7ea46aafe7b49f23b0d6157674a8b279b039ac97dfed3a40499540eabd6318737 SHA512 cb9c2fd10e53f3208dcefb25ca095c12ec546cd44e909f70f82ec525913f4cb3f0b7415dbdaf49dd6ae8c47bd96c20b322341a235a303bca9733076da2650841 -DIST firefox-126.0.1-trs.xpi 500763 BLAKE2B ac2817e6f496cd42705c037bad6f53b7fdfadcf5d8c4a4e3ec733a563e30254bcfa313f937bc0da2b18abddacb08fe63b08fce8d9769dfa7d032b06a76af3178 SHA512 c0f41364d68b2d88a6d08e93862dae6c78c6c380a565e343c9c3a973557779983eb5d62be3b1fd27dc00aef69383cd65bc759a59ea03b9adcb8e9f841918e753 -DIST firefox-126.0.1-uk.xpi 702878 BLAKE2B 4e193486b0b7f4954f70f1775d6690516a62d36d30d6f4ea4725dc8309a86785298a47e403690019e659b3eb9bde0d802d5eb359c5e617d07c0e43cc3fb17e2b SHA512 78ff17e716fd89c237eec6a657ade5be28501ff5c8b8377c99583394680ce5347ce5ef8a49a261d7c7fee6440c0e47aa0202e7a990c552043a54164671c02549 -DIST firefox-126.0.1-ur.xpi 557227 BLAKE2B a368053cda808b085cb0308cac1fafd6148c70a85dd567df358efb28beb0c6d77b7e0204e219599685eae48e1193664eeb685a1b081de1fed81ad72a2f01c10b SHA512 2b7268b1a271dd43d8d415f9675cd66c3f090ec4bccd0c2308d9ddce82887697765be39977feefef64bc31f5d46f126e0ad32eeb8338ee5021991e841a594189 -DIST firefox-126.0.1-uz.xpi 475624 BLAKE2B fb780d6bd51500f49bc378ff2427bbc558465f1030f8f0f1e82e0d426f69598436f1ccd32ce1e0f675295fdc8cad462ae8c691a8c8aff6c4261cbacff573a6fd SHA512 eff3c78e7bcaa71ef4d0371b1d4554f02da1ce523a8b6859a75c33ed523fd8fa1cb8b91a3d9cc10e439bae9c437b52b2c4f555a1de89392884fbced48ea3a262 -DIST firefox-126.0.1-vi.xpi 648610 BLAKE2B 0b435a98887f7f70e339fa1b62cb9de6a1c4efc1f999681c80af93528b8aca229bc833fca0e0f13751760536d43cf7481e34f30b1dc0b9793c3a225f5695af19 SHA512 8310f52464be67c0f5686d57b9bb1cd6aeed866c46dd8c2b5e388580e5403a0d4acbe9a311e84747f718a37593f23ae28d5c21b425e69f64f714901c25347c8c -DIST firefox-126.0.1-xh.xpi 413941 BLAKE2B e16119980966742cd2ba01fcf780f10dcbf50d65ca49fc49286a3d3e4e1fce08b20f1fbd43f5dac0fbc774a550a838b87103e5c3efe7707deeadff2c3a45823b SHA512 9e9e33ff05a5eade54e6d460b166caa5170a22c593ece0563abba67d30ff1a58a66da564b455a22698f054056b672320c545ab3fb04d244b85c26d6c29e839b0 -DIST firefox-126.0.1-zh-CN.xpi 648666 BLAKE2B 616b18369b285e3469b47f6202b9c7c482ddc3032b6443a681477dca85089d38d078499f9341275acad630df1debdc459fa2cf79a3e366a42a2cab3316cd6e38 SHA512 f525b2f9123d43f75958964935daeca02b87578bacb7f3ff23aaeb9c2a6074fa99e34e52510331c3e6e9d82ccaee585f1bc4315047d1432a266de92c5abe86ae -DIST firefox-126.0.1-zh-TW.xpi 650696 BLAKE2B 0ade075f983fa77ee562b2b0d311ede43b44eb6151ca162341f532f1cf0a1f7a88d993492b19aa33122636713ba15cab3da1d6e935b14c07a70a12d53d71b1fe SHA512 55865f9e6bfbc601cf7bdb902a9700ea57e5433a0760325991e7755207a434bd61d83ff2222cc44580bd3874ba4b0370109579bb9096d127b97d5f7f81dc004e -DIST firefox-126.0.1.source.tar.xz 552965660 BLAKE2B b5d381bbf3ac7d63561dc4c8f8955faeb08fe41e57a05b39585f01054a5348d68d6fc50d9c00d151c211d26ba2d0fb21843868e4cfc1445e4c637ac5756af161 SHA512 249605c4891ee9271def187d161369bd3ccbd347f5f0e175d0239aced3cb9ae9655d3c134b7705bda80ea1e63c0a2ee8eb4e76db0840019683376c00f20fc7ac -DIST firefox-127-patches-02.tar.xz 15172 BLAKE2B b9378483ec14ac3cc889efceab2027e5c1559308dceff583d4be55955c4fc6fefc60c93e59404c2af09eb4a9cead44b7fd6f0a9fdb643da38b954708c25e5618 SHA512 048a18354e2bd8ca00d64200cf2c6155e7d663fd5c8c4ce25cc449855f2cda6ac913dcdcb0c76514800a43898109f8f0ed97b77bb0d2f40d922e9b59ca1b52ec -DIST firefox-127.0-ach.xpi 461915 BLAKE2B 61a955504b6d24fd1c2a603addb5620be1c247e706f4454977bc8c0145dc9a0a6317ad4e2bb0af8e4911d63a2dfeb66752afa96a7916b8f7178f35e21f52937b SHA512 8cbdb3b2e6afebf4afd9324c9f6618674b61f50e9a6e616fbe10e30fa06d13a09258819a55694806d9b4c78b4708f43b29c980f0d05a0b5b739956a002b3851d -DIST firefox-127.0-af.xpi 415369 BLAKE2B 579cd019ca95f002e332eba85d2b787ade6753b4b3c1acb7202bed1ff705687ed12e5ff0bcc939ab369ce3ce2b68f3461d3dde7de79cc06f1f5754c3147aa1bf SHA512 6babfb07b46bd058175665c5d62677908301a7fc4e6820356525bde357a6f33f9b3b2f6998c2fb17aeec2cd08fcfa2966ad6fdeb32f9cb3984071c54fa675315 -DIST firefox-127.0-an.xpi 503729 BLAKE2B 34aee55ebd1b0955e6da61b7e002c2d8a2802c7df7f1556719ff009590bb3c2faaf257224fa5096315f4915f51a4b702c61b342777e98f6fd035bb54d4e0b403 SHA512 c51359216d09c1d5f1865a123c44f75d8f9409bf4d89550398c2fcf3874d0dd207bf91dbe38474174132df2612e475953b8d166285110e3799c11de1795cc825 -DIST firefox-127.0-ar.xpi 607970 BLAKE2B 6cdda3bcba3cb8f8c32c93a3609dfc385a7e146b43b314991241b0ff49e9eb14f65bff161b638bd79bad0da86de437499aa39407d989195dc0d0f9f7009b2ce4 SHA512 55f15003ab1479aea8bd69714f317d7aa7afc1f4c60e9b45c0e3d8e8ddd555f4990012c2e879582c21b3f04edbd59e13626ff6ebc8878a35d296a8afdfdadeac -DIST firefox-127.0-ast.xpi 494038 BLAKE2B cbe8cd78c341d4909aaeb6e5ed9b1e0a977fad9454851e116c0da275ae4daa07850a2b2aa3de4c8bf892ebd2238a4c17a2305d5ad7264f6b8f201584015c6f29 SHA512 0131290adb663f53a10f2edf4aa57994bdeed775447cdc4b384db1fa1839801dd748b1a367a6fe309b3765a313438652b9072ee4eb248a7cc7bb6a8440ead01b -DIST firefox-127.0-az.xpi 488591 BLAKE2B 959dac642a208d5ec038ed68ee26b8710f7fc9c30feb4d4094b1b9a4734b4a6ea20fc478c78c183cfec35f7a9df4400f799a58ebe079a1aaa99aa5ea67d6d1b8 SHA512 e0e92fb1c3cd9adae773222457f37cb2f78a48918717e6b0a78d8607ede824fcceb6f497f1c51d9e3db5dd83a022f5ae61fba817a6f205f62c5c50eff469c0ff -DIST firefox-127.0-be.xpi 708714 BLAKE2B c8b83c3b2d834bfdef566cfdd27c29c0f0cceca9864922c400888267bd4a3aeb51591367270b0e4b243893033bd405df36046af66ba2fda498294c7907a64f2e SHA512 2a90322c31579a4a3edf63a709edd0efa4cfb5a5327c02e721a6b19a42f0d66e31ba9a1b8c5f054310c82c321ce58163faab2eb35f043be075927ccd91a77b20 -DIST firefox-127.0-bg.xpi 601642 BLAKE2B 32535ca3286ce38fc4ee1887149fdbec1e2e8cc9d1e1b53bb2544c07327003fa8fae0a7d04cb86471d8f0c14fcd3604a82a5c4f25f05a5da5027c27256a72195 SHA512 5052c551f5240872dc0f6f039df859f4ec1c60bce2f8f881e369d94b11172939ab3ab23f8e9609183c8e84145856e66321a57407c9090f4f31ba6cd99b603d4a -DIST firefox-127.0-bn.xpi 579347 BLAKE2B fd520e0b28589f85cb48ef983cc4fc8ec932c8c527c36650fbf91f21e00a7479a150e5916d7d30f96bc0b3f428d5a397ebe1dc55c5477496560462cc5be08d64 SHA512 0b6bff8d6ac653fbf9c46f0bdc2b7a9311762ccefc6b4c853c9ca383f86208f2356613488c6ea692c4c167454425bc9e701d4679096b95abd6bcf1197569fe59 -DIST firefox-127.0-br.xpi 585929 BLAKE2B c03573328cdf9675cd3b2a855731b85f04c04f53a8fd478c7536f1c7e4f4534968d49ebdf37b7f0ea6b789f238c322f36d7f58199fb45a5a0192f30b60eadcf8 SHA512 82c62d6786f8e0a7d5b73bab14ba251409c73d65ace6331602dcd4631598ebe2df162ee20b73f1102707dc982ed8b5d1bfeefe52dfc29a078da25cb76587383f -DIST firefox-127.0-bs.xpi 499325 BLAKE2B 4058db6f8f2ae7c93f8c1ec9147399bc694d4d81562345b19539836839e8f3830e580db2771865a27863aa076a50ddffb50a6d8b39788c0039aa4735163c5fa1 SHA512 427a656f3e37ffae6818beaa31d10d29ccdfbc223432c56c61899232d96675e7e23300415f18f4737f8e42c002815a02bb8f6a63ce02b659ac3436829b8d524b -DIST firefox-127.0-ca-valencia.xpi 544015 BLAKE2B 2aa2b9b7c37d49ab700cc6dd9f58b8ab23d7fcb09051a16cd1808d1beeb74f5c672f3309b2d2ca85fbca6f768f070870b025f22eaa432f3c6f6f8ebb1a27ade9 SHA512 9a9a97b68202eb7688260132c58388b65999eeab786acd439a295fe20016ef1b4f22887a67cd4d4a4a5e2d91a9fab726bdc94a85926361adcd7696c9c5c8c991 -DIST firefox-127.0-ca.xpi 582816 BLAKE2B 0c85b2255bf960153bb58ba58f69ef3f99f0096387e80c59a931bc87679974b524e6b044f98fd50eca39ef3f91884afd4da9da701c637da0d0f9187b6b8f1f38 SHA512 e0d8b202d297c8900cb02ec72958c44cec003f217d613471ad7533e80538d47f1b359cdef497e9a62f85c75d203533838765da17b76fb520e4454d813488b2dd -DIST firefox-127.0-cak.xpi 590488 BLAKE2B eeed323b84876deff4ea0c0c5522cf798730ff86b220dd79d8ae057374ffc07466d723f7f6de88d6a6d2e94c5c8a0345400fca318781eaeee63fc70818c71dcb SHA512 b200ca80140381cd116e0efd1288a6d87cedabd5b89863ea815e4235c3a823eb4195260c562f3bbb6717b1a5212585bcbe30abfe9ceecc15bfcdbf582db4081a -DIST firefox-127.0-cs.xpi 653267 BLAKE2B f0b9ae63b5968e58b56fd76561bedd5ecd67aa27d27942e0a3c2119b4452915af13d3a92eebe2c44b9daffdb4041f5e6f0a8cf548229dc08037d69a199722b11 SHA512 085bde106fda2bfcc7a3a1fb30b3f39a615f2b1371b7befba12c6884a09ec5491248553f3a7a8ca17eae4a2ac5b0d40267df114cd39d3388fe47657061958306 -DIST firefox-127.0-cy.xpi 618417 BLAKE2B e11244aec0531fe022e29d74c59f073b2ddd56e961ab1eb411d6d06dda1b77d4319287bf72319c5cf4288ec4aa6500a136612bdbb6808bfa20f32b7dd709675b SHA512 c111709ecf402de34c659b2e2503a577431f7d6ccac12797f90e2bb0128b569611a0ee0d6bd2f8d4f320a56e55286724cec6345322e0f753d656705d4b57500b -DIST firefox-127.0-da.xpi 606841 BLAKE2B 71f6434e5138cac5b72e26ce602e774fb36e64f36c6ecc2fe07742cd0f80442d2e8e1a1829c6a755f874930cdc06023a2ac5c16b1d1b633adfc64dde4136fdd9 SHA512 c4ff070c06fdb2881fdad7795a483dcd8c38f15cc026e67593c15eb8519079a4eb1d1482ce003aa3381834f68809fb536b4bcbc6ad2c42ea736e4875cd4189cd -DIST firefox-127.0-de.xpi 628166 BLAKE2B 9dfbc63a160e9b06792c4f0952146577b6a81be74ed87ff1414f5b7cf4b18fe5992692a313c45c772ddd59db602dfb730b88ab15bed52bc67222003ea17a14e2 SHA512 fc99af8a289fb6d5208f96ab93393c27e2a5a0ebbce56e89df3e6434ae482d77cfdb2594da76d58cf135f7f40784ddf96371426c7e49e9b8a95cfe0bdeb1c5ca -DIST firefox-127.0-dsb.xpi 644569 BLAKE2B 1b3e41831ab5c305ef1f4cd99582fb4e7facf87f2cb2a4097c3958d1b078bae5b5e23fbb8f3830a0137102e877e0a937f7b1c90237dbe45352d248399838b362 SHA512 17134e17fd2c6c4ca78c41dbfa5955c4c43fdda888c5208b66614d34f54cb384f0b404631458059f1c8a01eb2ceb09887f416581f678786037b4601ebb1667ea -DIST firefox-127.0-el.xpi 726234 BLAKE2B 256fe38ac6e39da59436750e71ec3ff15ce0a1627f5c2e6c1b6d155d90f58568d80232b70c412e9a8477e484cdfa59e90c633b6b2c751ddbc8d4265769f805c7 SHA512 b546bca88577edc848290649fc92da0745c40c3eb83d764d414de2042736d05944203001b7c7cda36261e7942e6c8d6bb5befdf3b474964987b1a24e63b2ece8 -DIST firefox-127.0-en-CA.xpi 579149 BLAKE2B 3037906862ce6cb9c8bf3b3510425a7f1ae8203885fffa2aa971844fd11ce149ccbdb0bac619427cb9e8e52d0668e27bdbacdabec6dd8273bcc28dc642acfb2a SHA512 39a03779866a7cbeb7ed2d3741b64262ddeac47a711de1b19ff5e02b8004f8ae0aa25a992f92fe7b12c6a1d65b5d632a2726dcb9466bf48e6c05fa56bc8198e8 -DIST firefox-127.0-en-GB.xpi 579705 BLAKE2B 0f64b206f58a621e7dfce94d22b1f16436a2ad0b9b71f065d11087bca6372a9d14b336f0202f42b64cb421ae1bff287875dba24060521df5c6dae4b24628d624 SHA512 f898a2bdf74c0c4e848674748c954c84d87a8de7c76fec98ba67d18d07ec6e33bfce937c665a6b78edf93901adafd1d9d38d017477cc96d34426447e1f655624 -DIST firefox-127.0-eo.xpi 608815 BLAKE2B ed3edd6cf42a10de032162b12302e76909389f0b7df594aac7dd3a4dc071d74cbbd68e9fb5f49ed8ae6f511d28226db95f83a483420116940422dcd44fd6f57e SHA512 2e9d2a592c9689abff2d03c9891a20b48264bd1aefdafb3e687ff1f547384f16a5b59fc539c71235259a01ce716e4f34be799efc1d1c09aab3f3182efdc90201 -DIST firefox-127.0-es-AR.xpi 622091 BLAKE2B 7c391d4169c248cfe2ad3eaa7666a24ff769f96251416b85df42bdde99dfefd7752c5131426bae6d846d5a609f4b0a0f214c61cf3d8b612c720c6037dc5b09cb SHA512 931618310f28a620137d42cd0aabc2c11653f189e91d3ce98d0240753e8649e5a271a4d75dc449436aedc2f43316a04f12cce615b22a60d8b6a1d0be34d87eaa -DIST firefox-127.0-es-CL.xpi 621292 BLAKE2B 17b1c177aa92ecfa0cf1e9e66b5b631dbc1875f8a6c8c2b7fc47abbd5db7b9e14627f9d9399ca891ccc45c4722403959e7776a827eafba077ac826389013d6fc SHA512 b1bb8f65c654886f1271795081d64df8c6c6eed9aebe7612791c864569f80e94b6f7c5d0bef8c4fa1e05f1b56f9b4f91508aa4598a4b819480c0874d8f0e31d1 -DIST firefox-127.0-es-ES.xpi 616132 BLAKE2B 7b4ba189c2bb689649385742bc20fd40fad3527173e1e3790f6c0f682f3356e54f4b2829d1e0dd2046dc7fa8324a78cb58fa0f8cfe1c8f936767d777bb0e6e23 SHA512 6a485cc0d4715a575601357c35fc38ff98adc40886e3151e5017eb029ea89e8c4bbf24b2bff2a3d28cbad2c62998e6f07fb29a34b1d1d888db3c99b1dcd243fa -DIST firefox-127.0-es-MX.xpi 589228 BLAKE2B 933539389301d785093eb8cb68280f3f046d8bbf09216574b0ad89e27bfd2af50e1cc553ebfef38c44a6e5f4c49954152bcc3ceb2f600894297fcaf3e3c59415 SHA512 dbbf8bbd3586bbe53af5ad8ffff7f6baa1f95984690f9e01ca30d70f452cff85b1e9f1e7cee81a25a2737abffb5b69a29e23fe424a8c91b52520722cc5ef1005 -DIST firefox-127.0-et.xpi 537273 BLAKE2B ad1e1c39cdeea1c4e91096327731e97de00f545e8377b8207e2ca0d63b940652945c27e9e97c267ac22513e5974fe156c2af6164778ce478bf6f468026294311 SHA512 2d5fc92bdfa8302237ec539f12b57ba5c8c8ea6fc0897767ab28c53c698933a79a4a72f6ce5ef19044681b8eda69fcc3dd9b93644b36e6fe5433ef76b6a1cca7 -DIST firefox-127.0-eu.xpi 593757 BLAKE2B 4767ac73c8a41ffbf5e2b519c06f566c26bba5283fb080e66c8c88cdf0218f9eef15c8e535b1f217461730e59fc20d2564c2d0956f80bcf30e4e514dfcc2e6bb SHA512 23ee790546463e70b2fdc84be31f21590e07d2dad533f64bd17472d4d70d3d0be261012467e7ad8efb9f0fdc675b3dab7e4f5d37883b7d42b7f5068cb1ac62dd -DIST firefox-127.0-fa.xpi 587848 BLAKE2B 70aee37c99883e96fb63604eee924ab161c54f5345e51222df563f0cf5cbe7fc8dfd285ef274011ad4afe55f3aca84b33c1fd772decc31327aa43fcc5c40e956 SHA512 379d0d9991bb5c1de72744bf9878f01fde47db31e03034a61fcfa7ab95ae46802bee9d3d30b3d4c0106b7fbf91b8bd845e7c176b86db259efb007d402f693407 -DIST firefox-127.0-ff.xpi 473935 BLAKE2B c3931ad5e57d9603589daa153d352685cff460d40c48c8c8d490aa961e5c9eca5212d5bffbf3a634af27a662ac1989fdb5a7978b1961b1c8176d4352f5e78f92 SHA512 f9d155017546e086ba3eb919be4578a410c1e58dab7f594807f622be9f320acdb9084e7db0052a45d573c8aa3e5c4d4c19c0207bdc527011987d67e594e6b819 -DIST firefox-127.0-fi.xpi 601834 BLAKE2B e29c18d57de8d86b2ac80f6541ba1861949197589d4f0b4abe1a8a5801879c0a4c7fda6042b3d5d985a5fff0333618ccc153f6382b7d58f57b397e852c5f3ac8 SHA512 72a9b65badd422484496a3ad1afca64fcaf281b2565e6a9e3b2f947e56213a7dacad8ef82721be0d87d35660bd6fd4f37578672f857fac107ad29c0c79958f81 -DIST firefox-127.0-fr.xpi 635011 BLAKE2B 57139b88a96714c967df7ff917dc68948766f85a612aa4f5945fda825ca2013da8a72801ce797256017c4059bd37cdafed43c46f7e1b8d8789627eea608bfab5 SHA512 d062692de2dc40db9daa6bbc51674d7ddad4bdbdf338bcdd206be6c20da9c8514a3a4543a01e435bfb7048579e9de5f63517f73ef3c72b2b0d65063bc37017b4 -DIST firefox-127.0-fur.xpi 627825 BLAKE2B 4ed0d4de57b4490d1e9bddd4d8064454d9c0240ffafbdf1a268a19e401576d2d0cd78e35eef62d9adb2483090b9dda5757357024b398e190c4fdc7f5cd4839e6 SHA512 f7a756cda32ad6e61beb24e1a573130cf5449503c98d3475ecc2dcb19b7ec494d7a3b9842731f7fc1f9112ba44483d435bc41932025d7895f0f2a347ca4ee607 -DIST firefox-127.0-fy-NL.xpi 617746 BLAKE2B b3a305c897a2b1527e24f9aa14058feba4338a80f4df4e4e342ee919e8eeee26915f0f47d77746fadcdfdedd8e1598995b9c8b1640f664f323a8e18e134112a3 SHA512 e306fa62eee561f61d9f1a2399803ed4a42448c6e9fef44113af9fae0c29cda3dd73320cebd63977c3263fd9728985562286a2dac3bbc93fdb40ab84baa6bcc9 -DIST firefox-127.0-ga-IE.xpi 468826 BLAKE2B 359270c701a3e3549b326253691cffd3e7a4504fe7956a3d8a72a855277c670a897391d5c401358c81bacc9ff8014b04cec84021494f92f8f274c071f6260e19 SHA512 7616b1b3721d3232cfa84217029fab9cd05806aaefe27a736d303c14a92f553ab661fd166a362f8f9793d137b7acce706663dcd259ebdf990bc6a7b80b6f2ecd -DIST firefox-127.0-gd.xpi 594375 BLAKE2B 13ba9a3c8a9d4846c8879150f71c6f32baa421fd1acafea7da6a5aa6d9b4f1891c726abb66056cfd4abe7f3004868baf41b6f3588368594d3ba3e65e2a42609b SHA512 9eec60c077f96d9a151c41e84d102e685f27e645e046a8314adc9204479ba82d61cf653455b180ad2115b9c3203b30d38103557aed4138de3a3088b6afdbf5a2 -DIST firefox-127.0-gl.xpi 601876 BLAKE2B aea9401194c76fbae34e0527a7b023c8e6917ad6ab90dbdb70c74d704a12aca2d93edae5371e949e1f9c8b50b8a1f48e0b3ab5ff8cdcf9c513ff2fcee1c7f649 SHA512 f089b276c3d8eafaf6be15e96b8302221a1c2bfcd5359bc5470bac560155d703c43076b1997f30fcefe9023bbec72727c047486a64c8225c0b0c803d16076bf5 -DIST firefox-127.0-gn.xpi 633214 BLAKE2B be81442ccda940d8e23dac65571ca998d6ed2469554b1f83e3b7282572e1a6831efd2da8856cd13108f0c29336236ce97264df2b610d1c34a88d39702886228d SHA512 a66c2fd83499f0c6382a976b60bcba85fcab731710ffb1af628ff18b231432223e37e2a5daefd66c905c8623dd58b07a2f34fe3ddd958282dba8e2ba16e08d8c -DIST firefox-127.0-gu-IN.xpi 525144 BLAKE2B 2e4acddb00dba003329e43ef1de022796078893a7641da2f53e42d4c590628ab59d6de7a457752a82dbb130e95beb7413eb4ada849d022f13c455f2f01b4e0a0 SHA512 3dba1b6a63d18049c0646419b95898b46f24cc2295cc074c42afb56b950a4fd211e8bd570114ebf6b6c8bee517ada0df63e2cfc60b9c85fd7efb4898d0821eb8 -DIST firefox-127.0-he.xpi 626713 BLAKE2B 14c2effbb963940ccc7731ce03700a65d670c3a15f8eef436a18ada67039c282258b7b6c0b16f3105db11e34b1a33e44ffee1c5cbdb4542d1b68e25ed4e96a57 SHA512 591a9ee4784528ce407e26a7357d905996aec2d1c3639133041269410f6e3e49074e2bbbb45d4fb87d62d87d0089601e9cb0dcf118a99f9c7fa25d63c1d7e2ea -DIST firefox-127.0-hi-IN.xpi 563350 BLAKE2B d33459712cc59080ccbd9aabad8429b2b377988980ee32a6efdf5a7556cf36654cd4076d02ad5bf25968e978228aded8a8e1a4cf4872542e2ddd3dab5a7d7605 SHA512 2a71dd9433721e130a3acb9d718605360164cd296202d2d280cf40ba7c5c34ba889967776803101a6e8b9bce314de1ccbbc383ba96accf516bdf74af4df6c9bf -DIST firefox-127.0-hr.xpi 554586 BLAKE2B 8da027607ac5bf24fd2e95540c2f58b39aa2814c64335725ffd5578da19368eade6983d04ce86034b7a755a1f3c084ceb83255486d4f0b15e22c140f0ce18a02 SHA512 aaea7781d66e67cad4675231c6d0ecb5fc8d231cf63f45c236955688cec2e677ae5bafaf7113de21a9ce7ac473f3af4058d4bda54b5b03dc95787c7aa032a555 -DIST firefox-127.0-hsb.xpi 640683 BLAKE2B 5ec96635d5385653fb39e9a238dc5ad6f02b65cbc70668f95cc54562892b2cc6a562435acc7f7777d5462c4c4a81243cd55f287d8176646786b8074a9d167eef SHA512 8e930c6ff6ffb5040e268f117312a7d8b1e20a85107a23e4e22b8a571a9ed33d271dcb441c8b57f67701c79588a726534d67cfb0bd83cd85b559adef5e30dd64 -DIST firefox-127.0-hu.xpi 644728 BLAKE2B 16c035aae8e6429a0a9c786eaa44b04239b187fe7780bd9170874116b331bf70eac6b70ebf694f82f5626a89db3669033b756cf0f17b2482987b01ae1be590b9 SHA512 330fbc8a0accd7ddbd7d4357d59668764d6990d6ba8b299cc44fd7ae09d9110a7c492c705fc54b24047db2159dc3f5a4aa6ae732e05407147aa766ed48ed8fd9 -DIST firefox-127.0-hy-AM.xpi 648978 BLAKE2B 51303e1cb956573bc91b25218c0fe310978201b08c0190d70a160109aa390725c49e08b23a99a8b7c932c0d1db5538976163f5bdfe9aeedafcd19de0d8908355 SHA512 aba0a64e3723b4c12d49c8e465b4bb5a2337d37fb3235c3b4ec5e8bd70cb01d82cf135660e6ca9fee852c55ce0747191ed5b5bb6b1444b5f855915e054750e44 -DIST firefox-127.0-ia.xpi 605278 BLAKE2B b979dea97f1bbe24730c5ad0ea99bb94b5059ba1d57878b0c9bf4cf14f45c4698bcd3bc4936fe79c71f0cb03f9d1ae19bf19601cedceb4a373fe14b4b20b5e9b SHA512 8c8821106740633cdcfa919c2d6ca54ed7b613f8912dbaceea0cf9e962fc9a5f7b7a1cab71df75e8868b6984507683851cc4ddc9e6e7fef6aa52ab5957f28f3a -DIST firefox-127.0-id.xpi 572108 BLAKE2B c2232b50d3394639784903fbcc6200968c3e33f3cc2fe604c31eae40991cf1c95fed7e9af4dbc73a0808cb108ff205313515e6a05d7999061fd55f098ca86f4d SHA512 7e55d2166734cdd08297c9477abbf5460e16b145cda36a58bb373d67a55be26f83e165a42e8001cabd9ac20f14a280a4f054c10ffb87120802a370d3e253d23d -DIST firefox-127.0-is.xpi 611945 BLAKE2B 6bf6e3b301f9b8d403a10d12a30a5100f80ead8050ebc47949de9be530b7c916778450554761f030f06a0e25ea21311a7d934ea592ea809fd56bbb774a0a74a8 SHA512 432e1316eee73c73af2a4aaecaa382d0939cf567953c6558990cd76387978cecb1a708304e06187cf70e54382922dfcafda640b8fc1826d5fdd3948a25c63830 -DIST firefox-127.0-it.xpi 561883 BLAKE2B 6881651f7f726898d3b7703239342b2b39c2b1ba5d83fbcd17b59948b59f7c0f0bfc8a579d39457f90b02ab3d7b406a27dccb112036f9142d465ceb51ced69d7 SHA512 6e82d206521e1dea9cc084f94d0b07547950d4cd6173d9d68b6978f85058c818b384ca8e53ecec50507fced25f0395d741417bd0cf0e2a396ea74d5698edf9e2 -DIST firefox-127.0-ja.xpi 673196 BLAKE2B 4418f38dd1594d55bc5df92cbfa298bdabe467015693f01d96076fe26a4d4ca36b8873600c25c78eb3e26dc39224488d1bbaf036281a692fbeb58597982d0366 SHA512 2f527b93d81ffdb7cfc3b59fa94a30d4c99c23da7f2b79eade5ccbec91543d8edb7ebdfc5718a6c29ad2246c8e25e5f1db04388b8d9a0f6f8d87d086f84b2412 -DIST firefox-127.0-ka.xpi 658463 BLAKE2B f3847a407772a92d2a07e8945de18cf6c584e817a02eebba4c4e750cceaad40c6595555eb8b07d7199bd4ad2146bf3605b1e397ca5d2a3deba097045725ba74e SHA512 294cfea1bb5de844edfac357592e752f900b95a48244d2d640bcec52f9373f89261fb72f69b595273f748d6cdbf310b421c1cfa175897d8f6f92c0576686e9cb -DIST firefox-127.0-kab.xpi 602170 BLAKE2B cd19ba94b174b3d98687d75890c9762f522205b6c24c47bcf7d095a9ba44586773590c938c0912c334bc51c948f1eee7787e5d4030c23bc3730e77d37616e7d7 SHA512 7dc9e5bf493627c246179622b9ec51c5fc6919aa818d0e0d8a5a5f1dadb7968bd1c40301553152fbb861691f91c32513ce3a525143db93b4b08da17998456c0b -DIST firefox-127.0-kk.xpi 701250 BLAKE2B f0372cf2b44f69dd46ebb02a93d87c6b84c2890b2fa5fc60ba47d9773c1671ee39f8b420d034d0c36ed49c2f83641febf69c67fc4332c505a3bf799f7ec1b581 SHA512 27d17e9f890abe16f3cbe5e3816cd2ee373bef2ef13def9d7c54213dbf30b51656c93d22e8d239103bdf136e46b8690099d11485ea54e1347f05865d3685bbe3 -DIST firefox-127.0-km.xpi 523606 BLAKE2B 6850297b85f97b4d01d078649a01eeeb6065ca8993a7166b48f52c539032120e705dac7eed4cd7c6f5a57ccbf20bade38b18e58f5276d4f36ca4f0f393be7cf2 SHA512 92c9c5a7f37a502f86eb530be0d89dffa6e0df3a627b2d44766969e8d8619790c090d1e82a448e14c73f157f202025163f8e76b5b8ab02f605cc84d7ac202032 -DIST firefox-127.0-kn.xpi 489097 BLAKE2B 98d4646cc68aa60c8486c30ce1f67c5eab8c8dfaad4600306dd1a707474ab92e5b39c0dceccce391acad2b6f0c24fd733ea95f829d662c0ffb4ca9ea06812390 SHA512 5dc9f5739577fb5187981db6494147cf01a59bc05de1e7ad03f78e875c337223b48c00f6623dd2c04342c6c081e915ac257583fe2032ec8b943db9b199b64716 -DIST firefox-127.0-ko.xpi 655326 BLAKE2B d81e7f3f0f8321e9462b3725fe6fc04ec02cbb317b2d2bc921837325f79e8e69b87b7df3e189c9b7612f910e74cafcc2642379601c79fd47f6b6165c4064cae4 SHA512 12a851b0fc0156d90ca1e6709a1cd6732447415747d6698d0ff3ea4ea0b1ca2d67f03d90f4361fcf6aa36d107cf32d0cb7365f64a9c782fc7e2015318bdfde7c -DIST firefox-127.0-lij.xpi 481954 BLAKE2B e0b3541aabceadc64d738a58f2c1437d4383a2ec428cf0bb845d3e014f3373465f1039af7f8a9d63e4ceb7b24a977cdd91af37fa893655ecf798915470758fbf SHA512 67abb892ff1c30de980b049b5b11d2753f0206c58613d6a72ae2f9e15812a930ee2633bd481c3b463d042b5b6715048a82a7e9b9905dc639dd27dab9c24ff530 -DIST firefox-127.0-lt.xpi 570438 BLAKE2B 2ff3f70940c9e253b5c7ff28471aab04ff79588c6c260991a3b46bf6b204ed85bdc8e4c3bfeca726f1d7a020305c57ebef25f37bd6c7145a6cfcd23e154cba37 SHA512 3da9cd11e6bdc827cf7f6eff8030c91bfb6a994e04607f6f5aadda69678ddef77b5074aa85ad98b6b114f08f8acfb8c06229fcb454e5f460c86bcde6697f50d3 -DIST firefox-127.0-lv.xpi 571660 BLAKE2B f4610a2688f3b4c1b86b2d5c85a7d9d32b53206b1b0e5db703065ac3b7e0bd5cfaa2da4e8578b0c4cefb5128c84ddc384a7bb51a60e770d94234caf4d1d411de SHA512 863a508407d897a304cdd89a0168d91fa9e1e0cd1c7cabad54e920996d7d79cd8f66baf7e710062c8edaa3df309ed4b16e143731c69db71d09889e9f0704d77d -DIST firefox-127.0-mk.xpi 491110 BLAKE2B c13de45a333c93faa8e9fc59d0119071a0fbbc8996438817b97ad046472b2843a65fedc2c3e2e8ac0134c8e116d2e9258909b0a6939938e151bc520368a8d5b4 SHA512 f4d215ac72b60354693b4b281bbb97ae6b84b74e184f1b13796c04ae0956da34b95e6a19f162bb2b6de307ef771e7e289e2cdd6db0e8152b34cff1537106e571 -DIST firefox-127.0-mr.xpi 529924 BLAKE2B b35c624b2fc14ac18fc9c6f1f3a67e40f6b2783c16517709885576ffaaef9de39bf1e1b5da7c11484a52e15ca54bded561b0789f6c5120c870e7a306290df6a4 SHA512 ffc79fe119679b4fb9f9b6601566c82d8cfd83877ad767c2bad13ff691128a53af18ab52052ed5c7e5c655d2c5302389322c75525666c7f58e575c8db080a76f -DIST firefox-127.0-ms.xpi 447563 BLAKE2B 6839c2fa2c9edbd5bdbea5269b09f9521a85bdcf91780dbe6d07c25a71b5cb56466032328598cf6f02e3d7f439c950304c98408b3bc512cb264bdbc3102a5b66 SHA512 05488ca18d97d26f01dea385001a75b90b759bccce6b2b65d5af7980bcafabe537af96527c35a1b0bd8d8c3c276020af55b5c1504b3356c6f850969c5c3dd376 -DIST firefox-127.0-my.xpi 516477 BLAKE2B da6509b82939cfc0f5e6a47471fee6774a52be2edcf2d66c72f0dc44958ad7f8723b61d4832cb8df4a36b84caa65db6b2b56216d373616703559b204bb93b69e SHA512 9f1a78ea2995efb50438f157ffe960bffd01a36a1bf08cb7c0ab35c4ad2e3434a38ecd23ad13aa934b32591c3160ef956a0bf6df1120176f4cf6578d7f94571e -DIST firefox-127.0-nb-NO.xpi 602865 BLAKE2B 10a62570a2c549c27ea7c28226b2282db95286bf4b19cbb85784f0aab747d54ba235e42607f174dbdadee29661f29fc6c7d25531ee90c102486872e9eda01136 SHA512 891b50425bb1722596820a22ac899ebe4259d9dc14632f82d3e0fb0d0e30ea6b01d31012987dfeaca109b58101ce92464e37005c2d9cc19ce7926884c42bc952 -DIST firefox-127.0-ne-NP.xpi 508756 BLAKE2B e454e368f43cd4242e9fef466d081f437fe398e8207c77e83783c784fc84bc8962b3806f712cde87a5e0249578daecdef82362a9aaa63e61b9c72a22af3d3371 SHA512 0c6f6582dd7bb25e88fc164d66f90f469e1610dff27646a07aaeb3de6f810e151e3ce6ffe91d8e0dfad33b3e1cb2c8f99e65a0342555e1394aea9578d8ba13c1 -DIST firefox-127.0-nl.xpi 611461 BLAKE2B f6270fe6e2187cd5b4235062f1b704834255f1541a27625cce621c5cc8538d1c3e750be0d29b3f4d5ad0d46a38182f2103400a86fcee70559bb6bc9bf6174505 SHA512 64b46064785fa791adc1f5cb08791e56acf3efd3e4d3d8abc2f6a2ae3b2a582ff746ea7efd8bd323b7c918a4f09ed2cd0fdab36234a54723eb5284ec1c693893 -DIST firefox-127.0-nn-NO.xpi 603359 BLAKE2B fd705ef9339e855eca15723edf0e3015281b65dbe021bb89394038437bb6b55b22d49d245a3aa7c3ffba87b253d5fb62971173751c28a1ff1e700cf8068cb3fe SHA512 57d720e8244512c02f5ffdd86609bc9fdfadd82f0b31117cdf696a805036718bee60c9e876dd7db11c11bc2d4e4d7277815519fa0b92478a5c453c9cdf301386 -DIST firefox-127.0-oc.xpi 608809 BLAKE2B 5c3e8a14fe89cc592c23180cadc55e781f6034cddd163af65d8b9c369f7abe04bed2e28d44ea9c7e2ac2705032fc3cf6f04d35b870e8cf0ff0c5f83eba44ac21 SHA512 5aa1eff7b8edc15a25fc3bcf1515c96896342427d57e3b35394ad20d1335fc85eb52182d7307ef166158f32b56947cee8c4b1e0d2f535b1edd451daaec15bc1e -DIST firefox-127.0-pa-IN.xpi 687025 BLAKE2B 365ac2c0e8392155ce3761cbbd658fbe1006e1b15865e08bf0706104ca6b97e8ed8788cdf1582c6f540c38aae3ab5106b107caa48018e923983b81aff8b00992 SHA512 0db1126e69cf362497951005fa438289707d8feb98de159952a1f8fb3b8001d0812ba0bdca5a09f08e424727feaa710676ea8dec30055c4af7d24344972175a0 -DIST firefox-127.0-pl.xpi 631911 BLAKE2B 8fae3b4c6353b814fa4fa2a39b135aba17f7f33cb2ac42d2238194b2d3c3af8eb96d53527308b91c5afbac331f962d9d9324504ae09c5200ba5374e7e5a3ffa4 SHA512 49e24673ef8090f4b55ef869b8d05ea9fa8ece70a92b9abafb4499adec6681c09f2e88a2b4b28c7a66f382ede6e0f565d4e183dac79f59564b1f2649e03cefa8 -DIST firefox-127.0-pt-BR.xpi 616114 BLAKE2B 89cd62086a80545c7292223a3345969ba470c74b48dd58f952239c218717263acd8d1df69b524999969537732a47fc038225a30893d06aaec7b296235be8d9b4 SHA512 3bb77f8896bb1eaadd4cae6ab9acf36114f9138d250e1c50e62518a20c0ac198f869ae2d2a5186a19246bb9c46877faa63927255376630a0f491883d9a88ae50 -DIST firefox-127.0-pt-PT.xpi 622360 BLAKE2B 587895d9eafed5cd0e30d800b864c3fd4114214ce4b0ebf4349d0e2b0a2af0f9d57ccd57006f7f477fe3a20c3e7ee95b3cfc3769222818094977e5dced515df3 SHA512 364a65d9561eef19945e9771714be0e7de822b1f6d94adfd4d1f678f96fc0d775c667c1f1e6fadfc9054977e27db8d1ea55fdc8369c5aeac75e5fc939155d2ec -DIST firefox-127.0-rm.xpi 612109 BLAKE2B 88889535b375471f1df59bd6ced5be2a71858f4f4226bb4adbd9accf4d4fb8121e136a68f733250b2d01aeab264890e9a02fb232bc414edc020ad0a5c1c3ec3d SHA512 db02ebcf247caa24b5ed7c36c4d81054f308db738ae1292fac39ffe18496a9b0870c62fbaec2c061d765b97544aa6585c63b4fe87ef9f9b02db5a261d0b27c3d -DIST firefox-127.0-ro.xpi 547534 BLAKE2B 331543ed23e1ee53ba132623a3d2c70c5409eefa91d0602e25b41329e008f9709efa0883ba6b8eed1a980624ea264073def33eb17226fa3b5336b36189d92b29 SHA512 5f2d55a898924107a3ae16016820632963de0cd335a7e8efad2e27934e701c2219d01f611c21bdb7977c557848279f1a8ec6780fa705133693af71f557f0d7da -DIST firefox-127.0-ru.xpi 713591 BLAKE2B 98212cf7d4347a6c033555acf51155e3bcc9b3b93df348115e3da7125cc000f1ec41261c6ec12aea14ddd8ebb892ad77f36a2dcac35e8d40b03c4f6fed15101f SHA512 581c5e3f6818a03ff03a27ba6b54be4e44b7e4930b459f5f95408aff72688246894a5e17c64814c118fc6f0f8a00ce633b34a320a562c5affee13923b0dea9de -DIST firefox-127.0-sc.xpi 582657 BLAKE2B 0637d56420164ff00631dba2b47c9095772f77d2f287676ee9280013f072e72c50ff4933ceda871d9627218b63f4062165a3ca514f2b88b02f6eeeb3591f8e7c SHA512 193c6fe02f05c1b59da86fef0e41b1d4cc0b956b1848a1f6978742736294af284c3e695e15391f3ca69b80e230eae41420229e88440cbeef4355cd1494516596 -DIST firefox-127.0-sco.xpi 509000 BLAKE2B 82ec7ab1e547aa4d6716ed752ba732e1e368b2070a860eb6912b3c3090cb0af6452835d1d26c799adf5e4dad2f9e36198caa7c1b4642bab88b671f688e2d4e48 SHA512 8fa15916ee4a84f73511bc27c97d9921e12ec52e6fd50637db44dcbe6d70e4092995c400b7b7700a0527b5ac7c90b14a466efe9ff83602fa3796f249e105181d -DIST firefox-127.0-si.xpi 603746 BLAKE2B 4a9b926f5dc3b1dc8c9191229b01f60d9298be5c382ceca33b99928661e0161846c7369be2ffce51e3512bd8d5584a09b229021c9d011ebd69b7f2905300a804 SHA512 42f13c17551aba1c5ee6d7cad9eb51c58d217d9f20cd8f4d68f95214bd7ccad2f97f7f022f68e13cd141a9bf7d2fdd29d5cb523a4a6e623d6d8f10bc49f9f10e -DIST firefox-127.0-sk.xpi 646191 BLAKE2B 3729a5e41128c6ee700f1b7ce4c13ea8032dd2518485be4c820700eab3627f19e1869bf1f3275d89f86e5e65303d7bf4c874f167692ff9510ba9fadbfc7e49a2 SHA512 5f4c8a6f565cee0f77bf30480032e9fc9322811ae3809efcea278500fe8ef68398a64ccc873f5a464be1c57e5ec35eb2cc6e13a64246790f70e894ea0127fbf2 -DIST firefox-127.0-sl.xpi 612538 BLAKE2B 7d838d054fd4914c2dc558962c170e5b08f2bc27786648c58c73e64a4021b386841632f0f2f2260f9d4ec7ceb2a671bfe5c6510fe1c57528e4c46b4578f002bf SHA512 bd785d1dc1ea95f78ffcc3664195734a9889497b795c5a9edc223420ad9f2855f7f655bbfbb27513b2326eeecf897334e8a5f285f9354d75c14f299964d7cdfa -DIST firefox-127.0-son.xpi 414286 BLAKE2B 86860d36544abbe28d81bf903948b0a09accebc69ec17f4002c37bed8f7e7797a7fe07f1bd53c966ac083979cd27b776844ba4cedfe305efa9e5b1a105916cd5 SHA512 20142c33de365dbad83c8b33ae6b1d71ced589d8264e21a265222304896e3f865e610e70cb705b8ede54488aeb0dd84343ed80afc3b409e1d36c914c2d9ff7bb -DIST firefox-127.0-sq.xpi 632504 BLAKE2B f2d8f4d42a9065f2af0181e8a7450a25d9aac5a015f62984bdd5513b0986479d76ee83d865a7f7de4b2b8512a753137cfecadb8e49bdcc0b827b6398f4aeb785 SHA512 5fad347afd10979c5234c7b008931807f6917e6dea7b7def0c89f6175a9f02a14741cda6b518b24f693793f709eb70649bc9d10d279f616c4dc979496070326d -DIST firefox-127.0-sr.xpi 637082 BLAKE2B 07ff268873bb98a1ce91557faff3fd0dc7271bd591821270e206ea03180e46abd265ef84262a9025dbdc820c86f2263187c51a931134a730ef4ff84f54787462 SHA512 651148db35f3a2cc498454bfb6f5b5b84c4cb1744b2978fdf631016df9279213ac96046c6215f2960685d657f5ac4f39381bae7b4a10eebf1f2f32ca1dbd9239 -DIST firefox-127.0-sv-SE.xpi 613206 BLAKE2B 9fa50b6d266e1f04d86210ce88088dd71ed5c991f01ebf21ab7cc3c149ba875e4cccd91d0d62dcc53cf0eeee2bc89f73c5fbdb184a2bcf318e061916b58b9ea5 SHA512 f32f4ffeb1d902ffe50cea883ff171e056419d8580e1791f254291244a39f63193c73f1d68c7e1597b36eb17228f2cdb3ed2c1a86f1f3e0e73033906e44874ab -DIST firefox-127.0-szl.xpi 524214 BLAKE2B fa4b8ee9bcf17299e0d9e40a366df55b86902d36c7181119b9f890d09f7aba60f2ccc5f04cc36f9a6d2388be337610dee37f78d9fd77797015ab0585dda9d546 SHA512 ddc150389f1d718f0c9def9416b5035535a6fea34ca3cbf18d59c9fe8a05d4827538c0dad806a847ce4a4966bf07a004eb1802232185ab4facf8110201a8213a -DIST firefox-127.0-ta.xpi 505373 BLAKE2B 34936721113e9d339450c3172391294ef3f45fab2b0cae2442ff258a0c9b38f3a7a4567e42d30a3cf9ec8c3615cf6243f16b5bdb2f9b52e0932759610b9ee016 SHA512 a8f99bf8b08109b6f957009595026ddc452b21f07e6c82c708e57ce346102d0f45b8650dbcafda6ef799913f57826a1ee2e6d0f7ace015ec7dad91bbfe5ecf1a -DIST firefox-127.0-te.xpi 558856 BLAKE2B 7ffcb9a5294ff6f229dd56da4564445d35c2e54b498f82ef674cd6577a9953df12d45dc1292b13e1ce7e8802975bc96c50419d680adb784306c5fcac51f8ed7f SHA512 e073ad6d5921b43b2d453a65f972f2a363f0628950d21f7fdd48262707bf35c59bb53fccfbcf69054fc03f2dbf8b7b33c3a3ab29f592b2621d68a32a1e388aa3 -DIST firefox-127.0-th.xpi 689038 BLAKE2B 5f8c10cfe198f94ae8562d2d7960a66b1f8ffde33dc3d3873e4de567f41c9d41ee29bd753ea9fd643b17e57a61ef1312836cced0c816e3c9b49bb5947f069513 SHA512 6612aad05f8c1b75094359556dc985e01481d7449896a7df6a1e18133a8328196700b96a207c3a6267c72e0e902f615886a3208e75b0f10f517fb5bf933e0df2 -DIST firefox-127.0-tl.xpi 531994 BLAKE2B c5ed98853783487da470c138be42f059d1a202001d59266da9ca81fb4a014270f2b828d33090217a008117b5aff3897ef92dcd7e293312042ef8b77fb37b96bb SHA512 7484eca4f897eabd228a1e27a78660be1fc8bce665dce7da969e8ec95b258fc7c977c8ffc699c608139b73d01d6fbb1918257c8852c43b75314c68cfd3d1c914 -DIST firefox-127.0-tr.xpi 626625 BLAKE2B d2e56bcf0e50219bac3525cf523b8e3c062040b3c819ca398b5fa6df6899ae9023dd9d9bb596bac449f4e17a171516edf01418d62770661d89a396edb901bc78 SHA512 683c7ac6aaf26710230289668029820b30d8e70b2ae33eb2e1cd419a76374523f52ee592f83cb804409187ec0c03313518f26115176d5491b53b0e630ed28a71 -DIST firefox-127.0-trs.xpi 501859 BLAKE2B ac28d51bbe425f97e3fe47485f2625d0dc2af100eefa57d5ade9f09c53767acab95164a5fb1930e2a64e17289f74ebc5564e8ae750b2b63d91e764c71253a2aa SHA512 686f201435bdeecc7269db28f5a288e8abcb6829b68aa0ec4850528002c56f7f210765ae9ccca63d3f0c6c88263205b0cf3c33ff5e47842bd733c59bc85bc6f1 -DIST firefox-127.0-uk.xpi 705151 BLAKE2B e2646de7669a8805937f63b5d29dd65bd69c2747d09d4d8b6ab13a03f715d0f327987f42ba3ded9593abf2f0ed7d55696af0d9e67b03842e8f4537305ccb4d9a SHA512 e1deadc58a43a79bf031cb5db34fc8f955f46e195ae51e2a36593ccb3c6d8fe927585b2662ddbf9160383e2727849ce01a00387289601bf40f64f6c31f9e6dc4 -DIST firefox-127.0-ur.xpi 558317 BLAKE2B 84539b41a2dc52314e75bcb4a30694e65ee75366c9d9a701eaf07b03dab4101a2ae9e1dffa99b54113d67870f67b56c480f047e4edb8a3ad699fa0ff5b6fbab3 SHA512 175ab21d415310d8b146149f193a4d300662c793817db46d24d928f584c27ec4f9c18533309698c6afb44f9635630a15e261b71a1111bf39c15dc00f755f3ca2 -DIST firefox-127.0-uz.xpi 476585 BLAKE2B 5c9ea24c52bff02f2ca5715121d0955f77ec3ddbf07bb1b2428190170718358c590fbcff5a476d6b633eecd29cb64ad805bbe1bb8a585d4d5558038bbe3f4c7a SHA512 e53fa24c20851090847eaf8b5fc206b3643be756f2ccc92d249d242dd9eed611765215d7562780bb2c0851cae9916d79ff978abc353f73a5de3d75484295689d -DIST firefox-127.0-vi.xpi 650528 BLAKE2B 5c32cd0370ba1e65ffed4d86acf31da530d99946dc0af5567828cc3bd95a7f98be775f75fe792334b25fe776f3e7888e925857f3e3ee81ec8a00bbc477f1c16a SHA512 e97ea727bc119697b78e3f73823ca29c5a38fcb7cbd21cdcaca7f240ece1fc09d96856ea53d6f26a858cf5e54975ec6ffb2d191a0a2028dba16740ddee7b60f2 -DIST firefox-127.0-xh.xpi 415014 BLAKE2B 9163fcadbead1c3ed41714bbc8939dd4422f637191e98652d1123ff3255d0544a0b2795fdce0eb509fac6d600600e247aab8543df8ca41d2b1d41e31b94f11cd SHA512 f02519432606b77f87a187c569e8321b10da45861c9ad63bce1224d3661683629b6d15ed7250e1ec7c5fb5e16de507fbb4d0a4142fe3009b4be75b218a608ad1 -DIST firefox-127.0-zh-CN.xpi 650818 BLAKE2B 3fd8643a0c395c6b2834330998607b65f5ba1003bd00a46286167ec98e6899d755d5e3ccdcc1b99e514612f921366357250f1d5bc176896f5f3a0fb0271ad884 SHA512 cfaee59aa017e3ab2673011872164705a2bfe1ccd77a313f4ff7f1470e95d18d83aaaa46c8f379362f64405fcf3cac6a28895030e7818abec7eaa90e1144acd9 -DIST firefox-127.0-zh-TW.xpi 653089 BLAKE2B 4139d9516b2740201a0ca6276494d5c44a15aeea6ad9e19d64747f1bb41fb913bd38c90b8d9bf1b7bb9ee898a02bb0ff6103a6da953ac838e12f84a1cdb81f0d SHA512 76b17cef1b9e6f2dd9a4f3ad5ee7cd63e75577aba900cf62df26daf182cae865eca225800f861dcd5084261c3054382493c24451437a67ecf8e7feb56ad365f6 -DIST firefox-127.0.1-ach.xpi 461923 BLAKE2B 396e57d41a3ea570b3a06d0e6c0ed0b7ed505f638203d0b7b3156a828c9fedb84fcc60ed0be53669e91b7763f8c075c45ebcc301898622977f3a4a500725f5e7 SHA512 e118d7f8ee6906e2c79ed875270e0ad2aef76f5755df2e208a6a5bcf12fe27981c296d747d396464594599381bb95c6de63d5e5360be357787829d5b29f78f6f -DIST firefox-127.0.1-af.xpi 415366 BLAKE2B bd6737c63007d231360300ba873aa4f24ae04415c88c7931e9da277ceb9892ae30b82528ca1b5cce1ec8403c6e40df073a8cfd06d2655e7c415ce7fc2e6eee70 SHA512 3341b172eb6a97899c019de614a20ed8ac3608d2fd8d95aba48fde09be255a6ddfa1d84a6c38d293ac89cc43b367eba865796b6b8ce5e94ecbade62a68bf5a83 -DIST firefox-127.0.1-an.xpi 503720 BLAKE2B d51e0f454608cc91bc9da13debbde30e2771b74defc22138e4f300b410326f183b94da115cfa3aaac46fde7a64a2d8949e9dcb45e58062c2bc5753cb6089c2d5 SHA512 a2e7a7a603c051655b03e0e6786e4b0fda3db40120f60530fed03571db7464c4b59953652916b1ad631231793b603043ca72edaec2db4f0a73b4856413326fab -DIST firefox-127.0.1-ar.xpi 607964 BLAKE2B c0d8f76380923c927541a5361f175339aa42793c41809f0b54b109364308f80fe47d144aae507f931cac4ed706fe5fe95c7e5985641f0bb45e916ba0bd8d8db6 SHA512 e4ed0abaf148854f2d9335dc88a08c4c45a8a29f217e38c992fce2997606b445559a41db86d388d0b07e7c00dac8d97fdbbcef013a0ecb19b3fcf63861e18a84 -DIST firefox-127.0.1-ast.xpi 494050 BLAKE2B 423a2c8a0252a78f469f1f233ca775c7d78ec5b4073fadafcd0242dd51283eac576f4968b8a8cd09f7c87388f15b77797c61d7f1d675125f2249fc274ec831a7 SHA512 1e6d87085fd031d7d175fb691d221becc2f8115a2be9fe37a977821a3bf76ef5291b06cc3b6b1439f5f4e0910d36e7a5fcf1e3552b87c50903569e7a16d605b7 -DIST firefox-127.0.1-az.xpi 488600 BLAKE2B 4b0f2af724170fa62d4533013a19b0e5baf8dbbe99df1e0ddd56ca2779d548711ae7df4aefe4f82004a211888cabc18f41d6610b9a6dfb31a19dc47fd2df9751 SHA512 e5d4de73a50a1ea85710ec5bbeeaf47eb82bfa673ea41b706eb675a8c252d970f07fd3a2c54624bb457a7efa1f09288403fedf0d641d65e89285d34cb8f3abfa -DIST firefox-127.0.1-be.xpi 708724 BLAKE2B ac2f1f0100e3434a01b555295bfb45cb6e993c9f9503c32b260982c9d7c70bf6730a178381823a21570c71b6b2cd0b4a8ea848b95a173c3aaca78e942fa5bfdd SHA512 6adae62644069094d1feef52415eb89cac2743e61c561e27b09d534369a4592a2c5ecfe550ff1683720cfa20fa65994bb186a4df8fa7daee637c584d8961cde8 -DIST firefox-127.0.1-bg.xpi 601638 BLAKE2B 4a9d8912735d63e6ecd1bda7d77e4b9ed4972f06bc4c959c6bebb9bab2202b320c8338ca51e4b957ce425773e76f0e8df86d4756466327d19756e54adeefbd75 SHA512 8aa703f16b1c8b7b7b0a1cf2a4b8be98fad9862635f956604b460e1dc4fe1f30b3bb97c127ddb4fe60f517c89c14ecac22a2a0dc5f740de0195562c0f586e56d -DIST firefox-127.0.1-bn.xpi 579347 BLAKE2B 0b17435b6c27a4c78fe2d9df6007173a988581028f49b49fbd379b8369e53456db483936a00daa9b10deadacf477a78c3826c38b71ddbff7bdc9246797f50a93 SHA512 ec54959eb66b301e2fab7efc95629b8c3e33cd183394c22e930664b3116ffbb30b7f365619b74d7b1b59f400e999afff2622a872e6ecd518078e6b1d7d1a2c3b -DIST firefox-127.0.1-br.xpi 585926 BLAKE2B b667733bed39ad335143089a43c89beb17b5fe285826e8eaa86728caeb9c0f235705f2a0b642849e683c2c919a2221b185032340879a6857ca3a017afe025437 SHA512 2422534f65bdc449797e4b4f071caf968bbb37d43946326cdbfe77c1d7904c4ceaa919105a2e6edf119763c37d8c873e8aac532d0ebc8df8582fd2b09686cc8c -DIST firefox-127.0.1-bs.xpi 499346 BLAKE2B 95598e53fada1340c9d79fff4afbf8f0d243690f7c88d6d7ba75dfa4ae7d7486ee3d899dabdd67229c8af31687f77f5632390a5efcab9d2e3fab799e3d4c81da SHA512 682d85841c86582e6f9e28e038e42556f3f0c36d42f3e0c72c57794cf9cf71b7a5de09918678b5dcf8552bb28ed44d920cba301981ef97167b0ec4ad73087833 -DIST firefox-127.0.1-ca-valencia.xpi 544019 BLAKE2B 5cb6115eeee28daab91e7df56458c1b3d838841189132c9823fcee179d1ce42688058146fbaf8ee47d6246a9e0eac93bdc2a7a7876d3c94e9c5818b606c6bce9 SHA512 dd28c24bdaf9188ffb04022e6ee52586ccb3e6615945adc07cfae7328aab6ff24be7dcb207eb0797943623315da33d6416c34e30bf7b2e3cfefb3a50c802158a -DIST firefox-127.0.1-ca.xpi 582808 BLAKE2B 8596bdc340dd4a5bc8011de862e714baa27bca5d03f79a2e244ecff64415d61da8494ed0c799a4879c6c2579477b9c61171f522ad9cca8372f95aa0e00d5269b SHA512 8f6544a80ebe4dafc96f69df01a9d5f77d05fcf67b543d44719569f646bdf967b2a58bf1f3606af9c015e35bb6dbaac9b174569753e98b2740d2ee05a4e9b6a5 -DIST firefox-127.0.1-cak.xpi 590497 BLAKE2B 0186e30e9016f430023ddfe8df79ce05065dd97b9c5191227fb41ae91d4215ba22312e98502e7511ca3662133789a81979c0b976e2a4217af51e6b9a41486288 SHA512 278be64290a566ac5d2d09cd88078716868382edb1ab49b63d1438ac781b239b5698110847803b5b5f7a7c86e54f00ff2f39e4054ba949d1c6020d32bbbc00c6 -DIST firefox-127.0.1-cs.xpi 653262 BLAKE2B 42248012d7e0e99bac7a7445087ec53fe36852a8cb6d10fb60b2ac8e7cb7528ed0b0005a4a0d95dff08d9e4acb67f8925852233847f252bd0076ea5dd64d62bd SHA512 63c93d9db643cfc5c55f890e420b33ed2669b10c9842f41fa85bc94636002ddd6fbbe0f2e447b767d2001417cd2be882206a2a33c10e36b13b978be3bfcb706e -DIST firefox-127.0.1-cy.xpi 618434 BLAKE2B 6f67515d6388c7efcb3bcba12e8acb54c33bf0dc32b049e67ce275dfc47a829f1afede19767b6ef25928a52c77746c63b2a9495fe6aad2409b3909d5d9b0f544 SHA512 b0e623f2fb20101069bf847394b256b8de2d35cdae2dd6a1326caa1467c456798c06ba58889f69b6ad384464012a56f5524b7399ee1a749a9fd7a0c3b9941eeb -DIST firefox-127.0.1-da.xpi 606834 BLAKE2B 75c3649080c5ae70dc6f5852cfe25727638d8965e019bcdf5f066867671736949eb48165248ea95613a4a1bf50238eb25c44962d65c72dc3128dd5fb44deaee3 SHA512 e03b4fd10e56ead89790d8d133bb82d53ed2cc29226cd634a4f3df5bec02a80d63ab3ca0ab746105163656984a4cfef06c8db7db7f7ba319eae8bfdc51c2f25d -DIST firefox-127.0.1-de.xpi 628178 BLAKE2B da4aa0cd6b5cb39c3747d2f72ad1fa24b7dfe220f7ef42ca40f8efc977d8233bf1effdf35584fc24ac016d0defc80bec4d142efabb0b6fa18ce8514343b081af SHA512 8b6958d0a7349657d596198c4da0de36d8ac54299557220342fddd7ea2bf010d633c252c5d4f83efaae5d69c35742dce43d1d3ce9d2ccd50166d15d35631d8b1 -DIST firefox-127.0.1-dsb.xpi 644574 BLAKE2B f29bbf0e406650f0a3f6fb1df3de4ae181098d4b667a90680c53e8e27352c88c024a6584393a970c3756f6769115f30278fe62518bc51c0aa8c92cb86847f6b7 SHA512 7d61a778e6a1bedcd09a81711aa37d2180c30ee24cfe0b99512e1d757abea48d1431cb23abf2cac3120b3396a465774fe498d9d6b51b95685dd57c064a31e57b -DIST firefox-127.0.1-el.xpi 726239 BLAKE2B b1aca2c48e6859d51fc20e31e0502a4d3f4f1bb6226cc1e6682d17a5d680a3a900360306c5ea3c6980a1174fbca142e311808851e30cc86857516ff0c4bb94d2 SHA512 4c85d1e639711d2c6c333da02ae3da0c1d2d93e9d52db87b80a1d1be57d2e30a807401c87bffdb6ccb077ec9ebac58ff7d371ed05d86f2f973257d65c04fd60b -DIST firefox-127.0.1-en-CA.xpi 579150 BLAKE2B e2f738c6ef5589d909c327cd366b35b7aafbb9663aa0dd1299d95043345e4a8ca8d533e062b3558b80a26ec5c002faeec3053140a9fdcb97d1f782f4979d046e SHA512 4d630bd986de0f14e3c2488072c1ec606d8320e19f0b06cc73be6751ef131e39f53b242b970367dee080870294f8df36265f066b2c3c7d8e71002f991454a2ba -DIST firefox-127.0.1-en-GB.xpi 579697 BLAKE2B 665dacfb8065b46f8dc0e709be3376e82d56deafac230642464fad116fda2f8729be3f6cea7a6923984cb759347f2ce27532da3a939825f10425d7bdd1d54288 SHA512 32f4d17bc19b89d21c42569783e0420ffd08bae0b424d33533579f5fbb38bef85b39142155e608d9f4d5ee054b88748bd4891ec097adea55db7d070701a64031 -DIST firefox-127.0.1-eo.xpi 608820 BLAKE2B bc3e38c8b1fdf6c445020bb27811d88ccf62922d1b4c9b741794eadb31a20e7abefd150853329734d8c2416bd09e1a0e43ec103a6eca262a391f77bea658b3eb SHA512 bec46a2d8eda644abaf045c8e0b405a5f6d33089b2c975d01146b283df20ea952fddf8c090df377fb820f1a8d38ff1f593bf30a8b597470143ce1a1cad490670 -DIST firefox-127.0.1-es-AR.xpi 622096 BLAKE2B 661f325a881509cfca285255463da630a46049c2d0c7431e9f7936cada95860c04dde4c2c5cf4a6729789a1c9f5179c61e8f26effb795f988e04151951e17040 SHA512 e0afe03284a5ebcafb157a83649979d4dad71dcdbe906115dffdf8285040de243dd164f574667af3131eeb2c7db09934d318214e2a3527a7202726a44973ad88 -DIST firefox-127.0.1-es-CL.xpi 621305 BLAKE2B 1430432336bb5540e94c5bfc6aa65bb638bcfcbf0e4250c3dd72b1236d6e5994aa38efc927d115edec9dce45e825d1764233ef7e267c0d26907e1cee120b6818 SHA512 7d105aa9f3baa5ab4fedb0c2e3dc2ea89bdaff35305aafd557680604c3777e2a93572381671add7777c8664b79e39e716ad13320d212acf2f0cb258e0cdea535 -DIST firefox-127.0.1-es-ES.xpi 616134 BLAKE2B 0d33972ec8271250a6325d59decee5d9925ba316ba51413df39c17da5f0f198807130bfcced40fba102715cd88d2e783d5a388536479e41ac1e9c97aa4bd24af SHA512 8db8a42e14bd1018dc5f4372048a344668cfa6a17b30715f5c0230c264e9fcc68393ac4e80e2d1bd1402f875a57895e0fb1839e16ef57ef07e854d9041cbdaeb -DIST firefox-127.0.1-es-MX.xpi 589236 BLAKE2B c0dcbd44df9f51b387c58a91b8d0c31554b787d5cc2d036a1bb69243df2c8cbb45e2ef5aca496bca1e6c41e2b1beb6cdbace9085add2233875eb42d7a55f4f69 SHA512 a21eace34ca1fcb3c305b7649efc58c80d0f938212267245e1060084d39bec18641255e9340d9ee8f4c254b2fd1bba20ef5d801e4ed691fb8070b39455b04bb7 -DIST firefox-127.0.1-et.xpi 537275 BLAKE2B 0a0367fdd045da48d4b8a91b2d0b860d64511c5527b9978aebbaa8e0118ac4a38f54936e2170923f43e92ea3ca4a7574994aae34a85ab1d19e1650cbc6fde09e SHA512 2a17e7a5d9a509142c04c02178ec2f0aedc6d377ebddc2b434182577a6b20d319e3f1c226f7d42701be8306bbf2ba0bec30940566b2fbe90cbd834df1832adbc -DIST firefox-127.0.1-eu.xpi 593772 BLAKE2B 22f8a6aff00cf329f6352ba9e9a0e93f971af85ca1db40fe7f9cf1c6778f16103e4d984db4d0dc587aef939f924862f17d7faeddbf367667a5f00f55c8f70fcb SHA512 62808cf41e11aa322047d0cdbcc862992183017dbb19f22c08461e4f337279700f5fd9bbae3b794820e8844ba6e8738d32b99712f5112140a69d3c7474687506 -DIST firefox-127.0.1-fa.xpi 587844 BLAKE2B 720603d2693ffbcb928b306d441c8780c8e9eb0ee4756b8b84244bbcc56d667a43e259f911e8cd7c9f4afef8499cec3d572472abc702be62f2ce1b3dfbe33453 SHA512 da39e8930d7e8c0b80d98f7319d40411b72f05662b82ab2801fedf8c081f204b7c039c3e91dc89cb0f7c7b5b8c85eeeb45db994c087d2d9481e7f1d3c1ea0d88 -DIST firefox-127.0.1-ff.xpi 473936 BLAKE2B 51d9f2539385648810d1df6cbd9232a04edb6fd2a8ba677b3f17503e60087617689499740aa0c314826ccf21590aef221f4acf6e64029e398f8746a8717eaa69 SHA512 62139fb32ca03dedc4e420c35895aeda2305ee0d2812759209513d37251ab715bc8b8bfdfd205ae23c4e9013e110ac80e4dd5b12fb62fd954d74ff019cc53d50 -DIST firefox-127.0.1-fi.xpi 601840 BLAKE2B 05f9c6d77733a48472c5de138cc9a607c230fba1c9d923d71136e75afe98916008b3ed94433cc81216758ea4675d8645eda3b2ddb379913030f2fd4554135789 SHA512 ec538f1e835f5884ef7e27ee7f7a567be028133072f7579c9209da417b43a835b40deda96096874e14151ef66de69dd633b51c3da86a0807c89834ae5b5837d9 -DIST firefox-127.0.1-fr.xpi 635003 BLAKE2B c0b32892aec86fd36a2078b306bed0c79d71a8e1bb04c82d8ea8b10ef4672ef84c377e8a1d14c098315bb8a57938c4a80d62c052873223c52f9746370282a22f SHA512 a548a4261c97ad446371d6957c5b39b8a194eb20960c00b2dc115980622b4c550fcf75e49f7aa18683b76573df151e2e6af7f3e1b59cd4ff67ea599a0ecf3f33 -DIST firefox-127.0.1-fur.xpi 627830 BLAKE2B 90e138327ad52354d5943be60db75bbcca169006f80f2b6ef19e2a7cc4a81de7ba2dcbb4574d6be2e9d77ad5e142c97497f1ada217c8ecf7242d443dba549b22 SHA512 93d8687a7fd190a4d67fac959d7f7a07751d529070de3fbddfe1498a47c4bb391bc111699e88b457ebfc53dbec3e5657821c28c4cd371f1a16e2fbade1793bc0 -DIST firefox-127.0.1-fy-NL.xpi 617752 BLAKE2B 4621b6778e86a83d0b97488cc81efe74fb77e3fb949567b3a33b8117202ded0f27fab95db01fdd5d55d5d0e79020c725361a2a72702f90377895372818141c54 SHA512 fe1663282d544c11f42be0b7e9d0af9e86ded8918cb1f903eae1d547b8706d24aafc2481a1b7044b64a7ab4f8943b5d2c14277cf2c22d0e430b01bb37ccb06e0 -DIST firefox-127.0.1-ga-IE.xpi 468830 BLAKE2B e791fc9c2ff628258ed35dfef13f62c701728679f07bdbddcab08b34e54b256dcb2f1787320d00ad9285bd49af47bbe6c892bb028c0affb0b09221e6d9511fa1 SHA512 e3db7857f36687401146320b6b26feae9d83489db2ffd480e20a15c9125d62afb1614a680eaad1f847aa35e1b8983f79950d971c5587983b33b0aa07d82e5086 -DIST firefox-127.0.1-gd.xpi 594377 BLAKE2B 8ab56b2235c5739470a52fce35ce750f1c0670703fb2c1d16382aa43668f9055cd8594b5bb9cce99cb36bcd78c8ab4279e896d770870026726a5dfb892af955f SHA512 dd5818a918c629d27b1d1ccb9f5d9f7ea599e29f9d07304b1d51fbad79c316be82548df53a00e1ea4a1f6e13427c4a9e16494b1525537dd663ad5301bf0c63da -DIST firefox-127.0.1-gl.xpi 601873 BLAKE2B f773c7c0ac79b8312c4c101ba7f19e1c1535785ead3cd9df66bef3abdf7ee8db7f5c0b5f0fa2b9302d8abc4cc7c5caf5e1bb5f0c2ec06f3009b5c99704282d94 SHA512 bea27cf054b6c7fc63abc81d95feee2f0a264bde0bfacdeacf0f736bf5e54db0f86e0a26d8b309673fc126887fc493462f8728613b446f1f051d394309dea65f -DIST firefox-127.0.1-gn.xpi 633215 BLAKE2B 92d6991e87fbcd2b0d40f8cbab14a4fbd9e34322e5898bc33f1c7fe0e7dbc99221aacc5d3846fa1e7a3af56ee3696f16df258432e62df073b16ac7b0072f2990 SHA512 b5b1a68ecb2c19497704f88382dc91bb4b7890a8bc87c7723af21a66e1413e5e51dfbfc78ab3fe50bbd05340de68fc41629981be001dec3b0808e2d8c7761197 -DIST firefox-127.0.1-gu-IN.xpi 525153 BLAKE2B 174ab91d9a9c2a1ef06f1e164c07a5d54573ffea11570480ba8532315eef92a3a701b9c89dd9a9fb174a29a5ea32066fecb1eba6167deb861fe9551c2347e336 SHA512 e3a987d9ac92209df8ba76f3774e9fc569f3967019ccd0dc734b400a5bfd21abd584091775f70e5e130236d2b2099f029b64de7d5478fdac5c6242625ee17b5f -DIST firefox-127.0.1-he.xpi 626714 BLAKE2B f3899276857fafa0ffcc3b21e9f01dc67f1cb4c81e69b7493a72586c6bdd5df76b7bf2a1979d014859f766ddd13c55552baae07e047b5609468f0716d3f1c591 SHA512 a3ec567c199fc15fdbdbad308bf61e48fa09c3b783e345678ff203a362939d3f22f0a5f81045bc731c55b61b4c2ff8a0e8f7afe1bb8b327c4c8499bfba1477cc -DIST firefox-127.0.1-hi-IN.xpi 563352 BLAKE2B b382b2d34c91b66201076c1282494a71cc9b49f8656209ca9fc890abc87f006baafcf6d26ab7b0dcc1f3f43345348e776f523e9a2d385a874920d0efaafac9bc SHA512 e7f719edd6bd763f585cdd918de5e1b3feb14b89aa88fd9d9c4cf87b89c34dd734e3d6162cc668d8d6f34e20cf26d492557c579257224acba1d393b827f963ad -DIST firefox-127.0.1-hr.xpi 554577 BLAKE2B ad6bc19e96779a771a0f1d9ec021c85d05b6d57acd5d463b915a9796974782a749401ee993971a301279b58bef7d1d14ff908add9dac41cfe196ac131ef8660f SHA512 ece0c7f74833eb177918f2738b077c6fa9263accd460b726f88005a4f86f11e445b1c306c17f6794265b6673580ec2c42ac31b942624e46aed4a9e01c656d039 -DIST firefox-127.0.1-hsb.xpi 640697 BLAKE2B 62779206bd0b77eba3579e9b95be644fa2913eb120693937dba03dae370fd6afc269795fd8b2e1850987255cd692a60767a6ac658188827ccef0af7e1d6c3ba7 SHA512 c2b35918d5d8d68affb91ab6cd55997819588eda0e2bd222b1d1a041128cb891b590d621410000993812f82a16afc2c1077eb2f7ea0b71bcc4f8ee007130581f -DIST firefox-127.0.1-hu.xpi 644724 BLAKE2B 03985baca898b6bdd3c7fd301b4b3dbff91ae8f362ba5b4269bee90b9520a4950445a6c3afcc5213bbae4d5802fcbc8d0026b339de0c16534a6a6d22115cf252 SHA512 2add73e8d0aac2bab09a4c751a59292d7b15898181c4dcf11b5c1b6b11801021392853210cafa8447430bb998ac810601cfcb1e8a5c2a81a5691fc6001e402e1 -DIST firefox-127.0.1-hy-AM.xpi 648979 BLAKE2B 57c9861c399fef401185f9c09281c0250d52e30c35b649f3fb688a7f571b21fb0de1100a1b08ea41ae53d133a4664e3bc8f975f36c51ab79530aa01c40c88763 SHA512 d83d42b5d9b387269717075d405a62fc24a6299c93117e75578c14c5f15a91a3def87c456c2ab4a6ee601b281a51882ad13f534d0d30b5856d37ed292b3c0b08 -DIST firefox-127.0.1-ia.xpi 605278 BLAKE2B ed453e3af3100f310e81a082dae5a71ae6a627d34f30b9f4f32151f304696dba96c3a66ec0987a8ca138a9528a7d43c6b9cd879b6813512d812de38eaa72323e SHA512 2e0538e32c60786d88411b937eba62ab8c4afb7a4e4b69e371dab36fea9ceb4702de57a89aee17dd8266d57a5e4509211d8781e98f4acc994eacdd9e5c73317a -DIST firefox-127.0.1-id.xpi 572113 BLAKE2B d37315f8b520ddb27a4d9123e08b1c7c4d6baa0aaaf4da78edb176a3649667aef140edabff6f67969c13fbf60876661508c6a22676f418fd15e091d4a86a28d4 SHA512 467821c4a965db8fbb9149592edeffcc33f4faeb580a5c15348081503a076e04dbc6f8cc313dbe51258d6d2c3400d019d09be11e1594d7c2ba9db28e0fa0feb0 -DIST firefox-127.0.1-is.xpi 611949 BLAKE2B 86588788e6e80903632413c65b51604e02b7ee6b85bcc20746cd39044fee1313e2798fc75de67468c50b18a06154e0efcfd3ad61e5a5dcda31c91a1e08ebb7e1 SHA512 8ba3d589984e0c1e7c78e42ff91fd92b8706ff79a3cf6643d062d0bc7fc213dfa484286c9795b02e91092cfef91e848aae67742ce1893b1daf7ce4246c96892f -DIST firefox-127.0.1-it.xpi 561879 BLAKE2B 655b10a949050cf8361a6a8d1bbe6bdac1e12eb92bc77bb76331c76cad03da95da611f4a1bd258b167742a9728780c87f155ece5095f605a716e3940091508da SHA512 f73519aeee7e460d27da94c07ca90c44378b9d5fe831b4edee4f87ac8f1bbce7ba5c965e1a765a720bc3b12967034b16d5d9c8f6aaf919431318f3baeecca215 -DIST firefox-127.0.1-ja.xpi 673185 BLAKE2B b3919e64e426e5722ee8052a90d0d948e506289bbc22fa4c6722ab47148ca78413d4931fa1a77ad45917ebae082e58df8165eae689405f92074073a8066c8480 SHA512 e29f727567625ead2c1d212509fb3f4954c2366effb2732ae6b730913d66a6fc256a916cb23bfe7f739a5051b0fabd9e3c30e524a0143c14a6c157884c4d291b -DIST firefox-127.0.1-ka.xpi 658458 BLAKE2B d1f1049b883015ca39b6c7adda871f94c6efc2e923bdb377200c24d934fa5885c0c86a39495077122280ce3f1d1419572a72f10bbb498d8b4dde349239f76018 SHA512 797215d7f00293e41a3e10bbaa0ab97de426cc890d4f780a5debcce6b947ae50c76a898bebdbefb312b78009e20688ba029d9eb8d67b7052c3ac11785ded79da -DIST firefox-127.0.1-kab.xpi 602180 BLAKE2B 8b5fc62558a9c6e436aa2872a7b2c5a0a7251f339343651f68f851fc415c3b2503bcf12cf12b3463369ee114b6165329104d5f642599aaf6625bccf54a94ffef SHA512 5e275c77cdce20f45e9432aed16d16dffbc0de08206dc0e80e268421552a256288c9681dd25e5e8f2fc22e34ab4e012b8618422845038d50d125764e8dcea191 -DIST firefox-127.0.1-kk.xpi 701249 BLAKE2B 3f6ad073759e5f5ee0a82d23d75443f69962ced202309fc35773330de26077737ddb4d3a16c2d5acd720ca19f2c62d4d970d861845247d89378eeea9e911026b SHA512 155591777147ce96d47feb3eed94addda89490fb0f340d95e5cac0e3220b19dfaf0ec4aebcd2b332cd3089a06e9866c7b84cfd46d6c6bbee424fda71fde817f9 -DIST firefox-127.0.1-km.xpi 523610 BLAKE2B 19374ddc17a4791c267ab38458a33088cbdf85282ad23dec3e4c7dc4f9dc56b17eef4b9e16b3ae07f5e56327b9357b933d032c4fe1ae0227606b7404c20d11e1 SHA512 a88b181c7afd59ab56378f9a996df0883a1c4dcd6bf08d4625bf2e0db9170328644f3109ba12e129465f2ff65fb7c3dc091f5f64f5427dd70d5da0413f5938da -DIST firefox-127.0.1-kn.xpi 489099 BLAKE2B 331226070ce7da1498cfc3166b4d24eb4ed9f766a02f0ccfe5b8b4a29a6050f14f3ff4706d954ff14dc92d2ede5f6d74c5e0978f16f5e46676c46a9817783dd1 SHA512 05b6bb6c478562377b562f8f2c45cb087ff26b7782ccaaf1e4c0f753989af8d0ac876d413a705cc0f1390f55a3b96454c4dc4d6a57e049fa574b0f38e87e02e2 -DIST firefox-127.0.1-ko.xpi 655331 BLAKE2B a3c20f7309cd1d180c73e59a53ca8151c776389ea139c7c47f3da1d43c044906db23b6d9e739808bdd72217d67448e70d1e3a366f5694d9306013863b8a5cd5a SHA512 27cc417636e5dc64d79266f2c06aaba29b13c5758fdfcfcbf52f03d58e6f71fd9199a8ea05b0783c692928e18440b35430b769a20444b042f8e6beec2a87c600 -DIST firefox-127.0.1-lij.xpi 481952 BLAKE2B ced32d4ce1bb533bb5b292873fefb994e8c5f3e3b68bd7ffdb83f3c1ba3e7bf0c4ccd5558ac360005de7b847ce72c6b20729efa82aede5e0b2b192b97f655186 SHA512 13103ae932fb66ed2545d5def58104ac8c5da7985467e953bf49de8610e2c612b47d14c278c9cf3898d4375356f5ec43bf06590d41e99b43f56c446aa0d86e9c -DIST firefox-127.0.1-lt.xpi 570456 BLAKE2B a53cb5c9a7f9242e0a5c6ce81ec66ff9cc8162b19631ecda84787aa24e44ea0720b3b3fc418c0be59ba720495e26924618bd15e59b31362a8644422eb73be221 SHA512 643341e2f3c19de9b5ba092a19a7cd9d207e8ead80dc52c42325234ce1f49c53745506ea5cfa3baded2e8abf207475efd4c29a5c27bfc4efad6b942b5ca3ac49 -DIST firefox-127.0.1-lv.xpi 571667 BLAKE2B b0b72e03def4929eda497f38e0aace3da6783b3fa9e7ec193c4c820e0388e347965f2558f065ac4b7fd1fafae34b9ec454ab6ecab8df42c85b96a87f33ea4544 SHA512 40dce493f4c35a3bd1e51909d7be21563eafc174f6ba018ca5800a1f3eb4dc4b378fb401d048dda7e50ce139b8d43b4ebc91bedde1a844e919b4d6bf2d39036c -DIST firefox-127.0.1-mk.xpi 491113 BLAKE2B 05782fd149c99615386be9156b65d014cbca78607ba4ee2a5f2dfb5da5ed0728ffa8220a483889d19ac1ce0b8d467dbde62bd798cdaa452845eab932ec460f3c SHA512 5ae15990f3bf53964335bdb0f8f2fdfaffdaae161b1211f1fff4d7c8665063426a4745c0ee6d32b04559f0d0bcf9f9511724365d8821a27618253bca2d0a9346 -DIST firefox-127.0.1-mr.xpi 529922 BLAKE2B 5267bdcec212593c9cada9d99179180c871b93e53b7ec82297c5146e3a1f8bd7042edb80f6e4d8ad8aa988ff82ddddffcbbd99dcc5ec1da9067ec4d43220e91f SHA512 a3e8fd392811c8e57eb163d5b8bb4c377a25a0a2148eb296b8421693c076b06ddcb96b0e7264255d7f48a32523b2f666d92ccf2fed285e3ed03f9ec5764a296a -DIST firefox-127.0.1-ms.xpi 447578 BLAKE2B 6024610ff124129f2b0cc65f1d0cbfd9ca3f154c4977d10544de49b6066454dc57fd0cb82575baa7246e63a517f6f28c1a046cce2a9c1e9d4145d64806a91c13 SHA512 ce143dd5777e40d1e8e1ec728932fa68aa9efcd89de9527020dbe3d978f5f125b0ef016020bb89d941d7e9a0531bc795d623988204651c2aac6d06e287b24a1b -DIST firefox-127.0.1-my.xpi 516485 BLAKE2B 4f20e726a0e5562565ecaafd4244e613231c87a382f36ed0d911f6eb25f30710e8d2da2e5b0751c69b05344c8faaa2e0a984431add3384ff1d16f1c1e9d3bb16 SHA512 903489f12fe4676b6205615260de581f80675c974245ad60df7fbbd529d8b6fd8e6b132e16204a90523683619e458b4ab5859d6f33a37f3b896ab3988feb36d1 -DIST firefox-127.0.1-nb-NO.xpi 602868 BLAKE2B bd5fdf40271b488043aa27bf31d983a315ee69616cc32369f767a9d6fb02975363264bc73dc9a3fd0e18b6cd6cd66c08f0dcfadef5cbd59c06a030035328f4a6 SHA512 3d26e240829000f477e84fe090d34621f09558b7a4160c6c4523151669edbc10f1a93d94bdc30235b29ab27b19e3191d3e1c14706d6a4a395ecd5d8b4c611bf9 -DIST firefox-127.0.1-ne-NP.xpi 508760 BLAKE2B 39fa58bc2585b73ddc3dc6d95eb92291b7e691ca994b7a10332c40c7fb66615b5adda3c826613a61734f9b9067aa98e4325899fa2d4ca5d4b8180b09fa470b60 SHA512 866a5e74492e3ca31017dba0cb6c00a2ad06594f0455216c56f3e0d25a3863a8015b4d782ced415053ba86f24841296c61e55b223157a7a88e920aae4fd147e6 -DIST firefox-127.0.1-nl.xpi 611451 BLAKE2B bcd1c54da2ab6926e301db064b842f99f090331e7b0f78fcaf1f8eb26d8e169b81e095afc46ca2f60f9a68587020c8e87d006f164fcd80f18d760ff146135edb SHA512 c214919167f4ebbd6beae62d7acc8560005d3ca8d2e53811ed981735903e7a06a709d9ba87e9f0670d7aab5a33a9a449c9cf0b387a433a6b966efe3079e36aad -DIST firefox-127.0.1-nn-NO.xpi 603354 BLAKE2B 766ec2af51ae17118de3a6781ce2e0016ee2a28ce698b6147331c33d878d27b3d89ac8e37b6590da2b038a6031289050cdbc002de54685be4d3ef25f21c34cef SHA512 52e3775c358c23ef507b649ca210b44c5331954b70a828034d0f8280be54cfeb9c57bc49be104ccd48ad62e6bef6005272f8d9c61177f88bdc220339f0460326 -DIST firefox-127.0.1-oc.xpi 608822 BLAKE2B b789bd952eef281317b288236f245a9681918a424fa5c752d409871ba85cf039fc49cd9ec2500041606911dee51dd6bb58e9adb95e02e8e2a9ef224b0057f158 SHA512 4b3b7375adcaf9321c708a77776e71797968ffdeff98a9cb2cbe7c59dcad15c4a4ea03497ee1b9c3818eaacb4222405c12dc4bab896e426d2eb0375bf35906ff -DIST firefox-127.0.1-pa-IN.xpi 687019 BLAKE2B 27b949350ec49a6cc596f2f55ee7b40bdd75e4ac68b09957f228a3abda39fa38654c2464ac20af2846158a84ec0296331e1e376f1272c6346da19427a41ce34a SHA512 e748f65396946de867fd4349b923dadad26509315fe4b83b4b7831c7d46cda7bc13afcd5183e7b3f7e4d7a850de5ee6ffee822bb53c1eb5f4fc587cdb60a8797 -DIST firefox-127.0.1-pl.xpi 631910 BLAKE2B 7729cc285a46f769a39e55b873033faa25154404cb86cd6234155287edf9f4957a52e039b7f3aa4a0f8a07dbbcbb55daf81fbcc22310e2b902288c3121bfff55 SHA512 ef02ad7a167b406d46befaf3489173f05edb10c9336e9934bc1baa7f61c2b5ac7cbe22c7dd3df38bd3ed5025cedcede3cd37432f064aae971520f79caa990536 -DIST firefox-127.0.1-pt-BR.xpi 616111 BLAKE2B 78b5c3c72018046c1d159b57b7dc7628b1006fef15c7e47e99372ec7f6bed7260a45d82af30962c59a651f92980e402b2f60e4f8487eb5cd3bc2c9529ef7087d SHA512 4d6726e1abc40a50ec734ae3988439606db8bedc1a9d90804b8a8ca981bf5031df150fe437d2ce487fef96833fc6ebe39610cf10a2f47bbca6fcaadf368382c0 -DIST firefox-127.0.1-pt-PT.xpi 622365 BLAKE2B 2eb0f5c496efeda53e1424d522fcdcaef1f96a0425b237ae6a513a35679d1816d951f696a96dbcee0a37c45a5a4ed87850edba60c70df58b4a5a37ebb86bf277 SHA512 64e86238d51cd5c888b61155b0c068408cdda1ce5fc02a2d5f946d115e298fd462944982cd38c5e29a9a44f0c00e6003897563b72272d815770987a1237eadaf -DIST firefox-127.0.1-rm.xpi 612117 BLAKE2B 11754d3d92fa7361bfd968bc0a77bdaa23a8bf7ab98becb6b6a52d2b7b420f3033752627e729fc52d7bb1ff2d70ff587f5f58f5b1b9ef009b71d9cb57b6d16d7 SHA512 1e8e6e9bdce0ccf15665f4a6c45d473d0d837283ddb160f4d57e371ce574eaeec0fedaf8550813b0d863a53ae6a3b3e7e49659b82e9704d25e9a8ec0dbd8942b -DIST firefox-127.0.1-ro.xpi 547532 BLAKE2B 75cf5397227249db1c4f46702b27f549cc2ef7c7e8492592c9b32c255c6eea1cfa1c5d8b4803e9f27114cebc5a8339965d58e9bfad32c4f05b6b1d9643bc3278 SHA512 cc0d0bc53a5ff402316dfec6be10cbfdd2aa8a9501a08537eb18af87601f05d52da38b2de13e7b1e0f3bf0f74100bbbc6c530ad1416981b9866e6df781fcb832 -DIST firefox-127.0.1-ru.xpi 713592 BLAKE2B 75a44b0261b80b7a72f56b1a7d286f94b2fc43d7390079b92878be6fba84e5e4d93b63bd57eb654326b66207e2d5aad0938e09f59e0432da81a1ae79e24e1208 SHA512 398145d01a58fa66426f1f1ae3ae421bee2cf04e9b35e12d5ff2e8cc03f4a602e15e388deb50e8a2c8c0e7d4e1cf2fd03561f86f026be9e550973b4cc040ba97 -DIST firefox-127.0.1-sc.xpi 582658 BLAKE2B 3d7a7626ae8fb1ca36107f9e83f5c5d5b4f12e2510aa342c2aff7fb4051df880cf6580aaec8cbc47c4700a72446cc4985113d5cdb5c67fbc3ac27bb33dd1ac6f SHA512 5566f4a5d8e70f9778a15d9657cdf8251b7d0fb1d859d5a6614b1b1ea45f8948ff84ca749c018b6bfac7bc6204ee08ed3ade73862d36efdbcb5d47d73d2a6e86 -DIST firefox-127.0.1-sco.xpi 509002 BLAKE2B c959cb7acad1a691b6b5e0b496a28d2ff525ce2120de29127d13a5379c22e33d957b1bb115e720a66dc114dc61292dd2a9ee393f85aec2efb05badc249f1ccca SHA512 e5873e1eacc798aaf9e7197775a8b518cf0fc5f0c9e188dcc89a9c61b9655d9e1ecdfc2083a5dfa962f9b8e9095cc0d6672a3c8f4315d96967cec8d059731fd8 -DIST firefox-127.0.1-si.xpi 603742 BLAKE2B e91cb5ba2773a307774e7f49ce19ffcee8fac4b6da81bdfff19f3319f34577f48b52d79247fb1e412dd55260e54040b34e9fc8f91e47653095b05f15987b4c05 SHA512 18e6c43526a9388c0463b880d0fee66d6f45ed65703706039d82e117da27b8c1dd9ebea61ce022f384a0f18dc4309095d84290ac10aab0ca5768865f1ef4a81e -DIST firefox-127.0.1-sk.xpi 646189 BLAKE2B 859f17ad7a3fb701dd07ce69c3f9885a6b795f0918a8d47f6d4aa251b3aed81a96709f0edd49a26aa8b4cbf8eafee6bb7f20e5aff036e7403f3ed99af31000da SHA512 76eb40951d0d79abe756438b89b8e3c9579fdae06c71d6ea615bd9e803c0e4101867c490b0f1cd948ddaff23347fce8fe1b883aa68108ae546274497db44e176 -DIST firefox-127.0.1-sl.xpi 612548 BLAKE2B 1b6d8dbe8e7659365c2d0bf1ba9caad37d030548377f7b4c2c60016a79478d9d188c25396047ce9a69e151858858c2cf68064ab727fb2c350bb1d63b6acd0024 SHA512 bf6bb86067256bcd89b075f4ed7f50ed35bebef4e9c6d6962efa3b54d3c2586eefae7447208d38ba05ec1d9f7aed2217a08368e35a3d0cfee93c957b7f4120bf -DIST firefox-127.0.1-son.xpi 414283 BLAKE2B 6ebbbd379053550c9ce609c53b3f19790ddce9c195b2e4234a34c13e9d089918eccbb9e3a5068b39ebdca9becc281deab4eaec06c86b726ef373bde3f36b2f6d SHA512 342b25217654d96779197f96569e1a0088d8af5cb0278dbfc0155c35c691debaec58fe3b22ebb8f0ff9ed13ea6d378976f35cb911bff97d969c8a6a28027819b -DIST firefox-127.0.1-sq.xpi 632508 BLAKE2B cd415a8dcd54ab030843f7150383a3534b6482a5dd6a672fa3c395c5abde2212bc93725d1db59fdaa3f67cabbfe9bef6d1a7094ce23d45da3c3c973d6b80a97a SHA512 84be447a28ed046ccd47b368a13bef7953faa9691815c0dfe71f57f056f1ce3d8f360953ef326d8cb21b7741e7e087f4b2c9158aabad65d4f3238cd81a165927 -DIST firefox-127.0.1-sr.xpi 637080 BLAKE2B 4fd9bfa328065fc039d3300cad8e8fa341d54cfc43693c858047667af1b6f7c8f6490e2fdd44c55df63277e0b9821994b2cd8ce0ad980d48272b3eb9862942a9 SHA512 98a1349a15e9d476b93cab9a14d6a125c0617d948c15075b381db17ce58ca0385fd4ef0bc33b1d3e3f512cffdd97757e91a62a1c1528eee14e416b0422574f00 -DIST firefox-127.0.1-sv-SE.xpi 613208 BLAKE2B 5535ebd21d194f6a4af7e4e9d0420b03f24abb806fe27288a8cdc40f45a32ede88f3d2616113ae2134c15703e73ddf0724f96f5081d8189ea5650a194a715cef SHA512 74e636d54a901d4b9220eca4ed67c8012794a4af5312e3085704cc44d28adab323c55646a3b9ab17b11de74981e23da50ddfc404018e7bdd0f88743537531eec -DIST firefox-127.0.1-szl.xpi 524220 BLAKE2B e2364456bdf452b43b73a18c472d01dd82154e59108b322e242e8ae330433229bbb67c2b66a5c0b928d5d0693431634bd9582ff516ccc7d710d42023dced678b SHA512 58f7a91f5e1f10934d962c4ac24d08283520df0a3ff110967522b8e3a29bd38bade7b461f0fc947300f86534ed2f3e243a45bb5f84e34a69307ca3d56ff801e6 -DIST firefox-127.0.1-ta.xpi 505371 BLAKE2B 9e3510ae636f941864c8e4106170d9a375500c8797561d4a105a38bcc197f990761de08164f429bef8c89f0c4c051da2eb110f06b81747f1d8a3ada343d9667c SHA512 d9d2e608f34ff97dfdc41b880693f30a7f277ba4fded31e02eb98e3728a18292448fdadf2b8afb5c332bce70bf9db6998d19677876bd748ffa523fe0f5f1d4e8 -DIST firefox-127.0.1-te.xpi 558855 BLAKE2B 56e115277b9e44ff0f6d54496d75cff21e71c6b89e9716e471030b691e07df517b75746f89105c88e97d35e496ade97b9f9f4c587f6fce72645a9585bb0ddce4 SHA512 f4dc67d001c2406c92f5da15ed2f76221c3447404a4449175574fcdb7cdbb2a41ef544a95b3b25a5890d072bfdea26f71badf2510b210c62919c926bacd8bd51 -DIST firefox-127.0.1-th.xpi 689045 BLAKE2B b8dd5518be7fb8fa96f70a7c50da314bded7e57db4f40a5b208bcd3ded95dd09d04e1bf2a60eb4740aeffced4a3ecb7b2dac7696e3817f25d56154d813dd5904 SHA512 a54b30648505866b6f6af7c81239f2a3424cfd567d1886cfcfc080e46c873b1a2f7a199008e12def55fde996690375024a8e994186743abdf7d2e5d120ba08b0 -DIST firefox-127.0.1-tl.xpi 532006 BLAKE2B 46b1638a0476d23e303e9a1da874a340cbbf093758e5accb7f73fe665b2c533afb7d20fe3d6ab6a13ddfdbf882efe092ad0fe53c9cb0bd185a94d0aa8840e37d SHA512 14bf91f2af585a44b1b9e1cce4d39bc227008c4cb56f549730925e6911f51a1764fb76bb8d9bf414e6f5d01f5ded3ea62bcd926186ba7abf289f992947216af9 -DIST firefox-127.0.1-tr.xpi 626628 BLAKE2B b2fe31ebadcbf7f7aeb6fb153ffd2704d6c70293c874ea8a40c08cc30194a671a78805e2e25210223e9df92cfc3cbb117ed7fd206a7f655ee791f0d394f7d5a8 SHA512 44dc10cd422fe4f47d676b66a1001b6242350fc30571d3bda5a84831202e3836f31f55360c079604390fad6ac86f07903f5fd43788ac71c5b3d8cff7809f62f3 -DIST firefox-127.0.1-trs.xpi 501846 BLAKE2B f80d550351fa5d9b999734ada1a8f074c2c10153861b770413c952c3b0e8bfb3c7372751c8da41282d83708c33928b4dee3769daf5b907f717d0a865c8606ddd SHA512 5c38640940716f61c26bce3982b88731b18ef3edd6bc4b6415c5a5a954e2a5b1dbbcdec66f686a0282d908042ca0898da00543f26754d39e0be8a6195ecc25fd -DIST firefox-127.0.1-uk.xpi 705151 BLAKE2B 4f0aca7cbea953c0f5cc76f5a5af413370d6a02cd2562a20c7b8044a9aed0df3163484572c0d14266f00cd9bcceb4160bf4bcf61cb22eba718b14903458d9e2c SHA512 6882876632328b97f16e9527832e4812bdf7d89fd31b759247283dad13dcde3668c24e14d1afea5f1dd08e6b8ff5bd6ec37acbd0eae99ecea67cc6ef91d27b85 -DIST firefox-127.0.1-ur.xpi 558327 BLAKE2B 7bda37fdb8c8be7f94971f7b747c414785654f6b1fc012a137ce27383cf17d702a01075fa09d0f29404ec5e011588d1bd43d9b6a8a5a8279ab3c6d89d4ee10b6 SHA512 8429564e413bd3b69b725a5b6fdaad081032c2c160fc1895de8fc4f197e69a4b6993addb3cfe87deed500e168ee638b6d9ecfe5e286c537076fa10c4bfa46f3d -DIST firefox-127.0.1-uz.xpi 476577 BLAKE2B 55e71702f6c8637b5136d43617663a0c70fc2e7ec3b5304f783940d5198bbd57cbc8f310b3c077ee0a95419984e17c709586ea64ce88fefedc78f30d67c1c060 SHA512 c9b136b2d88202462ef21eea643d1d23960a6321be50f1c35c810fbae3d2bffbd5ed602a73f59b903b6ffa2b53d10f2040cdcccf242e29729128e9bcdb333bd2 -DIST firefox-127.0.1-vi.xpi 650521 BLAKE2B 379020a893c74c423422de15d73b67234a9ba2c749edad0dfa88796052d0445e25ecf6a8fd74157ef861576ef7d3be19ea72a847d8a7ddc6e80c1509251d5593 SHA512 63cf47408fd868c54279669fddd0a13a8e62ca08c3c49171c7eb295771a3cea0f67e8fbb75b04950fd8f4f0c8db11640d7ae384c36c9c1c0b16a253bb74358c7 -DIST firefox-127.0.1-xh.xpi 415013 BLAKE2B b91113b53ae38fa5a85ce322f1afaa6188f41a582208453ab41814a4e98cf947602304691e1e30cbd66d44bf09defa5f8c8b16b6e9f79c32528b74a1c224422c SHA512 7383a1c85ee100522bc5705b97d911e08d547ecdadf5607f685a3c6ee7212b83f933f75b38cf746bd641cf5fec29283bebef7ea251a7ebf7d49bdd7bb52d95ea -DIST firefox-127.0.1-zh-CN.xpi 650827 BLAKE2B c19b8ce5a69d58a4da1dd002cc841f2bf6823cec3dcf4ad3eee04c6f5547f95d6491c579565ca59e82c850a0cc6df60a7b18996af80538750f3f2fb25baec3ea SHA512 769a3eef576f9d78461c8bf900ca974dcf3d5043a6769297a0c3d2309d38e62214428f24eaecc2f2213dc08c7c50a1ee70de7ffef4b8997f51ed9080c76fe7f2 -DIST firefox-127.0.1-zh-TW.xpi 653082 BLAKE2B e031aaf61fff9b0adc7749c78333d464a076b59ac5afdf8a9289d62c82aaff2d7ee4c4a6b6c828e0db0a6e23be98ad32e81defd57cb879be9d16022060fb9147 SHA512 0a1358e57daaad039f164ff9f00376c8023287bfb8dc8abbd4b908a47fba619028ecfb39e2864be22d34141a3d4aea1e21249706180a6a3a582104105a2f7ac4 -DIST firefox-127.0.1.source.tar.xz 568595988 BLAKE2B 1399d5e7a364aba0a2c998fb12a5b52807426d265a8dc39fea910483319b3530f257e48aeac0daab930d79cedb40a1ca6a1211a7ae7e78a3d9bfe90dfdf01144 SHA512 13df770a89b703033601cab56892a2fc62427521936b366893008e68cd1f48d7b18917a3cede23764d024208819037ad0d28c2d4b73b99fdc204cbd53bb1297e -DIST firefox-127.0.2-ach.xpi 461920 BLAKE2B 8978e6f06bf46bb473a5989cfeb9089863e9c92c3b93a0883ed2d0c577d24c717a49f5d35c1dd848c66076be3f0361ac917364716ea900156869ce3e21b92825 SHA512 f08f93f0b9c9704a77a00f1b9a83b867f82b144adb39d64ec0d4a3a5f78cf55b67b7eb3ce19c34eaf09357f8bdd7845a610937f70a2f856081ad468c446910c7 -DIST firefox-127.0.2-af.xpi 415365 BLAKE2B 383de6f37f70b7dd8791df80de220ad2b8db64f5c76bec9b5e8cf7064139acd08d4ae7000a28dfe14f648c8e8c20dd1bb8ac1c254ea9cfcf84c9850278aa6238 SHA512 84eb2d15fc2b1de6cff3dd7498277863734e60e29e013e72207b32fc230e80d9b417d2a0e0f5a1e5f2a43c2a98b90a47535bfc0f25a1e7966634c258927611d9 -DIST firefox-127.0.2-an.xpi 503728 BLAKE2B af62fb2c3862a9348d5ada2f21072d24b0800337a462c94d080a8ce112a01f28eaff40cd12a2b683ca44ffb4ed1de8b6bc9d0967774baf8b9bcc899b420e8134 SHA512 291e2c34b964f0d8986d2c568eac364e4d2a8e1218e2db71019ccf281b2f03474ebd90e3702fc7212be2fb435126eb635eec4b8871cb9f772f95e7c6c46df2b1 -DIST firefox-127.0.2-ar.xpi 607962 BLAKE2B 2777e90135a5b542688887b434838a5f9f123e626becaec6f274aeca78ff071c85501663115f99eab24e3ddfff04ba05d3332e6632600b97ec4366793cc290b7 SHA512 8dbcbed17479ad293d3e5c4d7f91e02fc95f121dc2be0b4e5f1532a270c3a45522774f85ea31454ca3e5fdb8456b230e0fa314a186134355503954ecfed0a1db -DIST firefox-127.0.2-ast.xpi 494030 BLAKE2B 907feaecdfca0d282314669243bf12562ea45469b1fc9fee715461d3f698f0cb394dd9d8c35a90e5e3ed4d20a3629e74e14a05027c72205e3ec47d5f6b67178f SHA512 ad22d806c4584cc8769c21a04fff2457c7d2443d1a8fc7339876c1e10ec8e548d1dd898c017b2eff4759243930d6b1c6f1268166a6802e1faf6b6f67fe654db1 -DIST firefox-127.0.2-az.xpi 488590 BLAKE2B e2f329f8c5f15efc4b1cdeeb2fd99710707c97b77c00172b5fc985f80fe65ddaea26ac92dfae264ba50e9b22c3ef87c294c7c76ed2b44e98f75db03174ad3872 SHA512 b6c82f95b8fdb9b7e393fedebc04528c36b19fcb74452a12812a408d6c9f4ef53facc71d3fd9c55aae960f98b3c831be4b52b7c6d9679f6bd0a61501e00889ab -DIST firefox-127.0.2-be.xpi 708721 BLAKE2B 9131e7cdbe4f9d087da31b4513cab3aaaff521983cdd89fd22704dd4006d6b3f2615cc9a70f594b432f7102ecc84420ab944b9f61b28af52769ab6a8ceed91d2 SHA512 b2521ae6f1c354b88c7ddde11e6f45927c40c374713f07466e649833045b5231b24861000eee27176c1dc043d2209f274a8cd788094acfbdafcbad96a9806f01 -DIST firefox-127.0.2-bg.xpi 601649 BLAKE2B e1f797b9a6b2d8b694384216b06b980fed8bbd379c5e13a4a29162ae1f517f5ac18227c705d32baddd883cd3246e8aa182d51599d924e4d48fa40d777dfc21d3 SHA512 f77319e46f237f208c566c186c0b8d4a70dea15c0c487ab77c41bb22e2459e59a8b1528bc93be36fc93c80781015626bd9a56a2d3964c38d08569612cf480469 -DIST firefox-127.0.2-bn.xpi 579342 BLAKE2B ae74def080fc4879d840cd7526bc199e66e27666bd7a1ba6a3b6d8dec2b151a52b10df5853812af8af7bed90a04b215f4dce3fe42d5103e47bcdfa3f5c05d605 SHA512 cb3b2110e3ac9f072d78aa72a4f2a987d1ee744a45b1fb1844ad50439667d97b78adb3c383a5e80b6dd1ed63abea51d429c08ce6144901228f062d33b3ecd0ec -DIST firefox-127.0.2-br.xpi 585933 BLAKE2B be13e03b5ea66573f97b015acdbfc08e05c304338256ed9b6aceb540a76e5d257f6e9ac8108fb2449498298ed680bbe46d8225f6928e4830486ffbefd2e9daf3 SHA512 657254a8e018082bd18ea9afdf761f11ac4dcb4d6dbc84f92bbf00045f814d139f4884386546fb78ded8c971719775e2cb0030435bec6ea2c14520013dabf4e2 -DIST firefox-127.0.2-bs.xpi 499342 BLAKE2B 1d3bacbb74164370b0a9c4ad9b952942fcddc3a4bea7c18414d0e31e8afd0c7d0f0f316d3d35bd3cf535cd5db1b335d336bcf27ddd18a4111386c6751b52f812 SHA512 40a0d7502e1b61959d9145e9533098e6a2395938fb55679f7e67fe6d376f2e962be6c6fc0630a40a3cdaec7bc5a50e8193df885bf40e4ab68e488e19d30a4f85 -DIST firefox-127.0.2-ca-valencia.xpi 544016 BLAKE2B 313eef4d5fb691323a099405567eb1d0da4336c573f8f2fcaab33fc82161b30bc7c18e2ac8de89253ee47cc9589a67f889c5dda0dddca6b1be9113aad5fbf234 SHA512 5bf2930525505fa3906897bf8072ed2a13bbdc6de2df82350918d3bc94175113fdf2c1ee4da975d26cfaeffc3eb9c464cc1aafdb20eb0b29ffe022209427bac5 -DIST firefox-127.0.2-ca.xpi 582808 BLAKE2B ecfb3ef2af0ee94ca901730b9e9750515c66c0890ea28b1b0ae46e4e385e948590825ddb9607d9748a9f7f6c695f0887f4786ff3dcaa99c2be14d5a5b2d3d117 SHA512 6a29cd06569120205a13a389a4087520f803df5e459c293c4b7b61d6cdc19735491fc13382333ff96904e54da1a0b3d5b06c59792d53b877fb909e55d730486a -DIST firefox-127.0.2-cak.xpi 590482 BLAKE2B 9f2dd6c56f78f7f64834c9fd12f14493ba1a30f0c1a283d286b4c0f0881b321029c54487cc7b644a2b9c7b547db65e76104b47404c0f50e4eab2d3bf936ef024 SHA512 510c272b05dfc16659fb27186aa1f64ae1e70a39dca93aa32d1dd79d8896c29c93322de9bdf388c8a0974632329e0798daea9b4a8d63e185d85f8a8377bb373e -DIST firefox-127.0.2-cs.xpi 653270 BLAKE2B b98bfa2e3fbf724ced45b357c7c3ae6a5b074488b1b2426df327267232eb30b3866f836a433f00ef92c6943f5ceb2ded4ef5e0d86785ee88859cf88b47cc7c0d SHA512 3057bf1be5369af6f1572e14c8a07efb7250bb2f9e9a5f5d3e72eac6ca4764970ab47530e76399e39222fa8cff4c06df216f00acd338fc254473580cc42b9ed0 -DIST firefox-127.0.2-cy.xpi 618428 BLAKE2B c0be3dfcafd923a39cd0bd2c54e2c413509a0f1b7ca17cecd6e5c968930e5516f41bdb1b247002abbd7ac84f6855983eab2fbc3e9ebf03fd95d2aea2dc44c398 SHA512 0b217fb7c14a43830b7b48418a759185ec568100c600519a796a336059eb76239e4b58243903bd180a21327f177085900c007da8e31922bc279dcef90be2755c -DIST firefox-127.0.2-da.xpi 606847 BLAKE2B aae984f6cce0f493a54ca2fb9f89ea916d25468d91aadae207f38a1771901dc6bad2d1761051a145ae0c197f049d10d662d0f78e64ab0ad7b7745fd41b312f53 SHA512 aa511bfc36695ce3a2a82ad759eb31b1396dc455703e605ca95ee96d72e19f768eff254645362da9c776d609b4d108d24f0ce8759c27d625a3f65eb2f249847e -DIST firefox-127.0.2-de.xpi 628178 BLAKE2B 3a5ecbb47276320290acc9643c2396d3409c803dd7e35d767f3b43d9782d688e872981a66f8608b531e694b5779264472fee5d1b0ce7705cd590aee524cb4263 SHA512 d5346f45b6cd2f6f934d07e8445ea7ff1bc97540da57490a132d4125532b388ae911731f3a723d596f519d0325dc2ccbd287d529ce4f1e22a9e40b14b5a9045d -DIST firefox-127.0.2-dsb.xpi 644572 BLAKE2B 72ce2b28b566e68ae48e9d2ae6db439583e3eb9bc7f08adf1e53fe53f943e49c18b53898dd649f7ddf0c1bd76cd1da00880f62cbbe7a9d897087d75cca16de48 SHA512 24b48a4e2cf9034249c5ad5b81ed25f727fe64ce8382be42d0ec418547672c7fb3d69aad0047e3085032086084921c2a51fbc29469cae0b75d3fa1b39807858b -DIST firefox-127.0.2-el.xpi 726241 BLAKE2B 59b90ec280c4094451e4390ec990c3c5b87b22eb93217252962765220cf78539ace962abe8d4e5c581b146ec04cb5617499afe55657d951334103607d57d15a8 SHA512 bd29df99eeb56ed84d76183a09f48191b283d9d9ed3f3c0c6f33b5cdd6d6bff42a6e5e93644e91ff59ca3132155f3163b49a95c36b94eb7445f4133c6624fd7f -DIST firefox-127.0.2-en-CA.xpi 579152 BLAKE2B 3b125758423e52dcc5ddab42c402eb311209845cee2c1e155c546b4cf8ac3e3e635fb01456ba67b52ba89d18443c833a42c5b072c24216ffeb7c51893b078396 SHA512 25d89707c67a70a807ff05c6665f03aae6effe58c9fb7a43cd427c70ee46ae7c8feda51319958cc91778ddb74031d6d471892f8b49f8a03ffd63ef30b8739c1e -DIST firefox-127.0.2-en-GB.xpi 579706 BLAKE2B bf4151dc3504096dd96013119905cba19b8d1417da25a2f4c5dbf7e14e9ed2c20a3b4442d6eea29ee37a6a648d3aadf58f6164978921b84be1763c5dc2f99c86 SHA512 247a412c5ed93799f6a453ff8cb6a2e7629781238ffbceabb5a10c5de01cd0409cd37371b4e4511df38612397688fdeb1d4e3791d138115d733f7a14b34e2a95 -DIST firefox-127.0.2-eo.xpi 608810 BLAKE2B c85e1b71424db3764eac98af32cf943b1daeb3d64d5348cf5842862d81bdccc5afaa7f477a1ac4827087872762d3eb4969c427b3a2b5893210f9aa158c33b409 SHA512 06f3c6aff4316c7bb4ee1e2e7814267a86b5392cf2c78a39f5f4a104d48bc7bd85365ac6a1d1804b8c171548d71f8e4c571e85ca4d7fea81302160f159b0f31e -DIST firefox-127.0.2-es-AR.xpi 622106 BLAKE2B 828e573af5e7499850fb5bc3d6a5c9b09ee4a31147a6a4dfc17665784a4f32d6a39eb94246b09c28160d927a939047807c3faa3a2b853da092de32feeea1d146 SHA512 6a8efb62c2364e344ca51dab0a3f1fb373b990e308ecd6887ed2fe3fc2f826949d676ac55068fbcd3460ee163dc9a41f7ab52d7063e27ce5624424238bf13d8a -DIST firefox-127.0.2-es-CL.xpi 621302 BLAKE2B ed638109216a61bdbb0f1a91ffdea17321936bef0fd2c57fd8bb29e56b6103be24ced5d62c41ea114b37e962c5df496aecfb9a06227a2e3662e6fcf2793f3915 SHA512 217183e515a9fd83535795731a9f7124a3716e5f68c028ae2137057bdff261d1e7744acfe64212ff003fa7782108c261aa3dc7dcf2184f3c77462fd65a374e05 -DIST firefox-127.0.2-es-ES.xpi 616136 BLAKE2B 2c25d895c6752f5a196bc80eef656f691fdcef3d5991dd3940eb4457e36f4010d7a78f6293904b8c8bd7d2d41ad993425847cfc791b0f45688616d1a3b003d34 SHA512 1780160b8378a87790a7d06eaeb099ade3b18e80469386a886d119a811f1216dd6db0d10dc162f4eef209cc2e45d260ec83b7a61ff67312df9c2a97ad73f98c2 -DIST firefox-127.0.2-es-MX.xpi 589239 BLAKE2B 74ea13596d227087bd314822f4353e17ca47067bfdb9dfe31adceff013eb10947f9c51f21ae9ba65773af8f64c20211d753c7cd09af72645ad5ced25d7eec77e SHA512 c684248938f8e48f13943564bd98766043d2ab14777617128b62cf6983d616bcf75f4448bc9609c9b253172f0753d3904611bd5f79f89e63f43f8d5915e8affc -DIST firefox-127.0.2-et.xpi 537278 BLAKE2B 9720007a3b7a1899eaa9ca12f72bbcc362600d23115c971c5d791878cceb3c23bdf9954fd127ca9bbeff5f55be71ab03d7ffdbd3ca26407773355874799b7da2 SHA512 6d3a8d15024a6c18bc0e8feca09280bc6c44d88b47aaf9c09fbf48776e9656357308a9e0c45ab42f5a387c69fa52db46e8b51143556ca7f6cf433b81df06a6b4 -DIST firefox-127.0.2-eu.xpi 593779 BLAKE2B 276eb7fd5ba095fc2ed9c1c89e91d92d9d78160d00bf79ff157bd53d5cb1b68290424b2959b69ef40d072fc33345a928dd66231dc2a8d922b4f65c773c0d5286 SHA512 05f754d2a01bd7c597d805cae6775ca05640bab6478c3c8c0a807aa08f41a63e86e0d5f85d7b020d805955cbdc8e0deccebc7f95b46f75dc31521da416d7cb3d -DIST firefox-127.0.2-fa.xpi 587838 BLAKE2B 03c99132883000ed03489cd26d5a220bc5c3bb30323dc7c956a1c8ffd55e6a63a20c3a18413b151158a559c208751ed4afc352b5fd130ddbf4e7af83e2a2e933 SHA512 369cdea6c059bda8304fe4075ace929c5023359df27c5f5ec9b930aed2b57590b59309b993259c77b9a66f02d683cde1f1f8c6a930f129889df1239a3ca30bd3 -DIST firefox-127.0.2-ff.xpi 473942 BLAKE2B 020c910141a001fff646585b848ce7a0e62ae50ee5b790f25a3c35e24e302c3ee074ecd52ac987a3b91804d672a46b17fbbd503cf864faeada80d0773cda1eeb SHA512 c4c577ee23c99f26cd0c37553013f3cfc657e5c90b594f60ec6db66f5560069dfab175bea6b65ff8bba0e9a16697cdb7e30f773343612554b868bddb607d689e -DIST firefox-127.0.2-fi.xpi 601836 BLAKE2B d7d757970504b3ae569f661d58c929c8128d8dd2786c0448dd88c65f97277f02cafde9d4fc8037241640a88899cd9f8c9aece17134f20d48ea6749e79ec12d2a SHA512 5fc511b7495fd7d92597ff3fdaa8b01d76e2325112d3b48d01ae38d624e0017dffd9e7316b21dd0bae6ecc95505993dd44c1f682bfd3b0086924695337da2f13 -DIST firefox-127.0.2-fr.xpi 635004 BLAKE2B 04d7c575d53527b098a1c1387b9331182d197cf4ffe157183e074e2129dd5709b490c056af819d596ab203072a048bbc8c6cec79a7b014f3d80c79428f6e3106 SHA512 7d456172b78fe2ab7708eaab0d1f197e95ef30b04265813557c12b138c284be76a6e78f11901024a7c0412831bde2f4fa9df66a44d0774c2d47bc97d47970a27 -DIST firefox-127.0.2-fur.xpi 627829 BLAKE2B be8d2157906aa341e712d2f741c8688f7d4a2a2ff40d8f46cf77c6afa13589b53f41a50618babb46e08a756952a6c6162ffd40e552b985fd9fa4184dd0b4ed41 SHA512 6f0216f8c6c0db651794515541340b45ef51d185d279910eb22d5941730dad462581cd36b849b87e878b67ffd16dd432289efc64d40423bfd684474a1f2fc3cc -DIST firefox-127.0.2-fy-NL.xpi 617744 BLAKE2B a2c9177611b12d11cbe87bb2cc3099be5a0b339938048d9058047085e64c6b426cfb668d2f9bc51aba951d1f6d1f09aa572b082e87d8d403d9ee31bbcc0ad4d2 SHA512 ffb266eac4df02de1269307e42042db41f950ac5757ef4a4b79f05069efb84bcfc00f6b7605abbbdccfe39ef4962316494aa630d37098db6e237a4136884a598 -DIST firefox-127.0.2-ga-IE.xpi 468832 BLAKE2B 7696d21ac2419875770f0050ba22cdb77303a5062f4dc71a82ec6dbfd50cc9ee25eaa06ebc6dc5785953e42f120fbb316df81b6b596ed3c72dbb69b450bc4177 SHA512 8d19d9494feb2acb3c310adb1860b9988ff91a1cf691f4491394e9472535787045b6b0dcffe97f00aa56371a7f15b4baa357b11e63bd26a0b773b340f68f4ead -DIST firefox-127.0.2-gd.xpi 594383 BLAKE2B bf678fe36233ac642d21a381b2dd819bf3e9a22bbcdf17b7404221657e9ff0a81a07d9d7f3fa134265ff471667f1428819756c13646f1c9be8c29e5d216fc722 SHA512 23cfa8484e7e97f4e88acb29c75cea3cef8cc96687b21d7ffb6b818222a12249fd3faf41c7ec7349f2e22860c062dff7eebffde40711d2e241ac36721daee6ba -DIST firefox-127.0.2-gl.xpi 601871 BLAKE2B 165fd9574a2404154032709d56ce98dc636fea53233fdee6446f1ecc3be90f2da8d3bb958aa6bc552e44e838c4aebe3da2853b824ddc12f1d85847351a9d4454 SHA512 66a0845743bdc272827e0b8ccd2b47d8bc15cfe69a6f13a41027d80589e1833cca0a7aba81e4c4b1395804b3fb9a5c70859de0ce0c721397750e39b69223474a -DIST firefox-127.0.2-gn.xpi 633216 BLAKE2B c720023594d1642a96cddc60c645cc9da55543269db9cb8a885585fb62dd4d88f9f56cacdde8a10bd08f370bd691ce3d2528df6a9f9987a8cd6ad06c943d4499 SHA512 68ac786265b14eff979bdeaa3cd54cbaf523d22013ce5d8e6e025dc84aa6bcc8f80d3f5437e63078569f950276d388a438e18d7c69cdd97a993af1b172624538 -DIST firefox-127.0.2-gu-IN.xpi 525159 BLAKE2B f5d800531dcd64701015bf2ad782c882bfc19f190292e453f650358a9d54eb1656ae1a85c4e26c7bcb9703890938dbd2da7a7d96f4af280aa6788ff76c55c0f3 SHA512 960762d09c38620010f179401de7aa648efaa7dab84ed6aab572c3c42f3fec40c456bd9bb1bf14545f34ad5b8cd018b00401096613d4610877ac4b9a2447efa3 -DIST firefox-127.0.2-he.xpi 626712 BLAKE2B afffff975a94d3cbd24bf8c548d2fbb3c72ffcae74eea9705b07512a9a6a751d372c031f7f7d395bf4c937f5a2d180afb942141e528ce74fcacdec0065c3a1c6 SHA512 92af5bf179af0aaa5a8fdd58a96e73ad815d9f7ec7442d09a15d918f3ed193d44a66ee2614d44fe09c332c09d70b647e555434633c9e5d33b0e6d30a7a08cfc8 -DIST firefox-127.0.2-hi-IN.xpi 563353 BLAKE2B 9ff065cbd37bbcad8394beb5b424c1389000da238f8483fc78970b32b6a3d766070fd2aa70e181079461b8871afd0e0fafd1283939a118d4c894deca44d12323 SHA512 0678fab31a20c98d64158a0501824c7371bc22279cbe4b195a376bb045712451eafbbf8bc123fcd117917d36dc4958bf6656b26ba4785e05b7bc940a169a860f -DIST firefox-127.0.2-hr.xpi 554576 BLAKE2B fb13353b6b0deee986fbc5629252b56e7e6b2aea0fd3d2eb45f10488973a164df989c60ce1651626b5e0ae827b7b724be16c3ddc043413d7307a70d403c90175 SHA512 58fad028af2d8b9c17c2aed96703a07fff45e797d7e1a7cfd10ded7b61eaa0c04b36fdab44e154e7920c7e30e79bec96a1702512f033b557f64cc34f43824281 -DIST firefox-127.0.2-hsb.xpi 640687 BLAKE2B 4a4fec20af37db4bf1d1e945088619c11ae98bac270d659bd96d39000a14ef1ee843a45f55786d86dd41d768984de4f173f3a3e4eb0c648aa18203117d94fbec SHA512 10ac939b71b611d6ff052df9288b7e0348d741cb528d06c927523f46413499aef43726f8327bfbbde423ce33309d31a34dbc5c05d3d835e385b461cd5df7007b -DIST firefox-127.0.2-hu.xpi 644724 BLAKE2B bcd603197ee1966a9ce15d39d7e9cbcc7885a7c90e000482d969e88773cea66d80cccf49f35bcee4ccf215f160562b0afd4bd04fe48260f6cb9f059405a171f5 SHA512 baff1ec2c87952299cd8d7780c19ff738ba730cd33e623c8c479dc07bcc2fe5e853e18f3c1ca697e743dddf4ab5e21d14a1cdaf7c5c5d91319b80b2f8cb3ed2e -DIST firefox-127.0.2-hy-AM.xpi 648986 BLAKE2B 83014678273ef12ab46165594c525277187776562d71c0e04e32776649e4b30d0b2dd8f01e940de2fd6be256137ba982c6a2ea8c4368b45f4d0c5ea75775e0dd SHA512 2f25a4a190eca19c750e2fb2632bc227e3511b46e8338fd692e54104e866b8d0e97c57d814116a3220469f9f9a510e51f1a3357a4dd0a84798129be8b51863f9 -DIST firefox-127.0.2-ia.xpi 605289 BLAKE2B 543e1ef07007cda243c6c7921f657e407082ebd4e85f55944b64c221ccd65c85e80ce2c017a076d4e569cb5700d14b254289853df474561e7e446ee7d8c85968 SHA512 1886ebe21c2c3b3a0edaa12aea403eaa6a85fa25f6561f06d8b6aa250a8e010c4bfcc743d5fe304fffd63916dc8855a5ec85fed61c2b0c663f8020fd9626bb0d -DIST firefox-127.0.2-id.xpi 572107 BLAKE2B be501c12b2410cd01e4c7c036aecab49a013dde75c0329dbd546f79e4f7acf2ddc37cf662fa374346bbf925777e968c76d0007d014b95dc922589c07bfcd9bcc SHA512 640b4cc656d7e816bc995418bdbd4680aac11192af29f923c669fbe6d8ee852ea8eefdd255251d83a02c873e5bf50766d0b94ce4f674d1f1b5cd14eb559b2f64 -DIST firefox-127.0.2-is.xpi 611945 BLAKE2B 589f70e6ad040719b901c9a6c74acd675438c6e2d1d43cff4761c9eecabd471cd7a3c93565b2afa635f76e84a2da87e06dc639a983ad2f7dc240bccc4f94d51d SHA512 1c8e31729d54e5a06e244dadcfaa686396776b90797d1f311c98ed779a8a730ab2b5f9ed3c41e89bc4a385e32d3af38df8e54feef1ba0feba6a8de304661330c -DIST firefox-127.0.2-it.xpi 561886 BLAKE2B ff4d47130ee0480b736e929ac3d8dbf3888fe8b084c6fdb977584fd873fb00064458c72cbc6e2014080ed2f92aee91524449dfdbab0023ecc9d2d2eb71d4957d SHA512 412d49cc1cd92a3c50c9e1e517afbf70afa1d1457b41d2065fc0dee19e48c4bdaa4d68b462fff0c09cd102b5548aa815dfc3eb96a44ac6ce7fe4c92a63e19831 -DIST firefox-127.0.2-ja.xpi 673185 BLAKE2B 616faee17face89955ebcbca3fd0c38074eb9c8cb8ae5ac6f0ec298b55a71a781740537d31a55b09f2d3176d886f9dc94b516a277f7d3dad601d279b7b44581c SHA512 e4a1dce545675f2ff979d9ce04675229307ddf06302f4686e31dbf9b9e952a6e6681b9b73835a3e86d21ad0957eeb0a57af41a0f00fbf067a5e311f0aaa533d4 -DIST firefox-127.0.2-ka.xpi 658460 BLAKE2B 1e1cbf2ffd7edb05636b0894840b7729bc5ed07c54aa97730ccf30abb07391d90dc61f03aba68ab1b3cd2258d25195e10a15016ccde628fd207df3a2c8a43328 SHA512 282d5bc341eaca423c0d6f4f503d4e82aa7346d4db54ab64d63efec3985e52b6b3ec2b648265ae6861b96e505aa22b27bc8eab81d036e6f3f1831a30d720e84f -DIST firefox-127.0.2-kab.xpi 602171 BLAKE2B d598af0433beef72504c005532b43511831b62437e62af54fb37af665e79f6aeefeac943a774bc3482ac058441ad25834531a43091a70e66387dbc90f0caa089 SHA512 93aab5f309d1ea6527029dcc414b2c335261605801cdbf6060699abe7fc11a533c67e391b64477b744c87815a4d9e8217dcf78950c707b12c05bb5f9353e27ee -DIST firefox-127.0.2-kk.xpi 701249 BLAKE2B c012acbee6861d3f439912f4b7c1aeea5db6e1c667b716233b8b2941749679e88ec27587ba06810e5c242cf44e1dc71b0cbef73b791b7f1b6f270f0d13829d27 SHA512 933239b89d0008d7e9152be4167d44d3486a99bb1369932cf0c2cb627328fc0f810d5f153373fec7f783668cb93feb2735840962502a291cde0c76d067dc1c72 -DIST firefox-127.0.2-km.xpi 523616 BLAKE2B adc95ed4f61ac2a24e23d5a77050385640ae1ffb6d0ad8719de85aaf6c667d35cfba28ada2a688827ee9973520a01dc23182330a5a0ee505a414745915e21111 SHA512 5f6165b1059a226fc240afee289113f627b2e0d447d80e2c1231236365fa643a37744436b373fb2e62c27f3aac1427e1061901e02223bfdd505e9a93ec038a63 -DIST firefox-127.0.2-kn.xpi 489100 BLAKE2B 252088f2756606cb8eec9b5702b250f490f97367a5b26d7a3c35adcb95977d12494a7518e8a494d7d123fae55c6ff5ab50f79b8102daf734e6463817eaf6fb23 SHA512 333266766c09e952cd7b5a7761a824956da983bbf55cead5f14583f49d4099255101b4b20a0573eacbf97ff075124ed6e15394b8508d7a2c494829c95452d375 -DIST firefox-127.0.2-ko.xpi 655332 BLAKE2B b174ef3b71ccd98705f0099a9d8a9daf2df4d315a9a8400452f6f255e4ae6fa9dba0edb46fcbb129bcb3bd11ec2ae3b4cd415ba3210de1ba62e666e3520499e3 SHA512 0b1c672782c15a3b44e764b5954abd83ffd6c778d3c7105de326861feb14ca65446c16411c9fe13c25d34a4613ce35013c1346dfae14ef18f9b70dd27f7b5003 -DIST firefox-127.0.2-lij.xpi 481948 BLAKE2B 9d2d797dda09480e0bf45d9129f15fdd94c81395597bfdb37c524ea24ef476ed51fb7d298fbef8cd5a2bff8b0a38d052cdeb33c3dab696a3b35e5983d9bdfb99 SHA512 6853cd544af90e32fa06613f59a27b580caa48646a69a274fe53697fb807c3b1d576b84e20585bc1349c8c0d03e9c9f86136e8ad7f7ee255d5b5307e23dc8296 -DIST firefox-127.0.2-lt.xpi 570444 BLAKE2B 6524068e5e2c936a6d82fb55c3387665cc842847b01448bdac5e634a48074fb7d63de55534dcef765c0819b9bac33f2ac527160194716bb6c6fe9846147f3609 SHA512 c714f1d403de3243b7c126c1944178d8244c4ebacff9f65833c6da7e4f426fe9f6fe167027eb54436616801b44b6bcfffb813a9e6fe02b122330938572692f90 -DIST firefox-127.0.2-lv.xpi 571665 BLAKE2B 7e447f4538e60fa05dc4c4d19ac40367f5f34a0b9d90901b07b450a94f0257492b00715200e3b6b85cc7972e4b007fc3d8331f8d3f652ed445954cbe40b335cc SHA512 61289ce06d7b40f3cc64c05c98aa1a3cf79f21f42c08f3dda07716b1448e8a8a0c005f59cfa808bc8c7f362c1399fea50e6130fb028627a3210463bf8b72cc18 -DIST firefox-127.0.2-mk.xpi 491109 BLAKE2B bc1c1db4419ad47e9ac9730b439424688c883e475f927c5671268cb81de37a8a3bf2771dfa80dfa67c6f109faa5ed2974cf410ebfb0f59d586052cc27f319401 SHA512 8fcae32a324e336d9966b63b29455a7d44bee75b2147433d7a63c4ca4a12a7546d1b40ad433114ec95bb006c4f0aef51305fee2a133e24875d78e07da2c6d798 -DIST firefox-127.0.2-mr.xpi 529928 BLAKE2B 5b22c69c09b104fb06864d1ec3698db42a6ec4514f125928d538189a4609f2c9453625ea0300a32d4cbf95205e50a39a544f72f4164d7f4a154f7e867f4d1169 SHA512 8c46bf44f606968f14d0fd62542d2115aad9c8221a7179c56a39fb716416094adf14f8e714c9a765058057cd25b9d8e5150ca4f91d04ba29a6e98285c62a1b77 -DIST firefox-127.0.2-ms.xpi 447570 BLAKE2B eb532ec99408b57058afa89095b9b83a5b8276fb2717794326d4e6a199ed656ae6f6a0244e30e4a29e6b4133cae40e609c9badd1bde18483e21f1f0a55bc5d7e SHA512 f4ee3966274156890c6c87d316f8eef628a78cf3fa4f37f12a74ccfa84e8ab5390c6da758df45ef90e985a069f139256eaf557b050e93e832b398ed38228596f -DIST firefox-127.0.2-my.xpi 516482 BLAKE2B 79892f75c81b973593e2fa5126fa861702d8612623b331c1c05856c86c8b5041ccb9587a1a7f6f6acc3d26269d5f39f8617f4b3a28e0a44662da543210b75084 SHA512 324244e8208859813d64ee578075a48cc4c9823154501ef1a3589f0c166be757dd470c563aa1ae7d8b46769a6d62c634c7b377859404d7c3e8b40a1cde596216 -DIST firefox-127.0.2-nb-NO.xpi 602855 BLAKE2B b385c75dd70ad2de9bca8cd9ca7f7a12e2519c5a3a8f52436cc4c74abb69176b9f1d353e951416bd72f6bb1bde9891cebb928dbd60b84db48d06c3a497f8b1dc SHA512 818598d7378d97f9cbff4b885660e950024c215bc9f6a669c5c8e7893fb3393e1bf6cb41d8e3feac142251d66796dd3174a4dfe968c7f80358c6cec63f231651 -DIST firefox-127.0.2-ne-NP.xpi 508759 BLAKE2B 8ebb4db29607220a96f7e81d539510830cf317936aae99c289ea35bdb77ef2aa493ab364c8ced059f5598186e68d6d6f069e41456c5131d06d0857c7d64df006 SHA512 5cf6ea3dbb0d82365beab3dfa6718014162b2901eb1ba8183106a99703004d0448b69fb49f6b140c8747b5ae00ff55b5b40fb15dbb60a89332f093d39c955898 -DIST firefox-127.0.2-nl.xpi 611454 BLAKE2B c9a18433a9f584b202cc5d3f1ac31ab77123b8682477f9874bee120ef5d5b34835fece3bab2eb9440860dfba1a925dc05dd295af1f14c851dbf54b0d0c075a88 SHA512 149f5c2d52fa2722b6f0d8f39796bc376d8ac0d65c07c61be43bdabfe135dc3056072bc3ffed433eae48ea9cc81ab8ea88759f8d2c4984a0ba337279d384b5e4 -DIST firefox-127.0.2-nn-NO.xpi 603355 BLAKE2B 67ac7a6dcaba44ec0190b7c8608b6edbae49fb9f6c61bda8dd9d1d55dc27e2e3cdbe57de79137bedc70dfe1f310dd192668be6166adb242e01ec8a72ce6ad623 SHA512 c22d95313aa51f705ad32255af4a43aefe645c6fd972b5d2e2f73e3369b1379c3ddb961823333323862b3eb8c5f2f12ebb16d9fdd82f39f8a992f955601f7b42 -DIST firefox-127.0.2-oc.xpi 608807 BLAKE2B 9df8419070a18ffe73e76b467e0b82fef9480e3d43fc5592376a96cf1a7c46a24fc7c59f0a7d99a1f291bb98548e3a55891daf32994e52f9f60fc407cfd1f62b SHA512 ee2cc4489784c7b26493a476730bc596b44cb6ec8703fa4e8c8066ed67e271ad23e720517b2577cced60e53031bb8db6fe2cc056f28f3956811216be0656df8a -DIST firefox-127.0.2-pa-IN.xpi 687023 BLAKE2B 773a89ac237620167b1475c980669f050d8bf1b70c7bddb6bd2198c1266d14fa8e4b966e19a66e6201c0f52f6e6767432279395a5baf72d4ad7a8ce9c69398ac SHA512 f21c8ab2a7bb86a3ae57a2552bfc16ea3842d6ac4b4773161c15f15512a2ef2dcc57a54544b36bd1ac1ecb550f86cf7ec092beae1b3fa261d541cbc9f2112a52 -DIST firefox-127.0.2-pl.xpi 631922 BLAKE2B 1f490bf716751765f37e947065c79e40bded9ba716bd0189bb59c25f36a0be83b6d9879a2ca1dbd873d9438eb0cb4189cd15f72d19a6d7afe2158c92f0fe5746 SHA512 c25788444c441b0ad0ba573a194fabe8922cc611586ee19a9c7854307fb609552152e05cb624c1d17cf9bcec1662ed9a463b102ecd4aa9265840a48f56f858f9 -DIST firefox-127.0.2-pt-BR.xpi 616113 BLAKE2B df9bfd077412f11ecc945ce17155f01a812ca3f4b5915231625fc8c2a85e6a2a73439c32dfdf5137fec208fc44608b3a4528dc2a38e59250c5834542df943b01 SHA512 d80533c25e2f6fb8e4ce428332ffabc24db70cba180fa8f99948f94c5fa018b51466049f27ef4b45c68d50b4e2fbc2a510c651433b84d24c0af5de2d7e2922bb -DIST firefox-127.0.2-pt-PT.xpi 622365 BLAKE2B 3a58c60a55ecb97079443c8b8f11c74e11b316e4cadd202b49c4a67d8c1ecca543295638e292bb843b9d53a8ae0f11746a507ccc13bc29e23a655b72962ca8b3 SHA512 6b3f52b3f597256263d6a31a9db4fe504405df80c77e33d4203438b31c1e4b5f0ea6b55bcfd088608b65efdf333d255dd51a6c62f6a6920542009d48d49a9277 -DIST firefox-127.0.2-rm.xpi 612109 BLAKE2B 037339854f561f18dad9b3f71ff29c93c62389a09bde63d038dc5432806d6793f89836a0b7a2b539fc1abc3e5da938841f4f56271c146507eeaaf1213076b6bf SHA512 b5e5ef4614f3c85eca0d95fc076ed6371ded5ee48186c58b209ae3d0386e4ec540c6fbbd479f7a4ac939e5687f51246d2d98c63ded1c791e3d429456e6743cef -DIST firefox-127.0.2-ro.xpi 547541 BLAKE2B 05bc2ce40ad88755d62e001e5fbfc2ecc3f8de44d4c9a66b05d2aa1f5f9bf9fa47942a070234a4bc17be222e50d9ac57a876b3c935edaf868116738cb2ce513c SHA512 69a69804d9e9555971e997c9c1a9979343b9e6d92d250f6056fb1a43cf9f319675bd8f9534f2b195d2b17aa896ec2f48bd0f4fece1cf9a953b80b89a242ea494 -DIST firefox-127.0.2-ru.xpi 713587 BLAKE2B d7e43eb431e9ccd825c369a5ae03da01d8cd3e75a75ec3976b6c077b8017f1399bd8f6898fff6dcd763b471b85d1e045734d2c87be3f5479ef71be25b2a820fd SHA512 9bc67383511f4e3772a8d0387bc6356c1bc6279378cf92459b3fed84027c063180f27565fd207ca87aba43b23d89b88985566041d54fa87b796dd72ff5f8c3b8 -DIST firefox-127.0.2-sc.xpi 582650 BLAKE2B bc0a2823a0358c3369f09a4ae8f945ff24cb03f64cc364e492ea7cf4a2a75d0091e4c1156135ca240d2cad8cb64a7224b7435586d612a97718f3fa52e02573b5 SHA512 7d98df466fca23340be563faf94ced9be26938deffc5bee708ba1b9d0adf0041e4353973a447b153ed30dd7fa3d475e6479b7e2f99514e34c1b8b101e569387d -DIST firefox-127.0.2-sco.xpi 509002 BLAKE2B 51c464944fb8b7bf1253d5283ac373b66a225936cc10d041f1a1afa7aa2945ad355ac76f4c7e0d486af5376f5a6168ab4fd7127adba7650d8beb48a64e2c290b SHA512 7f3f1f329b03011fd5e92ca83819878e52bcaa558d27fa8245fd97ba6a74263472dbc9e9e3b27a3d21243df7e97fa393cdabe5c3b7ec797dfea2365ef72caa1e -DIST firefox-127.0.2-si.xpi 603740 BLAKE2B f4e030dfa2a86adcbbcb5a012fd3b94ef771dd4ef04c84d7d92e9d0076444db69d82362836438179161cc76f30ea1fe28ff208d9eba9601ec36f0cc2e294da8d SHA512 052ed58c249b438855f0eec798bcd7168e2a4cea40f4cafc20c71d1420416dd4bffaeefab07e1468d2db138c0c8995512baa392f58fe650ff0292d2ddba4d205 -DIST firefox-127.0.2-sk.xpi 646183 BLAKE2B 066ee127bde4f408f04ece718dfdaa9e9787a9d531f172edbc645423375e122e86667c149225ef865463ed6506f861347229781d66a746706914f9400543a29d SHA512 c010b5ec4d21f751acc65fd11909a2d11204558c2ff3c599678dde58cf64525776905d1cd0ead10103e1a4ddaf8bf1e74a2bd187be79e661efdcfb8e76c78cb5 -DIST firefox-127.0.2-sl.xpi 612536 BLAKE2B 154f285a2c34c47ad645562c0739d7167d09dae0cc3310dea11c66531d01cd760328d487fc4e287660f6b8abd83ec5280eb496cef2d5ca55ed9a4a730f61a8c6 SHA512 74a722e53c9d79b7d6ac71bea7d20b178e8ae0444f4c237f9038ba984c9f1f83b4f1b413469f43f56b2dce04b5dd96c07717cb13f1cea15ae61548e9d14c1c81 -DIST firefox-127.0.2-son.xpi 414287 BLAKE2B ef3c9c5cbb49b995d4031173daa9b2671d31f8c1607454d728fbc9a48337584b507d39a5c3f763d471d0069d7d03c04a20156f849976dd1e3f1bc1ec060a48fb SHA512 a127c147748f1829537707bafd0803ba0be05500eac44a310a035c3600e59b354249f82d03e1414f72c943b682deddbaccf38741791809c6e6fcb6a2535a1e88 -DIST firefox-127.0.2-sq.xpi 632514 BLAKE2B 57ed4165eb1c50706d4daa426b9561bf55114323c57f252a5cb10f24d12cae7929a663431ec815ab70bec7271e2c99ce42b1d33503d00f4335ad829bdf072a10 SHA512 b26dbcb8ffb1f7b346f5afe1b2a96bef700b0274c9423fccce3a6f9a72870740b422e60ca153a42fdd5dd550ea21348be457bafe11e16702e9013c71ad76b12c -DIST firefox-127.0.2-sr.xpi 637089 BLAKE2B 0906ed4130759f223f0c9197ccefee7ee1a18e97adb2e3f95a37dd68e324f965571b2d465a6540241f094f713775528316cc9e20e92a16c6c0b3b93b58046163 SHA512 7f2ba2683e858264729389e1f87db5cc2facd712155cfba0b742e71977e40bd92aec35e85ba97cc089da1533d2a95aec727eee059db2b4e23cc7dc2085ca0ea9 -DIST firefox-127.0.2-sv-SE.xpi 613192 BLAKE2B 62fe88ce76e60a37d5d17d41aae8115fbd58f5e19f12a391dd12504d78b748d5f656eb72f2457ed0d2b4c5a423710333230a5cac7b811efc3b9bbf9425fc0e23 SHA512 0a3fc99b45702c4ecc38657c557681edaa5941d43cd2946310ebdc997306ba5d0566742c7bbdda44f1d52e9ea2b2d7d378a2e2ceb26cf5927d4f36b8cb5afeea -DIST firefox-127.0.2-szl.xpi 524220 BLAKE2B f8519e76c38de1fce2d84dcae35155482688d9ac5273ae47c4fea0d86fcffddcc5313395019b6fcc9eff045cede9b2ed19cf4f030c92395aedb50aa6ffdd1670 SHA512 090353e034ad44199601012d9a99a8903ed6cb0868e25d0a5316cb0a34deb51a9a3f64d1c4f358d79702ad1a21ceb5d72eac08a325f875c4bb4d8a60a1a0ccdc -DIST firefox-127.0.2-ta.xpi 505373 BLAKE2B 6e14af1ef396c63bc689033c1b89dd00019338c6b065f6e858a337ba0e38f5d08802fd8c85d1abc8da5ad95d970a9ff96f05076b029f482e246ab48ffbdf00ea SHA512 6f6096e2a0ca3e82649c97240052235d480456f32d38a810b0d5d7ac8fe4f5cd2406e44b4d92797154940213200024a1f6eb971b7dce12617f180f16998ecac6 -DIST firefox-127.0.2-te.xpi 558857 BLAKE2B 8492c705d927f9bfa27a41097f46b8f2bbe6532940360ce4e878fa117643bc6d5e82616fbd401a083810ab99325f821fdc670185181f2a88f9b03dd425d0ef08 SHA512 d5269e7b39125d492e13f4588037e970a39838d527483fa3e043f8087772cebbbd788f5242ea66db6825995c028bf1db2abe4abc28cabf42362cba5fe813ae41 -DIST firefox-127.0.2-th.xpi 689043 BLAKE2B d6175e8a39280a990dd5e2f598ccf7c920b9abf770ba68c7f87cd1c129b0e426d91155f7939c87716bd1921a58f3f411d0ed051e210cca19be9c275945fbf61c SHA512 1535857c7c226c8fcbe4b0d168953ee79868ddc590b0e52b70806e69aa0e9e9dca975062cea8f7028d49c1d6168ba0e4e0e4312e008c7813ffa3055ede341a06 -DIST firefox-127.0.2-tl.xpi 532003 BLAKE2B 9cc051e3025efe3b0a21bfa77cf9897ec5348a88be2481ad275c0ee1ee9756ff2d42bbd73aa5050ab0c5b540ccbb1f9242e1d38168098be8d139bf03475209dd SHA512 43611d4e87c7b5e5a5d4fe7ed505b08e5f768e340a01f0aa83e923f07d2bac9e8563981d8e5c28a3d52187a74f517a3d49c29aea57c6c9981f9943e54c940b0a -DIST firefox-127.0.2-tr.xpi 626623 BLAKE2B d52a002ea0eb3dcd6097470ea7aef86c75cbaa7a98c0ff123ced4aa9dcbd7cbe6173f83350d48311d3f3f25eb921f64362fa2a9cb178010ee7d92e162bd1ba0a SHA512 96fd86f48fda7cdd5f6f438ae5541d4a500169ff9957a47102ceb751fc2d89ad885c9fd0648a3e0fc9c46cfe1763763822e11ee4932726f3c2ef0690fed1be7f -DIST firefox-127.0.2-trs.xpi 501856 BLAKE2B 558bab47c71966a918c263834477838901ffd7650ad4af63731b44631f26b8f84cb5f26c16ffdb040657dfc39a7704453d66d93532a8ce546556379c30df8849 SHA512 5ad75696118ff20e7089ed1ba109c04307898533e3105529535e7243a53642b4b5ae9407b0ca0ddb2e64d5b9be871a20d740a7be58012ec0f6693194c5d95c8d -DIST firefox-127.0.2-uk.xpi 705155 BLAKE2B 11287c54554accce94129cbbf30f987ec3f3dfa3430eea7efeb36b79a92d849aa548bb97cb2db80b9ac91c76761a0c1b906dff856b69be514d408ba81391565c SHA512 0f5c9a05e82a765e7f36fdc3d99dc2c37593efce24ecfa2e5f31c69500b4c8fdb80629bd1f3b504437ca961a49a111a5dc404a8ef076420dc92036b9dbd47c17 -DIST firefox-127.0.2-ur.xpi 558321 BLAKE2B 0993ac2acdba4798d3f32ab68b52a57151d3ae34db7e77ae792ed4adb3717b5d816116b3718348434a4023b862a5fa31cf351902cb7537e0e00183f6fa848e86 SHA512 2c131c6220f62655c33f7b6831c4dea66ba1dae0a4602761ae2ff5284559093aeaadcc40030d996c995ac8150735fa8166bf39c238d98b675fb3560766d266a0 -DIST firefox-127.0.2-uz.xpi 476583 BLAKE2B ec8571499e1813b37030cff7b4b06ce4cc2180f65a3dd6fb6b1936b85eff56dc5a9396cdff034fcd96dc351763ef02ce2b3e03a1a7711606281c3fdcb6e7b4c5 SHA512 de62f38157aa6ecdd75659f2fc660c3466980ca633fb45705b92830cc4951a5d24e68dd50e06b15a99610dc0d00e05dc0b59fd44befdb0a636107b93f5de68b0 -DIST firefox-127.0.2-vi.xpi 650522 BLAKE2B b203152c7803a4d87465a3bad14a4a7a2b6e6c5745fae6e514fcc7467223a165bda3f5f0568600fce1ea38c650bbf9191b77aa8831a997127d945f50a169897c SHA512 45fcf4ca1e02495f6fec520d0dc095fce55e208e9805c641b80e600092a7b117be965e73990042ac7a8fffc421c43309f0d8875389d6a281321f0aece608f53a -DIST firefox-127.0.2-xh.xpi 415023 BLAKE2B 09ad510ea9a674f6f0aad08fcdd50dbe5196ec119d7a51fc8fcc02cd2358ce1df12dd46b4b23dc3a927a99a3727ee9159c44815e4ce074ba83a82bf2a0421b41 SHA512 a226b56517a49d29d74da8dba3d8e7edef132b970bc7f41f489973b26ba63961e2defc5e6d765b1f69dca05e07729ac49e953aeb195a5887fbd32fcf1d053b73 -DIST firefox-127.0.2-zh-CN.xpi 650833 BLAKE2B 28df31392be1acb5a73af40b1dd8744056cd9f5a179a5f95c31a16ec9f0c2a97deb52a927b1322ee1118691cfec05e35105953938a0c1ae527994805f4401f24 SHA512 61bc371d4d0e343f19a48a2ed473575176bdbd2b084ee464253e2958eb08673af9fefe3709dbad127254e8991a813d63de6156f60b773a0f6546a82728401595 -DIST firefox-127.0.2-zh-TW.xpi 653089 BLAKE2B f7d6c661cc6f7bdc068cb9b00991f164e3b6b123cef5af553c6749de3ce3eb6609a71115627532093f7450b08f6df5b5726903e70f61279b6292004918f9e5cf SHA512 3a8a3c3979db17b3a56fdb2049fb1a437b8c881dc6587affac0a24f936ab53845672da3cdb452e4831acd2ec080f08dd4fdb6f40bb8edbffbb2d2ff688eee96b -DIST firefox-127.0.2.source.tar.xz 554998504 BLAKE2B 63221122b5d3ef57f47895fc3583ea4b6dd97a636934054572ac1fb1005777b2d76229124f4b8f293f34791720992489f9ded0e5707d930977fedb160dd0966c SHA512 d5a959a032309b8a42690b7f5afd5110c2e6ca7de426e1529d50f59cf065e67623ed98bf3aab39ce4d345ccfad2a273b24ce4f87c7ba7e6eccf2e9dfe3008d8b -DIST firefox-127.0.source.tar.xz 558840124 BLAKE2B 78fe92863389763759ce6e25dccc8adb19b8c35b59e591f40982fe5cd3b5511fee8f809567fa5aade68fcf3b40c1860f5e63aabdef0421c94b803d30d32d4988 SHA512 5a17bce357e7f445c37540115f2c131ad5a055c0cf04f20bc2eaca18f8d241a99ac76739d172b38f2ad2681633f901a0a15893801082ac5db9e20e31fc8b8291 DIST firefox-128-patches-04.tar.xz 17056 BLAKE2B c8df37a4ea83b077e7c7fc2b7538f06421637899dae266831a316473ae04b7a5e9feaad8b4ca755f3a22dc2964ec4fff32160b361d2b394fdaf18fbef0742561 SHA512 885a0f27acfc8e7e6e3713c821fd043651b555b21b7991a3ee9afbfa7c2442408c671c0436de743606fee8efa5f5455d860d65fc59fdfd7a6339eae997fa9209 DIST firefox-128.0-ach.xpi 463921 BLAKE2B 016138341e087f6afd53c82e0b33700c20c341491e6b12f444cc7d85aea1f0e08f4bfa7395af5cf888984f57a3fd6a41f5df39fced8267e0bd0388753a1ad994 SHA512 b67378c13ecd5e0c7e570b69c2f267232749ce71c97ad987b3e6b1215b84ff934918d5fccbdefe99dbd5a331917b8d545e9ccc8aad4aba25329231ad357a9612 DIST firefox-128.0-af.xpi 417369 BLAKE2B 434dd6861e1b378fff90cc704a7cf63b90de4f54d6b8153ad9051beb0aae84c37686c052624b8d38f60cbf6885162142f5f2a126bcf2a238cccf63bc7194dcd5 SHA512 e3ef703a909fa12d944c80aec83c9d8ddf8c49aab18f62c2ebf6f4ad08d17e17b5494b472480a41c510e522994db0afe796259879668bb319c4fab27979e2970 diff --git a/www-client/firefox/firefox-115.11.0.ebuild b/www-client/firefox/firefox-115.11.0.ebuild deleted file mode 100644 index 9764cb0160da..000000000000 --- a/www-client/firefox/firefox-115.11.0.ebuild +++ /dev/null @@ -1,1414 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz" - -LLVM_MAX_SLOT=17 - -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -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 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="amd64 arm64 ppc64 ~riscv x86" - -SLOT="esr" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" -IUSE+=" wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate screencast" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:rapid - screencast? ( media-video/pipewire:= ) - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - || ( - ( - sys-devel/clang:17 - sys-devel/llvm:17 - clang? ( - sys-devel/lld:17 - virtual/rust:0/llvm-17 - pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] ) - ) - ) - ( - sys-devel/clang:16 - sys-devel/llvm:16 - clang? ( - sys-devel/lld:16 - virtual/rust:0/llvm-16 - pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) - ) - ) - ( - sys-devel/clang:15 - sys-devel/llvm:15 - clang? ( - sys-devel/lld:15 - virtual/rust:0/llvm-15 - pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) - ) - ) - ) - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.24.3 - net-libs/nodejs - virtual/pkgconfig - !clang? ( - >=virtual/rust-1.65 - <virtual/rust-1.78 - ) - !elibc_glibc? ( - || ( - <dev-lang/rust-1.78 - <dev-lang/rust-bin-1.73 - ) - ) - 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.90 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - dev-libs/dbus-glib - 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 ) - screencast? ( media-video/pipewire:= ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - dev-libs/dbus-glib - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -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' - - # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work - addpredict /dev/dri - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # May need a wider addpredict when using wayland+pgo. - addpredict /dev/dri - - # Allow access to GPU during PGO run - local ati_cards mesa_cards nvidia_cards render_cards - shopt -s nullglob - - ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if [[ -n "${ati_cards}" ]] ; then - addpredict "${ati_cards}" - fi - - mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') - if [[ -n "${mesa_cards}" ]] ; then - addpredict "${mesa_cards}" - fi - - nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') - if [[ -n "${nvidia_cards}" ]] ; then - addpredict "${nvidia_cards}" - fi - - render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') - if [[ -n "${render_cards}" ]] ; then - addpredict "${render_cards}" - fi - - shopt -u nullglob - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - if ! use ppc64; then - rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die - fi - - if use x86 && use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/0029-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" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # Make ICU respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py \ - || die "sed failed to set num_cores" - - # 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 cargo checksums from crates we have patched - # moz_clear_vendor_checksums crate - moz_clear_vendor_checksums audio_thread_priority - - # 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" - tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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 - mozconfig_add_options_ac 'Gentoo default' \ - --allow-addon-sideload \ - --disable-cargo-incremental \ - --disable-crashreporter \ - --disable-gpsd \ - --disable-install-strip \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-legacy-profile-creation \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - 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 - - 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 - fi - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - 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 and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - # LTO flag was handled via configure - filter-lto - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - 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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # With profile 23.0 elf-hack=legacy is broken with gcc. - # With Firefox-115esr elf-hack=relr isn't available (only in rapid). - # Solution: Disable build system's elf-hack completely, and add "-z,pack-relative-relocs" - # manually with gcc. - # - # elf-hack configure option isn't available on ppc64/riscv, #916259, #929244, #930046. - if use ppc64 || use riscv ; then - :; - else - mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack - fi - - if use amd64 || use x86 ; then - ! use clang && append-ldflags "-z,pack-relative-relocs" - fi - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - if ! use elibc_glibc; then - mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc - fi - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - if use system-python-libs; then - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" - else - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - ./mach configure || die -} - -src_compile() { - local virtx_cmd= - - if tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - 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 - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}-esr.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - - 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 - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} diff --git a/www-client/firefox/firefox-115.12.0.ebuild b/www-client/firefox/firefox-115.12.0.ebuild deleted file mode 100644 index 9764cb0160da..000000000000 --- a/www-client/firefox/firefox-115.12.0.ebuild +++ /dev/null @@ -1,1414 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz" - -LLVM_MAX_SLOT=17 - -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -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 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="amd64 arm64 ppc64 ~riscv x86" - -SLOT="esr" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" -IUSE+=" wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate screencast" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:rapid - screencast? ( media-video/pipewire:= ) - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - || ( - ( - sys-devel/clang:17 - sys-devel/llvm:17 - clang? ( - sys-devel/lld:17 - virtual/rust:0/llvm-17 - pgo? ( =sys-libs/compiler-rt-sanitizers-17*[profile] ) - ) - ) - ( - sys-devel/clang:16 - sys-devel/llvm:16 - clang? ( - sys-devel/lld:16 - virtual/rust:0/llvm-16 - pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) - ) - ) - ( - sys-devel/clang:15 - sys-devel/llvm:15 - clang? ( - sys-devel/lld:15 - virtual/rust:0/llvm-15 - pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) - ) - ) - ) - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.24.3 - net-libs/nodejs - virtual/pkgconfig - !clang? ( - >=virtual/rust-1.65 - <virtual/rust-1.78 - ) - !elibc_glibc? ( - || ( - <dev-lang/rust-1.78 - <dev-lang/rust-bin-1.73 - ) - ) - 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.90 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - dev-libs/dbus-glib - 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 ) - screencast? ( media-video/pipewire:= ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - dev-libs/dbus-glib - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -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' - - # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work - addpredict /dev/dri - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # May need a wider addpredict when using wayland+pgo. - addpredict /dev/dri - - # Allow access to GPU during PGO run - local ati_cards mesa_cards nvidia_cards render_cards - shopt -s nullglob - - ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') - if [[ -n "${ati_cards}" ]] ; then - addpredict "${ati_cards}" - fi - - mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') - if [[ -n "${mesa_cards}" ]] ; then - addpredict "${mesa_cards}" - fi - - nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') - if [[ -n "${nvidia_cards}" ]] ; then - addpredict "${nvidia_cards}" - fi - - render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') - if [[ -n "${render_cards}" ]] ; then - addpredict "${render_cards}" - fi - - shopt -u nullglob - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - if ! use ppc64; then - rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die - fi - - if use x86 && use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*-musl-non-lfs64-api-on-audio_thread_priority-crate.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/0029-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/0029-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" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure \ - || die "sed failed to set num_cores" - - # Make ICU respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py \ - || die "sed failed to set num_cores" - - # 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 cargo checksums from crates we have patched - # moz_clear_vendor_checksums crate - moz_clear_vendor_checksums audio_thread_priority - - # 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" - tc-export CC CXX LD AR AS NM OBJDUMP RANLIB 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 - mozconfig_add_options_ac 'Gentoo default' \ - --allow-addon-sideload \ - --disable-cargo-incremental \ - --disable-crashreporter \ - --disable-gpsd \ - --disable-install-strip \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-legacy-profile-creation \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - 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 - - 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 - fi - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - 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 and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - # LTO flag was handled via configure - filter-lto - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - 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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # With profile 23.0 elf-hack=legacy is broken with gcc. - # With Firefox-115esr elf-hack=relr isn't available (only in rapid). - # Solution: Disable build system's elf-hack completely, and add "-z,pack-relative-relocs" - # manually with gcc. - # - # elf-hack configure option isn't available on ppc64/riscv, #916259, #929244, #930046. - if use ppc64 || use riscv ; then - :; - else - mozconfig_add_options_ac 'elf-hack disabled' --disable-elf-hack - fi - - if use amd64 || use x86 ; then - ! use clang && append-ldflags "-z,pack-relative-relocs" - fi - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - if ! use elibc_glibc; then - mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc - fi - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - if use system-python-libs; then - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" - else - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - ./mach configure || die -} - -src_compile() { - local virtx_cmd= - - if tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - 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 - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}-esr.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - - 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 - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} diff --git a/www-client/firefox/firefox-126.0.1.ebuild b/www-client/firefox/firefox-126.0.1.ebuild deleted file mode 100644 index 74c694ad0612..000000000000 --- a/www-client/firefox/firefox-126.0.1.ebuild +++ /dev/null @@ -1,1423 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-126-patches-02.tar.xz" - -LLVM_COMPAT=( 17 ) - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -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" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" - -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" -IUSE+=" +telemetry valgrind wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:esr - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - $(llvm_gen_dep ' - sys-devel/clang:${LLVM_SLOT} - sys-devel/llvm:${LLVM_SLOT} - clang? ( - sys-devel/lld:${LLVM_SLOT} - virtual/rust:0/llvm-${LLVM_SLOT} - ) - pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) - ') - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.26.0 - net-libs/nodejs - virtual/pkgconfig - !clang? ( - >=virtual/rust-1.74 - <virtual/rust-1.78 - ) - !elibc_glibc? ( <dev-lang/rust-1.78 ) - 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.99 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - sys-apps/dbus - ) - jack? ( virtual/jack ) - pulseaudio? ( - || ( - media-libs/libpulse - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - libproxy? ( net-libs/libproxy ) - selinux? ( sec-policy/selinux-mozilla ) - sndio? ( >=media-sound/sndio-1.8.0-r1 ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - valgrind? ( dev-debug/valgrind ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -virtwl() { - debug-print-function ${FUNCNAME} "$@" - - [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" - [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" - tinywl -h >/dev/null || die 'tinywl -h failed' - - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm-r1_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # Clear tons of conditions, since PGO is hardware-dependant. - addpredict /dev - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die - - # Workaround for bgo#915651 on musl - if use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die - fi - - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # Workaround for bgo#915651 - if ! use elibc_glibc ; then - if use amd64 ; then - export RUST_TARGET="x86_64-unknown-linux-musl" - elif use x86 ; then - export RUST_TARGET="i686-unknown-linux-musl" - elif use arm64 ; then - export RUST_TARGET="aarch64-unknown-linux-musl" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" - - # Make ICU respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" - - # Respect MAKEOPTS all around (maybe some find+sed is better) - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clear checksums from cargo crates we've manually patched. - # moz_clear_vendor_checksums xyz - moz_clear_vendor_checksums proc-macro2 - - # 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-gpsd \ - --disable-install-strip \ - --disable-legacy-profile-creation \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - elif use valgrind; then - mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox - else - mozconfig_add_options_ac '' --enable-sandbox - fi - - # Enable JIT on riscv64 explicitly - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - mozconfig_use_enable valgrind - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - - # Increase the FORTIFY_SOURCE value, #910071. - sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die - fi - - local myaudiobackends="" - use jack && myaudiobackends+="jack," - use sndio && myaudiobackends+="sndio," - use pulseaudio && myaudiobackends+="pulseaudio," - ! use pulseaudio && myaudiobackends+="alsa," - - mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" - - mozconfig_use_enable wifi necko-wifi - - ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build - - if use X && use wayland ; then - mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland - elif ! use X && use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only - else - mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only - fi - - # LTO is handled via configure - filter-lto - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - if tc-ld-is-mold ; then - # mold expects the -flto line from *FLAGS configuration, bgo#923119 - append-ldflags "-flto=thin" - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - mozconfig_add_options_ac '+debug' --enable-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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # 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 - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - 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" - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - - if ! use telemetry; then - mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - 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 tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - - # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/vaapitest - - # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) - if use arm64 ; then - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/v4l2test - fi - fi - - if ! use gmp-autoupdate ; then - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - einfo "Disabling auto-update for ${plugin} plugin ..." - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" - pref("media.${plugin}.autoupdate", false); - EOF - done - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal - if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then - optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver - fi - - if ! has_version "sys-libs/glibc"; then - elog - elog "glibc not found! You won't be able to play DRM content." - elog "See Gentoo bug #910309 or upstream bug #1843683." - elog - fi - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} diff --git a/www-client/firefox/firefox-127.0.1.ebuild b/www-client/firefox/firefox-127.0.1.ebuild deleted file mode 100644 index 72aa3df83042..000000000000 --- a/www-client/firefox/firefox-127.0.1.ebuild +++ /dev/null @@ -1,1420 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-127-patches-02.tar.xz" - -LLVM_COMPAT=( 17 18 ) - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -MOZ_ESR= - -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" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" - -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" -IUSE+=" +telemetry valgrind wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:esr - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - $(llvm_gen_dep ' - sys-devel/clang:${LLVM_SLOT} - sys-devel/llvm:${LLVM_SLOT} - clang? ( - sys-devel/lld:${LLVM_SLOT} - virtual/rust:0/llvm-${LLVM_SLOT} - ) - pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) - ') - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.26.0 - net-libs/nodejs - virtual/pkgconfig - !clang? ( >=virtual/rust-1.76 ) - !elibc_glibc? ( dev-lang/rust ) - amd64? ( >=dev-lang/nasm-2.14 ) - x86? ( >=dev-lang/nasm-2.14 ) - pgo? ( - X? ( - sys-devel/gettext - x11-base/xorg-server[xvfb] - x11-apps/xhost - ) - !X? ( - || ( - gui-wm/tinywl - <gui-libs/wlroots-0.17.3[tinywl(-)] - ) - x11-misc/xkeyboard-config - ) - )" -COMMON_DEPEND="${FF_ONLY_DEPEND} - >=app-accessibility/at-spi2-core-2.46.0:2 - dev-libs/expat - dev-libs/glib:2 - dev-libs/libffi:= - >=dev-libs/nss-3.100 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - sys-apps/dbus - ) - jack? ( virtual/jack ) - pulseaudio? ( - || ( - media-libs/libpulse - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - libproxy? ( net-libs/libproxy ) - selinux? ( sec-policy/selinux-mozilla ) - sndio? ( >=media-sound/sndio-1.8.0-r1 ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - valgrind? ( dev-debug/valgrind ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -virtwl() { - debug-print-function ${FUNCNAME} "$@" - - [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" - [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" - tinywl -h >/dev/null || die 'tinywl -h failed' - - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm-r1_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # Clear tons of conditions, since PGO is hardware-dependant. - addpredict /dev - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die - - # Workaround for bgo#915651 on musl - if use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die - fi - - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # Workaround for bgo#915651 - if ! use elibc_glibc ; then - if use amd64 ; then - export RUST_TARGET="x86_64-unknown-linux-musl" - elif use x86 ; then - export RUST_TARGET="i686-unknown-linux-musl" - elif use arm64 ; then - export RUST_TARGET="aarch64-unknown-linux-musl" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" - - # Make ICU respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" - - # Respect MAKEOPTS all around (maybe some find+sed is better) - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clear checksums from cargo crates we've manually patched. - # moz_clear_vendor_checksums xyz - moz_clear_vendor_checksums proc-macro2 - - # 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-gpsd \ - --disable-install-strip \ - --disable-legacy-profile-creation \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - elif use valgrind; then - mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox - else - mozconfig_add_options_ac '' --enable-sandbox - fi - - # Enable JIT on riscv64 explicitly - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - mozconfig_use_enable valgrind - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - - # Increase the FORTIFY_SOURCE value, #910071. - sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die - fi - - local myaudiobackends="" - use jack && myaudiobackends+="jack," - use sndio && myaudiobackends+="sndio," - use pulseaudio && myaudiobackends+="pulseaudio," - ! use pulseaudio && myaudiobackends+="alsa," - - mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" - - mozconfig_use_enable wifi necko-wifi - - ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build - - if use X && use wayland ; then - mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland - elif ! use X && use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only - else - mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only - fi - - # LTO is handled via configure - filter-lto - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - if tc-ld-is-mold ; then - # mold expects the -flto line from *FLAGS configuration, bgo#923119 - append-ldflags "-flto=thin" - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - mozconfig_add_options_ac '+debug' --enable-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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # 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 - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - 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" - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - - if ! use telemetry; then - mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - 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 tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - - # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/vaapitest - - # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) - if use arm64 ; then - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/v4l2test - fi - fi - - if ! use gmp-autoupdate ; then - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - einfo "Disabling auto-update for ${plugin} plugin ..." - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" - pref("media.${plugin}.autoupdate", false); - EOF - done - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal - if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then - optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver - fi - - if ! has_version "sys-libs/glibc"; then - elog - elog "glibc not found! You won't be able to play DRM content." - elog "See Gentoo bug #910309 or upstream bug #1843683." - elog - fi - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} diff --git a/www-client/firefox/firefox-127.0.2.ebuild b/www-client/firefox/firefox-127.0.2.ebuild deleted file mode 100644 index 72aa3df83042..000000000000 --- a/www-client/firefox/firefox-127.0.2.ebuild +++ /dev/null @@ -1,1420 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-127-patches-02.tar.xz" - -LLVM_COMPAT=( 17 18 ) - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -MOZ_ESR= - -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" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" - -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" -IUSE+=" +telemetry valgrind wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:esr - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - $(llvm_gen_dep ' - sys-devel/clang:${LLVM_SLOT} - sys-devel/llvm:${LLVM_SLOT} - clang? ( - sys-devel/lld:${LLVM_SLOT} - virtual/rust:0/llvm-${LLVM_SLOT} - ) - pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) - ') - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.26.0 - net-libs/nodejs - virtual/pkgconfig - !clang? ( >=virtual/rust-1.76 ) - !elibc_glibc? ( dev-lang/rust ) - amd64? ( >=dev-lang/nasm-2.14 ) - x86? ( >=dev-lang/nasm-2.14 ) - pgo? ( - X? ( - sys-devel/gettext - x11-base/xorg-server[xvfb] - x11-apps/xhost - ) - !X? ( - || ( - gui-wm/tinywl - <gui-libs/wlroots-0.17.3[tinywl(-)] - ) - x11-misc/xkeyboard-config - ) - )" -COMMON_DEPEND="${FF_ONLY_DEPEND} - >=app-accessibility/at-spi2-core-2.46.0:2 - dev-libs/expat - dev-libs/glib:2 - dev-libs/libffi:= - >=dev-libs/nss-3.100 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - sys-apps/dbus - ) - jack? ( virtual/jack ) - pulseaudio? ( - || ( - media-libs/libpulse - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - libproxy? ( net-libs/libproxy ) - selinux? ( sec-policy/selinux-mozilla ) - sndio? ( >=media-sound/sndio-1.8.0-r1 ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - valgrind? ( dev-debug/valgrind ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -virtwl() { - debug-print-function ${FUNCNAME} "$@" - - [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" - [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" - tinywl -h >/dev/null || die 'tinywl -h failed' - - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm-r1_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # Clear tons of conditions, since PGO is hardware-dependant. - addpredict /dev - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die - - # Workaround for bgo#915651 on musl - if use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die - fi - - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # Workaround for bgo#915651 - if ! use elibc_glibc ; then - if use amd64 ; then - export RUST_TARGET="x86_64-unknown-linux-musl" - elif use x86 ; then - export RUST_TARGET="i686-unknown-linux-musl" - elif use arm64 ; then - export RUST_TARGET="aarch64-unknown-linux-musl" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" - - # Make ICU respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" - - # Respect MAKEOPTS all around (maybe some find+sed is better) - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clear checksums from cargo crates we've manually patched. - # moz_clear_vendor_checksums xyz - moz_clear_vendor_checksums proc-macro2 - - # 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-gpsd \ - --disable-install-strip \ - --disable-legacy-profile-creation \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - elif use valgrind; then - mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox - else - mozconfig_add_options_ac '' --enable-sandbox - fi - - # Enable JIT on riscv64 explicitly - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - mozconfig_use_enable valgrind - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - - # Increase the FORTIFY_SOURCE value, #910071. - sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die - fi - - local myaudiobackends="" - use jack && myaudiobackends+="jack," - use sndio && myaudiobackends+="sndio," - use pulseaudio && myaudiobackends+="pulseaudio," - ! use pulseaudio && myaudiobackends+="alsa," - - mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" - - mozconfig_use_enable wifi necko-wifi - - ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build - - if use X && use wayland ; then - mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland - elif ! use X && use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only - else - mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only - fi - - # LTO is handled via configure - filter-lto - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - if tc-ld-is-mold ; then - # mold expects the -flto line from *FLAGS configuration, bgo#923119 - append-ldflags "-flto=thin" - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - mozconfig_add_options_ac '+debug' --enable-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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # 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 - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - 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" - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - - if ! use telemetry; then - mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - 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 tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - - # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/vaapitest - - # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) - if use arm64 ; then - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/v4l2test - fi - fi - - if ! use gmp-autoupdate ; then - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - einfo "Disabling auto-update for ${plugin} plugin ..." - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" - pref("media.${plugin}.autoupdate", false); - EOF - done - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal - if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then - optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver - fi - - if ! has_version "sys-libs/glibc"; then - elog - elog "glibc not found! You won't be able to play DRM content." - elog "See Gentoo bug #910309 or upstream bug #1843683." - elog - fi - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} diff --git a/www-client/firefox/firefox-127.0.ebuild b/www-client/firefox/firefox-127.0.ebuild deleted file mode 100644 index 72aa3df83042..000000000000 --- a/www-client/firefox/firefox-127.0.ebuild +++ /dev/null @@ -1,1420 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FIREFOX_PATCHSET="firefox-127-patches-02.tar.xz" - -LLVM_COMPAT=( 17 18 ) - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="ncurses,sqlite,ssl" - -WANT_AUTOCONF="2.1" - -VIRTUALX_REQUIRED="manual" - -MOZ_ESR= - -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" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ - optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" - -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" - -IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" -IUSE+=" jack +jumbo-build libproxy lto openh264 pgo pulseaudio sndio selinux" -IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png +system-webp" -IUSE+=" +telemetry valgrind wayland wifi +X" - -# Firefox-only IUSE -IUSE+=" geckodriver +gmp-autoupdate" - -REQUIRED_USE="|| ( X wayland ) - debug? ( !system-av1 ) - pgo? ( lto ) - wifi? ( dbus )" - -FF_ONLY_DEPEND="!www-client/firefox:0 - !www-client/firefox:esr - selinux? ( sec-policy/selinux-mozilla )" -BDEPEND="${PYTHON_DEPS} - $(llvm_gen_dep ' - sys-devel/clang:${LLVM_SLOT} - sys-devel/llvm:${LLVM_SLOT} - clang? ( - sys-devel/lld:${LLVM_SLOT} - virtual/rust:0/llvm-${LLVM_SLOT} - ) - pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) - ') - app-alternatives/awk - app-arch/unzip - app-arch/zip - >=dev-util/cbindgen-0.26.0 - net-libs/nodejs - virtual/pkgconfig - !clang? ( >=virtual/rust-1.76 ) - !elibc_glibc? ( dev-lang/rust ) - amd64? ( >=dev-lang/nasm-2.14 ) - x86? ( >=dev-lang/nasm-2.14 ) - pgo? ( - X? ( - sys-devel/gettext - x11-base/xorg-server[xvfb] - x11-apps/xhost - ) - !X? ( - || ( - gui-wm/tinywl - <gui-libs/wlroots-0.17.3[tinywl(-)] - ) - x11-misc/xkeyboard-config - ) - )" -COMMON_DEPEND="${FF_ONLY_DEPEND} - >=app-accessibility/at-spi2-core-2.46.0:2 - dev-libs/expat - dev-libs/glib:2 - dev-libs/libffi:= - >=dev-libs/nss-3.100 - >=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 - x11-libs/pango - x11-libs/pixman - dbus? ( - sys-apps/dbus - ) - jack? ( virtual/jack ) - pulseaudio? ( - || ( - media-libs/libpulse - >=media-sound/apulse-0.1.12-r4[sdk] - ) - ) - libproxy? ( net-libs/libproxy ) - selinux? ( sec-policy/selinux-mozilla ) - sndio? ( >=media-sound/sndio-1.8.0-r1 ) - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( - >=media-gfx/graphite2-1.3.13 - >=media-libs/harfbuzz-2.8.1:0= - ) - system-icu? ( >=dev-libs/icu-73.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) - system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) - system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) - system-webp? ( >=media-libs/libwebp-1.1.0:0= ) - valgrind? ( dev-debug/valgrind ) - wayland? ( - >=media-libs/libepoxy-1.5.10-r1 - x11-libs/gtk+:3[wayland] - x11-libs/libxkbcommon[wayland] - ) - wifi? ( - kernel_linux? ( - net-misc/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/libxkbcommon[X] - x11-libs/libXrandr - x11-libs/libXtst - 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 - )" - -S="${WORKDIR}/${PN}-${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 "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang && ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then - einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -MOZ_LANGS=( - af ar ast be bg br ca cak cs cy da de dsb - el en-CA en-GB en-US es-AR es-ES et eu - fi fr fy-NL ga-IE gd gl he hr hsb hu - id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO - pa-IN pl pt-BR pt-PT rm ro ru - sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW -) - -# Firefox-only LANGS -MOZ_LANGS+=( ach ) -MOZ_LANGS+=( an ) -MOZ_LANGS+=( az ) -MOZ_LANGS+=( bn ) -MOZ_LANGS+=( bs ) -MOZ_LANGS+=( ca-valencia ) -MOZ_LANGS+=( eo ) -MOZ_LANGS+=( es-CL ) -MOZ_LANGS+=( es-MX ) -MOZ_LANGS+=( fa ) -MOZ_LANGS+=( ff ) -MOZ_LANGS+=( fur ) -MOZ_LANGS+=( gn ) -MOZ_LANGS+=( gu-IN ) -MOZ_LANGS+=( hi-IN ) -MOZ_LANGS+=( hy-AM ) -MOZ_LANGS+=( ia ) -MOZ_LANGS+=( km ) -MOZ_LANGS+=( kn ) -MOZ_LANGS+=( lij ) -MOZ_LANGS+=( mk ) -MOZ_LANGS+=( mr ) -MOZ_LANGS+=( my ) -MOZ_LANGS+=( ne-NP ) -MOZ_LANGS+=( oc ) -MOZ_LANGS+=( sc ) -MOZ_LANGS+=( sco ) -MOZ_LANGS+=( si ) -MOZ_LANGS+=( 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}" -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -virtwl() { - debug-print-function ${FUNCNAME} "$@" - - [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" - [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" - tinywl -h >/dev/null || die 'tinywl -h failed' - - local VIRTWL VIRTWL_PID - coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } - local -x WAYLAND_DISPLAY - read WAYLAND_DISPLAY <&${VIRTWL[0]} - - debug-print "${FUNCNAME}: $@" - "$@" - local r=$? - - [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" - exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- - return $r -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6600M" - fi - - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use pgo ; then - if ! has userpriv ${FEATURES} ; then - eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug ; then - CHECKREQS_DISK_BUILD="13500M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm-r1_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset \ - DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XAUTHORITY \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if use pgo ; then - # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure - # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage - # (PORTAGE_SCHEDULING_POLICY) update... - addpredict /proc - - # Clear tons of conditions, since PGO is hardware-dependant. - addpredict /dev - fi - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then - MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" - fi - - if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then - MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" - fi - - # Mozilla API keys (see https://location.services.mozilla.com/api) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then - MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi - - CONFIG_CHECK="~SECCOMP" - WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." - linux-info_pkg_setup -} - -src_unpack() { - local _lp_dir="${WORKDIR}/language_packs" - local _src_file - - if [[ ! -d "${_lp_dir}" ]] ; then - mkdir "${_lp_dir}" || die - fi - - for _src_file in ${A} ; do - if [[ ${_src_file} == *.xpi ]]; then - cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" - else - unpack ${_src_file} - fi - done -} - -src_prepare() { - if use lto; then - rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die - fi - - # Workaround for bgo#917599 - if has_version ">=dev-libs/icu-74.1" && use system-icu ; then - eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch - fi - rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die - - # Workaround for bgo#915651 on musl - if use elibc_glibc ; then - rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die - fi - - eapply "${WORKDIR}/firefox-patches" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # Workaround for bgo#915651 - if ! use elibc_glibc ; then - if use amd64 ; then - export RUST_TARGET="x86_64-unknown-linux-musl" - elif use x86 ; then - export RUST_TARGET="i686-unknown-linux-musl" - elif use arm64 ; then - export RUST_TARGET="aarch64-unknown-linux-musl" - else - die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" - fi - fi - - # Make LTO respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" - - # Make ICU respect MAKEOPTS - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/intl/icu_sources_data.py || die "Failed sedding multiprocessing.cpu_count" - - # Respect MAKEOPTS all around (maybe some find+sed is better) - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/base.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" - - sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/python/mozbuild/mozbuild/code_analysis/mach_commands.py || die "Failed sedding multiprocessing.cpu_count" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - sed -i \ - -e 's/ccache_stats = None/return None/' \ - "${S}"/python/mozbuild/mozbuild/controller/building.py \ - || die "sed failed to disable ccache stats call" - - einfo "Removing pre-built binaries ..." - - find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - # Clear checksums from cargo crates we've manually patched. - # moz_clear_vendor_checksums xyz - moz_clear_vendor_checksums proc-macro2 - - # 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-gpsd \ - --disable-install-strip \ - --disable-legacy-profile-creation \ - --disable-parental-controls \ - --disable-strip \ - --disable-tests \ - --disable-updater \ - --disable-wmf \ - --enable-negotiateauth \ - --enable-new-pass-manager \ - --enable-official-branding \ - --enable-release \ - --enable-system-ffi \ - --enable-system-pixman \ - --enable-system-policies \ - --host="${CBUILD:-${CHOST}}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --prefix="${EPREFIX}/usr" \ - --target="${CHOST}" \ - --without-ccache \ - --without-wasm-sandboxed-libraries \ - --with-intl-api \ - --with-libclang-path="$(llvm-config --libdir)" \ - --with-system-nspr \ - --with-system-nss \ - --with-system-zlib \ - --with-toolchain-prefix="${CHOST}-" \ - --with-unsigned-addon-scopes=app,system \ - --x-includes="${ESYSROOT}/usr/include" \ - --x-libraries="${ESYSROOT}/usr/$(get_libdir)" - - # Set update channel - local update_channel=release - [[ -n ${MOZ_ESR} ]] && update_channel=esr - mozconfig_add_options_ac '' --update-channel=${update_channel} - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; 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 - elif use valgrind; then - mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox - else - mozconfig_add_options_ac '' --enable-sandbox - fi - - # Enable JIT on riscv64 explicitly - # Can be removed once upstream enable it by default in the future. - use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit - - if [[ -s "${S}/api-google.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-safebrowsing-api-keyfile="${S}/api-google.key" - else - einfo "Building without Google API key ..." - fi - - if [[ -s "${S}/api-location.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-google-location-service-api-keyfile="${S}/api-location.key" - else - einfo "Building without Location API key ..." - fi - - if [[ -s "${S}/api-mozilla.key" ]] ; then - local key_origin="Gentoo default" - if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then - key_origin="User value" - fi - - mozconfig_add_options_ac "${key_origin}" \ - --with-mozilla-api-keyfile="${S}/api-mozilla.key" - else - einfo "Building without Mozilla API key ..." - fi - - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libevent - mozconfig_use_with system-libvpx - mozconfig_use_with system-png - mozconfig_use_with system-webp - - mozconfig_use_enable dbus - mozconfig_use_enable libproxy - mozconfig_use_enable valgrind - - use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme - - mozconfig_use_enable geckodriver - - if use hardened ; then - mozconfig_add_options_ac "+hardened" --enable-hardening - append-ldflags "-Wl,-z,relro -Wl,-z,now" - - # Increase the FORTIFY_SOURCE value, #910071. - sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die - fi - - local myaudiobackends="" - use jack && myaudiobackends+="jack," - use sndio && myaudiobackends+="sndio," - use pulseaudio && myaudiobackends+="pulseaudio," - ! use pulseaudio && myaudiobackends+="alsa," - - mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" - - mozconfig_use_enable wifi necko-wifi - - ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build - - if use X && use wayland ; then - mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland - elif ! use X && use wayland ; then - mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only - else - mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only - fi - - # LTO is handled via configure - filter-lto - - if use lto ; then - if use clang ; then - # Upstream only supports lld or mold when using clang. - if tc-ld-is-mold ; then - # mold expects the -flto line from *FLAGS configuration, bgo#923119 - append-ldflags "-flto=thin" - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - fi - - mozconfig_add_options_ac '+lto' --enable-lto=cross - - else - # ThinLTO is currently broken, see bmo#1644409. - # mold does not support gcc+lto combination. - mozconfig_add_options_ac '+lto' --enable-lto=full - mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd - fi - - if use pgo ; then - mozconfig_add_options_ac '+pgo' MOZ_PGO=1 - - if use clang ; then - # Used in build/pgo/profileserver.py - export LLVM_PROFDATA="llvm-profdata" - fi - fi - else - # Avoid auto-magic on linker - if use clang ; then - # lld is upstream's default - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld - fi - - else - if tc-ld-is-mold ; then - mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold - else - mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd - fi - fi - fi - - mozconfig_use_enable debug - if use debug ; then - mozconfig_add_options_ac '+debug' --disable-optimize - mozconfig_add_options_ac '+debug' --enable-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*' - - # Modifications to better support ARM, bug #553364 - if use cpu_flags_arm_neon ; then - mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_add_options_ac '+cpu_flags_arm_neon' \ - --with-thumb=yes \ - --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard - - if ! use system-libvpx ; then - sed -i \ - -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build \ - || die - fi - fi - - # 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 - - # Additional ARCH support - case "${ARCH}" in - arm) - # Reduce the memory requirements for linking - if use clang ; then - # Nothing to do - :; - elif use lto ; then - append-ldflags -Wl,--no-keep-memory - else - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - fi - ;; - esac - - 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" - - # Allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - # Make revdep-rebuild.sh happy; Also required for musl - append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags - - # Pass $MAKEOPTS to build system - export MOZ_MAKE_FLAGS="${MAKEOPTS}" - - # Use system's Python environment - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - - if ! use telemetry; then - mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" - mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" - fi - - # Disable notification when build system has finished - export MOZ_NOSPAM=1 - - # Portage sets XARGS environment variable to "xargs -r" by default which - # breaks build system's check_prog() function which doesn't support arguments - mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" - - # Set build dir - mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" - - # Show flags we will use - einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" - einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" - einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" - einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" - einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" - - # Handle EXTRA_CONF and show summary - local ac opt hash reason - - # Apply EXTRA_ECONF entries to $MOZCONFIG - if [[ -n ${EXTRA_ECONF} ]] ; then - IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} - for opt in "${ac[@]}"; do - mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} - done - fi - - echo - echo "==========================================================" - echo "Building ${PF} with the following configuration" - grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do - [[ -z ${hash} || ${hash} == \# ]] \ - || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" - printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" - done - echo "==========================================================" - echo - - 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 tc-ld-is-mold && use lto; then - # increase ulimit with mold+lto, bugs #892641, #907485 - if ! ulimit -n 16384 1>/dev/null 2>&1 ; then - ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." - ewarn "Please see bugs #892641 & #907485." - else - ulimit -n 16384 - fi - fi - - if use pgo; then - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - - if ! use X; then - virtx_cmd=virtwl - else - virtx_cmd=virtx - fi - fi - - if ! use X; then - local -x GDK_BACKEND=wayland - else - local -x GDK_BACKEND=x11 - fi - - ${virtx_cmd} ./mach build --verbose || die -} - -src_install() { - # xpcshell is getting called during install - pax-mark m \ - "${BUILD_DIR}"/dist/bin/xpcshell \ - "${BUILD_DIR}"/dist/bin/${PN} \ - "${BUILD_DIR}"/dist/bin/plugin-container - - DESTDIR="${D}" ./mach install || die - - # Upstream cannot ship symlink but we can (bmo#658850) - rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die - dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin - - # Don't install llvm-symbolizer from sys-devel/llvm package - if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then - rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - newins "${FILESDIR}"/distribution.ini distribution.ini - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install system-wide preferences - local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" - insinto "${PREFS_DIR}" - newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" - - # Set dictionary path to use system hunspell - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" - pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); - EOF - - # Force hwaccel prefs if USE=hwaccel is enabled - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ - >>"${GENTOO_PREFS}" \ - || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" - - if use wayland; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" - pref("gfx.x11-egl.force-enabled", false); - EOF - else - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" - pref("gfx.x11-egl.force-enabled", true); - EOF - fi - - # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/vaapitest - - # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) - if use arm64 ; then - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/v4l2test - fi - fi - - if ! use gmp-autoupdate ; then - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - einfo "Disabling auto-update for ${plugin} plugin ..." - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" - pref("media.${plugin}.autoupdate", false); - EOF - done - fi - - # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it - if use system-harfbuzz ; then - cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" - sticky_pref("gfx.font_rendering.graphite.enabled", true); - EOF - fi - - # 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 geckodriver - if use geckodriver ; then - einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." - pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver - exeinto "${MOZILLA_FIVE_HOME}" - doexe "${BUILD_DIR}"/dist/bin/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install icons - local icon_srcdir="${S}/browser/branding/official" - local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg" - - insinto /usr/share/icons/hicolor/symbolic/apps - newins "${icon_symbolic_file}" ${PN}-symbolic.svg - - local icon size - for icon in "${icon_srcdir}"/default*.png ; do - size=${icon%.png} - size=${size##*/default} - - if [[ ${size} -eq 48 ]] ; then - newicon "${icon}" ${PN}.png - fi - - newicon -s ${size} "${icon}" ${PN}.png - done - - # Install menu - local app_name="Mozilla ${MOZ_PN^}" - local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" - local desktop_filename="${PN}.desktop" - local exec_command="${PN}" - local icon="${PN}" - local use_wayland="false" - - if use wayland ; then - use_wayland="true" - fi - - cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die - - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - "${WORKDIR}/${PN}.desktop-template" \ - || die - - newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" - - rm "${WORKDIR}/${PN}.desktop-template" || die - - # Install wrapper script - [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" - newbin "${FILESDIR}/${PN}-r1.sh" ${PN} - - # Update wrapper - sed -i \ - -e "s:@PREFIX@:${EPREFIX}/usr:" \ - -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ - -e "s:@APULSELIB_DIR@:${apulselib}:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${ED}/usr/bin/${PN}" \ - || die - - readme.gentoo_create_doc -} - -pkg_preinst() { - xdg_pkg_preinst - - # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # does not need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - einfo "APULSE found; Generating library symlinks for sound support ..." - local lib - pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # A quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use gmp-autoupdate ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do - elog "\t ${plugin}" - done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - # bug 835078 - if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then - ewarn "You have nouveau drivers installed in your system and 'hwaccel' " - ewarn "enabled for Firefox. Nouveau / your GPU might not support the " - ewarn "required EGL, so either disable 'hwaccel' or try the workaround " - ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." - fi - - readme.gentoo_print_elog - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas - optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal - if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then - optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver - fi - - if ! has_version "sys-libs/glibc"; then - elog - elog "glibc not found! You won't be able to play DRM content." - elog "See Gentoo bug #910309 or upstream bug #1843683." - elog - fi - - if use geckodriver ; then - ewarn "You have enabled the 'geckodriver' USE flag. Geckodriver is now" - ewarn "packaged separately as net-misc/geckodriver and the use flag will be" - ewarn "dropped from main Firefox package by Firefox 128.0 release." - fi -} |