commit: 48281b2e5048b3f3ab41d291086f4dca519502f3 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Tue Oct 1 11:06:30 2024 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Tue Oct 1 11:06:30 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48281b2e
www-client/firefox: add 131.0 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 102 +++ www-client/firefox/firefox-131.0.ebuild | 1369 +++++++++++++++++++++++++++++++ 2 files changed, 1471 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 4aafaf455aa5..d20414372eb5 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -303,3 +303,105 @@ DIST firefox-130.0.1-xh.xpi 420491 BLAKE2B 2bf9207de33261efd8f5515bfadc7e02b5804 DIST firefox-130.0.1-zh-CN.xpi 667372 BLAKE2B 66ee8d30614ce9c37e2db50c8c033b301c3b0cbd97a52d694af8456b8c15f6b080a8d1354e03ce6137635c0b248d4ca171d412413df16e2d07904702f0bd95d9 SHA512 38f2c470ee5e6d36d2b9ad758f5692c32134323e79588b3f3b47b5ead4bcf44bbfc82605e7ce222cc5f58daeabcf8d49c78cabbc7ddef7075dfdfc7cb2f5f562 DIST firefox-130.0.1-zh-TW.xpi 669294 BLAKE2B 4bfe797d28c7406464406a6a6297227bb05e327a885a8960496c1740aa8787c88bcf04c48feaf3772e87a51f79ddd25f3896262e5cf91eccf52f3cd578dc794b SHA512 034ce10936ed67f20aebb15d7179ac479755a828598a8972f5b4fe6fb61b8677330fe73047add6b7ff24cdd555e3fe4e82c27793663dba604ebe2c4c4376d1d8 DIST firefox-130.0.1.source.tar.xz 566583020 BLAKE2B 2d6496a4f476a5a276b70de43f5d58ce2a44007b754e05fcf757d4c1a1cdfcab910493f48e6a6e608b9719ab73cf56c066de56a4abc08ca42e83aa76f4f80c38 SHA512 163d1ce9f671a4716686955c43ff23d9f200f6c52dfdabcbb93af6a326c24aa5096404f42447b02b5a3ad02e2f60d17271783638fe027d24865aebb3e70e97fe +DIST firefox-131-patches-01.tar.xz 22188 BLAKE2B 7044be5613a50625e54694cf88ed1ee96fd2c4e39dfeeb10b68858f67eaf5a05697e70f9940a015aaa66c172590b9815c801967be578bc48996e20f753a87929 SHA512 1bef1dd2a8fd9fa0723be40d7d38343fe00f4375c15b1c2bdbe04624d94d6b96357d22c353e6ce0fe53d857c74aeddef09668cb3ebf8d6dd7a77966ca920ede7 +DIST firefox-131.0-ach.xpi 468402 BLAKE2B ff7a03490b95ed57cca023e49889f516a3bf976cc0ab2645ea182882b479a122639620348b6d64e947c24c54d78add8dbee9d19c497da47ddeb36e5f5618c63f SHA512 e1947463e31a60ad49c27807927358a898b77493f773cb9e40fdf1e74c96cb94d026f746bacc37925f221215a444a6a43bafb4bbcdeb1bf15370a5935d782624 +DIST firefox-131.0-af.xpi 421438 BLAKE2B 3cd24c8cdabe6b824643604dd7f942e717d3ef378f6836be1f7844980a2f5c963679fd090d2229fd320feebf911bc0aaa58ef0da45723cf132a871bf5493fbc5 SHA512 f14862872e33dbdf538cb5ab2f88e47b4187cfee99b340fb85ec5217e806ff7c1fa5a5d6e4ccb0c6b0554c74082dd544798fe2f9a44d354f8c0307bca57e2a76 +DIST firefox-131.0-an.xpi 509990 BLAKE2B 2018de90214797db66f93acdbbee7ad8af8485b4936e60501b6f8efbcf9309d444eb07ac868a06e3c4def4bf4a46c6b89a57f740b5384d003a942c51dd026440 SHA512 477fd571cc00f91fa7f1752a0a22fe962036c5f71028ec8b006f11dd1538430db45aa939b45c10570ce08e8a46f1aa7c7a9f9dd3af5bc6fb4f22d9e6e4599dba +DIST firefox-131.0-ar.xpi 616364 BLAKE2B 68ff9c9c2294c02ccb230f04d1be847c62c7cde20f5e18b03835ac7cea740a66bdf9535a9c98861fefcb650777c5dee72353596faf3128825d44b1eb560434d1 SHA512 8b7b013a57b8666f3bc30ba390b463bb7ef6828b0e4834c3649d8240d0dadaf32bff2414ad56a2cbdffc375381182f943b4ee0d89746751670feb29e7edf7425 +DIST firefox-131.0-ast.xpi 500421 BLAKE2B 1e2856d2ae6dbeb0de11537658bcaf311356c8fc12e834809d7ee12cef40435cae95d6ab5cf78835ea82f1fdd8f0bc3686b4e99ff03a9ac8092cfbbf7f24851e SHA512 cbacacf09d9f4954241cb4f93688fbe9c525f4e89fea62c77e07c96d8ea183099b9e9cc46f306be5ecdeab13e4da310c51bbb673151328a3f9c5b33f4ef70fb6 +DIST firefox-131.0-az.xpi 495117 BLAKE2B 82ca2e72b5ae2a14e9929e8c3c46caef805408e1bf551f0c91d9059af02e2a482991dc75349ec8ce6d5a7420b26c2d5a798d544e57887389724ef77b18fffb60 SHA512 3f5d46e1252bb0cf5a3dd20286959b787c88894303c36b83c0669fbee5c3bb968a9be75564abf66bbc569cf1c789955d36cdbbe821e6f20138f091980cf12e42 +DIST firefox-131.0-be.xpi 728089 BLAKE2B ea4fb234b650004b8cd70f31315c8c4cd563f59bf2c3169e81fd8caf3929ad3b3dda6e5227c55c94a1013cae2f9dbe8a6f733db7b8d6999e82dd70c71bf27f6c SHA512 a4b627c3429e5353053d46d8c360720a6cafcc6cb2f6755ad45a1de4d81be81e08e9a0e9b0479eebdea07a39623229ec0ced88901391710d1b9a0771045584d1 +DIST firefox-131.0-bg.xpi 648277 BLAKE2B 0e415945f2b3c0ea245283cde485a7e436b3a2104fbcc2a5f2ed3451652dbd84c714cbfd5e5f592b2ed44f216e33d12394f875657048c8c8117965a7e62ec346 SHA512 a8b321e91ad6afdf7e2df3a397cd356970211520d9faec14d751ded0aef09fbc281adf4a5fda0176ffae472af13f6eb8886f39360c071a59d7981dd97e5400ab +DIST firefox-131.0-bn.xpi 585893 BLAKE2B 67d316ff212a028ac132838a848ee8552bddf740d31d370bcd7392f7e0014418abbe93ec662799f25297894a2c0452ac69d5780e982a2fe87bdbd2ff06bd422b SHA512 2efe242333ad2affbd95869f2e98894b4bc7b3b970a1b47473ef834af2b9b8a226038dd5cd513285d45f70bd2615ee2010af11901a078eb4a6145774ce0eaaab +DIST firefox-131.0-br.xpi 594248 BLAKE2B 33315d8867237c998e7500ce8a6f9a34ae5ca311be60952201ea8e4d7a93e38f2cd94cec4117488b3617bbadf7f27d91d01a417b3c5caae5c8f6fac9543d95b8 SHA512 8a12e8b044812be73482b4e42ba5f38bc8f2d564e6057b5977ec8e205be67fea518cd2ccb4b7b36b4a8852f8764f4bd49028fa098f9eb6dbfcdd129bf7b71b56 +DIST firefox-131.0-bs.xpi 513546 BLAKE2B 67da47db1f19fb4c05ade52ab63148e9867d28c565e80d991fa5e06c477496ebf73d3ffbb62b5cf3da81ef763379774177a79f07d72574b24b51084cdba1537f SHA512 41516ff247f82889a39166c41ca5d0972848d3521151483ddc0fbd4d7f0925dca3f855f65958f5b98746cc7a9ee71e232ae635eb55d9274e04ce8f1e8cbe5439 +DIST firefox-131.0-ca-valencia.xpi 550013 BLAKE2B 874b12986659b88fed884845514a3969d3bfa2b6cab7201bd158ce895222a05cff0b181739342fc813816126d2355e8d3aa4a8bdde45e2f941547d6e0f54df1f SHA512 058c3d994dc7b0feac8c6532dab2dd1e9b20612741b72a865ad3603edb5dfbf7140337554f456df103a9ae4bcc6b46e71a1322d1f7ed48648f4e1cf6f651fc8b +DIST firefox-131.0-ca.xpi 601781 BLAKE2B 716223404ded89d348f35c30513c197032638122a9c78688f0f19cfc07257cd69f3d5f6fe8e331b63e5bb2bbcd8ff616eb4090021af26968141d2236cad3fc3b SHA512 82a2c7650939f06f8a02a10da5216f4f910e3ea36935bd5efe487169e74389e270bbb00790a8ca266facc561ee1f6e0eb9709f2190778508e0eba4affef3ff88 +DIST firefox-131.0-cak.xpi 597645 BLAKE2B f5b9e1fff7b6c8b84cceb6e3758fbfcc90761270d0e682050c8e002854b1ec8a321b2288b51e9d08fb01808b246862b2a84cdb99d2070174c381b1e4bc4865ae SHA512 2047f4e7cda334009cb5de993b842f4c14e317746d4042a94d11dcb0d66ce92056c5365345d052ab8d87ab64ec40a24e7b6e5305b674d04745e5a34d82018c5c +DIST firefox-131.0-cs.xpi 671339 BLAKE2B 07ddb89b880cf5f72113b33abf1e25905eeaf9abbc78e112f0cf887d45fc5638f02bf8da7db13132eb830f542a2acce6d34e82d8261c75b98c08b1b267d53276 SHA512 64ff32884dbf27d1d6f087720cec6a460528562c9ff21bcd57105f6073e8336c0ac7dc94fa3d1cfee87a64bd92664b883885a007122c2f42075631d9deb61938 +DIST firefox-131.0-cy.xpi 635348 BLAKE2B 33c4ee64853fe791937968ba0d6a6a653b068ea751390b7377fb2df7b68f7a38cec49f39deb13037b2713ed6692a042f4b6bf95e7f8627cf704684b7b16b0c35 SHA512 95d53859ff038f691f0f02e2cc3c264ec55e8f348c16189a4e3816734f545e97baf5c2ee2c26d10fa3c78a09b3482ae174c8617514ebd58b4b1c66d4c939bb48 +DIST firefox-131.0-da.xpi 623758 BLAKE2B cec6540977cb49cfc9d4bbde0617d2514682d9318999b5f1735d454450d312e967ece07447a2ce5493be21095f3c5ead83a0b357e87551d9b3149fa320f0b642 SHA512 419cce879fd04c5fd9b45844e75d7c876592f9ff07b97c0788135b16a34c6d43c831b92414d9d50a85f5c4a4e23ee9eabdb5f52674ad7886706594e9ff78a8c4 +DIST firefox-131.0-de.xpi 645492 BLAKE2B 0339b74327d2f5d6b143189f154faf5379e0d590cf5c44a7d65d171557a4a939fc9325b44b82a5d10214cbec0870836f18ea4f154a23caa16cf0c2c4eeb43611 SHA512 08fe3396534c594d9915156c391ffa645b34ee0232fde8527ac348d6cb42b0ea94e55854e8303c6e8233e604cb66b1ead017c70f53582b290e951c93f3e63ee8 +DIST firefox-131.0-dsb.xpi 662252 BLAKE2B ab967b4bc8d6bafc852deac6bf6bef095186c036b77bd704b3e2949174e7b8aeeb5a80c08e57e02573c7ca0d1411dde56c8b783198939da1802b6a50a6f85be0 SHA512 c1122821590169c0655c366c7dcfefa053e3979c606d9789d5a2b15f4ab9c9bfa4b77cf4c7df7d208cc31ce92c1b5a99a3d24649cd7263c0d94d8f426985ed96 +DIST firefox-131.0-el.xpi 745648 BLAKE2B 5c029d06dc041a9c61663a12ccf1e576782470b871780f2b0911670abe1acfc31551e2c00cf0951f7030c7a754059be412745393c9eac3ee6bcd47fbb774ea18 SHA512 077e34e92c2bf3b42a4c671cf3f336d27194d98f475d5b94cb27642927e400ed561072a15b0f843186acf5a916bc56c9f2833c9ff879f2e6a0d9e91302e506c6 +DIST firefox-131.0-en-CA.xpi 595187 BLAKE2B aa18bf5cdfc4b61b072aefc7c6109c798e311cbcb66de12715e5d302940ad60d567f2c16a9766e72736555f6eaadcba2e4d2aa68b13ef9fc28e0978b72ce725b SHA512 68c47aeaba8ff6d41ac65ddef8c2ca854476f81dbb6ccb29b08340f2ab791b4a366c9b7d3a9e17c49d52180bc48c0a9113059be2126f532c1b5768d035c62cef +DIST firefox-131.0-en-GB.xpi 595556 BLAKE2B d47a1b5f5ed3ea2e45fd2075bb21a92fda1e636b6673ddf3c2e5cca164ba2419a01027e661ed0d326801f7a00d8cc0b0c724c1c94ed70bc5275a43d64c7ee245 SHA512 5d3d57fe10c2c47416814b4682303ab237898b94f4d6608d4bc025bc2cc875153bf86b8500ed2d73c272c2ab77bd5377d4064e861719abb9f167273e86e8fe0c +DIST firefox-131.0-eo.xpi 626840 BLAKE2B 614d7be3dbdcf69dd879f640386b261903ee04cd7fb1619d2df42038ce649557261deeee3b4f77a3b1ae027285a908ba0a321057c66f9f1919255779ce63fdb0 SHA512 b295a77a6428560ed2eec15aca4ed2983bec422ef8ff167aaac6ed77d6e4e7a7e028555ce388bb550d8a9bfdccbcff525682cc7383707ed17921506c3907b42d +DIST firefox-131.0-es-AR.xpi 638977 BLAKE2B a7ac7565bd2702aba18cfe7ff26c09e7a1909e4825a50c63f30fa031ff5f801a3eab9f605cdd1ed01bb70a8bd1c0bd1988dcb3a0c42d7831214e24405e825851 SHA512 56f2a962548f1a79b14d11429b807aca231927fb7194b4efac5874bff4491026f97d9ce3ab7946fc25b6b2d14b1f47ed4cd8f097e311e60b5741c4b106ed854a +DIST firefox-131.0-es-CL.xpi 638182 BLAKE2B ddbf8b345592f3a74a1534eb1de5404198f67d561734c2116e963d32566ec72f8fcfbbb465fe5584813b685cc29d9e0e20db06178164c1a08b18e04b45a4d09f SHA512 abd81af97e0ebedaff4d9807b74a513c390d7dbb64fefbd9a937e56865143f0917feac90fdf7d10e3a87d93eed2c7138de972dbabb73bae56f3f7732281cde63 +DIST firefox-131.0-es-ES.xpi 629780 BLAKE2B e526493301a9c73bb90a70c4ba0a1edf0f922be0cfc45ff25e69951331103872ab723baa1e395dd9516eeb80f65f478993821b7fc13e0f42ea9930fb375f39c3 SHA512 4b69a110e3deebc36d7fe2e5682ddb41d0a09cdffee016af62f9b68bf5e501909f3a9dc8ea49c6ac2acf52c8b98f8cd79524064f32ae8e5bfe567dc043fddc81 +DIST firefox-131.0-es-MX.xpi 627916 BLAKE2B 97aca4101133d86c3b5f15e0634621a2f91ceb9a110344559c40c0059fff99d01ca2a8e32eaa6b7666a738ee3550656404986fdc2a50a124b08feeb4d9c53dd4 SHA512 b10ff8115244591c3fc8293cad52625bfe696571440bcefb34f5766c81b4c07b6274f565245af909c811cb10244ed00ec4ab59c8dcbded240ad80a47bbf7229e +DIST firefox-131.0-et.xpi 544063 BLAKE2B b41277050d063a95138a77f65cd37cd81e3c69814e4bc83ff2633335244560fa3fb18c3fcf2c129993bca38ad0ff74f5e0d5a49f1c5e1123150c259be18646b4 SHA512 975e75e02ce3c4421e3eef900e28f8467e52637c10d22f5c43f7ef44e03b41cbed1b50e8744b91b10c63e6856a9014193545aed2e838fdb5498d2c8f9fd3c178 +DIST firefox-131.0-eu.xpi 606299 BLAKE2B 8f87db5f6a46ee8174274db52abfc6900939f106bf7742bd7cd94f1f26eeb7cde8b7de5cba95f1c39c280737b20e7a498b46c51810bc5a084665d875b9d4c397 SHA512 03aa0f0d9e656bd69a782fa512dd14f429b82dc24a63cf906ee89dadeed012fba4ea444d8a9b764140b7eeff9bc23cf0594d905a86d45c9aa4f9322b90d09354 +DIST firefox-131.0-fa.xpi 595015 BLAKE2B 61d2f0f59383d838c411b6042001f1875e590b48551ca81cd2aaef2cf12e829d6b1dd13c1968298330a6a98663edab5a75d75954fed1616fe6e7821291cb91d0 SHA512 ad8a685864fbc8e3bbecd8782d5ebcc1f53ebb47eb780ec64b405d7efef0e5fa8b29fb0abd2df205b6019047563d7eb3ca55a355896e342ab4b0d6a123f03137 +DIST firefox-131.0-ff.xpi 480069 BLAKE2B 4da2ef30283d2eea200ca77bdfdc1842da93fd0da7d5241a051723304f15965978edc571cffabee872854a492699236aeae4d8d568bc99133ad8f6b202b0bd44 SHA512 3231593e348b3e5179f1c9c48359069d7f8e6bcec1c2870e4f005624362c32e242df15e7707732a7218fcd386038a3f97e6ca0a86feeaf81222d22a150778903 +DIST firefox-131.0-fi.xpi 619029 BLAKE2B 6766865c9f1bfad847006a4c409f6f6f7512aa63ccaeb72ddfca56016ddc31dc9fa39e1faa34a9a45e76096b65c7541c9138523dee84016b0c4a388ee2435188 SHA512 0df1bc02c0980e8257fca44d15b03be698bdd29f59b4ca74f7f11f612de235bcc1be5eb2fdb96b4d0b14021e6e77f115314d3cadf5152e5c6a89ba6b115fc60f +DIST firefox-131.0-fr.xpi 652461 BLAKE2B a18db864c5f5a0b72924a1537e7edbe54217010012aaa7cd3dfd87e23efa7290fbe38baec8d664bb4f4d253a7c8d1ee4761de23130384a74ed0db8fc93634ba7 SHA512 7e16965c24526f1b7599a07cd93b708eb02854f5cb5d5e3740479c1ff9ff0b96bcd35ae65216f20dff58b80e09daa3d03d95011b1611644c32915aab085d9750 +DIST firefox-131.0-fur.xpi 644994 BLAKE2B 2d9ab4fbaed6d97ae5b3422c0e05cd5abfa9d73f6b576deb73e91c32fd171684fa780255306f11bc618dfd550ce4a9a04736b82598c16c22545323f483d89f17 SHA512 fcfef9d9369e785036e562cb5f242a7e812e99d7ca8c0a952a82c89fb54af6f24b8888158ed253acaf15fa2026aa9200d2ba624108a3dc4ea74f711693f1fdfb +DIST firefox-131.0-fy-NL.xpi 634731 BLAKE2B a143de89d00b332e751625363c3135865f3dca8df8eb8dde601807b38c5bc12e34a453fc6ea9ab2b513099e98e7c7f8a894f858f54eb58870bb63b159ed610e3 SHA512 7d11e78232e19470be10139bf5d92eee49856b49f7b9ed252fd6ea2a452225a782b1d55927fcb34335e23246742de202ee0ccadb7fb11ea9f8a0e6876906cf72 +DIST firefox-131.0-ga-IE.xpi 475192 BLAKE2B 16a079e79acf8df2c1d7fe2c71690c7c14da610876d3638cf2c9cb40de5a784264ba091d0a1026340b6385d8cbc45ec83f59387450d045c4688e136cd538b944 SHA512 d52b8471fd73944276757e4c9d84c7c7a6e25c6f3bb4a58d0f31401ed6249615de3e461238672b32904f67282699b94ba088ad963a7de5826e09673268d5e916 +DIST firefox-131.0-gd.xpi 601268 BLAKE2B 424e834e1ce4de0c5f5121b7ccb5789680a572ef46b00aa340e62256fa7ab8763619c8213b294a52ff1264edec195adcd9e2e8b6e5d11478fd50e3bdbcc1ac94 SHA512 ae60976d73d7e238740690a379e2cb0fa3a460eda419cf8ff011ad372741f6e0d810d1e5848469922ee198e30aabd31fc8819dd17b6ee5f739363bebb8fe4d35 +DIST firefox-131.0-gl.xpi 612814 BLAKE2B 5c7f925a3f551a53a4f74c1e1fe0991500125ca35c1385c5bc3ba716a59005d0d1e8c5437092b7bcdd8355bff1b46ccbeb55d35d0c41bd19f44d70aed561635e SHA512 82616b47c9c59d752c549ed86b13a8641109e24dbfef1b9c26618d6e9eba32ca494a937ac661f0239f7003e699bfef7108a5d64717b0d72b5732df60caeb47c3 +DIST firefox-131.0-gn.xpi 647606 BLAKE2B e980aa121d2d98382fa3768727f7f3324c010b76842c54eceef39fddb5dece8873debcf07bdb8ce4bb1c62796e6bb75d4e422792d52b71ae75fafeaaafefc204 SHA512 07efb73257600aadfe875313725a2705f867831ead16ee75d54604ff0e2880d1502957fd698dfcc33316ea9f68c1e03e2cf6550ef4cff35ef8e3098f6d5d5ddf +DIST firefox-131.0-gu-IN.xpi 531670 BLAKE2B 7eba95b1afac79e63c359be28b9d515518494ef067ded4231786cfe88a31e7b04a49f6c6722669471bd4d6dd101109f136d05842274225be19f5626d462318bf SHA512 27288b38b31c155fd31c91af07e63ff9a4913214dc292e229547b7442ae011ea8d3e3cc758433c9ab03ab29ea280b6802f6324c0e44e7f57d69a5b2044a2821c +DIST firefox-131.0-he.xpi 641666 BLAKE2B bb3838fafce88524e10db28613f174108f0b1b8bdaba3d8b6552b9bf4d1ef93a61e7172a446c0294982f8f0f4faddfe942e715358a54a064e76ce8ca4fa5d727 SHA512 984b3e3095769945e748aeed5862bb5621390215259f10c04b2174edc2ee631bf222eaf129b9d3f9e78aba383fd21ed96c0824fd436797d710427b6a8c463dab +DIST firefox-131.0-hi-IN.xpi 570986 BLAKE2B 44a5e788694f67bdd9e9dc3bf584fb94256c35c2a93f23cf59336e33eb5235068b3891335aff6cc1381144d080320807b488027042690991284fe2ecf1a0761f SHA512 8b24a07721096c9fab41eb029b38d47a489da1a467430a5d343fcc9efaf4d38add836413acaea5b1142f9b4109b1234db9034e9295dafc26ed265e4039ad3883 +DIST firefox-131.0-hr.xpi 621594 BLAKE2B 672efaab9160cc38d9a31db3502beca56d3a4eb3181afd7364c20f7eed5171a90bb8d99270fa266aa8f6535692994173cf71a32813486655af54c2842cefa625 SHA512 bc38bacee90dbffac74bed98a3b31bdf5dc371ae5c67884d460d0bd272a2256bb5cbded45697e5f40cbbd304c874d20bb7eed6c294d726e8b89589b23bf2052e +DIST firefox-131.0-hsb.xpi 658185 BLAKE2B d528baa863f29d43db14d431d21f8e96bc5ef61e5c8f59ab58d0e51d5f7dfa3641f607cb84895543ad584258c401f1bd375c451081b4ec59e33abd585594bc32 SHA512 960bba96e0b99cfbaf58251ddef977c326ce6a00d4c53ee2fda992b6aade301647391248c8ae282a247602c10b27928b14920d908c5ca0874116e2447c102004 +DIST firefox-131.0-hu.xpi 662943 BLAKE2B f37a12f6f8482c597e9d6dfae2c8e89cf694f3d3dc6d935976339efbd0d2622e71648e54cbfe74b638c8aef6c014b2a1992d90f56d26e6731adb2e9a18cebf68 SHA512 9df4743dd05a791209f5a9af6e3d68359d8a9ca970c9bef252659b1f23bcbe5e702bdae32139f1180715fa23f1548c9d8854825c117187ff0f2108c2f4957b89 +DIST firefox-131.0-hy-AM.xpi 655957 BLAKE2B a6c8892e6284ecfd07a19ac509ea6dbc2f8dab1b4ee6909106d8a564f1bbfee858b20ee91283796c92f2bc055d03d339c7a223980ce3d77e6cf4be30de11b4cb SHA512 1e2dff44422d0cb00568aaaec837cf5480043b703735f672f64dc0c08de67eede417f00f90d2953aaf0fd5c936cca11a213e151fbfe0add0cfbbea116dde8f9f +DIST firefox-131.0-ia.xpi 621926 BLAKE2B 3d0a85d51f2054f65996ce0bb5a240d5fdf62ac4072bd122e6d8a986e86fcc2fee4611bbdff3f43dcc0f2e59a91e2c292146b4578d86db3e9294e1952376febc SHA512 a5a1b5b9acb5e215c65f0922b071466f6f9d3a3443045263a69a1e18cbf8fab1fe10c79232178c2a9f71249d1d1465371c507e4bbaf529150bfe13c35980093b +DIST firefox-131.0-id.xpi 589321 BLAKE2B 4311f7e3922bf18c5dbb2c43039d247def2df5d4f377d2ceea54c038b0606757a1b427b1e0e0f5fbb5d7852ef8e09a300f3b854dc9e7692f12e0058b1c0aad26 SHA512 2d8da793c1373608bda30bb835f7f2b1282a61769a8b9ef1e4bc5535555c940786ae5eeeb58b9cf97ed360eaab4b740a256b095659c5eeb3221dbf3944d2fcc2 +DIST firefox-131.0-is.xpi 627295 BLAKE2B 0584612cbf5bb7acfe8876726d30ee3b5519fc93d909b544849db686092f7639504af61c2e6967ae3b4b4b387f1fe65aec1e8223598ab47156256c7e8c810420 SHA512 8654ef268f037685e058eaef6bd0ff7e916fa4b68a3fa083778437ed3d38720da8b9cca57f2ab615a69ee73838b64016c9ea7bb3a62d6135d65fd056f8287dcb +DIST firefox-131.0-it.xpi 578393 BLAKE2B 06755ba6f7e2d54cbe0f5b3db8a13b4787a21b63b4d0098395143f94749bbf9eec7c4c760df8f6223322c96d2c7bba63eebe2c0b368e8cbb8c6c91cf192f8b70 SHA512 1e7643fa840201368c3e218b0d278351624fc0a2b742c96fb553282a5e7996e13aad7ba8efcd41886c7e88bdd5161f5806c7332436e6c259e81dc9e593114e34 +DIST firefox-131.0-ja.xpi 687804 BLAKE2B 024983a7d29de9ccf53280796749ee119b5ae56c19ba12f0bbe8f74bab4f4507f03b21f5913e24b5efb240e9f11fda89596ca51ac4a76fe3d2e35eaa13fd9623 SHA512 da59fa6f60982826e2395e73c4cf58f49bbd0e910ba8b5e5cf79b262c43cc8685b251dd0e5c9a4bf4d3db6d8f1a66be852ebce93402df7f7fe7ff4b2adc7fdea +DIST firefox-131.0-ka.xpi 665759 BLAKE2B 59f863ee4146003fd5458138ec76b5a5fd9db781be8205550f23ce45d8a9616e3bbb7e80340671df0d2b7a86384d52f49895793145555e979fd02ea705ed14c6 SHA512 ef9801b1ca395c864e2e7aad802b3f93eeb29c0e64c8acce45f0d4bb796d4095b61506f43014aca13eece425a8cdad79e7b05c0d87c3391bfbfacf60fc57795c +DIST firefox-131.0-kab.xpi 618858 BLAKE2B f8c4c018bf707bf7603d92a8ef0e914e1bafd730ddb24e313f67c53e63ac0ac942a464dc2d5c998f7bf0f7a38d3fa0f9f043f98d3dfbfafc0482ff303be31f35 SHA512 a55057341644a966bbef1ae19c3899e3c626419a1187db436a115b0a6bf90d873819096ac8e5b3ba378d1604668b9a7eed216ece11d2369e6fa9c4a65e5da01a +DIST firefox-131.0-kk.xpi 720151 BLAKE2B 0d8facdeb3d190f038714a860f5e5211776f44e695db2923197d7fdcdaa6ecef3b21b0ef157bb2f2b287eb0070c390009dabac168caded684a538cbc78b2f716 SHA512 d68440b27a48f90af325e9352557235d36e2814ad1e6de797cef42386c615d1367b3707eb6bc217abbab32714a4aa40fc81542af592dbab49e2eb319a8c5b0b0 +DIST firefox-131.0-km.xpi 530159 BLAKE2B cac5f1fb502af908e85ad61541126d357a47f1bbd44e9bdae0ffa6c1035af224e284cf7a0f65249e072d8f337996e084ffe292ebc4b200695bf07dd79d4558e8 SHA512 7b8e6dab2e9e9d1088949515e3561570d990f0f03ef200308f8af707630ce9e62084a85726f12289b3d1b0b95e4831e6e18e5cce3f985fa7feccc7138d800939 +DIST firefox-131.0-kn.xpi 495168 BLAKE2B 907c3ef0fde43c602954c8d1bf71849da9fa51b2407b4de7c1744745ed2d705ab465d6108479790f3322eb5417d5289b8eb7ab7a833c3865e41671929b29037f SHA512 42e5f13b12640fea3466be5ab443bc2ae6f79dd377eda4f465190e68f841c2c730de1758af2f13fd45841e0e98e8ff451375bbaf3aba28ec777152023d8334c3 +DIST firefox-131.0-ko.xpi 673052 BLAKE2B b52a927bf1769a86acbe2abab3f50390104c3cced7e9dd7693e4268bd61c3583ed2093dc8cad166a17801d705446c08b8ddb2cc33c0b2040251664ac889ee20f SHA512 7699e4f8ce55dbfc68547d416467c0b6a6f880af3d80be1ee4989c709e2dafb31976f4c27a8611fc9c08051401368f22787153974868d1d6f031e7509df16745 +DIST firefox-131.0-lij.xpi 488457 BLAKE2B 46635018001089b0d306bf6b142d93fea3d131439c7572a3dd1b4b35f25b033ef05588071724fe74117118504ad39f5741acee25bcb5a9861a95d09023456813 SHA512 9c5c2347b06628bdde767343983973cd6d782e3769c2e4c4b86ee4530547c3b8d922cf39f6b5f60729b9e21c5225a8d0456d1c39860766dcb330aaf744984481 +DIST firefox-131.0-lt.xpi 577191 BLAKE2B 8d6d93e8525bd8f14f39046d1d8d2f3756c18447e66da3211ff10fd4823e69acb1ec92c0488fbf941c706454bd051c5d111ee13f68ffaebe2114b4a57ee8a9a3 SHA512 7a65a8b0c246e177e34ffa0ccf33d5bf275a3abc69c0671401e4a31cdfc4dc17bc7b1dbd97beb30dc725df47553ae290e5ee2d167e0f74201961ae68a8acfd9c +DIST firefox-131.0-lv.xpi 590484 BLAKE2B 0c3d28905dccd4f407a049be5a18561c4e195800de79de17bb5c81e41fa3db0a228aa893617a6dac586946c0b9ce531659b3cd38a6dcbe4da2d414ba6f977fc8 SHA512 d1fd0ebb2740f2897eb2556ce6b798225ccff4a80cd44bf79af2241bb324d13d17f2f222872eb323d6f5fbef46ba852bbd4102dfa47c6d825f3834d700c603e5 +DIST firefox-131.0-mk.xpi 497777 BLAKE2B 0acf9cd240ed4a68f76080be3b6eaac4e681b171bc7e41452a350ab87c52721c72247052684dce823711215a5ab529c5431eeffb138d9580ec8a88c4d8c0fbec SHA512 30d349fd976b7513a6e14ca4d2c9554c3ef678561fd3e7fef13241bddced9424d42c6e5fa47785294d2c92ce873d2c80d32693789d499380e3406c5b6dbb4f87 +DIST firefox-131.0-mr.xpi 536292 BLAKE2B d632d4e5ae295e8c4d21fea67d1217d640296d7e0baa8ffd28076d08ab5e1336e900e5f0d64b197d899db9d7f478c2d1d610b0af9a569461544cee3c7af57e19 SHA512 a8f479822b43a04672f85760bd5d0a9faaf1372507ae93b258634670b93abfa42d23abd3600f8f8d19516e9d8f6cbb9bedab953b84cae21eff7e156a93c47b7a +DIST firefox-131.0-ms.xpi 454052 BLAKE2B 446c504f14bafc9cf2fe83153739c3e33353cde6bbf9d6c23b077b046df9c08985cd47942bb0bb5631f2a4a498e74ecd3c092126623f2ecde69fa2adb9e0d947 SHA512 ed7a08fa943a3c48e0cda0d8e8ee0a2df6fa3b1a2bbfb5e447a9d46fcb48dd33c37737e392094cbef45310ad37c150568a3d8ffd26bf7ad7fc87412e3c22c45f +DIST firefox-131.0-my.xpi 522635 BLAKE2B 5d7615cdc5b6ec87af535ec4b08ae56c5dbf89fb854b187d39d82c41d7516172bc4bc3039d806f9e1d4972b2383f3d58a233adaf629a054fb08950d6233ee92d SHA512 1478f89e314b2e0ba3e9e35d7473498f2f0baeb31d30fefcbcf7bcf8dd466f3a800883d9f199e63e5f5b16499272f315bfb5f74f1accdcfca699a07bb98b9aa4 +DIST firefox-131.0-nb-NO.xpi 619132 BLAKE2B 8384d496d362f8665f43aa4cd842d0d325c39ff9194b68b30968c69a3c35e8978125449ab779524dd88554b309fd9e0d7b4b283aeff7599941d3a2956d7b04a0 SHA512 a7bf7e0284d74a6e81d868ab8fae04956c9ae12232ff8a2c38a433a5a2caac2acc8f0efccd1c74dbb18fc43b958907f8a039ab2c6163eebcee1ff24fee694307 +DIST firefox-131.0-ne-NP.xpi 525071 BLAKE2B e21d54102230bb1b0cb88590a025317142430b59b8be430bf8a49f5d03c381c3d82e8ec4dd07f71c8984811e480cbcebecc34bbd8032e071f47a2a8b489e7c1f SHA512 dbb02f4ea31d80650b307e182e8dda2db5bbfd56f3cb06969b602ca2d50a68ca19d0c6ed1e1c5ffb672509afb6482b5e70efac015ca61814398a8807659de4ed +DIST firefox-131.0-nl.xpi 628355 BLAKE2B 6e13db80bdb35eb10f2054270e657538d8d65de442ec232c4879f278a91faa47d6e41782634e97dd48cbcb0b59aaa715bfe5699970172578f678ca5e3912cf65 SHA512 5c7e86e8ab6f724b56ba71a362922a9db6abbfed60ea5a4886ff2cca4614f75664f95e083dabf20a372a2f2bd0f43fa1371f87268ad5f65badbba293586306f9 +DIST firefox-131.0-nn-NO.xpi 621981 BLAKE2B fce6ec94259fdf72a9b7987b507f04d8b33d6bb530e3d0498452d3ce4610837d01a5f0d4ba7302847b5e292ae86f2dca425a4c8ff999596b4007d40d8bcc0c8c SHA512 c3c44599f19fe306bb94cd7883576921e906bb228275dabc1cd0ae69a41476b8706385e9ace99159c0010a373aa46abd99bc8df39b6fc623e1fc5cc6f5edfa55 +DIST firefox-131.0-oc.xpi 618714 BLAKE2B f0aa5b9232c8ded31813f180214fb386ca6c85946f23638cd7baf0b79ac841281aadb752bd2d71c73a2c4f4f239462431e411d145c1c999f7a5538a3947d883b SHA512 adb7874b3616f50ca28ff21ecbd4694c860a39c0e115be9a0ea4f61e40d54ece079b2a8ef40c5558ad035e5cda146f78d945c431f5bd3805e5a7617940f20aaf +DIST firefox-131.0-pa-IN.xpi 705113 BLAKE2B 533d5a3fbccc9572af692a5da8dcd02fc932cc25a51842f6f44c9712eb7a1746184dea474911771e985149243a26b3fc5f8fb0263d2d93b151d8593190c90cb6 SHA512 f61dbe5e20241a73996e9de4e531ad020d26f528e1ef09c03f26ed07e3f8784623a8158a2ccd778b7d957d9b95b14d316e1fc239550b06e76be198bf7ccd499b +DIST firefox-131.0-pl.xpi 647708 BLAKE2B bdedae96e29967f217af000bf52e2bb1b33855c98bff658d9a3cc914b377b1b4aed8bec5d2ad0b525aa8815d0485b8b87f0d9d7202728ad8bdd7d5364df5a775 SHA512 0465d3f72a52003bf26d6fcfa686fdf7fb078e80c3a78ca20222facf1a741738afd2b54c8bc7dccf4f61bfb124dc89b10749896d8402495a3e6fb2c45dd9b964 +DIST firefox-131.0-pt-BR.xpi 633017 BLAKE2B c0ef3230361df746f3619a4bd0d69763fe52502fd642915e58d4ff57b5776de6076166379246d9c9589bb32823aa7e982af75c6d7b0ceae4e76fa56d271d0048 SHA512 3f541325545a58870000b4bcdf74301c457057ae7c420870f578319eb7f854a294063e6cfefef1ca3304339327b51a7c43274a4d526db23283a4d9b7f34da7ce +DIST firefox-131.0-pt-PT.xpi 639638 BLAKE2B cf28f08e27a11189596b7d3ffdcd45da0481240f6e80569b1c8831cfbbf99735b2d8ae9a29061ecf871233294d4647a6949a1de276d93e59a4617c2c4c7c2e13 SHA512 bf3ef14f2da8203e07c7d29635791b81b63950c8aaf6eb285914d1b97113b39fab6e377baa3e0b63fb7890df9f16f7182c8e08e04e77ee61b98292df3db8f0fb +DIST firefox-131.0-rm.xpi 629140 BLAKE2B 5544f6cc438dd40bd8286a9e63d6a96326b5e3e75937a7082ed05b489a196c50c7f62a6cd959e0bbf657037bdd70840e01b872bef0402289466ecd6f464108fa SHA512 2496e359aec52ce08aaabd49c1e74073064eae18898f2f89287b425c670d014fd91eea34a00478ba6ea483085b1607d567a86691c1174e9d3624fc5f1a0561f0 +DIST firefox-131.0-ro.xpi 554255 BLAKE2B 27c85c68207e902d1c7484caf31ce84424ee9c23c53c9c841c752673152f157c7b29b96b594f97e5bd9582e70a090e6961e143067fb054062c0b390efffb7e70 SHA512 43f8c1241176479daf7ad497e4661b49581c4c947c836576810ba67db5e2a454ab1a7af01ccf4db3c32355f3697200e86bc3b5203f65b7c0895ccf197306eb5d +DIST firefox-131.0-ru.xpi 732956 BLAKE2B 2617978ac98dd89cd777fa818509a7772f09c31df8a660f1a36437a94832603c7a9ab034df8bd6fecbeb63e2089ca1bb34ab43286041148c1226f0a1034a0b02 SHA512 e7c44392d7f6711e066d6a2c7f8cf288dc5d19db9e0fdbe8947b0c4ed74e1b6a861c11863e5b1582f297a8bc72bed2f7f8edba68fd96d8f1714213bc7dd19b48 +DIST firefox-131.0-sc.xpi 594031 BLAKE2B 733f33bd96450b951bc7c91864c6d1732eb8e1b25926c510f01fced39b3c4b186fdead510d2814e7c2bb9c8b4065e88ee06d22c36ff06245b95205c81b7fee8a SHA512 61ca08f067ca57aeac843251cf68550b00252fc5207abdd914ac5e3ce4bdd20af1fd08b791e785f4c4f900bb61a77f8afd9d887f87fbc00df4914ed58d723c72 +DIST firefox-131.0-sco.xpi 515583 BLAKE2B 1e968d4ae1eba91bcb41d2df8369c7a3a7d4b2a8453cf5c41b4e476b276ffea128cfa89744bd4b1435eaa839a934337df339e44c721a8a049048918e3208314e SHA512 90d644b9562e72cae318a69874c8060c7b9986cc2eaf18174aa04ac5964cc5b9ea2122aa0ebfb39f8261a76ed1c0003ced7c3d76972a0511325c787db16948d0 +DIST firefox-131.0-si.xpi 617762 BLAKE2B add85164b60b29171c9ea28c31bc864dcea981d939d9d620e84875fed2438c2abe2652aedff6c73019942ee0381751f34ffd4857e885a98578845c0c43d383b4 SHA512 a8b81cd7d4435df7b9a784b592d1cefd3c9191414cf1727b47d14d8ce2d45730a8cd9aee780e6e54a0f69ff6f961c66ccc33b08c6becaa323c76cea14f9373ec +DIST firefox-131.0-sk.xpi 664161 BLAKE2B c43b09f64edbd29c7e0aea0b02a72f32b94afa9647f421160252bc974205f7be1dcdd5cdf0fa983536bcd38c90d5962de7f555b3ee29c325119327b7e43a4f02 SHA512 5c9b3f63b2ae742e0000da7f0219d7da788df56d575649be6e6b21931ea875be90538b831b12eb87b9984b312b542f928b0fb8fea5b21842949f8202807aa5ab +DIST firefox-131.0-skr.xpi 722675 BLAKE2B 18636dc1bdba5462585d4f0816abdf1d68917108cfa092a6c5efa584405e0a89b10f2a725c13be4bec67672fc5f1d87cbb26c88155d0fa3c0da2f547f670de19 SHA512 5e1e2ceb377f3e75cb8623b1c300c82d8c06ce90b1daef15868d1e7081cff8243a839cd2aadf2bfea5d5679f54829c90981d81fee8f66d43b0e4c8a5660e9187 +DIST firefox-131.0-sl.xpi 630604 BLAKE2B 378b92e18ef69ea3c440aed2c831f36fc3609c2261cd5e2dec4435071dadcf4e0c546d906e2775825b061199114eaa66044368e77b475c074eca4887c3324b6d SHA512 85284c1c15154110cd172d58ff0198ad418422246cfeac03196da8a17a59c97f3027e8e58767afda7526c42ed8d5b3b4bd3584a7dda2948a8462c92112cf9bc0 +DIST firefox-131.0-son.xpi 420499 BLAKE2B 430090a8ccb9da5614d4c00e9176f1250c423eba0fcaea809267d5657a0728d885a10161a2bc5ea23cf649fd0db5272dff218424333ccb55428b0390521ceac6 SHA512 df272bb57b2eda4a2ebba969e3971238262e8aac3cc8fca5c3930079a6a20edc89037d57edf52dc5cb6e661600286a9b60226b796949bc5a17a1b7bcd7cc7096 +DIST firefox-131.0-sq.xpi 649700 BLAKE2B afdb0c5127148c9d253318128bd577b76347ddd848511ddcc33a9628bb12c1b1e955036e2baa5106520073cba9244510171b9337ef6a995dd0c5930f36f32dcc SHA512 e6d5b6d1ab8a8056cd8910160c535bda98e11b312f6ec69102ba59bdb6b058c19eb902b4a700deceb922a9999e7f7c5b3fca4ed730b9c559c41bd2eaba27fe63 +DIST firefox-131.0-sr.xpi 644244 BLAKE2B 8dc70cb7d3954cb722031250923851a8755877e20ce431ea72427d02a2346692b3d7eb371f575e5e64c8e3dd5af78b160bdb93325fd3b2215f1cc2f861e6d210 SHA512 726e7dacd5cfab0015540150a219c9bd43749fd3dc834b46d8c36539e3544321c4b78d2e0af2d67f1a455f9d609bf4cd0990fe176526790db095d8edc91ee006 +DIST firefox-131.0-sv-SE.xpi 629846 BLAKE2B 4a4eb8a0dca7fe169dafc33142b4d6e81e192aaf34ff4ef8b60e69ea1648a993c8c03e98c97569a24d60f98fa71bdf40960e8d6007ade9775b096bea77f9e226 SHA512 750555c774af6e19b1bed2f0065564cdffdeca494e0f692d5d9bb504c816171be26258c10001e21983e778403aa7d461f50e92642b1ab5ad6085453cf0dc0725 +DIST firefox-131.0-szl.xpi 530725 BLAKE2B b56ae6e1daf0af3866e4d6212b45c0938e3113247184dc09d2ef6ac24c2a0ba29b55625ce97fb5ca01534c2ddcfc6bdfb81bee015733c610f4aaa40d9b938d69 SHA512 00b3154fe42317664d50531dbdcf520ea38dd2768d9a36416847f0c13a6a1e926004951798f0ed8180b0c48eb5e50c1707289794bdefaf19a446ee80133bf865 +DIST firefox-131.0-ta.xpi 511445 BLAKE2B f417dde4fe08f5ae189b0ec82863865230546d57fa2513a2b672118a7b3e0e78a182e22e69313eff5f5124afa5042c778d086d8944e3cfb3ee2f384e1dd3faac SHA512 2ebcfee3c48aeedf2d038ec3399c975ee6b7a5f6adf02a53d184c4f12ffa748f097431fe7d894c58f494d4ea0da0bd4a9ab6d5b9c1fe020b484ce38dae35bc56 +DIST firefox-131.0-te.xpi 565382 BLAKE2B 983c70fab450eb34728b707b7f7964e95faea8fb489b6fc31a11db7aea4d5ffbb052c6318a9c43662afc36679adea184302e062a6b10ab146841ec5a39952fba SHA512 c2f0a21e98a38319212d195a56d56cb92a01dba9c5097915a1c615e31ea52349a283ea392e5c780e6fcbbc3819a2ccf0c57cbbb9cbc5a3b5a0f121f7e54135c3 +DIST firefox-131.0-th.xpi 708981 BLAKE2B b6c43da1a88f48a747554a64ab4cf8d67924624177ab87290debf27dc72301da0932edaff4bc7738dd21222d0e57b63bdb1262c174f0910365516077a24048ab SHA512 4793187198017f59c95472822cee34e95af9b857f6b9688d1a60e74a0d613eb668fb0bb06ff9ff9d482d4b9e8e780dec9184deb23f0b250ba30fb56c36247bd9 +DIST firefox-131.0-tl.xpi 538583 BLAKE2B 01000b44a968556cbabf1b323d52eb1b2e447294ff4a57c0127da569d0366ce6f4e6333e6bfbbd9df27d5398940590d0220b3ea9df051819d6dd4a70fb790def SHA512 fbc5f534f25eb923516e213966fc108e606566d85dfacff04844c94ade44671ad8f47850f4f3313db22e867cf6298ff3f027f2849088f2c386a215e861f4f0c5 +DIST firefox-131.0-tr.xpi 643429 BLAKE2B a0f35e8d454323845913d1f4f4bb7f6dc2ff7f16c546041ae972172b7330a1a5677edf16b8d91bc4828d62a43a48057cfad3ed2eb0afa1b378892637d74a3c70 SHA512 478d31b77cd95b00fe8f7be502547db501c38b78cc579b44f385cc84f5f432c8c124aaac15475edb12f72cc734a86649ba41ec15d42d6fdde2bb08fea5c68056 +DIST firefox-131.0-trs.xpi 508556 BLAKE2B a973739032a45f858e46ec1f9384e8fb71c3bb59f71e15160c1c77a2e70b7f012be3b789b61eb026f59862c1bc06c2de0d3a6214c1cbe9c98cf731dd6be975a7 SHA512 af53837e853efdfa46d490e3ee6e84478eef91b7ed4e35c7873134524dbf0197aebd50bf71618ef30baf7753c0ba8edd3f01914912bfa29b914b7e0d09b40b19 +DIST firefox-131.0-uk.xpi 724261 BLAKE2B 51650a9c318cbd5051de6d7cf4e3a89f5bf54e25daf3cea10b6182a909625c243696801e8118ea1df1ac7fa776748216abdf92987d8d92e52f03a07c6f74094c SHA512 cf5c8fc173f7d4925830252e632a1c5e8c229db4e3ae285896f27684a58d263cd9a69052d1bfca3a261331182311ec5e12cc6b60b18cab910569547c3b774f55 +DIST firefox-131.0-ur.xpi 564468 BLAKE2B d2e616c8e73cc6c5cefc08a64536a79dc40dc1e048877c561355b363b853edb7bde4a7ba819f9485a69eaaca8f00ef9f0902848024c295d395d18e7e8e0bfb6e SHA512 b1cdb51ea9e102bab045da697791b117c898e0a7ed6559a6bd1d6f652d285ebccf3bab76c1182e81c7b00d482e2f1627d6d0bbf1c2e76c95bb250ebc3767fca7 +DIST firefox-131.0-uz.xpi 483057 BLAKE2B d55eef3cc718b9053f4432459605ffa7c49c33c840eae96d40d38f5e5b3d45c367b2371f0f98488bcaaab8cb1881429c2898a6621187b2fa4e7a9563ea4c24c4 SHA512 28d0682ade5e82d3777bdabc27ac4277ff1d935439d858f831f6d93e73adae0882a2af88bb32fc835117800903c59bcca6928e57ef24ddfca13d280e02353c8f +DIST firefox-131.0-vi.xpi 667583 BLAKE2B ec659b907cb7a5b5882b10ee1bcab75113ab0e81796355934aef4a94d1d7cae1b25e7b97629118cb318828ca2aca12e4fe87da234c9c9cafaf3402dddead7d2b SHA512 295674735c32a3198ff6c2731b7faef3ae85ecfadb320116460fe3efaa6de653ebe1db77a2ea4f2e54f82902065a672992d242f082305636f0f61be06a19a345 +DIST firefox-131.0-xh.xpi 421249 BLAKE2B a006441cd86f2e4c505492b21d7cc68df5751d5c6d62b03188d3ea5e44e47afb327f07c6745bc0486dfbb00dc268b3db941cad6f42b70462cbae5c2354f90601 SHA512 bb34983c8ec72f0247eb717a5e3805365ef6af7986d2315bc46b15b4380d007360bd9477ca4b71614fd3b920f53244f88f9d9ba3b6b86cc5d593debf0496e455 +DIST firefox-131.0-zh-CN.xpi 668952 BLAKE2B c1389fb8dec0f1188ac7b5721e8b27917bd29689ba5f47d3191ad702e19dda83fd6317f1a5fbe0783d66636aeb0c8306c5a27f015bc04ad2ea55130a8a61eb33 SHA512 1d7c967786304060409a4ccd669cee1653835e6e18bde61ff7b90e6090f193ab99eb8392d4b7af4a46b25f542a1281e87d5c06b2b783c4bdbdafc2aa172c2ca5 +DIST firefox-131.0-zh-TW.xpi 670927 BLAKE2B 13de3debfffe7f4f8e4b7713c501bd273b6ab3144f5e4580a7b2d2f775006b87f90f88640f84974b86f9ac667b4d975407bb8ff4adaf0b03e4ec95580bc064d8 SHA512 e1603c59b42cc957db8a0610c562a757d7e5b7ea74fc4f5340d08e04f7d01742087482760bc7a128122e9e810d74a69dc2dfee78a0597f78f2ff2aa1382e4954 +DIST firefox-131.0.source.tar.xz 566366180 BLAKE2B ffb8c12ba76f8d06501287ba1c61279e9167f0684275d8cf7e2c3be0697326ded824ccd60f8e44ca7374b59e9e580b2dcba23d2dce4bb184d2e73faa86d9d5af SHA512 324cbaadff4d19a18d56ca01ae7212ac8362e3f5933f3017a19b64c35d58606ace8bba3672790ecb48d4a849619cdc95701440701725e8eb2859d55f1e8d8e3c diff --git a/www-client/firefox/firefox-131.0.ebuild b/www-client/firefox/firefox-131.0.ebuild new file mode 100644 index 000000000000..f38e59b13795 --- /dev/null +++ b/www-client/firefox/firefox-131.0.ebuild @@ -0,0 +1,1369 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-131-patches-01.tar.xz" + +LLVM_COMPAT=( 17 18 ) + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" + HOMEPAGE="https://www.mozilla.com/firefox https://www.mozilla.org/firefox/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.mozilla.com/firefox" + SLOT="rapid" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]}" +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack +jumbo-build libproxy lto openh264 pgo" +IUSE+=" pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg" +IUSE+=" +system-jpeg +system-libevent +system-libvpx system-png +system-webp +telemetry valgrind" +IUSE+=" wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell" + +# !jumbo-build? ( clang ) -> bmo#1914774, bgo#939004 - causes seemingly random compile crashes with gcc. +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + !jumbo-build? ( clang ) + pgo? ( lto ) + wayland? ( dbus ) + wifi? ( dbus )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + clang? ( + sys-devel/lld:${LLVM_SLOT} + virtual/rust:0/llvm-${LLVM_SLOT} + ) + pgo? ( sys-libs/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.26.0 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.76 ) + !elibc_glibc? ( dev-lang/rust ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + || ( + gui-wm/tinywl + <gui-libs/wlroots-0.17.3[tinywl(-)] + ) + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${FF_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.104 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + x11-libs/pixman + dbus? ( + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1:= ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + ) + wifi? ( + kernel_linux? ( + || ( + net-misc/networkmanager + net-misc/connman[networkmanager] + ) + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +# ESR and rapid dependencies. +if [[ -n ${MOZ_ESR} ]] ; then + RDEPEND+=" !www-client/firefox:rapid" +else + RDEPEND+=" !www-client/firefox:esr" +fi + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "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!" >&2 + einfo "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+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm-r1_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#917599 + if has_version ">=dev-libs/icu-74.1" && use system-icu ; then + eapply "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch + fi + rm -v "${WORKDIR}"/firefox-patches/*-bmo-1862601-system-icu-74.patch || die + + # Workaround for bgo#915651 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Workaround for bgo#915651 + if ! use elibc_glibc ; then + if use amd64 ; then + export RUST_TARGET="x86_64-unknown-linux-musl" + elif use x86 ; then + export RUST_TARGET="i686-unknown-linux-musl" + elif use arm64 ; then + export RUST_TARGET="aarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + else + die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651" + fi + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_cpu_count.py || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/libwebrtc/build/toolchain/get_concurrent_links.py || + die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/python/gyp/pylib/gyp/input.py || die "Failed sedding multiprocessing.cpu_count" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Clear checksums from cargo crates we've manually patched. + # moz_clear_vendor_checksums xyz + + # Respect choice for "jumbo-build" + # Changing the value for FILES_PER_UNIFIED_FILE may not work, see #905431 + if [[ -n ${FILES_PER_UNIFIED_FILE} ]] && use jumbo-build; then + local my_files_per_unified_file=${FILES_PER_UNIFIED_FILE:=16} + elog "" + elog "jumbo-build defaults modified to ${my_files_per_unified_file}." + elog "if you get a build failure, try undefining FILES_PER_UNIFIED_FILE," + elog "if that fails try -jumbo-build before opening a bug report." + elog "" + + sed -i -e "s/\"FILES_PER_UNIFIED_FILE\", 16/\"FILES_PER_UNIFIED_FILE\", "${my_files_per_unified_file}"/" \ + python/mozbuild/mozbuild/frontend/data.py || + die "Failed to adjust FILES_PER_UNIFIED_FILE in python/mozbuild/mozbuild/frontend/data.py" + sed -i -e "s/FILES_PER_UNIFIED_FILE = 6/FILES_PER_UNIFIED_FILE = "${my_files_per_unified_file}"/" \ + js/src/moz.build || + die "Failed to adjust FILES_PER_UNIFIED_FILE in js/src/moz.build" + fi + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + xdg_environment_reset +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain, + # AS is used in a non-standard way by upstream, #bmo1654031 + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + + # Configuration tests expect llvm-readelf output, bug 913130 + READELF="llvm-readelf" + + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + if use telemetry; then + export MOZILLA_OFFICIAL=1 + fi + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-disk-remnant-avoidance \ + --disable-geckodriver \ + --disable-install-strip \ + --disable-legacy-profile-creation \ + --disable-parental-controls \ + --disable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + elif use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + mozconfig_use_enable valgrind + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # LTO is handled via configure + filter-lto + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-jemalloc + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # elf-hack + # Filter "-z,pack-relative-relocs" and let the build system handle it instead. + if use amd64 || use x86 ; then + filter-flags "-z,pack-relative-relocs" + + if tc-ld-is-mold ; then + # relr-elf-hack is currently broken with mold, bgo#916259 + mozconfig_add_options_ac 'disable elf-hack with mold linker' --disable-elf-hack + else + mozconfig_add_options_ac 'relr elf-hack' --enable-elf-hack=relr + fi + elif use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on ppc64/riscv, + # see bgo #917049, #930046 + :; + else + mozconfig_add_options_ac 'disable elf-hack on non-supported arches' --disable-elf-hack + fi + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + if use valgrind; then + mozconfig_add_options_ac 'valgrind requirement' --disable-jemalloc + fi + + # System-av1 fix + use system-av1 && append-ldflags "-Wl,--undefined-version" + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + + if ! use telemetry; then + mozconfig_add_options_mk '-telemetry setting' "MOZ_CRASHREPORTER=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_DATA_REPORTING=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_SERVICES_HEALTHREPORT=0" + mozconfig_add_options_mk '-telemetry setting' "MOZ_TELEMETRY_REPORTING=0" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + if use valgrind; then + sed -i -e 's/--enable-optimize=-O[0-9s]/--enable-optimize="-g -O2"/' .mozconfig || die + fi + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set telemetry prefs" + sticky_pref("toolkit.telemetry.dap_enabled", false); + pref("toolkit.telemetry.dap_helper", ""); + pref("toolkit.telemetry.dap_leader", ""); + EOF + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + 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 exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +}