diff options
author | Joonas Niilola <juippis@gentoo.org> | 2024-05-14 18:04:00 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2024-05-14 18:04:59 +0300 |
commit | 2ce4fd8366baf32d0123833225d888d37206eaf5 (patch) | |
tree | 32c50888b571b74842f189b53092dc83907c83c4 /www-client | |
parent | app-text/xapers: update EAPI 7 -> 8 (diff) | |
download | gentoo-2ce4fd8366baf32d0123833225d888d37206eaf5.tar.gz gentoo-2ce4fd8366baf32d0123833225d888d37206eaf5.tar.bz2 gentoo-2ce4fd8366baf32d0123833225d888d37206eaf5.zip |
www-client/firefox: add 115.11.0
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/firefox/Manifest | 100 | ||||
-rw-r--r-- | www-client/firefox/firefox-115.11.0.ebuild | 1408 |
2 files changed, 1508 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index de78f8bec1d8..774efe66c72f 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -98,6 +98,106 @@ DIST firefox-115.10.0esr-xh.xpi 413331 BLAKE2B 91044dd10d764a276c14291cdd1540f4c DIST firefox-115.10.0esr-zh-CN.xpi 634778 BLAKE2B 461d085d9c6d259f4a3564c149b9300df48ce1ab0ef9222ae25594c3cbb933d2559fd2deac806830f9107b872169a18edc22b1dd08b985fb28f21cd71dab1429 SHA512 cf9db5ab2029cd4bd7cbe02012e68759433b3d0cc6cd1fcaf5b6774e9c111cb65f577f128a55b0989869879d4e4f24ea11ccc86bcfdb05181b0aaf9b65b5c0b4 DIST firefox-115.10.0esr-zh-TW.xpi 639166 BLAKE2B 8dca774967abcc50d6408eb7a05013fab8d942c723e79dee956aa09dcbe1370c4087f9809623a2fbfb616c029f5c002b116a302e04ef2efc160964c193cbad9d SHA512 0f3d1f2e14f5c70f08fc6fe25edc4ad07e67936a90820a8f432d48ea3aac976bf528b267ebaf285d1d394d9a3b57106d9dc8a389389ca4a4bf93d5b0a61b5c44 DIST firefox-115.10.0esr.source.tar.xz 507826764 BLAKE2B 342d5cf4d61b3efe3dde6a6e53f064739d4107690f1d101915ba8cf2214f518aa8c7490903e20179f0874a3bd62871723e877e8f789d9816f3e0d9227d751eb6 SHA512 0626e2c68ce43f24dfc2b9216e2565537ad8781daf4195d53420e1b78d57d0f6360fbe56b0ddbedae3818546c72472c85c1ff2b208c123d32a0543e666f42b65 +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.9.0esr-ach.xpi 456930 BLAKE2B c041593a7778b2e17309061405f2efa8d969eea14c5e4ae55d1d7f50f8210c94c450b3ae2d667e577fb086ac729f8efea34cd57127b3fccafca47493dfc8584a SHA512 840bf034625e3dff62c701c80ebe5af04bf92be54de5950be46589118feb74a4c1fbf8d8a55e34309da62cbbf94c9c863d528f0448bc8540e643bef058b7cf56 DIST firefox-115.9.0esr-af.xpi 413586 BLAKE2B 695f26da6377cf4db1d93a065156ef590fcd5663e69e96093e420f494e354e184769344791b24e13fd00a29bde9d14adc46936209f2afe9ac330b7f55e098a3d SHA512 b7c4af228dd86f1913b06b0ffd2a0fe022c206ab405ffb0e2f224f5e891aecd539e2a5c90c0b617ad94f2a683fbe9dbf1bc52c7b45bd5e0557df86862e8e0c6d DIST firefox-115.9.0esr-an.xpi 497249 BLAKE2B f77fba39585ab36a89db1bf1faeda9c110fa0841638334be65ed7e472d80f0db903351a8ab7c9e8832c596897f6ff8827fc1583c0399c68c43c271746b809a15 SHA512 66176fce34c1fda1e58e31f89ec1d2591ba1428b3755d5045dc763c8c186ffbb7ca3e0d29f7dc9492263169f3a6c73a3a918b957265cacd23518a166add4413f diff --git a/www-client/firefox/firefox-115.11.0.ebuild b/www-client/firefox/firefox-115.11.0.ebuild new file mode 100644 index 000000000000..2d9c67706399 --- /dev/null +++ b/www-client/firefox/firefox-115.11.0.ebuild @@ -0,0 +1,1408 @@ +# 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 ) + !elibc_glibc? ( + || ( + dev-lang/rust + <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-libs/wlroots-0.15.1-r1[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 +} |