commit: d1182bd1aa7990714caafef751a10216da8c5c79 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org> AuthorDate: Fri Dec 19 11:05:02 2025 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Fri Dec 19 11:06:26 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1182bd1
www-client/firefox: add 146.0.1 - include non-unified "-jumbo-build" build fix patch from bgo#966424. Closes: https://bugs.gentoo.org/967322 Closes: https://bugs.gentoo.org/966424 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> www-client/firefox/Manifest | 102 ++ www-client/firefox/firefox-146.0.1.ebuild | 1464 +++++++++++++++++++++++++++++ 2 files changed, 1566 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 9ec4458ed361..7c0a950396ec 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -1016,6 +1016,7 @@ DIST firefox-145.0.1-zh-TW.xpi 479814 BLAKE2B f0920e55307e907d6b8800e330ed65c163 DIST firefox-145.0.1.source.tar.xz 645303268 BLAKE2B 0e76fefc9aa2f80dbe1ab21a1c576f5199a1c5b33d5ab059d6047dc161e6bfb27e64a58c676ce805a297565519321a548bbad80cfd1d6effc8e2e34299f3a116 SHA512 6e052fee46c31b2696ba5403f905e0b94b08ce354588cd6315d54ee1dcff9b82835d64ea5a57596dfb1866dd1518a29966fdaabdb4c3838103344bd2dc18c72d DIST firefox-145.0.source.tar.xz 649881808 BLAKE2B a8007d06dce77197dfb40ab9a759287b6bcff4e56d1b2c7acfed9475aaa2f936948534d6e726a158550c70a28bad8ec8c7f1b99ca8165198c1952a484869b6c9 SHA512 7ba40d7de95d7b93278f1823ce460b45c6bfac01eda52bc5c28f23a6bc858bdcbf8b4b4dc359b853372fffbcff4e7f0b276fefe22c2d4a0fa303e8ce1d2629be DIST firefox-146-patches-01.tar.xz 10568 BLAKE2B 643ed4298d7ab2251ae1f813473a7b461aa386dfb72984e46201b22b6cb0f69f28e92b44a4783dda32a81b4b0dacbe8b47a25b9232481ecd79a19550e74e4812 SHA512 9e2474eedda1c2644ddcb0f9fd2d90ede764469337eab1267d3d4dbe8e3487bb519106449acf1da9798050d61a51e96a882f365e4587f88747161f6418203e4e +DIST firefox-146-patches-02.tar.xz 10888 BLAKE2B 75c6f36ef1a097f15a6c1df829df98f3d7053de1d59cb546ca309974a9a5331bb147cf7921096b7b25383b416d187a387fd0f6a3a7fb562d0fea952f6e81fb79 SHA512 8a92d59655765d6cbe7764040f23524a0c4cd25db64be686d7c163819dad9f7304da71f6dae9075f33a15128ae26a70a043d4c135329a017e1e1108094c75e40 DIST firefox-146.0-ach.xpi 293906 BLAKE2B 805c65104451b5736880d3f2e04784f8824fd96ba4ae9274304222dfa7965e65a7617b9579c4529577f8ebcd638a3d054ae83b22ff55e23456f546a2528f5b17 SHA512 ff2d360795e20bce2aa924a68bc7f07637a8565de5f7268641562a319ba78e1d499e62c07bcebd2e01e4fbe941830b11a21b7630067ddc7417d5da49f78010f2 DIST firefox-146.0-af.xpi 267091 BLAKE2B b6230e7a0b56dc3b0276d3e4f8aaf46e0cfccb9e496a8fdddd56da198e67c56745ef6b70a9b2cca143d4922a5b690edb3101879c9a496357fad3dac01a7d1d4b SHA512 0bd0eee7fbdba23b5197208c96e0c455096407c756c66c1ff575f901ebd0a3273b5880a18665ac777fcfa520636a0794c58c431289319082e6b7c53c325c35f7 DIST firefox-146.0-an.xpi 331365 BLAKE2B 16951f936c9a638ee36bb2238e2ccfe3f6bc8da196d9a7aa64f3390a1058be2cae555b4c16e4f700d5fda4d4a3010a869701e9bcfd9b37f2c1b0e0e56ac8e2de SHA512 c0f9ab0dd92679610355fe020eb2ad93a1b50b58ed12b714990cd1cad26029e4dc46ec70adebb8caeabecb7a2ae65efcc1032dd9c6093b99d2a47df847aedb83 @@ -1116,6 +1117,107 @@ DIST firefox-146.0-vi.xpi 488042 BLAKE2B dcd1d9c62bf609dcf931962125500cce401bd3a DIST firefox-146.0-xh.xpi 273181 BLAKE2B cbd2ec9165ae6d3dce65231e9140852e7e23a18fd9924b00924e8ae8f8fac91af826417350cdf73db68965f26b4256148e6c99bb323bac1d84d5a35071678ac4 SHA512 8aaaf8ac5d5ac5234f80c5d95fe3ca625649b372074adf66da44b01103441ff1710013d97db7c03efb79f54cb97a731915a217355788eb87a07c817e7f61e47c DIST firefox-146.0-zh-CN.xpi 479108 BLAKE2B 78202aa4800ed1958256be1a4161a29d75b6745de45448d0f9731ce764eeb58c85a6d23b80a63d128b45287641b6e9c7a60d4f716d40a3a7893cb8ab1e4e368a SHA512 ba94f3500e46a3886fb5eda19542671e998534ec18ead0af952856e5ca1be904c5b0e303ee9acc1706016180d3b544d5b0a392f89f02c11a600bcb8079cb53c0 DIST firefox-146.0-zh-TW.xpi 482586 BLAKE2B 350b92d621388ad2f3db1ed1a189062961e31d8dc2ba5e30a354ee272e20c926033d54f1ed210cfa6182884064c370e4e9e917e47f1da23e75dc5837441991d8 SHA512 38e2fa76833afa6c8d93ccef7e2e3c902ecd0b755e8574f49e39ea2c3e012760430ec70b16568b48f2529118f02e4396bfa0107c3e05bd0fa3e35b0ff1b42116 +DIST firefox-146.0.1-ach.xpi 293903 BLAKE2B f98960fc3202a97421ae47c878e6f1f4bb279c367dfccaf184c6ed4a5e9e4ebe4fcba948d4ea33eaac641ae56d60b2a44b55e0499bbeab6c35c6b072310123c3 SHA512 a8f7e6bc25c573d3302f15bacf035bb1aef527a2f178d004a0f93e42d38e0bf78815a03c528c83857bbbbcab74a33e79d22764c5f5854298d97815af3763be4b +DIST firefox-146.0.1-af.xpi 267084 BLAKE2B 57bfa0dabf753f59272e9d0df1e7a690d174584a5c3498f1e4e7494760b2bb88d5597b93d7acb5063e38de99bc1404b4d528da00e5b48cb79dadf82a3d0a752c SHA512 6850feb81b9378e8a8767df1c0bb9b8ec6f9f8b8aa026ed35c9472d765c5af1449f0d45b575ed5721b49de46cee6af0e6e58ef49e7ce4818291f5646f732073e +DIST firefox-146.0.1-an.xpi 331375 BLAKE2B 07480755092bc1826648380c4e429bca65c430f289b0f8e5a20e8fb979d3ddcf07317ff41c451c7a8dec18ba91d05c0655ef170dc2a69974bb07764d35a22463 SHA512 390164294da12bb53147b5a2db489d5847d51a10a68a03d56760836df346b12c5de11ecf5489108fb81925012c0058dad4565a2da5ec859d38bda5e7acbdd71d +DIST firefox-146.0.1-ar.xpi 445669 BLAKE2B 3b334ca7c16bb031257639e5bc4f94302ce7e5b18da6750b2eaa4be964ef6d04f4e3838e7e8e8e48aa26fed3c0ce21dcc35f2767e7f88c6b62c1d714ae7b7b8a SHA512 12382d20893d3490d85ff6188a509bc23d1fcdafcbcf977863e4dd87b15ebc4ce542f63c04601f3eb88bf8c3978b1c37e288c2e7a94d1d41941bb6ed2a735961 +DIST firefox-146.0.1-ast.xpi 311603 BLAKE2B 73da13e8239a1d534fccc88921a63a883377b25351d3e863f2875ddfb03e41f33b74054d81fad9dfd49e56cb2f8c422397b1d0ec0a89eef977da5ff43ed02133 SHA512 ba2956ca2d05d96b3ef22c7f79f72a708f315ee0ee8c7d339e8bc9fa3b6c0477b614a3dcd4d0e4201dcce8034d3792d2405873772b900f34c20a0e362e75c794 +DIST firefox-146.0.1-az.xpi 317983 BLAKE2B 71030dd36b9c9db19f1a2ce0b4c14a59bb260c41f740143888321a30710413ad075c582c24ad4ade118043a054570b0e5df5395641b689be68e8eede6a4e259e SHA512 72039a10fff96e3a399257e2004e84daffd671a7c625a5ca1363aaac32f76b4a34dde729c087d83217a55de439207502598ba7f393d821b5e430446eec4bfb2e +DIST firefox-146.0.1-be.xpi 543777 BLAKE2B 3a48a08d192e9bddd2f715798adda4a278c5e52c1b6669031a88578261540e0885a33c435630cad1eaa0d42737070f0adc0bb6e237b1aa5683c73b6c23680ac3 SHA512 53d1675906823da79fab20bb4f2e8af909ad8fb1d638c9971bd9f0029cf1e5f1fcac4f359c05190af34b0b5f540d5dc7a295125e21a6d6dd00f93e9324019ae0 +DIST firefox-146.0.1-bg.xpi 460935 BLAKE2B 942f5a97e89abfdfb2244f893947e5f9702b2e0ef414e8262df2e0955305b6d47de5fc7be5147f503e8ef3fc7525627810d6ccfc9def5f80951ca4ffd2791056 SHA512 1932857af80fdf03b24157d0a34f5b866cad1ad2606eb657e0e922af852d8c77cf783b769c01bfda029be489ea8df9b8b0ef3d529f5db0e6bc2adbd3cc13d96f +DIST firefox-146.0.1-bn.xpi 412162 BLAKE2B 3f36c80b3e69a97de3a2eb6afa6ab961304b8c1ca2c5e655310ac2fd7dd1af1c76f52023ce645d1c302315c4ecc89c4db4d37d15e88b04ec88eaf5d7c52bc144 SHA512 8aaaf54627b69c6f152900cbd748824b2569aa5cdc6359c0bbcea83afc0b0b7ba43470c3bd72ca6c23a38fa6d128ef585186027b95ff7e6b0dc6ba7e5736a4fa +DIST firefox-146.0.1-br.xpi 393699 BLAKE2B a403d6d4c5ffc01e110bb460d5ac18fc1b95fe8dda6a9932dfb0c78b38dcf739f8be0b7d962821318b6b9eab0e2d9b699b3f6f448649e9b382094452c483e2df SHA512 5d63e7d71f7bc35f9d21c02ca1b50128e2c814714b82573110adadfbc1a2b402fad50d21470ffb9d8d610d9e7950a13444343d49b6a82aac6f0a654eeb6a56d6 +DIST firefox-146.0.1-bs.xpi 449951 BLAKE2B ea51224aa189a6a16e0e222f5729657cd5a91157d675b9d093b20814dd03b776901d5b2f3dbab7e70e1c9726fd03fa5d4495439364ec798161fc596456de0946 SHA512 bd3e993025981f63a114aee74706ace3082f8ae5afef6ef3a2ab65348612a844f71a6a410d85031bac4e2859480531431ca5d40254a28dce3e910ef83b53faea +DIST firefox-146.0.1-ca-valencia.xpi 357057 BLAKE2B 96afe9eaee17aec0333b06ed1a1b8a52ecc151ceede376e914d549477bb52d28f633a53f370541206c540f80c0071576f70a17af470101cd51bcae1678260a67 SHA512 7c87034edd52534c46ca172042d7c7b02af16aa68b256485607f6d8d3c5be16209d5c410b2185a2e45bcbeb7978e827318568fc8d551f5a1486dace9a4fd91d7 +DIST firefox-146.0.1-ca.xpi 411059 BLAKE2B 410464aa5697b521ef08533cf7c86de189521005ecf6feb30d043edd4f7f3b22b9ff666978f87634a4bd2a8b0b90f4681e21720ae9bde5d3e4e7ce4a6e2500cc SHA512 433dc80fb36fbf135ca668ac01529c0351b2e50cf7fc991154848e93a7a6d68ef995857061cd26bd75b506214efa5f5aba308de06e6d10301bef47748c1b00ac +DIST firefox-146.0.1-cak.xpi 388957 BLAKE2B 520f641e6fa6e17ed59c4cc84ad3c03be36b9f7a5d89d5d1af9e539beef67d926a771f949a578be40839ad5625ba5fae7b3d3f794fe2e0b9782f0fdbb01b6511 SHA512 363f1cd2ab96ea791952c3829a7148392791baa54530c0e6bf6e422790ba6bb3688f1f1155fbe49abea5ecec3f43c9f77a6a4bec796e11b0af2729db4187c883 +DIST firefox-146.0.1-cs.xpi 496947 BLAKE2B 755b7ecc033c8e67465b8c3a9f4cc5354199067209cab67ef31d7aa5ee15b4eb36f144f9f701169a0e83edf74d1f714e7d99c60e5a69d2bc413b7b3b667a3d2c SHA512 9667a49af4db16dada06ce4991b824798a0ef890f2830cc6344fd30b7c257540de8111ef72c2ea7aa42c03158a312043eea69b60cafec4b4566e6e923abf4e3e +DIST firefox-146.0.1-cy.xpi 460744 BLAKE2B 0fdbfbfdcf124f61974c9c6631a698e74a6bf8287a67b452666351909b7745511bbf75d3e98fb66241c5ffe5d34ceeff4e155531523b4752c2bb7380b3283086 SHA512 e8f353ad174244d8905368c6043bf951f3c4fa409212ed72f632002a33c2c5dc4705838a00e60ef6bd6222ea68c7e6b4455b017b75e66cb159cb0cce0b2f44fc +DIST firefox-146.0.1-da.xpi 449060 BLAKE2B a76f3bbf6ec6817afcbbf0901baa036777bf7560bf50db2018e882a5eaa4e10f0032343f9821bdebeca9be706496d5cac4e78f11b5c77c7d53e7d50c953e2109 SHA512 d295bf48460db4f0905df46ef106a09af4d15b4b928a3ba14a1c4be35689cc29fe279bd64238eba25d6076385382be073bf8b5fbfa37bb2271ed473f9667b336 +DIST firefox-146.0.1-de.xpi 471781 BLAKE2B 6613d71fd07283a0781bfb3c18c034c4fe415450b462b662327cde5b499aebc20f816863fc667c274c890c22b2358753914231457f2239ced752214c71a73bff SHA512 b8b601fd72e1f236f613dcb59985363bdbfa77087e7d43ee7f21157817fc0361b5b54a11fcc12b8bfdc3664572744a8a060e6f55b8a450ff87c95f6230d6a773 +DIST firefox-146.0.1-dsb.xpi 485656 BLAKE2B 8546530db4948d751c2ac62bc3b86489f4d2566fe921773461705a9aeefc679596ee8030ca5065a01bdb92e7a5149b80fdae3f5fd557f4c8e49b22f0dbd1be7e SHA512 0f14d175debf1894258cdc978ebe81e1c4f584c8cab5b5dd77740cb7894dd332b3240002c07b2f68e371556ef4a9da0f5d49b0dcf1cbb4cd96938b350433f3bf +DIST firefox-146.0.1-el.xpi 559286 BLAKE2B b9696a21acfa1a71be72443cece5b54160c767f56afcf795cc2abfc82105d9fd0e86d654fb5dab5a9509615aef4c7ec7a1f162b3a465371769344a237548690c SHA512 5e9a5de511ef36ab43a65c4c9659e4d9da7181f8eecd8223bde97cf0e43146cff09324864bfcf91b15cafd28a94de9e258e41f3ae7a9dc8133c20c899d9af660 +DIST firefox-146.0.1-en-CA.xpi 427502 BLAKE2B 6c3924e5aace752a29ff6aa0ab41ca6669107415155c1cdf66f62edb8d680212a193c000c582d8c76dd9ef7b2dbcdb47176b4c9cec3ed988c9237bedf0562dd5 SHA512 f93a25e33e922fc5c756d27a0d8351adfaa9af423cdecde390e95d79d0cb7b0d1b09b4c017b447084de87e6859506cf2515ec160635f5b7c1e17a2e235c9f595 +DIST firefox-146.0.1-en-GB.xpi 427812 BLAKE2B c285079dc0c7c41203fa3e83dcd1bbf76a18dbd67637076d2a4e70eddfad998256fbbc78e8075659251ad6b62e7a2ee2f13140996f4030a633b1131202e22d15 SHA512 e9c0612e321c080fbc3f93eedffdfd782a617ad21854d44e4b1c19418c4d130dcd87a238e5a8f4a9d9d0c94b601ed5b99a1aaa2fe3e7c5da47f826f4033e067b +DIST firefox-146.0.1-eo.xpi 451346 BLAKE2B 5796862c3bd457218482a41c41b95f42b813574d021bbadcc45138139d6587a54a658d6c1c1c8ede4fdb7196092028bc59fa37bc1329b3ce00f120ddd3418698 SHA512 f3fc637a2d69473e2c45dcf168946e1f2c49f62381757390363a88708e7fef54890fee54e7d394f53acd80ef8fa92037b429f349f79ac32256c0c575458a3989 +DIST firefox-146.0.1-es-AR.xpi 463715 BLAKE2B 3c250a022f508a67ba1d930f684b529414261e1adf34c5258df48e1fbd94ddfd2777228ff2c5bbf98bf9f7cec91dc3aad45b6022e3845689e04c65384317ba3e SHA512 a7d0f7c7692af1607795a0eee9583d3c3ae3ead6586ed2822c7a4ccc480eb2b9c2b3bc5dfa45f947033f0c615ac5f32f66eae8b9598ec124227a463a39fede34 +DIST firefox-146.0.1-es-CL.xpi 464749 BLAKE2B f02f292c3f6ad7b413862930aef45f853028ca1cb4f25ed290cb07aef596c6cfcd33b6208a7139eee6f7493dae2b526cda07451c177ba84fcb3000e44acd5b13 SHA512 ebf6003859664c659a0b09ec9dac487afb155a36e858922ae9c247032bfbe2dc932c4c89cbb63cdcc08df7bdfaf82a87df9606643a4e62c7b57c4d702f5f1471 +DIST firefox-146.0.1-es-ES.xpi 465409 BLAKE2B 2439d5401fc16e911f50591a5a2f1f33dab2c3f6ad7051a12a6cfb9fff8e225b74024d5e0e1693880ad28ea0daf6d13d74ff28fe680606921e912c153401f25b SHA512 b0679d091760000f4627481abefc4c44de0c277669455508bf7c928566b521c9f16f5a1935c986d5472350a24b040a304ab1102dba2a9c52bc930f79af7def93 +DIST firefox-146.0.1-es-MX.xpi 457022 BLAKE2B e2b8ba3e1efd8bd8cd11d032b7b7180975572868d391e18b00e5e0087fa026c3578f3a7701356c07a585d097fe8cd95af939b6bea3a1268a2efd5da16d3e5e95 SHA512 4d0fb7d1696320ea6971e810a067a6f3a7d2ed183a6c3f83cd202170bcd73407bd53487edda7a07a0262cb049d54d6fb06b3e54eb5d3c8b439f4a77f9192c2cd +DIST firefox-146.0.1-et.xpi 358039 BLAKE2B 7bc4ebf3c27628399d51ec1f0ed949bf9c6093f253a027139866e53b486809d1d7903bd54b2797cf833f07d159ccc72e817bda854dc66b559cb7d98bb9c6881f SHA512 b8ee5bedfa02a802fdbb41fa2273b17cfff0e2604963e51f15ddc97f3a8c74c2470ad88cd39422eb2042a17fbda49ab7ccf64ddee583d1857920cf96ce8db0c3 +DIST firefox-146.0.1-eu.xpi 430765 BLAKE2B 9d9d4d3988787472af2338c61dbc7a4c10fa26dc43cda14acd07dfd7a51f61535083886973cf4846393abdd52bca609d46210a43e870fb130bdd1e519819e8f5 SHA512 26f41e51d090b7d188cc114cfb66aec5115b7cd11440f072a9f8037908cf6fa2bfda79c78bb8fb711d563f38d9f80073f5a8f02caff8e7f4fc163368113af52b +DIST firefox-146.0.1-fa.xpi 419793 BLAKE2B d82807fc462ce78b3fe400af60cd3be698df35557f4b8211bea0b234c9707fab24f9b51ecdc4695a2415e584a21e368a46913b716dcdf2fddfb7746d8bd3b34e SHA512 df5e477784b3473dcfe1d7b6658c9548ab65d47989affe1e5167005f79740a1acb527915549bcaa72ced5e0b3dc3828fcfd29dedd4be6d37f0668b16e416cb93 +DIST firefox-146.0.1-ff.xpi 309543 BLAKE2B 02f0255c152c47044acae3d49650b5fd449187c5e91ae7a8f541495856f96378519b44601e60085f779be6d998506543bf9b22f34af28c940980f7b9770da9a0 SHA512 253d856429e31652e068a0a1e9ca37061648099f6760b1209e449ad351f9139c2a26217f560a307653daba06e6eaeefd8da119af58a621bda1b90e373e45da08 +DIST firefox-146.0.1-fi.xpi 448227 BLAKE2B 2a0efcd781e32a66e1f2354d4f5f018fb0888f47d6b6f0cca09673d6895f95b7c9be3c37c515179cbf004dccad51ffdf16b30f4187fb896e3678605065da1be8 SHA512 85b12bab57ba9f7d94c1f2b927fe01c73df1f52639ff1ea84c3575c0042e072036396ddb03e8e445a37dea9856ed998caa5617a38d002efe4645b8d7f845c20a +DIST firefox-146.0.1-fr.xpi 477621 BLAKE2B 7bf9c3c5fc4282b2bc4bd747b63665b5c05847689ad689c8c169bc1532bdecbbd705e6448e178d8e9bca116a7d67417efdbeea7675a48e93b7f9ef455a5944d7 SHA512 1b02ecd3c6fdb9cbf8bb7c9bd76c85c72d432b7f76c2cd531b5294fbdf8c13cc07acf17e261bf6749bbc6fac947d138ba6170cab69976e2f1152f0d08ab9fc97 +DIST firefox-146.0.1-fur.xpi 465255 BLAKE2B e60cf24142f6bb63eef082be27a436ff0663f9342070a13552a5162f7f6cfad1a8c4172d2516dd974d0e122fd6bcf93a83fb9565d32ee3411401f4ad13ae016b SHA512 a311d8a971ad69a35692e72aeaa4c364c92ba4b3ea29335bffafa445b07523e9c637366bf705fa0e6fa61bd0321ceeda89429f2db11cec035a7f8cfc7281deb4 +DIST firefox-146.0.1-fy-NL.xpi 460261 BLAKE2B 88ec7c78d31fecd8af3c1c4c574710ff9d509545007186ddaf4ae0f5e00bc30c50a1cd27fadc97015bd0074a7bc67b7de0002b8cb07ad42f6fe2a8bc342302b4 SHA512 59ea674f8cb8095d8a50ff8d160fee1ce2ec892abc247c639f64da1163f66b023cd3cd4af7b7bce9dcdff22cba6eccb5c24e29a68f72963bfddc5ebcf53b3e71 +DIST firefox-146.0.1-ga-IE.xpi 315079 BLAKE2B fb233d7c1d21ed788b0a25dc3a7221ce6cff7b4f7e012599827c0a66a967d3c2054d9c354d1a4e759dbd6f5c54d626ae2976387687cc1fac194811d1d4b686b2 SHA512 d95c4db80d7e10b8f6deb7e3a1526d137c74bb54cff7f572696ca750c86372338cc2c9045a7006ace847ba7e8a108082ce71d4aacc96819bd89ce3f04eb5f740 +DIST firefox-146.0.1-gd.xpi 397616 BLAKE2B bacc17d44d95674a9cb86b962a4dde48908d26254ff37ae712e23867787f3943706920be88034d2c7141203aec4d7126bef78ece063ac5480d36d8f8265ca0fe SHA512 05f314f3a322b824aec858ec5a047d95792db3e9f4091fb19e2061a4e6b6657c48c061912dc37d91339832ba93b6ad5473d2ed6b476c51c6c2598b21449f841d +DIST firefox-146.0.1-gl.xpi 446398 BLAKE2B fbc098cb2cff20a96bdfc6eb35517fc7fa5202ae9925f809044597feffe787d02a5e79568546fa12320de5b0fab81fc0e321dad8b3c564347538ff53fa7b89fc SHA512 cb500c59ae230620c626ba38c749de838e2cd92fcdeba542eb08c53c1133488ed5d641126002142374aafc3a8a289019a5bcce072259f92ae8e5f9b45124ea46 +DIST firefox-146.0.1-gn.xpi 468661 BLAKE2B bddca170e07039ebe62ab1d453f0c240c1aa5b409fa49c33f003da3c71eb03a92228e2b5b34be293e641f81a6bd2d4cc4b0d9278861f3085f189949d2c9116c5 SHA512 555ff9d2b32ffc00650eafa83fe576df31f471964a3e4d52d7c18b62ce2b5d9d0367ff197b794d577dcb2c783a0f0c275d4d5c5f74bc28df758f9091e27601f7 +DIST firefox-146.0.1-gu-IN.xpi 357913 BLAKE2B 39f231747cbdaa49c2b179253d6b73db5499030eed12304a820b46039895e2e7323716461405ebdb94420f7fbb09ea6abacbecf20122bc69873b79222e0fd147 SHA512 fbe98f3af068b1e496cb1a266a93b48b7445a67ce326d1e2b698ab90b12814a765c1fb4414a3831a08b077100230e5be349e2d31ad24cd973c5abf8a386bc328 +DIST firefox-146.0.1-he.xpi 463608 BLAKE2B 740a9ea61d8b01f801d30b5f20308f6022ca5895534a4504e58af82a25ca75772f082ae7f75eaeae30df757b4c7e24d8460e0539a546df9a025e3384ccfd9aeb SHA512 8f8edad29c1146e8574518036939bdbab782d2c25ba7fc492a74f460440f5dd328f7aa8dc0b395b3948ae01001c4d78fc49fe12da17ef642d1bb0853710587c6 +DIST firefox-146.0.1-hi-IN.xpi 376551 BLAKE2B 4008abb69f4803c86195ca468f0a55953bc9fdd2d200fdad135f4a6e95a2701515b5c31100d4ef8c6571c06efd594d6f66eb77d560fc38d4f69a6fdecc0a3eb7 SHA512 283827120e4272c19fbc1c3ff6621f633cc3c756a7ce557c385333565d4f299efe53d9d56ab9516691473040117cb2cbd9537364a810ece33c7cf3310cef1b18 +DIST firefox-146.0.1-hr.xpi 439420 BLAKE2B 65dee70a8ee2b2746ecba234dbffcc71a1e8ea676304e6e31c090a0178359725198a8172ce2ea592314c18bb7a60886977fd4741b80506d109cabb34419833ab SHA512 d97c3955ba0d599bcc18144f1f023b10271f0e97d9a87084006e039af37810edd22fc79eec67b04c25772a6f33b5c9e5918d93f4bc3da74ddb07220c1bf6d741 +DIST firefox-146.0.1-hsb.xpi 482193 BLAKE2B 422df5859bef0dd84c1ba29cb90094070ec37a4b5f255882be7caaf31836a04d41babe879d126bfa1b4dd75a053b7b5e1aa2fd8190b63491f31a1b3919d3ba0c SHA512 2eccc7cee8f74cb0da37a2aa378504b392f1ff8370d6a7200cec7b8bf37995b6912c8b387f96e24b70feb54862437a36fbc42f768257d72b92f801707db62cdb +DIST firefox-146.0.1-hu.xpi 485914 BLAKE2B a3828f3ccb88a97198f77af9a369cefd0597ccffcdb34c5fa56c27dbbb3e844732929ddb1b52947db0cee01c42778b1a64bfa007145646c4a7521cb26d03b12a SHA512 db8358ba44a90299e5f48981f2ffebad2f7fcd84bb4f638c4239bfa9379879e712da30586614ba68f81ae402f1932cab4c4c3403e169e59b56354d707d93e264 +DIST firefox-146.0.1-hy-AM.xpi 470014 BLAKE2B 5d5ff3e72f965113b6a332a001386eaa3ee47cc5381f3f9303c5a7638f1ddf2c1a10f006c152e89ad3212f82c64c4c77984ecc3a14b910c8f491d370cab9bde5 SHA512 427a92da5de85644f1ebc68c36cd8b2d10d2d89c28c057debf2a104977226ea2824bb374018fa7d111ab2e9a837c47b4c18b57316df387917af71120ccf0c717 +DIST firefox-146.0.1-ia.xpi 447671 BLAKE2B 657d4b118fff1ab4e9bcf4599ddafef842c4088af66690f585c4c5109f62127b3ebd49150cbfcf3e76772a6b13f7aa1796f27de7d9b8a83fa07256597aea3b74 SHA512 b641a5934523917c47a918e91649f380ee5066b9f7141a9dd1cc91e9dae966dd642a244048b41ec49c7755e68b73aa4148c68bb6e9a0d13a526b82bdb7aba6bc +DIST firefox-146.0.1-id.xpi 430261 BLAKE2B d36fb5dc90366544cf97f6cf30a51ba3f988d76f12ca35182759258b22f31f2289443b670d1ede26207361382f0767e8e89983c25aca5fd4c9b1c2203308d306 SHA512 2de573dc1c50d16b0ad97c23717e3cfe57f888bfe626f2dc396b79fb1fbfc0ddde37ec85a01f67c9df270bebce95bf68a7e5388a350c365706edb0ab2b245a49 +DIST firefox-146.0.1-is.xpi 438352 BLAKE2B f64a42e67c48a5b2fde748fca4c25751001f7aaa925d7b577807973d37196e6e21ec2981913b031db86d1619381959d02ef1d5b31278c244f95a098916d95dd4 SHA512 2144e234f0c88d58cd4770e5f7a0c52e81a38c8451120ad10e46dbc9ab9639edde95ca9099a2c4806f4b4718d8b5d5c370ce68e5fe08a22ac5ea003119eac640 +DIST firefox-146.0.1-it.xpi 459050 BLAKE2B f302b264e17ef22e462724165c45d11e6c97c957aa6d756363059161a19b5566edbf3f5e9e1091d2b5ab73c852d2a627074659aea39e011909fa466128ee2382 SHA512 74851763cf5c34f164ff57ea74582c4a90b12ad5ac3b23e6c3ef1ee885db50424a294636a051b28d9080f0b7b244a92b7f9873d5aa0c37074db8ed55972659be +DIST firefox-146.0.1-ja.xpi 500728 BLAKE2B 5e4c9cee279e27d29b3ce6be26299b72fdefbdb24c872f9762a05bd02a10532cf29e0629b6749d5e43dd556033499cfcd590c6740b54cce3452576bdb4daf574 SHA512 e68d2f8bafc9de63a3710d6cfd31e771f728452645aaca1a48b691e1b5a89f17e91ad9a1263d9eaf3e75abd2215b5488a62fa6c6ed18a8c4c54a7e73d354237e +DIST firefox-146.0.1-ka.xpi 516856 BLAKE2B d0562093effac0672a671a7a3906e64237aa191e3c75bd4faa615ad0201dc97bfc021e2125ed0ec651810c7f41882c4d31f9b344d963a202f4239ee47c017793 SHA512 2a534a46708a01006d11072bc5435bcae907bdd6e0691f66f7702a0713eb3b032acad54062f9d9e16eed9b58a6c11b291911eabc984a7c9cc61b94064b4889fe +DIST firefox-146.0.1-kab.xpi 425022 BLAKE2B 09a853010221cb36213f99e10f5331c9c2729bcc4e7bb7b04c8edb32f01e82d2a80e8176bead8e45e0c56afe880d621d919e46dd814d3027727112c4d90a6411 SHA512 9d93b283ccca0cef7396a29d1c648c493a75ca31b656cd4ecafd7aac4da23e3b758622727bebc6a42c106ce54c5fe1c99f9460dd0cb1962a2e92f3fb2fe64147 +DIST firefox-146.0.1-kk.xpi 515135 BLAKE2B d2edca6a3d0979ee45546164144a288172f41a491cc56f1dc30a62be5b002cfd6822ee5fae51869ce0ed44256228d52d81a025604b06231540bedbb2960bc8fb SHA512 6fddb23a55defcc801ef9623bd490ec375e4045cd567085614c490bfc067b00bc3814f1d9f9be099fcc5b23ca8d54bca60dbf63bcbc6ac1558bccb8e6fb97821 +DIST firefox-146.0.1-km.xpi 347333 BLAKE2B eef9ecc8c00ff7ab5bf594b7fdc2d575e5d5fd36a5bfa84cc949413ef729f6388f245e50d830512238ff946b2398d1d47d1a9a011d38ebbb3e2222f61d9cbfd9 SHA512 4c36dd3a2f479811510a992237cd28a3c0e6bb5c25f34f3735fe48e9e0a2ddd00a8c9956ab043e3076db3952dfc27d1ded9e45500d51046fabaf5279e6df95f6 +DIST firefox-146.0.1-kn.xpi 331578 BLAKE2B f0ad2024f46a6f1e6091139edccef3425298078446396ccc3d4585c55571ce1bf4f9d5b34854832829db5946b1cbf5178e574f1b9b5497d63a12c33f4e515dfd SHA512 d9759a91140bde02e5b9b7f728cce8789afb9bbf1f4a0ec52d4aac42cc8ad71d06cad05c272a5c436f1027a11a84f2d241a6df211acef6dc3410e3074f7b56a4 +DIST firefox-146.0.1-ko.xpi 486175 BLAKE2B 8dc9d3defaaee23c696931fd119ae549e4b7925fc50f341abad0fc782ef4db76816a7bce06476021e725c398b48fe7e0d58a39abb0fac285d5909fc539609dcf SHA512 8e4f14a4e1e8c27714d22f3fff1a009fba6a234763b05f1488d75e81434e3215292421c6ec118f99b4d6d6e8c26e37d3e6629ed54f6393cf96a7317848498e90 +DIST firefox-146.0.1-lij.xpi 318772 BLAKE2B 0bc1de2ddc03bd7cb51c0c982eee3bcf8b53dd27eff8cee3c195667f9a971d2faeb17d74ca1004a5746a50899e3209fc8e97b775d1f07a21aca9999df04f03a3 SHA512 5668a9ff7b4536ec60a46ada035bf97a58c144f9c956fae3be806988435da71d6cd1cd69f0fa21a305188cf7c0fcdac06b2ef6dbbe93fe7c6cb0dc60e9015da5 +DIST firefox-146.0.1-lt.xpi 378741 BLAKE2B 26782d173e84289b72ccf70ade7cc8a4c378e39693785ec9fe8269bbe5abe9843396dfc0385268d018d24d4910a178fdd0045e2c340000eec0e205709d13f565 SHA512 584307fcdc718cc51402efb513b6e74367a224f76bc742396578c407fb93d1c617b44719590e0562108c6584d4443eca34892cbc89d5d87c25fe495046b7e1c0 +DIST firefox-146.0.1-lv.xpi 389751 BLAKE2B eb0ce6e52781906061fbf1c12cc46d8a7bbff271d5a4117fb7bb445501c4bc4826e0b3571afd61fb85ee13161293f71b33616a6c46b59d063e2b89040e0254d5 SHA512 0898bee060f390500da2d9424bc6d7caaa93b18170248b5c1aea2d36680bdba3bfc9e53334b14cde3d0141c871a14031b326ed9845a92cb8c80d034ae55ea3e8 +DIST firefox-146.0.1-mk.xpi 316207 BLAKE2B 99247cbb00eef51d079fe08ef2cd449bf3fa0d39a673d7cae51b2139142bb1227dfb82ffc269266d65ec6133ebef2187ab7481347ca61af71e6cd58337cc400b SHA512 991a5fbf10a97cf2bf8ccb64099b315e1de8dd3913c4f47b3b26d5af52a0c8de5cf9abad0c11b7863db90713f95a56b2b2e844c9fb01c61acf7b41f14c4cdd6f +DIST firefox-146.0.1-mr.xpi 355626 BLAKE2B 34e0156925743b6b764b834ddb71ca74787a658cf7556eb7c9aeac6148ad22eb1f240234f71c2bcc88c0949abc5e326830a3c2708da7ab42f3f1fa07533c4c1f SHA512 a64c77c00760dcbb83f3cf337ba09d5d2f169ba449f2a9db83edd84b47886e0bf26add73a74facbfa3c046a129e642bbeba29f6ae2c9e4962761af363c5c36e2 +DIST firefox-146.0.1-ms.xpi 295252 BLAKE2B ffc2536afb3e58e20ae081e13882fe0df9d8fda72ea7724ef593df55da0c61ce0ae8ad54639eb0eb4938c664895f32189691904f6672d3eda834dee4bc8aac9d SHA512 df8e25a2cb416d1851bc28d561e23cd82a7bd8ee0dce1d4eb60cd9f60179de6481aeb947af7cde878ca3ddb698de871c25c6d19488bdb046982fa459be58936b +DIST firefox-146.0.1-my.xpi 342509 BLAKE2B 1f044de628413659004e8082506ec1d7eed690058d774740f15067a68198c4d709074c9072862dd894cbb97faa44629de6e36ad36172b78d84737354282de1b9 SHA512 1ce52a23b3faddc7a6929f866a199d435359ee3c5d02fdcb2b8603bf6aa549d0fa90ef66fe940d273a9348a61516c995072ffd635e091d09071948cb80e6e031 +DIST firefox-146.0.1-nb-NO.xpi 447005 BLAKE2B e54e9b8dad874ae114f61823687b85dda49adcd42f69ea3c8afaca771588fe283ea8574205a5dbc9a9dd5d4353e0bb542e867055d3a9bb4f99e994a093183b45 SHA512 69e603f0f8f685a167766ba1366716e04dd0a45e200df4a693d5c7630f97c28e287ce5d4b0aa63ade8612f85f9ae571a7700c01b9530a9f34395a163ae4ad6db +DIST firefox-146.0.1-ne-NP.xpi 347686 BLAKE2B 823bd31b1e443b7f12203337e4c7be1e08dfee5bd5d17f548cfc4615e008ef4f85a12af836bac4e24ff8d46a42c40285d11691453975746b143efa2048ea6a1a SHA512 dceab9798a31599a4b1367448c36dfb4870f7bb4d83d9bc63ccba8d612c1e291dbeb89942acd77e9e59fd645f460a3e1bd592163a5f54ffa555afc6efb3279af +DIST firefox-146.0.1-nl.xpi 454145 BLAKE2B 060a2c6cf619fefb7813153500a69b0a21aecfba75c1a5da47e9ee433db607f980394c834a7c5da29d6849c9e91341a1675cf6e30fb93544afd342f5a1ee7570 SHA512 64adef7f43de76595b8e5b12d51a798fd41500427262b954df2cc762146a41bd91975dce5e8fbabd0ffa81a2d380cab6bf69090d5b2d557b51c209d01d040694 +DIST firefox-146.0.1-nn-NO.xpi 446411 BLAKE2B b81a8bf9519f24702f157ecc2a64a3393c464ac07bf7d5339a59b60af05ddaffa60f1ad61fbc5e6ce1dc8db55e0ec8efdfbbd2d9fa02819a3d23d796a6f88df9 SHA512 e3232617c521968d52644fbbc78f930193e8395c11a44a045d4605ca8b630dc107ba5adc9b33371ff070872712acadb57a1d0fa1e7c52273b737f7e38d5ebe8b +DIST firefox-146.0.1-oc.xpi 408794 BLAKE2B b1761febc89bbc5573fd94fdf9874e00d6e132472603e4dab74ed0ca1d37aa02f94b0334ac8f3461c00b1e5d28c27074c66b9b38b61989381bcf794ab1f7276c SHA512 e053e6e2f71e9fa3e8b004eca99d86386571c39b34cf9eb1abd866da124d3e417d85ac479d2fb2c9530389488b983e77866f447279fc462156f25e97f0bb81df +DIST firefox-146.0.1-pa-IN.xpi 512536 BLAKE2B 47a0f6fb58ef40ba46dd8b7dc00c3f4cf7d62023e809c30c3bd9d0bf11efa66c20cc1ccf9cb46ddbcfe6f442deafa3db86a15bb42b8d533737a215fcd6513a30 SHA512 537f18a78ca801cd45292f9bb5d746788b803ae9dc17cf97ca6a7851b85bd9a6dc1a271dac4e773cd967cc89e3c443e0e6531376a777aa68a46f1082416f999f +DIST firefox-146.0.1-pl.xpi 483148 BLAKE2B e9a08a1a23740f3cb8d3282014df34c8798a04ee390efd4ca25d9d344f35afb3cbf24fdc3a3cd092781a080a1239fab9acce733685bec39f58968bf402a9c36e SHA512 a41fcdef9a0a138a02d025b25e1e494969c635bc7d9be8088a9e96db0990cef41b5ea849bb1141749b48d12555bbb9e21d7a5f43440e1b102e42cb4015799150 +DIST firefox-146.0.1-pt-BR.xpi 458764 BLAKE2B 81481e07c7f93d340cafd2bb6e13ab5c542ba9abb54cd7958fdb9ab0af19676c3794e19aa0960537f7ab04891b3e3969bc044f55143faa9409d5bd58750ebfc4 SHA512 32fc97e3dae9d071c4564928146d1cdfea0484a7ab8cdf31324375af68a349b38e7a3da11f6f7f2760b5ebaa9941d70c819ca3088106ae9299e7e1651a2c41ab +DIST firefox-146.0.1-pt-PT.xpi 448804 BLAKE2B c2302f0be37e8d39253bbdd309f506e114d263e459b5ad0c4f46e1e14a9edba754cb712998ddd977bc05e5943cd0c9a5a30d6d5f052b4af5b3505c6bf9997d6c SHA512 41a21aeccfa08a4091ad146dc21b58b6ec4ac56dcab50d6f742b3f31fa70090784bc1c502bbddea62e04dcd12cb049d37c3fcb6be308a6267ba1c7fef2baa1ee +DIST firefox-146.0.1-rm.xpi 452250 BLAKE2B ed10f68d8f5788a74f516c14dd7a9d55ba2473fefd44595a1999974fac885057536cf4b1240cccc1fd4e7d2ce627cab95cd22df05782d12c421947be379da06a SHA512 697dd445cde01e4fa38ea50b5714098be2780312f3925632f5b418ae387987fe31f1580e4ce6a7af5debdea4d6f43f3ed765538fa90902b9c56222cf0895ce7b +DIST firefox-146.0.1-ro.xpi 471569 BLAKE2B 3191dec40207f3fed78d9f121d2317d2ce10bb2575c2fa25abe9acd3fe685fc6859c76016d05a2556c7e38fee4bdf3372109d77c3dbf4a90d2c77f06a790ed0b SHA512 f71ce1f5061e6ac8edfd45ed84dc6d77c24b3ce9e032074867f567276b79f3cb1acce9c3a9f787258b52a4760bf0237ee3332c7b935d4cc192cb36e66f93db80 +DIST firefox-146.0.1-ru.xpi 547663 BLAKE2B bd895ae50f20372154accf0315d8addcb2504c73c67e3fb2235c88d32d41cf10e62a0349e010dbf0c8cff90e04b89ba92f7fa6ff3f575d1aa24ec312632c28d0 SHA512 76f0eb05bb1da28652a6cc7792c23ec31119c90edcaa802db42e85660a52cf3945c75832b28aa8cbe22ade75b5327d015dc9c30a38ac5ecd5ef3f950c8132039 +DIST firefox-146.0.1-sc.xpi 420494 BLAKE2B 140fb809c0991ede72d3a5d3ff276377356ba02c18bb775425d76bd8d74f979fffdf4ecbe1547d4025c69967e7cfd06d1ac25e110665b6e8dbb010bda1eeedcc SHA512 24ae9cbc249ff06d46651fd0bff1ded4ae28633e55020befdeade18f925479528ead48240b20ed2fe35bf0d921a142a3ca2ed7c416ee5fa4936520b4e22cde1e +DIST firefox-146.0.1-sco.xpi 321771 BLAKE2B 3775c893e49e2c597c21f329872bea1e6b67ab1c4335e0c779216371a4afa99ce25f043ba208275838c3bbedec8cb926cae729ebbb542b2560b34438fcb3ab8c SHA512 a0f2802fecb9db96ffc09de944ab96fcca38fd3a956740b1473c48c62fb9e331f553b648bace34e2253513148ce41011deeb2a671f8de179f367ad9e05efe573 +DIST firefox-146.0.1-si.xpi 409008 BLAKE2B 3f2d595b380faf2f30b1fd2b5d1a6fffd9052a8d72176ca691a59589d5c056e0f704452cd68bf4e85150cdada8c42a706012142303e0d3b4d6480692e8fdcba8 SHA512 fd7e5602954ddc0a3efd3f920cd75b688b176a23841880a19538b3ae5b29f360e76628ce91d2e1eae6baf6413fd24da4c1b3d9bf046c93b02f274cce7f66e9d1 +DIST firefox-146.0.1-sk.xpi 488456 BLAKE2B 7e4192fe58f6b222b2f8abb48ed6130d662254b1c133180f2eec0c6fe420735e72abc8608cedd7f1717d69dbdc476fab4cf757791d2c650800b8c92f36f13899 SHA512 170c2cafadb65c49fac80704e575cde99b079080307c2fad5fbae02e0113e9479f45757427f509a3cfc9471ca85a7aca020e35b7aea4a2b31c62112351fa47ce +DIST firefox-146.0.1-skr.xpi 483172 BLAKE2B caa56e74de0703bd34cd2c2e5486f7026bcbd3e9d99ea2884f56f4988433a2997b4013f7f76931b867ae60c5fad2fe4985c23dab4af014ed4308cff84fd0168b SHA512 31ab90cd8bf7ef030e19b94a46b5953d7efe681f888037d9b1c5a29c1949c0590550eeeb9dee9c1658b7b2a1f1a4fc0d777b427313c55cf2e06cfcebea3b46f9 +DIST firefox-146.0.1-sl.xpi 455793 BLAKE2B d4437bdeb488287da21e3bc78ce1131d9c98f35a6fc98bfc247199c4ad762e50be48444776b10574984fdf7fb1b1369754e5e175168a6fd7b0a3be7e9c1074cd SHA512 4d6b95a94dd96427e99dbd28c8b94b3c50bdb7544959683185009889746f6cc34423e1fae06eee5932985e247cdb5e7dedc2d37411987eb6331a2bd2f96f262b +DIST firefox-146.0.1-son.xpi 273574 BLAKE2B e33601f29c51e25862987cd168586d17ebca3e09c75d8f884b302e1be388d15febcfe1b016f2d580ecacf7d5ce0858cb6d5ea2e6313c95beb48fc16a3d5c7617 SHA512 f3bd1a4808eefbcc85ddd3954faacc54d1dba0e48664665348f8ee28a2119171c35d44f4674e86fab5e30edb2d2202cf983c7975eba68c9ab184941957a46c2e +DIST firefox-146.0.1-sq.xpi 474498 BLAKE2B 2e0a45c6b14ee7fe586d8b372d279a302ba7abd2b4b346bfaaf3a582d58a419785e1dd0378379f19249983dd8a420da3bc8888b52c6ce9891e9f5d6df3d6c9cd SHA512 c24359555afc60b42220bce065d977c5e6045f6f10c3cc46988829e633f6aa5afb83d608ce3a4bae9bc5035ee2d5a74b23f3909695296e081ef76ce9d504f015 +DIST firefox-146.0.1-sr.xpi 451045 BLAKE2B a8b233644cd91b19f44bd4722a86cccd35477402b415120e33155ca5deb596957bd5017e65e93570f2df9973d92d54f76248c20e0ebebebdbe7093d2298b78fc SHA512 42fad48d6bc210fb26aaf1380e5ff7206d37ecfb3152a8ceb2d696b740349576390aeb19317e6c842fea3b277760fee534a7942a47bf376f0ae2b3ed0c5417ff +DIST firefox-146.0.1-sv-SE.xpi 453963 BLAKE2B eb85ddec32743e101d73c963166a462ec1c8884f14bc05e665db866fe413fe3fcb0e040d3cb44df84fbc15a7220cea5f20c5176b9069d8bb37df5d76f25145d4 SHA512 89e97403a92cba0d5554f0b705918a37347cfb42908e794e6c57d0a4c0d8b980ca704c8e120bfd619e6500023c312bf10d224e6e3d379070fd3373c2139d2b3b +DIST firefox-146.0.1-szl.xpi 340401 BLAKE2B 5e6c3881dc01cf0791755aa5489b97070841d259abb8359b213029fb167978a2623d96ca2d2e85579f4ef364e92978d1644363e2dcb89aec5c5ae0e4ab99455b SHA512 f962ca8e26e5f3570d8ce1ad813fda848e7ebf3ce8c740a00a7a16fabbd267e990dd66c203a18126a96383085fbca45c0429f843bd0954f70da77acc413f0897 +DIST firefox-146.0.1-ta.xpi 337699 BLAKE2B d18733e19bd60ebb5b0fa8d7e94bb7893a93b7585bef15144dde1a5bc812fef478872ba9b6be2c76fd354f7bff4fc428d555c0834ca5841e4a94e81567ee3095 SHA512 3ba00b8329e4f73ad99aaf1dcc3a99e6b60623af298cd0690c4babaf6d7f8fcd228b317a12f64ee9b4e210299ad399496c5726f2fc05532346232f134cb47065 +DIST firefox-146.0.1-te.xpi 380819 BLAKE2B cf7238462c03df9c7c670d0baf557110f38cd7b3bea5e0dec6bcc47e27235499acc19f5819636eda8cf668a535a143c8043de9733dae83cdc2bdb0c8c580a948 SHA512 0831cdbb06347c372fd96586568b04b8a9e87c77918314bac436baaa22bb190fa9330a9c664d6cfe18b3805e6444da51a049042c6f0563023038e58a121ed9c3 +DIST firefox-146.0.1-th.xpi 525451 BLAKE2B 2a31d82583e31d93925d00e90acfe1287d0f7ada81c4d1e470c667212f48b9eaf93b43d873ef9917fb80e853d9c6474005b161d71e962d60f3cbb15be8fd9fd2 SHA512 950ff9edb50e68385b01617c23cc341c7d804694f8560018820ae0181e79d6066b4cb3d01ea6fc6b24ee0443571408268603b0e6132526444f15f0efa3194f90 +DIST firefox-146.0.1-tl.xpi 355093 BLAKE2B 0d91182ea3369bb3046e143525db00253f52b90321151608cebf8243be40d1215d813f9817ae17379abfe17d097af910e842467eaa1a74d012f09774c693a531 SHA512 9772b64c058e4d01c45010f06564baf8b2cd07317342c03c17d754c695203399f349514a8dcdc1dea0aa1e36bb95bb34bf1f498d8133a795f0599a9e7d563846 +DIST firefox-146.0.1-tr.xpi 467744 BLAKE2B 9bdb2b11d6fbd0ea88380cd2f200c9ef2945f668b984297e71d5db3e68890791ceab5b3cb77a1cb67bd39fdd5029fe4056fbdbad053d9abc712166aac61b1e63 SHA512 e1d7eb03d8c925b39786bf1179166c358504401e073cd5dfbe26939bcfd5961dee835bd398e4f4d086525e5b98fa6792223ba06e5133f8a979dcc9a375d52c0c +DIST firefox-146.0.1-trs.xpi 323638 BLAKE2B f4f1337c1c05e6647fa75e19925f265d969d8ec14ec5477efd3f4839f164a71fa6a861155d80fec0f76a84c3bc4da944ab2d309ac6e540b255aaf778d8d17228 SHA512 abe28f76914959ebb7e822ec88b0344e13ea6e52b35de0befeaa6ff48a6aabdd0f87f726c56c1c4335d9893324386b5867e59e0b739c94b4beb9f2b343aa1d20 +DIST firefox-146.0.1-uk.xpi 532323 BLAKE2B dd9afe055769ea6ee32cf5cf3aac07ff9e80654a4f50018232b4ce2ccdd7233581e6524164c9836b84d109aa70d322f200cd68809469e77157c086f388ca1907 SHA512 2e98202f782c9dc68c9f8d14f93320e64fc9424a5533ea0d3130ac8e2111a4096e82d35d3e3fdf968b15a11247490feb07dbf81ae5e2dae332d840d534377eff +DIST firefox-146.0.1-ur.xpi 369598 BLAKE2B 7ea131444136dea956a29902c4c052ed30f5089b39d12780518adad5070b12cd06d206a507232a5ab4cafeb82155a30727ae8c0a1162407f21719e12b188210d SHA512 84386c6231ad93d5177fda37ebaa162775a486f3b922b1677f56c31e48e4ceb192eeaf1412f8a808046e749db0688d1163afdb3bf93ba587d904c48f1d36dae7 +DIST firefox-146.0.1-uz.xpi 303085 BLAKE2B 024fce2ece2d3a9e6686c769cc66273043c9ee40f5d230247fbc2fd691e83117e71b39d078f1150e532bf7f72621b94a69be7e8ef9f2d253e2a450f17c149b5b SHA512 15db6382ef01fb0ddafe8d0057c55e9d8381d8166dd0850c951b470b99e1e401240a81b06ba576c4cb8f8b76cd9e414fae93bb6551e95d81b585b9f76ec8ec16 +DIST firefox-146.0.1-vi.xpi 488053 BLAKE2B 52cae1d1862cbc535a8af6d56c5aaa0aa0b74369930a65d7843302892724cab49b718c47d6f16bc8d7f30d33a7efce14d0d87060a75754303279ab7d04f857c1 SHA512 79996c878708410b433c1b5955a0ba6787c23522f132ae4e412dfd7412b0e785b163e4c1cfc5919b0de94f73bb983ba9284c2c1b6ba91d57924b087aa932d2ce +DIST firefox-146.0.1-xh.xpi 273183 BLAKE2B 6f05970fe4409da7b0bbdf64e4da85568bc938c9754b9d2b8cbf70b5a11427f7af0f906d487421cb73b9abd63065d50f25fd2c0dfe40b6a1889b54f2e4e92eb4 SHA512 0ebcbe96ddbd61bd25cdf268adf0fd49857c9eec52064e7441e9a00cc9194cc96ce996470c320298966340c32c32bf9ce0d3d69b2d934a03fe13ea0dc8f12457 +DIST firefox-146.0.1-zh-CN.xpi 479100 BLAKE2B 28bc272e46f11dfd7a76dcc630fcaf2d5ec57ef0e9359bcd7c320add8e552e1221796a44920cfb99438de92c41ebfb0050903b518a3d26690b44baab6b49298a SHA512 0352c05590ec7afc78939dff79ebc0237ed35ed12b3430ad6c2e4e8ebabbd9d9eb925f5f058949e2530cda3649517f4ad6327f64c291c2391ad03c7efabe83e3 +DIST firefox-146.0.1-zh-TW.xpi 482587 BLAKE2B 13f0571779b1d6956591ae491f5c0a74808ab2a01281b5e865e73c865c4e0104623b70d165cbc3ee880b8da6344d6a70c83b484de0c8b8a95215ca227d0ec570 SHA512 7ba8508ce47ab6d05dce8135504bffccfdaaab0b7777589218ff5be9d0e701adf79200eeda84862c03db1ec1d03b963942c1f50e4a265cc7ee28033cf8e6f5c0 +DIST firefox-146.0.1.source.tar.xz 648938528 BLAKE2B 808e1205697d2cd12c4ec4a21c59e6ab11f6fffef3031a848ca5823aaa1d507edaffd514e9471d9916bfb4ede645d4c5b03c1e6b0b638b22ce533998fa033bbf SHA512 ae95b86e483febf8dfec8347748dd9048ed7d7f845250e07aa8048e2b351da61f6f3c5f83bb0d0c72e1a75ec61b60e59bbe69639f0f33532910ff8bf5ca07394 DIST firefox-146.0.source.tar.xz 646002476 BLAKE2B da28aeff1bdd88ad612127196497a37acbe6bc83944b08cf2ea9a1eb4122899326fbd90ca2b1f4d2a6f331afd08d1699108cd09171f20c945f3f3fe006909029 SHA512 db6664310cdcdede832b29dea533b345a3ac86f9df7813118d44b1ec2c4a32e4de2b6e98044385ca6f6026eb3a9994c486a1ddb8b6f4ae7589ed46b122c05630 DIST wasi-sdk-27.0-arm64-linux.tar.gz 124841089 BLAKE2B 7911b8d31e06e15a7e2001d81bcd27a583dd26d75ca0afc2a5bf31729bdba0a5786669dcc56dfd66d09c44862737dd3a62e8207262bcfb6e6845dfbe26216535 SHA512 6b6b5e109f2312634d67f0d7ab9690e0a7f69b21bf4894b86d584f7b1c340bd6696a5494ea8f96a759c691d023ac8c67ad7862112fc57106b86c2cef11f14f9d DIST wasi-sdk-27.0-x86_64-linux.tar.gz 124790235 BLAKE2B 768b9d8d66d79c000b11fa0710d1170e6a5f87c20ac8684151b44cce45e5cda83a4c3a4ad09042c4151e40cbf4b9ce0795f0cd5cad30be7b00972a88dc43f7a9 SHA512 a21a19996fb23fd1b522c328827edfeee74bd42fbbf88942b5d46d02f21e6fb2300a783c96915039c5545d2734010a94f3fe27b0751b9722988429669a2a6c9e diff --git a/www-client/firefox/firefox-146.0.1.ebuild b/www-client/firefox/firefox-146.0.1.ebuild new file mode 100644 index 000000000000..9928269248b9 --- /dev/null +++ b/www-client/firefox/firefox-146.0.1.ebuild @@ -0,0 +1,1464 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-146-patches-02.tar.xz" + +LLVM_COMPAT=( 19 20 21 ) + +# This will also filter rust versions that don't match LLVM_COMPAT in the non-clang path; this is fine. +RUST_NEEDS_LLVM=1 + +# If not building with clang we need at least rust 1.76 +RUST_MIN_VER=1.82.0 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +VIRTUALX_REQUIRED="manual" + +# Information about the bundled wasi toolchain from +# https://github.com/WebAssembly/wasi-sdk/ +WASI_SDK_VER=29.0 +WASI_SDK_LLVM_VER=21 + +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.firefox.com https://www.firefox.com/enterprise/" + SLOT="esr" +else + HOMEPAGE="https://www.firefox.com" + 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 check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +if [[ ${PV} == *_rc* ]] ; then + MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" +fi + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +DESCRIPTION="Firefox Web Browser" +SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz + ${PATCH_URIS[@]} + wasm-sandbox? ( + amd64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-x86_64-linux.tar.gz ) + arm64? ( https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER/.*/}/wasi-sdk-${WASI_SDK_VER}-arm64-linux.tar.gz ) + )" + +S="${WORKDIR}/${PN}-${PV%_*}" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + +IUSE="+clang dbus debug eme-free hardened hwaccel jack libproxy pgo pulseaudio selinux sndio" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx" +IUSE+=" system-pipewire system-png +system-webp test valgrind wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" +gmp-autoupdate gnome-shell jpegxl +jumbo-build openh264 +telemetry wasm-sandbox" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( jumbo-build ) + wayland? ( dbus ) + wifi? ( dbus ) +" + +RESTRICT="!test? ( test )" + +FF_ONLY_DEPEND="!www-client/firefox:0 + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + clang? ( + llvm-core/lld:${LLVM_SLOT} + pgo? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[profile] ) + ) + wasm-sandbox? ( llvm-core/lld:${LLVM_SLOT} ) + ') + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.29.1 + net-libs/nodejs + virtual/pkgconfig + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + gui-wm/tinywl + 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.118 + >=dev-libs/nspr-4.38 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + virtual/zlib:= + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libdrm + 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-3.10.0:= + ) + system-harfbuzz? ( + >=media-libs/harfbuzz-2.8.1:0= + !wasm-sandbox? ( >=media-gfx/graphite2-1.3.13 ) + ) + system-icu? ( >=dev-libs/icu-76.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-pipewire? ( >=media-video/pipewire-1.4.7-r2:= ) + system-png? ( >=media-libs/libpng-1.6.45: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 "llvm-core/clang:${LLVM_SLOT}" ; then + einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then + einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + if use pgo ; then + if ! has_version -b "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=llvm-runtimes/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing!" >&2 + einfo "Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +MOZ_LANGS=( + af ar ast be bg br ca cak cs cy da de dsb + el en-CA en-GB en-US es-AR es-ES et eu + fi fr fy-NL ga-IE gd gl he hr hsb hu + id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO + pa-IN pl pt-BR pt-PT rm ro ru + sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW +) + +# Firefox-only LANGS +MOZ_LANGS+=( ach ) +MOZ_LANGS+=( an ) +MOZ_LANGS+=( az ) +MOZ_LANGS+=( bn ) +MOZ_LANGS+=( bs ) +MOZ_LANGS+=( ca-valencia ) +MOZ_LANGS+=( eo ) +MOZ_LANGS+=( es-CL ) +MOZ_LANGS+=( es-MX ) +MOZ_LANGS+=( fa ) +MOZ_LANGS+=( ff ) +MOZ_LANGS+=( fur ) +MOZ_LANGS+=( gn ) +MOZ_LANGS+=( gu-IN ) +MOZ_LANGS+=( hi-IN ) +MOZ_LANGS+=( hy-AM ) +MOZ_LANGS+=( ia ) +MOZ_LANGS+=( km ) +MOZ_LANGS+=( kn ) +MOZ_LANGS+=( lij ) +MOZ_LANGS+=( mk ) +MOZ_LANGS+=( mr ) +MOZ_LANGS+=( my ) +MOZ_LANGS+=( ne-NP ) +MOZ_LANGS+=( oc ) +MOZ_LANGS+=( sc ) +MOZ_LANGS+=( sco ) +MOZ_LANGS+=( si ) +MOZ_LANGS+=( skr ) +MOZ_LANGS+=( son ) +MOZ_LANGS+=( szl ) +MOZ_LANGS+=( ta ) +MOZ_LANGS+=( te ) +MOZ_LANGS+=( tl ) +MOZ_LANGS+=( trs ) +MOZ_LANGS+=( ur ) +MOZ_LANGS+=( xh ) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + SRC_URI+=" l10n_${xflag/[_@]/-}? (" + SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi" + SRC_URI+=" )" + IUSE+=" l10n_${xflag/[_@]/-}" + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + elif tc-is-lto ; then + CHECKREQS_DISK_BUILD="10600M" + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + + # Get LTO from environment; export after this phase for use in src_configure (etc) + use_lto=no + + if [[ ${MERGE_TYPE} != binary ]] ; then + + if tc-is-lto; then + use_lto=yes + # LTO is handled via configure + filter-lto + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and pgo detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling lto." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable lto when compiling with GCC for now." + die "Firefox-${PV} with gcc+lto cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + fi + + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + + if ! use clang ; then + if tc-is-gcc && ver_test "$(gcc-major-version)" -eq 15 && has_version -b "<sys-devel/gcc-15.2.1_p20251108-r1:15"; then + eerror "<gcc-15.2.1_p20251108-r1:15 and lto detected. Firefox-145.0 can not be compiled" + eerror "with this GCC, when also enabling pgo." + eerror "See bug https://gcc.gnu.org/PR122620" + eerror "" + eerror "Your options are:" + eerror " 1) upgrade GCC to >=15.2.1_p20251108-r1 - note that even with the 16.0" + eerror " releases, make sure the patch set is equal or newer than 16.0.0_p20251109-r1," + eerror " or use the \"trunk\" version," + eerror " 2) compile Firefox with Clang by enabling the \"clang\" USE flag, or" + eerror " 3) disable pgo when compiling with GCC for now." + die "Firefox-${PV} with gcc+pgo cannot be compiled with the detected gcc version: $(gcc-fullversion)" + fi + fi + fi + + if [[ ${use_lto} = yes ]]; then + # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC, + # bmo#1516758, bgo#942288 + filter-flags -Werror=lto-type-mismatch -Werror=odr + fi + + # Ensure we have enough disk space to compile + if use pgo || use debug ; then + CHECKREQS_DISK_BUILD="14300M" + elif [[ ${use_lto} == "yes" ]] ; then + CHECKREQS_DISK_BUILD="10600M" + else + CHECKREQS_DISK_BUILD="7400M" + fi + + check-reqs_pkg_setup + llvm-r1_pkg_setup + rust_pkg_setup + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # Clear tons of conditions, since PGO is hardware-dependant. + addpredict /dev + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + export use_lto + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + local _lp_dir="${WORKDIR}/language_packs" + local _src_file + + if [[ ! -d "${_lp_dir}" ]] ; then + mkdir "${_lp_dir}" || die + fi + + for _src_file in ${A} ; do + if [[ ${_src_file} == *.xpi ]]; then + cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!" + else + unpack ${_src_file} + fi + done +} + +src_prepare() { + if [[ ${use_lto} == "yes" ]]; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + # Workaround for bgo#915651 and bmo#1988166 on musl + if use elibc_glibc ; then + rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die + rm -v "${WORKDIR}"/firefox-patches/*bmo-1988166-musl-remove-nonexisting-system-header-req.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 loong; then + # Only the LP64D ABI of LoongArch64 is actively supported among + # the wider Linux ecosystem, so the assumption is safe. + export RUST_TARGET="loongarch64-unknown-linux-musl" + elif use ppc64 ; then + export RUST_TARGET="powerpc64le-unknown-linux-musl" + elif use riscv ; then + # We can pretty safely rule out any 32-bit riscvs, but 64-bit riscvs also have tons of + # different ABIs available. riscv64gc-unknown-linux-musl seems to be the best working + # guess right now though. + elog "riscv detected, forcing a riscv64 target for now." + export RUST_TARGET="riscv64gc-unknown-linux-musl" + else + die "Unknown musl chost, please post a new bug with your rustc -vV along with emerge --info" + fi + fi + + # Pre-built wasm-sandbox path manipulation. + if use wasm-sandbox ; then + if use amd64 ; then + export wasi_arch="x86_64" + elif use arm64 ; then + export wasi_arch="arm64" + else + die "wasm-sandbox enabled on unknown/unsupported arch!" + fi + + sed -i \ + -e "s:%%PORTAGE_WORKDIR%%:${WORKDIR}:" \ + -e "s:%%WASI_ARCH%%:${wasi_arch}:" \ + -e "s:%%WASI_SDK_VER%%:${WASI_SDK_VER}:" \ + -e "s:%%WASI_SDK_LLVM_VER%%:${WASI_SDK_LLVM_VER}:" \ + toolkit/moz.configure || die "Failed to update wasi-related paths." + fi + + # Make LTO respect MAKEOPTS + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure || die "Failed sedding multiprocessing.cpu_count" + + sed -i -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/third_party/chromium/build/toolchain/get_cpu_count.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-updater \ + --disable-wmf \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --enable-official-branding \ + --enable-packed-relative-relocs \ + --enable-release \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-ffi \ + --with-system-gbm \ + --with-system-libdrm \ + --with-system-nspr \ + --with-system-nss \ + --with-system-pixman \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system + + # Set update channel + local update_channel=release + [[ -n ${MOZ_ESR} ]] && update_channel=esr + mozconfig_add_options_ac '' --enable-update-channel=${update_channel} + + # Whitelist to allow unkeyworded arches to build with "--disable-rust-simd" by default. + if use amd64 || use arm64 || use ppc64 || use loong || use riscv ; 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 loong || 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 + + # riscv-related options, bgo#947337, bgo#947338 + if use riscv ; then + mozconfig_add_options_ac 'Disable webrtc for RISC-V' --disable-webrtc + fi + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-pipewire + 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 + mozconfig_add_options_ac "+hardened stl" --enable-stl-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + + # Increase the FORTIFY_SOURCE value, #910071. + sed -i -e '/-D_FORTIFY_SOURCE=/s:2:3:' "${S}"/build/moz.configure/toolchain.configure || die + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + ! use jumbo-build && mozconfig_add_options_ac '--disable-unified-build' --disable-unified-build + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3-x11-only + fi + + # wasm-sandbox + # Since graphite2 is one of the sandboxed libraries, system-graphite2 obviously can't work with +wasm-sandbox. + if use wasm-sandbox ; then + mozconfig_add_options_ac '+wasm-sandbox' --with-wasi-sysroot="${WORKDIR}/wasi-sdk-${WASI_SDK_VER}-${wasi_arch}-linux/share/wasi-sysroot/" + else + mozconfig_add_options_ac 'no wasm-sandbox' --without-wasm-sandboxed-libraries + mozconfig_use_with system-harfbuzz system-graphite2 + fi + + ! use jpegxl && mozconfig_add_options_ac '-jpegxl' --disable-jxl + + if [[ ${use_lto} == "yes" ]] ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + # mold expects the -flto line from *FLAGS configuration, bgo#923119 + append-ldflags "-flto=thin" + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # PGO was moved outside lto block to allow building pgo without lto. + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + # Avoid compressing just-built instrumented Firefox with + # high levels of compression. Just use tar as a container + # to save >=10 minutes. + export MOZ_PKG_FORMAT=tar + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + else + # Attempt to fix pgo hanging with gcc, bgo#966309. + export MOZ_REMOTE_SETTINGS_DEVTOOLS=1 + 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 loong || use ppc64 || use riscv ; then + # '--disable-elf-hack' is not recognized on loong/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" + + # 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 + + mozconfig_use_enable test tests + + # 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 [[ ${use_lto} == "yes" ]] && tc-ld-is-mold ; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + ${virtx_cmd} ./mach build --verbose || die +} + +src_test() { + # https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html + local -a failures=() + + # Some tests respect this + local -x MOZ_HEADLESS=1 + + # Check testing/mach_commands.py + einfo "Testing with cppunittest ..." + ./mach cppunittest + local ret=$? + if [[ ${ret} -ne 0 ]]; then + eerror "Test suite cppunittest failed with error code ${ret}" + failures+=( cppunittest ) + fi + + if [[ ${#failures} -eq 0 ]]; then + einfo "Test suites succeeded" + else + die "Test suites failed: ${failures[@]}" + fi +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Upstream cannot ship symlink but we can (bmo#658850) + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin + + # Don't install llvm-symbolizer from llvm-core/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + + # Install the vaapitest binary on supported arches (122.0 supports all platforms, bmo#1865969) + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/vaapitest + + # Install the v4l2test on supported arches (+ arm, + riscv64 when keyworded) + if use arm64 ; then + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/v4l2test + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Add telemetry config prefs, just in case something happens in future and telemetry build + # options stop working. + if ! use telemetry ; then + cat "${FILESDIR}"/gentoo-telemetry-prefs.js >>"${GENTOO_PREFS}" || die "failed to set telemetry prefs" + fi + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${S}/browser/branding/official" + + # Prefer the upstream svg file they use when packaging flatpak so it's always up-to-date. + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${S}"/browser/installer/linux/app/flatpak/files/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg firefox-symbolic.svg + dosym -r /usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg /usr/share/icons/hicolor/symbolic/apps/org.mozilla.firefox-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}.png + fi + + newicon -s ${size} "${icon}" ${PN}.png + done + + # Install menu + local app_name="Mozilla ${MOZ_PN^}" + local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop" + local exec_command="${PN}" + local icon="${PN}" + local use_wayland="false" + + if [[ -n ${MOZ_ESR} ]] ; then + local desktop_filename="${PN}-esr.desktop" + else + local desktop_filename="${PN}.desktop" + fi + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${WORKDIR}/${PN}.desktop-template" || die + + newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}" + + rm "${WORKDIR}/${PN}.desktop-template" || die + + if use gnome-shell ; then + # Install search provider for Gnome + insinto /usr/share/gnome-shell/search-providers/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.search-provider.ini + + insinto /usr/share/dbus-1/services/ + doins browser/components/shell/search-provider-files/org.mozilla.firefox.SearchProvider.service + + # Toggle between rapid and esr desktop file names + if [[ -n ${MOZ_ESR} ]] ; then + sed -e "s/firefox.desktop/${desktop_filename}/g" \ + -i "${ED}/usr/share/gnome-shell/search-providers/org.mozilla.firefox.search-provider.ini" || + die "Failed to sed org.mozilla.firefox.search-provider.ini file." + fi + + # Make the dbus service aware of a previous session, bgo#939196 + sed -e \ + "s/Exec=\/usr\/bin\/firefox/Exec=\/usr\/$(get_libdir)\/firefox\/firefox --dbus-service \/usr\/bin\/firefox/g" \ + -i "${ED}/usr/share/dbus-1/services/org.mozilla.firefox.SearchProvider.service" || + die "Failed to sed org.mozilla.firefox.SearchProvider.service dbus file" + + # Update prefs to enable Gnome search provider + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to enable gnome-search-provider via prefs" + pref("browser.gnome-search-provider.enabled", true); + EOF + fi + + # Install wrapper script + [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + newbin "${FILESDIR}/${PN}-r1.sh" ${PN} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}" || die + + readme.gentoo_create_doc +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Firefox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Firefox crashes." + fi + + readme.gentoo_print_elog + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas + optfeature "screencasting with pipewire" sys-apps/xdg-desktop-portal + if use hwaccel && has_version "x11-drivers/nvidia-drivers"; then + optfeature "hardware acceleration with NVIDIA cards" media-libs/nvidia-vaapi-driver + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +}
