aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJory Pratt <anarchy@gentoo.org>2021-12-02 10:19:34 -0600
committerSam James <sam@gentoo.org>2021-12-02 16:41:38 +0000
commit3ccd2605ad083ee655578dfc8a631fb912da3cde (patch)
treee01b15892baca5c33c2af0b3477887ea619bc676
parentdev-lang/rust: use dynamic linking for arm64/amd64 musl builds (diff)
downloadmusl-3ccd2605ad083ee655578dfc8a631fb912da3cde.tar.gz
musl-3ccd2605ad083ee655578dfc8a631fb912da3cde.tar.bz2
musl-3ccd2605ad083ee655578dfc8a631fb912da3cde.zip
www-client/firefox: Fix build for amd64/arm64 musl users
Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Jory Pratt <anarchy@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--www-client/firefox/Manifest99
-rw-r--r--www-client/firefox/files/disable-auto-update.policy.json5
-rw-r--r--www-client/firefox/files/distribution.ini42
-rw-r--r--www-client/firefox/files/firefox-r1.sh116
-rw-r--r--www-client/firefox/files/fix-rust-detection.patch31
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js12
-rw-r--r--www-client/firefox/files/gentoo-hwaccel-prefs.js3
-rw-r--r--www-client/firefox/files/icon/firefox-r3.desktop236
-rw-r--r--www-client/firefox/files/icon/firefox-symbolic.svg64
-rw-r--r--www-client/firefox/firefox-91.3.0.ebuild1241
-rw-r--r--www-client/firefox/metadata.xml38
11 files changed, 1887 insertions, 0 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
new file mode 100644
index 00000000..bbe3d783
--- /dev/null
+++ b/www-client/firefox/Manifest
@@ -0,0 +1,99 @@
+DIST firefox-91.3.0esr-ach.xpi 465504 BLAKE2B bba9ecb26423405f8a89c2f736e761e3726b13b430dc697be9e3ef7daa8de476a588fac47f3ec3c8f217744a33d9b62f7c8de919ed851044b97ea05292720912 SHA512 4f645517df27da2c02d59c752e1893ecb289d9213a6d4d0ab6b199c2562c8e16b14ee3a2cbfc70846cfe8e4a6fd4ccdf7e47e2963823b38a8fd2f70eef4c3421
+DIST firefox-91.3.0esr-af.xpi 433476 BLAKE2B 15e53cc1f41e4bc7b139a098d200a4cb2feae696101f9fef473edd5fb3a1e1789d4566d1d2b45c7fd8313a9aba8462c37adc32bf784142310541db7976a85b32 SHA512 0ccf4a8a6862676e84f001b62e76a07deaf0acf17477a1d880ae77d76925dda5e009f61c317475bad7b44908d1dcd2b4d57eb3618116106eb9f843abe988235c
+DIST firefox-91.3.0esr-an.xpi 516389 BLAKE2B 6149b95aa8b23753beaad6da38e808bdf8f2e2003e3b311901613651db53dd09bd99c16a05fce0be9c9927f54ac554bdbd885c0744a672dcb587a0607c1cfca7 SHA512 9539510ac122a856d0949e6ada18d69c59c4f2b57afe3a00bca71def119d34ec7342dcfa78128bb8eaa9bafb1b413404e2667dfc732a97c7f3ab544c97be028f
+DIST firefox-91.3.0esr-ar.xpi 575196 BLAKE2B 8061ac755ab45bd6aa29a15e9e1f005b576ab5338c7283af51bcb38d437f468f466ff5e2e979a21af917f42d6a92be731bd76fd1abb5acdea88e4f7675b05d4c SHA512 13736873b2bf2475885fddd0a806a45c6392df24e19198a74ad8222d1bad37cdf1713aec7db1e0b090fd66d2508a770ee04534f79ec8ac823a93fcf78d2020e2
+DIST firefox-91.3.0esr-ast.xpi 503834 BLAKE2B 78a7bfd02c844dc0e3d2611c395a9a337751707e31f3524d599b7ceeb740a818bdcde991320e9ac7634a840afdae6e4f34ba84aafcc8a4294f692231cfc86bcc SHA512 1d3b56ee24692071ba5377c157e42c7de8e8511cb5c4414b0918c2a16a06be42984d9a3d5aeb2ed99403d45eee1878862b550a922572834e7d71b48d13a54643
+DIST firefox-91.3.0esr-az.xpi 501266 BLAKE2B 7d2396b76b79467cc2702201adf1514ae9ce76aa8a7a2057decc1ab764830fbb77d29e2793f223feba9777b5acfbb3b9fad38c8520e9fd7d83ec8334f54f73ce SHA512 23719ddad4c82ae8cfcf6d7664affe46fc2fabdaa9352152ddba537e1a08ef724c4c5e51209eb3684cfe735cd6b4f0df80e5f0c8717152ee4b97957127103baa
+DIST firefox-91.3.0esr-be.xpi 631737 BLAKE2B 582375c5fc70712de533cc2475f1da53be5162adbafe0c808509dfcc58c21fd9e885e7538803ac41def37898ee3a41591633db9acafb276148eb7d9e3de9b6d5 SHA512 c7b3cb3792fbd45502e14d6f1d4d501f477204e73743bb61997fb778f047be286e4b112ecf65fe41f5dd00f8f48c0408e0fc7cb6a6579774a29a76dbe5d8ddc8
+DIST firefox-91.3.0esr-bg.xpi 585450 BLAKE2B 5a0d2f0dd9219a067bf91ea6b48d8f6c236483d6b08d626c78bfc6886a9b0044a6506be30fda219dee519aaaececefb00f896d4a76ef3d4b277e9993d3ee6a6e SHA512 c1059741da643937c50a5d2be9016cc5ad5260240ef020b38a5f7029e593e67ad0cc0136fe53353b1278faf55f5de91ab004e517c048f89a86db940242197b1d
+DIST firefox-91.3.0esr-bn.xpi 576657 BLAKE2B fd14c81b08a8328634abe5190a978a768550bfa6fd9e899995302c5e870c7ac875ae27a16267e9cab88d51a3703f95aae80061ac572aeaf6f09a8ca32f4d72b5 SHA512 71f2e15c69e3fefdeba61b29a1cbac4a8ee11d2427b898df21da9615ff72566da62e7192662310ccb8345a5afe971aaa4df2f08e5bb0e253112ca6aa02b64611
+DIST firefox-91.3.0esr-br.xpi 535048 BLAKE2B 1e48fbc6d8c1ec1b6e469c910c0ef3c6c4e4bca402c98b7aa249e47be6a94e64c4284b2ba248c475cb8429d751f6e43789fbf667423666dee089c5f05b72b459 SHA512 58dd2fbf4fcd0440448acf1e69569b69beeeb2212f2e585fec85e2da74d9d356af2a3838d98f13ed5bcb6f3aa6d9798a370f9d5ee9d590e76492586654a2d73c
+DIST firefox-91.3.0esr-bs.xpi 473386 BLAKE2B 01acc36f92e495d1cc4aed1521e733375215368a93a0a404de0b02644bccde69c99a01c0b6fcd93a248f94dd2ab696237f45821705ecd72246f8ac69f9051aa3 SHA512 739d6b139f848c56680f033c133098e369b01d7a28f4184f3b6bfdfc417db16c99a49136eeee219a5831e6cabd866253932c7996b1c0a0ea2b46229ff0e52125
+DIST firefox-91.3.0esr-ca-valencia.xpi 543528 BLAKE2B 4009e37882e4b7911d0766a848f6c0d5a60261ba3b4fec54a3cee352e512025d382ba547dacd795e2014ed6571ce2f3500a13ce665ae73fe2bdc50239d38876e SHA512 38233e4bf456e22d5108f8f1d6976bc2dc0ded61452ee61d5592c916344fd7705a5bcd9cc8b1d42472fbfef75e3bf7fe820fa0bf40c102e692d592919a3d86db
+DIST firefox-91.3.0esr-ca.xpi 542008 BLAKE2B 79412ad6a22f88b81e7b4bdff6fb4f0749d441b1f92b58c29143495c84ae3daa2f9d025dcd61e54792f7e6f15edcc505991110c5c08d98d0aa7f4aa4c5025b59 SHA512 bc730ee37a0ba57f9ed000be64b823fe22a97179aeacca9bc0a2b7e70c782fe49bec17a33dacf26308c0d12d0516788de3c5f07185d667dd56270263ebe95cf0
+DIST firefox-91.3.0esr-cak.xpi 568379 BLAKE2B b042574decb02ec495df059dc17540f026c7111c9318f95c0b7c1e54164ec37e235c766add4e69c79960e02d2793c1e0f296b7e09a0bd603963927a877447372 SHA512 42ef318eb9de709fe8ed8f6d844bebd1a81fa7245d3422e6d98441f02858167a4b83105fc4a95df8325c0ad831abfe4793c7b0b84b870dbaabe85613c00a551b
+DIST firefox-91.3.0esr-cs.xpi 572928 BLAKE2B dd95dc8d17ddfd5e019bca2808dd9a1c97ed747405b01384512c048c63738b4a61ac1a44ca141f8a6afa5139274d9eccd29b7391d6493254e7f4ce9b8580ce96 SHA512 83108345a1b0929c2fc147123d86cb84596880549363cfe9c821b209b20d4c5ad034850028b64794c4302364cd163685819a6c2d5753c05014cd23e75b6bd859
+DIST firefox-91.3.0esr-cy.xpi 549207 BLAKE2B 670df1ce98132291e2f8a2a956af0c30f8cab319023191acc13995e31d2a16c8536d54c91781d6a1e4f5f75fab4b399a23f79482f8687352709720882d143ff7 SHA512 c96f65d351331ca01f2ec6398202257280d6c0d1bca554ce677a83500572b5628e6394974b65e1ff11fd65dd2abed2f100091c43392f316e23cf8c2a631f44f6
+DIST firefox-91.3.0esr-da.xpi 540828 BLAKE2B a69ce9ca6e8eb34bcf8e3df380f383eaaaed9f0c4520373ee209f9fd704fb319fb079ba22df2983259885fb7f0831bb2bef91471d0f323d0fae917dc9f330df2 SHA512 c13211f36e19ae03b9b2c80df891720b86fd070c11d257aea87ff6c47abe905caebd2db3e7d8b7d5ee9cd7e7f64cdef12d0cd6e6fd12aff11e34112e7f929f83
+DIST firefox-91.3.0esr-de.xpi 561498 BLAKE2B 1527caf596272a2e532491b3cd1614871a1e312ae05769049c333f33bfe9b66417e22acc796bdaf0cfd21833e49c767254859f86cbfb92fbd5822aa367f8d03b SHA512 f42dd3e8a9365c709ad39e8ca96dfac475c3aa48ef5b554f240b95b9ece27353d7fa640b5321b05a44a7382601367346128a1e00c8f010bdcb4d52f30724b9af
+DIST firefox-91.3.0esr-dsb.xpi 574176 BLAKE2B a40133c5575b6ac80a500d7e4d6c8abb0ae3084cd9b926345b043b66c85320c08f15842fc316110f0d5a413a5688106779211df2b1d55e8fc9fab7250d737297 SHA512 091fb20d42b60c3a73e0b8cada6069b4d168de66751d72a5bd878cb19d8b1e222ede057bfbed72c4a16175bdc9d62dcba20ff60220ab63b562e3565b862c553c
+DIST firefox-91.3.0esr-el.xpi 647258 BLAKE2B 585223a672140f88e63f39b26669dcf5d738ce03975838425698dc78d16464302c6b3f7eed76476e343cd9d86f89ae2928d2b664c71c1411f1fac750a351b266 SHA512 d76784d0fbe38cd0e438bc9ca86f218afdb8264d3850fba72909c69158624cc5d98018c9588adca3f44a1593191835d4eae8716721a33d114964e55b3efddbf1
+DIST firefox-91.3.0esr-en-CA.xpi 516472 BLAKE2B 2248530d7b3226fe9c9ab2c32769cc9419f1eec81696961469bee9bebefe44e45ea6b1b6f063f657fc0f7062e738d78fdffe3775e08fbdda0a7f44f28fc44c16 SHA512 e720fc864b9f2a6a1e00383fa3e84ad7bc9d6a7cb1104e172bca6acf89c829e5cbf638be3acb47d2eee2d029fe49349b1cf6fcececd8c2b8a51a344b91135b5e
+DIST firefox-91.3.0esr-en-GB.xpi 517069 BLAKE2B d7cac13741d46b7c39f5b812406aae16caa3f6a3f2e67b7d52a85fa84f144e04a913cb2cbf9efbaf2fca3809391aae94bad79b00658a210e45d671b5593a923f SHA512 4aa91264a254076404d066779badbe57fa9128f74c410308a3c637a4d684544b14110a8ba402ef5c8849f679e83bb92438cda470107ba1f00fdbc875299498c0
+DIST firefox-91.3.0esr-eo.xpi 542949 BLAKE2B 24f79414c1b4519d288fba4015e3242ed0f758d067c91bb38ee23178637745e03f622fb640f9edce0d9e3c31c59840f7d4d333ce678bdfa51e62caeb6bf438f0 SHA512 3c9119b00b56ed0ce80c5dc96a56aa852715c2512ef779dcaea192efdb348e05e2478f9681681b456038591295be059e86f51517e536aca38a65b8c17efd1523
+DIST firefox-91.3.0esr-es-AR.xpi 554544 BLAKE2B 3e00c260c9d7cb2dd51c7676ae3251ee280bb68068b7b4fedba83194e021d6bd6934c6302d5393b32fe510f6bcdd92790b467b1476a21f27469e8798c02ff9b2 SHA512 4d1b5ed49025cdeb3c9187c54aa8cad3517bf9e2fbad6ea9e279a1603a81e582837abf87990a6e8621a18bfa13f3d70ca2c1903a3b46fdb5060bd4d0529a3067
+DIST firefox-91.3.0esr-es-CL.xpi 553849 BLAKE2B bdb3803e846117dacb8e0eec2e2ee19e409b2186c39d9eff242edb7ad5ddff15249ab8bbbf75876e7f3d18f108e6d0bc2d5573a0cb3e5fc740777fccc7f4bc99 SHA512 7628ae3ffd00a980bb74690180fbda6d0de3c4c664c404e93d3c61796b0351e71a22195d36a41bb9a2de182d192a0fa5c6692914bf3f85c50e30dbc052895ae5
+DIST firefox-91.3.0esr-es-ES.xpi 542847 BLAKE2B 915a85467ed5b7778df38436325c0cf6faf1d4ec208a8327c08d87788b6fd0f2fe12c9d6554c48e891c92ab33ddc0816b1f7527bab3786b46171ceae07bd93c5 SHA512 5f6e62752e9373445352ab1c52dc71f03c4cb97cbc0dcc246063ced993465b518c5cc30e6d66eaa4249f46078df7b86540100213c6d90497840c224d63133ee1
+DIST firefox-91.3.0esr-es-MX.xpi 556754 BLAKE2B fd611f581571eb90c5c8be76a5be36d2a9208bc9af5b50dca2a1f5248e47f0b3b31fed7ff8df83c97bcfeb1a0906dd90f7c8bdfb09ec5bcc3f9161c0a8756d22 SHA512 5e6cb4e59f083d34cfc035967e349a2e25f24a443499dfdb06da3f059df3c22a52eb5fe996eafeb2f374e04f130c18e18848aee9188a76a230f9c74d30f99b14
+DIST firefox-91.3.0esr-et.xpi 494584 BLAKE2B b00cc101d67003d8cfff27194224fef4a05f7dd3d9bb6ec5adb8fbecd846ae13abf86641deac6b7471a4b9251e4a8519a05c4c2b07e0ae1861879e082306feba SHA512 38e2c8bd90000122f7437f1a282e6d62dcd48ae6aa209016f3ddaf42c0cfeeb914cc41a0b3231e8b8bbce23139d5664d971e2c27fb5c7f68d74df62c482e1aeb
+DIST firefox-91.3.0esr-eu.xpi 539373 BLAKE2B cd47d852c57f93bf415f047639094c4d5193c81b69c65d743eac9c17510a6e64907fb753cba55f6e75ae4b748b8fdeaa77d9c9262ef91a3dcc218c3061a0a334 SHA512 ef6d06fd530c38d5ea224db08c849c4583d6901a528e918e9bea3162cb4a73fc3839dc45592c1a56efe3808f7d1938d02399859251edb17354db575980a3b360
+DIST firefox-91.3.0esr-fa.xpi 570986 BLAKE2B c98f1b4aacf241d4e479fa2e8826511d5e1b97b92c8b148bb518abbe50c0cfb44d44bad89c2717fdb13ef2e84a6fedbc6dd6216d60ccbc204255852a3702c967 SHA512 6411e81d81f394c89be6f2df9dfcd9185c3c2b00f5bf9f163281e9d5db1e51a79009c5b753c0d739eec94f07fee0b82c91c2974b0f6e7182ae0baadcda1e27f8
+DIST firefox-91.3.0esr-ff.xpi 486054 BLAKE2B 45fa8a6fa3f3c257c122b5d09b982efe57282ead478e5cb74728ef10c1e0339d67f033c23daf3d20fb851f25bf64265720c1b4f6ae67bc787e19f4be212ce5bb SHA512 ae8f4bce9833b73afdbb71116f24ff1895fd3d5f077b165314743bf0156d2eb697f1a26972272499bb70447336c376c6b1a4e8af9f19f347df1d999af12ecb03
+DIST firefox-91.3.0esr-fi.xpi 540701 BLAKE2B c39cce82a73c14a1a5adbd2d1e2a489f9ce383874db569498afd956e61e3d1e9ba84f98928b73b31dd85147642f098dd8633325a5f2f7a1c6c6227f82fbb36dc SHA512 6ddff885638217fe6935bd8e63cf9efef0d675bd50b368e22906b360965684033e98f73f66ed152db3af6439d4626b7aaa1a765ee2a49721163986f7cbc904c3
+DIST firefox-91.3.0esr-fr.xpi 565634 BLAKE2B 81c5125436f1e29373cf2a93927faa2c7f8cb4d04302e358889966ee98c4fb11748e3755ca04b4709686a3444a664cf8d7f38aba70c734fdbcdab7c78940586b SHA512 88d259d80760cac53f9fa6162843d39d46020dc52dc27bd63b72c80b20876a0a255a42686f67e21f526f79300e4258275ab3b7490fd936f386908fe432047972
+DIST firefox-91.3.0esr-fy-NL.xpi 549525 BLAKE2B 45bde4730b56bce4119943ea3a62d8f298a38e0b9abf5f8be76f5a9f81b71dc1fc15fb997cf996926bdccd38b106ef267583e7ee4c7fd3f186fc7dcad003f896 SHA512 d6a6801e25d5ed19f2c14b7d5914a5057d2c8099d01874b703357206a3b41c888a7e190fbdb36f6c2facb8fec7cd44e3cafdd45187712e80d28d7113f570b563
+DIST firefox-91.3.0esr-ga-IE.xpi 471091 BLAKE2B e72490b6d6a66b42acbe60027b78fa49900a8dd5197f94e839e49cc75c94408c5287bbaabf3fc29a2402849e3c4f6500298754e9b11a1dd5cebc8e2b253705e5 SHA512 d515fe37ea675e18f853b762d0723f1e96d2a2ad2fbc8a367b791533a6879625d4f6d1b664a4f8d80432306127c6058a7120d6ff674bbc7e5c52269267d3d27a
+DIST firefox-91.3.0esr-gd.xpi 545671 BLAKE2B 99ef84187f3af2b5a1f93ab20b54df7ab9827d352dbe85d6f720cecda0d1e4fb2c0b433e68fce6e7c83f05bc1c3d3b308fde9b1440cb181698386488d2824b30 SHA512 77b88c58e129e76944c74dfd000d1ccf01980ce04829693f94949dda709c4b11cd01d6ab6517521d36f95fd049a8e08c943da4fbdf598d638511b4b640207b66
+DIST firefox-91.3.0esr-gl.xpi 548590 BLAKE2B b41ddc999b13fd51d6333c7e2d19759602420b92099c0180b672ec750ffe1b7741df3c41cba7529333986e498f5b951f24768ba9df83b2d78d5fa220cf4d5c7f SHA512 e0ab44d7fcb4baa364a6f74aae02ed1de97c32c9b738ad7a0bb7ea16925ed7e808485bfc2a8aff98db5ce965420a0af09080f3f0976989c40e591ef94de81019
+DIST firefox-91.3.0esr-gn.xpi 566594 BLAKE2B 4465cdf59dc74823ba58c8c947e63e3ea863b75e04e3bbe19fefcbf6dbccaf390dc5ffc8f55328bc4f0e6daa575377a3d26a7d78bc65254e6853bae7a35a7d60 SHA512 f3d4d2cde4a4120d1c5ef323e5b2d8ce0109c0d2be32cc56bd3068dab10bdd762a1728e9c8014204658a5af21f763c0d6bc96ab11d9d6f1265bce3de3f648f6b
+DIST firefox-91.3.0esr-gu-IN.xpi 544926 BLAKE2B 04eba9c891297d1545bdf7f466ab366bfe41f89db178f9315fd161d14569cd836005b2730c8e2fc73a0cac873b3c3d71373fff00d14a26d1fdcf5e12052b27a4 SHA512 d21da8323368b989cc0a5b372e86fd3a7df52d0b29fe5448d0a10d2d43ea7bbc5d6ce137a1974d3f19040416510a7a9b75f264429cb6e56e4a072bac471491f4
+DIST firefox-91.3.0esr-he.xpi 563925 BLAKE2B 47409cab870b7976a51a6f128dc7ce1a323f0c9ed4a8c0dc00632087dd06ced8b7dd2ea22e7393ad2eb12f4b1e9eb61f6cd3c404dd57be3ed2327736cdb94fe1 SHA512 af138a527cf815ba6e9b9dea93a5ec1d6348a3eedbb6dca15fa3b4672bcd122b64785746d5823f661c631773af74f4a12ef8d2c98dbcf7e81988bc74db0df1e0
+DIST firefox-91.3.0esr-hi-IN.xpi 575956 BLAKE2B fc7f15f06b7d16e66b73ea6aae0e87bee13ab280d4a8298b45b270555c70bc661267dd587d1424f50b07d535bb6fa24ff67423c8913bd2a17ce1a459bd3abecd SHA512 04563b192bb50d580dae0d8ebf576328e785f3bf971f54e4abb3ed52f1edcfe7154283396daea15af72cea075426013acb4eeb13eada1c06afc69f7bf16d21ce
+DIST firefox-91.3.0esr-hr.xpi 544690 BLAKE2B efebd168624b686678e5cea3122b4eed6993b1b001ae807e677c71fa6b354dc86d69b5dd52bc462a359ca256053c117afb609ce58a7090a9216937f70771cdf1 SHA512 03a10939a2949ae3a4ce0fd637f892bfa163adc172121c45ce85a68e49055b7f84117d8dfabe974f5e114fb31e0d63a50cf6116c23e2cd131c583c01f78beda8
+DIST firefox-91.3.0esr-hsb.xpi 570287 BLAKE2B 801e6dd924e9987bbfbcf61dbfec8fd026ada2e0a8f439165a93b15783a749cbe911cab7746cdf7c62e255918399f988e8febcba383a0b25e4f3fa2e65d0729b SHA512 2717cb31d6bdca52098b14e8cb640f437ca2d8084968283639f8cf08d8d1ae9887891d4276d8619da2d01a03ee5be8d4212b1b0691b53e1e9a08a462ea4e3790
+DIST firefox-91.3.0esr-hu.xpi 574172 BLAKE2B 829fe11f64d78da1972d3405e636bfae83456a797414aa992422cb455e17ef9cfbcc608212b99e312b6509786dcf60b941517721ad5029f60e903fd9b126d1c2 SHA512 5dd972b42c1f58601bdfa2bba3e9ea8d2358624428754994ac61fa7b31dce0e0a76b320fe36324950a31bc5d9770e52acf627d7dcf7771af6b4b820df8c11f95
+DIST firefox-91.3.0esr-hy-AM.xpi 599321 BLAKE2B 02f3a479176e71f9c225bdb4448c9e4da1cf111b854bf0342617a08906429a101bbef29cc24717ebd71549feaff378e22d526318f58a67bad4026e8b6484edb3 SHA512 1e986afb36a0f28d44735700192727645ad8116a77d06cefb79883e7e223c8cff5f8721bf218dbee05e078cd355ac6683a143a7c717456fd96c91411b5401cbd
+DIST firefox-91.3.0esr-ia.xpi 539816 BLAKE2B af6e24bdb46fb7ef6fa4806c4a191f90e2431fbbe377c5d1ee0fefb33d71005f1a79b24b201df34d1bef9a233103cb42162643274f7ce77bca149a27c34b2434 SHA512 7478a1c90d05b800dbc8cbdf286c1b55e6377511e7a479fdd64bc02d5d8c4ba256aee30a84626a3ddd3ea81a795eed826f85246a1cbe2272523578bbf913d896
+DIST firefox-91.3.0esr-id.xpi 534169 BLAKE2B 1efcfd47aaac2a053a3bf5bb86b1dded26ebe572dfd1e3a8ad431aeb0191b1adf09cd1908d87696eee7c35404b20cac3c5159b3b61abc346595bc678945f786f SHA512 e9df4affb1fae3fcaae299a8953fbfa0c703123bbd75519d1c20668e64d7cc0e50705379871a1587aa0a8ac274e3fd37118bf36adabee75e0b884e04aa151131
+DIST firefox-91.3.0esr-is.xpi 481673 BLAKE2B 490f43b879857ab81daed8996389910547cde64eb97a60e69d138b19a971a5a85079f299eeaf6d423ccc3dc483d5a888e20404cda2d7f5863b8027a69a88b613 SHA512 70f3245bcc3302c59471c3e781ad07ff076e56ae24affe06280bbe817ae0255a816aef85d958b3ff873e9f52954186460f102d5172271d78609790da6ae15e63
+DIST firefox-91.3.0esr-it.xpi 467592 BLAKE2B 58faaca1155250686f459623d2dc16748575795bc589edd2487df734802dba00755bd9dd191f91dab97461746a04c160730fae6956e8004445243e712a5f48b6 SHA512 7d5b1ef7677d735267d81d9923212ce89e44fa39511a0cc8ce947c59517e5acf43ea498d23fdfe52625390a031a7eb347a2aa625ab46de97d17c6203192d7e51
+DIST firefox-91.3.0esr-ja.xpi 599763 BLAKE2B 51cdfeb9f96f2555c5abe129a1685494fd845a75a2924a602a4f29346cccda2214107bd7cebd1f3e13b39af3c088321c556e00b3b1cc25237397cbc82989f0cd SHA512 dc124952e98ac7aa56dde4621737d5ed10faa520508de67de940ff45488582bddd920017700c8879c6147542e493457cafed536cb7f3feeb1e2e05cab186a7ef
+DIST firefox-91.3.0esr-ka.xpi 601252 BLAKE2B 84a8430f902b8bcc919459d26f7bc1f5b669dcf8791b6d966bca09fb35fbfa9be29368e24a64b16c89052386c14ebf3a7441efdd7447b535fbfd0ee8ca8da004 SHA512 06338fb80b444589c4e01630b015b79d0fb1589b19e067d54e03aad81245561aa9659ed9ea1b5fe016fef74a93c315ab199d13c3379386fb73958a429ca2b043
+DIST firefox-91.3.0esr-kab.xpi 558644 BLAKE2B 652537fce44914933ac544ca261315bdf7f6897c7fe56ea985bf5c4abd8df868aec5ed4a2e77f5c61586d3881374909ed43196a3d00f6f3b809a259b582e8112 SHA512 413d0c4937beb8348e034d133e10d13e47d5bc2dc72b901d7a2e8d74364735465b90187cd23d455f78db30f48c94f531851c8e9e8a026ba6e61e3d18c19170bc
+DIST firefox-91.3.0esr-kk.xpi 615023 BLAKE2B c261060b04c2f815e57b0334e6a39c8d230fe04f80759e790857505d3cc21956c886de892c9c73136d53b3ff5d7ae02b7892d5a333c021cdf8dae1bd01fd31c2 SHA512 fdd4430f4eb6c1a4bc3ffc0bd91732286b7656637eb1b88b2fe8da99dc450b10971ae46caa08bc864048f801bf715c3a8be9d65f7b99f34b1e68a80cae0657e1
+DIST firefox-91.3.0esr-km.xpi 545289 BLAKE2B dec98240d0a2077b4b8171260cbabf8be624dddc114e37c886211a98b7d15b0af09865f0d1a7641217f62bd0d3addb0ef35d410f3eb136e2da87b6b05655908e SHA512 48ad4e4eca64f38830867475bd6eab317f086530f1baa9e4be8212913876cb57b29b715689d2a6dd2706c0fab73fd82f5ff0d09a788a2c67f351cb89b834eb2f
+DIST firefox-91.3.0esr-kn.xpi 508936 BLAKE2B d00c95eff39a028ee5462505133f1dd691115b7879c6d32db0f4cb998b33ffe0cb0dfe095af6bd0b721156acccf8ac68ff72d6cc3915e414c710ee66d1810126 SHA512 17491cf459f0a71e2b14b05ca36472854a9b379605c034f69ea868e751e6ccabad779384c5c3b755ed13f6b672957788334cbac7e8c4bcbeb585085f7638e48b
+DIST firefox-91.3.0esr-ko.xpi 585482 BLAKE2B 715cb964601375bd2676a456b01b20c5e0cc7aba9bffb94a455fff9e3a07413c2c7ff47e88706b7f100fe33ff15437a1e0274575b061d00b254208a3a5b7fbe6 SHA512 9921b4b07cb25d799130f9cbe469025dad111dc774399c86dce39e84541030f46ba3f3c25ea7ddde072e4796902856741ebe97acaf85acacc22a18eb9cc2add4
+DIST firefox-91.3.0esr-lij.xpi 482099 BLAKE2B 0526982b5cefcbd5d1d3772504315672f66744d4cc99c4b3afe9d338cad436b06f58a5197754ca87a68832859cb8e4e41947db5c4197efa08b263d1db664c860 SHA512 9c445535c6de513c7911b273f4ef3849ea5e87e58e81b10e07f6c041d255af95578f7f09100fccec92488a47e1039d2ad4f10b05834e61829524c2d64fa2e647
+DIST firefox-91.3.0esr-lt.xpi 567966 BLAKE2B 7df84a326c101085dc0169bb259de3df4cb1855d361dda6ba794556def3821f49a8f77a0bc8339c2c84a077f04c38c38ad24dec1fd6b472a25bc90401587242b SHA512 c1f1c5a29a915815bc16dda84e38b1f325361f1e859df5bc746a49196cbb6b30094f9a57a6a2f5b6eb6ca4568c8d94ca51456af601eb45181e17aa5d0df42951
+DIST firefox-91.3.0esr-lv.xpi 473686 BLAKE2B 44f92e2d9f24b5737237b09c280fd4543dd161ce8ef5832eabeb1e68bc1f3df564cec96e73fb30e4a7febfd9a5556c134f8927b965793b7eccce4d0464e59dfa SHA512 336efcb898c957412bdb4daaedae7988e35a03e32ea489e15e1060bbbce21c26d486c52626313245e03de41d19bcf35063dcf367bb490a40171322e7ebed597b
+DIST firefox-91.3.0esr-mk.xpi 473756 BLAKE2B c161f1103edbf0a62d4d8abc3ceb5145382761110157dd8e8c7b894dea1c11cda876df0f3e74fd2ba022e9627991f62c65df6e27d022f6b92d13bd83b662b1af SHA512 ee4c6a00c2af8b53267e560ed57665996d0668a2dec42eb960dcff5d474557738485f31796c014d3d613a624e805adcf29a94c38290c0ec62150db07cafe09fa
+DIST firefox-91.3.0esr-mr.xpi 547134 BLAKE2B d61d0ab6787f5c51039df91313950dcae2d3d0bc6364171e4f361f13b62fe483a0c3aad4ac3bdfe23b9dc764affc95f51592140a98b03f8084d318c0e77d6656 SHA512 130998d5d61d892cb60aa375d8164cd562b328145b110ee5b637ff7e642fbc644825fe7e45f5c11bbb198a51d034ae63143c8a968a9747f0dc7bcb4778f81053
+DIST firefox-91.3.0esr-ms.xpi 457537 BLAKE2B 7dc872a84e97b0ca1b93891f6c372146129926906171f9923b2d3fbebfc29b01448ac213af699a86f20bc8249f8871cee3d5135868a27a582c771bc6abaed035 SHA512 1688eca7a9a82c13ff3e8d539097ac5342b3399fc5c057f39cbae2377a3dadc641240ba2814745a47936abf0f4527e5da21d7cf2ea26939029a448318d7f812b
+DIST firefox-91.3.0esr-my.xpi 530545 BLAKE2B 7df234a0b9759c44aedb8b04e66a5a9b60b0e611111bf3c078a7f22100592b2b1d04890b500846dddf1f77a2f4931d9059e42c649c92920c1cd57ddfc7162af5 SHA512 5e6e9a4649fd5008024ac45ef8161d6115446aca480a018599b154f0cc806ea737e515769fc28065b6bd48824e4dc88a88468946b9c6bb49ee6a405979ec834e
+DIST firefox-91.3.0esr-nb-NO.xpi 536416 BLAKE2B d0001f96738bcd509fd71a093308ee7091e604acc7544d0ca57f7dfd25f21445b338f53e77f334b4186c4f9b545e5a00e0e97adc3c748ad8ad99bd24c0d22954 SHA512 1bccd54f8c0f0481535ad276da2ac52231f2ad425e8fced16b8e17010a30142162f266d089c9fc2a57e4b1c8e056a2babc970d56c4e4f64952f6b4b36e7f066c
+DIST firefox-91.3.0esr-ne-NP.xpi 486609 BLAKE2B ffcb6c7af30e0b9c87985956668b2b1679d9befa51eeae7d7eb4b90ff9dec5ee10395f290a9da3dd3e54e171bdc8b1bc2c9afabf8e13d212471094e9e033a558 SHA512 06296bd9d8eab79b19c3bf636a04354fd96d4c2fe1903343c48f290aa9bf43fd8b2d175e37e6ee6a9a6ace1d60b7494a33187a94e70d884541af3a08b26c7567
+DIST firefox-91.3.0esr-nl.xpi 544349 BLAKE2B 95be5d0652cd9af9a263f800f08e0d1da7b7f20b88f18fb6249b397d37e2989de07723bdbeddf6beea79a513cc3a9fe35664e7868d3a42ea08ecc1839f7f8d38 SHA512 3c608305a915693abe99a99d03d0bcd96ec5a580f9545e061f1e9c2438c79506445310f216c65b4d62f0cb507467fd5e9f06e128eccd10270b2a9a172b40b6e4
+DIST firefox-91.3.0esr-nn-NO.xpi 539202 BLAKE2B 4dc36634d372292efc74d82a0b28edb1c35ed52107048c3ce9153950254cdc18c82f5b7e6ca2c463232d3a7b3cb1a2752b710a6f4dfdd8169232bea34ed23f0b SHA512 e4bb708b1eab90c28deca352898956908bd0fddb5c9f5f3718156b53f6498a3d3608b6e614f7f09f11ac2a7d86e4da483ef431cba23c51381799377900d04436
+DIST firefox-91.3.0esr-oc.xpi 560173 BLAKE2B b89c674524e093378442092444491724faaaf388f47ea99ad5e02c15b8aea32256f517c83acbea59a04cd1832eea26fe2db7a0c2861b4643bc65be858835ceaa SHA512 fd30f7884ffc3c5d202ebc033762d8cdc03118eedfec888f2c399d182707ff8600e4189776f9815e5782478859656c1adc2c8b080e914c01928343dd70fb8ab4
+DIST firefox-91.3.0esr-pa-IN.xpi 605327 BLAKE2B b877537f8cb8b381be25358bb18dbc8b89df4d00765af9c26e9fcb4aa4051cc95c5cf281f0a1ddeba8ec8fbc6f646bd7ace0d9cbd1e49c1f694e942dd186aa08 SHA512 6b6d5cda222b073a8e3dbc61b68f4460661f21686d03d81a30b59430ff41b32a3190d14f5b011e5b251edbf881d42d673c4adf32d7f75205772fee2a2f2f68d7
+DIST firefox-91.3.0esr-pl.xpi 564260 BLAKE2B 3a6de18dc86f1232579b72d45d17daf60ce75b014495d0412fe39df6bcc83a420a527a3c9ba7af5c105b2ed1f33ba1de8a8f4fe9e20a07eb0f1fbc776cf887b9 SHA512 6be4b84817d4406b74d339050ab2fc73e7213bacc54e111a01edf9e79839d4513f5b8e5e8d2bab33af9914905a56b56fd5e4be9545f2a51ccaa256a8ba2ad5ff
+DIST firefox-91.3.0esr-pt-BR.xpi 550106 BLAKE2B feccbe76d93838c309dea0284c2d3767e4c224a44a9fdfd009f47260b32db25327435e7ee437dc269baf0ab1fbffc594178414679cae152d2d68fd925bd4371e SHA512 660d7d293fec0d434dd5184176e41a4d8096b2d245206741c3a997674e6ad55c0c1ec604683e9419d5627dc3932c624ccd160eeb535a097d419b0d9d23d4d599
+DIST firefox-91.3.0esr-pt-PT.xpi 553474 BLAKE2B 138281c56c435734cdfb59ee50c19958aaba73f53abc32ad565bbae0b2eec42cb697d48f742b979019a7995b39fb07f6b531de9f682e97503c89013967966f93 SHA512 6855854c6a7cd009e7a5f17833cb09a1c85e2a56a333e662252d15ab0eac38b20ac61822bcb23ac389ac6967497211e20bffd22047ea15241bfe98b9d3cce111
+DIST firefox-91.3.0esr-rm.xpi 544478 BLAKE2B 7df044279ac4de819ababa59600420ae2eb8d8d8dd76fb9f76a01e82436d4d592e2010149bd7d89f1ebbe21616577af2dff799f6afac5aa86050281d54465b22 SHA512 bb8dd03ce00c41c6986e6b21d16f1df40ba31b21b6aa42366745c0cc616ca7fc1a9780f11e588796e5a1c4cbdb05984f933caaacbc274182fd3a88000821d66f
+DIST firefox-91.3.0esr-ro.xpi 545828 BLAKE2B a24d75cd7336f3b3387322425930fae6443d748f3dc32f4fb45c772f60e3961fad98bfd53418559a3ac32a799bd1480c85660cf99a16d19853fcda0cb85f2811 SHA512 831957527688f21c45ffcbb5993d11a7ace7d60ef3383850c5c03811e876ac4bb768766b3f5d132210656ee19acb3748bb5216ba105bc61682b7a7efed9153e9
+DIST firefox-91.3.0esr-ru.xpi 636051 BLAKE2B 266ac362c40d49f8077fd96ba8f95b9825426dae681ae7975f644c8f06a1f7fc676daca67a972e96313a867f4f2a9d89164dacdeb76dd63e4e75fda469367ee7 SHA512 51c47c04d9ee5890ff3a9656a964f96ee1eadb81dc88e2fd38fccdc9e052ea560c74d95a5778999906a508c8e3bf6fd748d5fece40ccab507c08262c14bacf3e
+DIST firefox-91.3.0esr-sco.xpi 513233 BLAKE2B 33fc884e104d8e2044dffbe60f765aaf443555b498b2527cf7ea22d54572117fe94e478151d5201927fc3a24e1c370d6a171c4c05093bafe6c6ba4fa4848389f SHA512 8b6108c41f45eeb1bb357bd1003c96c7e93248b9cbe10e8fac1efd28052128d08952c061fea66d8374ed01b90945a6c7b317eac8ced9fd03781d2850b7d366ee
+DIST firefox-91.3.0esr-si.xpi 497218 BLAKE2B 2729a8ff6ee4687c7c7cd9a917c20d01dc49f8ba5ac12c4abed541104c8f505814db86b6f3542be1add8ddf170996e8dfdc1b4fdce7fc011b56767124fbc12c4 SHA512 42ba20d16c92b49f5c165715b67ad9d3d686c08238040def58ecf2874b3b5e3ef26c4c3d2afc248c4ae658922c0b5c0bf75b9f097850cf56d6d7e5b26209d76c
+DIST firefox-91.3.0esr-sk.xpi 573547 BLAKE2B f14711ddef612ea1dffbdabea0f545928f2c3cff5cc6a5fa8a325495e619a8bd49f1dc10cb980b95f8d5394eab6052f660a39ed52e59a9f24a920ba80073fe92 SHA512 bd096c518c13914457abd0720eeb5c48202ba9efedde512325ac9004d778034694c0ed6543f893639588aaecff2caa93dfdedc228be744f54a873f9d92fd77b6
+DIST firefox-91.3.0esr-sl.xpi 543046 BLAKE2B f9c44c70835f8fa7c9355c0ba8cc49a79e126569bcfa3d6d794cafe3efe6d804d8bdac9d2efdbd88b38f4b01140aaeb43ab434de985475daf387dc86f0ed3a0e SHA512 6f3561bbe6a2e8a4862fde0e65ba735086b181f30ae61386a391460d844e2b88b73c969d4ad963efca7f2cc96e1fc42d9adaf2de13490dec445f9af538975b72
+DIST firefox-91.3.0esr-son.xpi 433071 BLAKE2B deef2d272dd6df94fbe37cb76f00e4c657c2df7d96e6477972819f92f22750c77ebf9525974106156650cf2dd90914a2009a0c5c3368959e02af050d4537880b SHA512 97dd89f0e188f8227b88982b203ce627a39ed844377337c9959a51aa72a10166811b50cd58e2bd9b7692d39a6000e3d95f6139b017f92e9c6044f74874aba50d
+DIST firefox-91.3.0esr-sq.xpi 562512 BLAKE2B f1feb2531d4670cdc6011deec368e906f71dcfcab56bf7662a5802beeef1d5b8b5e7ef82d765a4baf6b37e54a245fd6fbb41bc57e2dea18939cf0d2b1bed1273 SHA512 0bf7b349b13e86d5e08741fd12df0f0894f1da560830c381b16f50925ad3c67ecea448c115cc7338915e77415b706b6b52001af48561a1403b6274612a5a4c36
+DIST firefox-91.3.0esr-sr.xpi 601681 BLAKE2B 0eb9dbe2de8b9e23cb44ac07a2073a2f7de350c0ce26e5ce7d36efabb906e5fe063f5a63ba91cd32a9176788e74c6c5c26aa90280ef6b4f71872f095453c4b18 SHA512 37a9c7171560b39834617c1444b84a6e748aee3b503a6def9c3d53ef659eb0bda32ca560b71c7eb822f18934feb55e208e9c77397dbbc9d330b8dce77caff31d
+DIST firefox-91.3.0esr-sv-SE.xpi 547621 BLAKE2B 08bd3b771cf6eeeb153d95e7d23665b1f0edbb16fd5430a4aeba3198609eaf2534e8ad4d93cb5e9da030eabfcb0688268392cefbc62b10df5202e0f5f83ce2f2 SHA512 d93d452135010f1cfc2d18f1f25f15977ad1a9fe08fe5a1efc6ce5a3f3518b5148f47022fbe004aef40ae0269beab20d39a6bfcff4eb33456e7c3ad6b3c07548
+DIST firefox-91.3.0esr-szl.xpi 522616 BLAKE2B a6844fbd36a56840c2ae480ec830ecc8a963805c7c135b05f6099df59d10bfbca4074421d4d41f4cd2a90b942e70ffec6dc0d0eafe9f110d5feffdddc09494c1 SHA512 8aa238e140e1e9c9a64103b61fc3497dfc17c97b13a0878d4dc573deaa70c80681726c9d26a92b0cdafadeaa34242bf3a72b4a7502aefe4ed6886ff23341b4e9
+DIST firefox-91.3.0esr-ta.xpi 525427 BLAKE2B a87bfb00781a1de250b00a5006d5a500a5e84e540bda38609bde9a596cfcb70d798295ca4b28153dbeae93af63dfa0631365991d89a5489ea9f2405f71cc893b SHA512 97070e3d1eeab0ac44cc6bdaf3de361e28be5041b58fc97a2c403cab948842a6a4a0efa4d80b6804d9ba67020f23291cc82ada5e843207d804c2cbcdc2d79cb9
+DIST firefox-91.3.0esr-te.xpi 565913 BLAKE2B b3be6348add4cad303525b90ae55a7681bf05d44ce4cd3b8ec1281143133bf8c29cb215d5ed1a0376689a5a434ee1c2989867d4ece8aff0994e9dceccc8c4af3 SHA512 72f0b5cd8a5b177be66fd6294521c555125be670aefff330c2703cdea7fff738decd7803989c07f307dc84f7ecf25142e4cd847a406edc672ac03b796f178195
+DIST firefox-91.3.0esr-th.xpi 614796 BLAKE2B ab5b057ffd367c917af6afb1b0959df87121bc8fd37dd8eb3dbb34f66508f0004df81d031382a55a2ace4669e36af823d2d6c73a5d0c27f48cec358d73716651 SHA512 95c3986a1baeac27266ff004631f4a4f0ff298f5c06eb364282f4c90856df6d356aa9aa0d04640d80c06ff8e13ddf7169e64641bdae16bdf219eb81bcc3d0b4f
+DIST firefox-91.3.0esr-tl.xpi 531783 BLAKE2B 066b2146125f9a5dddc544752b9955661168c5d1616ecede7ffd4ca4553aed22c343230a5d15a3a1de908e82456f6bddddac4b1342ecd3b8a7666adfdcb36ead SHA512 33a89f900e388f2ad1372f32b4e726fbcbeca11e25783ebf3aed5153b557cea05885f36436aae9dc268c0de83a9449446c73b1405cc1fcf56c8dfae3e438ceaa
+DIST firefox-91.3.0esr-tr.xpi 560033 BLAKE2B 6b13f234a86d38a5c4dd4eb46e82fac3d37845a909cfee19df634dc52b24333c8a78e6643715474615a6d6e2a2d62915b8fbf86496517b404400e484d82e2847 SHA512 f508ddcee0e1c423ee437bbf20b98d96a7f40d70311df05efab9b467d56c0bb9ec5030cef0a3f206b787b15e3baa0fe649bc9bd8ba03ce9e050278929c572c85
+DIST firefox-91.3.0esr-trs.xpi 503925 BLAKE2B 11b9fe4f1a914038e9ac82247957fbff539c2d19aa7fec681ccdf7ce4c721a96c6d1f445bb007bb17780bb5b0fc69840fb6f7d39bf0e57ed2168321603003477 SHA512 42ccf89c4ab2b02d015b6a5d5b81185409a1b49d837c6d8da743fa1f6d6935564a9a28fbfc185ee56161903ca5f39987b15be54a63461cbf349a0e27a1daabe1
+DIST firefox-91.3.0esr-uk.xpi 630023 BLAKE2B a65d6e9d1a04b357b2848687762dca572729a057ca534d8bc1c7b75f3c9aaa49bb5f5a29c6ff1a77428cfe6d788f7ac78fa2fdb65a339f0fa533da152cc8c6bb SHA512 ee66098a00bc371ecc4883ddb022bca5960e324349bca047abaf11fcc795075e532cb075160899fd25c86357e865a5dc70548a777eb393b82ed15d7d98819692
+DIST firefox-91.3.0esr-ur.xpi 573052 BLAKE2B 8bf7de96591f439196803a89e5eb02e37ec7747ade75b1d1f313f09073b2e7a0a482d3ac6bccaf4863aa74768ad86efa7922f6f35606ea71aa33f9db286a5686 SHA512 01f8a4fff5f425f25ef498a9f99dd65d9ecaaadf205237becba0d52a0e8054b5203104cc3e19a11e68bc19a57f62a4f72fb8aecfc1450fe39dfaef30768495b8
+DIST firefox-91.3.0esr-uz.xpi 481199 BLAKE2B 9313487f4a8a59ef28645dd9fe1bb81a77fd05ebf5402b442ac4c1cd2f533917f9a0a8a20fa442a48a60fdb40e4111993659ba907230af98d98eda8087025201 SHA512 9d71b314ee860809aac0deb903363f8db1151cdb21792c1524593ed0a86a36c9a132d4760cb749e6f99d22e5fa75f243efe85cd7ece395e7779d9197612b80b5
+DIST firefox-91.3.0esr-vi.xpi 581328 BLAKE2B 596dd95b4a8573c4d0dc0434be2ee5eff4ac5caaeee263f95838ee9e7e607ef9a4adeb5d08f9302235f91715a819ca90c04d16cfbdb2d611540aaa55dfb274a1 SHA512 dcb4d1ef7746844c2d25d9362868bd776cffac08aae936091d043a6b09f1f15cf66f2698eacfda957c4b0cf8576ad7a8191249201a604b13442541c984b874f8
+DIST firefox-91.3.0esr-xh.xpi 435358 BLAKE2B 96c7c7f452184145ef154126b6c2fe6216faa90b62267a0946871951547c13d86612066696549b06b99a0776a88911b26432758e9b32cb73715a73d415e82c2b SHA512 6cc4acd79aabf3f062811578bd4ec98a26520fd05af7c878fe3fec699fdc86da760332fac5c0a6d814abfa1fb2919ed869ef8f0dc5b1c5f0b582dfee4f0bbd74
+DIST firefox-91.3.0esr-zh-CN.xpi 583248 BLAKE2B 3caf831df6288ec5c1025f20c1834b6993fb5f50349d9b8715e6e020ebe5e1dcb0bf62592f800e03066cf1564a8bcfe0cddc8e90f72f6d7e3298e1ecc97c71b3 SHA512 95044ccbd6ef200deec8e4d3143a3989277fa309182248d8bf3941c25778841243f525410c391d49aee33a6bfc9d6d625ea45ce96ab7df9e2d70264ce1a3a438
+DIST firefox-91.3.0esr-zh-TW.xpi 583430 BLAKE2B 848ba2ff85a16105153a1810594ec9c76f4376aed110a896cb2de21b8a98574ed6d8ef1b5b290a2c650cac072e4bc7420405263595225170d51682fd5a0b8fd3 SHA512 0d4ab413bda98207f76d4b8ff5f895dbe2e42e67856a93027de18175927e24f7b3d1eb4beb6c1902f2dbd6bdd4e6e3ac164a7a1061de77acd43331b1dbc1d68a
+DIST firefox-91.3.0esr.source.tar.xz 381117132 BLAKE2B 316ac4c7e673eb1db88da9e7c1ea7eea6c3f6b6ca4d4066100c165512e52374c84f637aed1fd5037b126ce2cf51945a5a6276a4974f557ed1da7ffe1674135f2 SHA512 7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9
+DIST firefox-91esr-patches-01.tar.xz 20768 BLAKE2B 22ebd261b445f1920448d9243e3e15ed2e4d393099552bf43f26c9705dd00f8b87b5720e94fc43a31dd96c3a88398e17da80f81953f0bf9658d75e4a85a31fc9 SHA512 5935545535366abf8681286a9bd745f95f83ebf0d69ba5ce600ae513a4391fc16ea7eb4addbe8ad27f97eae3c1fcb05a78e2fc0fbd4cbf7798a83b778b5e1535
diff --git a/www-client/firefox/files/disable-auto-update.policy.json b/www-client/firefox/files/disable-auto-update.policy.json
new file mode 100644
index 00000000..f3662202
--- /dev/null
+++ b/www-client/firefox/files/disable-auto-update.policy.json
@@ -0,0 +1,5 @@
+{
+ "policies": {
+ "DisableAppUpdate": true
+ }
+}
diff --git a/www-client/firefox/files/distribution.ini b/www-client/firefox/files/distribution.ini
new file mode 100644
index 00000000..680512e3
--- /dev/null
+++ b/www-client/firefox/files/distribution.ini
@@ -0,0 +1,42 @@
+[Global]
+id=gentoo
+version=1.0
+about=Mozilla Firefox for Gentoo
+about.de=Mozilla Firefox für Gentoo
+
+[Preferences]
+app.distributor="gentoo"
+app.distributor.channel="gentoo"
+startup.homepage_welcome_url="https://www.gentoo.org/"
+
+[BookmarksToolbar]
+item.1.type=default
+item.2.title=Gentoo's Bugzilla
+item.2.link=https://bugs.gentoo.org/
+item.3.title=Gentoo Forums
+item.3.link=https://forums.gentoo.org/
+item.4.title=Gentoo Packages
+item.4.link=https://packages.gentoo.org/
+item.5.title=Planet Gentoo
+item.5.link=https://planet.gentoo.org/
+item.6.title=Gentoo Wiki
+item.6.link=https://wiki.gentoo.org/
+
+[BookmarksMenu]
+item.1.title=Gentoo
+item.1.type=folder
+item.1.folderId=1
+
+[BookmarksFolder-1]
+item.1.title=Gentoo Linux
+item.1.link=https://www.gentoo.org/
+item.2.title=Gentoo's Bugzilla
+item.2.link=https://bugs.gentoo.org/
+item.3.title=Gentoo Forums
+item.3.link=https://forums.gentoo.org/
+item.4.title=Gentoo Packages
+item.4.link=https://packages.gentoo.org/
+item.5.title=Planet Gentoo
+item.5.link=https://planet.gentoo.org/
+item.6.title=Gentoo Wiki
+item.6.link=https://wiki.gentoo.org/
diff --git a/www-client/firefox/files/firefox-r1.sh b/www-client/firefox/files/firefox-r1.sh
new file mode 100644
index 00000000..853a4efa
--- /dev/null
+++ b/www-client/firefox/files/firefox-r1.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+##
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run Mozilla Firefox in Gentoo.
+
+cmdname=$(basename "$0")
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case ${MOZ_ARCH} in
+ x86_64|s390x|sparc64)
+ MOZ_LIB_DIR="@PREFIX@/lib64"
+ SECONDARY_LIB_DIR="@PREFIX@/lib"
+ ;;
+ *)
+ MOZ_LIB_DIR="@PREFIX@/lib"
+ SECONDARY_LIB_DIR="@PREFIX@/lib64"
+ ;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [[ ! -r ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ if [[ ! -r ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ echo "Error: ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ if [[ -d ${SECONDARY_LIB_DIR} ]]; then
+ echo " ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ fi
+ exit 1
+ fi
+ MOZ_LIB_DIR="${SECONDARY_LIB_DIR}"
+fi
+MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/firefox"
+MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}"
+
+##
+## Enable Wayland backend?
+##
+if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
+ if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_ENABLE_WAYLAND=1
+ fi
+fi
+
+##
+## Use D-Bus remote exclusively when there's Wayland display.
+##
+if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_DBUS_REMOTE=1
+fi
+
+##
+## Make sure that we set the plugin path
+##
+MOZ_PLUGIN_DIR="plugins"
+
+if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+else
+ MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
+
+##
+## Disable the GNOME crash dialog, Mozilla has its own
+##
+if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then
+ GNOME_DISABLE_CRASH_DIALOG=1
+ export GNOME_DISABLE_CRASH_DIALOG
+fi
+
+##
+## Enable Xinput2 (#617344)
+##
+
+# respect user settings
+MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
+
+if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
+ # enabling XINPUT2 should be safe for all wayland users
+ MOZ_USE_XINPUT2=1
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
+ # XINPUT2 is known to cause problems for KWin users
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
+ # LXQt uses KWin
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
+ # should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
+ MOZ_USE_XINPUT2=1
+fi
+
+[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
+
+# Don't throw "old profile" dialog box.
+export MOZ_ALLOW_DOWNGRADE=1
+
+# Run the browser
+exec ${MOZ_PROGRAM} "${@}"
diff --git a/www-client/firefox/files/fix-rust-detection.patch b/www-client/firefox/files/fix-rust-detection.patch
new file mode 100644
index 00000000..d1b525b5
--- /dev/null
+++ b/www-client/firefox/files/fix-rust-detection.patch
@@ -0,0 +1,31 @@
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index b9d24654f8..ca7bf4baeb 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -262,6 +262,7 @@ def rust_supported_targets(rustc):
+ return data
+
+
++@imports('os')
+ def detect_rustc_target(
+ host_or_target, compiler_info, arm_target, rust_supported_targets
+ ):
+@@ -274,9 +275,15 @@ def detect_rustc_target(
+ # munging to get the correct option to rustc.
+ # We correlate the autoconf-derived targets with the list of targets
+ # rustc gives us with --print target-list.
+- candidates = rust_supported_targets.get(
+- (host_or_target.cpu, host_or_target.endianness, host_or_target.os), []
+- )
++ target_from_env = os.environ.get("RUST_TARGET")
++ if target_from_env is not None:
++ candidates = []
++ info = split_triplet(target_from_env, allow_wasi=True)
++ candidates.append(namespace(rust_target=target_from_env, target=info))
++ else:
++ candidates = rust_supported_targets.get(
++ (host_or_target.cpu, host_or_target.endianness, host_or_target.os), []
++ )
+
+ def find_candidate(candidates):
+ if len(candidates) == 1: \ No newline at end of file
diff --git a/www-client/firefox/files/gentoo-default-prefs.js b/www-client/firefox/files/gentoo-default-prefs.js
new file mode 100644
index 00000000..0407f5d3
--- /dev/null
+++ b/www-client/firefox/files/gentoo-default-prefs.js
@@ -0,0 +1,12 @@
+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");
+pref("intl.locale.requested", "");
+/* Disable DoH by default */
+pref("network.trr.mode", 5);
+/* Disable use of Mozilla Normandy service by default */
+pref("app.normandy.enabled", false);
diff --git a/www-client/firefox/files/gentoo-hwaccel-prefs.js b/www-client/firefox/files/gentoo-hwaccel-prefs.js
new file mode 100644
index 00000000..a00144a7
--- /dev/null
+++ b/www-client/firefox/files/gentoo-hwaccel-prefs.js
@@ -0,0 +1,3 @@
+/* Force hardware accelerated rendering due to USE=hwaccel */
+pref("layers.acceleration.force-enabled", true);
+pref("webgl.force-enabled", true);
diff --git a/www-client/firefox/files/icon/firefox-r3.desktop b/www-client/firefox/files/icon/firefox-r3.desktop
new file mode 100644
index 00000000..8219e935
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-r3.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Version=1.0
+Name=@NAME@
+GenericName=Web Browser
+Comment=Browse the Web
+Exec=@EXEC@ %u
+Icon=@ICON@
+Terminal=false
+Type=Application
+MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/http;x-scheme-handler/https;
+StartupNotify=true
+Categories=Network;WebBrowser;
+Keywords=web;browser;internet;
+Actions=new-window;new-private-window;profile-manager-window;
+
+[Desktop Action new-window]
+Name=Open a New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=نافذة جديدة
+Name[as]=নতুন উইন্ডো
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Новае акно
+Name[bg]=Нов прозорец
+Name[bn_BD]=নতুন উইন্ডো (N)
+Name[bn_IN]=নতুন উইন্ডো
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइन्ड'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Νέο παράθυρο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید‌
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિન્ડો
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Նոր Պատուհան
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=新しいウィンドウ
+Name[ja_JP-mac]=新規ウインドウ
+Name[ka]=ახალი ფანჯარა
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួច​​​ថ្មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ وِنڈو
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Нов прозорец
+Name[ml]=പുതിയ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=ဝင်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाँ सञ्झ्याल
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Нови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=புதிய சாளரம்
+Name[te]=కొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Нове вікно
+Name[ur]=نیا دریچہ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=@EXEC@ --new-window %u
+
+[Desktop Action new-private-window]
+Name=Open a New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=نافذة خاصة جديدة
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Новае акно адасаблення
+Name[bg]=Нов прозорец за поверително сърфиране
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान प्राइभेट उइन्ड'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિન્ડો
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=新しいプライベートウィンドウ
+Name[ja_JP-mac]=新規プライベートウインドウ
+Name[ka]=ახალი პირადი ფანჯარა
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួច​ឯកជន​ថ្មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사생활 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو&amp;
+Name[lij]=Neuvo barcon privou
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privātais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Нов приватен прозорец
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
+Name[mr]=नवीन वैयक्तिक पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Новое приватное окно
+Name[sat]=नावा निजेराक् विंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Нови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
+Name[te]=కొత్త ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچہ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建隐私浏览窗口
+Name[zh_TW]=新增隱私視窗
+Exec=@EXEC@ --private-window %u
+
+[Desktop Action profile-manager-window]
+Name=Open the Profile Manager
+Name[de]=Profilverwaltung öffnen
+Name[cs]=Správa profilů
+Exec=@EXEC@ --ProfileManager
diff --git a/www-client/firefox/files/icon/firefox-symbolic.svg b/www-client/firefox/files/icon/firefox-symbolic.svg
new file mode 100644
index 00000000..2078eea4
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-symbolic.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ version="1.1"
+ id="svg3758"
+ sodipodi:docname="firefox-symbolic-quantum.svg"
+ inkscape:version="0.92.2 5c3e80d, 2017-08-06">
+ <metadata
+ id="metadata3764">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Gnome Symbolic Icon Theme</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3762" />
+ <sodipodi:namedview
+ pagecolor="#555753"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1591"
+ inkscape:window-height="909"
+ id="namedview3760"
+ showgrid="false"
+ showborder="false"
+ inkscape:snap-global="false"
+ inkscape:zoom="1"
+ inkscape:cx="3.8851213"
+ inkscape:cy="12.517918"
+ inkscape:window-x="143"
+ inkscape:window-y="60"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3758">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3768" />
+ </sodipodi:namedview>
+ <title
+ id="title3754">Gnome Symbolic Icon Theme</title>
+ <path
+ d="m 15.054715,6.9884649 v 0 c -0.02034,-0.133652 -0.04071,-0.2122775 -0.04071,-0.2122775 0,0 -0.05225,0.060583 -0.138743,0.1748124 A 4.9808937,4.9808937 0 0 0 14.703694,6.0103229 6.4034781,6.4034781 0 0 0 14.270352,4.895288 4.6469845,4.6469845 0 0 0 13.87447,4.2163686 Q 13.793063,4.0947376 13.708437,3.9805045 C 13.444828,3.5499376 13.142365,3.2867867 12.792269,2.7891599 A 3.6101075,3.6101075 0 0 1 12.333953,1.5474054 5.0151173,5.0151173 0 0 0 12.113814,2.3599798 C 11.754468,1.997397 11.441832,1.7397963 11.253142,1.5640539 10.322171,0.69459485 10.430396,0.24367816 10.430396,0.24367816 v 0 c 0,0 -1.7389294,1.94102274 -0.9855522,3.96297904 a 3.8848199,3.8848199 0 0 0 1.2949452,1.726432 c 0.728868,0.6012222 1.513693,1.0743371 1.927612,2.2832561 A 3.8741829,3.8741829 0 0 0 11.21337,6.6823034 3.5023502,3.5023502 0 0 1 11.490854,8.0697401 3.2946971,3.2946971 0 0 1 7.4621982,11.27934 3.0343219,3.0343219 0 0 1 6.6459244,11.001852 3.3219834,3.3219834 0 0 1 5.667782,10.09771 l -0.00463,-0.0078 0.058274,0.02125 a 3.0061106,3.0061106 0 0 0 0.4162344,0.111409 2.6028293,2.6028293 0 0 0 1.6570605,-0.195631 C 8.3154732,9.7379218 8.6308831,9.5237932 8.8866339,9.6084266 h 0.0046 c 0.24974,0.079514 0.446755,-0.1628244 0.2682391,-0.4162632 A 1.3596868,1.3596868 0 0 0 7.8423564,8.6778985 C 7.3211426,8.7537416 6.8434027,9.1241907 6.1603222,8.7653097 a 1.4470953,1.4470953 0 0 1 -0.128107,-0.075371 c -0.04625,-0.026369 0.146605,0.040234 0.1017455,0.010233 A 3.3899676,3.3899676 0 0 1 5.7047808,8.4439577 c -0.010172,-0.00822 0.103133,0.032367 0.092497,0.024039 A 1.6561356,1.6561356 0 0 1 5.3495968,8.015168 0.80517516,0.80517516 0 0 1 5.3190728,7.2964766 0.63405807,0.63405807 0 0 1 5.5965603,7.0356384 c 0.088333,0.043485 0.1429059,0.076305 0.1429059,0.076305 0,0 -0.040235,-0.073997 -0.061972,-0.1128365 0.00786,-0.0027 0.014794,0 0.022662,-0.00513 0.077233,0.033293 0.248351,0.1202544 0.3385341,0.1734358 A 0.46987818,0.46987818 0 0 1 6.19362,7.3061637 c 0,0 0.030994,-0.015351 0.0079,-0.079998 A 0.41623066,0.41623066 0 0 0 6.0414753,7.0300927 h 0.0074 a 1.3596868,1.3596868 0 0 1 0.1970213,0.1225561 0.96149289,0.96149289 0 0 0 0.078625,-0.416232 0.54479973,0.54479973 0 0 0 -0.031914,-0.2312396 c -0.024511,-0.046254 0.013876,-0.064746 0.056885,-0.016135 A 0.45137905,0.45137905 0 0 0 6.3129456,6.378979 v -0.00372 0 c 0,0 0.024511,-0.031916 0.035615,-0.043486 A 0.66134433,0.66134433 0 0 1 6.4484481,6.2503678 4.6122987,4.6122987 0 0 1 7.1259793,5.9048971 C 7.3174429,5.8211545 7.4760733,5.7573477 7.5084475,5.7388339 a 1.0637007,1.0637007 0 0 0 0.1355052,-0.1040612 0.91015778,0.91015778 0 0 0 0.3052354,-0.5272274 0.73996569,0.73996569 0 0 0 0.0079,-0.082324 v -0.023118 -0.013967 0 -0.00552 0 -0.00611 0 C 7.9293085,4.872475 7.749868,4.7943251 6.8119611,4.7064478 A 0.81997449,0.81997449 0 0 1 6.1413599,4.0776254 v 0.0042 c -0.013416,0.034225 -0.025431,0.068909 -0.037456,0.1040572 0.012025,-0.034685 0.024051,-0.069373 0.037456,-0.1040572 v -0.00742 A 2.3762148,2.3762148 0 0 1 7.0598423,2.9339361 c 0.024051,-0.019416 -0.096192,0.00512 -0.072152,-0.014798 A 2.3845397,2.3845397 0 0 1 7.2328039,2.8155414 C 7.2748921,2.7979724 7.0524371,2.7128704 6.8558842,2.7336774 a 1.0174527,1.0174527 0 0 0 -0.3496338,0.082324 c 0.046253,-0.039773 0.1849968,-0.092498 0.1521605,-0.092498 a 2.2499581,2.2499581 0 0 0 -0.713142,0.2696255 0.14521828,0.14521828 0 0 1 0.01387,-0.064747 1.1099484,1.1099484 0 0 0 -0.4458297,0.3440843 0.58966016,0.58966016 0 0 0 0.00462,-0.080469 1.3300881,1.3300881 0 0 0 -0.2187525,0.2053404 l -0.00417,0.00321 A 2.9066776,2.9066776 0 0 0 3.6684873,3.2618132 l -0.00463,-0.0042 h 0.00554 A 1.3610743,1.3610743 0 0 1 3.3803631,2.9339159 l -0.0074,0.0018 -0.00877,-0.010174 C 3.3285694,2.8728322 3.2920343,2.813172 3.2545731,2.7465739 3.2277502,2.7003291 3.2004619,2.646216 3.1731756,2.5902563 c 0,-0.00372 -0.00416,-0.00513 -0.006,-0.00552 -0.0111,0 -0.01896,0.05133 -0.028212,0.037927 v -0.0028 A 1.9923577,1.9923577 0 0 1 3.0080744,1.8396896 l -0.0074,0.00372 A 0.87130958,0.87130958 0 0 0 2.6704677,2.2753541 c -0.028212,0.063362 -0.046248,0.098047 -0.064746,0.1327329 0,0.0028 0,-0.00461 0,-0.016194 0.00416,-0.031916 0.018037,-0.097585 0.014799,-0.092497 -0.00323,0.00513 -0.00553,0.00882 -0.00877,0.013415 A 0.80147532,0.80147532 0 0 0 2.4956586,2.4848515 1.0891367,1.0891367 0 0 0 2.4262868,2.661518 c -0.00276,0.00973 0,-0.00832 0,-0.029599 0,-0.02127 0.00416,-0.059199 0,-0.051331 L 2.4161148,2.600475 A 4.3935464,4.3935464 0 0 0 2.0461275,4.0040946 1.3976101,1.3976101 0 0 0 2.031791,4.252909 v 0.00742 A 3.0653076,3.0653076 0 0 0 1.6539417,4.7690529 7.2174403,7.2174403 0 0 0 0.85524217,6.725337 4.7871157,4.7871157 0 0 1 1.2830334,5.9756593 6.9371784,6.9371784 0 0 0 0.79974461,8.5192901 6.582457,6.582457 0 0 1 1.0078598,7.7659142 6.3854411,6.3854411 0 0 0 1.585032,10.755373 6.9542899,6.9542899 0 0 0 4.3372422,13.87618 v 0 a 6.0196208,6.0196208 0 0 0 1.6038754,0.768639 c 0.07492,0.02728 0.1507676,0.0541 0.2284646,0.08 -0.024511,-0.0096 -0.04625,-0.02034 -0.070761,-0.03098 A 7.2609132,7.2609132 0 0 0 8.179966,15 c 2.494615,0 3.318287,-0.949928 3.394136,-1.044738 v 0 A 1.2625664,1.2625664 0 0 0 11.8687,13.559386 v 0 q 0.07216,-0.02958 0.145679,-0.06335 l 0.03097,-0.01397 0.05597,-0.02635 a 5.2315572,5.2315572 0 0 0 1.053064,-0.659489 2.5436321,2.5436321 0 0 0 0.98184,-1.433687 v 0 a 0.89628343,0.89628343 0 0 0 0.01343,-0.660421 q 0.03838,-0.0606 0.0791,-0.129501 A 5.8762526,5.8762526 0 0 0 15.1107,7.7140393 v -0.0027 c 0,-0.027291 0,-0.054583 0,-0.081863 A 3.5754215,3.5754215 0 0 0 15.05473,6.9884887 Z"
+ id="path3756"
+ inkscape:connector-curvature="0"
+ style="fill:#bebebe;fill-opacity:1;stroke-width:0.46247858" />
+</svg>
diff --git a/www-client/firefox/firefox-91.3.0.ebuild b/www-client/firefox/firefox-91.3.0.ebuild
new file mode 100644
index 00000000..430e85ab
--- /dev/null
+++ b/www-client/firefox/firefox-91.3.0.ebuild
@@ -0,0 +1,1241 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+FIREFOX_PATCHSET="firefox-91esr-patches-01.tar.xz"
+
+LLVM_MAX_SLOT=13
+
+PYTHON_COMPAT=( python3_{7..10} )
+PYTHON_REQ_USE="ncurses,sqlite,ssl"
+
+WANT_AUTOCONF="2.1"
+
+VIRTUALX_REQUIRED="pgo"
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="${PN%-bin}"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info \
+ llvm multiprocessing 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/~{polynomial-c,whissi}/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"
+
+SLOT="0/esr$(ver_cut 1)"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+
+IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel"
+IUSE+=" jack lto +openh264 pgo pulseaudio sndio selinux"
+IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx +system-webp"
+IUSE+=" wayland wifi"
+
+# Firefox-only IUSE
+IUSE+=" geckodriver"
+IUSE+=" +gmp-autoupdate"
+IUSE+=" screencast"
+
+REQUIRED_USE="debug? ( !system-av1 )
+ wifi? ( dbus )"
+
+# Firefox-only REQUIRED_USE flags
+REQUIRED_USE+=" screencast? ( wayland )"
+
+BDEPEND="${PYTHON_DEPS}
+ app-arch/unzip
+ app-arch/zip
+ >=dev-util/cbindgen-0.19.0
+ >=net-libs/nodejs-10.23.1
+ virtual/pkgconfig
+ >=virtual/rust-1.51.0
+ || (
+ (
+ sys-devel/clang:13
+ sys-devel/llvm:13
+ clang? (
+ =sys-devel/lld-13*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-13*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:12
+ sys-devel/llvm:12
+ clang? (
+ =sys-devel/lld-12*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-12*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:11
+ sys-devel/llvm:11
+ clang? (
+ =sys-devel/lld-11*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-11*[profile] )
+ )
+ )
+ (
+ sys-devel/clang:10
+ sys-devel/llvm:10
+ clang? (
+ =sys-devel/lld-10*
+ pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] )
+ )
+ )
+ )
+ amd64? ( >=dev-lang/nasm-2.13 )
+ x86? ( >=dev-lang/nasm-2.13 )"
+
+CDEPEND="
+ >=dev-libs/nss-3.68
+ >=dev-libs/nspr-4.32
+ dev-libs/atk
+ dev-libs/expat
+ >=x11-libs/cairo-1.10[X]
+ >=x11-libs/gtk+-3.4.0:3[X]
+ x11-libs/gdk-pixbuf
+ >=x11-libs/pango-1.22.0
+ >=media-libs/libpng-1.6.35:0=[apng]
+ >=media-libs/mesa-10.2:*
+ media-libs/fontconfig
+ >=media-libs/freetype-2.4.10
+ kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
+ virtual/freedesktop-icon-theme
+ >=x11-libs/pixman-0.19.2
+ >=dev-libs/glib-2.26:2
+ >=sys-libs/zlib-1.2.3
+ >=dev-libs/libffi-3.0.10:=
+ media-video/ffmpeg
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrender
+ x11-libs/libXt
+ dbus? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ )
+ screencast? ( media-video/pipewire:0/0.3 )
+ system-av1? (
+ >=media-libs/dav1d-0.8.1:=
+ >=media-libs/libaom-1.0.0:=
+ )
+ system-harfbuzz? (
+ >=media-libs/harfbuzz-2.8.1:0=
+ >=media-gfx/graphite2-1.3.13
+ )
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
+ system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] )
+ system-webp? ( >=media-libs/libwebp-1.1.0:0= )
+ wifi? (
+ kernel_linux? (
+ sys-apps/dbus
+ dev-libs/dbus-glib
+ net-misc/networkmanager
+ )
+ )
+ jack? ( virtual/jack )
+ selinux? ( sec-policy/selinux-mozilla )
+ sndio? ( media-sound/sndio )"
+
+RDEPEND="${CDEPEND}
+ jack? ( virtual/jack )
+ openh264? ( media-libs/openh264:*[plugin] )
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4
+ )
+ )
+ selinux? ( sec-policy/selinux-mozilla )"
+
+DEPEND="${CDEPEND}
+ x11-libs/libICE
+ x11-libs/libSM
+ pulseaudio? (
+ || (
+ media-sound/pulseaudio
+ >=media-sound/apulse-0.1.12-r4[sdk]
+ )
+ )
+ wayland? ( >=x11-libs/gtk+-3.11:3[wayland] )
+ amd64? ( virtual/opengl )
+ x86? ( virtual/opengl )"
+
+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 ; 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 use pgo ; then
+ if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then
+ einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* 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+=( 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+=( 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}"
+}
+
+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="6400M"
+ 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 ; 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!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ 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!"
+ fi
+
+ 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"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ if ! use clang && [[ $(gcc-major-version) -eq 11 ]] \
+ && ! has_version -b ">sys-devel/gcc-11.1.0:11" ; then
+ # bug 792705
+ eerror "Using GCC 11 to compile firefox is currently known to be broken (see bug #792705)."
+ die "Set USE=clang or select <gcc-11 to build ${CATEGORY}/${P}."
+ 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
+ # 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
+ eapply "${WORKDIR}/firefox-patches"
+
+ # Allow RUST_TARGET to be used for musl users
+ eapply "${FILESDIR}/fix-rust-detection.patch"
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # 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
+
+ # Clearing checksums where we have applied patches
+ moz_clear_vendor_checksums target-lexicon-0.9.0
+
+ # 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_src_prepare
+}
+
+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 && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ 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
+ use elibc_musl && export RUST_TARGET=$(rustc -Vv | grep host | cut -d ' ' -f2)
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR 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
+
+ # Set Gentoo defaults
+ export MOZILLA_OFFICIAL=1
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --allow-addon-sideload \
+ --disable-cargo-incremental \
+ --disable-crashreporter \
+ --disable-install-strip \
+ --disable-strip \
+ --disable-updater \
+ --enable-official-branding \
+ --enable-release \
+ --enable-system-ffi \
+ --enable-system-pixman \
+ --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-nspr \
+ --with-system-nss \
+ --with-system-png \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --with-unsigned-addon-scopes=app,system \
+ --x-includes="${SYSROOT}${EPREFIX}/usr/include" \
+ --x-libraries="${SYSROOT}${EPREFIX}/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
+
+ 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 system-libevent "${SYSROOT}${EPREFIX}/usr"
+ mozconfig_use_with system-libvpx
+ mozconfig_use_with system-webp
+
+ mozconfig_use_enable dbus
+
+ 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
+
+ mozconfig_use_enable jack
+
+ mozconfig_use_enable pulseaudio
+ # force the deprecated alsa sound code if pulseaudio is disabled
+ if use kernel_linux && ! use pulseaudio ; then
+ mozconfig_add_options_ac '-pulseaudio' --enable-alsa
+ fi
+
+ mozconfig_use_enable sndio
+
+ mozconfig_use_enable wifi necko-wifi
+
+ if use wayland ; then
+ mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland
+ else
+ mozconfig_add_options_ac '' --enable-default-toolkit=cairo-gtk3
+ fi
+
+ if use lto ; then
+ if use clang ; then
+ # Upstream only supports lld when using clang
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld
+
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+ else
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ 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
+ # This is upstream's default
+ mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ 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
+ else
+ 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
+
+ # Additional ARCH support
+ case "${ARCH}" in
+ arm)
+ # Reduce the memory requirements for linking
+ if use clang ; then
+ # Nothing to do
+ :;
+ elif tc-ld-is-gold || 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 MACH_USE_SYSTEM_PYTHON=1
+
+ # 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
+ virtx_cmd=virtx
+
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ addpredict /root
+ fi
+
+ local -x GDK_BACKEND=x11
+
+ ${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 \
+ >>"${GENTOO_PREFS}" \
+ || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js"
+ 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
+}
diff --git a/www-client/firefox/metadata.xml b/www-client/firefox/metadata.xml
new file mode 100644
index 00000000..32fae387
--- /dev/null
+++ b/www-client/firefox/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>mozilla@gentoo.org</email>
+ <name>Gentoo Mozilla Team</name>
+</maintainer>
+<use>
+ <flag name="clang">Use Clang compiler instead of GCC</flag>
+ <flag name="eme-free">Disable EME (DRM plugin) cabability at build time</flag>
+ <flag name="geckodriver">Enable WebDriver support</flag>
+ <flag name="gmp-autoupdate">Allow Gecko Media Plugins (binary blobs) to be automatically
+ downloaded and kept up-to-date in user profiles</flag>
+ <flag name="hwaccel">Force-enable hardware-accelerated rendering (Mozilla bug 594876)</flag>
+ <flag name="lto">Enable Link Time Optimization (LTO). Requires Gold linker when using GCC
+ or LDD linker when using Clang</flag>
+ <flag name="openh264">Use <pkg>media-libs/openh264</pkg> for H.264 support
+ instead of downloading binary blob from Mozilla at runtime</flag>
+ <flag name="pgo">Add support for profile-guided optimization using gcc-4.5,
+ for faster binaries. This option will double the compile time.</flag>
+ <flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
+ <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
+ <flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg>
+ and <pkg>media-libs/libaom</pkg> library instead of bundled.</flag>
+ <flag name="system-harfbuzz">Use the system-wide <pkg>media-libs/harfbuzz</pkg>
+ and <pkg>media-gfx/graphite2</pkg> instead of bundled.</flag>
+ <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg>
+ instead of bundled.</flag>
+ <flag name="system-jpeg">Use the system-wide <pkg>media-libs/libjpeg-turbo</pkg>
+ instead of bundled.</flag>
+ <flag name="system-libevent">Use the system-wide <pkg>dev-libs/libevent</pkg>
+ instead of bundled.</flag>
+ <flag name="system-libvpx">Use the system-wide <pkg>media-libs/libvpx</pkg>
+ instead of bundled.</flag>
+ <flag name="system-webp">Use the system-wide <pkg>media-libs/libwebp</pkg>
+ instead of bundled.</flag>
+</use>
+</pkgmetadata>