summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2023-04-11 08:11:03 +0300
committerJoonas Niilola <juippis@gentoo.org>2023-04-11 08:12:58 +0300
commit8483d1122b4c093c8a8886de70774332c81b626a (patch)
treefb24776ad27d2788c71934b7eed5a41db2fc59d5
parentnet-dns/coredns: add 1.10.1 (diff)
downloadgentoo-8483d1122b4c093c8a8886de70774332c81b626a.tar.gz
gentoo-8483d1122b4c093c8a8886de70774332c81b626a.tar.bz2
gentoo-8483d1122b4c093c8a8886de70774332c81b626a.zip
www-client/firefox: add 112.0
- include dont-crash-on-wayland-log-handler.patch from upstream bug #1826583, - remove "accessibility.typeaheadfind" from our default prefs. Bug: https://bugs.gentoo.org/902149 Bug: https://bugs.gentoo.org/903710 Bug: https://bugs.gentoo.org/901353 Bug: https://bugs.gentoo.org/904072 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
-rw-r--r--www-client/firefox/Manifest101
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js1
-rw-r--r--www-client/firefox/firefox-112.0.ebuild1379
3 files changed, 1480 insertions, 1 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
index d0c6d75ddebf..9b7012f8499b 100644
--- a/www-client/firefox/Manifest
+++ b/www-client/firefox/Manifest
@@ -297,3 +297,104 @@ DIST firefox-111.0-xh.xpi 421019 BLAKE2B 796f3a8ff74c0704e9ed746350f73b858bd219c
DIST firefox-111.0-zh-CN.xpi 602345 BLAKE2B 22d0d3cf8c580514f7ac3c2b75aaa77b108fc64941476298f8051df2b5e09f9f882bd49bc356e84f29afda64c92d9d6fbdfe5413b1b6c6654a6d865a4624b8a3 SHA512 6a234946541a1852e82baa75a94e4196d30c0c67a13965db0a955074b2640fde675470b9e6fd72ac73eaa81019b3f14e08079a641208fe67a588c31d93f3c44e
DIST firefox-111.0-zh-TW.xpi 604910 BLAKE2B f5a04e08f87f5432994f2765b86616331d51ce8101b7abc8881af97dfdf88f384a0dccdcdd1c1845e221683d0dbda5a95d59c1285a06b0409164e71423db5fd0 SHA512 bf90c89fb6797fcaf83f13811e6a6c285deedeb70c7f48f310fb4cd2e664a3c633bb83ef829987ad80e3956189b67777b4b41c0742cdb1dade9dd3288f95adff
DIST firefox-111.0.source.tar.xz 495743080 BLAKE2B 5262557c7e3460c5d4013040b653b5ed357a6ee3fa196a8b862ac4e884a8be64bb06896a6ef468fe702f6ab09fc2af7088de4e4c14cf832d2a3d47a18ac68f0e SHA512 cdb300fdbb2b60068b0fc10a18df587b417e484901d36f52dd174d320d3440a42b02ea000f325c5781fd8853a5171b1a5184562fb535ece90619e4c64d46bb82
+DIST firefox-112-patches-01j.tar.xz 16812 BLAKE2B 027c67af0d5bad5cd2e59905a573cb27274971c8912d3d7f30f9a781054d2a1ee56ef801df8aeaf0123214138d18ff78d4f7e9ae5cccd2b7f305fe128151a50d SHA512 3383d1c0264e23d2c45a7d9ed499615203a8684402fa126320bf4cae5b9f7f45f37fca4ae9e32a447122b8dac8e6051c6838b3b19c82b2044549fd697731cfa8
+DIST firefox-112.0-ach.xpi 459577 BLAKE2B 3adb567d9b02f04e869236b7863d2f7425fe721f0c26bafd21aef30b0a761fc7dc0aedc7abf99429d6da19c6c33d4a7669edb1531526822e20d54d802f2bd92f SHA512 e3a0487ca57ba731bfbacf7628f497b623a68324d9464a73d18e36d3331dde434d05b73abe3d8864ce684d4bddd4d20b73ee53c397dfa9f665360dd612c7fc63
+DIST firefox-112.0-af.xpi 423010 BLAKE2B 6f87c4cc3eab518c111793860845c34b3131d50500211b0e5b813b376c8a13d5aee071a40e9172e2482994234d4d5764e14a24bb68a9ae8b4b86e8bcb6f0b97a SHA512 000fd456377692eca76efde709d8526c599a38fb9839018cee726ca6359d3356f42f8620b892a9082cd8dcbad5c6be1346c7ef9bfed0b97910f7a343dc0e2cac
+DIST firefox-112.0-an.xpi 503915 BLAKE2B 2e7e5fa8a7ade25e28edf32402a3132333019938d315483bacd3156c7c1cdeebae037d144f67a04d3dc16004012d0d855b5091249f83ebb55c84b680c903cce7 SHA512 45915bb76a712cfd437526f59bb56ce7b493bdc636f783cea1f7e4809d178189ac4622b733465147c82fece78cb49a5f81bb3ef91ee5c6f4ef55415bba55b672
+DIST firefox-112.0-ar.xpi 570938 BLAKE2B a1f9dbdfe938763547d3848e396cffec719453901fa05630090a53147f3a27af3f316948eaf217492c366beb74172f288f6565ca9f0390a2b2116e7f391124bb SHA512 667f86e18b1580501d7b205fc8cda963b266ad19e4195b78f1287f1da37b0e81726f88231eb4173213c39e72abe0607592cebe2ac4985192086f774579ed83f9
+DIST firefox-112.0-ast.xpi 489822 BLAKE2B 24eafec53a5fa9a27dfeb2ccf9126e7e635309873c646e1e50c816d56c8a71673b9e94bd31566edd6a7ed367f904d03752a3ee95381a13659b2da62e1ad0c324 SHA512 73a33f6dcbba9dd4692eabb2cb518828a8ac571eca4b532551c902708f9ea6c10e315ab8442e16c4bfa83cd6941d3cbe561c9ac4e3dda2f81e46deb8df1d1587
+DIST firefox-112.0-az.xpi 492297 BLAKE2B 6aa8062bbf3430ec95b1fd6ee26034d82fffc9551e415801a71c53bb2c491decc007370aa08315f7c7f765edcfb7bb28345a058175002ba44f0d6c2d8133201b SHA512 ec1601baafe5f8fa84d77cf29634cfd10108cd31d3610421afc40ea9bbb3051a8fcaefa3612ef117ed61d151bbe8940a31531bc717d909002eb0588e4a2562f0
+DIST firefox-112.0-be.xpi 659309 BLAKE2B a84c19eacf95c17d69350747a570ec90cbecdbf04e1958d60888a5995d38b71442acfb085c1dd16f29ca420cc4061372af0bb24426b2d8112586300b3b1a18fe SHA512 08dafbcd8decd7d82ef49a69c924e5262ba6f522ef055b473bfc1e10b893ed645e7f2205a77c3cb4f91a63538301086f6a6c27c26be60bac412a58dc0df46ca0
+DIST firefox-112.0-bg.xpi 588443 BLAKE2B 4ed52e475b392229d95d8de4b48c329bfafe1ae09d7363265afe92a99acd70d4a4b328728ac2410d08c9d9d18ceab9956ca369ca3d4062f6d771cd756bc1fb10 SHA512 f1c133c23f82fb137f72e77677c8d8fe9d78efb0a85b7bd48779086d65c4b1d2fdec13e41115b0f04a928983a13ac529052a15c39da3f4f4e8a28a38c27e4d0a
+DIST firefox-112.0-bn.xpi 582020 BLAKE2B f200f0ac5d20898e3be84a8d0e67f7c551081ac356890b34de9fc2c14ce65406df4a1509654e9a3178abd8d0931968657c2d82bd8c6a613e0da352ffb95bc5e4 SHA512 618f00b9dcc0ebdbebec73505bbce8523a7e65158ff9c597caa9954c82ec09188951f70812f6831372a9081c5f741535dde7eeeb53434076d86ea030f7430bea
+DIST firefox-112.0-br.xpi 548373 BLAKE2B 3a69a75e99fcb1275fb9a8393dc7df89873f10eba581866ae45b2eb4dd0e18c1663fc41d784a0faba00805c890ac05c4d8d08b4a64d906dc1a1955e39d7452f4 SHA512 9c325c66e403dd5c36222a724c7ebcfa25918e9fb300a5039576e8d55be630c69c8d1c47f1b713b60bbab4479027e915c6fdd196784d877eb5b607d5cb016b4f
+DIST firefox-112.0-bs.xpi 464480 BLAKE2B c2be7995cc89955055b26cc72edf529b5eb124ce33e4d941667b7e0847b7716e6fef37b817e8b8a2e71ad07468ff026d0e6272fac84930cbce9791032ba1a3e6 SHA512 35b8e6eefa6db77a00882e8b4aee30d3aa4a386920931266cae2033b2c9febf5cc07bb3adea4ec2ab18cc7cdde52218f182498473a6d70c2565cd75457aea556
+DIST firefox-112.0-ca-valencia.xpi 542846 BLAKE2B e76f589a9eddf9ec7ed8b52f70a47f63b2845c7061aecc3af062c5edab4b4c58849218df79a4deb45758f111d7c72e5c2f3da208a648e4015e6d291ae0952d16 SHA512 61c442ae561a7c7839bfd746bcd3d455a5da2e5a85a67989b6ba75aec01984c1a32e9bb0a4dff4ae967f6aacf4f0f31ee42b69d31a07ccc73c9728a294cdb111
+DIST firefox-112.0-ca.xpi 558783 BLAKE2B c89f33e82e8a1adc1558a9d63d7ff1cceaf726b88eac22f3601c577f23e59a226171b0023701ee1fd20ae5d0efc9a9ee055a71e1e171dd327d8e4a756464b7c5 SHA512 30a3ab1976aa11f580bea80cf1783a5c35264c611ae84779f0cf5600a342c3fe5a8b2364941e1c2e96d5472cd0754a02d57efb8ffdb92665734006740221aa31
+DIST firefox-112.0-cak.xpi 580305 BLAKE2B 50d28c95c8b605e7724c1f1c1a173f8dec266adedfd37e0f075c0eaba9d826f393001ecd3b4b51f27c1260714f23b50a91c49949aa7b7ba358a8e4a3107ee24a SHA512 98b8e07d16a80ff13ec5abd668f52419b74433d6fbd9cfb6e08e59f171d77fea20c577d48f51562a9ddd8aab189db83e45caaff46f62535ab8c42fc36beb7455
+DIST firefox-112.0-cs.xpi 594677 BLAKE2B cf2fbeb6521f73d3253ec3725943d6dc9815cacba0d38823e448b2677fbdd39e813d8cb1827919261cd4db4f760ea5f700ddaa4d64c901c97c26b31e370405fc SHA512 53713f1a7ccc81f143c03ef454ad0735be9bf144462b92089fbbaac2aaaca2afcdc88923971d536a8e5971f8f5059051601f1740761a4f22942cf27bb4dcfad4
+DIST firefox-112.0-cy.xpi 573564 BLAKE2B 30da68075bd10f5da150d08da676ed4587be61a41a83656dafcda2701b5642ea258561e27cee4cbe37e6a8fe57db55bf05b841d7c8aeb884765355ade5039ac7 SHA512 444289f710f74983a13b2763e837cd0ae98ee02cfeda205de421af6593a736100a25da2124f41c3f3e1bcd15a4da5779b20ae01b98db31bc54954d291a384191
+DIST firefox-112.0-da.xpi 563251 BLAKE2B 74eecd16a6d2301235297936176265a046cf80ab0f355fe075a23ad8ef1aa6da7635f53e2d81efe4ef0fa8af49eb50c5f390fcee0e35c9af5216ea09f569d181 SHA512 f0e4a3c6055513deb1bf8aa3ccc89161da0e10d6f3edf8c5881395a1be256ba8535c58d95031cd850d11cacba6b8a0d36793994390cad163a2bb402cca6896bc
+DIST firefox-112.0-de.xpi 584798 BLAKE2B 41cd622f4fcc84abcdeee8b2c65c9fc322b4f9b066e0720e8c064f6655801d9ae7840e8c10bb44085d8cfb28dfc6ec8f4c554a849ad31153c13dbba498687665 SHA512 c647c980a79647ad84f5a3536fd0ec6b80491b0b0824c515aae3487cf287f4ba74a8c3000b9f36e84f72e9f6a20b3e5be591eed6ab2b7eb8a415be1b6dc7acff
+DIST firefox-112.0-dsb.xpi 593194 BLAKE2B 31ef1b2586916cda1ba9ae49ccd5c0ed472c4802186a1778261a0079280ce7c3df370c1363c17373dc3c37d9bdf15adea2114f9a76157bc5b3daf2fc26c0d793 SHA512 4e451b88b0e712db19dc9ddd3fb0d3ea45a06e7a91f70c37fcad0f41de4f1cff78df5dee96e5142d60b859cb93ef3eafd497d1e957e1fadd9f0933c149801b85
+DIST firefox-112.0-el.xpi 674361 BLAKE2B c4324ab8b3a9f8ac1abb72118e6cac5304332c1d313d4dbf3e76c5092ebf5f252ce6aaafde9784c10411dba76f5d94d336748398e58a45052708985e4dd2024d SHA512 5c6e4af34758b4630737c8c68014f690880987b33883d9892c7af0d266620e4322681dd920a0107f821817b94f61dbd899695d97d663e0319ec1c76b073572e1
+DIST firefox-112.0-en-CA.xpi 536336 BLAKE2B 2d2957f9dccec6c88987625ca5fb438fa7ffc03b959fa4a91a91a32916a76217a1f32603ffed21e5ed088d5c2b94ffab5768135daba4127597d0c3f08931ecbb SHA512 c3e4b760df2e206c0795f34a89ec1da4cd6a81f6db7823678e44941c3c2d63e156b299bf8927e683ea96fbc51a2f2a0abb16b3a942eb3403c4bb664a6f71a24d
+DIST firefox-112.0-en-GB.xpi 538969 BLAKE2B 89f760f2aab9e72b648fda7347454d3e49b8b7890aa9f1bdbc060287bef773a729a5de74531435cfda413a86c90fd8f016029434e376f44c9c8f7302f20f0483 SHA512 214e52e17942341b9942c471f5fbae6a7821526925f9365efe9e750ff1968b39b76e9981851ac2ad83fadc43c3075ac3c819634e4c8befa073e8233b76c959d2
+DIST firefox-112.0-eo.xpi 567008 BLAKE2B bee8729facfafc3b457973f94a6e26a945fffdd2255cff0e66a74cee5245b06409f33cbeb3976c1dc5e31f3ea9f40864d40f137e32e7d96888063de0d27f9320 SHA512 aa250c262b7be624e9351806fbe43444800723029de9de4f416e8c109edf7f8aaced891c520d0a5a2dadff9c9a196338fa9cc31c60ec78adecde0ff7772a3b3a
+DIST firefox-112.0-es-AR.xpi 578708 BLAKE2B 0d2d6289eb7f867405afe92e3815d590d1d7e2d105dfec942c94805f37d2640544dc217c5f834e32aa5da53138fa20d9a1e8fb755b81a05c14c735548f71fff8 SHA512 a8a546e2571e4690fcd3b0027d88a29e10a088716519f53f9841c526eb9b57443a0133b8e61a6ad5c402627ebe55ef3ed27b19c747e7617ae0880013ffa1f0d8
+DIST firefox-112.0-es-CL.xpi 577883 BLAKE2B fd9d067a8c6a4e5be49fc56d1acde5e5bb614e15170405b42263a1092cb8ea3703532ae9b6af29bf95e3c62e6bed38dd77a46cf084fd8038a08e3b4f9578d590 SHA512 e499fbb0e882151e2c108e0ac9ac1e6bb6ffcba8933bce0d6c9339f76104ba2f6f7cbb30ea046227f9b84b30983c9eb0ef024d49c418737fc966bae98550ef43
+DIST firefox-112.0-es-ES.xpi 571738 BLAKE2B 346a71713f69a681c98470f7e3062df9983312004e71dc5f7c21885cc4ae73fc9280ea2d9983284f2874225fd0408122a24ad1892c85db5b29eb86dbaa74d032 SHA512 fe84ab66c88fcf78267624ee9e3a1974f309c19abe7dbcdb8f37820fa64497e11255bc53d0b48da3142759d2f3803388a4e8d07414c039a05b9a45ee965035b7
+DIST firefox-112.0-es-MX.xpi 579878 BLAKE2B a3e6fd8d61f8b20da4cf62b0b06eadbb84e5193310bc324cbe1f0a14ad76223fa40715dd11c9ff8b9c4a0242aa19f8f40d10bfe28486eba13fec587105461945 SHA512 f103fff33f016ee4f6bdf8ec1455d3323238eac37cc7e2adf63ec2cb72282b6c3628969cbddf4348974e0f825c3843f0cb6db78118edf3a571675951b6e223b4
+DIST firefox-112.0-et.xpi 537324 BLAKE2B 80921a9ef9019630d2d96589234a19cf5c2a377beea969334706a26f28eed80cd942149b471e3cf99128996d05745107096f21c75384a4d7934de36920675399 SHA512 7eee0fa274bcec6aa4c11cd9bbd5a727f571f2a0bc7c8d52d44a8def0e5dbc847a70e71d8fc4797c70ad707cf1241af42fce01fc2c0b10b9315059812d2095c2
+DIST firefox-112.0-eu.xpi 566001 BLAKE2B 8df5e08d4d2ef680ec9a97a8e7cecc6eeebb2377dc8feaaef7bb090573b587f642d2332bc41945ced92d1f5654e5b2bcf7d6f9acae9e5ae5ca515e397f3006e8 SHA512 b3b3376e216257139593003879016ba5132f1217cbab728950092ff833ecea07a304515d42a939412d7e3b474b15c65325eb180ee5d902d7eeee6575b079da62
+DIST firefox-112.0-fa.xpi 581822 BLAKE2B 1884981cbf1825022e8c40a619c4491f68b443f63bc970997ef578bf255b63dda63cc835096feaf00d0cb93f8af3c2761bcb56225c0afd729dc1dd7ebb46a584 SHA512 cfa66a60305c3101e7ac8f229774cfd9006c2c65eb6429901b637a4aaa35a4080da9cbbc287ed7669c8395e92a4e7967677c4bc1f9558fdc27bfea33f31514ac
+DIST firefox-112.0-ff.xpi 476564 BLAKE2B 3aa07450a181ec8a6a1b2e98de4271c39bd4bc35496d8ccca8a30845c9e105f2cfaab5f05c5ab172a5a8215fbf27722678efb39ffddebce2ab6cf5af3d070538 SHA512 bf5c198eec4be022696d853d08aa2b03079304f50369548a853f64c1664be39564cde899f2eea297344a305afe00de0850becc9e093b438194e2ff6fbbe20eb1
+DIST firefox-112.0-fi.xpi 561269 BLAKE2B 9645753b38976dde20e033e44cbcce81976b9cf96e09244102e24bf9c4eafa2fab73c3734374796de9a6f3b28ab5f50c1618217079abe814a560e8372677af84 SHA512 517e397fd4bde265afffc92a306b1b8d0e80fe01d8d772f6668e676987eb50450fc608cfc2f61d82a87b4821f0f84b99149d00e2ff1f7123b2cd8ead627d85ff
+DIST firefox-112.0-fr.xpi 589437 BLAKE2B 6ca97d535ce9bd8fe39effe47bf01b4c960fee8e8d0b4c8c18464ccbf004d7747543cfa78f6875f01ac4d591b604e339cd68497f7f45866ce632d9b22ac00f1c SHA512 d9aaa6f025266c46bf335a57e55521cc31935d7c4c86544e2040a1da67e84830e3972b682ed94dbb547bb6e21910e3ed11b46eab41378ec7a7b758a65bb0be23
+DIST firefox-112.0-fur.xpi 583051 BLAKE2B fff528a7a8c8a9f7f05a9b93a28cd6f095440e93db4eac0927d3d11315f501deac98a2045bf9048e0570c42fa8cd388e7ec19eaf7e71500e4f2e917c3e0a9ce3 SHA512 3a8f3c7797117d2e09ae3d7714b12718130b060877b612f371da35f0b93e706586cf51c633eb55a271ce611fe16bb57c5ef891353f282ede695953d43c53ac15
+DIST firefox-112.0-fy-NL.xpi 574246 BLAKE2B 2e96811f7b6b052865f7a298fb1ea3f427cc0e4204bca0e93566dd081dcc24d50f0f4cdd86a8fe05db35a7da58f10079c4a7d50d59876bceda576192c1a99ec6 SHA512 d898bb632e17751a9dcceacec3bce8cbc0c54a7898cb08c82b423a09804cb5efe38f3f2238b4fe92b1766c56a3a8847638f92645beaa3d70efd55fbaf5b4b417
+DIST firefox-112.0-ga-IE.xpi 473214 BLAKE2B 4189301a0d48db7b78a13a7b4bc6606ed04c04d0f6af404e6d6ef45e807e8750d169885873fc06542af523c762dc1594f32bd948d4e15e95844432b0fa5edb06 SHA512 ae081b35d7ea7fe80a06bdea2fd95b0e1846330fcd2db7cf55cf7f43f581a2f5e98b932b384785b39c31e6401bf2f7db046b1dd17f3b0b75af58f3163634107d
+DIST firefox-112.0-gd.xpi 551292 BLAKE2B 7429a4e8df9e86b8ebf91e0c6cd2ba4fe8fdb013fd9e622ec0b5a0ca39e5a9a27c2bba224faaef23a6b7d343897eb54ac9ce2198de47ad1a0092c7fdfb76f996 SHA512 1dd17c07afe6a011e3926883f3a3e5c8d1300d8b7b5f3e88b3cdd4f2c7266450e0e594847872ae26477b74a47e90fdec5443ba64b2a64985e6508db8457c032e
+DIST firefox-112.0-gl.xpi 546195 BLAKE2B adf616315d8f6104fdeef76c8f7f59e0a951753c9d7dcfc8c51bf7c7b6c7cb9b0633f3baab3a4d1c19ad2cfe900de1ffbf5b5ca8792195c2ec5fa4e37b3df585 SHA512 117d3fcd3ca422f6ad2a8bac8c0762272aa849cafab1e454f6c6a78cf79bae16443280017da2c494a588bafa1b0b8d55dfd6692bc793b85525a17d245fd0c5b6
+DIST firefox-112.0-gn.xpi 589196 BLAKE2B 5dc7afba155450b3db2cccda9f2f132e9f1d8d731ba59fda996f5ec801c744efcafdd7bdb11b9270216c282ce8c80985ec0c6e395e9d9331b9d99c242f36cb77 SHA512 9767a51b525893e0c6eda6fed793202e50e37d6cbaeb8ee6dd6fb0a1a331ac3cc9f9ce13582457a816f2eed537e1e964c810890dc211ea716c52ce48d0b8c1c9
+DIST firefox-112.0-gu-IN.xpi 531462 BLAKE2B 6ea7d5034100d70cee1a6b927fb548f901d09b3d10ace5ff75cf8ab64db3481e368fd489398f7bf6c2d723cb9045e8c736d91f9a298881fdd88d5485ef5fed6b SHA512 4f09ca8bb2d67df0530443790972ec1b97fe53506fe544d32d9f62001b5b7892326a73bb6d13b18418564b8df4e0494507235d1307795a6f873f89be787f755a
+DIST firefox-112.0-he.xpi 582092 BLAKE2B 7f8115c2edbd6a50daa70731af67e99e6a60e9d057a1d12a62aa70d841e6be7b6d32e2be112c5d95d6c3116ab1a730e4dc49f4710b6bfb62caa186d66e1285e5 SHA512 926a7c73c909ea54001f30c7d63ef787054d9069f4367e02133b0dc85a001edf87edaf085859b7cb9ad412899e8e9ad6f6103e5d932008fdbbabb035a6d94dc0
+DIST firefox-112.0-hi-IN.xpi 560534 BLAKE2B d5e420523714cf57b3d4761b6a9215cf43c74faeaf3382861d224ec8de34fca467f3d1ff08153b429789a54ae0a973c315f5161d2a23d97f77e16cda7f69d5b0 SHA512 f3d76beee21d4ca2883be263d19c1642744fa79dd690026325131ab421648435a176062d668d08554c82850984b741b1e757922107112f16a2c7c8aad87022b2
+DIST firefox-112.0-hr.xpi 549244 BLAKE2B 29aa4e520d1296a143d8291135d1164a1a74a0c5580628d7786c384959d976657c91e058e4c28db13a0c7a8d31b8dca15fba245e60f55a95ac9b71ee042c0158 SHA512 837d072ea8103f246ee1b9b1d0fd2924d501f29344751f4219366109edcd6ccfe66169a1a1a070463543786d87ada552a45386dec2ace20a2778795b34caa6fd
+DIST firefox-112.0-hsb.xpi 594278 BLAKE2B 89eef989c2b12bb1984dfb697a1878e2d0a6df9f9b4239d580b31afa91df569ed309c0e741a00ed54ff29a68bbe6e3d9dab4a591ff4451f2f84a3f2b7f10351b SHA512 1cfae7bd49b564a72d0bcfa7e8823a17f36deb58207b752b25350ac7b712722ca308e560603e6af393d1b3fcb1cfb97038a4e15d537300fd7bfd3bf880fcf31c
+DIST firefox-112.0-hu.xpi 599394 BLAKE2B 036c7f87f77d2e196b7b1d722dad8e2dd209d90f904648b779af6e780678dda68b59ee44ef7044558f1450accdab21e1beb96bf72bcc207e4ed9405459f7348c SHA512 7037c7503c2e3bc38a9cfd30b5517247f19e6115cf32548473ca0fd3d11809ae8470db2c8661247e18b40e666eaf9e3ebfe281e68490a73ff54a82d3aec3d9f5
+DIST firefox-112.0-hy-AM.xpi 600439 BLAKE2B e1028ff259603a7a4fd9b9702fcaa31f353a593bf1c809e617bd3696881dde38cd12d2a630f33992851a4bc7fc023cc1e93e47f9982b59b411a74e955d0f8cbd SHA512 3391553fc2802fa11c6649bba280962b778b68ca1ac861206aaf2b61ae811ff28633a83426b94626aadfb7eac7912ad4c62b91acb65a1ebd9311ee4e96387ef4
+DIST firefox-112.0-ia.xpi 562608 BLAKE2B 35cf1f56d29f2da3674a71c6d48753c88552da758ec33d04ce1de442e4a41b813baed5189838201e74d061bdc426cf6df912bb6b2eff4710039eb91179d03789 SHA512 1a0cfd4bdf461552b530c9c82cc9b998de7c2b77ebb0bee1565c27dc22a133219dbe7cb2a6d4eb5bc2506703508690999922fb429055bab2ada0289d79a3b538
+DIST firefox-112.0-id.xpi 558190 BLAKE2B ca2818a7ee3565facf1a974f4fa3f264ff7c49fdc8e397cee30ad62b1b6926895e629430f51ff510c7c79e85891c2a07460fb08ab6198814fe02d05c65817924 SHA512 de69e4381fe7d7441ef9d8468381e34a7f3129e4268abc569c2b96041e0e76a98b5d536778f43a2bbe3d439f828453b2642f7c1ab1ec3d059036d48865c7a3f9
+DIST firefox-112.0-is.xpi 569051 BLAKE2B 11201aaac800efb19cac2ffce909e76287f1985dcc685e001605da77768c35efd9deef20ed1253ac3eff505bbdc5fcad3f9f08d598e9696472ac16547c58379b SHA512 f8e4b677f32b12483114095e0fc2fb1b90aba7122c8ec25c5b76dcb606a464426b8c142317a51be817b758e586c6f84ba5794b9dc4beb99ab0972fd7db42f650
+DIST firefox-112.0-it.xpi 500345 BLAKE2B 8ad8b5516521c63146406c55efec7ebedbb2cc3b2b76ac2d6b8b4d1b90854f995d25297941724b55884dec4ede1eb5aa9ee4ace7bebec451c469e92eb8458bb6 SHA512 05f0458bdb2e9ecbfdd8ddc3b8d126b803d15a58e9d3f5b099b05051edcb2b09f7648b73414b63d5a99bcd21d344759a5bc6bbec517e9bb2e3d36bb9018bb55c
+DIST firefox-112.0-ja.xpi 624657 BLAKE2B f90d93f45abf72a92029fb75e1ba11d331e1bbc2d652fd1f16451e981b0ab6e834a0d889f9ad97fcd1b6de38d63046c094a8fc4fb22914cc82301125a1f7a894 SHA512 42a1968f8071ec5587c9bfdc6f3259f38890b99b7a83e12f2107570f27f9033358faeea5aa8e93ae4a7bf42a927ef290c3f0e0b8d0a200bd5f3f461bf8408a01
+DIST firefox-112.0-ka.xpi 628720 BLAKE2B e7f3a5851b8dc7026b3dc5b868dc6b307406fbfaac63b3fc09df92f084f702d254a7105382237a2d95d94e5b79dcbc1693afec14d80b9eaedf36b0314241d365 SHA512 e0aebc458d68db9662ce490cfc2c1e7d55da85617543303825946b2c9a3a8c7f07eb8c6e2db9c6bcf2941c823cf15959392c7c163420cb87d948a1d55aad28bf
+DIST firefox-112.0-kab.xpi 580368 BLAKE2B af68cf7247681e8b84ddf03a72e392d896972733d6d5fd2386de635bbe4dc3b485312eca7744498870b269977f1f61f88e9e5d31a63746919f2267de71923ef7 SHA512 93375fbd60539ec88a4797600b87aa81efb5a07e61e1a442fa983dab914fdada3294f07d43a8fefd3e290e5a9ce94dc4b685904cff148e90473e5b23ad8f6a1e
+DIST firefox-112.0-kk.xpi 650637 BLAKE2B 8ef011cc0366012f0a755246dbfb315c7942efc56a872b2342b3128e498faeac69fbb014d4294f9b462f0e7bb9ca06c9a0824d328c4e0d66436ad3648081f262 SHA512 c86036364e409b31a43f8ebdb0026e3a14a6981306c53ac0a3e79ab0eff07881558eb36d81bcbf1ec3f0dbd90836bc233a52658919c919bb5f7f7944e20bff29
+DIST firefox-112.0-km.xpi 533374 BLAKE2B bb6990bbce1d1c5ef0c5d7abbd6676cafc0a5f04032caf6f88ef3574e4aec54d8bf2a37d76f3a1eb0bdacb6be33efc3cabedafa4cdcc36f49feff1d2b71296f6 SHA512 777ab46b7ddec70e9f6cbd2a84f3531c75d945e77e54fc25fdafdda7a60ad579f4ab36068d99a845593d3a458faeba47d186dba2941a4b45db5d267750aa485d
+DIST firefox-112.0-kn.xpi 498736 BLAKE2B d93b9989a8aa30a7895006857d4e319acafbb107f1ad04f9e48b7443c552b92d57eacde35bada4162851fc517c2b74a2147e0c889cec2b35fecb4dd2cc28faae SHA512 71501e04a8117d0d84c446920cce3bc9be0bcc4945b9d34c9a79c3d56e9852e4fd5c68f45dd88d255dca64c3eb0f40015255dd27cde3e2acfe92dc38e2710720
+DIST firefox-112.0-ko.xpi 609820 BLAKE2B 84559d2a6f6042b76b06802f99d2db8a4801e3e8ed761df3dec0220fb49c91d646866ad6539a5d1a3c9a2918246b56d5194813d293b13ca3524cfc74e17ccec8 SHA512 3a6f053a7ca2567483d8a9d05185ce646ce4760084357e12f1b462ca03b67fe9a92b61016663aed5064dc32150b25d26369d2d6b1e2131c790bc9c55c31eb18c
+DIST firefox-112.0-lij.xpi 473590 BLAKE2B 67c0185c4a6390c7e304ae799e54847c7c471721569acca8b8511fa3fe7056d4d5dccd53f154489663dad60dee119096586881eca9463d229a7e5f652f8ae120 SHA512 3e72f6931cd886252012084ac5d7cd76ea0b3b8736ba8ea9b722c4dd3463035264283b08f80ae8823c557b00054efdb22fbe119268474f2fb87841fb05a8d5b2
+DIST firefox-112.0-lt.xpi 569448 BLAKE2B 84e8fe6e0349724a8b1a0a39c37fc27eda69ae9466ec2df3a1363ce5fc709804e9da08784190c102d63f65937ee9e3fd49c16812a54b8693196dbbd7c8852255 SHA512 7356a84fdbe74a3b8a53585feb2cee0115d00960d2077fb5a4dd78294b5be7b387e9719291220c333cd512022d28c17d9c60c31e9c7a5ab9d721441fe0f93de4
+DIST firefox-112.0-lv.xpi 473260 BLAKE2B 2e332feeb55ee86c0a4c15a535df5d718f9a1542f47b0b68c8a48f3bbe16fa906440dea47f568e5271584014bd5f8921dff0b348e0248e37269d39d3579efb1a SHA512 058458a93fcf59b5af89d78b7d785e6c0f3fdc32020796137255348f093d910baee62e933bdc94b03b29d858760995dec18b96f721ca46197407dddda9252c39
+DIST firefox-112.0-mk.xpi 488935 BLAKE2B 1e372c1034a0e50d5adb47a6d5cd600b8f6802fe00c006807d379ccd27bc90df6a11d50760900d4643cc1726209628c2c70ba1ed9c1e3de08dc8a680345eef3e SHA512 edb8d569a018c80f021f8439b57f150997d4f14fd390bfaec7d093de34474d0478de3835864006bd3a99360e3e791b954a7a1a97d41c02a4a19bd11e5eb5c1b2
+DIST firefox-112.0-mr.xpi 533812 BLAKE2B 994ce939289a7b7c5747d84055c75117e10d60d3cb2ea1f55b91a0708b7cea7f6b301260361a06a095109c02fba0f00e4c721f6e3325e74e9302270b36393af2 SHA512 1202dce73e5e79cfedf6ee6369a9f80e82c8a926a4f20254f4ecbb78d5853b75cfdd8d54a3af4d26fa59f9362d50e5f7ddf2afd9a729f595c4b2c942cd942d8e
+DIST firefox-112.0-ms.xpi 452949 BLAKE2B a40aa013a77cd87ab37bd010d65c81d1e45ef57a38f97933eeb89043e185578cb5119b6fdf608a521f03fe33888096887a310efcc637d3fdccb6c76b462f2ada SHA512 7a9de2bfda19b66598e4bc891207cd98144978bc18bc0c2f53d15b4c52b1660d6ddf8104c396792f7615d60a31f0cc39eccad25754c47f78f5a9a2ef91469282
+DIST firefox-112.0-my.xpi 519345 BLAKE2B beb2e91d75490ad90fe55b6da1d9c99a353cdcc05ffd5e82808e0d0039b78e8d7b5bda87d96251a555468a15a207693991e4f545aa69496565fa48150d8baa8a SHA512 28046eb5abc6c098f84929ac81905f43fb8aff23cc056c578770e5b41aaab0fd6ce1d78ca644540dc7915c39ff6e1f8394c14d3140316b3d4561f9e231229647
+DIST firefox-112.0-nb-NO.xpi 560423 BLAKE2B e7e9cc3a1853bdb6ac38d2f5259fbc4903f7e1f396ad03163dd01087e1e6f0d99187cda162ebe1bf1ba153d72fe145d44d77d71a0ed37566221a0f647bb18165 SHA512 af0591189dbf24907a4214ab75cca2ca84f9c88c89782565c856f53e86713049889d10073253b95e67801043fd66d36363a67853e7a339315ef133aeb11a6b4c
+DIST firefox-112.0-ne-NP.xpi 487142 BLAKE2B ea249c49abefa6434d63acce6ff7f95f7ec9245dd1f8b9c12bdbdc478b0464322fb25ab8e5e4737e98d5518025d01656bf6af6ef246ee5f267d27ddceafb1fd9 SHA512 fa13e1aedf6400e3f3c3503fb0ba96f777226b2300a6799567f9611dadc789898d71339d18593789c821944eb3c3d75680015488ea52b8cde4fb69580fbdfaaf
+DIST firefox-112.0-nl.xpi 568247 BLAKE2B 2fb77d2c5a94d94041e0e3918b7d03aeb3cecc942d50da09d645585c83c2c3917e601282a7732521e7358e992355a203363e3e79380b03df3748bbf59f38733c SHA512 cdb07a16051455037899c6c482a2d73a0e5e374c741263f13f27f514de6f83862a9402fadda7cfa8cf4ce073d711f32dfddb77692eb916799e58a6cbfc05d892
+DIST firefox-112.0-nn-NO.xpi 562948 BLAKE2B cd1d27b4e204e404b3f637cd5f6955e70e0261a98ba31ce3a69200375561093de1a9c45aabc9b344593cc5c5432bf1ca7f0bb4e6aead7455762d2b658f42ea3e SHA512 e73e8a85dd56b7736d2564052c8487c64ec49c86a8c76d6c43b21e6e532025e3b0271d7300fae7fafb81857dba49eac3cc967a18af2c9edc3a18a2deea4faa44
+DIST firefox-112.0-oc.xpi 584381 BLAKE2B 24e73a77e77c868617030af0e725d774f1f6885c374fc5cb3496b13e19282cddf3755d3612be3d403955228a48f495485ef94970b34205e5df0b6b949ab23bb7 SHA512 7b320ac32f9e304d8b0483d00e83f44b5fe791ede6dea7ade33b3bf86050a1f439d6d11dbc8b6928c0f2df6085bba1fd4e56336f2be9ccc1b052d41b8a225d10
+DIST firefox-112.0-pa-IN.xpi 639405 BLAKE2B 3f386c3185da9b16eec301cf0be09a4ed05a45e630f181769708c9f9b8c896f67ab3da38f1e8e98a0f68fd20555073af36c7cd42ead8d96435af0503b9a4f3c6 SHA512 f0d90ba3195ebf5f239f0e4019211a6b45df4d8b58b4043da075d4cfa5a8d7a4df6a3dcfa0869bc2f50c04034531d11d6c7da26a1ff1c2c4088cdc6f5645dc2d
+DIST firefox-112.0-pl.xpi 591973 BLAKE2B 305f182e1afc2326965cbd8ed08a3174a07cf60e70590c71ad9b90af770ca54fb5af6d175a2c5d68ed9bbf3b177dce40d77685164aed49eb6464056098fb4ff3 SHA512 3fa4ea14b8a90dd3d2de25353f7fd4546b6eb4ac0bf26824a69bc2da36411f41eca40e29b182d87e24a3d77acb055a9485f17c0eb4cfa69740813d9535eb3a6e
+DIST firefox-112.0-pt-BR.xpi 572835 BLAKE2B 0e38fd289b59007f1e2394e87e841ed888c048bb14d2f8cf98477e173c2fec0dfe17ac79d090c805df8a73dc37423fbafc785323013d646a7640f1b3e6838792 SHA512 aed527a60a12e475d5988ee40a37f1a918183ebbcd14cf54efe8f855e7b4e1b2c2bc376d8b96e11327dfadf607a953d899047066b85b79d4bafa9a0b4047d091
+DIST firefox-112.0-pt-PT.xpi 578345 BLAKE2B 39f5a7d8a2537dab4fbd73e4f3f896637a2fbf2206cece4157877cb2edd0dd4443738806e862efb50196cb37c35d896576416d2dfde32de4c54ba030ee39a614 SHA512 4d9476e7e16bb11a40ed23cd248eb23af9a7b79e39c6c5dc7d1c23beff41b980a6020cde0f8aac3ff2871428d96135b2ed7c6452af4d0cb6c90a0af45acb777d
+DIST firefox-112.0-rm.xpi 568722 BLAKE2B a92aee079eaf075eb5abc0cfe7dbc6945c42808fd3597d4ef5494205dc7023fbe3e15fd0f4e3becc97ce7b4a0f5982065aaeebbe30e375511f02d64be36aa95f SHA512 b28d6f48c82c2ede45c9bf2957c43a7e7dd69478ae4d3b33839e1312d8a9ce3a6c106a5b9778ecf09b5a1198ebb0659e14b2acce5cef6b969d40c7073dbd444a
+DIST firefox-112.0-ro.xpi 537904 BLAKE2B 922b93b41adf484baa031ef197a450afb7853b909fdef36cba65f957e18b600fbbf8ffa23bf249c954fd81599d195b856454728e1823fcf1088f9e5f4adc2fb5 SHA512 3fcb5f4c3f1171ed03c88196d0c293066a5be3672191753b3cd2507fa16a0c13eab998886162acb8ba0e89e0857e83aaf111248af6309f7e054c6bde90875a94
+DIST firefox-112.0-ru.xpi 663836 BLAKE2B 7f69f42c4b0fe3e1e8c6d13465ec4046f9f38e2918bfc6aafe112a9b349f3998acb163e1a1e2cdc2f22191130f2fa0f89b1af766f38120887df5e40a70a575c2 SHA512 8aa75d3ec3f7ae0c1295e09dbae0e0bcc1e62f03cc9bcb72b4e147757b540b83d0359173156bbb8ee1423593654ed4693cdb4f99203665995f71f22f0649ba07
+DIST firefox-112.0-sc.xpi 547970 BLAKE2B 13b36760a9d07bb02b8dd07e56391cb104ac6be9a204fc14fe0b799491c930551f60b4e672755bfbd0c69a07b73835783ba813a8a455c8c6ed349939d341c8fc SHA512 44a87328d39ae9ceff4a6dfa41ca210fba3df854acc15b691923317dfb9c94cb9742d10f3d5933b561765c1d609b6a2832006894c3ce8a1b2d8e833b768cf0c9
+DIST firefox-112.0-sco.xpi 507895 BLAKE2B 0a4a5a56c8fe17c8ffd1dec23c39adec6297ddcb791cec92dba3d8cc3bbd53877dca26d79494da357f672eac986f486441f640600c3c551c7510513d7b5bdcd1 SHA512 5b6306baa8d6e9cc1cfb564d7095e09f19e20955ec8a4d27eb5556008a1b91fdc4361fab740c4ae5270586f38876dd2498822098f1c62277728306ba5a9a16d5
+DIST firefox-112.0-si.xpi 576302 BLAKE2B 55613a6dfd907ada8b521f85bec7a26e37510222de2174ca1960c5fbbfc987559fac9653b33cea4ce05314bd13b73234c8779728c5c9ec9b78abb1826a2fe018 SHA512 7794a730df054078f6d9c5d7a201d467a85759f4415f3e82d8bd3fab16179eac70af617796be74e2339f0dd57446106c14ee02af24a1fb40f355e0f730f22515
+DIST firefox-112.0-sk.xpi 599872 BLAKE2B 378b9484ab98aee784537273a35d36066d1cd0c9e7a64ba21ead2b74993f36dff3aa0cb774d1332689b0a8983b8acb43ea6946cd2ce21ae633b596504f1a5eb6 SHA512 5551ebeed40ae6db834d1f575ee40026856bb93ad6e7823bdd810817b9165cc359417dd247df792bea8d16ca51add064117b59e7589725d170cd63955a54511c
+DIST firefox-112.0-sl.xpi 571231 BLAKE2B 090a8de4a412a77c5d12f42db90b3e33eba55b29e2f8ab0b42a4f2c6c2d4e171b2248af7c2bdd3ee216e68f8d5cc47e1816e9996879df8faaddb414fef4429c7 SHA512 9f89bc1d5db2869c3d7e25b8a0151bc5f9aa2115ca1e1a20d94e12609d61f6531e445eea2c97c4bd7169321b43cbf6f64cb38d61e2a1e681e730dba12e09e4b0
+DIST firefox-112.0-son.xpi 424788 BLAKE2B e20c6cbbcd802e3705071badd4a61cd4e8793f12bca13b324c68d0e4d3e4eb40ea53f22460c10ba6bcacdf3311a0781b6cd1cc2abd6f29ce7991a94821a35401 SHA512 aa2297ea0f226e77fafdf2fecc894797b5315704925cf94347f51f665814ffb7be1e1b828350f12b50bfc31d6a5a1584f0fc0e74ce9ac27be2bd65ffb5f5485c
+DIST firefox-112.0-sq.xpi 587585 BLAKE2B f1800498a8e5ed55183679c1bcd8cea832109e1addef900f8d5c880d268bf87397fb592f2f2a8e6588f3776ad6db901c77defcfe3c105c81ea309e8fb147368c SHA512 185aef80fb630d4a599ec3810c6f1da00744cf7900bf936d6486c4191e6b2819526c0cddf9fcc33b8abaf1f9d2b6166d450136b309952957fa592d98ec993309
+DIST firefox-112.0-sr.xpi 625885 BLAKE2B 9e558ee542fc981e52af238f4f9eab3d9d8f8c176eca5b9d0156a582a30d46c83db8bee381f15813640a2a8f81362f7965b70905e5a98bc0c862c45d7f33dfd5 SHA512 372b902ac77aa1e840c457b2f03a4d643a7e3368ba20bd842033ca91067534184fc48f9d28f11cf7b4bdc850a177d7d7ccbc7db03baac0942666d840580b9158
+DIST firefox-112.0-sv-SE.xpi 570236 BLAKE2B 60335af40c18659dc43d4466d0be62e25dfc90745a9fec0186687e2cabac23b2f1bd884dea0b00e934c654aef84fe4d4067f319a1afe63bea02d9871cd792e16 SHA512 5d24c11f194158aaae45c752eb216da9cd7116a01b27165b8ec7cced625173929bcc6aced7f48be42778f0acedd1be166a6458b4e4124dcdba1bc3ba87fb98ee
+DIST firefox-112.0-szl.xpi 520798 BLAKE2B 1bb58e7d6087e02bbfc1e17a4d90eff413183c5fef033a821041ab35b978360533544f5b8f55c66824df3e7b4b00d1fad6fa2fb3d15b289ee3fa6b2bbfe91037 SHA512 94067f7e92a0dd86ba78b4cdeac2f93cf1bd5094db67aa009e02f421f745dd13b2f8f9ad9caf9a928e982a8e0729a1c844e4e23f31c5c2fdf801ac0289d678d0
+DIST firefox-112.0-ta.xpi 510942 BLAKE2B 363a3f4f59f5f92808d2870df9c9cf8e039987eb1e9e5c96adfb7d6095e6f066cc1d938794518fc8de165f60f476c93d00900c29bf1a8d71ee91e513d1fd42ec SHA512 dddcfcefb47f5646db0cca4215ed1dfb9a98073f581e801b4f624247134817af68b166910b5effe9bb31fe5cac783b9b4936df05c0bf77787e0b67793bc7ea3d
+DIST firefox-112.0-te.xpi 558903 BLAKE2B 9ccec092e762d25f521067adc93c60bf17f9975740687673656f6b93a7bd562b166f1aa5a6f00d52710f8738858e6ee64c05416aaa91bda7ec5c16801ebb7884 SHA512 7e9c46271cd1043551c1a727350670a0d23d0c9b225b4884057f58ab78f40687dc3ec92da987a82d0baa28333bff53e20285af73698611e7a6da6371f9c75e47
+DIST firefox-112.0-th.xpi 642638 BLAKE2B 42482016a0a0ec40967a2fb5d180463bbe0ed00059df0c0766ed86ca2e02db3371ce75bbbcf8341e411553d31a7b4a846029a9fabb1a13f3cab053cdcb0d4b40 SHA512 312ae1baa118805e8867133037dad7211609d0c20f4e53092649814f97d41cd9b500741675d0f1c2f3ba01a066103d04296285508981317bc828c947d52f9dec
+DIST firefox-112.0-tl.xpi 530627 BLAKE2B 3b590aa06b24df7b364d624644b0e501292555fa458b4681269faae18f81cdf4b430993565d62a4bbc54822491ac483b4407f3b9875315596647b70c83bfe0fc SHA512 7b79408edbd66fefdc6bf594bf28200e0f76391450fcdbadd00b2904fcb5aa3fb625764caf4ef939eef79e94a28c443526a753dc2cbf95fb7129bab3dea8c8d2
+DIST firefox-112.0-tr.xpi 583014 BLAKE2B fedcf1a096d6c05fd472c1d7427c371ffa7f8618aaef70f230b1ca45c1d59f7c94b603d66a427e8895321e144c223d857dd4d8e296ab74c322542ae21d0d3a83 SHA512 764c6b7e2f052ae764c6a1f4fcb5c559b568f8cc62230d9ce11b758a4b061bac709cc92f8ee54b1b380a4d75f2e7aa49d3bb8aaeec194498906b97a50e2e1652
+DIST firefox-112.0-trs.xpi 489980 BLAKE2B 453f79711de19707ab4da7a0c0319c129971f0c6c4e9cc8768d79bc4557dbebedce822fd71d3ebb250c8eb7dfb8c1dd374f5e0bd2803ac6dc3f209e6660f798e SHA512 bbfa5663b3aadb53ea0a4cfec036e175861a5bb2719f652bb620fe731c9acdfc4e545c7f6d51e654f0c3529b8cf488d61afae421152ebe37c99c0a65602e6a80
+DIST firefox-112.0-uk.xpi 657026 BLAKE2B 17c32748ac3f14e6a277aa2b0b83f089ae3644461544bc2e1da788495994a9fecb15a55b29a615521658291d0c2e33935d9394e09c6cdf8a43fb40276c561fca SHA512 8383468401aae597a4872e4b87202071c10f37fae72642684fa493726f93054316920f497da3d758630280cc864f5488d4b1b9a4e93fd394311811a1f083f9f3
+DIST firefox-112.0-ur.xpi 560846 BLAKE2B 82a2cb037b817040b6945946f8fb03fdb4fba6e1d547b2580689ff9700feacedba96384a194e78d884122d1466e1d8cd023b31e4470333fee605aa54f2b94a3d SHA512 64c1a7ff903b355e32362e9b760b7384c2233d4fe6a9616de6c17ea13fa33ff0803aa20f0f04e73f70a3cdc224e70fa09f35ac13182c78167b32394d4c015a2c
+DIST firefox-112.0-uz.xpi 481186 BLAKE2B a67111a86e425566c5f99b12caf9f521ec28df54f3c19321553b9767476b27601d19ab24432a43d19753916b2cafd4ecc0cbd83c8b040dd58a6a85b44e5f345c SHA512 52c9b51115c2881fc91fd7e9aa7e09cc2f7efa520e5a01403b23e26d19c71d1a45563b0a39e2b652ed681a428ce02778a89327a96719c74e3a430fcd7b05c395
+DIST firefox-112.0-vi.xpi 606042 BLAKE2B 3c184485d465c57e0904d0b7a1bb8cb424e4ab1f313c125aaafca5103024a0df8436af9cfc68d1efabb3eebed06ca5baa781caef19a0bd52bacca9463e5a91b5 SHA512 5b0edb6ac735335328599b3a9b0c24796eeb2464829325bfc311c90783d1d993bd99e4b83825d45b87f42d373158b1b260af838a32d4556d78a1e2aee5bdc46b
+DIST firefox-112.0-xh.xpi 421625 BLAKE2B 0903cc3932dfc29e474ba105d043f6c583e369890ca6696d0ea2eb503f2ce368a038e4ee75642f9cb06854d266ed80ff37def8b38bf87eb31449ea52c8c8b4f1 SHA512 ee13ed7e6a413ba34818cc40ea9a8806cee6cf4d08d8621f529a6c70918bb4c66aa87f2d951c547a832c184da27e079377ef5630a269a37768a93eb40cea122a
+DIST firefox-112.0-zh-CN.xpi 605650 BLAKE2B 1d6bbc286f03b42259f474f89bdb20a4e77b762876ddfe4e1295d8c760ba9db38059e10e4269a26734bff4518c51cd9486d101b551fd3565d8bf6ad72ba44662 SHA512 f36708227a660e428a2f4a9e74eef73e43eb6ac5964ad7b7e2da57814ef57aeac4218ba16463262f440ece718b4aa6286643580dddb6c4de6d31b7176a28fe87
+DIST firefox-112.0-zh-TW.xpi 607191 BLAKE2B 8c26c2d740e210fddff8a2c4eae20e71da4f5403e5b99e795a6b53ebadd35276c52b40154afbe39ee18c949f444b736857be45f7848921d333ab655c2dfbcc10 SHA512 2a96611526d6fd33f921af2ffba3c491d3521885e51d3d026d3c2f583e71a478383ce0582d2d2f5c1dced236ae4dca5a00be58c2db4cc4f8d105e842b571e3d4
+DIST firefox-112.0.source.tar.xz 497250760 BLAKE2B 6233ee202d000ddd5b0a2eafff09226abf2cf097ea3e1184442ad34e92f6fd408f1891a2063e459d419ba074218596f48c95c860246d4c46d2a4fca3df27a78a SHA512 6b2bc8c0c93f3109da27168fe7e8f734c6ab4efb4ca56ff2d5e3a52659da71173bba2104037a000623833be8338621fca482f39f836e3910fe2996e6d0a68b39
diff --git a/www-client/firefox/files/gentoo-default-prefs.js b/www-client/firefox/files/gentoo-default-prefs.js
index 0407f5d3d234..e0389edac482 100644
--- a/www-client/firefox/files/gentoo-default-prefs.js
+++ b/www-client/firefox/files/gentoo-default-prefs.js
@@ -1,7 +1,6 @@
pref("general.smoothScroll", true);
pref("general.autoScroll", false);
pref("browser.urlbar.hideGoButton", true);
-pref("accessibility.typeaheadfind", true);
pref("browser.shell.checkDefaultBrowser", false);
pref("browser.EULA.override", true);
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
diff --git a/www-client/firefox/firefox-112.0.ebuild b/www-client/firefox/firefox-112.0.ebuild
new file mode 100644
index 000000000000..65972fcd4ab0
--- /dev/null
+++ b/www-client/firefox/firefox-112.0.ebuild
@@ -0,0 +1,1379 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FIREFOX_PATCHSET="firefox-112-patches-01j.tar.xz"
+
+LLVM_MAX_SLOT=15
+
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="manual"
+
+MOZ_ESR=
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing optfeature pax-utils python-any-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,whissi,slashbeast}/mozilla/patchsets/${FIREFOX_PATCHSET}
+)
+
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="https://www.mozilla.com/firefox"
+
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+SLOT="rapid"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack libproxy lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp"
+IUSE+=" wayland wifi +X"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver +gmp-autoupdate screencast"
+
+REQUIRED_USE="|| ( X wayland )
+ debug? ( !system-av1 )
+ pgo? ( lto )
+ wifi? ( dbus )"
+
+FF_ONLY_DEPEND="!www-client/firefox:0
+ !www-client/firefox:esr
+ screencast? ( media-video/pipewire:= )
+ selinux? ( sec-policy/selinux-mozilla )"
+BDEPEND="${PYTHON_DEPS}
+ sys-devel/clang:15
+ sys-devel/llvm:15
+ clang? (
+ || (
+ sys-devel/lld:15
+ sys-devel/mold
+ )
+ virtual/rust:0/llvm-15
+ pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] )
+ )
+ app-alternatives/awk
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.24.3
+ net-libs/nodejs
+ virtual/pkgconfig
+ !clang? ( >=virtual/rust-1.65 )
+ amd64? ( >=dev-lang/nasm-2.14 )
+ x86? ( >=dev-lang/nasm-2.14 )
+ pgo? (
+ X? (
+ sys-devel/gettext
+ x11-base/xorg-server[xvfb]
+ x11-apps/xhost
+ )
+ wayland? (
+ >=gui-libs/wlroots-0.15.1-r1[tinywl]
+ x11-misc/xkeyboard-config
+ )
+ )"
+COMMON_DEPEND="${FF_ONLY_DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi:=
+ >=dev-libs/nss-3.89
+ >=dev-libs/nspr-4.35
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/mesa
+ media-video/ffmpeg
+ sys-libs/zlib
+ virtual/freedesktop-icon-theme
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? (
+ dev-libs/dbus-glib
+ sys-apps/dbus
+ )
+ jack? ( virtual/jack )
+ pulseaudio? (
+ || (
+ media-libs/libpulse
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ libproxy? ( net-libs/libproxy )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( >=media-sound/sndio-1.8.0-r1 )
+ screencast? ( media-video/pipewire:= )
+ system-av1? (
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-gfx/graphite2-1.3.13
+ >=media-libs/harfbuzz-2.8.1:0=
+ )
+ system-icu? ( >=dev-libs/icu-72.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-png? ( >=media-libs/libpng-1.6.35:0=[apng] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wayland? (
+ >=media-libs/libepoxy-1.5.10-r1
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[wayland]
+ )
+ wifi? (
+ kernel_linux? (
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ sys-apps/dbus
+ )
+ )
+ X? (
+ virtual/opengl
+ x11-libs/cairo[X]
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon[X]
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/libxcb:=
+ )"
+RDEPEND="${COMMON_DEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )"
+DEPEND="${COMMON_DEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+
+S="${WORKDIR}/${PN}-${PV%_*}"
+
+# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then
+ MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use clang && tc-ld-is-lld ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
+ einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+MOZ_LANGS=(
+ af ar ast be bg br ca cak cs cy da de dsb
+ el en-CA en-GB en-US es-AR es-ES et eu
+ fi fr fy-NL ga-IE gd gl he hr hsb hu
+ id is it ja ka kab kk ko lt lv ms nb-NO nl nn-NO
+ pa-IN pl pt-BR pt-PT rm ro ru
+ sk sl sq sr sv-SE th tr uk uz vi zh-CN zh-TW
+)
+
+# Firefox-only LANGS
+MOZ_LANGS+=( ach )
+MOZ_LANGS+=( an )
+MOZ_LANGS+=( az )
+MOZ_LANGS+=( bn )
+MOZ_LANGS+=( bs )
+MOZ_LANGS+=( ca-valencia )
+MOZ_LANGS+=( eo )
+MOZ_LANGS+=( es-CL )
+MOZ_LANGS+=( es-MX )
+MOZ_LANGS+=( fa )
+MOZ_LANGS+=( ff )
+MOZ_LANGS+=( fur )
+MOZ_LANGS+=( gn )
+MOZ_LANGS+=( gu-IN )
+MOZ_LANGS+=( hi-IN )
+MOZ_LANGS+=( hy-AM )
+MOZ_LANGS+=( ia )
+MOZ_LANGS+=( km )
+MOZ_LANGS+=( kn )
+MOZ_LANGS+=( lij )
+MOZ_LANGS+=( mk )
+MOZ_LANGS+=( mr )
+MOZ_LANGS+=( my )
+MOZ_LANGS+=( ne-NP )
+MOZ_LANGS+=( oc )
+MOZ_LANGS+=( sc )
+MOZ_LANGS+=( sco )
+MOZ_LANGS+=( si )
+MOZ_LANGS+=( son )
+MOZ_LANGS+=( szl )
+MOZ_LANGS+=( ta )
+MOZ_LANGS+=( te )
+MOZ_LANGS+=( tl )
+MOZ_LANGS+=( trs )
+MOZ_LANGS+=( ur )
+MOZ_LANGS+=( xh )
+
+mozilla_set_globals() {
+ # https://bugs.gentoo.org/587334
+ local MOZ_TOO_REGIONALIZED_FOR_L10N=(
+ fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE
+ )
+
+ local lang xflag
+ for lang in "${MOZ_LANGS[@]}" ; do
+ # en and en_US are handled internally
+ if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then
+ continue
+ fi
+
+ # strip region subtag if $lang is in the list
+ if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
+ xflag=${lang%%-*}
+ else
+ xflag=${lang}
+ fi
+
+ SRC_URI+=" l10n_${xflag/[_@]/-}? ("
+ SRC_URI+=" ${MOZ_SRC_BASE_URI}/linux-x86_64/xpi/${lang}.xpi -> ${MOZ_P_DISTFILES}-${lang}.xpi"
+ SRC_URI+=" )"
+ IUSE+=" l10n_${xflag/[_@]/-}"
+ done
+}
+mozilla_set_globals
+
+moz_clear_vendor_checksums() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -ne 1 ]] ; then
+ die "${FUNCNAME} requires exact one argument"
+ fi
+
+ einfo "Clearing cargo checksums for ${1} ..."
+
+ sed -i \
+ -e 's/\("files":{\)[^}]*/\1/' \
+ "${S}"/third_party/rust/${1}/.cargo-checksum.json \
+ || die
+}
+
+moz_install_xpi() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local DESTDIR=${1}
+ shift
+
+ insinto "${DESTDIR}"
+
+ local emid xpi_file xpi_tmp_dir
+ for xpi_file in "${@}" ; do
+ emid=
+ xpi_tmp_dir=$(mktemp -d --tmpdir="${T}")
+
+ # Unpack XPI
+ unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die
+
+ # Determine extension ID
+ if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then
+ emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf"
+ elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then
+ emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json")
+ [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json"
+ else
+ die "failed to determine extension id"
+ fi
+
+ einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..."
+ newins "${xpi_file}" "${emid}.xpi"
+ done
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+mozconfig_use_with() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_with "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
+# placed here until toolchain-funcs.eclass gets an official support for mold linker.
+# Please see:
+# https://github.com/gentoo/gentoo/pull/28366 ||
+# https://github.com/gentoo/gentoo/pull/28355
+tc-ld-is-mold() {
+ local out
+
+ # Ensure ld output is in English.
+ local -x LC_ALL=C
+
+ # First check the linker directly.
+ out=$($(tc-getLD "$@") --version 2>&1)
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # Then see if they're selecting mold via compiler flags.
+ # Note: We're assuming they're using LDFLAGS to hold the
+ # options and not CFLAGS/CXXFLAGS.
+ local base="${T}/test-tc-linker"
+ cat <<-EOF > "${base}.c"
+ int main() { return 0; }
+ EOF
+ out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
+ rm -f "${base}"*
+ if [[ ${out} == *"mold"* ]] ; then
+ return 0
+ fi
+
+ # No mold here!
+ return 1
+}
+
+virtwl() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument"
+ [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset"
+ tinywl -h >/dev/null || die 'tinywl -h failed'
+
+ # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work
+ addpredict /dev/dri
+ local VIRTWL VIRTWL_PID
+ coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; }
+ local -x WAYLAND_DISPLAY
+ read WAYLAND_DISPLAY <&${VIRTWL[0]}
+
+ debug-print "${FUNCNAME}: $@"
+ "$@"
+
+ [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly"
+ exec {VIRTWL[0]}<&- {VIRTWL[1]}>&-
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has usersandbox $FEATURES ; then
+ die "You must enable usersandbox as X server can not run as root!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6600M"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use pgo ; then
+ if ! has userpriv ${FEATURES} ; then
+ eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!"
+ fi
+ fi
+
+ # Ensure we have enough disk space to compile
+ if use pgo || use lto || use debug ; then
+ CHECKREQS_DISK_BUILD="13500M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Avoid PGO profiling problems due to enviroment leakage
+ # These should *always* be cleaned up anyway
+ unset \
+ DBUS_SESSION_BUS_ADDRESS \
+ DISPLAY \
+ ORBIT_SOCKETDIR \
+ SESSION_MANAGER \
+ XAUTHORITY \
+ XDG_CACHE_HOME \
+ XDG_SESSION_COOKIE
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if use pgo ; then
+ # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure
+ # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage
+ # (PORTAGE_SCHEDULING_POLICY) update...
+ addpredict /proc
+
+ # May need a wider addpredict when using wayland+pgo.
+ addpredict /dev/dri
+
+ # Allow access to GPU during PGO run
+ local ati_cards mesa_cards nvidia_cards render_cards
+ shopt -s nullglob
+
+ ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g')
+ if [[ -n "${ati_cards}" ]] ; then
+ addpredict "${ati_cards}"
+ fi
+
+ mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+ if [[ -n "${mesa_cards}" ]] ; then
+ addpredict "${mesa_cards}"
+ fi
+
+ nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g')
+ if [[ -n "${nvidia_cards}" ]] ; then
+ addpredict "${nvidia_cards}"
+ fi
+
+ render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g')
+ if [[ -n "${render_cards}" ]] ; then
+ addpredict "${render_cards}"
+ fi
+
+ shopt -u nullglob
+ fi
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then
+ MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc"
+ fi
+
+ if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then
+ MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ"
+ fi
+
+ # Mozilla API keys (see https://location.services.mozilla.com/api)
+ # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
+ # get your own set of keys.
+ if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then
+ MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ CONFIG_CHECK="~SECCOMP"
+ WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content."
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ local _lp_dir="${WORKDIR}/language_packs"
+ local _src_file
+
+ if [[ ! -d "${_lp_dir}" ]] ; then
+ mkdir "${_lp_dir}" || die
+ fi
+
+ for _src_file in ${A} ; do
+ if [[ ${_src_file} == *.xpi ]]; then
+ cp "${DISTDIR}/${_src_file}" "${_lp_dir}" || die "Failed to copy '${_src_file}' to '${_lp_dir}'!"
+ else
+ unpack ${_src_file}
+ fi
+ done
+}
+
+src_prepare() {
+ use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
+ ! use ppc64 && rm -v "${WORKDIR}"/firefox-patches/*bmo-1775202-ppc64*.patch
+
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # Make ICU respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ "${S}"/intl/icu_sources_data.py \
+ || die "sed failed to set num_cores"
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \
+ || die "sed failed to set toolchain prefix"
+
+ sed -i \
+ -e 's/ccache_stats = None/return None/' \
+ "${S}"/python/mozbuild/mozbuild/controller/building.py \
+ || die "sed failed to disable ccache stats call"
+
+ einfo "Removing pre-built binaries ..."
+ find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+
+ # Write API keys to disk
+ echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die
+ echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die
+ echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ local have_switched_compiler=
+ if use clang; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # Set MOZILLA_FIVE_HOME
+ export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ # python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-application=browser
+ mozconfig_add_options_ac '' --enable-project=browser
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-gpsd \
+ --disable-install-strip \
+ --disable-parental-controls \
+ --disable-strip \
+ --disable-tests \
+ --disable-updater \
+ --disable-wmf \
+ --enable-negotiateauth \
+ --enable-new-pass-manager \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --enable-system-policies \
+ --host="${CBUILD:-${CHOST}}" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --target="${CHOST}" \
+ --without-ccache \
+ --without-wasm-sandboxed-libraries \
+ --with-intl-api \
+ --with-libclang-path="$(llvm-config --libdir)" \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ # Set update channel
+ local update_channel=release
+ [[ -n ${MOZ_ESR} ]] && update_channel=esr
+ mozconfig_add_options_ac '' --update-channel=${update_channel}
+
+ if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
+ mozconfig_add_options_ac '' --enable-rust-simd
+ fi
+
+ # For future keywording: This is currently (97.0) only supported on:
+ # amd64, arm, arm64 & x86.
+ # Might want to flip the logic around if Firefox is to support more arches.
+ # bug 833001, bug 903411#c8
+ if use ppc64 || use riscv; then
+ mozconfig_add_options_ac '' --disable-sandbox
+ else
+ mozconfig_add_options_ac '' --enable-sandbox
+ fi
+
+ # Enable JIT on riscv64 explicitly
+ # Can be removed once upstream enable it by default in the future.
+ use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit
+
+ if [[ -s "${S}/api-google.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-safebrowsing-api-keyfile="${S}/api-google.key"
+ else
+ einfo "Building without Google API key ..."
+ fi
+
+ if [[ -s "${S}/api-location.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-google-location-service-api-keyfile="${S}/api-location.key"
+ else
+ einfo "Building without Location API key ..."
+ fi
+
+ if [[ -s "${S}/api-mozilla.key" ]] ; then
+ local key_origin="Gentoo default"
+ if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then
+ key_origin="User value"
+ fi
+
+ mozconfig_add_options_ac "${key_origin}" \
+ --with-mozilla-api-keyfile="${S}/api-mozilla.key"
+ else
+ einfo "Building without Mozilla API key ..."
+ fi
+
+ mozconfig_use_with system-av1
+ mozconfig_use_with system-harfbuzz
+ mozconfig_use_with system-harfbuzz system-graphite2
+ mozconfig_use_with system-icu
+ mozconfig_use_with system-jpeg
+ mozconfig_use_with system-libevent
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-png
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+ mozconfig_use_enable libproxy
+
+ use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme
+
+ mozconfig_use_enable geckodriver
+
+ if use hardened ; then
+ mozconfig_add_options_ac "+hardened" --enable-hardening
+ append-ldflags "-Wl,-z,relro -Wl,-z,now"
+ fi
+
+ local myaudiobackends=""
+ use jack && myaudiobackends+="jack,"
+ use sndio && myaudiobackends+="sndio,"
+ use pulseaudio && myaudiobackends+="pulseaudio,"
+ ! use pulseaudio && myaudiobackends+="alsa,"
+
+ mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}"
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use X && use wayland ; then
+ mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland
+ elif ! use X && use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only
+ else
+ mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld or mold when using clang.
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+ fi
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ # ThinLTO is currently broken, see bmo#1644409.
+ # mold does not support gcc+lto combination.
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+
+ if use pgo ; then
+ mozconfig_add_options_ac '+pgo' MOZ_PGO=1
+
+ if use clang ; then
+ # Used in build/pgo/profileserver.py
+ export LLVM_PROFDATA="llvm-profdata"
+ fi
+ fi
+ else
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # lld is upstream's default
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ fi
+
+ else
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold
+ else
+ mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd
+ fi
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ mozconfig_use_enable debug
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing
+
+ if is-flag '-g*' ; then
+ if use clang ; then
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*')
+ else
+ mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols
+ fi
+ else
+ mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols
+ fi
+
+ if is-flag '-O0' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0
+ elif is-flag '-O4' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4
+ elif is-flag '-O3' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3
+ elif is-flag '-O1' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1
+ elif is-flag '-Os' ; then
+ mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os
+ else
+ mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2
+ fi
+ fi
+
+ # Debug flag was handled via configure
+ filter-flags '-g*'
+
+ # Optimization flag was handled via configure
+ filter-flags '-O*'
+
+ # Modifications to better support ARM, bug #553364
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' \
+ --with-thumb=yes \
+ --with-thumb-interwork=no
+ fi
+ fi
+
+ if [[ ${CHOST} == armv*h* ]] ; then
+ mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard
+
+ if ! use system-libvpx ; then
+ sed -i \
+ -e "s|softfp|hard|" \
+ "${S}"/media/libvpx/moz.build \
+ || die
+ fi
+ fi
+
+ if use clang ; then
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822
+ # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64')
+ local disable_elf_hack=
+ if use amd64 ; then
+ disable_elf_hack=yes
+ elif use x86 ; then
+ disable_elf_hack=yes
+ elif use arm ; then
+ disable_elf_hack=yes
+ fi
+
+ if [[ -n ${disable_elf_hack} ]] ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack
+ fi
+ elif tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ if use elibc_musl && use arm64 ; then
+ mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --disable-elf-hack
+ fi
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif use lto ; then
+ append-ldflags -Wl,--no-keep-memory
+ else
+ append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
+ fi
+ ;;
+ esac
+
+ if ! use elibc_glibc ; then
+ mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc
+ fi
+
+ # Allow elfhack to work in combination with unstripped binaries
+ # when they would normally be larger than 2GiB.
+ append-ldflags "-Wl,--compress-debug-sections=zlib"
+
+ # Make revdep-rebuild.sh happy; Also required for musl
+ append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
+
+ # Pass $MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ if use system-python-libs; then
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system"
+ else
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ fi
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}"
+ einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
+ einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}"
+ einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"
+
+ # Handle EXTRA_CONF and show summary
+ local ac opt hash reason
+
+ # Apply EXTRA_ECONF entries to $MOZCONFIG
+ if [[ -n ${EXTRA_ECONF} ]] ; then
+ IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
+ for opt in "${ac[@]}"; do
+ mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--}
+ done
+ fi
+
+ echo
+ echo "=========================================================="
+ echo "Building ${PF} with the following configuration"
+ grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do
+ [[ -z ${hash} || ${hash} == \# ]] \
+ || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
+ printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
+ done
+ echo "=========================================================="
+ echo
+
+ ./mach configure || die
+}
+
+src_compile() {
+ local virtx_cmd=
+
+ if use pgo; then
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+
+ if ! use X; then
+ virtx_cmd=virtwl
+ else
+ virtx_cmd=virtx
+ fi
+ fi
+
+ if ! use X; then
+ local -x GDK_BACKEND=wayland
+ else
+ local -x GDK_BACKEND=x11
+ fi
+
+ ${virtx_cmd} ./mach build --verbose || die
+}
+
+src_install() {
+ # xpcshell is getting called during install
+ pax-mark m \
+ "${BUILD_DIR}"/dist/bin/xpcshell \
+ "${BUILD_DIR}"/dist/bin/${PN} \
+ "${BUILD_DIR}"/dist/bin/plugin-container
+
+ DESTDIR="${D}" ./mach install || die
+
+ # Upstream cannot ship symlink but we can (bmo#658850)
+ rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die
+ dosym ${PN} ${MOZILLA_FIVE_HOME}/${PN}-bin
+
+ # Don't install llvm-symbolizer from sys-devel/llvm package
+ if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then
+ rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die
+ fi
+
+ # Install policy (currently only used to disable application updates)
+ insinto "${MOZILLA_FIVE_HOME}/distribution"
+ newins "${FILESDIR}"/distribution.ini distribution.ini
+ newins "${FILESDIR}"/disable-auto-update.policy.json policies.json
+
+ # Install system-wide preferences
+ local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences"
+ insinto "${PREFS_DIR}"
+ newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js
+
+ local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js"
+
+ # Set dictionary path to use system hunspell
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref"
+ pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell");
+ EOF
+
+ # Force hwaccel prefs if USE=hwaccel is enabled
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+
+ if use wayland; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs"
+ pref("gfx.x11-egl.force-enabled", false);
+ EOF
+ else
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs"
+ pref("gfx.x11-egl.force-enabled", true);
+ EOF
+ fi
+ fi
+
+ if ! use gmp-autoupdate ; then
+ local plugin
+ for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do
+ einfo "Disabling auto-update for ${plugin} plugin ..."
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin"
+ pref("media.${plugin}.autoupdate", false);
+ EOF
+ done
+ fi
+
+ # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it
+ if use system-harfbuzz ; then
+ cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref"
+ sticky_pref("gfx.font_rendering.graphite.enabled", true);
+ EOF
+ fi
+
+ # Install language packs
+ local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') )
+ if [[ -n "${langpacks}" ]] ; then
+ moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}"
+ fi
+
+ # Install geckodriver
+ if use geckodriver ; then
+ einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..."
+ pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver
+ exeinto "${MOZILLA_FIVE_HOME}"
+ doexe "${BUILD_DIR}"/dist/bin/geckodriver
+
+ dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver
+ fi
+
+ # Install icons
+ local icon_srcdir="${S}/browser/branding/official"
+ local icon_symbolic_file="${FILESDIR}/icon/firefox-symbolic.svg"
+
+ insinto /usr/share/icons/hicolor/symbolic/apps
+ newins "${icon_symbolic_file}" ${PN}-symbolic.svg
+
+ local icon size
+ for icon in "${icon_srcdir}"/default*.png ; do
+ size=${icon%.png}
+ size=${size##*/default}
+
+ if [[ ${size} -eq 48 ]] ; then
+ newicon "${icon}" ${PN}.png
+ fi
+
+ newicon -s ${size} "${icon}" ${PN}.png
+ done
+
+ # Install menu
+ local app_name="Mozilla ${MOZ_PN^}"
+ local desktop_file="${FILESDIR}/icon/${PN}-r3.desktop"
+ local desktop_filename="${PN}.desktop"
+ local exec_command="${PN}"
+ local icon="${PN}"
+ local use_wayland="false"
+
+ if use wayland ; then
+ use_wayland="true"
+ fi
+
+ cp "${desktop_file}" "${WORKDIR}/${PN}.desktop-template" || die
+
+ sed -i \
+ -e "s:@NAME@:${app_name}:" \
+ -e "s:@EXEC@:${exec_command}:" \
+ -e "s:@ICON@:${icon}:" \
+ "${WORKDIR}/${PN}.desktop-template" \
+ || die
+
+ newmenu "${WORKDIR}/${PN}.desktop-template" "${desktop_filename}"
+
+ rm "${WORKDIR}/${PN}.desktop-template" || die
+
+ # Install wrapper script
+ [[ -f "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}"
+ newbin "${FILESDIR}/${PN}-r1.sh" ${PN}
+
+ # Update wrapper
+ sed -i \
+ -e "s:@PREFIX@:${EPREFIX}/usr:" \
+ -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \
+ -e "s:@APULSELIB_DIR@:${apulselib}:" \
+ -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \
+ "${ED}/usr/bin/${PN}" \
+ || die
+}
+
+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
+
+ local show_doh_information
+ local show_normandy_information
+ local show_shortcut_information
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ # New install; Tell user that DoH is disabled by default
+ show_doh_information=yes
+ show_normandy_information=yes
+ show_shortcut_information=no
+ else
+ local replacing_version
+ for replacing_version in ${REPLACING_VERSIONS} ; do
+ if ver_test "${replacing_version}" -lt 91.0 ; then
+ # Tell user that we no longer install a shortcut
+ # per supported display protocol
+ show_shortcut_information=yes
+ fi
+ done
+ fi
+
+ if [[ -n "${show_doh_information}" ]] ; then
+ elog
+ elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):"
+ elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all"
+ elog "DNS traffic to Cloudflare by default is not a good idea and applications"
+ elog "should respect OS configured settings), \"network.trr.mode\" was set to 5"
+ elog "(\"Off by choice\") by default."
+ elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences."
+ fi
+
+ # bug 713782
+ if [[ -n "${show_normandy_information}" ]] ; then
+ elog
+ elog "Upstream operates a service named Normandy which allows Mozilla to"
+ elog "push changes for default settings or even install new add-ons remotely."
+ elog "While this can be useful to address problems like 'Armagadd-on 2.0' or"
+ elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security"
+ elog "concerns prevail, which is why we have switched off the use of this"
+ elog "service by default."
+ elog
+ elog "To re-enable this service set"
+ elog
+ elog " app.normandy.enabled=true"
+ elog
+ elog "in about:config."
+ fi
+
+ if [[ -n "${show_shortcut_information}" ]] ; then
+ elog
+ elog "Since ${PN}-91.0 we no longer install multiple shortcuts for"
+ elog "each supported display protocol. Instead we will only install"
+ elog "one generic Mozilla ${PN^} shortcut."
+ elog "If you still want to be able to select between running Mozilla ${PN^}"
+ elog "on X11 or Wayland, you have to re-create these shortcuts on your own."
+ 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
+
+ elog
+ elog "Unfortunately Firefox-100.0 breaks compatibility with some sites using "
+ elog "useragent checks. To temporarily fix this, enter about:config and modify "
+ elog "network.http.useragent.forceVersion preference to \"99\"."
+ elog "Or install an addon to change your useragent."
+ elog "See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100"
+ 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
+}