commit: 1170efe38e86b106c8bf854cd77498623a93597c Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Fri Sep 29 10:42:17 2023 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Fri Sep 29 10:43:01 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1170efe3
www-client/firefox: add 115.3.1 - straight to stable on amd64 & x86. Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 100 +++ www-client/firefox/firefox-115.3.1.ebuild | 1368 +++++++++++++++++++++++++++++ 2 files changed, 1468 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 144e4e820b93..822174c8d0b7 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -297,6 +297,106 @@ DIST firefox-115.3.0esr-xh.xpi 402437 BLAKE2B 6831582511f5de2fc6438687c56d9f48ce DIST firefox-115.3.0esr-zh-CN.xpi 595480 BLAKE2B 17f8f497c94774181b44f119c52444831eeb0e39e22493325a1e85f82b79cfad1f156de606f5bf2bc01edd28d824b614596e07988b35bca88e6485edffa520f3 SHA512 71f5d0a8dd9ac68a83cf0cbf28b33c8b0ad008ab4b279abd840e0e3695bf1cce852af51bb95bcc84bc6f5bae0f2b08986a6725fbefcbf2318cca8f915c7bfa08 DIST firefox-115.3.0esr-zh-TW.xpi 597824 BLAKE2B e48a8fd6887f1de2cd46db6a6c13a541b9046c0f8e669db1dc8d3b6e16f0bc4e77995712876e4d0dcdd67d72020178ccae595bb69d87b9a4908c2a6ffea727ab SHA512 93aad13cb9075e00796b79ea6b9f1ef7b7d5a85177c3f380ba1a7bd799d37150b48307e7f7a312a6fe4b029bce891821e712e7e725145892c04697154293cd0c DIST firefox-115.3.0esr.source.tar.xz 510157064 BLAKE2B 858c7b47c07244f95327e29b52d73cea74f620ad8d496c719172cd4c812e53d84ab0fa9aaee23c93856536712bc517bf9c6e47122295c83c4c8191229145a3f6 SHA512 4a85095620a61dc516cfce6f288ba491a99c72a78c6dfae264c1292f9eba902e3df7101b97a6f8531114ccce421c92586e143872798aafd7aabbe98a257692ee +DIST firefox-115.3.1esr-ach.xpi 441067 BLAKE2B 33f3e8fdf9e11f09b1486993d2fc580213525da4c16e2963ecddd2af7c44d72c85d502d2c0e78d01a247fa87dc7021a2edefc5a1d169e426395f3aa9fd0ec7ce SHA512 2d5b1c61d58ee73e0371a5a6f1c9482eb8f93043ad14cef7d5f559a2cb9350b4bcdb58777df1e067c2bf67b4e4a0c69a80c9792420ae320335aa99e441fa1d73 +DIST firefox-115.3.1esr-af.xpi 402472 BLAKE2B e7515490301f0d0814614fdf83f27b4e9b91d191188c16d471e1920bdd3ed6086fb7b8cbd1658e3e4f42b0d2b1d0ea6bc642e62025534e9c57e6431d0e3b7b8f SHA512 7dc4b34862cbf337906d055c107c90fdece6a5db067302cd4324d3e84e2e9aa6d15c939fbb9292d5e976ee0e862545944f1429439db524a48378ac23cc226642 +DIST firefox-115.3.1esr-an.xpi 482928 BLAKE2B c5bc3cca7a40bc65ac2ec71912686e36f268c2d983a5c3d80f86d312414c0b276c68cd925a7ac8cb6d00b8aa960fa3d474bde4e6dd3a43c84045ae8b0d42dc3b SHA512 b6f38e833a488668fc305f5d24adda02a6d95bdc7baafcfcee0b8667ba0002cc0e3cbb9795408c7d200f6e1e7fdd1cc8320db7040c5486b9eb9a0621e5b3fd20 +DIST firefox-115.3.1esr-ar.xpi 549543 BLAKE2B 1fe3cb33e97f241d6aa5b7d08d4b27ef75c7f242698b77e4643f933b6a15bf03d03a9cd5b3212c08d698a6bd9977d59e56c41f97cb2cc107dc96f85540b9f390 SHA512 facc6016dff3468be4c804a5ca3a2011bddbba9b82808ea42e02510e6a64350a1e692e5714a9ba4dfeaa9ce81d202179e825653a076f5f355ad84c19ebba8bd4 +DIST firefox-115.3.1esr-ast.xpi 477360 BLAKE2B 14789292d64cfbe919e74aa0348055dd5de503f1ce410dc31f46a337bd1b5727967fcf15d6f7f71387ac64c5a601e5071525e95bdf759c47ce8894d3a8813be6 SHA512 6836962f9dae40acfc0ba13d82caeae20d20ffef1e7e8243b4e4d1e46458f8decff9d8aedef7191e76b7863092f4d50c8bad6fb126bf613e506ef60522238928 +DIST firefox-115.3.1esr-az.xpi 470745 BLAKE2B 765f4d47bbfa13f2227c3a8f3784ce34651aac8c8b0b719c6088665351f0f7894a18cf84d87762ff701f93fad9a7169238799c7d0ba023210b290ffafb0eb9a7 SHA512 631c16318e9c56e34639301950ea6a42b92f68d63f3c4dba4daf3380db5c4fb0220443bee21b571f4c2e50896c917339de3ff3f6adbc58c520504844d9bd7f45 +DIST firefox-115.3.1esr-be.xpi 647094 BLAKE2B 61d96225ad03fe4f23fe2bc439da19099febf1b0ef074e884b79af944db226e747b97946a351f48b52e15bbc6fc7f8acec5e59adb81e36e7e2ad3ab9cd1a4151 SHA512 720ed997939c16acb614c9511b35fe70208b11ee285af57851e44f08949624e0aeb4b51d5753befc73b160650035d9dcf5c9f8d209ef72a407ef98acf5ef7047 +DIST firefox-115.3.1esr-bg.xpi 564179 BLAKE2B 745dee650cd8bbdb8d29ad895b635243f8259b64d227bf7d707c0c9c4b44f73e11cf3c9eb41c62c3f5671540cf1296c3274fbcf7d0c5d8e6be2b2dc12c59fdec SHA512 0d3e56f2a8e34c4f4400c33dceb7997834920d4d37f99f885b1611bc1114094e66e85bd9bc2b8e05ba2d143f63a73dea0b92c762b57dac6ef9344a6d6bdffeaf +DIST firefox-115.3.1esr-bn.xpi 558436 BLAKE2B 46310a605eecc6516589c38b7afdff814771f0480b79c632487745e8a9e229cdee9174812ab53b56faf3b2474e3be086e55d72dd86feb99b5b84a3f002934d29 SHA512 9142f729eb55551175812091b0c2fe59706bf705815a89d3447529eca97c54308acbc76e65f80d4723642b7fd8a2592c005c1db37ac9171165642bc9afd6aa8d +DIST firefox-115.3.1esr-br.xpi 534387 BLAKE2B c5a2ef202920b3e9cd4b06f5f024ac4abbf0cf8834faf414e528d0b1fac3a201fc0bff1dad423ee8e5593ccb91bac66987288595036770d893becf9a0c33978b SHA512 34c58c5e7d627cc2230b081f24e3fa15c4b968370db90741f81b7d347e200ac01735bae66477042bcfa269b2c8e6f44f1485f1c8232449a5686133fd696e5a69 +DIST firefox-115.3.1esr-bs.xpi 441266 BLAKE2B 66b78e48bb585d320c9b41674702950ed1c75a1aebf7608bcb71cfc109a540dd5dceebb75fbdfc029d4753155dd8a52830a84860bf4d6b8ffec8d85db16d1c08 SHA512 a2f93da5a503fe9975e615f9821a0287664f9ebd809478c99a9befd6c5bb0676eb2679b6973ebe98721a35a8097d2fcc0c859d4ce8c21614553ee7d886fc0cd0 +DIST firefox-115.3.1esr-ca-valencia.xpi 521950 BLAKE2B 1220ea06d92e08602666a99b387cbe27eb165c8b970a3bfc05a12c1673b0954c28378849a2d06bf8a66a1b2cb4c53f391d9bea2cd05588ed084e1a2538c693b6 SHA512 2d82a72a83598f99940ab0f62ed58721eff22087f7f549651d400e3c380021d5c32248d13033a1eefbda93a2a1cab8def9dbfca788df556434c61ff0ca647703 +DIST firefox-115.3.1esr-ca.xpi 545471 BLAKE2B 46b3a63ff09244da8ee558cb9e943594c69ac56e00fff769fb5d7e9ab6a57836ae7dbcf731074bd3ff525ceb3b56ad0820c2efa0410e7019cf13758d2a88d75d SHA512 6e3b4bda70a862d9b8fbba3c9dc9acae65379fb0860f280a07bcd3b8fc35b59c4887b77977303f40a0928b241412df4bc17b40e0555c07ad57e9bf9563dc5a44 +DIST firefox-115.3.1esr-cak.xpi 564570 BLAKE2B 4422777d5f12cb83f95f060c1fdfaeaa43c640c02eb86228b63ec3c14e6b07b272732a1c8a5304105da3f62fe259847dd4ba08bda12227a0354f10ae6fa6e695 SHA512 5b8b66b7f428be9b9e769794e69bb61076030ed303b195053e67a4250eddbb8cf27171730101f4b9c37bf9884cb5550766ec8531f201f87bd89aaf9287d9287c +DIST firefox-115.3.1esr-cs.xpi 592272 BLAKE2B d601f20dec3a423d88c7b8c5c15213e07465e99b365aad333c54f5922a2a864ba8ac92f58175623f765731391d68fccc83dae6e72670dff8b0d64be1eb4d88d5 SHA512 4d947077a9beed5c86a44fb9d2d6ee691f57ec6ff4757c9d2f66e697ac1bd34ed6d127e66a45ff02d548870f5da207f2b95927648d4b40918a65e58496555399 +DIST firefox-115.3.1esr-cy.xpi 564694 BLAKE2B 2c3d2683e9adb334d7bc38c6544cf8b72bda2800081265477b4285f5271ab8c99de07b3ec470cadd062ca40b3f14313bef00cca2c4ea1c846f2feed3a13bac04 SHA512 d2f3693cbede3c1a3aa6bb80da0b1b2d2269c86500e70d268da96fd7847f5a13121d41e05de4740df3851c5c4419ff686625eace2ca73d2d5fee7e4df40a4a9a +DIST firefox-115.3.1esr-da.xpi 554018 BLAKE2B d167721338d4bea77a20ef6a105dfe78d24f9e11b11f08acc5718d9cb4a4a039713bbf740769883f456ccf1470b3b8d05b9f6468706ac29987d41aaf9a8e3c9f SHA512 13a6532935e20561fd0971d5527f600701b558450108b29bcdb6b0ed61b58f9fbb5d2676dd2505d4b4f3e032be6dc30497e39518da04e264c87300e4c48e6995 +DIST firefox-115.3.1esr-de.xpi 574627 BLAKE2B ebe84e83ee1823e50d9386347adbbd9e66a6fe73e4e538543ee5008e79639b51d8dff157d8801d277e519e1134b0f35052c787cbe816be5a00390c51aaf67cba SHA512 a9f094c76a1de90605855c6fea42598577892cdf809e96a691c7073612d318946e4a7749494239c457f074eb9b0f6eebf9c43a209c8702dc558d07888e8292a7 +DIST firefox-115.3.1esr-dsb.xpi 589330 BLAKE2B 50f4d549f32f93b82170343f0408e3fa0d22f0fa37aac2ec27c725719e85f3b4ba8e8300cb8d5ad64cb105f1afa222013ba2088edbceb254f750b273f62e8407 SHA512 964c83251cef56e64e57bbdfb43561cc595a0e0bf970c41c7592ac66497639b07fa7cd19b5341865f9f155d1fe03dfc4fbb366a1d3e77bdc69d78f1c45f20b97 +DIST firefox-115.3.1esr-el.xpi 663763 BLAKE2B 61bff22e78b5b42139befb5aebd821455d80ec4b4e442a5cdbfe0d7ad1635c5ff4551fcce6da8bb0c7a43d050d2b5630df4bcb0cfab76dd5faf644527fb694c7 SHA512 b7c20e19b545e4b407b0905bfb40cd60d559fc0cee08db46555112103a5bd1bc9d623f27e3109c73a29f82e7f6b650e5494d49d6d973d15dc1449fa458f65b4b +DIST firefox-115.3.1esr-en-CA.xpi 519410 BLAKE2B 5ff9854908e5a7687eaa83f1266c360a96afc3da336678985c9c006f26b3d4f567d17a2a682a5e2a381d6a7132f98c091e0c4b8be23fcbef57bbe1e38b1034a8 SHA512 7e6506de956d41901eca9635540b6e05c37a6c320a562abee2a948699a8ea51706139f70852cd048979275f6f84c3e6c04e2c2c9b3b3313585c9a416a6721363 +DIST firefox-115.3.1esr-en-GB.xpi 531049 BLAKE2B f04d2d7c4cb02524e947dd3ed8346fe7dd81b09e92390ef51061888ba7457964960a13da93b648f0a8258fcf34256c830c6836d28f1c69665383e3996777c0b0 SHA512 fc46657477385e7d390eda3488c6a337d9c902b767c915909a838a78fbe7626df69990a110bbf5828a407aa28762546cc57e82ed1e6137af5542dc83a4283fa3 +DIST firefox-115.3.1esr-eo.xpi 556390 BLAKE2B 460e805f9610c52cfdb488877c307c5dd9561d07d42ae85a06c8b235cf5f6f02d96d8f92b785974f8944ecb38fe014a5cc2e5676490efb93351cbba3be09bb17 SHA512 7f647bbe227121fb6b7147337cd1e68a39ca81f2caaf6c683419775eca69fbb543855bd516cdfcb352770e8cfdbd33bccf214861f4527d92a13a40097af8746d +DIST firefox-115.3.1esr-es-AR.xpi 568958 BLAKE2B 7ce388ac63b7a6a211776db86996527c44d834371fd32f5f8782688d50f856baf8f8c0b6a7626721e26d528ba2a6a7904cec3ffd4f76d71a0d7af864d2010f74 SHA512 4ae750238394a2e14bf8ea98f24b1f6180a05304bc3c7ceb3b82d5e0a131f1dcd62246e8e558a06cfa1ac3fc9b27396f6b1365ac40dd8e77df164beadfc1799c +DIST firefox-115.3.1esr-es-CL.xpi 568610 BLAKE2B 9fa922289eb0a57a177b761d0640deff773d0614135dc130b0f3633be03707760450b8779873034496f4a3c659d8726e4688572f64a10c0e95c20114e0d5c91d SHA512 e38568abc3ac4f78f887ffb35ae47b5316e6351194c747588fd0317a7615bcea661086ccc74fa8911577c0e013b336847e8a0ef976ee2e11c388d9a1b9c66d01 +DIST firefox-115.3.1esr-es-ES.xpi 562037 BLAKE2B bf367cb30f8fdda2d0187abf13e045f84198aa92e7017a71d95899dc1668287b8b416c11b964a23f230ed915e478a64262744d88dd3b61fcf5ab6a539f9d628e SHA512 e07ad6bfb2b608fd4abe4eb4a7283fc9e84eda6d02f4d669254d326cc3da6b60edd7ba83a94a068040298903361f67d421dd791f498defe7f1529cd7641a9f38 +DIST firefox-115.3.1esr-es-MX.xpi 565321 BLAKE2B bdec7e76c7f1f65b0e7181c997ebf3761ebb74d2377881cda7a7590f4cc0f7a365397a3fd1881ea42de879bee0b2744deb4b997d54a52b0421566187ff02c6d0 SHA512 449d27bad5e6d5be963fe8dd9188a33d8d551625eb818129fdde67ea58c94711a98645de7f89edbbb0d528b8e8927531e1659679d79a33eb896d378131b38cf4 +DIST firefox-115.3.1esr-et.xpi 516131 BLAKE2B ca6688ef1d2ef078b4ea51f854cfaec11fd1736390dcc0da45cdab4ba644c62ddee3578f82a0ec2dc39a2767dd8ea9c77c54b25f2a462682f0ba1d424d825ee9 SHA512 8d702ba83696a1adb032b3b7a321731e950bdfe7aa4ac8bcebacd1594c347737cef555852202a618d46f4c2e664c988908b11bd880c7ae676e99fc4cdea8df8c +DIST firefox-115.3.1esr-eu.xpi 551622 BLAKE2B 86a9711fb4d8623382f9d3aefbb682b7363c68c9e47af69983cc9bcc9a42c8f97c9a8b4b63267126c6ffef65ee754d0a12e2e1261dc83b9ccb5661fc755d20f8 SHA512 29049e4ef213ea82998880f658aec36bcaf1e1ef1a654bbee318d532f0c35cf3a0b9892e4c285980cd3e6ecc43f99167390afb7f6d29de0f37006d1803da883c +DIST firefox-115.3.1esr-fa.xpi 564540 BLAKE2B e77b5b9732089bf0fca596d3af28964be82f6fb7848ab89cae77ae93c6ed942fc3bda565ae333c4e732963b17c5170c51bd1888dd34d8707fc23ee2bc20ddad2 SHA512 d01cdac0b519a1a1144d08d8d90bf15354ad8ee1c3dc570f539abf339478b7f8d0856b458f1717405b5d12433b7a7d3d1e0a894ef8430ec82c77c7b5cece9df2 +DIST firefox-115.3.1esr-ff.xpi 457110 BLAKE2B dc93bdd754537a7b3a62d9dd8a423f4adb981683fdf8cec63cb6b7e7ad7d4fe4885d99c8aa0b05f1a5aefe8c92237266eb5938f4c10c322770595c74d234022d SHA512 70fec795761ab4e6dafd3751c9d103987b5bc620afbd7e6cadab6d4626c17a84a971306d80d2b1c30708e7a19265a8ab0ba9ec14b85061269b88b966d230dbf0 +DIST firefox-115.3.1esr-fi.xpi 551231 BLAKE2B b9d5d0e68ce64838eb2991aa88793bf71d3522d450ee112cf33de6cf5cdb08a6ae9d420912747eaad0c354c4f31e9458a3df03491e19be18fdeb649d08168f2e SHA512 8548d6615c13d7123a20494d9b812f12d8952937af85904040a0fbb6923639153da667103cf7ed36bd01e0052a8eadcb3446b1540455e4eda055f6e99e83aa2c +DIST firefox-115.3.1esr-fr.xpi 580609 BLAKE2B 5b29c3d5f50dd393b237fe97a149c2025f5f78fd59f646c1c61da7db386053198f71637383736de438bd1ebd02b959f39756069d10fb069ced4611ce41cbfc79 SHA512 712dd0e2a77db7b17502208576c186eee849ccc649c49fbbfef538928c121c761c249c642aacf399f031b6689ac8b49f76c5e5d3e69c48752412121f107e491a +DIST firefox-115.3.1esr-fur.xpi 573083 BLAKE2B 2a72cbe73d062599a9d9ec41f5341d07c9014a1c73c5832a9fc33e836cacfab04af965891076b91beda861372617e2f37081b93a1659e74932640f056bd98b07 SHA512 472b06639848053c5ab29aa25de01a7e5bd35dce5c4457ed228811634d780a9e2c22eef46b72b05180f2d152bcc9837f834ab88ea1e46265225a3de470ba7a54 +DIST firefox-115.3.1esr-fy-NL.xpi 564937 BLAKE2B ce69073a5e40bcfb9c5322cea6b3d141ace1517d18b09f6e436963a609c010d3d360d5958f073d1821e62079bc53005f2c79df655efce1bb46cb62b28da3bbde SHA512 faa0ec725513ea3157722c48556325f324c0cff23eb6691aaa5288c259bf61a0f0890c8fb70d944f1c3abd64a77386d45468db529df518e6d95909a9440f8ff3 +DIST firefox-115.3.1esr-ga-IE.xpi 454326 BLAKE2B a687ddee4098f535668ef915b03b1d3b72df6f5503cb44c21113f4fec39e685022b41ae46479b7eed72da7f1a233638af9e86034f67552401d0476b512de277e SHA512 930decbe92c4fd6fcf080af1702e98b1aa6372278c2e575ac7a59adf1a8f241ab28f7a1235fe6417a84e8a6cefc6e93af9a9142cd74ff5a158dec049c76c51ab +DIST firefox-115.3.1esr-gd.xpi 566964 BLAKE2B c87859dde5cf3ddcc82a2b0077617b70f9f4ec87c22f4491c026f13849f5f9cb93e5582a7d0d522bedb1e9dce0c4ab31241acbd5f62c64d2ecd94a47a2092b38 SHA512 275d52bc4a908789951819579d5d4ccd453b791df22e438f2d9fb0c3fe707791079bc4a74616e89de3cf1d836608e9ac83ab74b959668dd4411fc854a51295b9 +DIST firefox-115.3.1esr-gl.xpi 565470 BLAKE2B 119a9fc309c6d214e230bf5aadbf45ba4fdb8ef4b0264e65d41c1eeec8aab9d300c067006149eb668d592b61497844827f061c798021c8c4fded487eaed9b1ef SHA512 b98098a6bd3766329bab2424e9c80980a0500c705724036a1711e8c4776a949b6c52e793d17f2b681345a5018c4e8fbeba188ac4a5ce74831dbc8b0968501577 +DIST firefox-115.3.1esr-gn.xpi 577580 BLAKE2B 1f13132685d4076ced4526b28f734bcd75729f9156e05a3f7f15d2a470f13e5b9d79c76673931be419405c9926b86ee3f5b45d5cdab6259a7c7cf84892f1bf94 SHA512 f944daa60a47822bb201a57c293bb4b3fcf497610ccc15d246c94be9f19826e24bd994d1877849399217165b90843926a51d7f4a9acba2a7d4d67ca2842a025a +DIST firefox-115.3.1esr-gu-IN.xpi 506689 BLAKE2B 622a3254c5f0bdcc12ebee61cab673a5d2a73518c5b8e75be5617f74ee4455c9ddb5b5104dac67bcc6edbcc04977b92be802d1eea3bb52f5faacb684850c3d06 SHA512 e95fef0b25f3a1e66998c1735f93e2c17d88e7a5cd221b276f76321ff1e1b2040dced66a8c149532367bb8f6fcb6387392bf81e093c6813e89f3455c40bc92ad +DIST firefox-115.3.1esr-he.xpi 574386 BLAKE2B 51f3f4cb53cc9d78af8a9ff3e013ddfb0ea06efb245d04e41808c653053ec4fa00c70156a12897c92d48dd17107b23dd721b256159a666a3a3045c0f596e6d6d SHA512 629c48a6743614adc9035fa832caf5a9ee3ff28414a1b222260aeabc4cd4ea5c84c66ca96ee02ea4fbd1d7a0ea8d46bbaa127a1e2eb1ee406899bd35f0dd37e1 +DIST firefox-115.3.1esr-hi-IN.xpi 538819 BLAKE2B 53dfde112fa90d9457df1e7efdc4809c55b5b6e45389a6dc87abb1b1945465eb4b58c74036d60db8e668a79b49c95de5ff3f285fc70fa723e19772f7262df931 SHA512 6c714b71349f2f67b0305e98c914920bbb3ec6adbd951efa54dcecbdeb05a560af709759b5a16465c6c898f98becd723127247cead9a7c69c6ff3b2ed31f7f6f +DIST firefox-115.3.1esr-hr.xpi 531640 BLAKE2B bbbb1a06422768351ba29476a484c219d0cd2bc65594ed40f74102e8f20448698768cc95cb043eab10b4500d797e07c74abb84f3f2507167ffe2b4ed73e93313 SHA512 47136161d2b3869530fb8be424af40f01a8a16479ef4cb4bf030a480f94348cfb35d2fa259961a7225ecce6c7e0489979b39c52c904c1003fa8d8c94b63bb172 +DIST firefox-115.3.1esr-hsb.xpi 585525 BLAKE2B a620a2358d8169f66789b7cc6fba51afc3e08744f0cf67c9f8b935f7e571004f38d9438ca5ba1ae0b6f0b96dd1e8dd3d557940306afe6adb951f002d813d2907 SHA512 7d63b9b98b9256ca98908839af69866fb4f3f17aee1e757c6617179ee6c96c6cc29e99b37049de772f460ca854739bd0af02c90cb27dfb17b5b6dd581659cc4e +DIST firefox-115.3.1esr-hu.xpi 588966 BLAKE2B 07a4e0052b9b6844324826c00d1f475a51e78e8714af728d385d4e9ce6b621a1d98ec462440b0f8323cb749d58fbd91aa6765a29be4567ba9b14abc6e245d09f SHA512 db0773e747f2701d020340b737fe0c5ff5b4266f281778b69b038d2a4c7a984a2deb2a1648360ea3f54d67e2d8669891dc0486112db01c290439506da35e5786 +DIST firefox-115.3.1esr-hy-AM.xpi 579192 BLAKE2B 8140f16347f45b3f920c680b2ab2e77f69b179093fd47e42d300753c632a86ec55f0ff6831815d55f38e249e37ae38086dd5da7d3eaf782f008c381007da2e69 SHA512 a140077e228db9b69ea91ffceeab8a53e910d5aefddc116129883fc94b68bc7f0f7a1dfcf6e40ec30007a9bde107c51972fbf3d24761950621905785a7bf4ad0 +DIST firefox-115.3.1esr-ia.xpi 553082 BLAKE2B 5da91dfc553689ebca8f4b4bf0e632f5ea78867811950109a515776ecce0c7088feee0d31ea9fc002130aa7832bc364f35f494dc22c5763b5b04aaace34e3868 SHA512 ec14400fc0e33f3f7633ea18acf3fe6c94045d0d19f0f4678b9669e1c115f32111553894511c100d546639d7a9052c5f149b0c15f7e6d93902850e5c973df46f +DIST firefox-115.3.1esr-id.xpi 537743 BLAKE2B b36ace23cbde058576d6f1967286762143c672f836f5b56b480216470e29df0c458c5ee8ef3f2edce069318fa9f0101a7aec2b5be1cb8f1ac3e4a405ef8836ee SHA512 420646750977077658dc5a540f09f9282c8ca9687beba2214e0761fddec46e394f51aa90be61d2d61b9446680a13dbf2a967c27f9f9ab5985cd962e963f06d11 +DIST firefox-115.3.1esr-is.xpi 560793 BLAKE2B 203e25a082ac2934f2a44c3b6d9b12822b76566fc8f4e9908831f0d1aa2fa2bff0619adeb94eaacfa1e5a4f77d183b78ea88d9242363ef5d0ea430f2774ebef8 SHA512 5e7b1317788a5f99e55a86a268b9bf4b8821967f0bfa6ff23308c198d3984b2d3756c4f769593b52ca1466faa1c89d150f9f249a437727ff1bc74e8f7d6623ef +DIST firefox-115.3.1esr-it.xpi 507474 BLAKE2B e53f01843fed1c30007aa90af8558cdb65dee57a762dac307112110592e1e0c2d812bd5766eec9f244fbbc5264f20955727198bd1b72c430e6b3e41ef42397a8 SHA512 fdf0a27ad5f0a5508eb212f2154ceebe59b9adce66524f0dc94466ca2f51eb3888a58da75745c8a4ff183957bfe2ddd4a55d5647d12b8265d50040291e04ea35 +DIST firefox-115.3.1esr-ja.xpi 634403 BLAKE2B 1f2280c64d6bb027e7d28a212dca62316810269cdb1a65a66b6abe1ba7fc08470dda63ef4042c54090024b8eeb6aa3e016f1c797b64f6d3dbcf7b6e002775365 SHA512 ba3b6dcb4fd6ffe6152902512ab2ae812055028ea83c10719c329ee1b579547e894905bff39f203d07a017b380bd961434876e8bd8dd299bbf36781cd8938fa3 +DIST firefox-115.3.1esr-ka.xpi 610744 BLAKE2B a8b1e9469ebbdeeba58838fcc901c179892aedbc3cd65bc269824ba34dc676668555efb13cf64a84ef5619d684c69de7950f28e790d43d3856b22e95afcff256 SHA512 e673b51d5182629b7b2c4285011c0891c3c258fd49db61ee02a3eaedac6c93320013a345f47bd7ec6c374c7e3107532e1e44a21e196ec232db34473013bdc2f7 +DIST firefox-115.3.1esr-kab.xpi 562649 BLAKE2B 9caee324f78b75a30a15adb7bd6cb7769dff5df61285d8b689581930621abd5798933ccebfd196fbfdf208e987fc5266e1471a0780e466d24476ddbc292b0427 SHA512 06507bd14e0c891648adf288acfc5043d258f619c2b7d3bd7bb768ff926b5936d356451a5c8dd8abd969a24a189c7fec4e6f73acbccd1cca72867300e93b326d +DIST firefox-115.3.1esr-kk.xpi 639130 BLAKE2B cfff711c8a0b5a840aba6f2f214baa6eebd741315674eb571ec9e1b9ded94f9bcdf5d7e3a3a41b279f708ac625816df53073d528c7d463690c33b745d86a164a SHA512 f5570db0d3d0d77ecd5142570a95bcaf5a84a745304a98c71f53d925ce8f4a7f3b22a841f60890f259673a1a00194507d4714fe3c44da750f0a10e04937f5ea1 +DIST firefox-115.3.1esr-km.xpi 508107 BLAKE2B a0447c2a650e12b6738b8ae441ac6bc50f42e02a3f8e64363eeb1e5ddfae13af2d9436245c2cf62220049d10a5f28d8515eab198d04640b21fe2dd1206a97994 SHA512 1f77c7ccff08f060c4be82775915f6fe54143f724bdd9c13f30c4675850f737e130138fe18faecbe6672ece0b4a34e9c2f472534f4c97ac2fb80ab7d4b59a802 +DIST firefox-115.3.1esr-kn.xpi 473765 BLAKE2B e7bd942d110bd66e26ade1d79636d850d6ac8902191683079dfc0ffd7003be735a939b2b7b551ad5d83653a24e6a70afdc6505aaf6f3c372792d2937836147bb SHA512 ae9548d5744d37a72daa18eb736f4312f30f81de9c24630083ff4c32fbf7fb7364116c56ba90b8e113b58add314065dca239e9be583a588af0cab51ec9d54182 +DIST firefox-115.3.1esr-ko.xpi 600384 BLAKE2B d7c626686db6bc085f9bf1eafe435f38d5686c0b327ebe6d2e8788e24d63eaaa978708a749d139b208ad58a23c9287c5d29051d6d5896464b1714bd413fd1a06 SHA512 25acec4d27742727559fe255ca796ce70b980099a5886e80a5b680a4533f5791cce2e537d8fb7e4bad8ec1d5c47d4c955ad1e46b75a3c78f4dda7f4fecbe58c5 +DIST firefox-115.3.1esr-lij.xpi 463744 BLAKE2B 67dfda5422b547d2110fdff426ebb649bf614958465bed5875b470d279c981146dd11315c7e7ba83a13bd2376fa42c560dbf2ca691236cf2c292876dce674a23 SHA512 dd10478c6fe1b4dd5a74913d737c973511429d0496869c30d10a8517212655ea529cbd633c734353d522259cbeb69f2c9cf559cee5e4ee700984d59a1624077f +DIST firefox-115.3.1esr-lt.xpi 548290 BLAKE2B e6a8d3f353bf10f4064102c1eb22944d8e7a79181c081cabbd98f1e2ef97cd198bb0c9ffaad04795210403a421f25959cf3779f0cb238436b75d6e1bea435227 SHA512 4ab2a278cf0e9f6aa63914337eb3cf87a74c30bda970764a00ab1b5813a1488aa4ad67d1b84d0c8c0bb0cd56b9f924d1c72be68dbb789e34e9eec57fc0a15280 +DIST firefox-115.3.1esr-lv.xpi 450735 BLAKE2B cf8be1e12a9ba36d149fd234c2fe7781a328efbef63d4b99b5b03463aaa05020c6ca9635337ab2c65c927571526deb66e55aeb839649e8e9d29df335d005cbd4 SHA512 fae696df7082f162d961c18e5a8db317124c137f2617bfee610ce4e0eff894c6089fb9acba94aed97d7f3a2e931e3548ec5d026e078224e8f452f1e4b84e9980 +DIST firefox-115.3.1esr-mk.xpi 470093 BLAKE2B 3a778d21aeb66d34d0e8e909c3a2d32f171789c62b2947b0fc52985f1569a0dbd47aa656fa8475adf38bef75552f59f86a25f20ce12215c73ecec29c5f52bf53 SHA512 031b2f0f228dac6c6e66d0c138c55cbb89c67eb4c8a1323b3d27d245d9f10ca16879f529017d3799408a77a2c990c09a8e629fb323374a596e16a9c2fa2bccb2 +DIST firefox-115.3.1esr-mr.xpi 510470 BLAKE2B 7c0caadebaa391c8bd54bcc7552c8752ed5b01de1271c6f14c226da7c942a8566e16d47e27525f8c014187d855bd8045b453989a43a7698d1ef9d64afcf9cfda SHA512 6c2a9aa308846e85bc6923dcd7b1ae33c6fb64520548fb62d5610ca55482c9b064ba80396534e4690421b120fb24a48a07393448a4039ef1b0d11b8a3c8a05ce +DIST firefox-115.3.1esr-ms.xpi 431287 BLAKE2B 02194525a145d1679c65382b762803f35d2d572634e03e7ce0004b8131da1ed9439fc65835d17ad5effe0116769715427fe3a329921eeab46c7d4e427a239d50 SHA512 55cd580c26af2a1d975ef1891a5bb09955ae8b479ad08bb6f810f96465f8dae6a0d1f7945584bb75e56356f854821c61bc2dc185a2c7b30d0e22cc3148e16463 +DIST firefox-115.3.1esr-my.xpi 493662 BLAKE2B 695cd8e36905aba4ee8b31aaa9aef8f03d9666534bea38f77d9e6ee33e9fc0d6b67a9c413be2ceec2bf0c6a043148dc425fd6fbc47facd2d05b7f43634d1a156 SHA512 41b1e67d963ace3804a705cb223b2f075721b86a65e69c04576de741dac4f3561a0308b121ac482adb31aabfcd4d875a39ce54a3ed96425b1a18f2112339d998 +DIST firefox-115.3.1esr-nb-NO.xpi 548970 BLAKE2B 5ca6eb7f90aaa078c6d0d70748d1d22b726942918e11b460083b2c2fafe0f47737062fe3fe623c1838cd9e3b70102ca987f88dc6d6dffa07bbdba79f2ac75b8c SHA512 d92b771e6a97b84a8c7ec44ad578c9893489eb0ed46cd9d11176b0730619130cd66ac4c989cfafcb0b6e7aeaab571ddbb65bac15a9ba162f490eb45ea3a3f1ac +DIST firefox-115.3.1esr-ne-NP.xpi 468989 BLAKE2B a66105a44cfe758309254554b7e1d8963e51183c2e7ab9b03da06c11400c51113aed918169794b30551d57dd428c4f8364e69f9ddd360d78e1011e7c16671cbb SHA512 0ff6be570d5a8b5e2836d9a92d63918a7270ec5901436a9532bc58c1025e9b1c845e75e70d9afcfcc51c63d471d191e762d14709235e26f45f3029209955d2f2 +DIST firefox-115.3.1esr-nl.xpi 559192 BLAKE2B f7794a8103b4f34db5e379314a4cb6acf03ec03006c3f9317ec6dfd4286e83061f2965a14d29f5b43b3777fe1794a3644ec9c81bd2cbd3836339399480073365 SHA512 77245f95fe94bd2d1a8d0f4c95316576418614d47895c905e3c186d7b7ee929002d70ea77465b5de427ff5431c1d6b2621ffc922f2df1439019eee7b96eaa126 +DIST firefox-115.3.1esr-nn-NO.xpi 551971 BLAKE2B 18b4ebeab07de6ae48767ed8eaed1016ad32ba904599975e6113455b094ba94a2c9e98f9ea872befb6b8ca50ea7f1de136f3495163cc160ff6f732031dbedd64 SHA512 de98095c4e37f2231d265ff0a35d1dc94764ec8d1ba74bfbc783930896ed357a86cca9272cc8c1ff0f26291475038e2d42fab8c0c809524c39b7499c86610ab1 +DIST firefox-115.3.1esr-oc.xpi 572131 BLAKE2B 02123533f72595e600f078027e5695a792beb825f314fb094de12be9ac32bbf6e30c882f4bec37630ee195d5ef00c69a183599aa3211672c3cabe900a8ce0b67 SHA512 f38b7da71cacc16a7ef243ee29e9fcd4ef8548bc40ceacca1f39884e7d6e8f0e8a6bab14828220f65e79d47e5a3ddbaddf6fb4e682ed7df3c3018dbca3d0b0a8 +DIST firefox-115.3.1esr-pa-IN.xpi 626111 BLAKE2B 8ee7a3d82b59e8810b145010671d9f88157326ff4262418a23a6485d1ad520369f100a2d8c8184c146c7c92e697055f8b7dde7a162c3bd045dfc522bdd663aae SHA512 1f18635001fac6690fc57e804dbaf1e2bddfc3d3cea5bfef6419abc11db2f12edcd963019994d7cfa8fa305771e6ac00203c3b0f8a66751e6b61106a1014d77f +DIST firefox-115.3.1esr-pl.xpi 579828 BLAKE2B 5c216acf4dc47638cbbe698f0231e9950addb2980a4748c1f5668937491213c3dc91cf6af9c9950d9510d634e3ead1f5be618e46604a349ae3ccbf223869ceb0 SHA512 46806dcadb032db3dc8d9af51e7168c9e80edb7212dacc72d43c795b32030536632ed80763b826d32f9cbce13a2feacea2a2114c446ae2adfc9b4fb61e6b3145 +DIST firefox-115.3.1esr-pt-BR.xpi 563945 BLAKE2B 8df980b4f4ed7ea8fb2b3219d54d79c3c2186122223a45604a5d91ba415648e94633f3e40aad0db8af7f1f21063a822764f3e38a161e44eb95e35a24b0641481 SHA512 b9d794710787edf05c053f9661f3e0311d28a10694b85f2b24ca142e54ef9fcf9607be9024217bcf0c12e2a755e2e7018af3867d19848b7dca44abe49f3eaf1f +DIST firefox-115.3.1esr-pt-PT.xpi 569055 BLAKE2B 3e7e5ebe3e5cd5227ea5c451ee36e592f8b6d712da2283d179e9c8dc9895a371d10c6ed60d80d49e64a05e26d9c9f17ffd0814b9db2e2d24940998a774eee9fe SHA512 115489f8051d3c4ae7eb3305581c7d9accf9f1103bc43bc8031424b556f1cde9b9fb9738fb73b633d5d503a6edf824288463df699e59380531908a11909691e5 +DIST firefox-115.3.1esr-rm.xpi 558678 BLAKE2B 8d3c7a79415e677f1117ef721ff3763eb0d0c76abd2fa7d67950f0134029dd0493870116beffb45f70a1284dacb68dc97890e94c67905a4eec4d89752660d6ae SHA512 f41abc4d54be5ccbd71ae1035d4fc33c0f26b8f50090bcfaae6702fcf604a4ff1c05da1c003f8e0f23f376eaf9558b924fc7786985c9ff1992ed06e09d6d743e +DIST firefox-115.3.1esr-ro.xpi 524799 BLAKE2B 408704ede12cdf65295126c0f1003df86b9c7e48401d8ca2d9263cd917f807401de725c437fb0f9eddc10f02a622509e0fe83695788a2ee45a8da9ce1230aeb4 SHA512 8cac4fc498ce29695c68a4de0cb92bc7082206fa347580f203512e4863294f54935626bd9bc25637e256fab5e4a124ae3da64f67aaf71359b9a1a23f6b5fffec +DIST firefox-115.3.1esr-ru.xpi 651420 BLAKE2B 2218488963b40ca07bdea713573e3ca6fa335f101c76f5611d8ad92f593ddf6f8bcad3c99274fd6496094ffba97beed5e562eb1205bdf16af526498976f7f7ce SHA512 c1755ba6879fa5cec34c0e6f4e75b2f3fb0a9c7f228f00561e5d04fdafbcc41d77138936bef84bf7ab5555a080b445eb3e95c82cb6b851ee7f8a70bed83ee8ab +DIST firefox-115.3.1esr-sc.xpi 535142 BLAKE2B baab57b6175c97b704e0fad44289c07fbc7da0399cbd7727dde8beed522a088b01b0b2b68b9505ae8a840a7a17cb6dc532d60c1ebcb6d97a30a0bacf46eea948 SHA512 89e7553d3c38435bf6df25541f8313347d36a39e2835498be23f714a37944be6649b3f516809aa9d77206f4a70ef141e68285cb5b269418db00a42363b7c9e15 +DIST firefox-115.3.1esr-sco.xpi 489683 BLAKE2B 878bc5f2495701bfa97e75c46d9a29c1f6c97ee3aaa29b92281863cdfca7d86d55ea210d8d38f9b9aafa91f847c450741b661004486ff49f2f6141f1ae6f5b43 SHA512 782cc26fbda92704b64e78291011a7e0aef8514da57cb85348d692281eb878645ab582c607f1ad08671fbb7354f2f716b33f77c020337d44fd59f16939ba615e +DIST firefox-115.3.1esr-si.xpi 569017 BLAKE2B 26c40035ef0715736b9e3aaaf46ecf067b0c3145703c97d9bca1dfa7c2cde6459e19e36ab64d8d460621d8e1f14a7c776af4a9879893740c26ef7fc3e7804ed9 SHA512 324c8b577dff7962d4b12fef3deeb14d02c7f6210bbfb72a44f3df5d32651da1fa0be51c3319abf83542ce7cde1bed678e66a097c84ea6bfdf3b910f9616711c +DIST firefox-115.3.1esr-sk.xpi 589725 BLAKE2B cb8353eb5718b6be75e2f14f9d0850c310e994ec357c4c5b641e0c4530af76612029712f401d84018c7333dd89e2ec591834ed42c73858fc3c1879b644495fbe SHA512 80e828bfc0eb18fe1d4655c980cc70fb1006160ed4364a90076cb18843b3466142815bc15f6100d57bd556dedfc6f1ef64441554b8bd578a3ac86ea68159d94e +DIST firefox-115.3.1esr-sl.xpi 562524 BLAKE2B e3959a436e2ca830afcc7a2684d697d5bd47ccedce42ca80f3780864c255c4725220697dd29c1c96e38625e5cc7e30d55a215ea4772f0d0ec5cacc9ce40b6c19 SHA512 9c1764acb90c4519f57f0749c99b71733ee997adb1f35af6ebcd438bc08b5b0b97994f7cdbee67454a25aaecbb19b836994d65ebab1031c9cf8c2019d66428bc +DIST firefox-115.3.1esr-son.xpi 400971 BLAKE2B 990ab3fb334e7c50942b197e710d2c65505d0782c67c5f7bfe33ba527da1fe327953a02137202dcf47f86bc5a4fbb1b81e7a5350027035f62679e6d3f2843c61 SHA512 d496a821fec851beea0bda76edbb1a2631accf9356d1db0e31ad1e966ae13412a8ad20480ba26f6ad2aa52b397b8f5584c65e49543df09e8b1f94bace3e4be27 +DIST firefox-115.3.1esr-sq.xpi 564457 BLAKE2B 44cd14315fc3ac715b8e100e39a9050ecb690f88475a2e67285bff76635091accfe1416140728815b36e59b182c5023fb50b1a25395d6e5aea16727940e2a71d SHA512 257204d5983f376f26451c53a455b54aa7f1284cf1e4005a2047c1748f5c7db725c88669c597384829b7ac5373a2a454703193e54ac674cace6c4ae6479a197c +DIST firefox-115.3.1esr-sr.xpi 614006 BLAKE2B 88586bf830431a0780b69cf2acda9566dce39870c7c4e12220393ee369db1dddade5b34002f1783a36c5fac11bd6a427b7d335efcaca59692e65f335d6cb6374 SHA512 4c40fc59e93ffee5548d9bb3987b83bcf2fef477be6edbabb89f597a8a09a22e721071f0b1e125769f21a789cf24c4203ad35681adcfbb166447777267f935da +DIST firefox-115.3.1esr-sv-SE.xpi 560562 BLAKE2B e1df9f302529dc42b93520b8cf3c836c2d3c98af0df7258b1b7d6332ccd61d237f8dbdffe8f40203a59b9d46d49ab27efc7cc9390232172b3c1d1bbe17ceaf33 SHA512 f90aec93e412b735879f698fd62e713d2cf3b80d2805690398efe84b7ab45eff0acf3b497727c5e42d7dfdeb9990e38c1c4159c1bf445ae9260317a263714bca +DIST firefox-115.3.1esr-szl.xpi 504136 BLAKE2B 21ae79f8016f98aa3e5f0ebabac7f99cc701a65796d364bae3c0415dcb35e298b5796eb12b0816c9ddbd84a3f9800ac4f5cbc7b0410854bc133778a460eeaac6 SHA512 e068d2df390994919872f9a3b0ae36c1bdbca429dac75f9a463315c0081cc47f9310f0e7d25a3ab4e2ef18bd6a765d8294653fdb27ab8e97a2d1d791bdf09b85 +DIST firefox-115.3.1esr-ta.xpi 488853 BLAKE2B 755a019a623db6907f4f721ffe4402cd73e4bf9993e4d05e79249c52824aa4532960dc48cd5e2f4ecbf6dc3c133fd199890ab61a07461f261160d3f709b2e7b1 SHA512 75c2c0de46f1fe8b95e13c7a66ff134720accc975ee5843e3d11038efbd6f5cd0a5cc1ed883f679b2de037c509c0c5ae29d63df27df774cda3a3767f4800949c +DIST firefox-115.3.1esr-te.xpi 536174 BLAKE2B dd917051ef075df1e86a72c4ec332c2a805895ec8f652698666b9eece9c9e46675ad9e270d3909e721d6e473ce9b8a7bfad34f4f77ed537e3a0f6870c0650437 SHA512 8bb1158b1485a3aa5110e39801a8d8770ffdc7b701ff7e708deff69200ceccc1f01b15558dfdafff708394b435d79ded4ec2e91195510689e2736d8df48e64a6 +DIST firefox-115.3.1esr-th.xpi 632049 BLAKE2B 87dec946e1df492574d2e7ebfe96021ab2bd8be95f3bfdb701f2fcb3ac38fbb41f511500c25295b78b9a32120897e1f23d6cb9e143b3caa3488d140790da9eda SHA512 56a4a5b7d65294e188b6209fe93e36d044672b055c36204ebc2efcb18426e1e37c2716f66d07601bbebc7fabaa724662f95a5802a52340dc8babd2d420b48848 +DIST firefox-115.3.1esr-tl.xpi 511426 BLAKE2B 20ef2c3eb1f1d0135e4c072c7cc9564833152bcd72b007f05e543d7caa750170187ee1d6a4483269344cd29d28bf27f8bdd74b073f1122086a39e2fbe184dbd6 SHA512 5615f9cc6fcc4819a922c6ea2b02e09ae3a3198a60796d1958c4ce1b6e5af191635cbd5f4a44cbfd3b944ac03acd2b9017b8fc0158a65491b64d128be429e9e1 +DIST firefox-115.3.1esr-tr.xpi 573254 BLAKE2B 675bc7a2657d4ffe47447f876fff50dd017d960e420288223a6cef750fdffbc6a02ce80739d13612dea1ec0bd441f3fe01a3e87bf0991a2794628751738c9907 SHA512 2133ef95339dcf0083472125a6daa958d95bfb7474f125167e733ee620fa42877a9d95e1512aba99e1066d3eaf538b14e9b0565fb2b37105fbdfceaf33becb8b +DIST firefox-115.3.1esr-trs.xpi 479679 BLAKE2B 1012c1eabcee47d80fc2a233451e4bd0bc9eb3191bb1f5c392729b015af05ef8d6a263c7868feb3a480a383a083114bd4ad0ec41a95cf4de6df8c6034853cfac SHA512 62cc3055404415ba6288cf9627ed838a76e5c022506cea223626241aec065522ab19a396bf2f14b0d665749c9f7666b15db5cf301de11d159e48f2bc5ae7d0f8 +DIST firefox-115.3.1esr-uk.xpi 645040 BLAKE2B 873b3626c3a0ca9040050c58af9804d6373b0ef1b58708ee200dabd932770913e799aa04f4be7e7e74e4e1bd44084c4a51e28541ceb5f0ad099895458e8e8784 SHA512 4f72817452d1087d1bf1bebd2ffd8c2265256624e1e449afe4c6a3f4d464754b658865f6408734adabf457293a1f38e710e3babc28895ce778ba140a09bcc391 +DIST firefox-115.3.1esr-ur.xpi 538789 BLAKE2B a88c483232a6700995364e6c2e5c65a004c04ae75340f19a727888f0480d78805223b36c947444721e05d666d9f5f4553b44de6548d385cc2a524f9b454eedb0 SHA512 8b1e7808cd482161a452d3d764aa11962f31a0052bc9bb6aaf3001d9f4093df8c8cc7c8395ef5d3368d33f68171e287673215b5a52128cde2a2e767f12b08470 +DIST firefox-115.3.1esr-uz.xpi 461746 BLAKE2B 57d93c991aea9f5c4767158384384eedb8d8f1e2d61e8db2a87d7d59c30802682a037309b01b26b21d435445a8fb99114b8c97226d4610a97a592b9ca3c36c9f SHA512 5f9ba1addcc282d9ae82e3feed6bb8f7a09cf371e50df51b12fe7939b265bffc514d105dc412d6195e9db2301ce72dabb7bbc6e0f6f8f584cb85ed0a703890ba +DIST firefox-115.3.1esr-vi.xpi 595543 BLAKE2B a3984e027abd5d92345271aed80b545123c56a2d241e1be105e2cbd16da8c83490c1e4c3799ba911470f8c98e69320206feef10cd48827065a58b2c2b232797a SHA512 ad78d82fe756ed54eee4e631741cbbc627a6142e86d2bb2b5bd3f0403a0722cfc15062cd7965c59fc2d110f980b4cd7ebb5b6650d11498734f0378bef3856e95 +DIST firefox-115.3.1esr-xh.xpi 402423 BLAKE2B c80542bbd4bea684f26114fbe3785863ab23513fc22a6157c9b65061fd4c4d873ce23cbeceeb259fd4762238542c4310df34bbe0271e34179118ccc440a4e507 SHA512 316d9ce7094d69570fef25767ad58dbb3021808338e7679912902a2eecfb6c0ec2dec9a66fc0422d295bbf9028af5cc30a7d6972422cf00437371839b9a9f6d2 +DIST firefox-115.3.1esr-zh-CN.xpi 595486 BLAKE2B c24578d05d5b3c3f7dc2df7184fb575c3beedd9e20e4f9fa7bedc800ac0ce953309e7edcef06c4922f3d601906f195f5778714082405fb838dc5838a8f534ced SHA512 f9e3009d2ffefbebec11ddebce7b7bd7d6f9ddb84d5be85e1c178691633f6af95a3c13085f3ca6200d9d4d6038030f6472fa86f4bde0493acac2369af808b541 +DIST firefox-115.3.1esr-zh-TW.xpi 597814 BLAKE2B 5f48207fcb7d6cd81c7a223447726012cbe8a3f5d0fe195460063bdf98f3658e11b28003ce27a56363b1ff474fa840f28f4c5facd50beb7051264d9cf18681ac SHA512 29b304dd87ae32df33ad5d1485ad4734c106d2641c6ff3bc60564cd27d9806eedd2e598df22ee79ae7eaa4045c7ca3a2fcbc724a70fd74c3fd5c06f6294da715 +DIST firefox-115.3.1esr.source.tar.xz 515785920 BLAKE2B ad5ec24361e94d9185eed210f681c50159f5be3e6046d79200b5e2586107f1ed98ebe7935f1e266afadd570fc1aa6a1aec81fe3b7fb86efb48afe82514f26c68 SHA512 65cb6fc46bba03eed742bd67f8e36b63b19f2ad7b85d2f503595704a4e88f554758a1e66ba548c8efe97a76322fb2514db72e6ff4bb2992d1aaa86edc3af85f1 DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257 DIST firefox-117-patches-04.tar.xz 22388 BLAKE2B 89b9303a71e2421a2cef9ce0a3ca7dba5de7c21d6af59abe36b1e090bcadef30d2954acda874d72641b61b4cbfe0b032a6dd1d7d699709a2f4818c6e1e228d49 SHA512 7914262226a0d70cb3d24cd152d79e9e98b7a72993276ecf26f4e79608a0f4dd9717b8b0f3524f54db385af404d1779a2ec828e23b02c10a5dce27b53d20e835 DIST firefox-117.0.1-ach.xpi 444794 BLAKE2B 7d8323bc22d1f078783171168e9d94ff5f8d8d678b8b1c2a9f7db7fc1a4e4221a383b8a4898d429cf4c7de77ceb5885d87817c6c965ca527de59a46321f4b150 SHA512 d0eac4c1f80492f083e4bf40879adf62c1c5c84179b0d9393f9f14a1d9b39c585e35793dae313818cfaeee063f0ca2b1b56306ef838ef6d4e40e47bca07f609b diff --git a/www-client/firefox/firefox-115.3.1.ebuild b/www-client/firefox/firefox-115.3.1.ebuild new file mode 100644 index 000000000000..d02c0ee7fda7 --- /dev/null +++ b/www-client/firefox/firefox-115.3.1.ebuild @@ -0,0 +1,1368 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz" + +LLVM_MAX_SLOT=16 + +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: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 ) + 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 + + 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)" + + # 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 + + # 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 + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + if use elibc_musl && use arm64 ; then + mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --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 + + # 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 + + 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 +}