summaryrefslogtreecommitdiff
path: root/www-client/chromium
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-10 09:50:45 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-10 09:50:45 +0100
commit3d00647fec2600e217d690a64ba45a41f1a2fa0c (patch)
tree372903cfdc422592f1c2b4df752276358d1e7984 /www-client/chromium
parente0b23919d82070530276a893043523d8084be1e8 (diff)
gentoo auto-resync : 10:06:2023 - 09:50:45
Diffstat (limited to 'www-client/chromium')
-rw-r--r--www-client/chromium/Manifest23
-rw-r--r--www-client/chromium/chromium-112.0.5615.165.ebuild1261
-rw-r--r--www-client/chromium/chromium-113.0.5672.126.ebuild2
-rw-r--r--www-client/chromium/chromium-113.0.5672.92.ebuild1265
-rw-r--r--www-client/chromium/chromium-114.0.5735.110.ebuild (renamed from www-client/chromium/chromium-113.0.5672.63.ebuild)63
-rw-r--r--www-client/chromium/files/chromium-112-compiler.patch256
-rw-r--r--www-client/chromium/files/chromium-112-gcc-mno-outline.patch29
-rw-r--r--www-client/chromium/files/chromium-112-libstdc++-1.patch59
-rw-r--r--www-client/chromium/files/chromium-112-libstdc++.patch63
-rw-r--r--www-client/chromium/files/chromium-112-sql-relax.patch46
-rw-r--r--www-client/chromium/files/chromium-112-swiftshader.patch122
-rw-r--r--www-client/chromium/files/chromium-114-compiler.patch171
-rw-r--r--www-client/chromium/files/chromium-114-gcc12.patch30
-rw-r--r--www-client/chromium/files/chromium-114-sigsegv-dom.patch73
-rw-r--r--www-client/chromium/metadata.xml8
15 files changed, 324 insertions, 3147 deletions
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.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-113.0.5672.63.ebuild b/www-client/chromium/chromium-114.0.5735.110.ebuild
index 73c153d99a70..93dd9e57ce08 100644
--- a/www-client/chromium/chromium-113.0.5672.63.ebuild
+++ b/www-client/chromium/chromium-114.0.5735.110.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
@@ -19,7 +19,7 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-
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"
+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? (
@@ -30,7 +30,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0/stable"
-KEYWORDS="~amd64 ~arm64"
+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 )
@@ -314,11 +314,6 @@ pkg_setup() {
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() {
@@ -329,27 +324,42 @@ src_prepare() {
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
+ # 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=(
- #"${WORKDIR}/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-zlib.patch"
"${FILESDIR}/chromium-109-system-openh264.patch"
+ "${FILESDIR}/chromium-109-system-zlib.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"
+ "${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
@@ -577,7 +587,6 @@ src_prepare() {
third_party/utf
third_party/vulkan
third_party/wayland
- third_party/web-animations-js
third_party/webdriver
third_party/webgpu-cts
third_party/webrtc
@@ -730,14 +739,8 @@ chromium_configure() {
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"
+ # 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"
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 <floppym@gentoo.org>
-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 <jdapena@igalia.com>
-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 <hans@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-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 <jdapena@igalia.com>
-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::LinuxInputMethodContext>]’
- ../../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::NavButtonProvider>]’
- ../../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 <thomasanderson@chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-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 <jdapena@igalia.com>
-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<blink::URLLoader>]’
- ../../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 <dcheng@chromium.org>
-Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-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<URLLoader> CreateURLLoaderForTesting() {
-- return nullptr;
-- }
-+ virtual std::unique_ptr<URLLoader> 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<URLLoader> 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 <ellyjones@chromium.org>
-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 <asully@chromium.org>
-Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
-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<VirtualCursor>::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<VirtualCursor*>(sqlite_cursor);
-- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
-+ VirtualCursor* result = reinterpret_cast<VirtualCursor*>(
-+ (reinterpret_cast<char*>(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 <jdapena@igalia.com>
-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 <richard@metafoo.co.uk>
- 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<T>(...)'. This fixes a build failure with
- GCC in C++20 mode.
-
- In passing, remove some other redundant '<T>' qualification from the
- affected classes.
-
-Bug: chromium:819294
-Change-Id: I51a7f069d355d4932f4b50640fedbba1d5773f0b
-Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/71088
-Kokoro-Result: kokoro <noreply+kokoro@google.com>
-Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
-Tested-by: Shahbaz Youssefi <syoussefi@google.com>
-Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
----
-
---- 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<R> Iter)
- : Index(Index), Iter(Iter) {}
-
-- result_pair<R>(const result_pair<R> &Other)
-+ result_pair(const result_pair<R> &Other)
- : Index(Other.Index), Iter(Other.Iter) {}
-- result_pair<R> &operator=(const result_pair<R> &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<R> &operator++() {
-+ enumerator_iter &operator++() {
- assert(Result.Index != std::numeric_limits<size_t>::max());
- ++Result.Iter;
- ++Result.Index;
- return *this;
- }
-
-- bool operator==(const enumerator_iter<R> &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<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
-- enumerator_iter<R> &operator=(const enumerator_iter<R> &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 <jdapena@igalia.com>
-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 <mandrikov@gmail.com>
- 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 <syoussefi@google.com>
-Tested-by: Shahbaz Youssefi <syoussefi@google.com>
-Kokoro-Result: kokoro <noreply+kokoro@google.com>
-Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
----
-
---- 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>(T *P) : P(P) {}
-+ SingleLinkedListIterator(T *P) : P(P) {}
-
- SingleLinkedListIterator<T> &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<T> &Array, uint32_t Index)
- : Array(Array), Index(Index) {}
-
-- FixedStreamArrayIterator<T>(const FixedStreamArrayIterator<T> &Other)
-+ FixedStreamArrayIterator(const FixedStreamArrayIterator<T> &Other)
- : Array(Other.Array), Index(Other.Index) {}
- FixedStreamArrayIterator<T> &
- operator=(const FixedStreamArrayIterator<T> &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 <odejesush@chromium.org>
+Reviewed-by: David Roger <droger@chromium.org>
+Reviewed-by: Chase Phillips <cmp@chromium.org>
+Auto-Submit: Ovidio Ruiz-Henríquez <odejesush@chromium.org>
+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<const char* const> 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 <fs@opera.com>
+Commit-Queue: Fredrik Söderquist <fs@opera.com>
+Cr-Commit-Position: refs/heads/main@{#1147184}
+
+--- a/AUTHORS
++++ b/AUTHORS
+
+@@ -1012,6 +1012,7 @@
+ Prashant Hiremath <prashhir@cisco.com>
+ Prashant Nevase <prashant.n@samsung.com>
+ Prashant Patil <prashant.patil@imgtec.com>
++Pratham <prathamIN@proton.me>
+ Praveen Akkiraju <praveen.anp@samsung.com>
+ Preeti Nayak <preeti.nayak@samsung.com>
+ Pritam Nikam <pritam.nikam@samsung.com>
+
+--- 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 @@
<email>chromium@gentoo.org</email>
<name>Chromium in Gentoo Project</name>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>Matt.Jolly@footclan.ninja</email>
+ <name>Matt Jolly</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
<use>
<flag name="component-build">Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
<flag name="debug">Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>