From 3d00647fec2600e217d690a64ba45a41f1a2fa0c Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 10 Jun 2023 09:50:45 +0100 Subject: gentoo auto-resync : 10:06:2023 - 09:50:45 --- www-client/Manifest.gz | Bin 6199 -> 6202 bytes www-client/chromium/Manifest | 23 +- www-client/chromium/chromium-112.0.5615.165.ebuild | 1261 ------------------- www-client/chromium/chromium-113.0.5672.126.ebuild | 2 +- www-client/chromium/chromium-113.0.5672.63.ebuild | 1265 ------------------- www-client/chromium/chromium-113.0.5672.92.ebuild | 1265 ------------------- www-client/chromium/chromium-114.0.5735.110.ebuild | 1268 ++++++++++++++++++++ .../chromium/files/chromium-112-compiler.patch | 256 ---- .../files/chromium-112-gcc-mno-outline.patch | 29 - .../chromium/files/chromium-112-libstdc++-1.patch | 59 - .../chromium/files/chromium-112-libstdc++.patch | 63 - .../chromium/files/chromium-112-sql-relax.patch | 46 - .../chromium/files/chromium-112-swiftshader.patch | 122 -- .../chromium/files/chromium-114-compiler.patch | 171 +++ www-client/chromium/files/chromium-114-gcc12.patch | 30 + .../chromium/files/chromium-114-sigsegv-dom.patch | 73 ++ www-client/chromium/metadata.xml | 8 + www-client/firefox-bin/Manifest | 198 +-- www-client/firefox-bin/firefox-bin-114.0.1.ebuild | 381 ++++++ www-client/firefox-bin/firefox-bin-114.0.ebuild | 381 ------ 20 files changed, 2039 insertions(+), 4862 deletions(-) delete mode 100644 www-client/chromium/chromium-112.0.5615.165.ebuild delete mode 100644 www-client/chromium/chromium-113.0.5672.63.ebuild delete mode 100644 www-client/chromium/chromium-113.0.5672.92.ebuild create mode 100644 www-client/chromium/chromium-114.0.5735.110.ebuild delete mode 100644 www-client/chromium/files/chromium-112-compiler.patch delete mode 100644 www-client/chromium/files/chromium-112-gcc-mno-outline.patch delete mode 100644 www-client/chromium/files/chromium-112-libstdc++-1.patch delete mode 100644 www-client/chromium/files/chromium-112-libstdc++.patch delete mode 100644 www-client/chromium/files/chromium-112-sql-relax.patch delete mode 100644 www-client/chromium/files/chromium-112-swiftshader.patch create mode 100644 www-client/chromium/files/chromium-114-compiler.patch create mode 100644 www-client/chromium/files/chromium-114-gcc12.patch create mode 100644 www-client/chromium/files/chromium-114-sigsegv-dom.patch create mode 100644 www-client/firefox-bin/firefox-bin-114.0.1.ebuild delete mode 100644 www-client/firefox-bin/firefox-bin-114.0.ebuild (limited to 'www-client') diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz index 32ab8c0919e0..9064c15de7c9 100644 Binary files a/www-client/Manifest.gz and b/www-client/Manifest.gz differ diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index 83209b6531c2..c7a3191ddd29 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -2,18 +2,15 @@ AUX chromium-108-EnumTable-crash.patch 2974 BLAKE2B b2d58b6b2b67b3bc2f04662749c3 AUX chromium-109-system-openh264.patch 577 BLAKE2B ec83d9a72a163683d791893e6b72fd5a6ffaa18d611bc6e6785819292370cc9f4fd37d8d3a33ecb5621beb33a3271df00d7a1b629300fdfa8db6e4e4eb196f1e SHA512 5ea73c8522619d83047fcd429988b24687e928e01c2915ef4145469fbb1238ef4a72beca73493794e2275b855f95412355700579a31649d64d74133ed815f1cb AUX chromium-109-system-zlib.patch 440 BLAKE2B 95bb1099055e3e0e122d4d8a77cddec0a3417b3d87ef252d7a475f6be23b16f587ec627c90bac41d743bd9dc07488edccb0946ed465f2244b61adc44cd19761d SHA512 b4e386613eb2a0dd61af40bb29621356085e183b97d830661e5157e4f22c2ada5606d80e56d5a65fb2985cdffb505a878c32bdafb081b1fa24cbe976c7b60b86 AUX chromium-111-InkDropHost-crash.patch 1066 BLAKE2B ee0b42803a59ef4731e4f316849c2062870b92040ff4e339c3f3f2562999b54fa3176b27e432f31ada76559087631fd623d9f57f1961a42acd0684041c322a01 SHA512 dfa3ab6a84b57b6e66053be2597f0d6c7f4caf54b0e45a359774a56dfbe1e65bdea91120134e77b1e7c38c336a4fd8d05a7c26e9d3bf4bdc0fe40ad7cd832a54 -AUX chromium-112-compiler.patch 8807 BLAKE2B 464d3fa8e4a48271b152256e1aa1e617722654eb672c65af2ad0f3d16948b6443f4d7065dfe46663b5b65c6482ca80f4aac2dbe6bb403d0ce0fb6689c3ed9401 SHA512 cb5358640d4c1d175f285c66b5d97cfc282c7444c56771b427b05ddd88e3a783d4455d3afbc5dd2bca0a03349008b4b8fd183833e5e43d47cf3215cc98398e86 -AUX chromium-112-gcc-mno-outline.patch 1203 BLAKE2B 82dcb024fbd4e032a998b0fbaf21662bb2ac67ca9dce73d58944f9ffea8339721209b044a69e0d3f5bebe680a17e15dcac5b6fd7ecf4f567e1a24923fdb2a1c4 SHA512 c45d0e1eb1eb221dc61bad7d917187f0bed4732211032206f001086d2e5398383329daff1f5a47804bfc89b16de90fdf2ab9b4ddf846bce65af8a5b55206611a -AUX chromium-112-libstdc++-1.patch 3045 BLAKE2B 195dd794a4a00fb0a354ca6e8c56c102112c672ffeb28363874788aff1f3ffbf620b23fa39f824923bf5c009424f6bf01050950d5d277abf59c9944159166aa1 SHA512 29f422a076120f0de98b6af6eb2936bf4a924fd9d5cc5c4fa5bda9f6cf51288f51ba32149233030f9cb5c1382330601a67cb824bdd33cddb5c26ea5cea16606b -AUX chromium-112-libstdc++.patch 2874 BLAKE2B f354b06944a761556b6d0465aee2a1dd701b18cdd272a1aa4aa68405ad05f575d1f0ef04ca2b05d5e65ce54efab31cfdf95e8963613ef7c811aaf343662e4b62 SHA512 b0307d10708b0ea9f94e941b9b734a16b4f74b7149e11cd6b30532835074e773c3499f954f38935bf7f16ebbda6dcf53695b513e56ff5bb0d810b4b1a6f4d3ac -AUX chromium-112-sql-relax.patch 2064 BLAKE2B 37f362da2af26481f15f705466ce1eb282759ddad0cdc34a967120e26a2894bd5a1f22b69f6b3749a84bd1b155c55cbaeffebb2b7405d5eb80c7c59124a90ba4 SHA512 83e852e6710a748030b001fccede282830c00db102f338dfd92a0a86865d0f25456ae9adc3ab5b33719b156b8f0274df347c18e4670c53e57568afdeaf874804 -AUX chromium-112-swiftshader.patch 4852 BLAKE2B d1e5008b6d2f2150d7b86b8a4495532f5c8e458e6cdcdce565d8efde2d1f2c72409218bdaab02b56f451ca141df4f0ca7afca41c1dd0ffe83db2362675aa2c3b SHA512 62c18e64acbfc6d91b82a4501a01c86a59d2aa46eb446fa0cf036f42b73b7e91f6bc3603ccca8a06eaf3da9ffcbd052dc1d77f86148777cad709ee7eaadbfd7f AUX chromium-113-compiler.patch 4833 BLAKE2B 436a253dcdb13ea713acbf5b6e12ed1344753dde64f6d380f256f061f85f63927ebdca9d4da841cafb1651e2a1d9747fc0b8e13e128f1f47a410ea90d8f522c1 SHA512 ae1cf87ff2241127260ad81db68ea332578b2af6ec9f18839787815c88a7f250b8b784209db1c74faa4cc6c7d4796fa2cdc1a19cbeed107bc5b27e948ecc9d29 AUX chromium-113-gcc-13-0001-vulkanmemoryallocator.patch 390 BLAKE2B 791e499d84c2e86d8fae571f8a09ead2f9578c7c613660f732c5e3f853dd4ed7b07f7b51c4ae3baf6c75617d037166bc61e5431ff349c6c84672ca6af38ccd8d SHA512 852dcdb96227e0fe01e0146093d636dc7fe12e5595115ec9288673bd5a85b5a714d3b172e55fddc4ceafae935c9a465485476831685b0f49c85065c194d79da6 AUX chromium-113-std-monospace.patch 1749 BLAKE2B de90064f4a687cd63d1169bb2003860ba54515a0208ba10a26d1d0f004eee44cd21ae411b2f5358307d779a16ef45ec4be11552a165070c0e06e48e94a5cbe31 SHA512 aa6ac32c339befdf829ab8874b2c29c3d7fd855771d7c068e96f90ee10dc268d598a65c884b727976ffaeda699121abc0fb21b020fc455d4428fd182264d7440 AUX chromium-113-swiftshader-cstdint.patch 1715 BLAKE2B e2171e680b92c26d3d33ce8f8289c9029e6b28e2314f23ed49d76145bbf0a5207697d69e1ba5ee637e859c55f8db06f234ed95d9f131e2747ca1e66ed784cddd SHA512 ffada8b9848a3b145d8aad3c4382ce957220506b55446f8420ed902e584b096b868b81002f2eecc5b9459f5d1fd84d457df1c7e2622f77a483ac5fc54adf8ae6 AUX chromium-113-system-zlib.patch 1856 BLAKE2B 3d47acb3521b3d08fd963a6df57a7987ec54060a5abee55e5d7e86322b4fad21a54e4b2773334992ff563e2bace66d04fa6ce65e6822f3783829363414559882 SHA512 318b2f6566f9babcce91b2009863d06babb9eb3ff6bfef76323f089de1eed8b58d5579476bd2d14d6c8e45ab536ee8b5794e8f39c9563d43771e693908d07b8a AUX chromium-113-web_view_impl-cstring.patch 911 BLAKE2B 7ad2a6e19ffd1ac45f763e9ca82757fea1dda72ad1b763655848cbe98f581d50dfbfc6e50cc78031a375480b6f5e09b80ae33b1bcd2601100ace55c37d076ecb SHA512 de8ff269a4ec658918896c5e6e42110aa6808f673097d38618463f46d37276b37c238143448846a32f57eebb05f6b35895b495f576c0bd5df07e6ea870f8943d +AUX chromium-114-compiler.patch 5704 BLAKE2B 0db05ab61b031e70c92470c3028c99b012f7d8106d3fa91ea7c3412df9b3631b6eb22b65a5bf9a8f5cab266cd61e23ac23a79313c822bf05fd01efb75bd5ef74 SHA512 432f58eefa5a3c5e71d578f20db4e86a6ed9a2ab9bca37b3268f9d61bb124c3bbb1456513ce3b51eeb94aeb31d4d93f7ee5b73f1887a50d0288241989749ea51 +AUX chromium-114-gcc12.patch 1256 BLAKE2B f0e964955ef529c01a9ce53e9cc64733dbf93e531bc7970c817ed3ade73c0095f62318a9d5e2e146b41d0727ecc30cde8c5e4106e8e9f7016d11c04494566979 SHA512 8a8bd49ce4793e20773e76efd472bc9d41f7257e1db99d4406f85faed3ee0af0e2e08688c22fca2807d7c63c016b433b4bb0174461925d992806d7b171855e8f +AUX chromium-114-sigsegv-dom.patch 3090 BLAKE2B 912f8bce23145e2a63f5dc139819cf6089dd1a3f8b42f4625c9abe5c2f7b7fda4ca1fc418d20bff1fd570739758d2de13cae6b108b5c95f8dc0c2b165c9e515f SHA512 f2c924c5635a7c008e4f7e07db7055ce3a52f4f719a30906998cd3aee2dd879252904538c67feeba9a609412d0fa155fe310c94680a8164a3e92198d7c6266d2 AUX chromium-98-gtk4-build.patch 3044 BLAKE2B 782dfd31a3a82d62dc0b8ffbb85cf2dbbef1c6cc47dbd8409dc0777be8d019c4ca082d75e6114b09f880f4f3e886d0f4b9631e66d46a3129e41468b70d71404c SHA512 e8acbf85274813ec81d575727b0e5d107749242d1df80e05035c9273ca0466d7358a8d7cece16c09f6996cb49ad3b1e0dcdf052af45023236f53fa6262b4e441 AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca AUX chromium-cross-compile.patch 323 BLAKE2B 8d5091ce5287422c9688ede2563360a96b8bd34b9750dc1c8f0b6ca9aeff2c066fac2da169396baa131d971c087c78f9af53999df0e102d1f57176f5e8d3dd57 SHA512 06d3afc1aa19e57daac0e4bad37e1f365a68408240430e5e818e5a4f12e3b7519214eafa463633e447e7029f4ae13ea864ca347ad1fac117702a0be88718a954 @@ -21,16 +18,12 @@ AUX chromium-launcher-r7.sh 1631 BLAKE2B ae28d758264446511fd2b64ba69fe920144b351 AUX chromium-use-oauth2-client-switches-as-default.patch 1085 BLAKE2B baf3c463305934c126af4f7c5be305863edc7eec3add5b5ada30565b49b5944021eb40f1a9643e7eec3f973c502d9b02426f00b760570fcea5f1509219e41c6f SHA512 fe2878ee45778bac894ea17a668511d27ad2ca40988d5f11439790b700bfefd6560f3931415b4e6c543fcbbfc7cfef55cc757ed4ace1d111039ae78c46b81945 AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739 DIST chromium-112-gcc-13-patches.tar.xz 8036 BLAKE2B 71347593c57f0ec8a32de3764359227ae7e8d666ef78f2676f939f7e07cb787f54ad57f8583504285ea84cc0c9cc99255873e28473468b30d5e66f3e0b0496ff SHA512 67dfa89ebbaba2c1d8ecb8471096c6c1b691cba4b5e68b7ee35ac2d6b65b560da39b4b2bb2eb0f6b6a3f2cc6bd8894c4d0e58ca51bc32a7f429aa1feed0571e5 -DIST chromium-112.0.5615.165.tar.xz 1730146076 BLAKE2B 710f5490a48f9e268690bac1bdf86bac9f0968639c3b9250b3b821433afdaa37af532a1607579206848c47ceb24cebef96b1a8dbdba11c9b4b4eb7af7518fe11 SHA512 51cd011a612bbd83c31f69666d87597dbf0d277cbb043855623afd5d3d1f26326201251ca8aa18d891a6ca0c7daf177d07bd56a2969ba390318348077636ed7c DIST chromium-113.0.5672.126.tar.xz 1556790928 BLAKE2B e945fb0f17027b5e927970a73b6f6342a8ee0a1553422002c22e89988def79d28fc03564d510305cebe7cf4ee060a294761ec95f07fc5c92d89c5202470f0b71 SHA512 0e968fb68818bdc5be0b89334e1703ca7bc572ba58f641c4f0420618ee7719b203c5f1d895c56c5152706f391073de3f12754f5738acea53ff9f9c6a62258d99 -DIST chromium-113.0.5672.63.tar.xz 1556641240 BLAKE2B d52a8eec055f289eafd829db6dceaae5c08132d73015870ff51d5bc7856e79ad0f3feb976b1dc5b8b43302f843394bf312ab6ddf55bf547c79f56d69cdce370f SHA512 b99ce267ecfaf497b99262a243f43eab9b170563227b407ef17dd85f8f6d892d9c264df83b166a52683156ee33e8504f9fcf09db68c6edb29b6588d870833711 -DIST chromium-113.0.5672.92.tar.xz 1556728164 BLAKE2B d3f4b61213710cb98856ac91a1fb167883d6031958bfe930b7087f4b135bc0e7a8db09595f6d0e27f00bd3bf10479076dbc7e8a373817de972c0d3cf68efb8bb SHA512 30de7a92063feeb7217108b1065d34e44cd73c28cf9982820093ba8fed7a818a62ea65e1b6ea1bdad601da819c2fe00df3eb28ffa226eb1bd564577d959332c5 +DIST chromium-114.0.5735.110.tar.xz 1570743048 BLAKE2B 38c7baab57fd71fd0bf4834bf6552125c3476e6ce36daf1975aa8f56fb98de9c8ba2e00a7b864d4e9e5388b5c780379823fa3f6edae1e373b78f2edc1693f639 SHA512 fa8bb133b27b833115546f887c06e81bf54285521bf6e1098a1a9189b633400e2a1cd69c4618457e8c316e7b8389c9ddf26bfb4fc0dbaa9b57077f0875a898df DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c -DIST chromium_112.0.5615.49-2raptor0~deb11u1.debian.tar.xz 780000 BLAKE2B 2aa91c689b634f51978428f5992f41190e7c9b7d4009ee2f34a55e0666caf8ce02f5c5b6297702fe7ecb3a7961d5c84102ebda5189f3c513576a83f3c94dafa1 SHA512 b92b2a76a9ef6fc23ef06ae1d428f6755d9c8551230926a1c422c8c560ec95b1aa53a5a578519ba7426e6985c234cfd30573d8bb482499dd1532163975af293f DIST chromium_113.0.5672.63-2raptor0~deb11u1.debian.tar.xz 504340 BLAKE2B 580ab6f3e061e7b64e8747251c56f059015e3917fcd24445c480d1d8c409a5e0ba5fba6a14a5aeb48e95a83483a0c57663dfd708baddb4dc101e209497d2bd0c SHA512 f750589d22cf787c890801c097193572408b4b0883c4e9a34892ab34cc6921c051866b4911f68db599640537f489311b4b4d19ec0229850276e6154101b8165b -EBUILD chromium-112.0.5615.165.ebuild 39118 BLAKE2B a95859acca060aeb1b4546ec69ac488603f61c5d0d82bd94e2a6dcc035345081df37c2e3e63bfd44a35294d14be759ccbd2dd24fee91fd32dac87d59885beaec SHA512 d80d67361e6467917a2d0bc01b05ffa65b052cca94dfa124b2981fcd447829255a5eab8ce7f12f0e2a881ccecc49294f9a8132f3da42b707a367519b686fc49f -EBUILD chromium-113.0.5672.126.ebuild 39436 BLAKE2B 50e711f6ace3413d1c69fa57caff37e9dfbc790e00cdc07070ce08e11ce51f4452e7e1b619dd11c2103b32082e37c1e953b87c72383fea98ba579aa02a2b4418 SHA512 95bb7fe9ea8191468f125c4cd4b6fad70d601d2acdb1ca7e1d717a637d6a95d487063c4d383cb7162acc7a37af92b8ba712322244fce066e3d72107a6b797414 -EBUILD chromium-113.0.5672.63.ebuild 39431 BLAKE2B 61c90a395bc027477197eb9fa9e27efe681d5a137fae248aa1553d7114c2a2cf8e937bea7f3bcb70a710310e7377c1ceab241c8414c8164e5ea6473740839a0d SHA512 2e51685ace2bb82092dfc1d91852c68058a5e4b2bedc677e160316fb92aee0278de025187f9d34d465178e72930ae00c17dfab103553bc9cc6ea54b60c2780bd -EBUILD chromium-113.0.5672.92.ebuild 39431 BLAKE2B 61c90a395bc027477197eb9fa9e27efe681d5a137fae248aa1553d7114c2a2cf8e937bea7f3bcb70a710310e7377c1ceab241c8414c8164e5ea6473740839a0d SHA512 2e51685ace2bb82092dfc1d91852c68058a5e4b2bedc677e160316fb92aee0278de025187f9d34d465178e72930ae00c17dfab103553bc9cc6ea54b60c2780bd -MISC metadata.xml 2167 BLAKE2B 3ad0af16da80ea03ce1deb54468b5668d1565742773e583f44688df3f7ea58a72271ccb58f467f0424bd601f4c7256ef6dc340a31a9a66547c3860069c812492 SHA512 6671a247003dae4accf588e2e62242286caf2310869a5ed5b327f46b484848a25d03baaf179a740ca8f7b2c30bf3095cf72c166fae8f0a15c63dad9174fa28ca +DIST chromium_114.0.5735.106-1raptor0~deb11u1.debian.tar.xz 514572 BLAKE2B 1bc2c5d98d951b985f79ff072aae46f84487a5ebf7b0499e2e18bc3826c364594a200af588019683a07c283224df3b232fa52197a31670df9f2e15ea21aae612 SHA512 f970d263efb3f6d4380ad25c7a6fd49a11c171465c225e6d72dc8d0e023a76da6eb101f8cfc82e245dac814e18d71526f84d9339d584ee423be0de9cfd9a0f7b +EBUILD chromium-113.0.5672.126.ebuild 39437 BLAKE2B f2e15aa11dc2089f018408bb7067d2b0f6afd757937c27effa765e250f134e076b5639ef8114040c2f4944b7d1f0221242d383296c0e31370577830da23353f2 SHA512 191fda4e59e89e12e4fd81a9a20be0dd69e9026aaa3c5ab2bc1e3a6d689b20d43abd02f84ab7c35c2a788d6ab52cd52058d10a6c34cad358475add61262edadd +EBUILD chromium-114.0.5735.110.ebuild 39707 BLAKE2B ebb642952d7a365f0bfbd35f4448902fe0722bea4793abf93502710aac239b98e07433fb07aa820292cd790b3da38e7c4e37be7bd7b909ed51832c60e4fb1643 SHA512 92ad88d80d850ee76ae9eaf45d5671370794b83cd67a98dfcc6c2738b22b62365ba1e42a4ea5173d69863205a4518b3ef94cb2bf34c9fac1654a64514eebb7cb +MISC metadata.xml 2426 BLAKE2B c5795842d577f41e6a35034b18643d276f63549f6203813ab75b9acf1039f45ee78d6ce2e7f526c460d04517d67e441217e61d8f73de86b695a2669b85a86140 SHA512 fef5bec7d784729995c74a5cdced0052944e58fe154518e721ba94285805290a8e3a301dedec910d276fbd1c5a1bac4d99c93fd8fc9c91c73ff2332a6830cbc2 diff --git a/www-client/chromium/chromium-112.0.5615.165.ebuild b/www-client/chromium/chromium-112.0.5615.165.ebuild deleted file mode 100644 index 2feac82dcb99..000000000000 --- a/www-client/chromium/chromium-112.0.5615.165.ebuild +++ /dev/null @@ -1,1261 +0,0 @@ -# Copyright 2009-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="xml(+)" -LLVM_MAX_SLOT=16 - -CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr - sv sw ta te th tr uk ur vi zh-CN zh-TW" - -VIRTUALX_REQUIRED="pgo" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils -inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils - -DESCRIPTION="Open-source version of Google Chrome web browser" -HOMEPAGE="https://chromium.org/" -PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public" -PATCHSET_NAME_PPC64="chromium_112.0.5615.49-2raptor0~deb11u1.debian" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz - https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz - ppc64? ( - ${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz - https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz - ) - pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" - -LICENSE="BSD" -SLOT="0/stable" -KEYWORDS="amd64 arm64 ~ppc64" -IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine" -REQUIRED_USE=" - component-build? ( !suid !libcxx ) - screencast? ( wayland ) - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) -" - -COMMON_X_DEPEND=" - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxshmfence:= -" - -COMMON_SNAPSHOT_DEPEND=" - system-icu? ( >=dev-libs/icu-71.1:= ) - >=dev-libs/libxml2-2.9.4-r3:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - !libcxx? ( >=dev-libs/re2-0.2019.08.01:= ) - dev-libs/libxslt:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - system-png? ( media-libs/libpng:=[-apng(-)] ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-3.4.0:= - ) - sys-libs/zlib:= - x11-libs/libdrm:= - !headless? ( - dev-libs/glib:2 - >=media-libs/alsa-lib-1.0.19:= - pulseaudio? ( media-sound/pulseaudio:= ) - sys-apps/pciutils:= - kerberos? ( virtual/krb5 ) - vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) - X? ( - x11-libs/libX11:= - x11-libs/libXext:= - x11-libs/libxcb:= - ) - x11-libs/libxkbcommon:= - wayland? ( - dev-libs/libffi:= - screencast? ( media-video/pipewire:= ) - ) - ) -" - -COMMON_DEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - app-arch/bzip2:= - dev-libs/expat:= - system-ffmpeg? ( - >=media-video/ffmpeg-4.3:= - || ( - media-video/ffmpeg[-samba] - >=net-fs/samba-4.5.10-r1[-debug(-)] - ) - >=media-libs/opus-1.3.1:= - ) - net-misc/curl[ssl] - sys-apps/dbus:= - media-libs/flac:= - sys-libs/zlib:=[minizip] - !headless? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[X?,wayland?] ) - ) - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) -" -DEPEND="${COMMON_DEPEND} - !headless? ( - gtk4? ( gui-libs/gtk:4[X?,wayland?] ) - !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) - ) -" - -depend_clang_llvm_version() { - echo "sys-devel/clang:$1" - echo "sys-devel/llvm:$1" - echo "=sys-devel/lld-$1*" -} - -depend_clang_llvm_versions() { - local _v - if [[ $# -gt 1 ]]; then - echo "|| (" - for _v in "$@"; do - echo "(" - depend_clang_llvm_version "${_v}" - echo ")" - done - echo ")" - elif [[ $# -eq 1 ]]; then - depend_clang_llvm_version "$1" - fi -} - -BDEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - !headless? ( - qt5? ( dev-qt/qtcore:5 ) - ) - libcxx? ( >=sys-devel/clang-16 ) - lto? ( $(depend_clang_llvm_versions 16) ) - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - $(depend_clang_llvm_versions 16) - ) - dev-lang/perl - >=dev-util/gn-0.1807 - >=dev-util/gperf-3.0.3 - >=dev-util/ninja-1.7.2 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig -" - -# These are intended for ebuild maintainer use to force clang if GCC is broken. -: ${CHROMIUM_FORCE_CLANG=no} - -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then - BDEPEND+=" >=sys-devel/clang-16" -fi - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -needs_clang() { - [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo -} - -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 lto || use pgo ) && ! 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 - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -pre_build_checks() { - # Check build requirements, bug #541816 and bug #471810 . - CHECKREQS_MEMORY="4G" - CHECKREQS_DISK_BUILD="12G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G" - if use lto || use pgo; then - CHECKREQS_MEMORY="9G" - CHECKREQS_DISK_BUILD="13G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G" - use pgo && CHECKREQS_DISK_BUILD="20G" - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags || use component-build; then - CHECKREQS_DISK_BUILD="25G" - fi - if ! use component-build; then - CHECKREQS_MEMORY="16G" - fi - fi - check-reqs_${EBUILD_PHASE_FUNC} -} - -pkg_pretend() { - pre_build_checks - - if use headless; then - local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland") - for myiuse in ${headless_unused_flags[@]}; do - use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set." - done - fi -} - -pkg_setup() { - if use lto || use pgo; then - llvm_pkg_setup - fi - - pre_build_checks - - if [[ ${MERGE_TYPE} != binary ]]; then - local -x CPP="$(tc-getCXX) -E" - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 10.4; then - die "At least gcc 10.4 is required" - fi - if use pgo && tc-is-cross-compiler; then - die "The pgo USE flag cannot be used when cross-compiling" - fi - if needs_clang && ! tc-is-clang; then - if tc-is-cross-compiler; then - CPP="${CBUILD}-clang++ -E" - else - CPP="${CHOST}-clang++ -E" - fi - if ! ver_test "$(clang-major-version)" -ge 16; then - die "At least clang 16 is required" - fi - fi - fi - - chromium_suid_sandbox_check_kernel_config - - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable" - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default." - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" || die - - local PATCHES=( - #"${WORKDIR}/patches" - "${FILESDIR}/chromium-98-gtk4-build.patch" - "${FILESDIR}/chromium-108-EnumTable-crash.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-109-system-openh264.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-112-compiler.patch" - "${FILESDIR}/chromium-112-libstdc++.patch" - "${FILESDIR}/chromium-112-libstdc++-1.patch" - "${FILESDIR}/chromium-112-sql-relax.patch" - "${FILESDIR}/chromium-112-gcc-mno-outline.patch" - "${FILESDIR}/chromium-112-swiftshader.patch" - "${WORKDIR}/chromium-112-gcc-13-patches" - ) - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - fi - - default - - mkdir -p third_party/node/linux/node-linux-x64/bin || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die - - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/dynamic_annotations - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/valgrind - base/third_party/xdg_mime - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - courgette/third_party - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/ceval - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/systeminfo - third_party/angle/src/third_party/volk - third_party/apple_apsl - third_party/axe-core - third_party/blink - third_party/bidimapper - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/content_analysis_sdk - third_party/cpuinfo - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/dawn - third_party/dawn/third_party/gn/webgpu-cts - third_party/dawn/third_party/khronos - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/devtools-frontend/src/front_end/third_party/axe-core - third_party/devtools-frontend/src/front_end/third_party/chromium - third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/diff - third_party/devtools-frontend/src/front_end/third_party/i18n - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat - third_party/devtools-frontend/src/front_end/third_party/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt - third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fdlibm - third_party/fft2d - third_party/flatbuffers - third_party/fp16 - third_party/freetype - third_party/fusejs - third_party/fxdiv - third_party/highway - third_party/liburlpattern - third_party/libzip - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/hunspell - third_party/iccjpeg - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - third_party/khronos - third_party/leveldatabase - third_party/libaddressinput - third_party/libavif - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libudev - third_party/libva_protected_content - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/llvm - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/maldoca - third_party/maldoca/src/third_party/tensorflow_protos - third_party/maldoca/src/third_party/zlibwrapper - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/omnibox_proto - third_party/one_euro_filter - third_party/openscreen - third_party/openscreen/src/third_party/mozilla - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg - third_party/pdfium/third_party/libtiff - third_party/pdfium/third_party/skia_shared - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/pffft - third_party/ply - third_party/polymer - third_party/private-join-and-compute - third_party/private_membership - third_party/protobuf - third_party/pthreadpool - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rnnoise - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/shell-encryption - third_party/simplejson - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/subzero - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv - third_party/swiftshader/third_party/SPIRV-Tools - third_party/tensorflow_models - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/ruy - third_party/six - third_party/ukey2 - third_party/unrar - third_party/utf - third_party/vulkan - third_party/wayland - third_party/web-animations-js - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/xnnpack - third_party/zxcvbn-cpp - third_party/zlib/google - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/valgrind - v8/src/third_party/utf8-decoder - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - if ! use system-ffmpeg; then - keeplibs+=( third_party/ffmpeg third_party/opus ) - fi - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - if ! use system-png; then - keeplibs+=( third_party/libpng ) - fi - if ! use system-av1; then - keeplibs+=( - third_party/dav1d - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/SVT-AV1 - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - ) - fi - if ! use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng ) - fi - if use libcxx; then - keeplibs+=( third_party/re2 ) - fi - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - # requires git and clang, bug #832803 - sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \ - generate_gni.sh || die - ./generate_gni.sh || die - popd >/dev/null || die - - pushd third_party/ffmpeg >/dev/null || die - cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die - cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die - popd >/dev/null || die - fi - - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if needs_clang && ! tc-is-clang; then - # Force clang since gcc is either broken or build is using libcxx. - if tc-is-cross-compiler; then - CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}" - CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}" - BUILD_CC=${CBUILD}-clang - BUILD_CXX=${CBUILD}-clang++ - else - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - fi - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - myconf_gn+=" is_clang=false" - fi - - # Force lld for lto or pgo builds only, otherwise disable, bug 641556 - if use lto || use pgo; then - myconf_gn+=" use_lld=true" - else - myconf_gn+=" use_lld=false" - fi - - if use lto || use pgo; then - AR=llvm-ar - NM=llvm-nm - if tc-is-cross-compiler; then - BUILD_AR=llvm-ar - BUILD_NM=llvm-nm - fi - fi - - # Define a custom toolchain for GN - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" - - # setup cups-config, build system only uses --libs option - if use cups; then - mkdir "${T}/cups-config" || die - cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die - export PATH="${PATH}:${T}/cups-config" - fi - - # Don't inherit PKG_CONFIG_PATH from environment - local -x PKG_CONFIG_PATH= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # Create dummy pkg-config file for libsystemd, only dependency of installer - mkdir "${T}/libsystemd" || die - cat <<- EOF > "${T}/libsystemd/libsystemd.pc" - Name: - Description: - Version: - EOF - local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=false" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=$(usex component-build true false)" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # Use system-provided libraries. - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). - # TODO: use_system_hunspell (upstream changes needed). - # TODO: use_system_protobuf (bug #525560). - # TODO: use_system_sqlite (http://crbug.com/22208). - - # libevent: https://bugs.gentoo.org/593458 - local gn_system_libraries=( - flac - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-ffmpeg; then - gn_system_libraries+=( ffmpeg opus ) - fi - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-av1; then - gn_system_libraries+=( dav1d libaom ) - fi - # re2 library interface relies on std::string and std::vector - if ! use libcxx; then - gn_system_libraries+=( re2 ) - fi - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Disable deprecated libgnome-keyring dependency, bug #713012 - myconf_gn+=" use_gnome_keyring=false" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # TODO: link_pulseaudio=true for GN. - - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # Never use bundled gold binary. Disable gold linker flags for now. - # Do not use bundled clang. - # Trying to use gold results in linker crash. - myconf_gn+=" use_gold=false use_sysroot=false" - myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . - # Note: these are for Gentoo use ONLY. For your own distribution, - # please get your own set of keys. Feel free to contact chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - if ! use component-build || use x86; then - filter-flags "-g*" - fi - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - - if tc-is-gcc; then - # https://bugs.gentoo.org/904455 - append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)" - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = x86 ]] ; then - myconf_gn+=" target_cpu=\"x86\"" - ffmpeg_target_arch=ia32 - - # This is normally defined by compiler_cpu_abi in - # build/config/compiler/BUILD.gn, but we patch that part out. - append-flags -msse2 -mfpmath=sse -mmmx - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = arm ]] ; then - myconf_gn+=" target_cpu=\"arm\"" - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Disable external code space for V8 for ppc64. It is disabled for ppc64 - # by default, but cross-compiling on amd64 enables it again. - if tc-is-cross-compiler; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - #if ! use system-ffmpeg; then - if false; then - local build_ffmpeg_args="" - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then - build_ffmpeg_args+=" --disable-asm" - fi - - # Re-configure bundled ffmpeg. See bug #491378 for example reasons. - einfo "Configuring bundled ffmpeg..." - pushd third_party/ffmpeg > /dev/null || die - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die - chromium/scripts/copy_config.sh || die - chromium/scripts/generate_gn.py || die - popd > /dev/null || die - fi - - # Disable unknown warning message from clang. - if tc-is-clang; then - append-flags -Wno-unknown-warning-option - if tc-is-cross-compiler; then - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - fi - fi - - # Explicitly disable ICU data file support for system-icu/headless builds. - if use system-icu || use headless; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5; then - local moc_dir="$(qt5_get_bindir)" - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin - fi - export PATH="${PATH}:${moc_dir}" - fi - myconf_gn+=" use_qt=$(usex qt5 true false)" - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - # Results in undefined references in chrome linking, may require CFI to work - if use arm64; then - myconf_gn+=" arm_control_flow_integrity=\"none\"" - fi - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - myconf_gn+=" use_thin_lto=$(usex lto true false)" - myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - # Disable CFI: unsupported for GCC, requires clang+lto+lld - myconf_gn+=" is_cfi=false" - # Don't add symbols to build - myconf_gn+=" symbol_level=0" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=${1}" - if [[ "$1" == "2" ]]; then - myconf_gn+=" pgo_data_path=\"${2}\"" - fi - else - # Disable PGO, because profile data is only compatible with >=clang-11 - myconf_gn+=" chrome_pgo_phase=0" - fi - - # user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639 - if use arm64 && tc-is-gcc; then - sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \ - third_party/crc32c/src/src/crc32c_arm64.cc || die - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_configure() { - chromium_configure $(usex pgo 1 0) -} - -chromium_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - # Build mksnapshot and pax-mark it. - if use pax-kernel; then - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - fi - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver - use suid && eninja -C out/Release chrome_sandbox - - pax-mark m out/Release/chrome -} - -# This function is called from virtx, and must always return so that Xvfb -# session isn't left running. If we return 1, virtx will call die(). -chromium_profile() { - einfo "Profiling for PGO" - - pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 - - # Remove old profdata in case profiling was interrupted. - rm -rf "${1}" || return 1 - - if ! "${EPYTHON}" ./chromium_profiler.py \ - --chrome-executable "${S}/out/Release/chrome" \ - --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ - --add-arg no-sandbox --add-arg disable-dev-shm-usage \ - --profile-output "${1}"; then - eerror "Profiling failed" - return 1 - fi - - popd >/dev/null || return 1 -} - -src_compile() { - if use pgo; then - local profdata - - profdata="${WORKDIR}/chromium.profdata" - - if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then - chromium_compile - virtx chromium_profile "$profdata" - - touch "${WORKDIR}/.pgo-profiled" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then - # Remove phase 1 output - rm -r out/Release || die - - chromium_configure 2 "$profdata" - - touch "${WORKDIR}/.pgo-phase-2-configured" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then - chromium_compile - touch "${WORKDIR}/.pgo-phase-2-compiled" || die - fi - else - chromium_compile - fi - - mv out/Release/chromedriver{.unstripped,} || die - - rm -f out/Release/locales/*.pak.info || die - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - if use suid; then - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - fi - - doexe out/Release/chromedriver - doexe out/Release/chrome_crashpad_handler - - ozone_auto_session () { - use X && use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" - doins out/Release/xdg-{settings,mime} - - if ! use system-icu && ! use headless; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - doins out/Release/vk_swiftshader_icd.json - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if ! use headless; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - fi - if use screencast; then - elog "Screencast is disabled by default at runtime. Either enable it" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use gtk4; then - elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" - elog "behavior you need to pass --gtk-version=4, e.g. by adding it" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - fi -} diff --git a/www-client/chromium/chromium-113.0.5672.126.ebuild b/www-client/chromium/chromium-113.0.5672.126.ebuild index c24e6f989e0b..94420dc28858 100644 --- a/www-client/chromium/chromium-113.0.5672.126.ebuild +++ b/www-client/chromium/chromium-113.0.5672.126.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) PYTHON_REQ_USE="xml(+)" LLVM_MAX_SLOT=16 diff --git a/www-client/chromium/chromium-113.0.5672.63.ebuild b/www-client/chromium/chromium-113.0.5672.63.ebuild deleted file mode 100644 index 73c153d99a70..000000000000 --- a/www-client/chromium/chromium-113.0.5672.63.ebuild +++ /dev/null @@ -1,1265 +0,0 @@ -# Copyright 2009-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="xml(+)" -LLVM_MAX_SLOT=16 - -CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr - sv sw ta te th tr uk ur vi zh-CN zh-TW" - -VIRTUALX_REQUIRED="pgo" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils -inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils - -DESCRIPTION="Open-source version of Google Chrome web browser" -HOMEPAGE="https://chromium.org/" -PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public" -PATCHSET_NAME_PPC64="chromium_113.0.5672.63-2raptor0~deb11u1.debian" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz - https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz - ppc64? ( - ${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz - https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz - ) - pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" - -LICENSE="BSD" -SLOT="0/stable" -KEYWORDS="~amd64 ~arm64" -IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine" -REQUIRED_USE=" - component-build? ( !suid !libcxx ) - screencast? ( wayland ) - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) -" - -COMMON_X_DEPEND=" - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxshmfence:= -" - -COMMON_SNAPSHOT_DEPEND=" - system-icu? ( >=dev-libs/icu-71.1:= ) - >=dev-libs/libxml2-2.9.4-r3:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - !libcxx? ( >=dev-libs/re2-0.2019.08.01:= ) - dev-libs/libxslt:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - system-png? ( media-libs/libpng:=[-apng(-)] ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-3.4.0:= - ) - sys-libs/zlib:= - x11-libs/libdrm:= - !headless? ( - dev-libs/glib:2 - >=media-libs/alsa-lib-1.0.19:= - pulseaudio? ( media-sound/pulseaudio:= ) - sys-apps/pciutils:= - kerberos? ( virtual/krb5 ) - vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) - X? ( - x11-libs/libX11:= - x11-libs/libXext:= - x11-libs/libxcb:= - ) - x11-libs/libxkbcommon:= - wayland? ( - dev-libs/libffi:= - screencast? ( media-video/pipewire:= ) - ) - ) -" - -COMMON_DEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - app-arch/bzip2:= - dev-libs/expat:= - system-ffmpeg? ( - >=media-video/ffmpeg-4.3:= - || ( - media-video/ffmpeg[-samba] - >=net-fs/samba-4.5.10-r1[-debug(-)] - ) - >=media-libs/opus-1.3.1:= - ) - net-misc/curl[ssl] - sys-apps/dbus:= - media-libs/flac:= - sys-libs/zlib:=[minizip] - !headless? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[X?,wayland?] ) - ) - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) -" -DEPEND="${COMMON_DEPEND} - !headless? ( - gtk4? ( gui-libs/gtk:4[X?,wayland?] ) - !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) - ) -" - -depend_clang_llvm_version() { - echo "sys-devel/clang:$1" - echo "sys-devel/llvm:$1" - echo "=sys-devel/lld-$1*" -} - -depend_clang_llvm_versions() { - local _v - if [[ $# -gt 1 ]]; then - echo "|| (" - for _v in "$@"; do - echo "(" - depend_clang_llvm_version "${_v}" - echo ")" - done - echo ")" - elif [[ $# -eq 1 ]]; then - depend_clang_llvm_version "$1" - fi -} - -BDEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - !headless? ( - qt5? ( dev-qt/qtcore:5 ) - ) - libcxx? ( >=sys-devel/clang-16 ) - lto? ( $(depend_clang_llvm_versions 16) ) - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - $(depend_clang_llvm_versions 16) - ) - dev-lang/perl - >=dev-util/gn-0.1807 - >=dev-util/gperf-3.0.3 - >=dev-util/ninja-1.7.2 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig -" - -# These are intended for ebuild maintainer use to force clang if GCC is broken. -: ${CHROMIUM_FORCE_CLANG=no} - -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then - BDEPEND+=" >=sys-devel/clang-16" -fi - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -needs_clang() { - [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo -} - -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 lto || use pgo ) && ! 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 - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -pre_build_checks() { - # Check build requirements, bug #541816 and bug #471810 . - CHECKREQS_MEMORY="4G" - CHECKREQS_DISK_BUILD="12G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G" - if use lto || use pgo; then - CHECKREQS_MEMORY="9G" - CHECKREQS_DISK_BUILD="13G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G" - use pgo && CHECKREQS_DISK_BUILD="20G" - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags || use component-build; then - CHECKREQS_DISK_BUILD="25G" - fi - if ! use component-build; then - CHECKREQS_MEMORY="16G" - fi - fi - check-reqs_${EBUILD_PHASE_FUNC} -} - -pkg_pretend() { - pre_build_checks - - if use headless; then - local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland") - for myiuse in ${headless_unused_flags[@]}; do - use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set." - done - fi -} - -pkg_setup() { - if use lto || use pgo; then - llvm_pkg_setup - fi - - pre_build_checks - - if [[ ${MERGE_TYPE} != binary ]]; then - local -x CPP="$(tc-getCXX) -E" - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then - die "At least gcc 12 is required" - fi - if use pgo && tc-is-cross-compiler; then - die "The pgo USE flag cannot be used when cross-compiling" - fi - if needs_clang && ! tc-is-clang; then - if tc-is-cross-compiler; then - CPP="${CBUILD}-clang++ -E" - else - CPP="${CHOST}-clang++ -E" - fi - if ! ver_test "$(clang-major-version)" -ge 16; then - die "At least clang 16 is required" - fi - fi - fi - - chromium_suid_sandbox_check_kernel_config - - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable" - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default." - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" || die - - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0002-perfetto.patch" || die - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0012-webrtc-base64.patch" || die - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0013-quiche.patch" || die - - local PATCHES=( - #"${WORKDIR}/patches" - "${FILESDIR}/chromium-98-gtk4-build.patch" - "${FILESDIR}/chromium-108-EnumTable-crash.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-109-system-openh264.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-113-compiler.patch" - "${WORKDIR}/chromium-112-gcc-13-patches" - "${FILESDIR}/chromium-113-swiftshader-cstdint.patch" - "${FILESDIR}/chromium-113-system-zlib.patch" - "${FILESDIR}/chromium-113-web_view_impl-cstring.patch" - "${FILESDIR}/chromium-113-std-monospace.patch" - "${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch" - ) - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - fi - - default - - mkdir -p third_party/node/linux/node-linux-x64/bin || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die - - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/dynamic_annotations - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/valgrind - base/third_party/xdg_mime - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - courgette/third_party - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/ceval - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/systeminfo - third_party/angle/src/third_party/volk - third_party/apple_apsl - third_party/axe-core - third_party/blink - third_party/bidimapper - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/content_analysis_sdk - third_party/cpuinfo - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/dawn - third_party/dawn/third_party/gn/webgpu-cts - third_party/dawn/third_party/khronos - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/devtools-frontend/src/front_end/third_party/axe-core - third_party/devtools-frontend/src/front_end/third_party/chromium - third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/diff - third_party/devtools-frontend/src/front_end/third_party/i18n - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat - third_party/devtools-frontend/src/front_end/third_party/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt - third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fdlibm - third_party/fft2d - third_party/flatbuffers - third_party/fp16 - third_party/freetype - third_party/fusejs - third_party/fxdiv - third_party/highway - third_party/liburlpattern - third_party/libzip - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/hunspell - third_party/iccjpeg - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - third_party/khronos - third_party/leveldatabase - third_party/libaddressinput - third_party/libavif - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libudev - third_party/libva_protected_content - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/llvm - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/maldoca - third_party/maldoca/src/third_party/tensorflow_protos - third_party/maldoca/src/third_party/zlibwrapper - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/omnibox_proto - third_party/one_euro_filter - third_party/openscreen - third_party/openscreen/src/third_party/mozilla - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg - third_party/pdfium/third_party/libtiff - third_party/pdfium/third_party/skia_shared - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/pffft - third_party/ply - third_party/polymer - third_party/private-join-and-compute - third_party/private_membership - third_party/protobuf - third_party/pthreadpool - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rnnoise - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/shell-encryption - third_party/simplejson - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/subzero - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv - third_party/swiftshader/third_party/SPIRV-Tools - third_party/tensorflow_models - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/ruy - third_party/six - third_party/ukey2 - third_party/unrar - third_party/utf - third_party/vulkan - third_party/wayland - third_party/web-animations-js - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/xnnpack - third_party/zxcvbn-cpp - third_party/zlib/google - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/valgrind - v8/src/third_party/utf8-decoder - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - if ! use system-ffmpeg; then - keeplibs+=( third_party/ffmpeg third_party/opus ) - fi - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - if ! use system-png; then - keeplibs+=( third_party/libpng ) - fi - if ! use system-av1; then - keeplibs+=( - third_party/dav1d - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/SVT-AV1 - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - ) - fi - if ! use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng ) - fi - if use libcxx; then - keeplibs+=( third_party/re2 ) - fi - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - # requires git and clang, bug #832803 - sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \ - generate_gni.sh || die - ./generate_gni.sh || die - popd >/dev/null || die - - pushd third_party/ffmpeg >/dev/null || die - cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die - cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die - popd >/dev/null || die - fi - - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if needs_clang && ! tc-is-clang; then - # Force clang since gcc is either broken or build is using libcxx. - if tc-is-cross-compiler; then - CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}" - CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}" - BUILD_CC=${CBUILD}-clang - BUILD_CXX=${CBUILD}-clang++ - else - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - fi - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - myconf_gn+=" is_clang=false" - fi - - # Force lld for lto or pgo builds only, otherwise disable, bug 641556 - if use lto || use pgo; then - myconf_gn+=" use_lld=true" - else - myconf_gn+=" use_lld=false" - fi - - if use lto || use pgo; then - AR=llvm-ar - NM=llvm-nm - if tc-is-cross-compiler; then - BUILD_AR=llvm-ar - BUILD_NM=llvm-nm - fi - fi - - # Define a custom toolchain for GN - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" - - # setup cups-config, build system only uses --libs option - if use cups; then - mkdir "${T}/cups-config" || die - cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die - export PATH="${PATH}:${T}/cups-config" - fi - - # Don't inherit PKG_CONFIG_PATH from environment - local -x PKG_CONFIG_PATH= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # Create dummy pkg-config file for libsystemd, only dependency of installer - mkdir "${T}/libsystemd" || die - cat <<- EOF > "${T}/libsystemd/libsystemd.pc" - Name: - Description: - Version: - EOF - local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=false" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=$(usex component-build true false)" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # Use system-provided libraries. - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). - # TODO: use_system_hunspell (upstream changes needed). - # TODO: use_system_protobuf (bug #525560). - # TODO: use_system_sqlite (http://crbug.com/22208). - - # libevent: https://bugs.gentoo.org/593458 - local gn_system_libraries=( - flac - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-ffmpeg; then - gn_system_libraries+=( ffmpeg opus ) - fi - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-av1; then - gn_system_libraries+=( dav1d libaom ) - fi - # re2 library interface relies on std::string and std::vector - if ! use libcxx; then - gn_system_libraries+=( re2 ) - fi - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Disable deprecated libgnome-keyring dependency, bug #713012 - myconf_gn+=" use_gnome_keyring=false" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # TODO: link_pulseaudio=true for GN. - - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # Never use bundled gold binary. Disable gold linker flags for now. - # Do not use bundled clang. - # Trying to use gold results in linker crash. - myconf_gn+=" use_gold=false use_sysroot=false" - myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . - # Note: these are for Gentoo use ONLY. For your own distribution, - # please get your own set of keys. Feel free to contact chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - if ! use component-build || use x86; then - filter-flags "-g*" - fi - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - - if tc-is-gcc; then - # https://bugs.gentoo.org/904455 - append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)" - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = x86 ]] ; then - myconf_gn+=" target_cpu=\"x86\"" - ffmpeg_target_arch=ia32 - - # This is normally defined by compiler_cpu_abi in - # build/config/compiler/BUILD.gn, but we patch that part out. - append-flags -msse2 -mfpmath=sse -mmmx - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = arm ]] ; then - myconf_gn+=" target_cpu=\"arm\"" - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Disable external code space for V8 for ppc64. It is disabled for ppc64 - # by default, but cross-compiling on amd64 enables it again. - if tc-is-cross-compiler; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - #if ! use system-ffmpeg; then - if false; then - local build_ffmpeg_args="" - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then - build_ffmpeg_args+=" --disable-asm" - fi - - # Re-configure bundled ffmpeg. See bug #491378 for example reasons. - einfo "Configuring bundled ffmpeg..." - pushd third_party/ffmpeg > /dev/null || die - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die - chromium/scripts/copy_config.sh || die - chromium/scripts/generate_gn.py || die - popd > /dev/null || die - fi - - # Disable unknown warning message from clang. - if tc-is-clang; then - append-flags -Wno-unknown-warning-option - if tc-is-cross-compiler; then - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - fi - fi - - # Explicitly disable ICU data file support for system-icu/headless builds. - if use system-icu || use headless; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5; then - local moc_dir="$(qt5_get_bindir)" - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin - fi - export PATH="${PATH}:${moc_dir}" - fi - myconf_gn+=" use_qt=$(usex qt5 true false)" - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - # Results in undefined references in chrome linking, may require CFI to work - if use arm64; then - myconf_gn+=" arm_control_flow_integrity=\"none\"" - fi - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - myconf_gn+=" use_thin_lto=$(usex lto true false)" - myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - # Disable CFI: unsupported for GCC, requires clang+lto+lld - myconf_gn+=" is_cfi=false" - # Don't add symbols to build - myconf_gn+=" symbol_level=0" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=${1}" - if [[ "$1" == "2" ]]; then - myconf_gn+=" pgo_data_path=\"${2}\"" - fi - else - # Disable PGO, because profile data is only compatible with >=clang-11 - myconf_gn+=" chrome_pgo_phase=0" - fi - - # user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639 - if use arm64 && tc-is-gcc; then - sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \ - third_party/crc32c/src/src/crc32c_arm64.cc || die - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_configure() { - chromium_configure $(usex pgo 1 0) -} - -chromium_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - # Build mksnapshot and pax-mark it. - if use pax-kernel; then - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - fi - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver - use suid && eninja -C out/Release chrome_sandbox - - pax-mark m out/Release/chrome -} - -# This function is called from virtx, and must always return so that Xvfb -# session isn't left running. If we return 1, virtx will call die(). -chromium_profile() { - einfo "Profiling for PGO" - - pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 - - # Remove old profdata in case profiling was interrupted. - rm -rf "${1}" || return 1 - - if ! "${EPYTHON}" ./chromium_profiler.py \ - --chrome-executable "${S}/out/Release/chrome" \ - --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ - --add-arg no-sandbox --add-arg disable-dev-shm-usage \ - --profile-output "${1}"; then - eerror "Profiling failed" - return 1 - fi - - popd >/dev/null || return 1 -} - -src_compile() { - if use pgo; then - local profdata - - profdata="${WORKDIR}/chromium.profdata" - - if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then - chromium_compile - virtx chromium_profile "$profdata" - - touch "${WORKDIR}/.pgo-profiled" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then - # Remove phase 1 output - rm -r out/Release || die - - chromium_configure 2 "$profdata" - - touch "${WORKDIR}/.pgo-phase-2-configured" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then - chromium_compile - touch "${WORKDIR}/.pgo-phase-2-compiled" || die - fi - else - chromium_compile - fi - - mv out/Release/chromedriver{.unstripped,} || die - - rm -f out/Release/locales/*.pak.info || die - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - if use suid; then - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - fi - - doexe out/Release/chromedriver - doexe out/Release/chrome_crashpad_handler - - ozone_auto_session () { - use X && use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" - doins out/Release/xdg-{settings,mime} - - if ! use system-icu && ! use headless; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - doins out/Release/vk_swiftshader_icd.json - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if ! use headless; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - fi - if use screencast; then - elog "Screencast is disabled by default at runtime. Either enable it" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use gtk4; then - elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" - elog "behavior you need to pass --gtk-version=4, e.g. by adding it" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - fi -} diff --git a/www-client/chromium/chromium-113.0.5672.92.ebuild b/www-client/chromium/chromium-113.0.5672.92.ebuild deleted file mode 100644 index 73c153d99a70..000000000000 --- a/www-client/chromium/chromium-113.0.5672.92.ebuild +++ /dev/null @@ -1,1265 +0,0 @@ -# Copyright 2009-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="xml(+)" -LLVM_MAX_SLOT=16 - -CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr - sv sw ta te th tr uk ur vi zh-CN zh-TW" - -VIRTUALX_REQUIRED="pgo" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils -inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils - -DESCRIPTION="Open-source version of Google Chrome web browser" -HOMEPAGE="https://chromium.org/" -PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public" -PATCHSET_NAME_PPC64="chromium_113.0.5672.63-2raptor0~deb11u1.debian" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz - https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz - ppc64? ( - ${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz - https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz - ) - pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" - -LICENSE="BSD" -SLOT="0/stable" -KEYWORDS="~amd64 ~arm64" -IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine" -REQUIRED_USE=" - component-build? ( !suid !libcxx ) - screencast? ( wayland ) - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) -" - -COMMON_X_DEPEND=" - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxshmfence:= -" - -COMMON_SNAPSHOT_DEPEND=" - system-icu? ( >=dev-libs/icu-71.1:= ) - >=dev-libs/libxml2-2.9.4-r3:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - !libcxx? ( >=dev-libs/re2-0.2019.08.01:= ) - dev-libs/libxslt:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - system-png? ( media-libs/libpng:=[-apng(-)] ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - system-av1? ( - >=media-libs/dav1d-1.0.0:= - >=media-libs/libaom-3.4.0:= - ) - sys-libs/zlib:= - x11-libs/libdrm:= - !headless? ( - dev-libs/glib:2 - >=media-libs/alsa-lib-1.0.19:= - pulseaudio? ( media-sound/pulseaudio:= ) - sys-apps/pciutils:= - kerberos? ( virtual/krb5 ) - vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) - X? ( - x11-libs/libX11:= - x11-libs/libXext:= - x11-libs/libxcb:= - ) - x11-libs/libxkbcommon:= - wayland? ( - dev-libs/libffi:= - screencast? ( media-video/pipewire:= ) - ) - ) -" - -COMMON_DEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - app-arch/bzip2:= - dev-libs/expat:= - system-ffmpeg? ( - >=media-video/ffmpeg-4.3:= - || ( - media-video/ffmpeg[-samba] - >=net-fs/samba-4.5.10-r1[-debug(-)] - ) - >=media-libs/opus-1.3.1:= - ) - net-misc/curl[ssl] - sys-apps/dbus:= - media-libs/flac:= - sys-libs/zlib:=[minizip] - !headless? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[X?,wayland?] ) - ) - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) -" -DEPEND="${COMMON_DEPEND} - !headless? ( - gtk4? ( gui-libs/gtk:4[X?,wayland?] ) - !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) - ) -" - -depend_clang_llvm_version() { - echo "sys-devel/clang:$1" - echo "sys-devel/llvm:$1" - echo "=sys-devel/lld-$1*" -} - -depend_clang_llvm_versions() { - local _v - if [[ $# -gt 1 ]]; then - echo "|| (" - for _v in "$@"; do - echo "(" - depend_clang_llvm_version "${_v}" - echo ")" - done - echo ")" - elif [[ $# -eq 1 ]]; then - depend_clang_llvm_version "$1" - fi -} - -BDEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - !headless? ( - qt5? ( dev-qt/qtcore:5 ) - ) - libcxx? ( >=sys-devel/clang-16 ) - lto? ( $(depend_clang_llvm_versions 16) ) - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - $(depend_clang_llvm_versions 16) - ) - dev-lang/perl - >=dev-util/gn-0.1807 - >=dev-util/gperf-3.0.3 - >=dev-util/ninja-1.7.2 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig -" - -# These are intended for ebuild maintainer use to force clang if GCC is broken. -: ${CHROMIUM_FORCE_CLANG=no} - -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then - BDEPEND+=" >=sys-devel/clang-16" -fi - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -needs_clang() { - [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo -} - -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 lto || use pgo ) && ! 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 - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -pre_build_checks() { - # Check build requirements, bug #541816 and bug #471810 . - CHECKREQS_MEMORY="4G" - CHECKREQS_DISK_BUILD="12G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G" - if use lto || use pgo; then - CHECKREQS_MEMORY="9G" - CHECKREQS_DISK_BUILD="13G" - tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G" - use pgo && CHECKREQS_DISK_BUILD="20G" - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags || use component-build; then - CHECKREQS_DISK_BUILD="25G" - fi - if ! use component-build; then - CHECKREQS_MEMORY="16G" - fi - fi - check-reqs_${EBUILD_PHASE_FUNC} -} - -pkg_pretend() { - pre_build_checks - - if use headless; then - local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland") - for myiuse in ${headless_unused_flags[@]}; do - use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set." - done - fi -} - -pkg_setup() { - if use lto || use pgo; then - llvm_pkg_setup - fi - - pre_build_checks - - if [[ ${MERGE_TYPE} != binary ]]; then - local -x CPP="$(tc-getCXX) -E" - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then - die "At least gcc 12 is required" - fi - if use pgo && tc-is-cross-compiler; then - die "The pgo USE flag cannot be used when cross-compiling" - fi - if needs_clang && ! tc-is-clang; then - if tc-is-cross-compiler; then - CPP="${CBUILD}-clang++ -E" - else - CPP="${CHOST}-clang++ -E" - fi - if ! ver_test "$(clang-major-version)" -ge 16; then - die "At least clang 16 is required" - fi - fi - fi - - chromium_suid_sandbox_check_kernel_config - - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable" - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default." - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" || die - - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0002-perfetto.patch" || die - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0012-webrtc-base64.patch" || die - rm "${WORKDIR}/chromium-112-gcc-13-patches/chromium-112-gcc-13-0013-quiche.patch" || die - - local PATCHES=( - #"${WORKDIR}/patches" - "${FILESDIR}/chromium-98-gtk4-build.patch" - "${FILESDIR}/chromium-108-EnumTable-crash.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-109-system-openh264.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-113-compiler.patch" - "${WORKDIR}/chromium-112-gcc-13-patches" - "${FILESDIR}/chromium-113-swiftshader-cstdint.patch" - "${FILESDIR}/chromium-113-system-zlib.patch" - "${FILESDIR}/chromium-113-web_view_impl-cstring.patch" - "${FILESDIR}/chromium-113-std-monospace.patch" - "${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch" - ) - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - fi - - default - - mkdir -p third_party/node/linux/node-linux-x64/bin || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die - - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/dynamic_annotations - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/valgrind - base/third_party/xdg_mime - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - courgette/third_party - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/ceval - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/systeminfo - third_party/angle/src/third_party/volk - third_party/apple_apsl - third_party/axe-core - third_party/blink - third_party/bidimapper - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/content_analysis_sdk - third_party/cpuinfo - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/dawn - third_party/dawn/third_party/gn/webgpu-cts - third_party/dawn/third_party/khronos - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/devtools-frontend/src/front_end/third_party/axe-core - third_party/devtools-frontend/src/front_end/third_party/chromium - third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/diff - third_party/devtools-frontend/src/front_end/third_party/i18n - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat - third_party/devtools-frontend/src/front_end/third_party/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt - third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fdlibm - third_party/fft2d - third_party/flatbuffers - third_party/fp16 - third_party/freetype - third_party/fusejs - third_party/fxdiv - third_party/highway - third_party/liburlpattern - third_party/libzip - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/hunspell - third_party/iccjpeg - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - third_party/khronos - third_party/leveldatabase - third_party/libaddressinput - third_party/libavif - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libudev - third_party/libva_protected_content - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/llvm - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/maldoca - third_party/maldoca/src/third_party/tensorflow_protos - third_party/maldoca/src/third_party/zlibwrapper - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/omnibox_proto - third_party/one_euro_filter - third_party/openscreen - third_party/openscreen/src/third_party/mozilla - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg - third_party/pdfium/third_party/libtiff - third_party/pdfium/third_party/skia_shared - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/pffft - third_party/ply - third_party/polymer - third_party/private-join-and-compute - third_party/private_membership - third_party/protobuf - third_party/pthreadpool - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/rnnoise - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/shell-encryption - third_party/simplejson - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/subzero - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv - third_party/swiftshader/third_party/SPIRV-Tools - third_party/tensorflow_models - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/ruy - third_party/six - third_party/ukey2 - third_party/unrar - third_party/utf - third_party/vulkan - third_party/wayland - third_party/web-animations-js - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/xnnpack - third_party/zxcvbn-cpp - third_party/zlib/google - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/valgrind - v8/src/third_party/utf8-decoder - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - if ! use system-ffmpeg; then - keeplibs+=( third_party/ffmpeg third_party/opus ) - fi - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - if ! use system-png; then - keeplibs+=( third_party/libpng ) - fi - if ! use system-av1; then - keeplibs+=( - third_party/dav1d - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/SVT-AV1 - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - ) - fi - if ! use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng ) - fi - if use libcxx; then - keeplibs+=( third_party/re2 ) - fi - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - # requires git and clang, bug #832803 - sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \ - generate_gni.sh || die - ./generate_gni.sh || die - popd >/dev/null || die - - pushd third_party/ffmpeg >/dev/null || die - cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die - cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die - popd >/dev/null || die - fi - - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if needs_clang && ! tc-is-clang; then - # Force clang since gcc is either broken or build is using libcxx. - if tc-is-cross-compiler; then - CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}" - CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}" - BUILD_CC=${CBUILD}-clang - BUILD_CXX=${CBUILD}-clang++ - else - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - fi - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - myconf_gn+=" is_clang=false" - fi - - # Force lld for lto or pgo builds only, otherwise disable, bug 641556 - if use lto || use pgo; then - myconf_gn+=" use_lld=true" - else - myconf_gn+=" use_lld=false" - fi - - if use lto || use pgo; then - AR=llvm-ar - NM=llvm-nm - if tc-is-cross-compiler; then - BUILD_AR=llvm-ar - BUILD_NM=llvm-nm - fi - fi - - # Define a custom toolchain for GN - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" - - # setup cups-config, build system only uses --libs option - if use cups; then - mkdir "${T}/cups-config" || die - cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die - export PATH="${PATH}:${T}/cups-config" - fi - - # Don't inherit PKG_CONFIG_PATH from environment - local -x PKG_CONFIG_PATH= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # Create dummy pkg-config file for libsystemd, only dependency of installer - mkdir "${T}/libsystemd" || die - cat <<- EOF > "${T}/libsystemd/libsystemd.pc" - Name: - Description: - Version: - EOF - local -x PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+"${PKG_CONFIG_PATH}:"}${T}/libsystemd" - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=false" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=$(usex component-build true false)" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # Use system-provided libraries. - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). - # TODO: use_system_hunspell (upstream changes needed). - # TODO: use_system_protobuf (bug #525560). - # TODO: use_system_sqlite (http://crbug.com/22208). - - # libevent: https://bugs.gentoo.org/593458 - local gn_system_libraries=( - flac - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-ffmpeg; then - gn_system_libraries+=( ffmpeg opus ) - fi - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-av1; then - gn_system_libraries+=( dav1d libaom ) - fi - # re2 library interface relies on std::string and std::vector - if ! use libcxx; then - gn_system_libraries+=( re2 ) - fi - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Disable deprecated libgnome-keyring dependency, bug #713012 - myconf_gn+=" use_gnome_keyring=false" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # TODO: link_pulseaudio=true for GN. - - myconf_gn+=" disable_fieldtrial_testing_config=true" - - # Never use bundled gold binary. Disable gold linker flags for now. - # Do not use bundled clang. - # Trying to use gold results in linker crash. - myconf_gn+=" use_gold=false use_sysroot=false" - myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)" - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . - # Note: these are for Gentoo use ONLY. For your own distribution, - # please get your own set of keys. Feel free to contact chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - if ! use component-build || use x86; then - filter-flags "-g*" - fi - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - - if tc-is-gcc; then - # https://bugs.gentoo.org/904455 - append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)" - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = x86 ]] ; then - myconf_gn+=" target_cpu=\"x86\"" - ffmpeg_target_arch=ia32 - - # This is normally defined by compiler_cpu_abi in - # build/config/compiler/BUILD.gn, but we patch that part out. - append-flags -msse2 -mfpmath=sse -mmmx - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = arm ]] ; then - myconf_gn+=" target_cpu=\"arm\"" - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Disable external code space for V8 for ppc64. It is disabled for ppc64 - # by default, but cross-compiling on amd64 enables it again. - if tc-is-cross-compiler; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - #if ! use system-ffmpeg; then - if false; then - local build_ffmpeg_args="" - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then - build_ffmpeg_args+=" --disable-asm" - fi - - # Re-configure bundled ffmpeg. See bug #491378 for example reasons. - einfo "Configuring bundled ffmpeg..." - pushd third_party/ffmpeg > /dev/null || die - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die - chromium/scripts/copy_config.sh || die - chromium/scripts/generate_gn.py || die - popd > /dev/null || die - fi - - # Disable unknown warning message from clang. - if tc-is-clang; then - append-flags -Wno-unknown-warning-option - if tc-is-cross-compiler; then - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - fi - fi - - # Explicitly disable ICU data file support for system-icu/headless builds. - if use system-icu || use headless; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5; then - local moc_dir="$(qt5_get_bindir)" - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin - fi - export PATH="${PATH}:${moc_dir}" - fi - myconf_gn+=" use_qt=$(usex qt5 true false)" - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - # Results in undefined references in chrome linking, may require CFI to work - if use arm64; then - myconf_gn+=" arm_control_flow_integrity=\"none\"" - fi - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - myconf_gn+=" use_thin_lto=$(usex lto true false)" - myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - # Disable CFI: unsupported for GCC, requires clang+lto+lld - myconf_gn+=" is_cfi=false" - # Don't add symbols to build - myconf_gn+=" symbol_level=0" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=${1}" - if [[ "$1" == "2" ]]; then - myconf_gn+=" pgo_data_path=\"${2}\"" - fi - else - # Disable PGO, because profile data is only compatible with >=clang-11 - myconf_gn+=" chrome_pgo_phase=0" - fi - - # user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639 - if use arm64 && tc-is-gcc; then - sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \ - third_party/crc32c/src/src/crc32c_arm64.cc || die - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_configure() { - chromium_configure $(usex pgo 1 0) -} - -chromium_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - # Build mksnapshot and pax-mark it. - if use pax-kernel; then - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - fi - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver - use suid && eninja -C out/Release chrome_sandbox - - pax-mark m out/Release/chrome -} - -# This function is called from virtx, and must always return so that Xvfb -# session isn't left running. If we return 1, virtx will call die(). -chromium_profile() { - einfo "Profiling for PGO" - - pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 - - # Remove old profdata in case profiling was interrupted. - rm -rf "${1}" || return 1 - - if ! "${EPYTHON}" ./chromium_profiler.py \ - --chrome-executable "${S}/out/Release/chrome" \ - --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ - --add-arg no-sandbox --add-arg disable-dev-shm-usage \ - --profile-output "${1}"; then - eerror "Profiling failed" - return 1 - fi - - popd >/dev/null || return 1 -} - -src_compile() { - if use pgo; then - local profdata - - profdata="${WORKDIR}/chromium.profdata" - - if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then - chromium_compile - virtx chromium_profile "$profdata" - - touch "${WORKDIR}/.pgo-profiled" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then - # Remove phase 1 output - rm -r out/Release || die - - chromium_configure 2 "$profdata" - - touch "${WORKDIR}/.pgo-phase-2-configured" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then - chromium_compile - touch "${WORKDIR}/.pgo-phase-2-compiled" || die - fi - else - chromium_compile - fi - - mv out/Release/chromedriver{.unstripped,} || die - - rm -f out/Release/locales/*.pak.info || die - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - if use suid; then - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - fi - - doexe out/Release/chromedriver - doexe out/Release/chrome_crashpad_handler - - ozone_auto_session () { - use X && use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" - doins out/Release/xdg-{settings,mime} - - if ! use system-icu && ! use headless; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - doins out/Release/vk_swiftshader_icd.json - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if ! use headless; then - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - fi - if use screencast; then - elog "Screencast is disabled by default at runtime. Either enable it" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use gtk4; then - elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" - elog "behavior you need to pass --gtk-version=4, e.g. by adding it" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - fi -} diff --git a/www-client/chromium/chromium-114.0.5735.110.ebuild b/www-client/chromium/chromium-114.0.5735.110.ebuild new file mode 100644 index 000000000000..93dd9e57ce08 --- /dev/null +++ b/www-client/chromium/chromium-114.0.5735.110.ebuild @@ -0,0 +1,1268 @@ +# Copyright 2009-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="xml(+)" +LLVM_MAX_SLOT=16 + +CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he + hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr + sv sw ta te th tr uk ur vi zh-CN zh-TW" + +VIRTUALX_REQUIRED="pgo" + +inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils +inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="https://chromium.org/" +PATCHSET_URI_PPC64="https://quickbuild.io/~raptor-engineering-public" +PATCHSET_NAME_PPC64="chromium_114.0.5735.106-1raptor0~deb11u1.debian" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz + https://dev.gentoo.org/~sam/distfiles/www-client/chromium/chromium-112-gcc-13-patches.tar.xz + ppc64? ( + ${PATCHSET_URI_PPC64}/+archive/ubuntu/chromium/+files/${PATCHSET_NAME_PPC64}.tar.xz + https://dev.gentoo.org/~sultan/distfiles/www-client/chromium/chromium-ppc64le-gentoo-patches-1.tar.xz + ) + pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" + +LICENSE="BSD" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64 ~ppc64" +IUSE="+X component-build cups cpu_flags_arm_neon debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo pic +proprietary-codecs pulseaudio qt5 screencast selinux +suid +system-av1 +system-ffmpeg +system-harfbuzz +system-icu +system-png vaapi wayland widevine" +REQUIRED_USE=" + component-build? ( !suid !libcxx ) + screencast? ( wayland ) + !headless? ( || ( X wayland ) ) + pgo? ( X !wayland ) +" + +COMMON_X_DEPEND=" + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXtst:= + x11-libs/libxshmfence:= +" + +COMMON_SNAPSHOT_DEPEND=" + system-icu? ( >=dev-libs/icu-71.1:= ) + >=dev-libs/libxml2-2.9.4-r3:=[icu] + dev-libs/nspr:= + >=dev-libs/nss-3.26:= + !libcxx? ( >=dev-libs/re2-0.2019.08.01:= ) + dev-libs/libxslt:= + media-libs/fontconfig:= + >=media-libs/freetype-2.11.0-r1:= + system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) + media-libs/libjpeg-turbo:= + system-png? ( media-libs/libpng:=[-apng(-)] ) + >=media-libs/libwebp-0.4.0:= + media-libs/mesa:=[gbm(+)] + >=media-libs/openh264-1.6.0:= + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-3.4.0:= + ) + sys-libs/zlib:= + x11-libs/libdrm:= + !headless? ( + dev-libs/glib:2 + >=media-libs/alsa-lib-1.0.19:= + pulseaudio? ( media-sound/pulseaudio:= ) + sys-apps/pciutils:= + kerberos? ( virtual/krb5 ) + vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) + X? ( + x11-libs/libX11:= + x11-libs/libXext:= + x11-libs/libxcb:= + ) + x11-libs/libxkbcommon:= + wayland? ( + dev-libs/libffi:= + screencast? ( media-video/pipewire:= ) + ) + ) +" + +COMMON_DEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + app-arch/bzip2:= + dev-libs/expat:= + system-ffmpeg? ( + >=media-video/ffmpeg-4.3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + >=media-libs/opus-1.3.1:= + ) + net-misc/curl[ssl] + sys-apps/dbus:= + media-libs/flac:= + sys-libs/zlib:=[minizip] + !headless? ( + X? ( ${COMMON_X_DEPEND} ) + >=app-accessibility/at-spi2-core-2.46.0:2 + media-libs/mesa:=[X?,wayland?] + cups? ( >=net-print/cups-1.3.11:= ) + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/pango:= + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtwidgets:5 + ) + ) +" +RDEPEND="${COMMON_DEPEND} + !headless? ( + || ( + x11-libs/gtk+:3[X?,wayland?] + gui-libs/gtk:4[X?,wayland?] + ) + qt5? ( dev-qt/qtgui:5[X?,wayland?] ) + ) + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) +" +DEPEND="${COMMON_DEPEND} + !headless? ( + gtk4? ( gui-libs/gtk:4[X?,wayland?] ) + !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) + ) +" + +depend_clang_llvm_version() { + echo "sys-devel/clang:$1" + echo "sys-devel/llvm:$1" + echo "=sys-devel/lld-$1*" +} + +depend_clang_llvm_versions() { + local _v + if [[ $# -gt 1 ]]; then + echo "|| (" + for _v in "$@"; do + echo "(" + depend_clang_llvm_version "${_v}" + echo ")" + done + echo ")" + elif [[ $# -eq 1 ]]; then + depend_clang_llvm_version "$1" + fi +} + +BDEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + >=app-arch/gzip-1.7 + !headless? ( + qt5? ( dev-qt/qtcore:5 ) + ) + libcxx? ( >=sys-devel/clang-16 ) + lto? ( $(depend_clang_llvm_versions 16) ) + pgo? ( + >=dev-python/selenium-3.141.0 + >=dev-util/web_page_replay_go-20220314 + $(depend_clang_llvm_versions 16) + ) + dev-lang/perl + >=dev-util/gn-0.1807 + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + dev-vcs/git + >=net-libs/nodejs-7.6.0[inspector] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig +" + +# These are intended for ebuild maintainer use to force clang if GCC is broken. +: ${CHROMIUM_FORCE_CLANG=no} + +if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then + BDEPEND+=" >=sys-devel/clang-16" +fi + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Some web pages may require additional fonts to display properly. +Try installing some of the following packages if some characters +are not displayed properly: +- media-fonts/arphicfonts +- media-fonts/droid +- media-fonts/ipamonafont +- media-fonts/noto +- media-fonts/ja-ipafonts +- media-fonts/takao-fonts +- media-fonts/wqy-microhei +- media-fonts/wqy-zenhei + +To fix broken icons on the Downloads page, you should install an icon +theme that covers the appropriate MIME types, and configure this as your +GTK+ icon theme. + +For native file dialogs in KDE, install kde-apps/kdialog. + +To make password storage work with your desktop environment you may +have install one of the supported credentials management applications: +- app-crypt/libsecret (GNOME) +- kde-frameworks/kwallet (KDE) +If you have one of above packages installed, but don't want to use +them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS +in /etc/chromium/default. +" + +python_check_deps() { + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" +} + +needs_clang() { + [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo +} + +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 lto || use pgo ) && ! 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 + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +pre_build_checks() { + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="4G" + CHECKREQS_DISK_BUILD="12G" + tc-is-cross-compiler && CHECKREQS_DISK_BUILD="14G" + if use lto || use pgo; then + CHECKREQS_MEMORY="9G" + CHECKREQS_DISK_BUILD="13G" + tc-is-cross-compiler && CHECKREQS_DISK_BUILD="16G" + use pgo && CHECKREQS_DISK_BUILD="20G" + fi + if is-flagq '-g?(gdb)?([1-9])'; then + if use custom-cflags || use component-build; then + CHECKREQS_DISK_BUILD="25G" + fi + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + check-reqs_${EBUILD_PHASE_FUNC} +} + +pkg_pretend() { + pre_build_checks + + if use headless; then + local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "vaapi" "wayland") + for myiuse in ${headless_unused_flags[@]}; do + use ${myiuse} && ewarn "Ignoring USE=${myiuse} since USE=headless is set." + done + fi +} + +pkg_setup() { + if use lto || use pgo; then + llvm_pkg_setup + fi + + pre_build_checks + + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 12; then + die "At least gcc 12 is required" + fi + if use pgo && tc-is-cross-compiler; then + die "The pgo USE flag cannot be used when cross-compiling" + fi + if needs_clang && ! tc-is-clang; then + if tc-is-cross-compiler; then + CPP="${CBUILD}-clang++ -E" + else + CPP="${CHOST}-clang++ -E" + fi + if ! ver_test "$(clang-major-version)" -ge 16; then + die "At least clang 16 is required" + fi + fi + fi + + chromium_suid_sandbox_check_kernel_config + +} + +src_prepare() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # disable global media controls, crashes with libstdc++ + sed -i -e \ + "/\"GlobalMediaControlsCastStartStop\",/{n;s/ENABLED/DISABLED/;}" \ + "chrome/browser/media/router/media_router_feature.cc" || die + # Tis lazy, but tidy this up in 115. + pushd "${WORKDIR}/chromium-112-gcc-13-patches/" || die + rm chromium-112-gcc-13-0002-perfetto.patch || die + rm chromium-112-gcc-13-0004-swiftshader.patch || die + rm chromium-112-gcc-13-0007-misc.patch || die + rm chromium-112-gcc-13-0008-dawn.patch || die + rm chromium-112-gcc-13-0009-base.patch || die + rm chromium-112-gcc-13-0010-components.patch || die + rm chromium-112-gcc-13-0011-s2cellid.patch || die + rm chromium-112-gcc-13-0012-webrtc-base64.patch || die + rm chromium-112-gcc-13-0013-quiche.patch || die + rm chromium-112-gcc-13-0015-net.patch || die + rm chromium-112-gcc-13-0016-cc-targetproperty.patch || die + rm chromium-112-gcc-13-0017-gpu_feature_info.patch || die + rm chromium-112-gcc-13-0018-encounteredsurfacetracker.patch || die + rm chromium-112-gcc-13-0019-documentattachmentinfo.patch || die + rm chromium-112-gcc-13-0020-pdfium.patch || die + rm chromium-112-gcc-13-0021-gcc-copy-list-init-net-HostCache.patch || die + rm chromium-112-gcc-13-0022-gcc-ambiguous-ViewTransitionElementId-type.patch || die + rm chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch || die + popd || die + + local PATCHES=( + "${FILESDIR}/chromium-cross-compile.patch" + "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" + "${FILESDIR}/chromium-98-gtk4-build.patch" + "${FILESDIR}/chromium-108-EnumTable-crash.patch" + "${FILESDIR}/chromium-109-system-openh264.patch" + "${FILESDIR}/chromium-109-system-zlib.patch" + "${FILESDIR}/chromium-111-InkDropHost-crash.patch" + "${WORKDIR}/chromium-112-gcc-13-patches" + "${FILESDIR}/chromium-113-gcc-13-0001-vulkanmemoryallocator.patch" + "${FILESDIR}/chromium-113-swiftshader-cstdint.patch" + "${FILESDIR}/chromium-114-compiler.patch" + "${FILESDIR}/chromium-114-gcc12.patch" + "${FILESDIR}/chromium-114-sigsegv-dom.patch" + ) + + if use ppc64 ; then + local p + for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do + if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then + eapply "${WORKDIR}/debian/patches/${p}" + fi + done + PATCHES+=( "${WORKDIR}/ppc64le" ) + fi + + default + + mkdir -p third_party/node/linux/node-linux-x64/bin || die + ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die + + # adjust python interpreter version + sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die + sed -i -e "s|vpython3|${EPYTHON}|g" testing/xvfb.py || die + + local keeplibs=( + base/third_party/cityhash + base/third_party/double_conversion + base/third_party/dynamic_annotations + base/third_party/icu + base/third_party/nspr + base/third_party/superfasthash + base/third_party/symbolize + base/third_party/valgrind + base/third_party/xdg_mime + base/third_party/xdg_user_dirs + buildtools/third_party/libc++ + buildtools/third_party/libc++abi + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + net/third_party/quic + net/third_party/uri_template + third_party/abseil-cpp + third_party/angle + third_party/angle/src/common/third_party/xxhash + third_party/angle/src/third_party/ceval + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/systeminfo + third_party/angle/src/third_party/volk + third_party/apple_apsl + third_party/axe-core + third_party/blink + third_party/bidimapper + third_party/boringssl + third_party/boringssl/src/third_party/fiat + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + third_party/brotli + third_party/catapult + third_party/catapult/common/py_vulcanize/third_party/rcssmin + third_party/catapult/common/py_vulcanize/third_party/rjsmin + third_party/catapult/third_party/beautifulsoup4-4.9.3 + third_party/catapult/third_party/html5lib-1.1 + third_party/catapult/third_party/polymer + third_party/catapult/third_party/six + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jpeg-js + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/catapult/tracing/third_party/pako + third_party/ced + third_party/cld_3 + third_party/closure_compiler + third_party/content_analysis_sdk + third_party/cpuinfo + third_party/crashpad + third_party/crashpad/crashpad/third_party/lss + third_party/crashpad/crashpad/third_party/zlib + third_party/crc32c + third_party/cros_system_api + third_party/dawn + third_party/dawn/third_party/gn/webgpu-cts + third_party/dawn/third_party/khronos + third_party/depot_tools + third_party/devscripts + third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party/acorn + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/devtools-frontend/src/front_end/third_party/axe-core + third_party/devtools-frontend/src/front_end/third_party/chromium + third_party/devtools-frontend/src/front_end/third_party/codemirror + third_party/devtools-frontend/src/front_end/third_party/diff + third_party/devtools-frontend/src/front_end/third_party/i18n + third_party/devtools-frontend/src/front_end/third_party/intl-messageformat + third_party/devtools-frontend/src/front_end/third_party/lighthouse + third_party/devtools-frontend/src/front_end/third_party/lit + third_party/devtools-frontend/src/front_end/third_party/lodash-isequal + third_party/devtools-frontend/src/front_end/third_party/marked + third_party/devtools-frontend/src/front_end/third_party/puppeteer + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data + third_party/devtools-frontend/src/front_end/third_party/wasmparser + third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n + third_party/devtools-frontend/src/third_party + third_party/distributed_point_functions + third_party/dom_distiller_js + third_party/eigen3 + third_party/emoji-segmenter + third_party/farmhash + third_party/fdlibm + third_party/fft2d + third_party/flatbuffers + third_party/fp16 + third_party/freetype + third_party/fusejs + third_party/fxdiv + third_party/highway + third_party/liburlpattern + third_party/libzip + third_party/gemmlowp + third_party/google_input_tools + third_party/google_input_tools/third_party/closure_library + third_party/google_input_tools/third_party/closure_library/third_party/closure + third_party/googletest + third_party/hunspell + third_party/iccjpeg + third_party/inspector_protocol + third_party/ipcz + third_party/jinja2 + third_party/jsoncpp + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libaddressinput + third_party/libavif + third_party/libevent + third_party/libgav1 + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libsync + third_party/libudev + third_party/libva_protected_content + third_party/libvpx + third_party/libvpx/source/libvpx/third_party/x86inc + third_party/libwebm + third_party/libx11 + third_party/libxcb-keysyms + third_party/libxml/chromium + third_party/libyuv + third_party/llvm + third_party/lottie + third_party/lss + third_party/lzma_sdk + third_party/mako + third_party/maldoca + third_party/maldoca/src/third_party/tensorflow_protos + third_party/maldoca/src/third_party/zlibwrapper + third_party/markupsafe + third_party/material_color_utilities + third_party/mesa + third_party/metrics_proto + third_party/minigbm + third_party/modp_b64 + third_party/nasm + third_party/nearby + third_party/neon_2_sse + third_party/node + third_party/omnibox_proto + third_party/one_euro_filter + third_party/openscreen + third_party/openscreen/src/third_party/mozilla + third_party/openscreen/src/third_party/tinycbor/src/src + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg + third_party/pdfium/third_party/libtiff + third_party/pdfium/third_party/skia_shared + third_party/perfetto + third_party/perfetto/protos/third_party/chromium + third_party/pffft + third_party/ply + third_party/polymer + third_party/private-join-and-compute + third_party/private_membership + third_party/protobuf + third_party/pthreadpool + third_party/pyjson5 + third_party/pyyaml + third_party/qcms + third_party/rnnoise + third_party/s2cellid + third_party/securemessage + third_party/selenium-atoms + third_party/shell-encryption + third_party/simplejson + third_party/skia + third_party/skia/include/third_party/vulkan + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/snappy + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/astc-encoder + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl + third_party/swiftshader/third_party/subzero + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv + third_party/swiftshader/third_party/SPIRV-Tools + third_party/tensorflow_models + third_party/tensorflow-text + third_party/tflite + third_party/tflite/src/third_party/eigen3 + third_party/tflite/src/third_party/fft2d + third_party/ruy + third_party/six + third_party/ukey2 + third_party/unrar + third_party/utf + third_party/vulkan + third_party/wayland + third_party/webdriver + third_party/webgpu-cts + third_party/webrtc + third_party/webrtc/common_audio/third_party/ooura + third_party/webrtc/common_audio/third_party/spl_sqrt_floor + third_party/webrtc/modules/third_party/fft + third_party/webrtc/modules/third_party/g711 + third_party/webrtc/modules/third_party/g722 + third_party/webrtc/rtc_base/third_party/base64 + third_party/webrtc/rtc_base/third_party/sigslot + third_party/widevine + third_party/woff2 + third_party/wuffs + third_party/x11proto + third_party/xcbproto + third_party/xnnpack + third_party/zxcvbn-cpp + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/siphash + v8/src/third_party/valgrind + v8/src/third_party/utf8-decoder + v8/third_party/glibc + v8/third_party/inspector_protocol + v8/third_party/v8 + + # gyp -> gn leftovers + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + ) + if ! use system-ffmpeg; then + keeplibs+=( third_party/ffmpeg third_party/opus ) + fi + if ! use system-icu; then + keeplibs+=( third_party/icu ) + fi + if ! use system-png; then + keeplibs+=( third_party/libpng ) + fi + if ! use system-av1; then + keeplibs+=( + third_party/dav1d + third_party/libaom + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/SVT-AV1 + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc + ) + fi + if ! use system-harfbuzz; then + keeplibs+=( third_party/harfbuzz-ng ) + fi + if use libcxx; then + keeplibs+=( third_party/re2 ) + fi + if use arm64 || use ppc64 ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) + fi + # we need to generate ppc64 stuff because upstream does not ship it yet + # it has to be done before unbundling. + if use ppc64; then + pushd third_party/libvpx >/dev/null || die + mkdir -p source/config/linux/ppc64 || die + # requires git and clang, bug #832803 + sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g" \ + generate_gni.sh || die + ./generate_gni.sh || die + popd >/dev/null || die + + pushd third_party/ffmpeg >/dev/null || die + cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die + cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die + popd >/dev/null || die + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die + + # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries + mkdir -p buildtools/third_party/eu-strip/bin || die + ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die +} + +chromium_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + local myconf_gn="" + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + if needs_clang && ! tc-is-clang; then + # Force clang since gcc is either broken or build is using libcxx. + if tc-is-cross-compiler; then + CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}" + CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}" + BUILD_CC=${CBUILD}-clang + BUILD_CXX=${CBUILD}-clang++ + else + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + fi + strip-unsupported-flags + fi + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # Force lld for lto or pgo builds only, otherwise disable, bug 641556 + if use lto || use pgo; then + myconf_gn+=" use_lld=true" + else + myconf_gn+=" use_lld=false" + fi + + if use lto || use pgo; then + AR=llvm-ar + NM=llvm-nm + if tc-is-cross-compiler; then + BUILD_AR=llvm-ar + BUILD_NM=llvm-nm + fi + fi + + # Define a custom toolchain for GN + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" + myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" + + # setup cups-config, build system only uses --libs option + if use cups; then + mkdir "${T}/cups-config" || die + cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die + export PATH="${PATH}:${T}/cups-config" + fi + + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # Disable rust for now; it's only used for testing and we don't need the additional bdep + myconf_gn+=" enable_rust=false" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=false" + + # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. + # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. + myconf_gn+=" dcheck_always_on=$(usex debug true false)" + myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" + + # Component build isn't generally intended for use by end users. It's mostly useful + # for development and debugging. + myconf_gn+=" is_component_build=$(usex component-build true false)" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + fontconfig + freetype + # Need harfbuzz_from_pkgconfig target + #harfbuzz-ng + libdrm + libjpeg + libwebp + libxml + libxslt + openh264 + zlib + ) + if use system-ffmpeg; then + gn_system_libraries+=( ffmpeg opus ) + fi + if use system-icu; then + gn_system_libraries+=( icu ) + fi + if use system-png; then + gn_system_libraries+=( libpng ) + fi + if use system-av1; then + gn_system_libraries+=( dav1d libaom ) + fi + # re2 library interface relies on std::string and std::vector + if ! use libcxx; then + gn_system_libraries+=( re2 ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # See dependency logic in third_party/BUILD.gn + myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" + + # Disable deprecated libgnome-keyring dependency, bug #713012 + myconf_gn+=" use_gnome_keyring=false" + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + + if use headless; then + myconf_gn+=" use_cups=false" + myconf_gn+=" use_kerberos=false" + myconf_gn+=" use_pulseaudio=false" + myconf_gn+=" use_vaapi=false" + myconf_gn+=" rtc_use_pipewire=false" + else + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + myconf_gn+=" use_vaapi=$(usex vaapi true false)" + myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" + myconf_gn+=" gtk_version=$(usex gtk4 4 3)" + fi + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" disable_fieldtrial_testing_config=true" + + # Never use bundled gold binary. Disable gold linker flags for now. + # Do not use bundled clang. + # Trying to use gold results in linker crash. + myconf_gn+=" use_gold=false use_sysroot=false" + myconf_gn+=" use_custom_libcxx=$(usex libcxx true false)" + + # Disable pseudolocales, only used for testing + myconf_gn+=" enable_pseudolocales=false" + + # Disable code formating of generated files + myconf_gn+=" blink_enable_generated_code_formatting=false" + + ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" + myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" + myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" + + # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . + # Note: these are for Gentoo use ONLY. For your own distribution, + # please get your own set of keys. Feel free to contact chromium@gentoo.org + # for more info. The OAuth2 credentials, however, have been left out. + # Those OAuth2 credentials have been broken for quite some time anyway. + # Instead we apply a patch to use the --oauth2-client-id= and + # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and + # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into + # Chromium without baked-in values. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + local myarch="$(tc-arch)" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Debug info section overflows without component build + # Prevent linker from running out of address space, bug #471810 . + if ! use component-build || use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + fi + + if tc-is-gcc; then + # https://bugs.gentoo.org/904455 + append-cxxflags "$(test-flags-CXX -fno-tree-vectorize)" + fi + fi + + if [[ $myarch = amd64 ]] ; then + myconf_gn+=" target_cpu=\"x64\"" + ffmpeg_target_arch=x64 + elif [[ $myarch = x86 ]] ; then + myconf_gn+=" target_cpu=\"x86\"" + ffmpeg_target_arch=ia32 + + # This is normally defined by compiler_cpu_abi in + # build/config/compiler/BUILD.gn, but we patch that part out. + append-flags -msse2 -mfpmath=sse -mmmx + elif [[ $myarch = arm64 ]] ; then + myconf_gn+=" target_cpu=\"arm64\"" + ffmpeg_target_arch=arm64 + elif [[ $myarch = arm ]] ; then + myconf_gn+=" target_cpu=\"arm\"" + ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) + elif [[ $myarch = ppc64 ]] ; then + myconf_gn+=" target_cpu=\"ppc64\"" + ffmpeg_target_arch=ppc64 + else + die "Failed to determine target arch, got '$myarch'." + fi + + # Make sure that -Werror doesn't get added to CFLAGS by the build system. + # Depending on GCC version the warnings are different and we don't want + # the build to fail because of that. + myconf_gn+=" treat_warnings_as_errors=false" + + # Disable fatal linker warnings, bug 506268. + myconf_gn+=" fatal_linker_warnings=false" + + # Disable external code space for V8 for ppc64. It is disabled for ppc64 + # by default, but cross-compiling on amd64 enables it again. + if tc-is-cross-compiler; then + if ! use amd64 && ! use arm64; then + myconf_gn+=" v8_enable_external_code_space=false" + fi + fi + + # Only enabled for clang, but gcc has endian macros too + myconf_gn+=" v8_use_libm_trig_functions=true" + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + # https://bugs.gentoo.org/654216 + addpredict /dev/dri/ #nowarn + + #if ! use system-ffmpeg; then + if false; then + local build_ffmpeg_args="" + if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then + build_ffmpeg_args+=" --disable-asm" + fi + + # Re-configure bundled ffmpeg. See bug #491378 for example reasons. + einfo "Configuring bundled ffmpeg..." + pushd third_party/ffmpeg > /dev/null || die + chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ + --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die + chromium/scripts/copy_config.sh || die + chromium/scripts/generate_gn.py || die + popd > /dev/null || die + fi + + # Disable unknown warning message from clang. + if tc-is-clang; then + append-flags -Wno-unknown-warning-option + if tc-is-cross-compiler; then + export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" + export BUILD_CFLAGS+=" -Wno-unknown-warning-option" + fi + fi + + # Explicitly disable ICU data file support for system-icu/headless builds. + if use system-icu || use headless; then + myconf_gn+=" icu_use_data_file=false" + fi + + # Enable ozone wayland and/or headless support + myconf_gn+=" use_ozone=true ozone_auto_platforms=false" + myconf_gn+=" ozone_platform_headless=true" + if use headless; then + myconf_gn+=" ozone_platform=\"headless\"" + myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" + myconf_gn+=" use_glib=false use_gio=false" + myconf_gn+=" use_pangocairo=false use_alsa=false" + myconf_gn+=" use_libpci=false use_udev=false" + myconf_gn+=" enable_print_preview=false" + myconf_gn+=" enable_remoting=false" + else + myconf_gn+=" use_system_libdrm=true" + myconf_gn+=" use_system_minigbm=true" + myconf_gn+=" use_xkbcommon=true" + if use qt5; then + local moc_dir="$(qt5_get_bindir)" + if tc-is-cross-compiler; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) + cbuild_libdir=${cbuild_libdir:2} + moc_dir="${EPREFIX}"/${cbuild_libdir/% }/qt5/bin + fi + export PATH="${PATH}:${moc_dir}" + fi + myconf_gn+=" use_qt=$(usex qt5 true false)" + myconf_gn+=" ozone_platform_x11=$(usex X true false)" + myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" + myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" + use wayland && myconf_gn+=" use_system_libffi=true" + fi + + # Results in undefined references in chrome linking, may require CFI to work + if use arm64; then + myconf_gn+=" arm_control_flow_integrity=\"none\"" + fi + + # Enable official builds + myconf_gn+=" is_official_build=$(usex official true false)" + myconf_gn+=" use_thin_lto=$(usex lto true false)" + myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)" + if use official; then + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py || die + # Disable CFI: unsupported for GCC, requires clang+lto+lld + myconf_gn+=" is_cfi=false" + # Don't add symbols to build + myconf_gn+=" symbol_level=0" + fi + + if use pgo; then + myconf_gn+=" chrome_pgo_phase=${1}" + if [[ "$1" == "2" ]]; then + myconf_gn+=" pgo_data_path=\"${2}\"" + fi + else + # Disable PGO, because profile data is only compatible with >=clang-11 + myconf_gn+=" chrome_pgo_phase=0" + fi + + # user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639 + if use arm64 && tc-is-gcc; then + sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \ + third_party/crc32c/src/src/crc32c_arm64.cc || die + fi + + # skipping typecheck is only supported on amd64, bug #876157 + if ! use amd64; then + myconf_gn+=" devtools_skip_typecheck=false" + fi + + einfo "Configuring Chromium..." + set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release + echo "$@" + "$@" || die +} + +src_configure() { + chromium_configure $(usex pgo 1 0) +} + +chromium_compile() { + # Final link uses lots of file descriptors. + ulimit -n 2048 + + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # Don't inherit PYTHONPATH from environment, bug #789021, #812689 + local -x PYTHONPATH= + + # Build mksnapshot and pax-mark it. + if use pax-kernel; then + local x + for x in mksnapshot v8_context_snapshot_generator; do + if tc-is-cross-compiler; then + eninja -C out/Release "host/${x}" + pax-mark m "out/Release/host/${x}" + else + eninja -C out/Release "${x}" + pax-mark m "out/Release/${x}" + fi + done + fi + + # Even though ninja autodetects number of CPUs, we respect + # user's options, for debugging with -j 1 or any other reason. + eninja -C out/Release chrome chromedriver + use suid && eninja -C out/Release chrome_sandbox + + pax-mark m out/Release/chrome +} + +# This function is called from virtx, and must always return so that Xvfb +# session isn't left running. If we return 1, virtx will call die(). +chromium_profile() { + einfo "Profiling for PGO" + + pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 + + # Remove old profdata in case profiling was interrupted. + rm -rf "${1}" || return 1 + + if ! "${EPYTHON}" ./chromium_profiler.py \ + --chrome-executable "${S}/out/Release/chrome" \ + --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ + --add-arg no-sandbox --add-arg disable-dev-shm-usage \ + --profile-output "${1}"; then + eerror "Profiling failed" + return 1 + fi + + popd >/dev/null || return 1 +} + +src_compile() { + if use pgo; then + local profdata + + profdata="${WORKDIR}/chromium.profdata" + + if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then + chromium_compile + virtx chromium_profile "$profdata" + + touch "${WORKDIR}/.pgo-profiled" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then + # Remove phase 1 output + rm -r out/Release || die + + chromium_configure 2 "$profdata" + + touch "${WORKDIR}/.pgo-phase-2-configured" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then + chromium_compile + touch "${WORKDIR}/.pgo-phase-2-compiled" || die + fi + else + chromium_compile + fi + + mv out/Release/chromedriver{.unstripped,} || die + + rm -f out/Release/locales/*.pak.info || die + + # Build manpage; bug #684550 + sed -e 's|@@PACKAGE@@|chromium-browser|g; + s|@@MENUNAME@@|Chromium|g;' \ + chrome/app/resources/manpage.1.in > \ + out/Release/chromium-browser.1 || die + + # Build desktop file; bug #706786 + sed -e 's|@@MENUNAME@@|Chromium|g; + s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; + s|@@PACKAGE@@|chromium-browser|g; + s|\(^Exec=\)/usr/bin/|\1|g;' \ + chrome/installer/linux/common/desktop.template > \ + out/Release/chromium-browser-chromium.desktop || die + + # Build vk_swiftshader_icd.json; bug #827861 + sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ + third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ + out/Release/vk_swiftshader_icd.json || die +} + +src_install() { + local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome + + if use suid; then + newexe out/Release/chrome_sandbox chrome-sandbox + fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" + fi + + doexe out/Release/chromedriver + doexe out/Release/chrome_crashpad_handler + + ozone_auto_session () { + use X && use wayland && ! use headless && echo true || echo false + } + local sedargs=( -e + "s:/usr/lib/:/usr/$(get_libdir)/:g; + s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" + ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die + doexe chromium-launcher.sh + + # It is important that we name the target "chromium-browser", + # xdg-utils expect it; bug #355517. + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium + + dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver + + # Allow users to override command-line options, bug #357629. + insinto /etc/chromium + newins "${FILESDIR}/chromium.default" "default" + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + ( + shopt -s nullglob + local files=(out/Release/*.so out/Release/*.so.[0-9]) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) + + # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" + doins out/Release/xdg-{settings,mime} + + if ! use system-icu && ! use headless; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/MEIPreload + + # Install vk_swiftshader_icd.json; bug #827861 + doins out/Release/vk_swiftshader_icd.json + + if [[ -d out/Release/swiftshader ]]; then + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + fi + + # Install icons + local branding size + for size in 16 24 32 48 64 128 256 ; do + case ${size} in + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; + *) branding="chrome/app/theme/chromium" ;; + esac + newicon -s ${size} "${branding}/product_logo_${size}.png" \ + chromium-browser.png + done + + # Install desktop entry + domenu out/Release/chromium-browser-chromium.desktop + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + # Install manpage; bug #684550 + doman out/Release/chromium-browser.1 + dosym chromium-browser.1 /usr/share/man/man1/chromium.1 + + readme.gentoo_create_doc +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog + + if ! use headless; then + if use vaapi; then + elog "VA-API is disabled by default at runtime. You have to enable it" + elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" + elog "in /etc/chromium/default." + fi + if use screencast; then + elog "Screencast is disabled by default at runtime. Either enable it" + elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" + elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use gtk4; then + elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" + elog "behavior you need to pass --gtk-version=4, e.g. by adding it" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + fi +} diff --git a/www-client/chromium/files/chromium-112-compiler.patch b/www-client/chromium/files/chromium-112-compiler.patch deleted file mode 100644 index 8d4237379b27..000000000000 --- a/www-client/chromium/files/chromium-112-compiler.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Tue, 15 Nov 2022 10:27:58 +0000 -Subject: [PATCH] Disable various compiler configs - ---- - build/config/compiler/BUILD.gn | 134 +++++---------------------------- - 1 file changed, 17 insertions(+), 117 deletions(-) - -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index bd039fc..4d3759a 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -276,9 +276,7 @@ config("compiler") { - - configs += [ - # See the definitions below. -- ":clang_revision", - ":rustc_revision", -- ":compiler_cpu_abi", - ":compiler_codegen", - ":compiler_deterministic", - ] -@@ -529,37 +527,6 @@ config("compiler") { - ldflags += [ "-Wl,-z,keep-text-section-prefix" ] - } - -- if (is_clang && !is_nacl && current_os != "zos") { -- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] -- if (save_reproducers_on_lld_crash && use_lld) { -- ldflags += [ -- "-fcrash-diagnostics=all", -- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir, -- ] -- } -- -- # TODO(hans): Remove this once Clang generates better optimized debug info -- # by default. https://crbug.com/765793 -- cflags += [ -- "-mllvm", -- "-instcombine-lower-dbg-declare=0", -- ] -- if (!is_debug && use_thin_lto && is_a_target_toolchain) { -- if (is_win) { -- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ] -- } else { -- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ] -- } -- } -- -- # TODO(crbug.com/1235145): Investigate why/if this should be needed. -- if (is_win) { -- cflags += [ "/clang:-ffp-contract=off" ] -- } else { -- cflags += [ "-ffp-contract=off" ] -- } -- } -- - # Rust compiler setup (for either clang or rustc). - if (enable_rust) { - defines += [ "RUST_ENABLED" ] -@@ -1301,46 +1268,6 @@ config("compiler_deterministic") { - } - } - -- # Makes builds independent of absolute file path. -- if (is_clang && strip_absolute_paths_from_debug_symbols) { -- # If debug option is given, clang includes $cwd in debug info by default. -- # For such build, this flag generates reproducible obj files even we use -- # different build directory like "out/feature_a" and "out/feature_b" if -- # we build same files with same compile flag. -- # Other paths are already given in relative, no need to normalize them. -- if (is_nacl) { -- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. -- cflags += [ -- "-Xclang", -- "-fdebug-compilation-dir", -- "-Xclang", -- ".", -- ] -- } else { -- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= -- # and -fcoverage-compilation-dir=. -- cflags += [ "-ffile-compilation-dir=." ] -- swiftflags += [ "-file-compilation-dir=." ] -- } -- if (!is_win) { -- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) -- asmflags = [ "-Wa,-fdebug-compilation-dir,." ] -- } -- -- if (is_win && use_lld) { -- if (symbol_level == 2 || (is_clang && using_sanitizer)) { -- # Absolutize source file paths for PDB. Pass the real build directory -- # if the pdb contains source-level debug information and if linker -- # reproducibility is not critical. -- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ] -- } else { -- # Use a fake fixed base directory for paths in the pdb to make the pdb -- # output fully deterministic and independent of the build directory. -- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ] -- } -- } -- } -- - # Tells the compiler not to use absolute paths when passing the default - # paths to the tools it invokes. We don't want this because we don't - # really need it and it can mess up the goma cache entries. -@@ -1359,27 +1286,6 @@ config("compiler_deterministic") { - } - } - --config("clang_revision") { -- if (is_clang && clang_base_path == default_clang_base_path) { -- update_args = [ -- "--print-revision", -- "--verify-version=$clang_version", -- ] -- if (llvm_force_head_revision) { -- update_args += [ "--llvm-force-head-revision" ] -- } -- clang_revision = exec_script("//tools/clang/scripts/update.py", -- update_args, -- "trim string") -- -- # This is here so that all files get recompiled after a clang roll and -- # when turning clang on or off. (defines are passed via the command line, -- # and build system rebuild things when their commandline changes). Nothing -- # should ever read this define. -- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ] -- } --} -- - config("rustc_revision") { - if (enable_rust && defined(rustc_version)) { - # Similar to the above config, this is here so that all files get -@@ -1669,7 +1575,7 @@ config("chromium_code") { - defines = [ "_HAS_NODISCARD" ] - } - } else { -- cflags = [ "-Wall" ] -+ cflags = [] - if (treat_warnings_as_errors) { - cflags += [ "-Werror" ] - -@@ -1678,10 +1584,6 @@ config("chromium_code") { - # well. - ldflags = [ "-Werror" ] - } -- if (is_clang) { -- # Enable extra warnings for chromium_code when we control the compiler. -- cflags += [ "-Wextra" ] -- } - - # In Chromium code, we define __STDC_foo_MACROS in order to get the - # C99 macros on Mac and Linux. -@@ -1690,16 +1592,6 @@ config("chromium_code") { - "__STDC_FORMAT_MACROS", - ] - -- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && -- current_cpu != "s390" && current_cpu != "ppc64" && -- current_cpu != "mips" && current_cpu != "mips64" && -- current_cpu != "riscv64" && current_cpu != "loong64") { -- # Non-chromium code is not guaranteed to compile cleanly with -- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are -- # disabled, so only do that for Release build. -- defines += [ "_FORTIFY_SOURCE=2" ] -- } -- - if (is_mac) { - cflags_objc = [ "-Wobjc-missing-property-synthesis" ] - cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -2092,7 +1984,8 @@ config("default_stack_frames") { - } - - # Default "optimization on" config. --config("optimize") { -+config("optimize") { } -+config("xoptimize") { - if (is_win) { - if (chrome_pgo_phase != 2) { - # Favor size over speed, /O1 must be before the common flags. -@@ -2137,7 +2030,8 @@ config("optimize") { - } - - # Turn off optimizations. --config("no_optimize") { -+config("no_optimize") { } -+config("xno_optimize") { - if (is_win) { - cflags = [ - "/Od", # Disable optimization. -@@ -2177,7 +2071,8 @@ config("no_optimize") { - # Turns up the optimization level. On Windows, this implies whole program - # optimization and link-time code generation which is very expensive and should - # be used sparingly. --config("optimize_max") { -+config("optimize_max") { } -+config("xoptimize_max") { - if (is_nacl && is_nacl_irt) { - # The NaCl IRT is a special case and always wants its own config. - # Various components do: -@@ -2210,7 +2105,8 @@ config("optimize_max") { - # - # TODO(crbug.com/621335) - rework how all of these configs are related - # so that we don't need this disclaimer. --config("optimize_speed") { -+config("optimize_speed") { } -+config("xoptimize_speed") { - if (is_nacl && is_nacl_irt) { - # The NaCl IRT is a special case and always wants its own config. - # Various components do: -@@ -2236,7 +2132,8 @@ config("optimize_speed") { - } - } - --config("optimize_fuzzing") { -+config("optimize_fuzzing") { } -+config("xoptimize_fuzzing") { - cflags = [ "-O1" ] + common_optimize_on_cflags - rustflags = [ "-Copt-level=1" ] - ldflags = common_optimize_on_ldflags -@@ -2356,7 +2253,8 @@ config("win_pdbaltpath") { - } - - # Full symbols. --config("symbols") { -+config("symbols") { } -+config("xsymbols") { - if (is_win) { - if (is_clang) { - cflags = [ -@@ -2495,7 +2393,8 @@ config("symbols") { - # Minimal symbols. - # This config guarantees to hold symbol for stack trace which are shown to user - # when crash happens in unittests running on buildbot. --config("minimal_symbols") { -+config("minimal_symbols") { } -+config("xminimal_symbols") { - if (is_win) { - # Functions, files, and line tables only. - cflags = [] -@@ -2568,7 +2467,8 @@ config("minimal_symbols") { - # This configuration contains function names only. That is, the compiler is - # told to not generate debug information and the linker then just puts function - # names in the final debug information. --config("no_symbols") { -+config("no_symbols") { } -+config("xno_symbols") { - if (is_win) { - ldflags = [ "/DEBUG" ] - --- -2.37.4 - diff --git a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch b/www-client/chromium/files/chromium-112-gcc-mno-outline.patch deleted file mode 100644 index 9ebaf1720a90..000000000000 --- a/www-client/chromium/files/chromium-112-gcc-mno-outline.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 428afabde5f20bc91ad1166b983b9975188be737 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 07 Mar 2023 17:46:30 +0000 -Subject: [PATCH] GCC: do not disable outlining with -mno-outline - -GCC build fails in arm64 because -mno-outline is passed. This build -option is only supported in Clang. - -Bug: 819294 -Change-Id: Ied5cf194c26fd284aa66477cf0cd381b8cd26607 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4316542 -Reviewed-by: Hans Wennborg -Commit-Queue: José Dapena Paz -Cr-Commit-Position: refs/heads/main@{#1114023} ---- - -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 4e6708b..6ca2924 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -1304,7 +1304,7 @@ - configs += [ "//build/config/nacl:compiler_codegen" ] - } - -- if (current_cpu == "arm64" && !is_win) { -+ if (current_cpu == "arm64" && !is_win && is_clang) { - # Disable outlining everywhere on arm64 except Win. For more information see - # crbug.com/931297 for Android and crbug.com/1410297 for iOS. - # TODO(crbug.com/1411363): Enable this on Windows if possible. diff --git a/www-client/chromium/files/chromium-112-libstdc++-1.patch b/www-client/chromium/files/chromium-112-libstdc++-1.patch deleted file mode 100644 index 36a1f94252c3..000000000000 --- a/www-client/chromium/files/chromium-112-libstdc++-1.patch +++ /dev/null @@ -1,59 +0,0 @@ -From aaeaf2a563682f2f63196f924a842dcca42be8ef Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 07 Mar 2023 16:54:09 +0000 -Subject: [PATCH] IWYU: libstdc++ unique_ptr cast from nullptr requires declaration of type - -fallback_linux_ui.cc returns a nullptr as a result of several -calls returning a std::unique_ptr of a type that has not been declared -and that's not allowed in libstdc++ implementation. - -Fix build errors: - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::LinuxInputMethodContext]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::LinuxInputMethodContext; _Dp = std::default_delete]’ - ../../ui/linux/fallback_linux_ui.cc:35:10: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::LinuxInputMethodContext’ - 93 | static_assert(sizeof(_Tp)>0, - | ^~~~~~~~~~~ - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = ui::NavButtonProvider]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = ui::NavButtonProvider; _Dp = std::default_delete]’ - ../../ui/linux/fallback_linux_ui.cc:133:10: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘ui::NavButtonProvider’ - -Bug: 957519 -Change-Id: I5e7f096003d8f5de8f5be36137ac4427799bf7a5 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4310671 -Reviewed-by: Thomas Anderson -Commit-Queue: Thomas Anderson -Cr-Commit-Position: refs/heads/main@{#1113983} ---- - -diff --git a/ui/linux/BUILD.gn b/ui/linux/BUILD.gn -index eb72461..8662261 100644 ---- a/ui/linux/BUILD.gn -+++ b/ui/linux/BUILD.gn -@@ -52,6 +52,7 @@ - deps = [ - "//base", - "//ui/base:buildflags", -+ "//ui/base/ime/linux:linux", - "//ui/events:dom_keyboard_layout", - "//ui/gfx", - "//ui/native_theme", -diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc -index ee3e7b9..5f5abee 100644 ---- a/ui/linux/fallback_linux_ui.cc -+++ b/ui/linux/fallback_linux_ui.cc -@@ -5,11 +5,13 @@ - #include "ui/linux/fallback_linux_ui.h" - - #include "base/time/time.h" -+#include "ui/base/ime/linux/linux_input_method_context.h" - #include "ui/events/keycodes/dom/dom_keyboard_layout_map.h" - #include "ui/gfx/color_palette.h" - #include "ui/gfx/geometry/size.h" - #include "ui/gfx/image/image.h" - #include "ui/gfx/platform_font.h" -+#include "ui/linux/nav_button_provider.h" - #include "ui/native_theme/native_theme.h" - #include "ui/shell_dialogs/select_file_policy.h" - #include "ui/views/controls/textfield/textfield.h" diff --git a/www-client/chromium/files/chromium-112-libstdc++.patch b/www-client/chromium/files/chromium-112-libstdc++.patch deleted file mode 100644 index bef364e0b5e0..000000000000 --- a/www-client/chromium/files/chromium-112-libstdc++.patch +++ /dev/null @@ -1,63 +0,0 @@ -From f2ea90d9cf667612b2913a6f30636a4773bad026 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Tue, 28 Feb 2023 18:38:25 +0000 -Subject: [PATCH] IWYU: include blink::URLLoader for unique_ptr usage in WebLocalFrameClient - -Recent refactor broke again libstdc++ build by not including URLLoader -header. But the reason for that change was removing in public code -includes of non public code, as URLLoader. - -To fix the problem, move the implementation exposing the problem -to the .cc file. - -Fixes build error with libstdc++: - /usr/include/c++/12/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = blink::URLLoader]’: - /usr/include/c++/12/bits/unique_ptr.h:396:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = blink::URLLoader; _Dp = std::default_delete]’ - ../../third_party/blink/public/web/web_local_frame_client.h:678:12: required from here - /usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of ‘sizeof’ to incomplete type ‘blink::URLLoader’ - -Bug: 957519 -Change-Id: I0db2f86603fba4fe8f10d6c4370ad1ff4c9ca70b -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4276241 -Reviewed-by: Daniel Cheng -Commit-Queue: José Dapena Paz -Cr-Commit-Position: refs/heads/main@{#1111077} ---- - -diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h -index d6bb896..246d2ff 100644 ---- a/third_party/blink/public/web/web_local_frame_client.h -+++ b/third_party/blink/public/web/web_local_frame_client.h -@@ -674,9 +674,7 @@ - return nullptr; - } - -- virtual std::unique_ptr CreateURLLoaderForTesting() { -- return nullptr; -- } -+ virtual std::unique_ptr CreateURLLoaderForTesting(); - - virtual void OnStopLoading() {} - -diff --git a/third_party/blink/renderer/core/frame/web_local_frame_client.cc b/third_party/blink/renderer/core/frame/web_local_frame_client.cc -index a3617af..3adcd7c 100644 ---- a/third_party/blink/renderer/core/frame/web_local_frame_client.cc -+++ b/third_party/blink/renderer/core/frame/web_local_frame_client.cc -@@ -7,6 +7,7 @@ - #include "mojo/public/cpp/bindings/pending_remote.h" - #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" - #include "third_party/blink/public/common/browser_interface_broker_proxy.h" -+#include "third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.h" - - namespace blink { - -@@ -25,4 +26,9 @@ - // have this implementation in the base class. - return AssociatedInterfaceProvider::GetEmptyAssociatedInterfaceProvider(); - } -+ -+std::unique_ptr WebLocalFrameClient::CreateURLLoaderForTesting() { -+ return nullptr; -+} -+ - } // namespace blink diff --git a/www-client/chromium/files/chromium-112-sql-relax.patch b/www-client/chromium/files/chromium-112-sql-relax.patch deleted file mode 100644 index 2510d1000034..000000000000 --- a/www-client/chromium/files/chromium-112-sql-relax.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001 -From: Elly Fong-Jones -Date: Thu, 02 Mar 2023 00:15:11 +0000 -Subject: [PATCH] sql: relax constraints on VirtualCursor layout - -VirtualCursor::FromSqliteCursor required that VirtualCursor had a -standard layout, but in fact VirtualCursor shouldn't have a standard -layout, and the fact that it does with libc++ is a deviation from the -C++ standard. This change: - -1. Relaxes the requirement that VirtualCursor has a standard layout, and -2. Relaxes the requirement that the sqlite_cursor_ field has to be at - offset 0 - -by use of offsetof() and pointer subtraction. This change both improves -standards compliance and makes this code build with libstdc++. - -Bug: 1380656 -Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313 -Reviewed-by: Austin Sullivan -Commit-Queue: Elly Fong-Jones -Cr-Commit-Position: refs/heads/main@{#1111925} ---- - -diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h -index 1970bdca..4cb0655 100644 ---- a/sql/recover_module/cursor.h -+++ b/sql/recover_module/cursor.h -@@ -63,12 +63,10 @@ - // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor(). - static inline VirtualCursor* FromSqliteCursor( - sqlite3_vtab_cursor* sqlite_cursor) { -- static_assert(std::is_standard_layout::value, -- "needed for the reinterpret_cast below"); -- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0, -- "sqlite_cursor_ must be the first member of the class"); -- VirtualCursor* result = reinterpret_cast(sqlite_cursor); -- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); -+ VirtualCursor* result = reinterpret_cast( -+ (reinterpret_cast(sqlite_cursor) - -+ offsetof(VirtualCursor, sqlite_cursor_))); -+ CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); - return result; - } - diff --git a/www-client/chromium/files/chromium-112-swiftshader.patch b/www-client/chromium/files/chromium-112-swiftshader.patch deleted file mode 100644 index 9d67841a1dea..000000000000 --- a/www-client/chromium/files/chromium-112-swiftshader.patch +++ /dev/null @@ -1,122 +0,0 @@ -https://bugs.gentoo.org/904725 -https://bugs.gentoo.org/904850 - -From 451fb9470e4e1cd183ff05d5e171dc21bae6e47c Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Thu, 16 Mar 2023 13:29:48 +0100 -Subject: [PATCH] Another C++20 fix for GCC - -This is a direct backport of commit 95d0d8e9e9d10da3cfa503fbba405e740aea3cc1 -from Richard Smith: - From: Richard Smith - Date: Tue, 23 Feb 2021 14:07:13 -0800 - Subject: Fix constructor declarations that are invalid in C++20 onwards. - - Fix constructor declarations that are invalid in C++20 onwards. - - Under C++ CWG DR 2237, the constructor for a class template C must be - written as 'C(...)' not as 'C(...)'. This fixes a build failure with - GCC in C++20 mode. - - In passing, remove some other redundant '' qualification from the - affected classes. - -Bug: chromium:819294 -Change-Id: I51a7f069d355d4932f4b50640fedbba1d5773f0b -Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71088 -Kokoro-Result: kokoro -Reviewed-by: Shahbaz Youssefi -Tested-by: Shahbaz Youssefi -Commit-Queue: Shahbaz Youssefi ---- - ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/ADT/STLExtras.h -@@ -1415,9 +1415,9 @@ - result_pair(std::size_t Index, IterOfRange Iter) - : Index(Index), Iter(Iter) {} - -- result_pair(const result_pair &Other) -+ result_pair(const result_pair &Other) - : Index(Other.Index), Iter(Other.Iter) {} -- result_pair &operator=(const result_pair &Other) { -+ result_pair &operator=(const result_pair &Other) { - Index = Other.Index; - Iter = Other.Iter; - return *this; -@@ -1451,22 +1451,22 @@ - result_type &operator*() { return Result; } - const result_type &operator*() const { return Result; } - -- enumerator_iter &operator++() { -+ enumerator_iter &operator++() { - assert(Result.Index != std::numeric_limits::max()); - ++Result.Iter; - ++Result.Index; - return *this; - } - -- bool operator==(const enumerator_iter &RHS) const { -+ bool operator==(const enumerator_iter &RHS) const { - // Don't compare indices here, only iterators. It's possible for an end - // iterator to have different indices depending on whether it was created - // by calling std::end() versus incrementing a valid iterator. - return Result.Iter == RHS.Result.Iter; - } - -- enumerator_iter(const enumerator_iter &Other) : Result(Other.Result) {} -- enumerator_iter &operator=(const enumerator_iter &Other) { -+ enumerator_iter(const enumerator_iter &Other) : Result(Other.Result) {} -+ enumerator_iter &operator=(const enumerator_iter &Other) { - Result = Other.Result; - return *this; - } -From e4dea744b7838470757f010fc2ff4b92f02b3fac Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Thu, 16 Mar 2023 13:29:54 +0100 -Subject: [PATCH] More C++20 fixes - -Partial backport of llvm-project patch: - commit 2ccf0b76bcaf0895e04f14e3ff53c59dd96f9f0f - Author: Evgeny Mandrikov - Date: Thu Jan 6 17:01:05 2022 +0100 - - Fix build failure with GCC 11 in C++20 mode - - See https://wg21.link/cwg2237 - - Reviewed By: shafik, dexonsmith - - Differential Revision: https://reviews.llvm.org/D115355 - -Bug: chromium:819294 -Change-Id: I90d58b6fc601f9a4f615e2f6edc13a73ce848e4f -Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71089 -Reviewed-by: Shahbaz Youssefi -Tested-by: Shahbaz Youssefi -Kokoro-Result: kokoro -Commit-Queue: Shahbaz Youssefi ---- - ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/LiveInterval.h -@@ -718,7 +718,7 @@ - T *P; - - public: -- SingleLinkedListIterator(T *P) : P(P) {} -+ SingleLinkedListIterator(T *P) : P(P) {} - - SingleLinkedListIterator &operator++() { - P = P->Next; ---- a/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h -+++ b/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/BinaryStreamArray.h -@@ -324,7 +324,7 @@ - FixedStreamArrayIterator(const FixedStreamArray &Array, uint32_t Index) - : Array(Array), Index(Index) {} - -- FixedStreamArrayIterator(const FixedStreamArrayIterator &Other) -+ FixedStreamArrayIterator(const FixedStreamArrayIterator &Other) - : Array(Other.Array), Index(Other.Index) {} - FixedStreamArrayIterator & - operator=(const FixedStreamArrayIterator &Other) { diff --git a/www-client/chromium/files/chromium-114-compiler.patch b/www-client/chromium/files/chromium-114-compiler.patch new file mode 100644 index 000000000000..f6a6b708da6f --- /dev/null +++ b/www-client/chromium/files/chromium-114-compiler.patch @@ -0,0 +1,171 @@ +This patches the compiler settings for chromium to remove +clang-specific settings, among other things. + +Just do a `git apply --reject` to the unpacked chromium source when +it inevitably needs to be updated between versions. + +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -289,9 +289,7 @@ config("compiler") { + + configs += [ + # See the definitions below. +- ":clang_revision", + ":rustc_revision", +- ":compiler_cpu_abi", + ":compiler_codegen", + ":compiler_deterministic", + ] +@@ -732,7 +730,6 @@ config("compiler") { + # toolchain has this flag. + # We only use one version of LLVM within a build so there's no need to + # upgrade debug info, which can be expensive since it runs the verifier. +- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ] + } + } + +@@ -1406,27 +1403,6 @@ config("compiler_deterministic") { + } + } + +-config("clang_revision") { +- if (is_clang && clang_base_path == default_clang_base_path) { +- update_args = [ +- "--print-revision", +- "--verify-version=$clang_version", +- ] +- if (llvm_force_head_revision) { +- update_args += [ "--llvm-force-head-revision" ] +- } +- clang_revision = exec_script("//tools/clang/scripts/update.py", +- update_args, +- "trim string") +- +- # This is here so that all files get recompiled after a clang roll and +- # when turning clang on or off. (defines are passed via the command line, +- # and build system rebuild things when their commandline changes). Nothing +- # should ever read this define. +- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ] +- } +-} +- + config("rustc_revision") { + if (rustc_revision != "") { + # Similar to the above config, this is here so that all files get recompiled +@@ -1716,7 +1692,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1725,10 +1701,6 @@ config("chromium_code") { + # well. + ldflags = [ "-Werror" ] + } +- if (is_clang) { +- # Enable extra warnings for chromium_code when we control the compiler. +- cflags += [ "-Wextra" ] +- } + + if (treat_warnings_as_errors) { + # Turn rustc warnings into the "deny" lint level, which produce compiler +@@ -1746,16 +1718,6 @@ config("chromium_code") { + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && current_cpu != "s390x" && +- current_cpu != "s390" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64" && +- current_cpu != "riscv64" && current_cpu != "loong64") { +- # Non-chromium code is not guaranteed to compile cleanly with +- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are +- # disabled, so only do that for Release build. +- defines += [ "_FORTIFY_SOURCE=2" ] +- } +- + if (is_apple) { + cflags_objc = [ "-Wimplicit-retain-self" ] + cflags_objcc = [ "-Wimplicit-retain-self" ] +@@ -2120,7 +2082,8 @@ config("default_stack_frames") { + } + + # Default "optimization on" config. +-config("optimize") { ++config("optimize") { } ++config("xoptimize") { + if (is_win) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. +@@ -2179,7 +2142,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2219,7 +2183,8 @@ config("no_optimize") { + # Turns up the optimization level. On Windows, this implies whole program + # optimization and link-time code generation which is very expensive and should + # be used sparingly. +-config("optimize_max") { ++config("optimize_max") { } ++config("xoptimize_max") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2252,7 +2217,8 @@ config("optimize_max") { + # + # TODO(crbug.com/621335) - rework how all of these configs are related + # so that we don't need this disclaimer. +-config("optimize_speed") { ++config("optimize_speed") { } ++config("xoptimize_speed") { + if (is_nacl && is_nacl_irt) { + # The NaCl IRT is a special case and always wants its own config. + # Various components do: +@@ -2278,7 +2244,8 @@ config("optimize_speed") { + } + } + +-config("optimize_fuzzing") { ++config("optimize_fuzzing") { } ++config("xoptimize_fuzzing") { + cflags = [ "-O1" ] + common_optimize_on_cflags + rustflags = [ "-Copt-level=1" ] + ldflags = common_optimize_on_ldflags +@@ -2403,7 +2370,8 @@ config("win_pdbaltpath") { + } + + # Full symbols. +-config("symbols") { ++config("symbols") { } ++config("xsymbols") { + rustflags = [] + if (is_win) { + if (is_clang) { +@@ -2546,7 +2514,8 @@ config("symbols") { + # Minimal symbols. + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. +-config("minimal_symbols") { ++config("minimal_symbols") { } ++config("xminimal_symbols") { + if (is_win) { + # Functions, files, and line tables only. + cflags = [] +@@ -2620,7 +2589,8 @@ config("minimal_symbols") { + # This configuration contains function names only. That is, the compiler is + # told to not generate debug information and the linker then just puts function + # names in the final debug information. +-config("no_symbols") { ++config("no_symbols") { } ++config("xno_symbols") { + if (is_win) { + ldflags = [ "/DEBUG" ] + diff --git a/www-client/chromium/files/chromium-114-gcc12.patch b/www-client/chromium/files/chromium-114-gcc12.patch new file mode 100644 index 000000000000..5070135c6117 --- /dev/null +++ b/www-client/chromium/files/chromium-114-gcc12.patch @@ -0,0 +1,30 @@ +https://chromium.googlesource.com/chromium/src/+/a1fec6273f3ad7c73b35bb420a5540355df35b74 +controlledframe: Fix start up crash + +This commit applies a fix from mail@maciej.szmigiero.name to prevent a +null reference error in GetControlledFrameFeatureList(). The fix is to +add static to `feature_list` so that the object lives past this +function. + +BUG=1447422 + +Change-Id: I22879831ec879ce7d6a178760540f88106b3ded4 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4555985 +Commit-Queue: Ovidio Ruiz-Henríquez +Reviewed-by: David Roger +Reviewed-by: Chase Phillips +Auto-Submit: Ovidio Ruiz-Henríquez +Cr-Commit-Position: refs/heads/main@{#1149296} + +--- a/chrome/common/initialize_extensions_client.cc ++++ b/chrome/common/initialize_extensions_client.cc + +@@ -19,7 +19,7 @@ + + // This list should stay in sync with GetExpectedDelegatedFeaturesForTest(). + base::span GetControlledFrameFeatureList() { +- constexpr const char* feature_list[] = { ++ static constexpr const char* feature_list[] = { + "controlledFrameInternal", "chromeWebViewInternal", "guestViewInternal", + "webRequestInternal", "webViewInternal", + }; diff --git a/www-client/chromium/files/chromium-114-sigsegv-dom.patch b/www-client/chromium/files/chromium-114-sigsegv-dom.patch new file mode 100644 index 000000000000..fe4c2809693c --- /dev/null +++ b/www-client/chromium/files/chromium-114-sigsegv-dom.patch @@ -0,0 +1,73 @@ +https://chromium.googlesource.com/chromium/src.git/+/2af2d08972d14d5bdd91e0515eb5b15b4444aee9 +blink::HTMLMediaElement::ShouldReusePlayer: avoid dereferencing a potentally NULL domWindow + +The domWindow() method of the Document class can potentially return nullptr +as noted in renderer/core/dom/document.h + +> // A document may or may not have a browsing context +> // (https://html.spec.whatwg.org/#browsing-context). A document with a browsing +> // context is created by navigation, and has a non-null domWindow(), GetFrame(), +> // Loader(), etc., and is visible to the user. It will have a valid +> // GetExecutionContext(), which will be equal to domWindow(). If the Document +> // constructor receives a DocumentInit created WithDocumentLoader(), it will +> // have a browsing context. +> // Documents created by all other APIs do not have a browsing context. These +> // Documents still have a valid GetExecutionContext() (i.e., the domWindow() of +> // the Document in which they were created), so they can still access +> // script, but return null for domWindow(), GetFrame() and Loader(). Generally, +> // they should not downcast the ExecutionContext to a LocalDOMWindow and access +> // the properties of the window directly. + +Upon checking further, the offending document returns null for GetFrame() and +Loader() aswell so this was likely just an oversight and no invariants are being +violated + +Introduced in https://chromium-review.googlesource.com/c/chromium/src/+/4202152 + +More details https://bugs.chromium.org/p/chromium/issues/detail?id=1447388 + +Fixed: 1447388 +Change-Id: I85a6ef52baaac0ec7f5ec188d5d5bb2c518a8ecd +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4546610 +Reviewed-by: Fredrik Söderquist +Commit-Queue: Fredrik Söderquist +Cr-Commit-Position: refs/heads/main@{#1147184} + +--- a/AUTHORS ++++ b/AUTHORS + +@@ -1012,6 +1012,7 @@ + Prashant Hiremath + Prashant Nevase + Prashant Patil ++Pratham + Praveen Akkiraju + Preeti Nayak + Pritam Nikam + +--- a/third_party/blink/renderer/core/html/media/html_media_element.cc ++++ b/third_party/blink/renderer/core/html/media/html_media_element.cc + +@@ -648,6 +648,11 @@ + + bool HTMLMediaElement::ShouldReusePlayer(Document& old_document, + Document& new_document) const { ++ // A NULL frame implies a NULL domWindow, so just check one of them ++ if (!old_document.GetFrame() || !new_document.GetFrame()) { ++ return false; ++ } ++ + // Don't reuse player if the Document Picture-in-Picture API is disabled for + // both documents. + if (!RuntimeEnabledFeatures::DocumentPictureInPictureAPIEnabled( +@@ -657,10 +662,6 @@ + return false; + } + +- if (!old_document.GetFrame() || !new_document.GetFrame()) { +- return false; +- } +- + auto* new_origin = new_document.GetFrame() + ->LocalFrameRoot() + .GetSecurityContext() diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml index fef22ca7b2ca..f8c7b77e951c 100644 --- a/www-client/chromium/metadata.xml +++ b/www-client/chromium/metadata.xml @@ -5,6 +5,14 @@ chromium@gentoo.org Chromium in Gentoo Project + + Matt.Jolly@footclan.ninja + Matt Jolly + + + proxy-maint@gentoo.org + Proxy Maintainers + Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use. Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use. diff --git a/www-client/firefox-bin/Manifest b/www-client/firefox-bin/Manifest index 6f1c0a3a65e5..f211612e013b 100644 --- a/www-client/firefox-bin/Manifest +++ b/www-client/firefox-bin/Manifest @@ -196,109 +196,109 @@ DIST firefox-102.12.0esr-vi.xpi 611434 BLAKE2B b3886101a2f312b3b6a3dd46950c5e5f5 DIST firefox-102.12.0esr-xh.xpi 427937 BLAKE2B 325a3bef2141bc839555100b3b865d05d165368c19a751b8a5c4523efc916c891a2e80e00383d64f6b6595da8990e8151a4ed969b9aa99c8ceceab80386835a2 SHA512 0b072a6b7faf00d169cccceeceeb851cee5168c1027c5c4666edb05c8373c9c21ed4be303adb66ab75138cc4028c7cd0edf13548b64c38864d4972d1cb775d0f DIST firefox-102.12.0esr-zh-CN.xpi 613308 BLAKE2B aeabaef09c85706c179d3a4a1422c5e96e86932b6149d5d7ce7924ca5f739a8339b8396481363236932b5d843123b349b9f42f477c7008866593296ad64ea62c SHA512 bf176ca21fc9ad1b4b7fbede824be03e7324659093b3fb101c0f8931c029ca79bfb1581f5c843f23d9c552f73a1308ec931142f93368307282054ab281c42421 DIST firefox-102.12.0esr-zh-TW.xpi 614577 BLAKE2B de26344ab031b0535c9e530f9bafc866156d80f0c9866589d6a4e1dc369a814eaa35a31ef78e124e5c46b5bea734a21ed152982e47c4428605a6ef9f623e4f8f SHA512 5f6b9bcbd1cce9594dbd6123d803e10a604cfb40b34681632ddbc9e670219fc679ead4856a11b15fb069ad438c6fc75d7f98ca9cdf2195e98349fc72111624f3 -DIST firefox-114.0-ach.xpi 469754 BLAKE2B 7b1afa24c667a43909a546c7b0a6ac0983ac11b3e6c370c72466231fd9c3471aa1d667125dbe3ed0e67da974703af78d12a066ce4e247b06a5f996bf12077dd4 SHA512 0f8e3ddc70407f8a6f2324480321a80bc7fe6f74417bbc51dd3856ce8223ee316a934f8dbc9928e4e46e5d110ef4789e9d658e1f8abad8af19ec024967faa1ab -DIST firefox-114.0-af.xpi 431874 BLAKE2B 7249f707a2597af882d0b82380618e618f8ef3d1fe338c67fe50c0f325aa5a91b494faf58564b036f4c26d1774ea930fd3cabf98c3c2cf3d4e1812ae2290e01d SHA512 d4ba863d4f410bc260a5908997de28d03251af92e93041cbdd2dd7e6b59c0daf5083df77dea810392c402889ae4ab22233b30eec79082e676e750e4b1c074c11 -DIST firefox-114.0-an.xpi 514897 BLAKE2B 7b10a06d95839fbc667650828434108394a1000d717e9e33d295956ef0a17218eedcd27f1db83afdfc0fee365b533d74f1e0e19fe10a69d79fd1841858f1a684 SHA512 0ae7d016d7772c0baf5f0be2dad6c0bb8a2208760ec5948d4259ea6db8b2809bd03826bd935f34ed157657ffc067ac7900c992b229694cf2647a45a2a9704a66 -DIST firefox-114.0-ar.xpi 583782 BLAKE2B 1cc71f055bb7c769d03de615113e2b4aca6b7f89f2eb57ceeba73e0c7265a18a3ffec3d64a6b0d0c00f02b5f5b198cfd5617deaeace4f57a8c002da189cb8be9 SHA512 84f40bfe62d8d6a91a7ff20974aa483b4062b0b9a2dcaf0dcbeb028c9d6d2c50e49505a742499895f8c532ada89282f2148741bfd5eb4edba26ba8f312750404 -DIST firefox-114.0-ast.xpi 499206 BLAKE2B e47ca9d19c391d2bd407ee99dee4707f3039ff3a75aa9b16cc2653b391a519af3f09d50b7e46c599ebe8c39b26ac3d37f50bd6369e0ca715b2dabadabc363624 SHA512 1d46f6aba4ea7a4591edcd39f836931a83d562972d3723087442bf5ddc0ae0eff355ff20ecbff3d5503970ba3509aa91823cfe5ef989ce0812d34831a56b9b1f -DIST firefox-114.0-az.xpi 502910 BLAKE2B 8d0eb7ed9a84186b2d99979eabb0590dc34d5c3f1a592af65ddd6f131d8b3f4e6fc7eb584c809ae3ff581d25d06596b3c1da696d85b0e5f73a189565f3dd7ba6 SHA512 771cdf17379e424151a066436eea8414c4ffcdfee224e2dc5de4a3dcc7dc3024b2c4a12095001c4f169ac4a6c65eca4d0d24f72187d114af440943fad03a1f7a -DIST firefox-114.0-be.xpi 682523 BLAKE2B d83fa12060be7dc38434ab87e3934f69cf7a6109543dc790c0f7afd4a59a277d29151ab186a5bec58b027cf80ca2f50aa5972bc10760af24bccafa0b01c56997 SHA512 974d6c6dcf776a2fd675d639796b94c1126f0fe086313622572876114ed75986b0fda6e97ad817c2f21782ca005adf061233e5b0611b22a64fec4a0eb91d5eb9 -DIST firefox-114.0-bg.xpi 600488 BLAKE2B 971c9f40e130eecd6a8e675f25b1236a5c53e5d119e6431d42ad78f37a23e2f4f5d25f9fc653e8ae2aee1360099e28ecb8f8423d858e0c21e88a688feb047ea5 SHA512 efb80734bf503c84993053c8602739359c2b846a4003940facf58bf3886937f1fb57e4ee8c819776899e326098841c97e1d53e2390407b3c63959301c6c21c20 -DIST firefox-114.0-bn.xpi 594236 BLAKE2B 6433f42f1cb893840a0ca0e88017d55ec6daca79774a0667db426d71fee495b87b11c10e79a9cb7af79662dc31b569a546520947c874e03f39f4da9d1bcbc63d SHA512 a008bd7720536a5aac371bcfc75fd4b5ceaa5b53800b586052794135ba7e50403544966a01cc6685e92c79cf8b99c578e1a79c2637c38a4802bd86d88e0342cc -DIST firefox-114.0-br.xpi 565513 BLAKE2B 2cee0969e05eac0c86c10d3b1cd80e018739a817193130737d0709e83cf72a8a8792dcf37b61c60517facc102f30a9ef2c1407a12852b9177a2e18f395ccfa9d SHA512 339ef6110f4f9cdc10b05573098ccc82d55c158b9336213933553dd088078cab59dc7d44f6c2e66591baf1eefe1ac3a9cb2f8d0f53a10dfa834e06daa5018ad6 -DIST firefox-114.0-bs.xpi 474903 BLAKE2B fb4d50c8f87d3df8e5158d2c7c80eb7a4e2a11d239f989535f9cf72ba2c665648284db1708f96ff4e865a6722fecb8ce74322a439418a8d7e4280cd08d7b6fda SHA512 bff8acb2486b3415c55d6b9fa8a6de9242e616fcbc7a8ca1cf149f7db40950b6f09a483f62d2c23c39bedd5f2de3c7ca0667465b757f9e6e3be5423ed7a5b73d -DIST firefox-114.0-ca-valencia.xpi 554202 BLAKE2B e0beea7570a9b9fb4af8f84d01e4357d9f9ad82cb91604c887b648adc0206f841182ac9d4a2b0dbfa141a8ceb3ebbb685e4d3974367dd23db4f85fe886c2899e SHA512 822a4da5c9af7e0d4b72fd7de6cfec944913926d445b3cb788bb8bfb72a4bad854a55f06556a6d8ce2e8fe49b17b83771bd3096fa20416333f6d7610fa3a72e0 -DIST firefox-114.0-ca.xpi 574638 BLAKE2B d480272b99d498d40b469451ead69b7327b499f6f6a616969aaea63e0b9fcbbef36e0cebbeecb1315b8e9e9cadba32482640e86fc4052ed2195e4fb9872e00f1 SHA512 5e942bc7b01df1f5505e1d1fe803f0c516b8972b9692bd6b6556514055aeea90e0161b6cf4b85a5a69eccae9b42791bd89e6b5cb264a070eac0d9e9fe8a3c200 -DIST firefox-114.0-cak.xpi 599301 BLAKE2B 9cfdfdd440473483fb3578ff5608ccc599a9db9ee772cf61d28262652257eadcce32a4aef40bd699e63a44b44120b5eb04abd5a8dc92b12d6faed6a15ff5f9dc SHA512 c87974ec8c3ecd498da494e97f8c6ee1e6494d47c6b8862c7477281355dd56e8e12defc24b7a9a90e2226346d109d2a00f9b014812e0e659c42553daa0bd3a86 -DIST firefox-114.0-cs.xpi 618666 BLAKE2B 66b551e35408e7ea2eb9d60902005b4d0ba01243d44c8e3a21973a6e8294ba4dafb7a2b23eb17aa52081c055c2c96ae1fc72dbe8c58c95b114edac04d507a741 SHA512 4791736daf4be4e24729223d382a061bda915ee64c72f37ec5de803d471a4c43542474561083d1d7771ef5d61d62a6c27c9d3122aaf11436e2baf5154909ee8c -DIST firefox-114.0-cy.xpi 593764 BLAKE2B 535a1e94820025dc0a02110596c2cb8553ab74006d4e02c2e4287349abcbf9c51b6c543c7c62a7a96a6938b4d60c70e48c4923bc7de02131c40bc964bff05151 SHA512 f97937dad0df51933887b4236d1b97fdacbdf83b9bc7ed574de7012b7e62d05f348ac8e76ec67353372db06ff18c99578d3b6d9d38782a0a198496d7ddd17c28 -DIST firefox-114.0-da.xpi 581425 BLAKE2B 7958cef6df09de8136ca9fc8d6bae1287d6e6c1663449ce234c74b88717a9964f6e68065e398b1474a4339b6b60749aecffaad04c975731773de2d69edc72b27 SHA512 61e72776f712077323d91dbbfb20e85a5176e196ddde19d822bdf0857d76fd19a158f968b719e5886441bd67e1692d2f3918c63508a701a7916431a5b84e2ee6 -DIST firefox-114.0-de.xpi 605020 BLAKE2B 699229f37a8a21f3167f0e1c5c6a7ccacf254d79d430fefd0fd8c50c910e2679c2aa693aeef052f5cf24ef5822133580aa8782f53bb0cc2394051d15f77cbc59 SHA512 0d3a0a14c700c733319cfa11cd8f4e9e2ff3c4757d3048dd119dc2c79cb4d6026c6a9a6974a7727fd357bf71d4cf740b10879008e1bb97c5319ab6223b9c564b -DIST firefox-114.0-dsb.xpi 619599 BLAKE2B 17181053e6727244e195edffd6295032c77d71f9fb9431dafa6302d85391b1b0a12cd2f76940fc4818a1f61049060d1ca750a21505a3049420365c85aca1d786 SHA512 41ebfe47f5e437a682ff2104935306e6bd4e7a6f6bb657414fc7fa63af931dea7ad553e8ad212047de79993c34cead43e97f6cf905d6cbfe7db90228c0a64b09 -DIST firefox-114.0-el.xpi 697278 BLAKE2B 45d1cffb43dc1f4f777ff72b3defef6d53acdcabd6dfadf22073efcfc2c94aa89f2fd5418410f93defc04554f529c8d9e9ef7dd8ef2acf662d89ceddbfabf43f SHA512 19af2e128d7a5f6bfa5a96a842d6718f38ce4457f700a11f428e55dc9830c12188d36d0f59085f4ad62897cac41f0680cd0b362a45b22a25ff8afe29a3a5d685 -DIST firefox-114.0-en-CA.xpi 550409 BLAKE2B 141632949b59b005b5c9debaec057b89108415c1391e400146ce0c7120c42f6ab6a2779b49c4434c09097e1b6635bf8855c44cfb1292df819457fcef5c400714 SHA512 bdca1364f312846d04fa0331c237fbcf48b92ff5eb3038282b82adfe63f0ac745dc0247d3c2032ebc28c7a9edaf4a371280d2e2b37a059a0c3aa49cc9b736c67 -DIST firefox-114.0-en-GB.xpi 557766 BLAKE2B 19caa81a7482ec64438aa4188c905d62479e2fa5350508339f82635ae5df75f4975ad0a8f97726b4de7e5b5cbd187f7eafabf944c95073f9433cde4ba2839d0a SHA512 498df1b1a5444c2c6838d1dd38759ac8fee5cfb96a2e9a94576c3311378b70977493b8f73ff2be225b86dbde1b6ea2e7644196dd0c46127e0b192b06312c4531 -DIST firefox-114.0-eo.xpi 582683 BLAKE2B 1ae8b2fd7ad10695a4160a490e427bdf95b09f69b42615de5b70ceb0bbf5991e489f2f3ac584ae9121673cca9de52c2861495cd319328b0b2282b830f84210fa SHA512 12785c2bf91485c45f313d07039edaf094e77d8d620f289c8f02b7e3b3dfaecada0b242404869b415d435ab8864012e73877bfa5e33ef5408e238fae3ec06282 -DIST firefox-114.0-es-AR.xpi 598768 BLAKE2B 9e015532fca4212ab3ca8a8651eadcdfb69b19af27997cee5da659f5fd2cef3a51bf81addfffc46ab0e8550d9bc3f632517f0564f8744d93e54271569e12a8b1 SHA512 78571fbb140b1ae97e30d64ab927c209865ae04c910422ff7f90c4c22d63f238a7a6a852fc72a8b7209e63c147c8fcfec59930ccb162ff21c8929bbc3b427d70 -DIST firefox-114.0-es-CL.xpi 597227 BLAKE2B 598c0d3a4f5c99ec4239a258530cd3cfcf6d13ff48793de60fc35b5f77d11d9bfb31cc894db1bf77d36419bd4de1366ebf5a728a43102dae2c5814b931a386f7 SHA512 fd7d2406461127b10c631c4250c773c528578e1ead9ae5c4c1d5fb7978a0bdd00ddb03047af017507cae82b2017e4d5ab20c6092749cfd17c6dc087ee7b801e0 -DIST firefox-114.0-es-ES.xpi 590807 BLAKE2B bdc7a1e3f1841e058691897e59a2a9d3638ad53f152c627c8b3b5825dfe267bdedc28c7c43952347098d70d57373b74cd8cfbc470896d394086794a518ee840f SHA512 0895232d292179b4e7b3d79d727d4fdf410646397973417561eb0463f39a7e5bba33e33417962000457a73806dd5437d5b4268282c67fa6ea7e26fb709c0224c -DIST firefox-114.0-es-MX.xpi 599671 BLAKE2B 34b6a45178b033fb9ef99916decee2f8dccd16b5be15f90aefb97df8a93a9a906c5ad8c200390a0f1b3683a86c30e88e32946b28f69d1ebfb64b12401b544860 SHA512 dbb2bac442c3e0f8653db5e88ab1367f9b4a102354225cce2812d8b4378d42d0c20162f902aa21ee03e7d91e083860772618c07d17071e7f3cdc50193e356093 -DIST firefox-114.0-et.xpi 548663 BLAKE2B 3fc09c4fea57c1f87f2ed7299fd7b76032673dece96cf0ca8b19c603eba32ab8d581dc58c0127c71805fe63e40e35589c2c7c407b4258c34305238634724cbb3 SHA512 c469274f4814174014dc0608ee5295d23410e9e6ba6cbe03334aa53ef896e46bfdc9f2012021ef5b26e2fb38835001e442ae32a7b04492ad8d449b98daa09328 -DIST firefox-114.0-eu.xpi 580405 BLAKE2B 14044ac976b5a3bf2da9562ba4d0f397c103567b49eb5d65aa411e7728c0313b0ddbe90c232535ff6bdcf12605cba1d19f64fa89f5336a0a9121c1d94acb1b90 SHA512 81b8b55f7624656d7d8d6e29d9d7f628db601d8deb09f9c00c69f8682b4bcd0617e4f73ecbe627fd309f3b17a7f91c49d49246a3ec3473a0daf6ed9c42e39001 -DIST firefox-114.0-fa.xpi 600095 BLAKE2B 0a70189ac642d35b7e4176f967dc5651bd885f46701148df680e27274e06f587f88209c8d964edde31b9c730a911f15e9d2745cb9797fd9b31c04a78b19e7a09 SHA512 edd5648c935e872a6fc231895177dd23564ddea224b7cda97fa8b0ad9c8feb5216373664cd735c03f69645684eec69b053063aa301e05b8cf733c0943766ea8e -DIST firefox-114.0-ff.xpi 486662 BLAKE2B 1f562c11b2058142aded9543f5fbc54a88d336a7032b24b9c0fd7c8cb82991803ee505c77e2eed53512462edf78a5d1bb4f4e61bc9c548326bc8776fa81acc0c SHA512 fe6dc460e7056bbdd327d6c2581f28ca794f9e0beafc7ff271056cd68eb0663441507737eb0bba52cf2818d68ffe94056fe22d38d5305e6b18f5be3ce1313346 -DIST firefox-114.0-fi.xpi 581644 BLAKE2B 2c14b38fc4f255fc7d1e27db6bd7e883a7ad5537d56bb6bc0d365c17a0f3274d5d07b1cbf578f0119fc1b9932bb8d96a3b0f29a5c82a2fe37a040ea25c2cc560 SHA512 4e956f3525979907cb01e3b153437b00460ae9008e994208179cf3dd44da9d1c7ae045856109b545481b8dce55b03b4085840c0d6c421152569eb96a1b45c00b -DIST firefox-114.0-fr.xpi 610080 BLAKE2B 86be68c5370bcb017863107f1f21d56c6fa912c5986bddfaaf6bd6cbbafe592c414076ad47d9202bf8a3e64240d40f986f0e78a3d9a1b6b036bfb6711fa45828 SHA512 d6ff0a193f9f64ed4135b409494c937c892c4b84dfca9dee5dcd8adee1cc24016768451b149dba52d7f74ce692e8bba51cf93a1a5837ba12d5e50d72f14bac6c -DIST firefox-114.0-fy-NL.xpi 593883 BLAKE2B 9cd1889525c3752acfcd704baeb125f7f6897d7286a9b82592d1e8bcd15111e50efc3d95c130dc9f68f52e56f8087c66c1e1a82567b367aed55731d749cab310 SHA512 ae4d7142e9708438b9f787a7f08456250de5d97bb03a2cdc2b0b0eb11f9fbf959aad7f9ca257b4f124360c374f05c5ba7b51fd9cee9f8cd814d9895c98db623a -DIST firefox-114.0-ga-IE.xpi 484110 BLAKE2B 563937cdc142aaaa513c5fc9f20cd195bf01639367bef535e0764d9dc3c5267301baba4c2626bbf90c6945ee1569543d4d5aa20dd6ed8434d0923c7632974dc0 SHA512 6084caa9c7541f6af25771d63186bc9507a1863bf3b08074b847404a07f6e767d11676606bb3585603b8f1f917f5c34c31c02aa92490b3f73ef45646b053b8ea -DIST firefox-114.0-gd.xpi 602887 BLAKE2B 81fa83307fbe4e28b02e5f841ee60230d73b48e6c8b54e9a787a080eb7e3a99f4baabce02126fe02ae8b6de8b762bd19c1fd2360d4fd35f0172273476e4789d0 SHA512 5892f92ef3029128a1ffd3d4bfe716a657983595e40d064e070cb35e298a5644bef64b22bea809542b6d6ee7859dfbe18b86abd0c376eaf5f8b6b83698e0f952 -DIST firefox-114.0-gl.xpi 594251 BLAKE2B 32c33c2ded77f7ac3c4759901e53eaa1e0434234d30e10b023e85deb96b84203f6d36ffa3de15fa048c6af3ac39de999a850704a7cfe92616b7c03af95d55811 SHA512 5d40d56ec689cbd483562c15abea193887ab2f44e1bad8eca7c67058275ad443ce4a37cf8e57ef4429271b6792ffe01ae45d7f42645991bebf226f76aab75c24 -DIST firefox-114.0-gn.xpi 608385 BLAKE2B db40401d2712a07700fc77ba607a447f789548b691d99857ae962359ac1b50241d2a178ece34335501218e9beced99a0a34d59f2224008995ad1bdd5456d4111 SHA512 5ca2044c4b7d9b9b94a86fa5da12839eee854c7419145a41809ae292f1ab55d5a8b947be4f7036ff8184231e5f083dca8de3851fee8547311b065fad89d4d6b0 -DIST firefox-114.0-gu-IN.xpi 542890 BLAKE2B fdd21c70beb8e33130ffa05d2ba7cc33af6f54298b31a41e72fce25a01f35e6ddcf8adc987bf3b787d5f8fd47c117d1b119f49d9f5ecb7963bb8d670481c54df SHA512 4ed0ed2d7b2fc465096475e823a7083615a4e738282f7ed664c883f252b7003a78238800b738a8b8a8aeb61f64db4a83170c6b5184df4984b01924f3b80db6fb -DIST firefox-114.0-he.xpi 602841 BLAKE2B 1d4b95ade0846ba2aedee7c53271a7d8c41997039a5a98ca482dbaa45c2c6f1b9a6424915fcb012eac71995aa877554ebc506ff82e042a21680fc1bcd8bfaa90 SHA512 17a14af5cdbb6cc111985cb848adf8cf876ea14dec9e10672bb8d1f838ed9df10ed45d5f2aec4fbb17abb654983b3ce198efb4d3f53a135fac806887af1633ec -DIST firefox-114.0-hi-IN.xpi 572445 BLAKE2B b8f19fbc662db6b8d005876ef992c5ee2525ff5d662bb2dbf716b74102af3a35a7c3ff1b8c58b007b4e87dcd4bc45b911ba7d4ec3246ccb1f402c203a6ddee3d SHA512 0d23ca2d0454b195b70893dc10d9574058a153718a5b29a86bc5a5032dbcd8c4b5382f5d99925fd25b3903dd26a937fbc6be0a10cf127c63bb77da2b03f900b9 -DIST firefox-114.0-hr.xpi 564430 BLAKE2B bacf27fe786c8c1951b0d596a5b8c9156530dd2323a8be7072b3e317b9779266ba79a3b8955d9f4b86da5aefa4f1519d0be0baf29d1702bd1b8a079a9b11da8b SHA512 551fdacc07bb084d58fe98d0ee89e571f621df21c4ca5c010d83371575bad8ce260bcb38bfb945b73bf2220c399859276a7f2c4b8b5990240764819313160884 -DIST firefox-114.0-hsb.xpi 615585 BLAKE2B 5657e64b16f9fd7c4e71e431b8c950ff37a9bdc4e52812d4d9705c773c800dedb743e215611217c7ba5fbac5edb9ead45ed4e2f733d051063be9ca743a7b3653 SHA512 9f7c547e074a2fe5b1ac0e19e209a5b93d7a9e2d1505ba36de975b4e6bbadc455c1b0769b863a6aef8fd771a29ec007d8731aa3499cc2c3628a556f2fa3f6f49 -DIST firefox-114.0-hu.xpi 619937 BLAKE2B 0eecaf7bf60bc65548729adcd2964f12be91be47b2f2a31873c1b1739c5dbd05531c16b8b51c3b624dff391faab2486f7bb0a634bea888fd5e9d7d88bfa5ac05 SHA512 534eab76894ed1ccaa4b5ac1e22c8671c216a98fab24024ea396cf708c7ef23632c3f559ab2b62c82de362fbcb728ec35d57ba4e02640d7513e663bc3c5c8f3c -DIST firefox-114.0-hy-AM.xpi 615202 BLAKE2B 00ed15f39416adb74c09a8d939d04d976c7bdbee3995f173ebd7f51247ed08d77c7014eaebab06dafbea65817929383b9efdd27e78dfd1a976360f2ae9876599 SHA512 4b99582cd76637d7027d851e33b5cf7cc0bf2f6d6a5fe33eecea5d56a070c1118f7dca733fae9a86e26d9b013272e843ec8d83d8e5e189d50e180c49c6010dd8 -DIST firefox-114.0-ia.xpi 581881 BLAKE2B 73074c044cd4491758a287031acdfa26c42286fc2d99c6bc9070b0c174bd76dd26aea065b5c612138ddf205c4b2cf4f6ba092b0525587a5486eabcba96e96c6f SHA512 c2e651e16c347d79910d6932876a1679c8f3ca0588b14c079cba087cd6c42ed11a5b731b1274f14631c39466001a350101d03feef6c7a2159a50d1b1100c7490 -DIST firefox-114.0-id.xpi 570695 BLAKE2B 7323c1f9cf8dee87d48de5ec4f65ac98fd01da89e70bb27deeb3e4bb232f1e0ae2a99ef7771ca9155c9931eb568c16438ce4830fed76851df3cfa22a9d32157a SHA512 43049601ecda00ad7be4e82aa60cfde71653682720e6eed2f4274aec21c15739e966b9fc5f3b33ed229652b4b469ec90f61a8d68fe5d213f70072ac6c1be4800 -DIST firefox-114.0-is.xpi 588850 BLAKE2B a46c71219fb28bbcfdc9185650a7b6f3a30aa0876c0dfe5588db1befecf4af31867e9a3f50acb19d25f0769c5364fe440e2689f5a961281ad702c4e701adee73 SHA512 d2607b03bb703fdb2fc8525d31aac1b34b613a551023f49632bdd77769454ddba0166bc9e39f0abc303098ee6ca01f02bf1222eae7a3497e9414c95765d876b5 -DIST firefox-114.0-it.xpi 526225 BLAKE2B 1434e91fcd9d30cdde081260b11426fd85b31eed179c03f6ca9dcf5c7073e6e4b922fdb918855ed1a525066e4ef3f912fb2e1d159dd80d024b7a898ed688410f SHA512 0dbb35ff72e74f3335f11a482e4cd0167dd12a2b61277096c9337e4d0f96a28897777a859c23279bf9f39c1ae006682631cefe70324be3ec59936be5ebe23e29 -DIST firefox-114.0-ja.xpi 643593 BLAKE2B 3046944a255ea7fa49b84ed4cb4f313c0d64f34b2bdee1182e2131f8d490ba33077787f7f975286a995d67bb0a6c3ef3c9c1159459dcc3361f2e48328d7191df SHA512 2f3701f63e89b37bf1cb46f4256604dac186f16722c25575b207323d89b5da66d1e2ae0546b2d6aa396b2361776386b1f4de9ac5eb8a055d28da12a54b10c2b7 -DIST firefox-114.0-ka.xpi 651095 BLAKE2B f3a2dc5fd9b83b69902fb7182447462ebf61b097067361f83ae4e9692cddf9db2552a6d3eca4b64bd51198326f0e0793d9ae49964e1d0ce56a589fa4ed949683 SHA512 300e2088b7693942cbb6e117331934c1f97128b3619eb1674b3c7b7bad72403df3fb6e40c0689fef6a18cc279b981573e892ea28998f37a4c2fc6a33b38f67fc -DIST firefox-114.0-kab.xpi 597222 BLAKE2B 96fb6af96108e853398192e2d7c3d024ecc1c5b4a8d550fe24b1f4c50047a38e53d430621278da511eda0234f24ea785222d469b58016fa798926e93183bc21e SHA512 a75f63fd4ecf74455bc453fcb61c33197e6756c38727c85f1270e45e4720841e41942a8de4f047cb32deecb9e1707b7603a3c443c8605b745268ca1ced4b801e -DIST firefox-114.0-kk.xpi 670859 BLAKE2B f867d696d94368adf120ba58188832ce2896c0d18bc9df63b47ddafb45f5b267a27e75125aec18a85f6324127859b01c42cdb447cfdc624f2b2d6b1ab9d2076a SHA512 6b4523a20db029a262e398372305041f7e5e80eec35c41fe8ade6cf07cf6e7f26cffa17734430bfb8e74c42b0dcc0626442b5aa650a86a0cfbb43277c7067980 -DIST firefox-114.0-km.xpi 544997 BLAKE2B a62ceab158ebea940522a823bf2c0fd2fb1c39a804da6315c462a753b438ff629797ab969a460e6f812ac2407d340fb95792428dc653452b1efb304705e4d486 SHA512 e2a0d87ca4c25c4d82a60568e48929ef9373ad4d8e752b008dd07adb3dafce38287013f7a4852efd9debe6f0da8b7ccb06555a76dc2ca421e9e4c8f0b4e53fca -DIST firefox-114.0-kn.xpi 509832 BLAKE2B 1f65c28da4acd2e91989e3caf6c2fa10b74a8ab52f479869040449ee08b9c783381c23898626a167ca837fa28cdbed31209f02de7cd43b6ed85f2a39fab0493e SHA512 52f38399cafb6720e0e381780ae188b42ce74dd6c8e5aba937a8e33daed1d625ed470e3c0fd5b18da364027f653caa5bf7f0fda0943043c491a62dc40ad6ae0f -DIST firefox-114.0-ko.xpi 630756 BLAKE2B 13f0b5c40a8d584a7821720cf7b851483062fddf3d18dce82a4f11543b452826d620bc216291df74840cb844bd8fc6c7cf9934d794df6abefeaf23633194ca63 SHA512 994e7853f1885d9f6fea0d28b6ccc12e51dbbeed694886530fe14f426c01ff40805f72c2f2d51f4f34d4074feb5008ff44217d54549028b806e3a92c5924b886 -DIST firefox-114.0-lij.xpi 483927 BLAKE2B 49949d12ac57627f70f40ab30517616c22b0ff26d505118a175a0b972ae4df77277169fbfe252e1cd0d1bc04b8da2ed2617c0500a11a93254a2e6722c1a05fe9 SHA512 7994f59bcaaa2b4576fed90b24b05ad01622d3a43b1949953c2d0676601df862ddfb03743325463090ed4ce87bc37a8adcd0545bb16722d2063ae386dc256eb8 -DIST firefox-114.0-lt.xpi 583460 BLAKE2B 580251cb1391ff9e75fc55b73753f6d69a33cd613caf201d6b684ff3bb8e3443d29e802a796e342aa0f0bd2c5a16ac355a116ad3f218576e5d8e910385312b75 SHA512 9ee2ae47d298a528e118e4b000e0e146c2166499e0386a5483a155352220767347336b649a4e45f5719e3443bb234ec827c42c09d5b0eb87b75a0c8b8b1c73d6 -DIST firefox-114.0-lv.xpi 483457 BLAKE2B fa7cd660f3e5ee530938d9cb285db0f6af1f62b0d6b0c22edcd16698a919ebcc2f31e0ae8d405039af043b40565ae8fa5a38c19fea5261c6d0420ec842b96427 SHA512 d4e954e9fcd0130dfa617efe9046580ca3e0a92eb4212293314158ab03e08f41edcdaacf0e3319bb1f9d3b46b6cfcd3986dccc762cbef3cb8a6f6d53acea812d -DIST firefox-114.0-mk.xpi 498713 BLAKE2B 6476dcc582af9a265403c4f6ebdd45936ab36f22596765d897f74513267261cc0186ffaf58d93a4ce68933d5f43a10a9d1e662161b2cb29a2b5f5f1c7f0d146a SHA512 3fc909e49b52bb42c175d6eebb1ce585b0c971315fe99414b79bd3fa4f18608bcdb5be4c68fa06471a44e84fc30731dad4d0315b1410c65a43c4bb65b3c37c52 -DIST firefox-114.0-mr.xpi 545414 BLAKE2B c325a1fae1c479aeee5a087cafcf3b1d7002c8d483f3f3f3feeee117ab641e9f8ffaaff793ab123cc52604175b62f97dc6e654e8d848bcf46691d3f1f022fa26 SHA512 183bbb44eae5cdfcd1fab10e1f4a7f9f6be1888881c46a5ef7e323bde309dad8238711848ae3d43cd668603cd88d223c3511166c11c020988f657b482650d91f -DIST firefox-114.0-ms.xpi 462624 BLAKE2B 128fa39ca556656d53f45d0561fb7da5389abcccfe85d82aaa098779411c5889d00dc412f70f6cf90723df28ac31785f1fb63d530364786a5bbfee0dcc450203 SHA512 b6707b6176da6f07620dfd38d8106e114060bb209f69e09aea87658b24fd512357b9ca4a26a3ca47aaeb05f29970a9dac6b0180d9476b17ca825a516e63d9b1c -DIST firefox-114.0-my.xpi 530516 BLAKE2B 1918d0df185ecb62d28f26b71537487fae670549506e1b01b87c266043dc0d50ad719a04bac26244f4236ab95bb555e9f89b2545ffebe4eba27081e0f399018f SHA512 bc6fd2d86dce81f2fd24f08e36ea9ce125193f102cc483a4086605677eb7a078205a99ba63b4d507b62a876f80410b403bcd4edab77a4a94b0021b64e00e0199 -DIST firefox-114.0-nb-NO.xpi 579551 BLAKE2B dc6a6296a47e2de94f75a936b21de3831044accb971f5a6802d15cf209cb101fede1731892fb2de69911e217ccc2eee0f4045e7cc36f8ae0f446cd93773f9be5 SHA512 08c9558a683cd4341fe9db998e4c91a6954712549e6c848bdb06642907a457497c11473d68f6cb59fa6ea160d088a02bed792166c77c3fe3c1fbb749ba564305 -DIST firefox-114.0-ne-NP.xpi 498497 BLAKE2B a86b797963c21402fb97e9f07f083fd671cd6e4ebc6c8e2f1d089dd89cd6b80178b4819778e6fde562455eff54330f861743dcb76ddfb524bc011d1e2425d048 SHA512 72e05e2ccae9d68b43ffcd35596f72388a650c8d47a4e1b5d20ade97eaf66c3572c980fba9092a28ef6d04cbde0c97e665ae55aefcc1664a12d493789d871cc0 -DIST firefox-114.0-nl.xpi 587744 BLAKE2B 4bc99ee15eeffeeaa56d6f051949884b80648d3ff66cb0fe5011461fffb6799fe2a917c592ee0efa3ad89cbb2401adf8a4b71590ca7e729106738d5709880abc SHA512 082ee888530de6a08c797870c404ce95d6cd178543f14fff3d6738c9275bc322b1a8d6564af37c14c43a9e283f5bcdc714b18dff0f1e4b6925aaac1d09d86fe7 -DIST firefox-114.0-nn-NO.xpi 581013 BLAKE2B aa9dfd00595cefabc24a909817ea8d02c9e3e43d208973b2a9ce447ae8ca8d370dc5c7b839c47e73a72937be3b0e0cf6de40ab1d60475b85c2121dff4b93110a SHA512 146c4859dc4e765d4f8f4e5730823345009610a848085cf619e36a57871dccf4a4a08cfd3bc4b413c06f9de7a1b96b720222764370e32033683c413f44de7864 -DIST firefox-114.0-oc.xpi 602223 BLAKE2B 991ed41dec850ee48135a1ab30922e233ee6bb312e469019d37beb49ace11d40e64545734e5273f0003f8cd00790bb1b4324a8b460643484a421ca3b070eb972 SHA512 0c8ceae8af65ef4bbe4110f89ad1a756c518170bf68821027a13ff9287512b3cc0124152025766e0dba4f5b331eca872101820815363ba6b6df7cb6e047b19b2 -DIST firefox-114.0-pa-IN.xpi 661767 BLAKE2B 61898f1dbb8634a3fa811661058354b7998dc145d1379b84a3aa6ca44570927705030791bb819e3b02a4750b8b699b964c30e4e5d1f06e1ebf5fc60fd343573a SHA512 0a2e269b72e1470dc2cedc2f4fe82e7e3137b3c8dd8278ca4f11be35f51c1f779c4fade830902f4397205259357195b572cf30ea62569c3db37d248ca5b2703f -DIST firefox-114.0-pl.xpi 613057 BLAKE2B d4205bf35653713cefae871dfa05db931cdc95a1dfe8dc43d2770afffe0fd526222b4b8a845c87bf4ab36a129e9e0460a03479edcf6cd18ff48fe5f5ccc4d378 SHA512 f80bbf14901b076dca1d7e592d31f9bbb9b6b90a83a379d364bd447f9fcd2b4843ebfe295b7e6baaed8b6b2992f0f38e97ab7fb4f104ee7d16dd18c6dce8af98 -DIST firefox-114.0-pt-BR.xpi 592839 BLAKE2B 76109ea673c6ebb137225d4be17a6182079165a544c5e82240d7eba781312be45c396e5413ae01e62f615533797f5c3446b20fa1ae91c8471eda92c51f09ef3f SHA512 667c330be1af9091e4247664077544cdfc8bacfc59e134b6f2f5002fbb1f7b775a464372c20d8e275f7bbb1f33a06211e4a125958b879858f4004cc30f34f0de -DIST firefox-114.0-pt-PT.xpi 598528 BLAKE2B 252566cd7c445eb3b58c3bf5a04f64b6f8dfd5ddd2eb4130539064525cfc76806bac9446e8f0afbbbd2482c8440426cbf3f09557a72870d44bc8e7859717e7b1 SHA512 559e30469716055cf8f747b80ad481a850a84c2cc34bfbec2ae23e8f369c5a812f39f48eca425247cbb747abe5dc6b83d498aa14c12069552e5835f9b2afd6d9 -DIST firefox-114.0-rm.xpi 588758 BLAKE2B d38c0dbfc918f4c7924c19b796517a75b4329511db75188d32cde7d244f417ed0781b5b44bebc76460ad447d229c27fd48d838ce1a7844261efd29d3d5336a44 SHA512 5ef75baf1e2a76303ff6930f65376dd406d5b331ca770fea8fc23f18bde87a040d4401f03e128c1cfeabdb827ed21c5b6707a5804a830ba78a97592dd9afbf10 -DIST firefox-114.0-ro.xpi 551327 BLAKE2B 0f7a79708ad6c0c2bc31c5a80b50cd83fb4b0637e11f309cfd8daa8c39439de70fb76bceb7c3c88c92a4a46d855f1b2b0c3732e2c97972f21fbb7a11724d86ea SHA512 14b0ad777d29738e429e0d5c199d601595c4ff26004f4e841e85939f0c5bd0d3088d7a8d613e43e2a54f03b0374533742c38b9b3eb1225977e8a6f6d61fa5ecf -DIST firefox-114.0-ru.xpi 687292 BLAKE2B 4f0c42fcc33fbbbfd43a08517c2c14b5c4c7d6ec74a24c5c546fe7d76339cd6fa87c83048af8c8f67c0636a3167fd5fb24515637d31784293f93431deb99329b SHA512 18927c312cce47b8e770f597b2facecec465738a4e9f0ed8c929cda5529bb2c995f0c21cdcd7f3b47719fd2c2607e0adccae92a383a725161e093d59076d9175 -DIST firefox-114.0-sco.xpi 518579 BLAKE2B 86f2d00883bb2639d03cd3236dcea453f7e121423a3d034d5dd7e0ed4c92dd7e5e68e89e85c12a2e104e0979ad046576eca77edf3ba1832dd8f8809ff4463e19 SHA512 b2d8c4251802bcca9af28c2b716ca92e0dc8dedd2dcef6f611d66e0321b576d176d45cab8d2ed0d4f36fb7007f4ea13a38daa988d53b94c2579a371944ba613a -DIST firefox-114.0-si.xpi 588199 BLAKE2B 5cb4a320ff9f968191f4a85458e4fd83b499cfc4e1df75c095a2b5081081b7b86d9b9e068d7aefa102cd08c0c64c3c4caec85c2f57140c3bfce2a61ba1eac37f SHA512 fc82db8b75b04920fedd4d047781e0521e0a91a6218d73aaa30be1d26d35f68b42f0c8abd2ec00defd0328fa01a10fcda39479db803d40f5ffd2af15bb553fc8 -DIST firefox-114.0-sk.xpi 620921 BLAKE2B 1e45603849b91627cb648ef3d06441a48a3d99f40c559df8b85a226faca46f26e4a86b93772ab244626f66000a6dee56dccea8a24fbfa57e92ec75c8ceda0599 SHA512 5820632cfdd05a47d2bbc7fb485b3b7effc41bbbda7975dbad6dc1e114ba801ba561d806aa91dd551a3eeec474ef426c346d6a6c3925b607003ce6e3201f3698 -DIST firefox-114.0-sl.xpi 590620 BLAKE2B 987ea5ab0f6bc16d25ee8ee4bcc65c512b296644aa77ba19d8d74f4dabb83347e846d9748943a12f94c7b8903806f70485803f9ef72958b03d61139182735f06 SHA512 3f63fa91589b63a83cb9ebca7dd5dbba20e264950f30e13349181bab5684ee5fe3b8b0f5758e2962200703a7b53c37c475ed02b4c5cf93585260693f7b69ae7e -DIST firefox-114.0-son.xpi 433865 BLAKE2B 48b47b718ea6a426149019e32c046a557df2c299e9b20e6537d626f1e036a5a68a4a359d837a5f1717b65cc901acaf908468fe023dac09509548288f871ff4b4 SHA512 461bc75ae363efe3bf1a37f40d15462b731c416bebd38a7f3286734ec9a114df97e0d0524d1d3c825a7a2419f8e2e14d36ecacc6222adbaa118f9721bc35b724 -DIST firefox-114.0-sq.xpi 599886 BLAKE2B 663e32592dfc313fb217e2dad80c1ac0523df80412cbec1ce8e24ec02259d5e46dc673351c0d8363c00cc5f38e2bacb691412b46a78e8ba94982d33e5ab606b9 SHA512 8fbd0288a73503d5368850192c030af91e3a30e310f8c62433e660bf4ef3675657eb3e98cf66f46ff386ac763baa3da085461885d60e9a26ac9ae160640a95d1 -DIST firefox-114.0-sr.xpi 648660 BLAKE2B a3a8299bfd968d2eb0b74b32754547f759642e8ba3b90003dd80a96c3c8bd4ec1e91e263eabae388f7a35f578f9f9e68ced6d44dae601b22c367ac1adb592bca SHA512 fefd412e16e97520ffcb3f0dc3bbf09a50aa56826bb995076377c575aedc4485c8c14e7224544a6143bd9270ecc96874ef9ddfb947f5daa58ec08dcbd11e0043 -DIST firefox-114.0-sv-SE.xpi 589715 BLAKE2B 70b3986c5d68da2016e8f075f04b1942c3fcded7b7063b3f159ea84f5500effd75e37995ce1f7762165a16ca76971922b04bd1ac6868449d9fa3f2c323f59337 SHA512 1dd8c4983e29aa3c844785a79f52b41bc068799d157eac395e7443e8b7b2389f0435edc21bfced15cf77d81f651ec170c8e40bc8180a273f188c31f1f38f756a -DIST firefox-114.0-ta.xpi 522180 BLAKE2B 33ff8bba6aec2f026450a40a80615749eb7ed10b999fd43c5e8ccd3c4409c4e8e0c81a36181a49574e316c0bde43ad56d005afe2efb0534d31616d6de24719f2 SHA512 615f1ee85fea3b80e966cf6fefbb1e7606ff15a854c915ad339ecba2dc3bcd77414dd24b084c85f774c0c9341bf0c385640e57916a812b22f5aafa950763f903 -DIST firefox-114.0-te.xpi 571348 BLAKE2B 798abc4bdf3b047b863e1f2d86f3b78bddd70166a0e7cc1880d193e4fed40a7687e73a320eb59d3bf536ad4b984af1f62bcf92936a7178041dc20857c8912127 SHA512 8164a147410a69947d984f537a354b876fc0cdf3c9af7d10f3eb4776212bf53deb9d8664e5af676c85e399d43bc0df624bbb0a91da387d9eaa8d431a685f5ba7 -DIST firefox-114.0-th.xpi 665261 BLAKE2B 25b850a5d872cdc091f3cbca7ec07b7f00a4612fa58b693e74cf7950425f360068b0f8e8f2dcdfa4fb05472c6dfd6e2d1cb50d03fa8134623f80559ffa411ebc SHA512 5165251192214d73d1d7c103a4331cb24f88d54e4410dd74b0fb278bd7c3e8840067797caf5bcf3c3e920d512f579faff0f2b6f06fbc92ff3a4ea106eebe02e8 -DIST firefox-114.0-tl.xpi 541485 BLAKE2B e6a1346a31ef4bfb08446fa8715dce4abe19cd2d44e7542ac0539d04053a6ce517c0b190379a941d255cf60149fd4051ce54a1603709a8cc52ea825c1de96f8a SHA512 3b220729c927cf47e87c302cf2a6e2809e1bd92cd26a6a308020b97093e6e9fb0eb4ede352443fb7609b5db6a67fc2124af0e721f6ed64344a0fc3ab5143969d -DIST firefox-114.0-tr.xpi 602921 BLAKE2B 49801865a2441d8624757e3ba3b6567826a849cf3beacaf644d3d1db77eaa1b7272bc68399f2e04d1c4625c88ffea564aeef8413d4100e89a1d1c72793572b0b SHA512 2bf46e30e06cdd1934b6ca187b50db68b23da3d20f975b4532448ce5d53f5b7180dec07e8b249cad8c0a0a3a88b7a73071776ccae663071f35073961c60e4f84 -DIST firefox-114.0-trs.xpi 502329 BLAKE2B fa2b29faa60f01bb40a61bfebb5714bd1b5d20d37d16028af8b60ebcecffcb4e4b62b30f06098db0c129679786d304e3cad4c8212ad5cc7548595079041c2f1a SHA512 ac28b8c7789665715481e373c94deb8a9a67cf584e601b75929d13bfaa8bd6f7098aaf6f2ec85846c1a72c8a09654579673c428cc1680bd51846f5524b9d7dc0 -DIST firefox-114.0-uk.xpi 679235 BLAKE2B 0706faff92213d76eca476eed07b2531aeb62bd09df93f5c44d7638e482fae31561b9937bf5d91a7cdff2a8a8dfbe26ec1b0a080fd44145ab8d222de59362d06 SHA512 901cd5ad6c366d0f9bd70485de6bbe10f2054acd0e7bb03fbd85af24a341c74f931758a1d5e734b7a922329f43e033cf77dd92469bee27ce3a80473cc5325ab6 -DIST firefox-114.0-ur.xpi 572237 BLAKE2B b3317d5040e3247a911dcbad617d1e3dfaf9548409b4157858d988617a8e3dcad068836125259067261134b1f98d061338aed1bfeef89ff9cfb1e2b5244a437e SHA512 165f3fe2c1b6fae3435d9645cdfb1ea1ba8eaa638c84cbd42e9a5015429b8856f1f3f67ee4f7353cd145f5182450e97fa661d7d2c19de1b65fe7a5bc857cfe12 -DIST firefox-114.0-uz.xpi 490809 BLAKE2B 718a3530097010381f252a530c8be04569bb50bfab46e92a8b0d25e182f59322e45a55a523bbde5ae473c64268704b7b2c530d710a07c05789e1d929c2ad6d11 SHA512 49185cd9246461ed41f9d60d42eb80c7478dbee6325baadcba5cd58f9702d6eb702a3c57bc04170fde8ea9fedfcaf0f220784899bafd57ca0e82abecb9183a00 -DIST firefox-114.0-vi.xpi 626079 BLAKE2B af815c9914bde9ed4336ab44dfe75573741f93fca84fe786d7eadfbc20451155a52fb29a1d9937f1cbfdb83954ec8c4a7a0ddc5f0a5a999232eb5a49a54e3e46 SHA512 5df0360539d48d76379f255a888bc48bf924e85815b0b17f0227206f4feece51509943b4bcc36d6020c22b7ebd5165acb83dfae45784873e97edc6e07a139688 -DIST firefox-114.0-xh.xpi 430782 BLAKE2B 1dc42e20d7c9affe144b56ccc12ecf3929d881ace62b643d4cb8d97c5b342c9ac6b22a8c285b69ce00afdde291472e974f058a141b8d94bc3a3b66c57dfbedf0 SHA512 c4dca4b0050458d77f67b0d995c8482baf111d1876f8337bef86e573cc854eaeb69b92f95d9ca14d7f091b34b5ec7f4761d1b9b0be4055ec248a067c411062cb -DIST firefox-114.0-zh-CN.xpi 626215 BLAKE2B ec604a691292d4d843722f21ae986fcdd23c249fda9bcb37c192285c761618c9ee923ebe25ec434d08c47fa319fce1babea07cedb317c8333c6c1915dab87753 SHA512 6576b5a8917b83b519e931bbf05e727c75b621c4de01379cda01e2d8a860159950cd66f315745f8b6327b10d2663a2cb1def624b432cda7a094f02e632c50a16 -DIST firefox-114.0-zh-TW.xpi 627563 BLAKE2B 04ef461bec76ec8149a9d48857e4d360c45f543140dd529789428d58ef177010b655e5cee0b8cd14c8b4b91ce72eb9752708c2794f9d45c148ac4161fceee9be SHA512 bfe1f952aaeb635e823bd2e4f968cd263287d35f705d17cd3870ddcc995acddd4e023b9812e50195ba8cdd82dadd68266f6abe226c1f969a453afcce354d777c +DIST firefox-114.0.1-ach.xpi 469752 BLAKE2B 570e34c7a89f957db5c97e7c197d4ef77b99b1de6da1c5f62876ab2a2e3674a1e9a43bc192c2826ee0eb7023e70e0f4e800b94ce10594614e71d3088edcadeab SHA512 5eb8263de69e4cf46e23e6f2d497aece50bc26369c0ad8e2cd2d4b84b35bf89d805a0d645783daa40c3501fae2cf7211ed1d7ce75979f75ea4f0f2891f7a4167 +DIST firefox-114.0.1-af.xpi 431870 BLAKE2B 7fad5f5b9c89b6572765ccced348ac020b6e814fb3e2acc1c51e3d0ea6074a54c86d41330c71c850ec8f8d562aaceb3a11a9b6f0ec6b1014a51cb8cd02ed6fd5 SHA512 c2ac9b8303acf476807293159e20d3ef99156a9c9e659d7cbf4351fc9798b28ee952a2e10aa84de08671546268dc153c5c0e3f41f123530550f5aea64215fa6a +DIST firefox-114.0.1-an.xpi 514891 BLAKE2B ab75af9299fac964266cd84423062764eb21665b648206fa8040002de9a00b02f9d6cf553ea450cd57595e28d90fc2c1b0bf0372f5b6f8f8d6f65b7ad9fec9aa SHA512 255d33ec6e57f9d55866c3a437cd416f9295bd4359a4acb8c57fc85ffcee240f869d9d1009493e2eb2b87c5e0365141a8c44ae82f54518193e1858027ee3d034 +DIST firefox-114.0.1-ar.xpi 583769 BLAKE2B f458d843af086de4a3f82c0580a5d58bf2c49f9a1e04f41747013a816bf76f71ad8929d1facb7ccf89e5669a4ea51216a40b1505ec3eb044d69e2f19d8a9e2d9 SHA512 0de56f51e081174ec285bfa1552fa54f66f4b113f9be28357f3cc1c5963abadbed6702e398c356d801b57e1637854b5ade57b9f2eb6782aa25e06023808fdc32 +DIST firefox-114.0.1-ast.xpi 499198 BLAKE2B 8dd2a8c03821514860f2fe0dbb9ff4c20ab1bd94ed57b3090adea2ba76c687bdb5b0d9e98ff54bf321c750680339d8ea0e979ec95e1da9c4449cfe8de9567282 SHA512 428e572450f760120715b0e4b579a1b6df19d29931e088a1a1aa18ca5dc977c9291186f0f3ee0c31274cee3a225ebd679a0b953a76bd4505b849f6fda7abad03 +DIST firefox-114.0.1-az.xpi 502901 BLAKE2B 1ad69f8efe36a2d24e737b51ae7968a08e6ae9d127e8d6016a5cbecec2f23f2ec640d4d8ebe719b15fa71f2889edc90fdaf573aba0524ff688b1a3d98ae655cf SHA512 32ecf9cbde15f3e3c1c64601f1887453578793353990774750aea5bdc297eab7589c4be878b64bca81491c5b1783bfe4a3261c21405e4728c49f6f68d5c455d3 +DIST firefox-114.0.1-be.xpi 682521 BLAKE2B 348a9de0062bb38709480f26ba89061098d4885ccf2e0bc31a8fc63526e21bd51230f887383c5be5eb8d3489f3c77d36bc67e8955f90e2f488dea02ecfb67ca4 SHA512 0be4222618c3aaa27a2df7329f9654d310773c4e4e672d88cce40461fda277224c504e5587172c2aa56d815ca08495451d205bf93fa1a5bf6016c3311212a09b +DIST firefox-114.0.1-bg.xpi 600488 BLAKE2B 3bf88d2d20ffbeab40c49c777b1218ed0b7f2811571ce6595e5e572c276b7f54c1a378ff35c342d72d95c06d1831d1ee96968b2baf852bdea60026b9d10ef8ea SHA512 c2e5ebd970301e88d9e230cc827b37dd8a3f542c67160ce6ba78eb72b186b8450485facfd769db0f631a9604d7da9b546f8d4623cd60ed55bda4fb83d4c0b917 +DIST firefox-114.0.1-bn.xpi 594235 BLAKE2B e234ad4217a1490db12aa7bd1b5fd761b4261925edf5aee8b4470c8035fee4a5e7cdc42eb2c5e9239c2567e1c5f5cc1072a6a79d6d4484bd6bd1b2951b9f41ca SHA512 0a13d557fbcfe98e92113b3b0e2061568b34e845755d9cd0c4736bc33c9b626073d81279d4a756c0ae22004c4ea70c063dc3a6b5abb446cf0fcac40319488a09 +DIST firefox-114.0.1-br.xpi 565508 BLAKE2B 84a73647338919d1a80b621516f1689fd77992ec3f5868de5e9ee6a71679784228089c0489937f7ffbf4ee941b06fcf87da668a9b217f2ffd3b439b766a60ebe SHA512 d636a0bf84d4806b85f3c6075517fdef58052e16a95658ec435f5e2b216d995565d5d5674bfd1bcaf4c2266d62556509d4045831eddd6b5f6cd00940e323fb1c +DIST firefox-114.0.1-bs.xpi 474903 BLAKE2B 6364ae51e4648edf4d2b265c44114283dfad520d79d7a843be056fa5b0301945b13d72c771ec38370d619aed810b2012cd27d00940fe1421374e46e84ffce958 SHA512 65f969852c37b907cd6ec20d379d98055027a3bc7dc563df759f16cbd3d2305b0a491bb8378f111bb824712b2d0eb575ad50d5951c81229ee329c5a1f87d0572 +DIST firefox-114.0.1-ca-valencia.xpi 554188 BLAKE2B 81022a0b89145346afea5d6db4261ddff5a87d9c2c733906654a7e9a38d0878bd9389c0675f3e308eba5e0e2cd135f5ea267aa98408681ee03290bc30eae3fb1 SHA512 e263178b345b8b67de5f4f2e6636de602837378e30d95a8aefec334ab8f24ae4bf223c07c6747fec50f79797a1cc9d617e597108a81b1b0689df822a44b66153 +DIST firefox-114.0.1-ca.xpi 574641 BLAKE2B 99692c41770c9150b2249909f939d860b50507b6a131e2eae716949827342f11712838470990284742461dc1d926c3dac26fac3fbc6b844e61d9c18154bfd399 SHA512 d5c1dc10d6b3a3e523d7059c731735d45b8258c85f1d335d67e2645ac08e8285e8c0fdd7f43c25bab864090b13b34de2e71225df5befa75187793fb0adcd0988 +DIST firefox-114.0.1-cak.xpi 599306 BLAKE2B 4288a206f29d1618edccb976efdcfed6e9c2767b973d9ba9aaccda818a023b8b695dc1478b8859c2f81c2b353e884b7e19549d12c16eb8b12a526e5ffe8c0662 SHA512 354a728662f900340a7f17006663e48c7131dda9157c2a7b2d4242fd44d3ee56d1dbe7a85f0492447e8fdb80a01906ea9e697784728cd84a23aef4b75e6d907d +DIST firefox-114.0.1-cs.xpi 618661 BLAKE2B 46adb4106a2f8403477e681c398ad6aef81348be7133c1e98baaaef71c461b326ca0deaa0a80e250aac9b5c0d59044029e70933494773e559da58fde7f4eee47 SHA512 7dcb6e253153158d2f2af3bf7751b2300d3286bb982ff8b7bf434e97a0f331f000456ed697663929410c7f7738bcaaf100ace47f601c13046badb3fcc82f4151 +DIST firefox-114.0.1-cy.xpi 593765 BLAKE2B 0f67d031a3022ac07ae67589d82a825c1dc5cd2f80862d34b7587a3a54459b373291671149505c94a8ded0e383f0a055a2c192f054db19c8c1769ec6cc59578d SHA512 36b8c0c8d1db20a6abe1ef7b43b10b8ced1d05575a08f48d055f333fcbb8588ca26c8334c258d1de9658a3807442fe469004170a7f293217be40446c9e4f5f9d +DIST firefox-114.0.1-da.xpi 581415 BLAKE2B 610e8cb2a6976cfe030fa5bca04347167e2f6eb518fe0c1d96c03a4a6a2a95204bc1047a8ac3243bdfc8784aba18b71b163e521c133eb3c1f5e3c1158c3adb82 SHA512 f44d9c8b611b301a2dd5b4981c67c529a4cfc92c7a789535ecf5f7eda956d36d4deae973ba64b0f3f0b2d35307992f93360708431bd7b909caf5af9ed3440cc4 +DIST firefox-114.0.1-de.xpi 605024 BLAKE2B aafcc2875a3c3c743c83b420c82e2b7692d02a0f0a066526e7df8a42fa17f64b95feba69eb0de8c356e159c8a7dff483b9deef958b95ef467e870fde1bdf367c SHA512 1e6b4c4c224d07abe2330314a7dbe7f2349665d8d6b75e8579c87095b60a7101e644fd97b8ceacd2079e7fe6c8d3beb9adad3979c62e4497648b4bfeaf6dc4c1 +DIST firefox-114.0.1-dsb.xpi 619598 BLAKE2B c311968a97c7fb5655db3a5effd474ac613dc10eea05cdcfd7deb9d8233bd940ae16811a20d8087c019f82dfd9bb851e70b31a2b847e5bda92844ff681af652e SHA512 41410e49accca9225fc0eb96b4d0b1b5bf606bc6e270633df6ae493504c38752361db8d2e3f9c4d36cc58fadbd6897b3dcdcd03f01f9980226f0f4c233198147 +DIST firefox-114.0.1-el.xpi 697279 BLAKE2B 0b96069da1d889590e27ed7810b6302d816edac8688526c200e6010e8b67141640c4b7ba06146dac00ec9dbee1da0a82b74489a507f51fa8633578d50bed9fee SHA512 35167384c0c7d9fb4bfd0f76962ddb1477227572469040153e45c490c2b71e3f52afc9fe43a91d10033f1fe8cf130e24915e6b899b634f4c56b4c6508fccc4f4 +DIST firefox-114.0.1-en-CA.xpi 550404 BLAKE2B 61653de0afea8567a8b62c134ab397636a6d0ce9a5364fee188f24e41841567dcaf02865c2e065131a273c0b3b131e8a474e7aee3e8239206ae86fec79a497d3 SHA512 20859ca166501eb91610c71a7656e09c5c69aa22f8ab619e1e029f174f9bb553fc2ad093c42e13aa23778c81306deca335a63ac0534edfa2335d8e3cd1e34ddc +DIST firefox-114.0.1-en-GB.xpi 557764 BLAKE2B e4f354730fd6b64d7657b552bf10228b52a8191085e7069b1b1c85a5446561845ef4017448c18c1a76b8338554b6015a8327926efea9a4d3e9216e384917acd5 SHA512 42e57f0c8071a76006778308e3b3d6a9661cbde10751e755e6983d1d38c8da51b93ea8e240d131cc07d22bbbff9ae13c6c0c56936a1406c22a7d464b205cd62b +DIST firefox-114.0.1-eo.xpi 582689 BLAKE2B d209512e55a02098f00852f1b1d80e5c0a08efe68be6d3f018c2d2394860f45d827dcaa769cf3b25674c74dac35d1fcc26c5dd4d4cd7faa23d2b907a317c4e83 SHA512 f0367aa684e4250275bf6a030d86e0cb47e599a1903572ffbfde0ad48bd4ae62ec07a2da567a2d1eddadaadc3746f3dc460108ef0ce94de8aa90de8737d7ede7 +DIST firefox-114.0.1-es-AR.xpi 598759 BLAKE2B 3c455fe7f7abafa10eff481bc7a10e0885f3ae4a5a689ab8c64b9c1e6a4c6b79e9526daed45549bd45df11be4c6ee38ea69a50d0d309d882fd57004a88e1100a SHA512 1b75f215a8bc4a914ae3db373f52a9eccb58ec115e7044f1d7d6150e7126725e1dfb46a49250591fb7ec1cbb15371b03dacb99285ac0df42df7136ceddb22922 +DIST firefox-114.0.1-es-CL.xpi 597228 BLAKE2B a00490434e32f456dbfdaead1d20554d0d9199bd471e9583bcf411f056a0e65ab43ef83587205b6f5cd8626622fb8e8b126981f98495f5f340e9d0a5105bad26 SHA512 aaa63fe88f73f6eb6f940b576b155bc3eafb58c248c74e2a250d17b98909b8fb621664a8ce9e70705058e1a8dbbc35e290ab58f8671bb511a2c68593fc0b67dd +DIST firefox-114.0.1-es-ES.xpi 590820 BLAKE2B 10c8c23f8a9f3cb1c5c55f882b01077ba98a7888f3b5adfe4e4369e61c3f1d8fbd6a629d69bbababff2815e0ab3bddf1a82b162c58a12d8147edd98ca12ccf04 SHA512 f2f31f86d2a08129dc746fec15d8223c3b65d9353edd3135c753cfc55300eff1e50a85806d7f5767dcc8802fc06c38e84459786c6617db0b748fc6e42130f338 +DIST firefox-114.0.1-es-MX.xpi 599670 BLAKE2B 43a949e9563f5192d84bbf2699a900a1e211727fdc4a12f4c26784b81c9f757b5be043a6ce0199a5ea1cf1aafa61bbdd991e0249ab4d2ba832cdab51cec60c00 SHA512 925ab87849bd4070cdb967afedb2d940c32132b4c0fb3904e464afc360c27edfb6d639bff5e4ab68b3be232ac0006412f67acd470253a63ad77231e888a5a30a +DIST firefox-114.0.1-et.xpi 548652 BLAKE2B 36ac9bee15ad8a70b215fa144046dc8bdc1e9a273138018bbba18f3fedeb6781f0bd46190bab236cfa72ccf4b67a08b6ed2725b25abe55ebf12707967b6b678a SHA512 f29ce5dd4a72dc7f3b7340c2a63aa1ae3cb86dfac7872a58ba5e2994ac9953e3f7fab978ed77db7cf3dcb2c42005292414915fb4ce46e769c46e267edb700760 +DIST firefox-114.0.1-eu.xpi 580397 BLAKE2B 94df5f75f49fa0c34b8729214379db71a91af0278b1b79ecf18a985efa0445ba94c9137ac5e95c260fe01063cd7ef4c424315eb018d0ccd15e72326fde1ecb71 SHA512 cdb8f2f6cca48fa8466b7011939be1a0c5bd42bd9eac18331be2e155c51ad57399e8105706c92270d2d1666af3e1124bf14be5e91d04898252ef4d103fa0ab2f +DIST firefox-114.0.1-fa.xpi 600095 BLAKE2B 1496524c2fc987590ae38012c42403f56e843e72feaccec0045184379cb1a17f75a480172726f9d97bdc8baacedb1a280f9f1f3d564eb9298e7d3f325869b614 SHA512 b6275b4a44edf34e67e60a0bb8009396780398427014454849071577b2fd2425a8370e3747321fde3a5dcf11e7ecd7cbaf915a4209b7e897258cfc5713c0fa93 +DIST firefox-114.0.1-ff.xpi 486669 BLAKE2B 38bf29d6c32fa330c176d444bf0e8d8305defd1bac907c759688570ac574980af4f5612560a70832e334065e6f0825cd10fb63027130f3bce94560b6ac7030ff SHA512 fd0a3d1598088a246ebec75121f0b52af67a43c2bd7620180b13e1a61d01be3cd61881c8065b4df1eb2a5ff7def2675c12c5b644ec5681551725158005bf29e0 +DIST firefox-114.0.1-fi.xpi 581646 BLAKE2B b30d9bfa55c4597eac263344a57f5eb6d461e9e208dd99000148ee2a84ffaed018b6d07440c6bc5cd35fc19fe17346640574ea7a069a29f67f78bef274d3a470 SHA512 34c47b781fdada1039e513c389ad5f0efffc0a77a6e641953e574aa5c92770154fa19c64630dd1b2e176c8c380b4dfc19b7359b11dbede70f34585a6b2abaa56 +DIST firefox-114.0.1-fr.xpi 610085 BLAKE2B 4b9471a59cf52a3502db011b82e4681d85582759656032d7277b3952ccd819bde298075906992fe130526cd2ae7cfe0df69cee4fff15efc278fdf7434a26d39c SHA512 0b17976209bc57b2dbd3176bef5d94175b6bc859808b08c70768eb81381b9ab23a81bbaa71d4dce4b897206a46b72b359858e4a7e2201c7a56a4631fdb43126f +DIST firefox-114.0.1-fy-NL.xpi 593881 BLAKE2B 2a0ee1d107d6946712eeac71650f5d7ead78479f5504436f9adbb2ea88a96fab46f480b198b9862eef81293dd55c966e777e8ce31704b874689db3020e1c2604 SHA512 16aa651acb0721b353ddfd3d3628b0c65c01cd458aae2263764ae537fb6edf990f284b76f735f0fe6bc174ed213257f9addb36e7a2b1ac8abe447e4c81032263 +DIST firefox-114.0.1-ga-IE.xpi 484105 BLAKE2B 4c6593804a2e919f8f7b7a9b308bcc58c45ef94ae6f91d34ecb48f7e350b9410662c2b4272a846c055fabd7acda1d283d7f48f6701ac0af35c489139ff457d41 SHA512 59a0183635500e3d60ae5fa4ef4a3e907e1a5cce2dba53fa010c3431cf4335ef9be6caf947f14230bdd73b0c0fd1c48fb03206914870a676681e982ef1cefe4c +DIST firefox-114.0.1-gd.xpi 602890 BLAKE2B 8d687b8e84e8feba40d4e10158ff8291850da3c9169bb7e70810f04c4eb0ed0d556db464f3daf6a82eea7c6aee1f04aa86009cadb84cbd484cb04c4c793d50c6 SHA512 009b8368b25acfe7813eb84ec6856e48182aac91da801543e15e3b77e0e81a80f6f069fbd7e6f369be6beefd1365747dba1fa1235b3ff0b094aca4e0b96b1e32 +DIST firefox-114.0.1-gl.xpi 594258 BLAKE2B f337d9d157d26fa94887e68350c521f8b94c2064272fe2b57d3b1c0352f6f1bdf53cdacd893c83a892eb729a76e320697a80a187f22ce001430069b55cdedf17 SHA512 4633f5a4634e573e3e912d3886ff68dfb0d3bdd07bf3033327220b71bf9ec86c76839cd8f6dd94664bc022d56bd4edbae8b2d59f789df8ba76f104d5a586990b +DIST firefox-114.0.1-gn.xpi 608391 BLAKE2B 2da1aa79e25bcdb5baf448bdf5ce208457ccb4af34adbd3027dcb87baf754e9c743bf72960050e052de80983e6e961f9c790602316e61ca3f03fc5f22701f2f4 SHA512 d6e799a5bfada22ac15786ce1ada7b58740f3f7dc8768f79a07c13aae4b7d17b7aca341c1ac2158c604e689b076fe326261d2ae597a3b32250e697f3e67cba37 +DIST firefox-114.0.1-gu-IN.xpi 542881 BLAKE2B 24203c90919af7784495cc38efe241c4f897638643c3563d92b0e604b36370c65e5f0d1b663539a21cbed2134986a271655c3981ce8c0d59b822f948ed922b9e SHA512 c177acefbab40e42b3632824da2b4c7e3c4e64e5457f1308d8b91232f39279a92a61586e672e9b1407dbf0f7543579b53138c50d99338cd45bda0fd9f9e55c39 +DIST firefox-114.0.1-he.xpi 602835 BLAKE2B 6e7f98bfe34e46997108e46666365f29f7899e539890bb2a4ce3ec58b0b050f9b6102246182689975690c2d79a56a5cdc41bde23d9e895c3e53b1bf062903371 SHA512 857dc1846c071530b32778e26ba01f021aa33c68118b1b030f198a0c1c45c6a4ea7531f8fd5f86aa72b6aa67367a3422970fb0ca234e7bccde03633e2e1a8e67 +DIST firefox-114.0.1-hi-IN.xpi 572439 BLAKE2B b02e704601dadea48427d2f04d5935a1a51e5ec3fa8fe74144e9c9360e0d01063456ee49d32e888d2efd4fe8fecbd094dd463a21113a1ec54f34ed50f04539ea SHA512 8708696440e40c7abd673055368dac32f97b92b79022e7f1f964932f9ee698df9822703caef4074481a5c7877479a14cdb7b68fbbfb9fb2f341a5c75b2243af6 +DIST firefox-114.0.1-hr.xpi 564426 BLAKE2B acaa80fec60deb4ac562649a4d4a95f38da359f6dc339af838f359ad015a40aa6ef102cacb33fddad75491313eb3dd523b996c21947aad4379902b36bac457af SHA512 92311b33f1bae54fc4230e7778173ebd5e207974338e4c8d374e8708bbc4cbdd4ce731b10f34629150c6dc0bfd6bae287e5c7f90f08c49c07124e1b90cc6e29d +DIST firefox-114.0.1-hsb.xpi 615584 BLAKE2B cfed25cd0aef545a526f3df67eb2ba16389d53c82d1e6b6904dbe5e4330820ee51e88ac3e8a4f345b22b32bb333d3ed37ee8af5f84b6b926da763f625c3dfaee SHA512 f0d0215cbf71d05cb9833985652f8a7b01d3e58989bdf2f9ffd668f6cb7cc6362dea8958da7ee44a65ee37f19c8c53227c4031e221243dc581f2a5486464c128 +DIST firefox-114.0.1-hu.xpi 619934 BLAKE2B e3d734ddf83837de1506ccc468d4721f50dafa4ea5614719db678401b1de04bd7f7b5555aa5a2c96578c561814bbbdfea10ef5896bbc6c4edf80fca67f7a2ddf SHA512 70838e841c72b087ecc0a7e6bfec1bf97afd4114a431a6d1d88b1d7db65a95dc02d1a29b9d730f41a25dee39ebbeee78f35be7e59b95b009d91cc28b78d67510 +DIST firefox-114.0.1-hy-AM.xpi 615214 BLAKE2B 345a12ded7421ae1e2e6d8a8e4a76dacaa0bdd3b10be8a0e377906cf6684b8dd56c7a82ad941c961a91f6dc1171ff2011e34371d802f16cb9a5d90cda2bb188a SHA512 02b1ea72b45f1b5ff45276084768a189f6b8e65d5a8481a75b9feb2ef2dea37b76f6a1ff04ebf8b904995ebe3cc22c2e136ed58d1187877a44e2716feb3f4819 +DIST firefox-114.0.1-ia.xpi 581881 BLAKE2B 5385c069bc1f3df096f23979f3e8870e150db9fc3674032713b1f51b822ac28bf3d9c2130ea364a0ada0cd1def2bcd5d1de705ffeafd05d7e78871d552b3d7b7 SHA512 3963879c4dff5fcebfed9aab74ac27a4f605ebfd7414955ed9de5330b2af84c18356c878b71674dbefd888016957ab7aac447fdf39a59d391b7506e56fef1a19 +DIST firefox-114.0.1-id.xpi 570696 BLAKE2B df2e22e97a2a4a075ef74c6460acdcf827cd12591c4fe0360573e88d3c4cdc9877e4a58557f044c993d309d3b342274d4e7fbe99b2fcbb4c75ebddefeaa34a65 SHA512 bd937a246742ebd767cae29419ba97255af92f74ab3ab9bd12fa811f5c6dbcf42a5b9cf4eb92b440df7aa93356adede297b205fe34ad729c0ba67923f138432f +DIST firefox-114.0.1-is.xpi 588837 BLAKE2B b7f9a52fe34cdc4f44545265563bcfe3eb806a19a9c938b461b3515ce33993067526ba16ef6c7f5a563d512ffa1d11017bc9eea2af13a476e6a324d91656ef48 SHA512 e2ce08eb54332eba92209087da4c2aaa3ac06b57eca6144346e46070f8d30c72c249038a3fadcf65b950acb500f81e6847800ad4eddec0f3600b5c4dd0eb1cca +DIST firefox-114.0.1-it.xpi 526222 BLAKE2B 6ae82e439cdc2133aeef6ef24e4465c857dc63914372019b819bcb38eb4a936f93f59344cfa355a3b2a3e5035da1ff0698cce07fe66c2699acb9e73a1f5c3a87 SHA512 fd4be86ff8ea8f97b53cc888275e70a1331f61e3a9867d727fbc2700cd026a0328f5f24fbe016168451e0184e4b90ce6b50b9fa73f56c7b5de9480beacefa20f +DIST firefox-114.0.1-ja.xpi 643590 BLAKE2B 74a5bff541382385d3833193b2ccc0f21bbec35516566e844e43241c858cf6b133c098ee35d46e59ea348f51958b54da03ddb20a102d1c745f2c3e10b0f7ffb9 SHA512 c36349eeba657f3f74672aab561358f1a2725f1ae0f362029a8bd59b8362f5269b82f3b2fa314a4835e88101296048456fed1f698b9f8e8e7083bae3c53c23ef +DIST firefox-114.0.1-ka.xpi 651084 BLAKE2B c3ce5607df5d8bbb820d3b95a1db7c708c545ff0d58a819badad9a8d04b34a11672ca1836b5e35fe796c2842d5a546575842ada5423c2e3e20a1718416ba1694 SHA512 2e71d99f5846dbad7c5efd0a9e0109449fff2fd269ce7d7b66316247cd1d057e28609faf7bc5224a97ef9b1d4238b1789a5243907ced2f3c1d79cf0e3f07b234 +DIST firefox-114.0.1-kab.xpi 597224 BLAKE2B 85fd4701cc0fa7124d72de96701bbafd36aa5d36162aaa3876e51f313410fe97aab036bca207b4c0690542eaa9792688cabff246d36befdd7db19b8c88912a4d SHA512 abf54455672b167ccff7eacf242e74d6074a4b7aea427938a74c0e3b261650e39267bda703bbe642a39cc518709bcac6fa57afd1d55e0651498c71105b0e136d +DIST firefox-114.0.1-kk.xpi 670860 BLAKE2B 0e5f3a632b9e7507e8ba8f819334336157ea0582eeed76fcca5a4e6d932b7ab1770d65c706bcec9b1aa3df425d7d4650fd9f00c743e2063fe1097f62bcecc973 SHA512 f4e8bdd1a2c76d4b0b37b03ad833dbf198fdbf1684165aaf5cd675a02cb5b6b496aa35fdefee7d6f1702b675f9dacc1593087588d9c29d5d46fb0bb16457d529 +DIST firefox-114.0.1-km.xpi 544994 BLAKE2B 17cb2e79ec12817eca8247d82f7397e2602654adb93153c3dfda71d66e219a46f48b9d862fb2f2dcdc94f91668eed31ab694cea91cc0b8938c7b793c9f1ab87c SHA512 11dca1e04e13e71d77638c23c382f0f20b50297477046dc0a0d733fc6692d478c3f5034bbc13c0f410f34e718ad08f84f19898fcad621b4886fb1c00ab34ce6d +DIST firefox-114.0.1-kn.xpi 509828 BLAKE2B 8b751d53ea3eab7c34f7bf71fb79810428ac2e0ed9da2415dfc0889051325118fea86bdc3503a8ba0e62535a10288309839f0447044745b8763026fc7600c3ab SHA512 c2637805f6bb9e879469121bc3c89f19acb0017cca19f83c88b66d03520a18cbbab5371e2dacf74b8a6919743e07059ed27203a72239083381c93987200332a1 +DIST firefox-114.0.1-ko.xpi 630765 BLAKE2B 989b81a7b699fbbbd041193908c6c11a8fcfe385da7bde0da32c4f3aa35913b8b0aa4a0faaafc9f610b8a36eaef7d1bf064b1744ea645a3aa522521a6debac66 SHA512 1c249d7791de5e17d1adb2d598c95956802969a5270efc0144c7d08ccb2afb1a4aee959bc36faa72b468ca1577d12dc27126a72d174a22010e640035e1d857e4 +DIST firefox-114.0.1-lij.xpi 483928 BLAKE2B 902d2d6f9d6f6238b9a49e6203bca207f7bc8f827161516cd5aac25c30ec000490133dd405fb3bacf9c73199d2545c85d32dbf6f76f34ac38c045a631f51484f SHA512 6c3c20e5a60b67676991eaaac36fd9a1986d96d01de27b7f2954eed266e522faae429a45e1d585fb861316b43102ff45fd7a9d7dafbc4d667bdbb762b2c62570 +DIST firefox-114.0.1-lt.xpi 583453 BLAKE2B 9400ecd3d18f16dccfd8c489a8d3097e98f264252ee2ff2edfe5789a76beaa5eaa58f51424afe32d8d8fe6ff167aaa6ff0faa57cf404534b9f6b6a0335d8a292 SHA512 abc67b5e51fff4b617fbb63b9274135fc64e8f420119d1bc443daa3328ba3ddc687a5fbc0f4fc18af1261aba75f14be0eb90b37b370674ed9a893a1bebdf62fe +DIST firefox-114.0.1-lv.xpi 483459 BLAKE2B a036ad86b115a3d554f8fb2b669c9bad3caa9f678c4b12750016158016429af1bc331e4257e283b757903fe79b9a9f6733d80720c160cff51a97fa34c93a3aaf SHA512 b0072d9311ed2fb7d3caba45bd1a7bcec6aea0c36f589dbaf66d67b6bf9133d1b9c377e8c1fd6b52ab7ca5e675d807656357126f85a2f84ffbe3881a518d8623 +DIST firefox-114.0.1-mk.xpi 498710 BLAKE2B 0c0f0a9ceee58e557025cf81aff9b2b8448ccfb22bc12197da9b56b30b06ee4bdd41d83b51963cd3e04a14068c2e04ea27cace699500ef3c6eb7a344bae1b4c5 SHA512 891d043ba0bc21239ba6959b5f22cbdd74b38ddb72e41c7018e82ef8bdfb4fd82fc959c1dfe5c419244c300b34e2119e8f11a4cf59cb4b76736f7342a3d22a9b +DIST firefox-114.0.1-mr.xpi 545417 BLAKE2B 8a1a8aee733091dbd5637cb003a3e9d7ffd63e20731739dc2ba4a72e4709681af98782adb2a2b3e7c6011bc81aa1ec16c96214795120d29961e0ab8f644310d5 SHA512 c9f7a1599f5a82b1372c940370ccb02d65d68f7fa943750b82c3932af6f9854c1eae4781ab580ed75eaed7acac77729070406236a875661e527f5db56a224b83 +DIST firefox-114.0.1-ms.xpi 462626 BLAKE2B e399a8c877caa4aed45175853bce1fbcb293ee430b9c0ce43853b5227a43718821a88aa84f28fea7e713ed353281ee244f067568a6c3141ef75258c2a0fdc9ab SHA512 d4d60cbff200bf335e37018b1bb62ac89252c9b737c0f44460eaa90981dcffa98e80d7c9f5b769ccea8ef9722a4f7c56335861c19b7568f1855428188a55ca98 +DIST firefox-114.0.1-my.xpi 530521 BLAKE2B ec769b4f7317f7586f7174b20a864f7dddcd851ddef671312dbacdae3c209705dcf5dd54d99654432162e91aeb9494a38180d1525dce8e6d2b7fc8b83a792758 SHA512 73e958f3877f3d6f231bc1012e4e3cbbeb3b11a32762fdf4568af12a0cb7548ec313fd750f14debc760598716edf63e9c784a0ba8ac438fbb2f19f1f4ea8eaef +DIST firefox-114.0.1-nb-NO.xpi 579548 BLAKE2B 243eb75653502cb025743d975d677e8ff41a4865a52b41d086b188471725353d46b80894f3852dd0c9d5286aaed989cd7675eb844b5c7a896bc3cfb342889f80 SHA512 ac9dcc50c9dd6f7963ee9009c48f8202ec0c500ba795523f27571e8fde95f5ffde8ad3acc8c995ef7fd9d57250d5c2ff4f687577a707178c86ba350f5a20c138 +DIST firefox-114.0.1-ne-NP.xpi 498504 BLAKE2B 15cda80e2aad8df68514b1117e0af5ce6eb3633a463c6a84110ae80a05aa3d964bf51ebdacf04a556f4cb2cab8c42a46369d8322ce99f3e92048cdf31bf42a42 SHA512 1a45445d2c7c09b05b4b464b021ce946c4b52228891ac5c72b8a39a2cb26540a70d3951f80550ce703632905b6d504adbff98dd81d07a20ff5da055c69d90b3c +DIST firefox-114.0.1-nl.xpi 587749 BLAKE2B e55d367bbf43979eabb03b8d427ee9d33952cd419a80a89d0ed568148e4e7c617613c2551591d9c0358a1304280230761b7a8fe881405ca2cb3bc9adc6a6ec49 SHA512 2d075a45cbfccfe54080f6b826a67251920cdcde8bae091bc48967d76ba6e05daec553d4b28f2e685cfda063b4cf5fa62d97d0c90ac09e63861b71ec3e3af188 +DIST firefox-114.0.1-nn-NO.xpi 581015 BLAKE2B 93b29bb76783a9c999f0461b985b60949210998d211b5535fefdaa71ccdbc1437834c3b4a1273cff88e6c2cb44ddd6f53401cc6222d7bb2813381e40df974d2e SHA512 b49c7dd141e9bfd74e48b22ee059bd01c5fe0fb4db032ee2df00946b11f1959b29351992a4acd3d423717c5c5828715cd70ced9d27a3942f5716a36920eb894b +DIST firefox-114.0.1-oc.xpi 602222 BLAKE2B 240e6c84beb25d27c3434acd277a5451ad1174389229b74ae64de5cea6fd470ba5616a1dbafa6e02335d8a8ed4a5c3ada2ed3ff20a86f3ce2852a1d1cb1918a2 SHA512 5b5af38af05804176d20da5c4e6d19fafbd8609bbe8a7e30771512eee57cad3192d4ae73c66ee321f22d18c05b4473b5934a9a9ec0d4877442c3ba1ef4763abe +DIST firefox-114.0.1-pa-IN.xpi 661765 BLAKE2B e02188d67e1c349b19bde7fb491d00c7ca694e67a333b899d49fa99572f2b9b88c6eaefe65bc0343670fe96b619eab403ca076431fd85321aee52d3b66fbeb26 SHA512 f174e5e5bda276162658a2b29e8ada7bbaa0aa5433d0e8c39c343023cbee6d67ec373a941379f53b07ad89b2c8fbcc7648d72fa202d1050b6bf0ec6388468542 +DIST firefox-114.0.1-pl.xpi 613051 BLAKE2B a5fd9ce805b82844e62cc1e16f170496f160eb1b5dcb91045013805e9848e97cd11caa260b64acdab301a9aab7e82058189a379b493629f060076699f122f9b5 SHA512 63d90799f024866982b600fb473a0ab48aebfd7d5cb94883d3653c87b1266bdbcb25245ad48fb74227a6e75764c7d23977e8c6917e43ed5421b6dc0adf72aa30 +DIST firefox-114.0.1-pt-BR.xpi 592833 BLAKE2B 2b8a03a89d72882739fca360a4aac2903feb0f37dbd444ec73371fe32d8ab36a6bba16640e18ee8e035ee91a383f3060b31589541b4c52d2ae91b61317e5cbde SHA512 048e201199bfb0b6d1b8a2491547ca248396abb54b318d534a037ac739ca7e3cdc8d53fb9e3a31406c3d64b07c07181dfc13e9c1a75520f18ed583232b895bba +DIST firefox-114.0.1-pt-PT.xpi 598538 BLAKE2B 9981e90172c7f5be7ea26b74fbc02fff51809f71a09960e78603a78f1917ecd77c25a8a69ae600649db9117d9075594380b5966595d4e81ae28fe3ac49cac8cd SHA512 0551f8f0919e405c2680938d0a2e1d6df77c6cc06507fd86e7087d6bcd3d12e1c0212cf8b979c728cdaf8f094ccd44379d0caaf13dfca314ad1a092e88922175 +DIST firefox-114.0.1-rm.xpi 588751 BLAKE2B 4fc50035b463e0ed10d8d740d5f2b5c902c0bda055712e747f4c5e3e4661de6260d7d4b837bc7c13f3724f779da6d631fc29826beff385445e6838176858c869 SHA512 e8b66da457dd089ac276de195156376f7c8596d56e6b65de3c5d858a688917683d13876ba7c16e484d6eb6dc21ab651d5263c145de5fa24c2a446caa2f2ed4f3 +DIST firefox-114.0.1-ro.xpi 551311 BLAKE2B f837c5148aba0c00307a9800dc93ef695deb81894bb038b0af3267819df720be16ee4bd513b7d97d79d3b63b79aa28c4715cc26e7b40b919a10f3edb768c04b7 SHA512 6493aab142566aacf4e66ecae03b4e264fd09f249d14315f0daf88a71cad18b96390ad7291a47146c6566ead6a34b6df3c0cf0fc251b379e17b48ba290c963db +DIST firefox-114.0.1-ru.xpi 687298 BLAKE2B e4ecf4fed46c991e31d82ef6015b49cfbb3d7253da2eaaf8786450c1d6d60d91db95b83989ed9d035a3915f6ac2fa40baf3cedcc3c73cab5f8d7bd7a917c0d93 SHA512 0857b96a4c59dd321da76227857fe1c1929cf3ba1c7b798fca90ead09dd5d1e7639e5bb0aae4a88cb6ec6d61a9ce40fe0114cee7593ae8e62dbe8ffa1321b7a4 +DIST firefox-114.0.1-sco.xpi 518578 BLAKE2B 8b7542ce9e7bbee6fdfa2baf6bf78f46c09a23a18c1a23e529ac60085263f7c501d3357733460b045b96a430cc4a63481b538023391717dfc92bda60735f71de SHA512 6fa2362fd00c0098120a192a066add298ba98277c0ada891db5c9daaf86de743c6cb609f32ddebc5c734f81c68d007b7ad1fa112ea44e6bb5174d9ab26e5a0a0 +DIST firefox-114.0.1-si.xpi 588203 BLAKE2B 222a7939f47dff8fe6cc45f018e7bf3d5b1e6f7bb5fbaeca75e65a8c59e7f05b40c19347a938ca324e4c4f7a553ad3a59c4b4a62051662193ae12847e7db661a SHA512 feaf9635ce393bdd1249da94a9daff3aee9c606093e27ce872013c96ed516a923b4f6071de88c275da0ec3949bb49ea82f2b709a879577374bc23d4f4658a169 +DIST firefox-114.0.1-sk.xpi 620928 BLAKE2B 5bc19fb8b8edffb80a9ae69a9229a90a8fa79b360d0e699e77c1ef4e243c68f7f3cf2dd4b9007792b6d550d45211cf73c09e46579973bc352437bd1363c22509 SHA512 bb833fa8b3d9fc88ee117f69e9aadd151757ab8fbc03cc76839f465310b5d3f9a693625e5480d842b5bf5aacdcb35f0d68508b17ddd55dea9bd5ff345a19d981 +DIST firefox-114.0.1-sl.xpi 590608 BLAKE2B 857596b9230412175afec19b24cad578b49feb1e8b6ec35bbc9d2e137aa11d641afefc500cb15d68748e828a7e45d33c43f8411ded3eb89bf81a93f4bdea372d SHA512 a8215f8f385095b6aafbe5e2bea3d60733d4cc4fd8ce703acd663e5ee64f3b2f57b12e43ccb3dd0c48edda4f1a38747f645179ac5012c019cfaee1d1e29b2d42 +DIST firefox-114.0.1-son.xpi 433863 BLAKE2B 3f27c20172264a64b15edc0ec383ad07f6d0b3867d2310c249d45575cdcbb8bc38e945d43f2246865c9936ead8fcf6913dfbcaf8ddfb6e41013ed2f17865311c SHA512 1b1bcc6e732f5f6279e9ff5638be712e199ae89904aa68e49ec1018a0fd589db378e31cdb4f7a923e56c7c1b2db0adc487e45c180ce901f7ed1a62f9ffbce118 +DIST firefox-114.0.1-sq.xpi 599885 BLAKE2B 6aa136e62b68db13055eb59e42a8030adaf0ef28eb5ba9c243ea25c923b133695941d90a190c3166bcbb15f305430941c87a24982cc823250a0a5d24a086b6e3 SHA512 2a6cec38b624d210e9d7149071b27d31f07bce285cd7b5fca61af0080bdada21459378f836e57a4b8de2a2dd02b808c9abfe34dd1ef7ed9fa53e6f7fc79a766b +DIST firefox-114.0.1-sr.xpi 648659 BLAKE2B f08219ce9899954a5b42138761c9923b03676fa3e2603bb800fd165e5fa6d9ba9e633084d2d860c42d36dacbd34a1504f80bb9c2bb9e1c8d2305dac2f8e97039 SHA512 1f6d0a332d9b8f2ae04f1a4b0b1ce2ab60c506b4b5e34ef1c4508aedbeae4926d843327b639aa1adad571a606b6456a2c12f4cb91aad9046d7c25c98c5b858e9 +DIST firefox-114.0.1-sv-SE.xpi 589714 BLAKE2B 70dd064803a5cb6aa8a971064f37f50658ce426fa9bb3ca6429506b116b42575316c42f3a368be6eddacd7a623f54a44424887c0fde3276b3dd770dce8577942 SHA512 f36aa82993597ce39655a78471da5f4ceb25a35412a24ac5b9471617da5241a800ba9f8a7b8c58aa7a48dfd0efdfd865f520fa89a55235083b67f0a0af54f5c4 +DIST firefox-114.0.1-ta.xpi 522185 BLAKE2B 007ab60ab772eac34ce28b8e876ee948e6ea824f56839bf89988078feb952439375285e86765d75102c37301725e4142cdbaf1b10d074985283508154108b882 SHA512 23d29e3b05dacadd364675f6d236d424bb63ecebaf8ad55385e063afcddaa93746a473365d9156a83c15ffe9671f434af38b252d3fe3fd62d6042c97b2111bd2 +DIST firefox-114.0.1-te.xpi 571340 BLAKE2B 28851d1185c75fc840a26b2feca8143891394288bcba902de9975df3d293682708fc10aa6aa22b6eb2337a674af1a96c3b091f4bb06cd7c84812d475e9fca8ed SHA512 1f2a39b7a2cc51d02e95df476b01af3c7036c18d5883b14f67f3a9a4632ce2348e0a4f7b2329fb7c734fb0fd27296c2deb0447f2763c242538988193438942d9 +DIST firefox-114.0.1-th.xpi 665255 BLAKE2B 93ddc59000360751291c5e238c9c8a404700ab602528c72d0bef781f40cfb127079b80f62f69f613dd88fb0c99776d7629498de0a15cb315054a998bd76bb95e SHA512 bf0c24bda54a0686aa9149de69f0f322595f459b9ea7b78347aeb2dacfa729456c4a4bc27c70f2f6021d27fdc5c302337831502cf0aaefd5874541449a8e2cf7 +DIST firefox-114.0.1-tl.xpi 541492 BLAKE2B 48364babf08e48a3b15df95e6a2e5d0e48d64d0ad99af35c2fb558a1cfe36f7ccd8f9ca7d966d6b7484d8f500a7023c66c99d4386ad21a79e101b83548f40fe5 SHA512 5a3df18ea3a33b5f582bd5c2e291cb584b25a87b31debdd821a3d56a527e7875854a6184cdcd094ab4c21373a7112c44769cb89b4195d33145e2fec7a0d0e5ba +DIST firefox-114.0.1-tr.xpi 602921 BLAKE2B 38923183fc63ed453d53d589170f6e05655ad5d740e70540e68db497eefd70701040d9bf6a6cff180b7eebb7d902f9825b2db6b9eff255c3b0e53c8165b93cb6 SHA512 7b89010280db5ef94e3fe4ada4fb5dc7c70722a8bacbffdcf209f236bb2c8fbb26296961aac99d11b15913d8860278ecd307c68000a9a5a25ff779b2554ea596 +DIST firefox-114.0.1-trs.xpi 502329 BLAKE2B 4f1c82564bf5cf11167756f370043d600c88cac69a5bae81732f842e3fb3735570c1a012b4c37091cf31a1245107f217d59041c8a8facab4b558b49e8d4f68b8 SHA512 f93a0e07daaaf1beb9104f5875557b29f58f15307f055ff2e3c6d4e94bcbefbf2e0b472ec264fa767103fad669c4db0102d5dfba4d79fe9532faf35bc7257158 +DIST firefox-114.0.1-uk.xpi 679237 BLAKE2B ee616d84ce0ccb4e1caea6aa62c1af11adf10f7c4f970068dec88e662e7d43c64729d93f1422611b1b12ecfd63d1a2e21f79687e0f77633af3a3230398dd1c0b SHA512 8e238c18ec87d022ee466cf37fdaf35e652ddeec5b624f7595e8bc31f0b0419044dcb40fa9d9e93ef966b8cc8f6a0794224ccf1580186bec0550792e55efb63d +DIST firefox-114.0.1-ur.xpi 572233 BLAKE2B 95b2d1582d6d0e9392336b8685c257e1406e891af775f656f05daeec8207e0f503cf4739e648314473b4d0c71914fcee2fceb6138f50eb3a79558857d9cc62aa SHA512 dfe9ceca5ceb91e12867c782f96b241d50913879a53986ed07afcb2e3f17391a5c84dbce88d44f458054b66d2e9ab807355a92c3ce834a0de24f890c27010ddb +DIST firefox-114.0.1-uz.xpi 490806 BLAKE2B ace4324e984b1ebf31d8d1778e1a56ab1d586c04569851eaa607f7a915025add809ff889d0b6812914d5ab94309e31b733e93a67579ff0b8267795fec984f7de SHA512 9d32e8a135b55c1a85e308deaef7a3bb1bc709d3efe5b8e0f43c9ee757fcf176a7f72a16bb598724e5f46fbda8685a15027960234bd565119358dba25cd60e52 +DIST firefox-114.0.1-vi.xpi 626087 BLAKE2B 443744075635db476814b6f961732a386220e194e4fb06d3b2231b44bdcb257b002efc85e60310a8a0ef3624e6804fb887f137e5b00e12d2018933470a5d180e SHA512 cbfe5dc89d5b8caadc85350b776f5dbf476d0cbb1d228db2deca077e48de17ef22f0c2fd742580bfa61750673e25feabc7014d5094a29034b5907d9d76882019 +DIST firefox-114.0.1-xh.xpi 430784 BLAKE2B 884f46629517b98023cb0ae03e804ad5d06bb704142bd6d0fe32a473d0bab5abbfe7f52f5fc71fb13f1881bacace01b21f277b653895374a2ad5aba9df105208 SHA512 60fb1052c3497296755bbb81f36298e1cc1bb5b950927feee4744f7f0a40974f8046168562fd74f4e5fb3235261bd4dc78d77d7d4814dfbf8958a952886bd92b +DIST firefox-114.0.1-zh-CN.xpi 626199 BLAKE2B d71c1bd0453569ab6425327a485497ae9cd1a8af5d5ac1bffdd59bc90561b5ba81a1d30030383848129d4806a128ab4fa61134e5cb22b012d2ac23d69525cf6d SHA512 783b0a4a243995f03b4ca6fad6571af8757d4baae769efd380e8c5ca5930d79be1fa8217d024468e5052e962686ca1a627b95dd8066ab0907b557797ca1d001f +DIST firefox-114.0.1-zh-TW.xpi 627565 BLAKE2B e16a76711f3c02e10f591b146d0d19a6de6a85651931f5b272ba53ca5c904cc85fd011bc5bfb5c1c8c01ca17e7ce05f15e57f38a0f0e0a7558dc0155670d7e62 SHA512 0888657699fd2eaf05cf34063de529009eb5102c9dcd4789875c01abc01175440ca73fdad2f45a73d83de22691bd3e2f66370a0ae8ad2d6ee106e65fcd9e8bd3 DIST firefox-bin_i686-102.11.0.tar.bz2 80618143 BLAKE2B e6ca89a1851bc22d0c89f6b6860fad4286f3c1879692ab1cafcad556bee722efe3250472b7d0166e9d7153019affb1c9a4c7098d07b7e3e9c341034b37bec6a8 SHA512 63a48df40652bdfa3663f1cdbe4f0a53263a3525c66163105aedd5cbd6f93a5688ea8b5f00eddc69773e749a165ebc451c7dd6b05fe896d69bbcc2ade12e7c9d DIST firefox-bin_i686-102.12.0.tar.bz2 80616691 BLAKE2B 648b0e233a547f0664335cbc33df3241bd9ba05d5e171d641a442dda216a582c5bc2258122ac9a52a0399e48a4b02ee629788eac86923820b9386811e97be92f SHA512 854afc6b4029bad6017644b8d78af5ec998b611ae773bd89178399455187f5baac15f14b19132dbbb9bb09c550191ebb9b96523b8e51dbfa5acbcca6f570641c -DIST firefox-bin_i686-114.0.tar.bz2 83670481 BLAKE2B d29fa016b60eb4dbc6a53e2f64cf3ccd33ada0364a683f7f93c94fbe6607c765a441515cd1b8ae54cc41439c4b6564ce006f1356f42490ea24df0ff35f3b312a SHA512 c07dd5b822d0d5440607a7d211cedc37377943cc8d354462f1d53f631594dc5d4b7e4990f5754785b4ec54e6a2d393ff385b2cdf09721be1750f5aff5e7064fc +DIST firefox-bin_i686-114.0.1.tar.bz2 83601301 BLAKE2B 24423c85b52d12e958ae1f3420b0f8d690c4f82e2511406ef6535281906da159ccf2e74cb0e896863c9fc7144545539ad8200216951e34a2ee212cd3c00e35cc SHA512 1fb2027dbd2f438500dc78f58b427d9bf76c74b38208ad9ba099dfc6c2f14fd80c5e057bbcde7e9f0c053b6f91e3eedf2fb34e2fa443637d7e2e0372b1e28da3 DIST firefox-bin_x86_64-102.11.0.tar.bz2 77369030 BLAKE2B 2ac5292bcf5a8b3182b01025a6867f18522e6f1e3020e91697a742f2c48a9b9e4e6e83816da087a123e7ebf50659fa0035035a3091a04c08c5b39346d314a565 SHA512 9b4844050cdc3ddb8c2d0ca42a38373a5b92e9342c1ed2953990a6271cf0b928b0a35c40335af3565f1dc74ee8d980df2dd79217c0e8537203b962365d5d1d1a DIST firefox-bin_x86_64-102.12.0.tar.bz2 77402944 BLAKE2B 2d6d8198fa6647595d62616fbffe77300705d94be1bfbfe672632fbcea773e853c4e106fa0574e5fa886666fee9636f5ef62726b28c4e388a644aee6fd76a39d SHA512 d463bc29456b08a315c8d8c422c6de3a56a6b8da6ae6eb92884306da31869a23ab66413efbf3c35d4e9657e618bef6b7c571c5bde6615c9c3d5a21aceb145825 -DIST firefox-bin_x86_64-114.0.tar.bz2 79726377 BLAKE2B e0b2375fca3df0e10210bf461a457ebd28cd35ae6dbb9c5af62753a23c7a8ee76fb6849158c269e4be8c5c3e0082764ad12be651cd973c5b486c5f3efaef8c58 SHA512 dff334c882cb5d6fa1aff6b31c9696dd513429130984e526e9aab0fb9337c3fe6615d38274224b2846bf1de7039d7600f27d9165ce6d33c83137638186112982 +DIST firefox-bin_x86_64-114.0.1.tar.bz2 79664721 BLAKE2B 58c833bfaae7626b3c16d547de1da57cc80162798e8c39a720d0f3b25c13f6bce3faff366a59f7cea593fe8f4c5f6757f847c2665b66884f6c9b958ceb142ed7 SHA512 aa9b96158b875152af13c33d2b6eaa97424ae9556242bb26f71829f762fef918d07fe6c43e276087c600fb81cde3d54ac254bca942bdb7959bfa23fbfcdc1d8f EBUILD firefox-bin-102.11.0.ebuild 10818 BLAKE2B 92bbc7f0cc880ab08859d8f7d3da3e7fce327a0974533a19ea366b37d005a83ae5fb88270a98625c216248dc70150874c29b45dfaefd6b5d91fe0bf92fc62aa0 SHA512 4ac6cd0433f0610d59dafd2f84531aace09173f62ec09ad6eabb6b40cb1f42cb93c971f2bd67d4f28def1a1118b2d41bf73776d93ccdb044a1b680f1ce889474 EBUILD firefox-bin-102.12.0.ebuild 10818 BLAKE2B 92bbc7f0cc880ab08859d8f7d3da3e7fce327a0974533a19ea366b37d005a83ae5fb88270a98625c216248dc70150874c29b45dfaefd6b5d91fe0bf92fc62aa0 SHA512 4ac6cd0433f0610d59dafd2f84531aace09173f62ec09ad6eabb6b40cb1f42cb93c971f2bd67d4f28def1a1118b2d41bf73776d93ccdb044a1b680f1ce889474 -EBUILD firefox-bin-114.0.ebuild 10858 BLAKE2B b18820f9df07f9bdbd2435f15e5e6472bb07e2b068d34b947cc226b0fe880265b455cc5fa15ac210c9d679553c5e8aa7e9254667be6cb95bafc06ae14c505245 SHA512 2ed5ea6723fcce70359930747b2893d6ba0de19134df2da3788e7c7fc43a8cde868e55892d5c7f2361619662958ccdd6cfcac2880b94fe583de41938ab986bdd +EBUILD firefox-bin-114.0.1.ebuild 10858 BLAKE2B b18820f9df07f9bdbd2435f15e5e6472bb07e2b068d34b947cc226b0fe880265b455cc5fa15ac210c9d679553c5e8aa7e9254667be6cb95bafc06ae14c505245 SHA512 2ed5ea6723fcce70359930747b2893d6ba0de19134df2da3788e7c7fc43a8cde868e55892d5c7f2361619662958ccdd6cfcac2880b94fe583de41938ab986bdd MISC metadata.xml 520 BLAKE2B 4b540dd2d9ac3840061de8a73117f2859db156944826d22c1f74cbc0c35f6d305aa10ff45708eab016df725cfc741c99dec46f0078a29162982431892e86e477 SHA512 0c7183e35a4b0ca2ddd092786ebdeb5b41a431adf918f0c2e541a5ef1c235066586a46a50fa29c25e5a522930824f8662fa2fa7eed8c3895f74d85bef93cecb4 diff --git a/www-client/firefox-bin/firefox-bin-114.0.1.ebuild b/www-client/firefox-bin/firefox-bin-114.0.1.ebuild new file mode 100644 index 000000000000..d134ec543678 --- /dev/null +++ b/www-client/firefox-bin/firefox-bin-114.0.1.ebuild @@ -0,0 +1,381 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MOZ_ESR= + +MOZ_PV=${PV} +MOZ_PV_SUFFIX= +if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then + MOZ_PV_SUFFIX=${BASH_REMATCH[1]} + + # Convert the ebuild version to the upstream Mozilla version + MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI + MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI + MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI +fi + +if [[ -n ${MOZ_ESR} ]] ; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +MOZ_PN="${PN%-bin}" +MOZ_P="${MOZ_PN}-${MOZ_PV}" +MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" +MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" + +inherit desktop linux-info optfeature pax-utils xdg + +MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" + +SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) + x86? ( ${MOZ_SRC_BASE_URI}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.com/firefox" + +KEYWORDS="-* amd64 x86" +SLOT="rapid" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="+alsa +ffmpeg +gmp-autoupdate +pulseaudio selinux wayland" + +RESTRICT="strip" + +BDEPEND="app-arch/unzip + alsa? ( + !pulseaudio? ( + dev-util/patchelf + ) + )" + +COMMON_DEPEND="alsa? ( + !pulseaudio? ( + media-sound/apulse + ) + )" + +DEPEND="${COMMON_DEPEND}" + +RDEPEND="${COMMON_DEPEND} + !www-client/firefox-bin:0 + !www-client/firefox-bin:esr + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + media-libs/alsa-lib + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + sys-apps/dbus + virtual/freedesktop-icon-theme + >=x11-libs/cairo-1.10[X] + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.11:3[wayland?] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/libxcb + >=x11-libs/pango-1.22.0 + alsa? ( + !pulseaudio? ( media-sound/apulse ) + ) + ffmpeg? ( media-video/ffmpeg ) + pulseaudio? ( media-libs/libpulse ) + selinux? ( sec-policy/selinux-mozilla ) +" + +QA_PREBUILT="opt/${MOZ_PN}/*" + +# 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 + +MOZ_LANGS=( + ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy + da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu + fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM + ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my + nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco + si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi + xh zh-CN zh-TW +) + +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_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 +} + +pkg_setup() { + 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 + + mkdir "${S}" || die + + 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 + MY_SRC_FILE=${_src_file} + fi + done +} + +src_install() { + # Set MOZILLA_FIVE_HOME + local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" + + dodir /opt + pushd "${ED}"/opt &>/dev/null || die + unpack "${MY_SRC_FILE}" + popd &>/dev/null || die + + pax-mark m \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ + "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ + "${ED}${MOZILLA_FIVE_HOME}"/plugin-container + + # Patch alsa support + local apulselib= + if use alsa && ! use pulseaudio ; then + apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" + patchelf --set-rpath "${apulselib}" "${ED}${MOZILLA_FIVE_HOME}/libxul.so" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + 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 all-gentoo.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" + + 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 + + # Install language packs + local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install icons + local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" + local icon_symbolic_file="${FILESDIR}/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^} (bin)" + local desktop_file="${FILESDIR}/${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_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 + + use ffmpeg || ewarn "USE=-ffmpeg : HTML5 video will not render without media-video/ffmpeg installed" + + local show_doh_information show_normandy_information 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 firefox-91.0 we no longer install multiple shortcuts for" + elog "each supported display protocol. Instead we will only install" + elog "one generic Mozilla Firefox shortcut." + elog "If you still want to be able to select between running Mozilla Firefox" + elog "on X11 or Wayland, you have to re-create these shortcuts on your own." + fi + + optfeature_header "Optional programs for extra features:" + optfeature "desktop notifications" x11-libs/libnotify + optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas +} diff --git a/www-client/firefox-bin/firefox-bin-114.0.ebuild b/www-client/firefox-bin/firefox-bin-114.0.ebuild deleted file mode 100644 index d134ec543678..000000000000 --- a/www-client/firefox-bin/firefox-bin-114.0.ebuild +++ /dev/null @@ -1,381 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MOZ_ESR= - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="${PN%-bin}" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -inherit desktop linux-info optfeature pax-utils xdg - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -SRC_URI="amd64? ( ${MOZ_SRC_BASE_URI}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) - x86? ( ${MOZ_SRC_BASE_URI}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="https://www.mozilla.com/firefox" - -KEYWORDS="-* amd64 x86" -SLOT="rapid" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="+alsa +ffmpeg +gmp-autoupdate +pulseaudio selinux wayland" - -RESTRICT="strip" - -BDEPEND="app-arch/unzip - alsa? ( - !pulseaudio? ( - dev-util/patchelf - ) - )" - -COMMON_DEPEND="alsa? ( - !pulseaudio? ( - media-sound/apulse - ) - )" - -DEPEND="${COMMON_DEPEND}" - -RDEPEND="${COMMON_DEPEND} - !www-client/firefox-bin:0 - !www-client/firefox-bin:esr - >=app-accessibility/at-spi2-core-2.46.0:2 - dev-libs/dbus-glib - >=dev-libs/glib-2.26:2 - media-libs/alsa-lib - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - sys-apps/dbus - virtual/freedesktop-icon-theme - >=x11-libs/cairo-1.10[X] - x11-libs/gdk-pixbuf:2 - >=x11-libs/gtk+-3.11:3[wayland?] - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXcursor - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXi - x11-libs/libXrandr - x11-libs/libXrender - x11-libs/libXtst - x11-libs/libxcb - >=x11-libs/pango-1.22.0 - alsa? ( - !pulseaudio? ( media-sound/apulse ) - ) - ffmpeg? ( media-video/ffmpeg ) - pulseaudio? ( media-libs/libpulse ) - selinux? ( sec-policy/selinux-mozilla ) -" - -QA_PREBUILT="opt/${MOZ_PN}/*" - -# 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 - -MOZ_LANGS=( - ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy - da de dsb el en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu - fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM - ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my - nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru sco - si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi - xh zh-CN zh-TW -) - -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_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 -} - -pkg_setup() { - 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 - - mkdir "${S}" || die - - 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 - MY_SRC_FILE=${_src_file} - fi - done -} - -src_install() { - # Set MOZILLA_FIVE_HOME - local MOZILLA_FIVE_HOME="/opt/${MOZ_PN}" - - dodir /opt - pushd "${ED}"/opt &>/dev/null || die - unpack "${MY_SRC_FILE}" - popd &>/dev/null || die - - pax-mark m \ - "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN} \ - "${ED}${MOZILLA_FIVE_HOME}"/${MOZ_PN}-bin \ - "${ED}${MOZILLA_FIVE_HOME}"/plugin-container - - # Patch alsa support - local apulselib= - if use alsa && ! use pulseaudio ; then - apulselib="${EPREFIX}/usr/$(get_libdir)/apulse" - patchelf --set-rpath "${apulselib}" "${ED}${MOZILLA_FIVE_HOME}/libxul.so" || die - fi - - # Install policy (currently only used to disable application updates) - insinto "${MOZILLA_FIVE_HOME}/distribution" - 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 all-gentoo.js - - local GENTOO_PREFS="${ED}${PREFS_DIR}/all-gentoo.js" - - 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 - - # Install language packs - local langpacks=( $(find "${WORKDIR}/language_packs" -type f -name '*.xpi') ) - if [[ -n "${langpacks}" ]] ; then - moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" - fi - - # Install icons - local icon_srcdir="${ED}/${MOZILLA_FIVE_HOME}/browser/chrome/icons/default" - local icon_symbolic_file="${FILESDIR}/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^} (bin)" - local desktop_file="${FILESDIR}/${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_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 - - use ffmpeg || ewarn "USE=-ffmpeg : HTML5 video will not render without media-video/ffmpeg installed" - - local show_doh_information show_normandy_information 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 firefox-91.0 we no longer install multiple shortcuts for" - elog "each supported display protocol. Instead we will only install" - elog "one generic Mozilla Firefox shortcut." - elog "If you still want to be able to select between running Mozilla Firefox" - elog "on X11 or Wayland, you have to re-create these shortcuts on your own." - fi - - optfeature_header "Optional programs for extra features:" - optfeature "desktop notifications" x11-libs/libnotify - optfeature "fallback mouse cursor theme e.g. on WMs" gnome-base/gsettings-desktop-schemas -} -- cgit v1.2.3