diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /www-client/chromium |
reinit the tree, so we can have metadata
Diffstat (limited to 'www-client/chromium')
28 files changed, 4263 insertions, 0 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest new file mode 100644 index 000000000000..fbe3b380a30e --- /dev/null +++ b/www-client/chromium/Manifest @@ -0,0 +1,36 @@ +AUX chromium-FORTIFY_SOURCE-r2.patch 1206 SHA256 fa3f703d599051135c5be24b81dfcb23190bb282db73121337ac76bc9638e8a5 SHA512 2d78092a700788c74b86db636af303fdb63a28ce5b7b0431dd81f6b7ce501e5d0234a6327a1b49bc23e1c1d00ba98fd5334dd07d9a20bb0d81d1a4ca4487a26c WHIRLPOOL e7e03b5df76a064c369637a470b955d7a31c269982094007e8bf3df1659ab8eb906a8318fbbb0fe10089c6ad8025ad4b1270f724d922d0b61f0d00903793d9cf +AUX chromium-atk-r1.patch 533 SHA256 fc0e9abb77b6f8e21a7601ff53f267a854736d711b530be5bbd80d976678e98d SHA512 5722c571ffc384e0e226342d170e29109bf45761dcd7202b2fe6572795e0a04bd0521b1120eb2247c2a84bed0e63f47a71d25802528992ee4f976b348fb5c8f6 WHIRLPOOL ee0afda2e5d267b39ab298dd5389c51092f6eba2b4e9e0f6b95e4af9ef28d2b680b02049e14957f6d4ce2e91bb63a73dd97b59a2b28ee2d23b68849ff90b26f7 +AUX chromium-browser.xml 407 SHA256 bc039012f8677468e9ce5df825f9d8096be6deb5813031c86a087c88105096ff SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca WHIRLPOOL be37cd2e7d02c510e84c484f32ab6ab2e1f38a2a03c0cdbc9b6b485d64feaf79944d8ce097f0838ae9bc71c42401b633350b847ad316b8e23cf5614e3913e7ec +AUX chromium-clang-r1.patch 808 SHA256 ab5368a3e3a67fa63b33fefc6788ad5b4a79089ef4db1011a14c3bee9fdf70c6 SHA512 dfb81895fb78983e5adba54351d94e9174aa6a523c5a78738aad8223330cde6739dea6d82328d603f693a2d5810df890eccc4bed202d73875c9c97be506936e5 WHIRLPOOL b270233ba8b61b3117c572e82b59f19f3a9a3c1d2b4beb54f9152a7b36c39669f944b9905844ce64c5f70cdabfd9a5f1598f9ca61db4f924ae0c0d13177830bc +AUX chromium-gcc-r1.patch 689 SHA256 11cffe305dd49027c91638261463871e9ecb0ecc6ecc02bfa37b203c5960ab58 SHA512 0e3459e58a32e6eee83673e688a75e19a0e6925f5f34c860d60c37b05a7816bbe1fd29712c1259611b856ae6576cbef8fa71425b7acc39f51ded706534c72281 WHIRLPOOL 98435687f2198973d2069fde8e366dae4d2c19d39875aeaa75595223a75c9dcad9ee03fc865926ee069936a179945aabe2c72025745cda0cffdb35edc7dd6bbb +AUX chromium-gcc5-r1.patch 2658 SHA256 1bc9733d916bbd60e5819c65ad7260c2e971adf775b0a1b562357e4fc4d3e94b SHA512 11fcfa704c05dbced579329b02844c6dd2c9ff7df59e95499f6778074d24d2b4e6903a53dd12833c322c50873f7aa5bae0d103bf0a1a977868f8cce67b53f15c WHIRLPOOL 20c0f8b573191fc0404f7f5f3500eebf9600b219a473ba14a64571cf38cff7adf837b09ac901b7ff1bdb52a8474e12971f2b37abd4896e79c1d33d9c23bcac60 +AUX chromium-gcc5-r2.patch 1480 SHA256 d44b90fc7313afaa6d6f77cde72c0e9a5e4a1cc792216cbca2ed45c39658c472 SHA512 55723ffe9c34b5336450e75db8354c1ce5d6429b7296cbf575941eef5f3de3cdc40836e8f9b6905b4153913b10136a12d4c6d37f6a9f447677aa40588bfac182 WHIRLPOOL ee9b10abadc14adbd01e247a94c953bf3260904852d72ef7ff9deded72b2cc50b4925d35f4ee9d2ebff0d689959a456169b1577928561feeebdc7a1d8fe441b3 +AUX chromium-gcc5-r3.patch 3563 SHA256 a05b69be47182e5d4a5bd6f05103b72e2708591066e0703827cc2ec14d1a9463 SHA512 dcf1f085ea634267448cb35869744df047d4851de906096bf7dfd2287de8ea027e9cffa9f0253de3353961c8d9a516d2064fe77ab987862ac76764e934c61a04 WHIRLPOOL a65b802ccaacc7d7fb827d4de40f219cebb2991478b18f895f397d91354a55f8cfeba5afe15f722064920ef62961f84c85e474bea057d7254173f3f189ee5b48 +AUX chromium-gcc5-r4.patch 3648 SHA256 6f525ea6b22a432b1c2cdc2bff8482a30b76c7ada606d9f333fc7f3caf2841a3 SHA512 6b6d80c8adfbb317003712b94cfdf733af48ee5f32d10b6f6e8599cd08b7a9d8b73e6cec2902ed55eb0a962ba9c9cf14a70299e132ec7bfec29806ed23836791 WHIRLPOOL 9153feaf61d3ce2f5542c6bab55035af2ca5be5c476090536f55a9a067c7f705fe546ba19cf71fc50930c98f96e3f6cfaa20274d0f9d33fcf4dda28988ca8b67 +AUX chromium-glibc2.26-r1.patch 10243 SHA256 ca58ebc6d37f73090fa6b697e1a394aa8b434e773c86703a9d5ddfdab39fc308 SHA512 9905438a85d1fd8f16d189737d4fa27c8968f2ef94f10209ebc1971aa4f0e9b5d84548ea48a4f69cc8a3dd23f3caa130909a4fadf250a537b8cf26db3c682262 WHIRLPOOL c9c4a654460222626f9a054bb46963bb513a3c7b62569dabb530cd590255cef38dc8cdeda00732023d92b7cbbc48bf4cb609f8dbbac00336c4f0df800ec714a2 +AUX chromium-gn-bootstrap-r14.patch 1327 SHA256 98784c4a0a793ecf34987bc8f91ae360d78596a4a59dd47651411381f752a080 SHA512 d297728681538fd6d6d48da4477e6e42b0ac1585a243dca60c0d9896387a1bf17770aa70966344c8d3551b774cbea6d6acbeaa0dbbfc3c17367dda5daa912297 WHIRLPOOL 54392bb999d0c56d769fbefb5a782f24b693d391130bb4208aa71ccf26987e3f974d5fbaacc00de030806a4078aa22e2c3978d88d8d24c2408576a609b2fb258 +AUX chromium-gn-bootstrap-r17.patch 2896 SHA256 d81319f168dad0e411c8e810f73daa2f56ff579578771bd9c9bb1aa2d7c09a8b SHA512 28812a8bd6d591831a3bbd749f1d7c6dd434eb0237970d4e8ea8cfd48fa8efb4d98906eca3d175218fe62c50bcb0b6472b2d7dfdde73d5641cd3fde1d9dc5f3b WHIRLPOOL 0e8fa15f2108a01d9495d007b92e1c1b0d22ebbf016363bdf0b03e756c7bc41bb7eef2e8088e4b879c9dede74df5aba1f0d2166efbedbeda368b2f476d9677de +AUX chromium-gn-bootstrap-r19.patch 408 SHA256 034b06ab8a9f09414b823564e0d7d2c46e542eb9dce36bbafdb26ea581a72178 SHA512 d9c65b05eab6e1d5e0b2d9453edffd229b3cdfe9fe01e3594153ae51308a8eefd599d33bac2b5417d4e150278965d2a7a6091d25808d243223878a7d467f5021 WHIRLPOOL 9c9710fcced1cddfa55cb6647fd70321012381489023051e7333cd1debb13006e68c94084979353b945fe4de303d9562b294b6cd6c04762ef5a542b692b21065 +AUX chromium-gn-bootstrap-r20.patch 947 SHA256 39b7a0a3eb805d7e025d05d4cb78123076393561d429b27987255c4fb3ffc464 SHA512 b333dc44cd1511f74ae474becc4a1758011a7ae94f0fd6b0bec2b2c018fa8b785276374f23cbe2a3ac670bc1d2af30fd894daef86ed202dac689ec3dcd267aac WHIRLPOOL 0b045bfc372d69fb5ac12f35b79d55fbda961fda3af16b34d107d59a880596f1ba212ac378f30f9d3afa29f37c42126dae6c49d77f3a5b5a50ba12145bf248d2 +AUX chromium-gn-bootstrap-r21.patch 1421 SHA256 01f0bca7338cd983e8dfe6026d9401fbbcf1270e539597a0de8216f524027753 SHA512 b90520e4c97f709058d00e6f4f0067d6d8df0cbed13e078a38d0c5d8e38dee2a51bf73f4f5c2fed7f3b7a1dccc35af6a6c7f40e4e845582e243a27464c801844 WHIRLPOOL 3b513bfeb02fa76336ccac91362ca985ce248c85ea11f6eab0eb9afdb0ea8204349a0dd0f6cc50fa54854f69e3505894a35a8b7a9cc7e061c700c0596f74d25f +AUX chromium-launcher-r3.sh 1199 SHA256 9bceb14a6c171754b77bcc7e6095285fcb58a9ca10e2e4a9c9e13dc561fc0c01 SHA512 f1909314ae74985c85740d26c9bfab694f3202de8ccc392a1c4ec5c8760db21b6cc46146c78a9abebd09e6d24f37e19466f0c4d2d61815400b48d859f8ce154d WHIRLPOOL faa7eb72a4a5902299925ab4c13308299fccfbdf34a417ce89fa800cfcd6ebf0a3a456db1e8625e205be445d4ad2718db6cf6d581b266bb9227fb03506a67220 +AUX chromium-mojo-dep.patch 2170 SHA256 fe298059b6937b2816beba8660d42f8584bdc56c12849ac55d32e4cd6d8c4518 SHA512 1068c130eb1a679ecb225caf2b430003c5485dfa12d465fa7b42f2c127d8113a1f4557be20ce93f4921ca52e50d90e04d5cb9a6a4b6115c32488936aa51cdf56 WHIRLPOOL 483024165231e1c7c4e551c92d2230c49f6f1b2b85c9213b510a6ae8f5367a7c2f72594d8840856924ae538697b16dc8e11c5c506b3da2fcc87729c5f74e0a8f +AUX chromium-sysroot-r1.patch 430 SHA256 c98fd9ebda7d008419b7e979391ba9806aacf6d015e8cc2998a3d5c87fce3efb SHA512 ae0ce58b912254585263982ef3023ee3a9a22ae5ca8a7107c7352aabdc19a7b6732e1d2b3e8d9c6cccf291db8fe5f4bb5157d5b19e00419845975d96654b96e6 WHIRLPOOL ef837dee0d8d53a01cad8f057b80d02b8be9e231ec3c1850161e8f18bcc9e24050fee80f47e04eb4861119b9318b540b02cd679fe87d4aa342196f85f6d3eb71 +AUX chromium-widevine-r1.patch 428 SHA256 c05800f823b3e9522be70645de6a9b482856030f43fd56273bb4f0bbc319d158 SHA512 fe6b912bd8b3993194f71bef229e57d4c24f9adcf697172eb3bc5ee8d38967bf5fe5b964e9d89d23960d25cd3a6e53ce7714f81f0df1881758b611a66375e32a WHIRLPOOL 2d2ff0b11c3062ef4c4873221d986dcd6018130d687d487cd32e4912e957332e12165114a69e8e86919338cfac2ad61dd521637fe4be6d7b3b3deed21b008365 +AUX chromium.default 148 SHA256 bdac1d32025d53158f96c8ad5bd71a58abdcf02f3a8759a43154e97e812fcdd1 SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739 WHIRLPOOL 2e51e864134426668cc73fc5081c35288677d8ce855b07dfbd3413397f9c43148a6d6096a9b7a617511388f87623a3ce7f3387103202db53876a74bccb9dbe6c +AUX toolchain/BUILD.gn 799 SHA256 7b42f63ac928b7d1ff8e4d91cc620e944d581beb26c64fe7e1560f10a9c5ad94 SHA512 8da134d99f050ecdecb06d4ec34287747cd9ee57ccbf6fe334b034812fb95fdee3af8421b10be3ee4f71020ca4029de626cd2770865b1e527bfac966d6d8ea2d WHIRLPOOL 7d9b145da023b223eaf0a9c6907a42ece9f880b83abcc4ef45624436901bc21fefe5f4823e67350a07b60e2ea4718ee4bf21542264fd2c7d1f6ba6b8cbc3daa0 +DIST chromium-61.0.3163.100.tar.xz 556305252 SHA256 4135968cac6623c1d2b224494600cd274098cce41c298f8c3908b354a34c281b SHA512 4dfd3a493ceb7c605eeab6f387541273d529e8b935a6104927e34836469aedcfcbb4a1154591585621d5c2e842e68701d32328acba842f840a20498822165f78 WHIRLPOOL a02443375a59073ad350665a46c978b67e1026078822b3a34f9fb1099a1bc62933ec25c6135c107388ebf21362d0e6a04e394a60275dd1e30b31c145ee7f93e8 +DIST chromium-62.0.3202.18.tar.xz 517017924 SHA256 38d76599b999e3636c3eb60888acd34ea8a8d7e24e6dba21ec7ae39d2045d47f SHA512 7017bc7f17af969fc460f0001ae935dca48253d2dea65d5375a126434549bb7ce748518c716b6d06aa6ae357577ca08ec73c7fe0e11b606595c15768388bab87 WHIRLPOOL 305ca8e55bbd2d87c1b6444ed2580b2c6992c2c5072b0abc9751190e07e0a57bb2180d751aaf5a248beea8467c6888f681c1d76a0a7cfb6ccfc2ae5d9669f2ec +DIST chromium-62.0.3202.9.tar.xz 516991748 SHA256 d801d431417736098ee4bf4ecaea642f5fe6101ea88a4cf7b06a04da58331199 SHA512 26e253dc0b779408116e4fbcc41e306afbd34687a9cb9f748d49381cec4ace4a094630aec5be14878584051696c261052ce7b07fd75b9680217165afd3909fe9 WHIRLPOOL 82645f14dd1a19faecc8b8af3fcfef03b2e14cb04c0ad8653bf9e11ef84169ecae7d8fdcbed1a84da0433f621dbbb331319670bb9cb0723759df617dd46e4617 +DIST chromium-63.0.3223.8.tar.xz 541587956 SHA256 bced462e16a28ff0a3896539e6c7f72e76cb7ba16640a6cac9a533ec4b8f5ee5 SHA512 6ca0efac47adee14b04cba312397b80aeaed1b0ce9bee427c508c44636ab9a1668f743bd3939d83417129d7e83c38c2f95b72c502c6d834056cf7477ef8b4de8 WHIRLPOOL b9f526eec3626b93f2541461b9b3a79bef283de62d99e30c209859e686db8e09ed327f90d0811703d699e9813cb86e0002be93fa42372e65afef1c96b8c91d35 +DIST chromium-63.0.3230.0.tar.xz 558852780 SHA256 97daa90a6f0ba7dc49a168cbf9c40896e621fb0352ab6de1d2fa428bb63ab64a SHA512 b0aa9a42df303bc7ff412dec30b3bfed292ae39cb5e0f705f28eeb7a60d6125b9cecef7e3ab7798b2ca091ec71215fa5639def6b867c9fdb7a9a85c9b42323b3 WHIRLPOOL 1b9e346018c7056fce3f844d37b69e98529c9dc3ae04bdf07378c7de568d295814a42aa133c463a3be8d22a39b5f62ec69f679ea5dca3fe7e37a15215932c794 +EBUILD chromium-61.0.3163.100.ebuild 20050 SHA256 69213cd5ea5a7549eaac19a8fedc721c6c00b89c770e5f78a128023034abe412 SHA512 d92643fbb49d549cb133f0854ea1b75468a1d7a5e412e21ad787af9abdb1930bed9482f784f382a6ff60847f642e4ce99b67493e1f260696299ccc8ae1a0f164 WHIRLPOOL df8b2cb86387848b31598e4adc5818a3269291c52e4652f233350e72b985e199fe94d437c06ce7e9c230dbbc2bd057d61f955784aa03bf0906c1734b0c47d621 +EBUILD chromium-62.0.3202.18.ebuild 19508 SHA256 fa44b34c8f96daa4e199474de359ed6436d8ef878da2df6736ca54ee186cde78 SHA512 9d63d65e8b88c03c9e3ad216f87f628887c03bedcc965462405742179827f8047355394386ef9d711bb3cf20381f4cd686aa49fb8a21492534deb934801e1dd7 WHIRLPOOL 45c6cd120a6fae14c0a5efd9f3255e69ced06a1d6b151fb01e523e3b31d5e6655499f47d67a9103359427f7ca20b1a69e4aff51c49fd13d313db501ed5a18fce +EBUILD chromium-62.0.3202.9.ebuild 19547 SHA256 51410dbb27a550255333872592086bec705fa8c49822e90b532b9000f0208af7 SHA512 dfcba13194b619536b217f9f953883137f94392fbe4e467085aca5d56fbce2cb3584ab66636e7aaeb964df95ceb646b568cf6a33bb644db0ef1d0f050aa0432d WHIRLPOOL 621cdf2fb2f66766ccb97906962ba20502da837e79fb08b01b66803ac156e5538a8f714b30c68b6d7e69cd8f068804a1f3875d70e45c2605b85559043034c274 +EBUILD chromium-63.0.3223.8.ebuild 19488 SHA256 87be09e2139856c5233d2e74315f7549e79605da663c6ba2e8264dafd1e48720 SHA512 de8e2b69f2dcffd0edaddb4c3aaa5689c959bc9b74b68e0bacf40aa8d32295f116b3e55b389e648a368c692a366a8d6ec5926b0e4794dc41c7ff89408f2238ab WHIRLPOOL da731abfa0d5b286578bee83fd14eb39c0ae537911ad089150a6afdf149439ac1210c3f47f0ceef31fe30b5759b9fac34b358cc4b75948e3972dbf4bd0bcc6fd +EBUILD chromium-63.0.3230.0.ebuild 19608 SHA256 58c5152fec3be6b39731da2977fc645518f06b30b32bb0004400f2157a33cc3d SHA512 160525df69723344b218d96cef9373f9752b0e4d6026eeca9cefa1458e3102ca916ed6034db695d4d6fca2524451124c8a39e37a2dbdc693c9d2cac941e39996 WHIRLPOOL 6ed021b43b93e46da9f59160cd6a8b6891b57cf89715566f4915525c1c3877d1b890cb9f2a9b90a9f0c1a13393e2396153de919a648d3ec4a371faddb2260d0a +MISC ChangeLog 61379 SHA256 6089c72a9ad011b043f45bf3057c79f999d2aad5f4ecf0f9f45f9ced5156a18c SHA512 05868a71dfe2cbabb32b664968939704ada3c56bdd70aee289dbc60c5708e07df8496090687bf9b4659810872f629d53530990820e0da57b792a31add93d1f19 WHIRLPOOL fb91699e99261a3128ac7d931cfa5ec34a8884682935cc0740a129119f0b8d18a2aa83652ee06e0e6900371007cffbaea46f4e5d450ff2817d12e96cc819cca9 +MISC ChangeLog-2011 114031 SHA256 e2c2c75785c5eaf78b6efe01e357279cbb7be0c89d00b4053f475e963916fa54 SHA512 8e14759348333bdbd7c338080472789d7bbb1ece1ca5817bac6306bdcb33dda1e23bf3055cbb3b7bcee9362b6900bba1ace7ba73f353570a74d3ed761c9198cc WHIRLPOOL 810b6423c53f892a4b0964380b8190dec2a8783d560a9cb0baec93a77d879186201055382ca05975ae242e16728529ae85445db003fdd425355292d17817157b +MISC ChangeLog-2014 123105 SHA256 f67108708d3d21b4acfca327aca42ceb4cc31201772dff496babfacb50acc4eb SHA512 bf6464e7e6ccdee81a4c26949176ebfb705f99e85a0120eea77f52b862fa3b8142abb006462f31e5a9053777836d4d9fdb69926d2b01b49463553740aecdbc43 WHIRLPOOL 114181b4c8e700a56bdf76b4de2e94998436b1b27df9182348ab88afd352085938686359369ffa4af929936e9ad88305efc97e22afd3b4c50b0dcf9669286fea +MISC ChangeLog-2015 17484 SHA256 5fbeaef20e6883bbdfa0bd14e1f5202379086c087e3628efcfd7aab228883b85 SHA512 2a06a080f758de621aaf7eb667a8b8f0a56a77f8eb138a97535bba1c9f95d1501ade77f5a3e0f6e9e179b85d919a643fc9387737a1afe74292e9b325641b60d4 WHIRLPOOL 65fe6b07723bbe878ff87440bd4160e5cc706bd0bf57b856ab1083eae14440ab57ed3c2942c537102129780445071a430776fc5c39428fe90cfd5750834ee908 +MISC metadata.xml 1336 SHA256 717b14979343c16350e9b28f065982026789bb9e96e115de020b463fafedf04e SHA512 028de2d2f3068ec95dc586b1d5b40cc4f69feba6ca685038427c606005ffc1ede58d056b0502822be83e28217182adc5305e81a7de8fd49f3162250a476cc1a0 WHIRLPOOL e2384ccd0a557d80a6791710c69f0cbe0cb63d51ef18dceb6e4688a7d3cc2bf1a67541aeae93073685c45e0b02208d9b7139d66caee258101c75aded2845520c diff --git a/www-client/chromium/chromium-61.0.3163.100.ebuild b/www-client/chromium/chromium-61.0.3163.100.ebuild new file mode 100644 index 000000000000..4dca1421f152 --- /dev/null +++ b/www-client/chromium/chromium-61.0.3163.100.ebuild @@ -0,0 +1,670 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +PYTHON_COMPAT=( python2_7 ) + +CHROMIUM_LANGS="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 vi zh-CN zh-TW" + +inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator virtualx xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~x86" +IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" + +# Native Client binaries are compiled with different set of flags, bug #452066. +QA_FLAGS_IGNORED=".*\.nexe" + +# Native Client binaries may be stripped by the build system, which uses the +# right tools for it, bug #469144 . +QA_PRESTRIPPED=".*\.nexe" + +COMMON_DEPEND=" + app-arch/bzip2:= + cups? ( >=net-print/cups-1.3.11:= ) + dev-libs/expat:= + dev-libs/glib:2 + system-icu? ( <dev-libs/icu-59:= ) + dev-libs/libxslt:= + dev-libs/nspr:= + >=dev-libs/nss-3.14.3:= + >=dev-libs/re2-0.2016.05.01:= + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) + >=media-libs/alsa-lib-1.0.19:= + media-libs/fontconfig:= + media-libs/freetype:= + >=media-libs/harfbuzz-1.4.2:=[icu(-)] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-libvpx? ( media-libs/libvpx:=[postproc,svc] ) + >=media-libs/openh264-1.6.0:= + pulseaudio? ( media-sound/pulseaudio:= ) + system-ffmpeg? ( + >=media-video/ffmpeg-3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + !=net-fs/samba-4.5.12 + media-libs/opus:= + ) + sys-apps/dbus:= + sys-apps/pciutils:= + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11:= + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXext:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXScrnSaver:= + x11-libs/libXtst:= + x11-libs/pango:= + app-arch/snappy:= + media-libs/flac:= + >=media-libs/libwebp-0.4.0:= + sys-libs/zlib:=[minizip] + kerberos? ( virtual/krb5 ) +" +# For nvidia-drivers blocker, see bug #413637 . +RDEPEND="${COMMON_DEPEND} + !=www-client/chromium-9999 + !<www-plugins/chrome-binary-plugins-57 + x11-misc/xdg-utils + virtual/opengl + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) +" +# dev-vcs/git - https://bugs.gentoo.org/593476 +# sys-apps/sandbox - https://crbug.com/586444 +DEPEND="${COMMON_DEPEND} + >=app-arch/gzip-1.7 + !arm? ( + dev-lang/yasm + ) + dev-lang/perl + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + >=net-libs/nodejs-4.6.1 + sys-apps/hwids[usb(+)] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + dev-vcs/git + $(python_gen_any_dep ' + dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}] + >=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/simplejson[${PYTHON_USEDEP}] + ') +" + +# Keep this in sync with the python_gen_any_dep call. +python_check_deps() { + has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && + has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]" +} + +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/bitstream-cyberbit +- 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. +" + +PATCHES=( + "${FILESDIR}/${PN}-widevine-r1.patch" + "${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch" + "${FILESDIR}/${PN}-gcc-r1.patch" + "${FILESDIR}/${PN}-gn-bootstrap-r14.patch" + "${FILESDIR}/${PN}-atk-r1.patch" + "${FILESDIR}/${PN}-mojo-dep.patch" + "${FILESDIR}/${PN}-gcc5-r1.patch" +) + +pre_build_checks() { + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then + # bugs: #601654 + die "At least clang 3.9.1 is required" + fi + if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then + # bugs: #535730, #525374, #518668, #600288, #627356 + die "At least gcc 5.0 is required" + fi + fi + + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="3G" + CHECKREQS_DISK_BUILD="5G" + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + CHECKREQS_DISK_BUILD="25G" + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + eshopts_pop + check-reqs_pkg_setup +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + + # Make sure the build system will use the right python, bug #344367. + python-any-r1_pkg_setup + + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + 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 + + local keeplibs=( + base/third_party/dmg_fp + 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 + breakpad/src/third_party/curl + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + third_party/WebKit + third_party/analytics + third_party/angle + third_party/angle/src/common/third_party/base + third_party/angle/src/common/third_party/murmurhash + third_party/angle/src/third_party/compiler + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/trace_event + third_party/boringssl + third_party/brotli + third_party/cacheinvalidation + third_party/catapult + third_party/catapult/third_party/polymer + third_party/catapult/third_party/py_vulcanize + third_party/catapult/third_party/py_vulcanize/third_party/rcssmin + third_party/catapult/third_party/py_vulcanize/third_party/rjsmin + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/ced + third_party/cld_2 + third_party/cld_3 + third_party/cros_system_api + third_party/devscripts + third_party/dom_distiller_js + third_party/fips181 + third_party/flatbuffers + third_party/flot + third_party/freetype + third_party/glslang-angle + 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/jinja2 + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libXNVCtrl + third_party/libaddressinput + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libudev + third_party/libwebm + third_party/libxml + third_party/libyuv + third_party/lss + third_party/lzma_sdk + third_party/markupsafe + third_party/mesa + third_party/modp_b64 + third_party/mt19937ar + third_party/node + third_party/node/node_modules/vulcanize/third_party/UglifyJS2 + third_party/openmax_dl + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/build + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms2-2.6 + third_party/pdfium/third_party/libopenjpeg20 + third_party/pdfium/third_party/libpng16 + third_party/pdfium/third_party/libtiff + third_party/ply + third_party/polymer + third_party/protobuf + third_party/protobuf/third_party/six + third_party/qcms + third_party/sfntly + third_party/skia + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/spirv-headers + third_party/spirv-tools-angle + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/subzero + third_party/usrsctp + third_party/vulkan + third_party/vulkan-validation-layers + third_party/web-animations-js + third_party/webdriver + third_party/webrtc + third_party/widevine + third_party/woff2 + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/valgrind + v8/third_party/inspector_protocol + + # gyp -> gn leftovers + base/third_party/libevent + third_party/adobe + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + third_party/yasm/run_yasm.py + ) + 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-libvpx; then + keeplibs+=( third_party/libvpx ) + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) + fi + if use tcmalloc; then + keeplibs+=( third_party/tcmalloc ) + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die +} + +bootstrap_gn() { + if tc-is-cross-compiler; then + local -x AR=${BUILD_AR} + local -x CC=${BUILD_CC} + local -x CXX=${BUILD_CXX} + local -x NM=${BUILD_NM} + local -x CFLAGS=${BUILD_CFLAGS} + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + einfo "Building GN..." + set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean + echo "$@" + "$@" || die +} + +src_configure() { + local myconf_gn="" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=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)" + + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp (bug #459932). + # TODO: xml (bug #616818). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + harfbuzz-ng + libdrm + libjpeg + libpng + libwebp + libxslt + openh264 + re2 + snappy + yasm + 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-libvpx; then + gn_system_libraries+=( libvpx ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_gconf=false" + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" fieldtrial_testing_like_official_build=true" + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # 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 linux_use_bundled_binutils=false use_custom_libcxx=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. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + local google_default_client_id="329227923882.apps.googleusercontent.com" + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" + + local myarch="$(tc-arch)" + 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 + 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 neon arm-neon arm) + 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" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Prevent linker from running out of address space, bug #471810 . + if use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx build failures. Bug 530248, 544702, 546984. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 + fi + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + # Define a custom toolchain for GN + myconf_gn+=" custom_toolchain=\"${FILESDIR}/toolchain:default\"" + + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"${FILESDIR}/toolchain:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"${FILESDIR}/toolchain:host\"" + else + myconf_gn+=" host_toolchain=\"${FILESDIR}/toolchain:default\"" + fi + + # https://bugs.gentoo.org/588596 + append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks) + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + if ! use system-ffmpeg; 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 + + third_party/libaddressinput/chromium/tools/update-strings.py || die + + touch chrome/test/data/webui/i18n_process_css_test.html || die + + bootstrap_gn + + einfo "Configuring Chromium..." + set -- out/Release/gn gen --args="${myconf_gn}" out/Release + echo "$@" + "$@" || die +} + +src_compile() { + local ninja_targets="chrome chromedriver" + if use suid; then + ninja_targets+=" chrome_sandbox" + fi + + # Build mksnapshot and pax-mark it. + if tc-is-cross-compiler; then + eninja -C out/Release host/mksnapshot || die + pax-mark m out/Release/host/mksnapshot + else + eninja -C out/Release mksnapshot || die + pax-mark m out/Release/mksnapshot + 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 ${ninja_targets} || die + + pax-mark m out/Release/chrome +} + +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 + + # if ! use arm; then + # doexe out/Release/nacl_helper{,_bootstrap} || die + # insinto "${CHROMIUM_HOME}" + # doins out/Release/nacl_irt_*.nexe || die + # doins out/Release/libppGoogleNaClPluginChrome.so || die + # fi + + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.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 + + if use widevine; then + # These will be provided by chrome-binary-plugins + rm out/Release/libwidevinecdm*.so || die + fi + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins out/Release/*.so + + if ! use system-icu; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/resources + + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + + newman out/Release/chrome.1 chromium.1 + newman out/Release/chrome.1 chromium-browser.1 + + # Install icons and desktop entry. + local branding size + for size in 16 22 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 + + local mime_types="text/html;text/xml;application/xhtml+xml;" + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797 + mime_types+="x-scheme-handler/ftp;" # bug #412185 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393 + make_desktop_entry \ + chromium-browser \ + "Chromium" \ + chromium-browser \ + "Network;WebBrowser" \ + "MimeType=${mime_types}\nStartupWMClass=chromium-browser" + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog +} diff --git a/www-client/chromium/chromium-62.0.3202.18.ebuild b/www-client/chromium/chromium-62.0.3202.18.ebuild new file mode 100644 index 000000000000..72bfe6ed14d9 --- /dev/null +++ b/www-client/chromium/chromium-62.0.3202.18.ebuild @@ -0,0 +1,653 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +PYTHON_COMPAT=( python2_7 ) + +CHROMIUM_LANGS="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 vi zh-CN zh-TW" + +inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" + +COMMON_DEPEND=" + app-arch/bzip2:= + cups? ( >=net-print/cups-1.3.11:= ) + dev-libs/expat:= + dev-libs/glib:2 + system-icu? ( >=dev-libs/icu-59:= ) + >=dev-libs/libxml2-2.9.5:=[icu] + dev-libs/libxslt:= + dev-libs/nspr:= + >=dev-libs/nss-3.14.3:= + >=dev-libs/re2-0.2016.05.01:= + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) + >=media-libs/alsa-lib-1.0.19:= + media-libs/fontconfig:= + media-libs/freetype:= + >=media-libs/harfbuzz-1.4.2:=[icu(-)] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-libvpx? ( media-libs/libvpx:=[postproc,svc] ) + >=media-libs/openh264-1.6.0:= + pulseaudio? ( media-sound/pulseaudio:= ) + system-ffmpeg? ( + >=media-video/ffmpeg-3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + !=net-fs/samba-4.5.12 + media-libs/opus:= + ) + sys-apps/dbus:= + sys-apps/pciutils:= + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11:= + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXext:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXScrnSaver:= + x11-libs/libXtst:= + x11-libs/pango:= + app-arch/snappy:= + media-libs/flac:= + >=media-libs/libwebp-0.4.0:= + sys-libs/zlib:=[minizip] + kerberos? ( virtual/krb5 ) +" +# For nvidia-drivers blocker, see bug #413637 . +RDEPEND="${COMMON_DEPEND} + !=www-client/chromium-9999 + !<www-plugins/chrome-binary-plugins-57 + x11-misc/xdg-utils + virtual/opengl + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) +" +# dev-vcs/git - https://bugs.gentoo.org/593476 +# sys-apps/sandbox - https://crbug.com/586444 +DEPEND="${COMMON_DEPEND} + >=app-arch/gzip-1.7 + !arm? ( + dev-lang/yasm + ) + dev-lang/perl + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + >=net-libs/nodejs-4.6.1 + sys-apps/hwids[usb(+)] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + dev-vcs/git + $(python_gen_any_dep ' + dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}] + >=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/simplejson[${PYTHON_USEDEP}] + ') +" + +# Keep this in sync with the python_gen_any_dep call. +python_check_deps() { + has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && + has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]" +} + +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/bitstream-cyberbit +- 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. +" + +PATCHES=( + "${FILESDIR}/${PN}-widevine-r1.patch" + "${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch" + "${FILESDIR}/${PN}-gcc5-r3.patch" + "${FILESDIR}/${PN}-gn-bootstrap-r17.patch" + "${FILESDIR}/${PN}-glibc2.26-r1.patch" +) + +pre_build_checks() { + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then + # bugs: #601654 + die "At least clang 3.9.1 is required" + fi + if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then + # bugs: #535730, #525374, #518668, #600288, #627356 + die "At least gcc 5.0 is required" + fi + fi + + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="3G" + CHECKREQS_DISK_BUILD="5G" + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + CHECKREQS_DISK_BUILD="25G" + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + eshopts_pop + check-reqs_pkg_setup +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + + # Make sure the build system will use the right python, bug #344367. + python-any-r1_pkg_setup + + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + 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 + + local keeplibs=( + base/third_party/dmg_fp + 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 + breakpad/src/third_party/curl + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + third_party/WebKit + third_party/analytics + third_party/angle + third_party/angle/src/common/third_party/base + third_party/angle/src/common/third_party/murmurhash + third_party/angle/src/third_party/compiler + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/trace_event + third_party/boringssl + third_party/brotli + third_party/cacheinvalidation + third_party/catapult + third_party/catapult/third_party/polymer + third_party/catapult/third_party/py_vulcanize + third_party/catapult/third_party/py_vulcanize/third_party/rcssmin + third_party/catapult/third_party/py_vulcanize/third_party/rjsmin + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/ced + third_party/cld_2 + third_party/cld_3 + third_party/crc32c + third_party/cros_system_api + third_party/devscripts + third_party/dom_distiller_js + third_party/fips181 + third_party/flatbuffers + third_party/flot + third_party/freetype + third_party/glslang-angle + 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/jinja2 + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libXNVCtrl + third_party/libaddressinput + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libudev + third_party/libwebm + third_party/libxml/chromium + third_party/libyuv + third_party/lss + third_party/lzma_sdk + third_party/markupsafe + third_party/mesa + third_party/modp_b64 + third_party/mt19937ar + third_party/node + third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 + third_party/openmax_dl + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/build + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg20 + third_party/pdfium/third_party/libpng16 + third_party/pdfium/third_party/libtiff + third_party/ply + third_party/polymer + third_party/protobuf + third_party/protobuf/third_party/six + third_party/qcms + third_party/sfntly + third_party/skia + third_party/skia/third_party/gif + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/spirv-headers + third_party/spirv-tools-angle + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/subzero + third_party/usrsctp + third_party/vulkan + third_party/vulkan-validation-layers + third_party/web-animations-js + third_party/webdriver + third_party/webrtc + third_party/widevine + third_party/woff2 + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/valgrind + v8/third_party/inspector_protocol + + # gyp -> gn leftovers + base/third_party/libevent + third_party/adobe + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + third_party/yasm/run_yasm.py + ) + 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-libvpx; then + keeplibs+=( third_party/libvpx ) + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) + fi + if use tcmalloc; then + keeplibs+=( third_party/tcmalloc ) + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die +} + +bootstrap_gn() { + if tc-is-cross-compiler; then + local -x AR=${BUILD_AR} + local -x CC=${BUILD_CC} + local -x CXX=${BUILD_CXX} + local -x NM=${BUILD_NM} + local -x CFLAGS=${BUILD_CFLAGS} + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + einfo "Building GN..." + set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean + echo "$@" + "$@" || die +} + +src_configure() { + local myconf_gn="" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=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)" + + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp (bug #459932). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + harfbuzz-ng + libdrm + libjpeg + libpng + libwebp + libxml + libxslt + openh264 + re2 + snappy + yasm + 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-libvpx; then + gn_system_libraries+=( libvpx ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_gconf=false" + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" fieldtrial_testing_like_official_build=true" + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # 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 linux_use_bundled_binutils=false use_custom_libcxx=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. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + local google_default_client_id="329227923882.apps.googleusercontent.com" + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" + + local myarch="$(tc-arch)" + 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 + 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 neon arm-neon arm) + 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" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Prevent linker from running out of address space, bug #471810 . + if use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx build failures. Bug 530248, 544702, 546984. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 + fi + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + # 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\"" + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # https://bugs.gentoo.org/588596 + append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks) + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + if ! use system-ffmpeg; 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 + + bootstrap_gn + + einfo "Configuring Chromium..." + set -- out/Release/gn gen --args="${myconf_gn}" out/Release + echo "$@" + "$@" || die +} + +src_compile() { + local ninja_targets="chrome chromedriver" + if use suid; then + ninja_targets+=" chrome_sandbox" + fi + + # Build mksnapshot and pax-mark it. + if tc-is-cross-compiler; then + eninja -C out/Release host/mksnapshot || die + pax-mark m out/Release/host/mksnapshot + else + eninja -C out/Release mksnapshot || die + pax-mark m out/Release/mksnapshot + 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 ${ninja_targets} || die + + pax-mark m out/Release/chrome +} + +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 + + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.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 + + if use widevine; then + # These will be provided by chrome-binary-plugins + rm out/Release/libwidevinecdm*.so || die + fi + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins out/Release/*.so + + if ! use system-icu; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/resources + + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + + newman out/Release/chrome.1 chromium.1 + newman out/Release/chrome.1 chromium-browser.1 + + # Install icons and desktop entry. + local branding size + for size in 16 22 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 + + local mime_types="text/html;text/xml;application/xhtml+xml;" + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797 + mime_types+="x-scheme-handler/ftp;" # bug #412185 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393 + make_desktop_entry \ + chromium-browser \ + "Chromium" \ + chromium-browser \ + "Network;WebBrowser" \ + "MimeType=${mime_types}\nStartupWMClass=chromium-browser" + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog +} diff --git a/www-client/chromium/chromium-62.0.3202.9.ebuild b/www-client/chromium/chromium-62.0.3202.9.ebuild new file mode 100644 index 000000000000..4e429f776710 --- /dev/null +++ b/www-client/chromium/chromium-62.0.3202.9.ebuild @@ -0,0 +1,654 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +PYTHON_COMPAT=( python2_7 ) + +CHROMIUM_LANGS="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 vi zh-CN zh-TW" + +inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" + +COMMON_DEPEND=" + app-arch/bzip2:= + cups? ( >=net-print/cups-1.3.11:= ) + dev-libs/expat:= + dev-libs/glib:2 + system-icu? ( >=dev-libs/icu-59:= ) + >=dev-libs/libxml2-2.9.5:=[icu] + dev-libs/libxslt:= + dev-libs/nspr:= + >=dev-libs/nss-3.14.3:= + >=dev-libs/re2-0.2016.05.01:= + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) + >=media-libs/alsa-lib-1.0.19:= + media-libs/fontconfig:= + media-libs/freetype:= + >=media-libs/harfbuzz-1.4.2:=[icu(-)] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-libvpx? ( media-libs/libvpx:=[postproc,svc] ) + >=media-libs/openh264-1.6.0:= + pulseaudio? ( media-sound/pulseaudio:= ) + system-ffmpeg? ( + >=media-video/ffmpeg-3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + !=net-fs/samba-4.5.12 + media-libs/opus:= + ) + sys-apps/dbus:= + sys-apps/pciutils:= + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11:= + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXext:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXScrnSaver:= + x11-libs/libXtst:= + x11-libs/pango:= + app-arch/snappy:= + media-libs/flac:= + >=media-libs/libwebp-0.4.0:= + sys-libs/zlib:=[minizip] + kerberos? ( virtual/krb5 ) +" +# For nvidia-drivers blocker, see bug #413637 . +RDEPEND="${COMMON_DEPEND} + !=www-client/chromium-9999 + !<www-plugins/chrome-binary-plugins-57 + x11-misc/xdg-utils + virtual/opengl + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) +" +# dev-vcs/git - https://bugs.gentoo.org/593476 +# sys-apps/sandbox - https://crbug.com/586444 +DEPEND="${COMMON_DEPEND} + >=app-arch/gzip-1.7 + !arm? ( + dev-lang/yasm + ) + dev-lang/perl + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + >=net-libs/nodejs-4.6.1 + sys-apps/hwids[usb(+)] + tcmalloc? ( !<sys-apps/sandbox-2.11 ) + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + dev-vcs/git + $(python_gen_any_dep ' + dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}] + >=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/simplejson[${PYTHON_USEDEP}] + ') +" + +# Keep this in sync with the python_gen_any_dep call. +python_check_deps() { + has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && + has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]" +} + +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/bitstream-cyberbit +- 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. +" + +PATCHES=( + "${FILESDIR}/${PN}-widevine-r1.patch" + "${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch" + "${FILESDIR}/${PN}-gcc5-r2.patch" + "${FILESDIR}/${PN}-gn-bootstrap-r17.patch" + "${FILESDIR}/${PN}-glibc2.26-r1.patch" +) + +pre_build_checks() { + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then + # bugs: #601654 + die "At least clang 3.9.1 is required" + fi + if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then + # bugs: #535730, #525374, #518668, #600288, #627356 + die "At least gcc 5.0 is required" + fi + fi + + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="3G" + CHECKREQS_DISK_BUILD="5G" + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + CHECKREQS_DISK_BUILD="25G" + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + eshopts_pop + check-reqs_pkg_setup +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + + # Make sure the build system will use the right python, bug #344367. + python-any-r1_pkg_setup + + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + 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 + + local keeplibs=( + base/third_party/dmg_fp + 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 + breakpad/src/third_party/curl + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + third_party/WebKit + third_party/analytics + third_party/angle + third_party/angle/src/common/third_party/base + third_party/angle/src/common/third_party/murmurhash + third_party/angle/src/third_party/compiler + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/trace_event + third_party/boringssl + third_party/brotli + third_party/cacheinvalidation + third_party/catapult + third_party/catapult/third_party/polymer + third_party/catapult/third_party/py_vulcanize + third_party/catapult/third_party/py_vulcanize/third_party/rcssmin + third_party/catapult/third_party/py_vulcanize/third_party/rjsmin + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/ced + third_party/cld_2 + third_party/cld_3 + third_party/crc32c + third_party/cros_system_api + third_party/devscripts + third_party/dom_distiller_js + third_party/fips181 + third_party/flatbuffers + third_party/flot + third_party/freetype + third_party/glslang-angle + 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/jinja2 + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libXNVCtrl + third_party/libaddressinput + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libudev + third_party/libwebm + third_party/libxml/chromium + third_party/libyuv + third_party/lss + third_party/lzma_sdk + third_party/markupsafe + third_party/mesa + third_party/modp_b64 + third_party/mt19937ar + third_party/node + third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 + third_party/openmax_dl + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/build + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg20 + third_party/pdfium/third_party/libpng16 + third_party/pdfium/third_party/libtiff + third_party/ply + third_party/polymer + third_party/protobuf + third_party/protobuf/third_party/six + third_party/qcms + third_party/sfntly + third_party/skia + third_party/skia/third_party/gif + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/spirv-headers + third_party/spirv-tools-angle + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/subzero + third_party/usrsctp + third_party/vulkan + third_party/vulkan-validation-layers + third_party/web-animations-js + third_party/webdriver + third_party/webrtc + third_party/widevine + third_party/woff2 + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/valgrind + v8/third_party/inspector_protocol + + # gyp -> gn leftovers + base/third_party/libevent + third_party/adobe + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + third_party/yasm/run_yasm.py + ) + 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-libvpx; then + keeplibs+=( third_party/libvpx ) + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) + fi + if use tcmalloc; then + keeplibs+=( third_party/tcmalloc ) + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die +} + +bootstrap_gn() { + if tc-is-cross-compiler; then + local -x AR=${BUILD_AR} + local -x CC=${BUILD_CC} + local -x CXX=${BUILD_CXX} + local -x NM=${BUILD_NM} + local -x CFLAGS=${BUILD_CFLAGS} + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + einfo "Building GN..." + set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean + echo "$@" + "$@" || die +} + +src_configure() { + local myconf_gn="" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=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)" + + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp (bug #459932). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + harfbuzz-ng + libdrm + libjpeg + libpng + libwebp + libxml + libxslt + openh264 + re2 + snappy + yasm + 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-libvpx; then + gn_system_libraries+=( libvpx ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_gconf=false" + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" fieldtrial_testing_like_official_build=true" + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # 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 linux_use_bundled_binutils=false use_custom_libcxx=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. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + local google_default_client_id="329227923882.apps.googleusercontent.com" + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" + + local myarch="$(tc-arch)" + 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 + 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 neon arm-neon arm) + 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" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Prevent linker from running out of address space, bug #471810 . + if use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx build failures. Bug 530248, 544702, 546984. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 + fi + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + # 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\"" + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # https://bugs.gentoo.org/588596 + append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks) + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + if ! use system-ffmpeg; 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 + + bootstrap_gn + + einfo "Configuring Chromium..." + set -- out/Release/gn gen --args="${myconf_gn}" out/Release + echo "$@" + "$@" || die +} + +src_compile() { + local ninja_targets="chrome chromedriver" + if use suid; then + ninja_targets+=" chrome_sandbox" + fi + + # Build mksnapshot and pax-mark it. + if tc-is-cross-compiler; then + eninja -C out/Release host/mksnapshot || die + pax-mark m out/Release/host/mksnapshot + else + eninja -C out/Release mksnapshot || die + pax-mark m out/Release/mksnapshot + 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 ${ninja_targets} || die + + pax-mark m out/Release/chrome +} + +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 + + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.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 + + if use widevine; then + # These will be provided by chrome-binary-plugins + rm out/Release/libwidevinecdm*.so || die + fi + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins out/Release/*.so + + if ! use system-icu; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/resources + + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + + newman out/Release/chrome.1 chromium.1 + newman out/Release/chrome.1 chromium-browser.1 + + # Install icons and desktop entry. + local branding size + for size in 16 22 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 + + local mime_types="text/html;text/xml;application/xhtml+xml;" + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797 + mime_types+="x-scheme-handler/ftp;" # bug #412185 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393 + make_desktop_entry \ + chromium-browser \ + "Chromium" \ + chromium-browser \ + "Network;WebBrowser" \ + "MimeType=${mime_types}\nStartupWMClass=chromium-browser" + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog +} diff --git a/www-client/chromium/chromium-63.0.3223.8.ebuild b/www-client/chromium/chromium-63.0.3223.8.ebuild new file mode 100644 index 000000000000..809c36dc7ab4 --- /dev/null +++ b/www-client/chromium/chromium-63.0.3223.8.ebuild @@ -0,0 +1,653 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +PYTHON_COMPAT=( python2_7 ) + +CHROMIUM_LANGS="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 vi zh-CN zh-TW" + +inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" + +COMMON_DEPEND=" + app-arch/bzip2:= + cups? ( >=net-print/cups-1.3.11:= ) + dev-libs/expat:= + dev-libs/glib:2 + system-icu? ( >=dev-libs/icu-59:= ) + >=dev-libs/libxml2-2.9.5:=[icu] + dev-libs/libxslt:= + dev-libs/nspr:= + >=dev-libs/nss-3.14.3:= + >=dev-libs/re2-0.2016.05.01:= + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) + >=media-libs/alsa-lib-1.0.19:= + media-libs/fontconfig:= + media-libs/freetype:= + >=media-libs/harfbuzz-1.4.2:=[icu(-)] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-libvpx? ( media-libs/libvpx:=[postproc,svc] ) + >=media-libs/openh264-1.6.0:= + pulseaudio? ( media-sound/pulseaudio:= ) + system-ffmpeg? ( + >=media-video/ffmpeg-3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + !=net-fs/samba-4.5.12 + media-libs/opus:= + ) + sys-apps/dbus:= + sys-apps/pciutils:= + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11:= + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXext:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXScrnSaver:= + x11-libs/libXtst:= + x11-libs/pango:= + app-arch/snappy:= + media-libs/flac:= + >=media-libs/libwebp-0.4.0:= + sys-libs/zlib:=[minizip] + kerberos? ( virtual/krb5 ) +" +# For nvidia-drivers blocker, see bug #413637 . +RDEPEND="${COMMON_DEPEND} + !=www-client/chromium-9999 + !<www-plugins/chrome-binary-plugins-57 + x11-misc/xdg-utils + virtual/opengl + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) +" +# dev-vcs/git - https://bugs.gentoo.org/593476 +# sys-apps/sandbox - https://crbug.com/586444 +DEPEND="${COMMON_DEPEND} + >=app-arch/gzip-1.7 + !arm? ( + dev-lang/yasm + ) + dev-lang/perl + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + >=net-libs/nodejs-4.6.1 + sys-apps/hwids[usb(+)] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + dev-vcs/git + $(python_gen_any_dep ' + dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}] + >=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/simplejson[${PYTHON_USEDEP}] + ') +" + +# Keep this in sync with the python_gen_any_dep call. +python_check_deps() { + has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && + has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]" +} + +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/bitstream-cyberbit +- 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. +" + +PATCHES=( + "${FILESDIR}/${PN}-widevine-r1.patch" + "${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch" + "${FILESDIR}/${PN}-gcc5-r4.patch" + "${FILESDIR}/${PN}-gn-bootstrap-r20.patch" +) + +pre_build_checks() { + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then + # bugs: #601654 + die "At least clang 3.9.1 is required" + fi + if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then + # bugs: #535730, #525374, #518668, #600288, #627356 + die "At least gcc 5.0 is required" + fi + fi + + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="3G" + CHECKREQS_DISK_BUILD="5G" + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + CHECKREQS_DISK_BUILD="25G" + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + eshopts_pop + check-reqs_pkg_setup +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + + # Make sure the build system will use the right python, bug #344367. + python-any-r1_pkg_setup + + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + 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 + + local keeplibs=( + base/third_party/dmg_fp + 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 + breakpad/src/third_party/curl + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + third_party/WebKit + third_party/analytics + third_party/angle + third_party/angle/src/common/third_party/base + third_party/angle/src/common/third_party/murmurhash + third_party/angle/src/third_party/compiler + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/trace_event + third_party/blink + third_party/boringssl + third_party/brotli + third_party/cacheinvalidation + third_party/catapult + third_party/catapult/third_party/polymer + third_party/catapult/third_party/py_vulcanize + third_party/catapult/third_party/py_vulcanize/third_party/rcssmin + third_party/catapult/third_party/py_vulcanize/third_party/rjsmin + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/ced + third_party/cld_2 + third_party/cld_3 + third_party/crc32c + third_party/cros_system_api + third_party/devscripts + third_party/dom_distiller_js + third_party/fips181 + third_party/flatbuffers + third_party/flot + third_party/freetype + third_party/glslang-angle + 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/jinja2 + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libXNVCtrl + third_party/libaddressinput + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libudev + third_party/libwebm + third_party/libxml/chromium + third_party/libyuv + third_party/lss + third_party/lzma_sdk + third_party/markupsafe + third_party/mesa + third_party/modp_b64 + third_party/mt19937ar + third_party/node + third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 + third_party/openmax_dl + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/build + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg20 + third_party/pdfium/third_party/libpng16 + third_party/pdfium/third_party/libtiff + third_party/ply + third_party/polymer + third_party/protobuf + third_party/protobuf/third_party/six + third_party/qcms + third_party/sfntly + third_party/skia + third_party/skia/third_party/gif + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/spirv-headers + third_party/spirv-tools-angle + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/subzero + third_party/usrsctp + third_party/vulkan + third_party/vulkan-validation-layers + third_party/web-animations-js + third_party/webdriver + third_party/webrtc + third_party/widevine + third_party/woff2 + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/valgrind + v8/third_party/inspector_protocol + + # gyp -> gn leftovers + base/third_party/libevent + third_party/adobe + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + third_party/yasm/run_yasm.py + ) + 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-libvpx; then + keeplibs+=( third_party/libvpx ) + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) + fi + if use tcmalloc; then + keeplibs+=( third_party/tcmalloc ) + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die +} + +bootstrap_gn() { + if tc-is-cross-compiler; then + local -x AR=${BUILD_AR} + local -x CC=${BUILD_CC} + local -x CXX=${BUILD_CXX} + local -x NM=${BUILD_NM} + local -x CFLAGS=${BUILD_CFLAGS} + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + einfo "Building GN..." + set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean + echo "$@" + "$@" || die +} + +src_configure() { + local myconf_gn="" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=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)" + + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp (bug #459932). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + harfbuzz-ng + libdrm + libjpeg + libpng + libwebp + libxml + libxslt + openh264 + re2 + snappy + yasm + 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-libvpx; then + gn_system_libraries+=( libvpx ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_gconf=false" + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" fieldtrial_testing_like_official_build=true" + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # 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 linux_use_bundled_binutils=false use_custom_libcxx=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. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + local google_default_client_id="329227923882.apps.googleusercontent.com" + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" + + local myarch="$(tc-arch)" + 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 + 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 neon arm-neon arm) + 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" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Prevent linker from running out of address space, bug #471810 . + if use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx build failures. Bug 530248, 544702, 546984. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 + fi + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + # 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\"" + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # https://bugs.gentoo.org/588596 + append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks) + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + if ! use system-ffmpeg; 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 + + bootstrap_gn + + einfo "Configuring Chromium..." + set -- out/Release/gn gen --args="${myconf_gn}" out/Release + echo "$@" + "$@" || die +} + +src_compile() { + local ninja_targets="chrome chromedriver" + if use suid; then + ninja_targets+=" chrome_sandbox" + fi + + # Build mksnapshot and pax-mark it. + if tc-is-cross-compiler; then + eninja -C out/Release host/mksnapshot || die + pax-mark m out/Release/host/mksnapshot + else + eninja -C out/Release mksnapshot || die + pax-mark m out/Release/mksnapshot + 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 ${ninja_targets} || die + + pax-mark m out/Release/chrome +} + +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 + + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.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 + + if use widevine; then + # These will be provided by chrome-binary-plugins + rm out/Release/libwidevinecdm*.so || die + fi + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins out/Release/*.so + + if ! use system-icu; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/resources + + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + + newman out/Release/chrome.1 chromium.1 + newman out/Release/chrome.1 chromium-browser.1 + + # Install icons and desktop entry. + local branding size + for size in 16 22 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 + + local mime_types="text/html;text/xml;application/xhtml+xml;" + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797 + mime_types+="x-scheme-handler/ftp;" # bug #412185 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393 + make_desktop_entry \ + chromium-browser \ + "Chromium" \ + chromium-browser \ + "Network;WebBrowser" \ + "MimeType=${mime_types}\nStartupWMClass=chromium-browser" + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog +} diff --git a/www-client/chromium/chromium-63.0.3230.0.ebuild b/www-client/chromium/chromium-63.0.3230.0.ebuild new file mode 100644 index 000000000000..eb1549c1ea90 --- /dev/null +++ b/www-client/chromium/chromium-63.0.3230.0.ebuild @@ -0,0 +1,655 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +PYTHON_COMPAT=( python2_7 ) + +CHROMIUM_LANGS="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 vi zh-CN zh-TW" + +inherit check-reqs chromium-2 eutils gnome2-utils flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs versionator xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="component-build cups gnome-keyring +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" + +COMMON_DEPEND=" + app-arch/bzip2:= + cups? ( >=net-print/cups-1.3.11:= ) + dev-libs/expat:= + dev-libs/glib:2 + system-icu? ( >=dev-libs/icu-59:= ) + >=dev-libs/libxml2-2.9.5:=[icu] + dev-libs/libxslt:= + dev-libs/nspr:= + >=dev-libs/nss-3.14.3:= + >=dev-libs/re2-0.2016.05.01:= + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= ) + >=media-libs/alsa-lib-1.0.19:= + media-libs/fontconfig:= + media-libs/freetype:= + >=media-libs/harfbuzz-1.4.2:=[icu(-)] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + system-libvpx? ( media-libs/libvpx:=[postproc,svc] ) + >=media-libs/openh264-1.6.0:= + pulseaudio? ( media-sound/pulseaudio:= ) + system-ffmpeg? ( + >=media-video/ffmpeg-3:= + || ( + media-video/ffmpeg[-samba] + >=net-fs/samba-4.5.10-r1[-debug(-)] + ) + !=net-fs/samba-4.5.12 + media-libs/opus:= + ) + sys-apps/dbus:= + sys-apps/pciutils:= + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11:= + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXext:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXScrnSaver:= + x11-libs/libXtst:= + x11-libs/pango:= + app-arch/snappy:= + media-libs/flac:= + >=media-libs/libwebp-0.4.0:= + sys-libs/zlib:=[minizip] + kerberos? ( virtual/krb5 ) +" +# For nvidia-drivers blocker, see bug #413637 . +RDEPEND="${COMMON_DEPEND} + !=www-client/chromium-9999 + !<www-plugins/chrome-binary-plugins-57 + x11-misc/xdg-utils + virtual/opengl + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 ) + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] ) +" +# dev-vcs/git - https://bugs.gentoo.org/593476 +# sys-apps/sandbox - https://crbug.com/586444 +DEPEND="${COMMON_DEPEND} + >=app-arch/gzip-1.7 + !arm? ( + dev-lang/yasm + ) + dev-lang/perl + >=dev-util/gperf-3.0.3 + >=dev-util/ninja-1.7.2 + >=net-libs/nodejs-4.6.1 + sys-apps/hwids[usb(+)] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig + dev-vcs/git + $(python_gen_any_dep ' + dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}] + >=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/simplejson[${PYTHON_USEDEP}] + ') +" + +# Keep this in sync with the python_gen_any_dep call. +python_check_deps() { + has_version --host-root "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && + has_version --host-root ">=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/html5lib[${PYTHON_USEDEP}]" && + has_version --host-root "dev-python/simplejson[${PYTHON_USEDEP}]" +} + +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/bitstream-cyberbit +- 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. +" + +PATCHES=( + "${FILESDIR}/${PN}-widevine-r1.patch" + "${FILESDIR}/${PN}-FORTIFY_SOURCE-r2.patch" + "${FILESDIR}/${PN}-gcc5-r4.patch" + "${FILESDIR}/${PN}-gn-bootstrap-r21.patch" + "${FILESDIR}/${PN}-clang-r1.patch" +) + +pre_build_checks() { + if [[ ${MERGE_TYPE} != binary ]]; then + local -x CPP="$(tc-getCXX) -E" + if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then + # bugs: #601654 + die "At least clang 3.9.1 is required" + fi + if tc-is-gcc; then + die "Known build break with gcc, see https://bugs.gentoo.org/633452 . Use clang as workaround." + fi + #if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then + # # bugs: #535730, #525374, #518668, #600288, #627356 + # die "At least gcc 5.0 is required" + #fi + fi + + # Check build requirements, bug #541816 and bug #471810 . + CHECKREQS_MEMORY="3G" + CHECKREQS_DISK_BUILD="5G" + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + CHECKREQS_DISK_BUILD="25G" + if ! use component-build; then + CHECKREQS_MEMORY="16G" + fi + fi + eshopts_pop + check-reqs_pkg_setup +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + + # Make sure the build system will use the right python, bug #344367. + python-any-r1_pkg_setup + + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + 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 + + local keeplibs=( + base/third_party/dmg_fp + 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 + chrome/third_party/mozilla_security_manager + courgette/third_party + net/third_party/mozilla_security_manager + net/third_party/nss + third_party/WebKit + third_party/analytics + third_party/angle + third_party/angle/src/common/third_party/base + third_party/angle/src/common/third_party/murmurhash + third_party/angle/src/third_party/compiler + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/trace_event + third_party/blink + third_party/boringssl + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + third_party/brotli + third_party/cacheinvalidation + third_party/catapult + third_party/catapult/third_party/polymer + third_party/catapult/third_party/py_vulcanize + third_party/catapult/third_party/py_vulcanize/third_party/rcssmin + third_party/catapult/third_party/py_vulcanize/third_party/rjsmin + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/ced + third_party/cld_2 + third_party/cld_3 + third_party/crc32c + third_party/cros_system_api + third_party/devscripts + third_party/dom_distiller_js + third_party/fips181 + third_party/flatbuffers + third_party/flot + third_party/freetype + third_party/glslang-angle + 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/jinja2 + third_party/jstemplate + third_party/khronos + third_party/leveldatabase + third_party/libXNVCtrl + third_party/libaddressinput + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libudev + third_party/libwebm + third_party/libxml/chromium + third_party/libyuv + third_party/lss + third_party/lzma_sdk + third_party/markupsafe + third_party/mesa + third_party/modp_b64 + third_party/mt19937ar + third_party/node + third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 + third_party/openmax_dl + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/base + third_party/pdfium/third_party/build + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg20 + third_party/pdfium/third_party/libpng16 + third_party/pdfium/third_party/libtiff + third_party/ply + third_party/polymer + third_party/protobuf + third_party/protobuf/third_party/six + third_party/qcms + third_party/sfntly + third_party/skia + third_party/skia/third_party/gif + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/spirv-headers + third_party/spirv-tools-angle + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/subzero + third_party/usrsctp + third_party/vulkan + third_party/vulkan-validation-layers + third_party/web-animations-js + third_party/webdriver + third_party/webrtc + third_party/widevine + third_party/woff2 + third_party/zlib/google + url/third_party/mozilla + v8/src/third_party/valgrind + v8/third_party/inspector_protocol + + # gyp -> gn leftovers + base/third_party/libevent + third_party/adobe + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + third_party/yasm/run_yasm.py + ) + 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-libvpx; then + keeplibs+=( third_party/libvpx ) + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) + fi + if use tcmalloc; then + keeplibs+=( third_party/tcmalloc ) + fi + + # Remove most bundled libraries. Some are still needed. + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die +} + +bootstrap_gn() { + if tc-is-cross-compiler; then + local -x AR=${BUILD_AR} + local -x CC=${BUILD_CC} + local -x CXX=${BUILD_CXX} + local -x NM=${BUILD_NM} + local -x CFLAGS=${BUILD_CFLAGS} + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + einfo "Building GN..." + set -- tools/gn/bootstrap/bootstrap.py -s -v --no-clean + echo "$@" + "$@" || die +} + +src_configure() { + local myconf_gn="" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=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)" + + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_libsrtp (bug #459932). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + harfbuzz-ng + libdrm + libjpeg + libpng + libwebp + libxml + libxslt + openh264 + re2 + snappy + yasm + 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-libvpx; then + gn_system_libraries+=( libvpx ) + fi + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_gconf=false" + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + + # TODO: link_pulseaudio=true for GN. + + myconf_gn+=" fieldtrial_testing_like_official_build=true" + + if tc-is-clang; then + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + else + myconf_gn+=" is_clang=false" + fi + + # 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 linux_use_bundled_binutils=false use_custom_libcxx=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. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + local google_default_client_id="329227923882.apps.googleusercontent.com" + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" + + local myarch="$(tc-arch)" + 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 + 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 neon arm-neon arm) + 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" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Prevent linker from running out of address space, bug #471810 . + if use x86; then + filter-flags "-g*" + fi + + # Prevent libvpx build failures. Bug 530248, 544702, 546984. + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 + fi + fi + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + # 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\"" + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # https://bugs.gentoo.org/588596 + append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks) + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + if ! use system-ffmpeg; 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 + + bootstrap_gn + + einfo "Configuring Chromium..." + set -- out/Release/gn gen --args="${myconf_gn}" out/Release + echo "$@" + "$@" || die +} + +src_compile() { + local ninja_targets="chrome chromedriver" + if use suid; then + ninja_targets+=" chrome_sandbox" + fi + + # Build mksnapshot and pax-mark it. + if tc-is-cross-compiler; then + eninja -C out/Release host/mksnapshot || die + pax-mark m out/Release/host/mksnapshot + else + eninja -C out/Release mksnapshot || die + pax-mark m out/Release/mksnapshot + 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 ${ninja_targets} || die + + pax-mark m out/Release/chrome +} + +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 + + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.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 + + if use widevine; then + # These will be provided by chrome-binary-plugins + rm out/Release/libwidevinecdm*.so || die + fi + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + doins out/Release/*.so + + if ! use system-icu; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/resources + + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + + # Install icons and desktop entry. + local branding size + for size in 16 22 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 + + local mime_types="text/html;text/xml;application/xhtml+xml;" + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797 + mime_types+="x-scheme-handler/ftp;" # bug #412185 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393 + make_desktop_entry \ + chromium-browser \ + "Chromium" \ + chromium-browser \ + "Network;WebBrowser" \ + "MimeType=${mime_types}\nStartupWMClass=chromium-browser" + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postrm() { + gnome2_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + gnome2_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog +} diff --git a/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch new file mode 100644 index 000000000000..8ebf42a46a84 --- /dev/null +++ b/www-client/chromium/files/chromium-FORTIFY_SOURCE-r2.patch @@ -0,0 +1,30 @@ +Drop _FORTIFY_SOURCE=2 from defines + +Gentoo toolchains enable this by default. Removing this prevents spammy +warnings about the macro being redefined. + +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1213,22 +1213,6 @@ + "__STDC_FORMAT_MACROS", + ] + +- if (!is_debug && !using_sanitizer && +- (!is_linux || !is_clang || is_official_build) && +- current_cpu != "s390x" && current_cpu != "s390" && +- current_cpu != "ppc64" && current_cpu != "ppc64" && +- current_cpu != "mips" && current_cpu != "mips64") { +- # _FORTIFY_SOURCE isn't really supported by Clang now, see +- # http://llvm.org/bugs/show_bug.cgi?id=16821. +- # It seems to work fine with Ubuntu 12 headers though, so use it in +- # official builds. +- # +- # 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 || is_ios) { + cflags_objc = [ "-Wobjc-missing-property-synthesis" ] + cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] diff --git a/www-client/chromium/files/chromium-atk-r1.patch b/www-client/chromium/files/chromium-atk-r1.patch new file mode 100644 index 000000000000..32fa29975b3e --- /dev/null +++ b/www-client/chromium/files/chromium-atk-r1.patch @@ -0,0 +1,11 @@ +--- a/content/browser/accessibility/browser_accessibility_auralinux.cc.orig 2017-07-27 06:28:01.090257874 +0000 ++++ b/content/browser/accessibility/browser_accessibility_auralinux.cc 2017-07-27 06:28:21.174653680 +0000 +@@ -571,7 +571,7 @@ + // it's best to leave this out rather than break people's builds: + #if defined(ATK_CHECK_VERSION) + #if ATK_CHECK_VERSION(2, 16, 0) +- atk_state_set_add_state(atk_state_set, ATK_STATE_READ_ONLY); ++ atk_state_set_add_state(state_set, ATK_STATE_READ_ONLY); + #endif + #endif + break; diff --git a/www-client/chromium/files/chromium-browser.xml b/www-client/chromium/files/chromium-browser.xml new file mode 100644 index 000000000000..2c95a5584b33 --- /dev/null +++ b/www-client/chromium/files/chromium-browser.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd"> +<default-apps> + <web-browsers> + <web-browser> + <name>Chromium</name> + <executable>chromium-browser</executable> + <command>chromium-browser %s</command> + <icon-name>chromium-browser</icon-name> + <run-in-terminal>false</run-in-terminal> + </web-browser> + </web-browsers> +</default-apps> diff --git a/www-client/chromium/files/chromium-clang-r1.patch b/www-client/chromium/files/chromium-clang-r1.patch new file mode 100644 index 000000000000..0fef167566a0 --- /dev/null +++ b/www-client/chromium/files/chromium-clang-r1.patch @@ -0,0 +1,21 @@ +--- a/build/config/compiler/BUILD.gn.orig 2017-10-04 08:50:15.014675936 +0000 ++++ b/build/config/compiler/BUILD.gn 2017-10-04 08:50:32.831024327 +0000 +@@ -429,18 +429,6 @@ + cflags += [ "-fcolor-diagnostics" ] + } + +- # TODO(hans): Remove this once Clang generates better optimized debug info by +- # default. https://crbug.com/765793 +- if (is_clang && !is_nacl && current_toolchain == host_toolchain && +- target_os != "chromeos") { +- cflags += [ +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=1", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. diff --git a/www-client/chromium/files/chromium-gcc-r1.patch b/www-client/chromium/files/chromium-gcc-r1.patch new file mode 100644 index 000000000000..2acd11ed5b08 --- /dev/null +++ b/www-client/chromium/files/chromium-gcc-r1.patch @@ -0,0 +1,14 @@ +diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h +index 99f230ce7e9a..de2415d402f5 100644 +--- a/base/numerics/safe_math_shared_impl.h ++++ b/base/numerics/safe_math_shared_impl.h +@@ -21,8 +21,7 @@ + #if !defined(__native_client__) && \ + ((defined(__clang__) && \ + ((__clang_major__ > 3) || \ +- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \ +- (defined(__GNUC__) && __GNUC__ >= 5)) ++ (__clang_major__ == 3 && __clang_minor__ >= 4)))) + #include "base/numerics/safe_math_clang_gcc_impl.h" + #define BASE_HAS_OPTIMIZED_SAFE_MATH (1) + #else diff --git a/www-client/chromium/files/chromium-gcc5-r1.patch b/www-client/chromium/files/chromium-gcc5-r1.patch new file mode 100644 index 000000000000..ec3e3e663436 --- /dev/null +++ b/www-client/chromium/files/chromium-gcc5-r1.patch @@ -0,0 +1,66 @@ +--- a/chrome/browser/devtools/devtools_file_system_indexer.cc ++++ b/chrome/browser/devtools/devtools_file_system_indexer.cc +@@ -34,7 +34,6 @@ using base::TimeDelta; + using base::TimeTicks; + using content::BrowserThread; + using std::map; +-using std::set; + using std::string; + using std::vector; + +@@ -191,7 +190,7 @@ vector<FilePath> Index::Search(const string& query) { + if (trigram != kUndefinedTrigram) + trigrams.push_back(trigram); + } +- set<FileId> file_ids; ++ std::set<FileId> file_ids; + bool first = true; + vector<Trigram>::const_iterator it = trigrams.begin(); + for (; it != trigrams.end(); ++it) { +@@ -203,7 +202,7 @@ vector<FilePath> Index::Search(const string& query) { + first = false; + continue; + } +- set<FileId> intersection = base::STLSetIntersection<set<FileId> >( ++ std::set<FileId> intersection = base::STLSetIntersection<std::set<FileId> >( + file_ids, index_[trigram]); + file_ids.swap(intersection); + } +diff --git a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +index 94bb9161ec85..e40c6387f72e 100644 +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast<uintptr_t>(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include <math.h> ++#include <cmath> + #include <numeric> + #include <vector> + diff --git a/www-client/chromium/files/chromium-gcc5-r2.patch b/www-client/chromium/files/chromium-gcc5-r2.patch new file mode 100644 index 000000000000..f2be2d5b8aeb --- /dev/null +++ b/www-client/chromium/files/chromium-gcc5-r2.patch @@ -0,0 +1,36 @@ +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast<uintptr_t>(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include <math.h> ++#include <cmath> + #include <numeric> + #include <vector> + diff --git a/www-client/chromium/files/chromium-gcc5-r3.patch b/www-client/chromium/files/chromium-gcc5-r3.patch new file mode 100644 index 000000000000..7605df6b145a --- /dev/null +++ b/www-client/chromium/files/chromium-gcc5-r3.patch @@ -0,0 +1,98 @@ +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast<uintptr_t>(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include <math.h> ++#include <cmath> + #include <numeric> + #include <vector> + +--- a/gpu/ipc/common/mailbox_struct_traits.h ++++ b/gpu/ipc/common/mailbox_struct_traits.h +@@ -15,7 +15,7 @@ namespace mojo { + template <> + struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> { + static base::span<const int8_t> name(const gpu::Mailbox& mailbox) { +- return mailbox.name; ++ return base::make_span(mailbox.name); + } + static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out); + }; +--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h ++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h +@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> { + static base::span<const float> matrix(const cc::FilterOperation& operation) { + if (operation.type() != cc::FilterOperation::COLOR_MATRIX) + return base::span<const float>(); +- return operation.matrix(); ++ return base::make_span(operation.matrix()); + } + + static base::span<const gfx::Rect> shape( +--- a/services/viz/public/cpp/compositing/quads_struct_traits.h ++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h +@@ -284,7 +284,7 @@ + + static base::span<const float> vertex_opacity(const cc::DrawQuad& input) { + const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); +- return quad->vertex_opacity; ++ return base::make_span(quad->vertex_opacity); + } + + static bool y_flipped(const cc::DrawQuad& input) { +--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp ++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp +@@ -480,7 +480,7 @@ WebString AccessControlErrorString( + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + diff --git a/www-client/chromium/files/chromium-gcc5-r4.patch b/www-client/chromium/files/chromium-gcc5-r4.patch new file mode 100644 index 000000000000..cb978d58a060 --- /dev/null +++ b/www-client/chromium/files/chromium-gcc5-r4.patch @@ -0,0 +1,98 @@ +--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h ++++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h +@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents { + allocation_length_(0), + data_(data), + data_length_(0), +- kind_(AllocationKind::kNormal), ++ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal), + deleter_(deleter) {} + DataHandle(void* allocation_base, + size_t allocation_length, +@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents { + reinterpret_cast<uintptr_t>(allocation_base_) + + allocation_length_); + switch (kind_) { +- case AllocationKind::kNormal: ++ case WTF::ArrayBufferContents::AllocationKind::kNormal: + DCHECK(deleter_); + deleter_(data_); + return; +- case AllocationKind::kReservation: ++ case WTF::ArrayBufferContents::AllocationKind::kReservation: + ReleaseReservedMemory(allocation_base_, allocation_length_); + return; + } +--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000 ++++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000 +@@ -10,7 +10,7 @@ + + #include "webrtc/modules/audio_processing/aec3/aec_state.h" + +-#include <math.h> ++#include <cmath> + #include <numeric> + #include <vector> + +--- a/gpu/ipc/common/mailbox_struct_traits.h ++++ b/gpu/ipc/common/mailbox_struct_traits.h +@@ -15,7 +15,7 @@ namespace mojo { + template <> + struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> { + static base::span<const int8_t> name(const gpu::Mailbox& mailbox) { +- return mailbox.name; ++ return base::make_span(mailbox.name); + } + static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out); + }; +--- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h ++++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h +@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> { + static base::span<const float> matrix(const cc::FilterOperation& operation) { + if (operation.type() != cc::FilterOperation::COLOR_MATRIX) + return base::span<const float>(); +- return operation.matrix(); ++ return base::make_span(operation.matrix()); + } + + static base::span<const gfx::Rect> shape( +--- a/services/viz/public/cpp/compositing/quads_struct_traits.h ++++ b/services/viz/public/cpp/compositing/quads_struct_traits.h +@@ -303,7 +303,7 @@ struct StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad> { + static base::span<const float> vertex_opacity(const viz::DrawQuad& input) { + const viz::TextureDrawQuad* quad = + viz::TextureDrawQuad::MaterialCast(&input); +- return quad->vertex_opacity; ++ return base::make_span(quad->vertex_opacity); + } + + static bool y_flipped(const viz::DrawQuad& input) { +--- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp ++++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp +@@ -480,7 +480,7 @@ WebString AccessControlErrorString( + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + +@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status, + } + default: + NOTREACHED(); +- return ""; ++ return WebString(); + } + } + diff --git a/www-client/chromium/files/chromium-glibc2.26-r1.patch b/www-client/chromium/files/chromium-glibc2.26-r1.patch new file mode 100644 index 000000000000..ec37a2816d51 --- /dev/null +++ b/www-client/chromium/files/chromium-glibc2.26-r1.patch @@ -0,0 +1,220 @@ +diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +index c80724d..052ce37 100644 +--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc ++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +@@ -36,19 +36,19 @@ namespace google_breakpad { + + // Minidump defines register structures which are different from the raw + // structures which we get from the kernel. These are platform specific +-// functions to juggle the ucontext and user structures into minidump format. ++// functions to juggle the ucontext_t and user structures into minidump format. + + #if defined(__i386__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_ESP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_EIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__x86_64) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RSP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__ARM_EABI__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + out->context_flags = MD_CONTEXT_ARM_FULL; + + out->iregs[0] = uc->uc_mcontext.arm_r0; +@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { + + #elif defined(__aarch64__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs) { + out->context_flags = MD_CONTEXT_ARM64_FULL; + +@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__mips__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + #if _MIPS_SIM == _ABI64 + out->context_flags = MD_CONTEXT_MIPS64_FULL; + #elif _MIPS_SIM == _ABIO32 +diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +index b6e77b4..2de80b7 100644 +--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h ++++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +@@ -39,23 +39,23 @@ + + namespace google_breakpad { + +-// Wraps platform-dependent implementations of accessors to ucontext structs. ++// Wraps platform-dependent implementations of accessors to ucontext_t structs. + struct UContextReader { +- static uintptr_t GetStackPointer(const struct ucontext* uc); ++ static uintptr_t GetStackPointer(const ucontext_t* uc); + +- static uintptr_t GetInstructionPointer(const struct ucontext* uc); ++ static uintptr_t GetInstructionPointer(const ucontext_t* uc); + +- // Juggle a arch-specific ucontext into a minidump format ++ // Juggle a arch-specific ucontext_t into a minidump format + // out: the minidump structure + // info: the collection of register structures. + #if defined(__i386__) || defined(__x86_64) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp); + #elif defined(__aarch64__) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs); + #else +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc); ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); + #endif + }; + +diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc +index 586d84e..05936d2 100644 +--- a/breakpad/src/client/linux/handler/exception_handler.cc ++++ b/breakpad/src/client/linux/handler/exception_handler.cc +@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + // Fill in all the holes in the struct to make Valgrind happy. + memset(&g_crash_context_, 0, sizeof(g_crash_context_)); + memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); +- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); ++ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); + #if defined(__aarch64__) +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + struct fpsimd_context* fp_ptr = + (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; + if (fp_ptr->head.magic == FPSIMD_MAGIC) { +@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + } + #elif !defined(__ARM_EABI__) && !defined(__mips__) + // FP state is not part of user ABI on ARM Linux. +- // In case of MIPS Linux FP state is already part of struct ucontext ++ // In case of MIPS Linux FP state is already part of ucontext_t + // and 'float_state' is not a member of CrashContext. +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + if (uc_ptr->uc_mcontext.fpregs) { + memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, + sizeof(g_crash_context_.float_state)); +@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { + // ExceptionHandler::HandleSignal(). + siginfo.si_code = SI_USER; + siginfo.si_pid = getpid(); +- struct ucontext context; ++ ucontext_t context; + getcontext(&context); + return HandleSignal(sig, &siginfo, &context); + } +diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h +index daba57e..25598a2 100644 +--- a/breakpad/src/client/linux/handler/exception_handler.h ++++ b/breakpad/src/client/linux/handler/exception_handler.h +@@ -191,11 +191,11 @@ class ExceptionHandler { + struct CrashContext { + siginfo_t siginfo; + pid_t tid; // the crashing thread. +- struct ucontext context; ++ ucontext_t context; + #if !defined(__ARM_EABI__) && !defined(__mips__) + // #ifdef this out because FP state is not part of user ABI for Linux ARM. + // In case of MIPS Linux FP state is already part of struct +- // ucontext so 'float_state' is not required. ++ // ucontext_t so 'float_state' is not required. + fpstate_t float_state; + #endif + }; +diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc +index 3764eec..80ad5c4 100644 +--- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc ++++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc +@@ -593,7 +593,7 @@ class MicrodumpWriter { + + void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } + +- const struct ucontext* const ucontext_; ++ const ucontext_t* const ucontext_; + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; + #endif +diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc +index d11ba6e..c716143 100644 +--- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc ++++ b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc +@@ -1323,7 +1323,7 @@ class MinidumpWriter { + const int fd_; // File descriptor where the minidum should be written. + const char* path_; // Path to the file where the minidum should be written. + +- const struct ucontext* const ucontext_; // also from the signal handler ++ const ucontext_t* const ucontext_; // also from the signal handler + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; // ditto + #endif diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r14.patch b/www-client/chromium/files/chromium-gn-bootstrap-r14.patch new file mode 100644 index 000000000000..3c44c858f78d --- /dev/null +++ b/www-client/chromium/files/chromium-gn-bootstrap-r14.patch @@ -0,0 +1,27 @@ +commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685 +Author: Pawel Hajdan, Jr <phajdan.jr@chromium.org> +Date: Wed Jul 26 21:51:54 2017 +0000 + + wip + +diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py +index 1390560f8e37..ff2ae57c46b0 100755 +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/metrics/histogram_base.cc', + 'base/metrics/histogram_functions.cc', + 'base/metrics/histogram_samples.cc', ++ 'base/metrics/histogram_snapshot_manager.cc', + 'base/metrics/metrics_hashes.cc', + 'base/metrics/persistent_histogram_allocator.cc', + 'base/metrics/persistent_memory_allocator.cc', +@@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/trace_event/heap_profiler_allocation_context_tracker.cc', + 'base/trace_event/heap_profiler_allocation_register.cc', + 'base/trace_event/heap_profiler_event_filter.cc', +- 'base/trace_event/heap_profiler_event_writer.cc', ++ 'base/trace_event/heap_profiler_heap_dump_writer.cc', + 'base/trace_event/heap_profiler_serialization_state.cc', + 'base/trace_event/heap_profiler_stack_frame_deduplicator.cc', + 'base/trace_event/heap_profiler_type_name_deduplicator.cc', diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r17.patch b/www-client/chromium/files/chromium-gn-bootstrap-r17.patch new file mode 100644 index 000000000000..6cfd08d58c23 --- /dev/null +++ b/www-client/chromium/files/chromium-gn-bootstrap-r17.patch @@ -0,0 +1,68 @@ +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options): + + write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h', + { ++ 'ENABLE_LOCATION_SOURCE': 'false', + 'ENABLE_PROFILING': 'false', + 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false' + }) +@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options): + + write_gn_ninja(os.path.join(tempdir, 'build.ninja'), + root_gen_dir, options) +- cmd = ['ninja', '-C', tempdir] ++ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err'] + if options.verbose: + cmd.append('-v') + +@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/metrics/bucket_ranges.cc', + 'base/metrics/field_trial.cc', + 'base/metrics/field_trial_param_associator.cc', ++ 'base/metrics/field_trial_params.cc', + 'base/metrics/histogram.cc', + 'base/metrics/histogram_base.cc', + 'base/metrics/histogram_functions.cc', +@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/task_scheduler/scheduler_lock_impl.cc', + 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc', + 'base/task_scheduler/scheduler_worker.cc', ++ 'base/task_scheduler/scheduler_worker_pool.cc', + 'base/task_scheduler/scheduler_worker_pool_impl.cc', + 'base/task_scheduler/scheduler_worker_pool_params.cc', + 'base/task_scheduler/scheduler_worker_stack.cc', +@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/third_party/icu/icu_utf.cc', + 'base/third_party/nspr/prtime.cc', + 'base/threading/post_task_and_reply_impl.cc', ++ 'base/threading/scoped_blocking_call.cc', + 'base/threading/sequence_local_storage_map.cc', + 'base/threading/sequenced_task_runner_handle.cc', + 'base/threading/sequenced_worker_pool.cc', +@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/unguessable_token.cc', + 'base/value_iterators.cc', + 'base/values.cc', +- 'base/value_iterators.cc', + 'base/vlog.cc', + ]) + +@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options): + static_libraries['base']['sources'].extend([ + 'base/memory/shared_memory_handle_posix.cc', + 'base/memory/shared_memory_posix.cc', +- 'base/memory/shared_memory_tracker.cc', + 'base/nix/xdg_util.cc', + 'base/process/internal_linux.cc', + 'base/process/memory_linux.cc', +@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options): + cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args] + check_call(cmd) + +- cmd = ['ninja', '-C', build_dir] ++ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err'] + if options.verbose: + cmd.append('-v') + cmd.append('gn') diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r19.patch b/www-client/chromium/files/chromium-gn-bootstrap-r19.patch new file mode 100644 index 000000000000..999fdb7eda76 --- /dev/null +++ b/www-client/chromium/files/chromium-gn-bootstrap-r19.patch @@ -0,0 +1,10 @@ +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -576,7 +576,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/trace_event/trace_log.cc', + 'base/trace_event/trace_log_constants.cc', + 'base/trace_event/tracing_agent.cc', +- 'base/tracked_objects.cc', + 'base/unguessable_token.cc', + 'base/value_iterators.cc', + 'base/values.cc', diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r20.patch b/www-client/chromium/files/chromium-gn-bootstrap-r20.patch new file mode 100644 index 000000000000..4b339e035459 --- /dev/null +++ b/www-client/chromium/files/chromium-gn-bootstrap-r20.patch @@ -0,0 +1,18 @@ +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -546,6 +546,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/timer/timer.cc', + 'base/trace_event/category_registry.cc', + 'base/trace_event/event_name_filter.cc', ++ 'base/trace_event/freed_object_tracker.cc', + 'base/trace_event/heap_profiler_allocation_context.cc', + 'base/trace_event/heap_profiler_allocation_context_tracker.cc', + 'base/trace_event/heap_profiler_allocation_register.cc', +@@ -605,7 +606,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/strings/string16.cc', + 'base/synchronization/condition_variable_posix.cc', + 'base/synchronization/lock_impl_posix.cc', +- 'base/synchronization/read_write_lock_posix.cc', + 'base/sys_info_posix.cc', + 'base/task_scheduler/task_tracker_posix.cc', + 'base/threading/platform_thread_internal_posix.cc', diff --git a/www-client/chromium/files/chromium-gn-bootstrap-r21.patch b/www-client/chromium/files/chromium-gn-bootstrap-r21.patch new file mode 100644 index 000000000000..f3127af09ec0 --- /dev/null +++ b/www-client/chromium/files/chromium-gn-bootstrap-r21.patch @@ -0,0 +1,28 @@ +diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py +index 601d5331698e..f154ed2ef3e6 100755 +--- a/tools/gn/bootstrap/bootstrap.py ++++ b/tools/gn/bootstrap/bootstrap.py +@@ -536,7 +536,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/threading/thread_local_storage.cc', + 'base/threading/thread_restrictions.cc', + 'base/threading/thread_task_runner_handle.cc', +- 'base/threading/worker_pool.cc', + 'base/time/clock.cc', + 'base/time/default_clock.cc', + 'base/time/default_tick_clock.cc', +@@ -546,7 +545,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/timer/timer.cc', + 'base/trace_event/category_registry.cc', + 'base/trace_event/event_name_filter.cc', +- 'base/trace_event/freed_object_tracker.cc', + 'base/trace_event/heap_profiler_allocation_context.cc', + 'base/trace_event/heap_profiler_allocation_context_tracker.cc', + 'base/trace_event/heap_profiler_allocation_register.cc', +@@ -611,7 +609,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/threading/platform_thread_internal_posix.cc', + 'base/threading/platform_thread_posix.cc', + 'base/threading/thread_local_storage_posix.cc', +- 'base/threading/worker_pool_posix.cc', + 'base/time/time_conversion_posix.cc', + 'base/trace_event/heap_profiler_allocation_register_posix.cc', + ]) diff --git a/www-client/chromium/files/chromium-launcher-r3.sh b/www-client/chromium/files/chromium-launcher-r3.sh new file mode 100644 index 000000000000..a4fc1a95394a --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r3.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Allow the user to override command-line flags, bug #357629. +# This is based on Debian's chromium-browser package, and is intended +# to be consistent with Debian. +for f in /etc/chromium/*; do + [[ -f ${f} ]] && source "${f}" +done + +# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system +# default CHROMIUM_FLAGS (from /etc/chromium/default). +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} + +# Let the wrapped binary know that it has been run through the wrapper +export CHROME_WRAPPER=$(readlink -f "$0") + +PROGDIR=${CHROME_WRAPPER%/*} + +case ":$PATH:" in + *:$PROGDIR:*) + # $PATH already contains $PROGDIR + ;; + *) + # Append $PROGDIR to $PATH + export PATH="$PATH:$PROGDIR" + ;; +esac + +if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then + # Running as root with HOME owned by root. + # Pass --user-data-dir to work around upstream failsafe. + CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium + ${CHROMIUM_FLAGS}" +fi + +# Set the .desktop file name +export CHROME_DESKTOP="chromium-browser-chromium.desktop" + +exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@" diff --git a/www-client/chromium/files/chromium-mojo-dep.patch b/www-client/chromium/files/chromium-mojo-dep.patch new file mode 100644 index 000000000000..bf618540d174 --- /dev/null +++ b/www-client/chromium/files/chromium-mojo-dep.patch @@ -0,0 +1,54 @@ +From f8e2c057ec6123b0a1d08294f41e78c427636b49 Mon Sep 17 00:00:00 2001 +From: Mike Bjorge <mbjorge@chromium.org> +Date: Mon, 7 Aug 2017 18:41:58 +0000 +Subject: [PATCH] Add mojo_blink dep from WebKit loader/. + +Now that loader has a direct dependency on the generated mojom-blink +headers (https://chromium-review.googlesource.com/c/577488), the loader/ +target should have a dep on the mojo target that generates the headers, +otherwise the build may fail depending on build order. + +All the other platform/ targets that depend on the mojom-blink headers +are directly included in the platform target, which has the necessary +dependency already. + +Bug: 746197 +Bug: 750883 +Change-Id: Ife1429ec649605aae3f7920560cec37f3a218154 +Reviewed-on: https://chromium-review.googlesource.com/602869 +Reviewed-by: Yutaka Hirano <yhirano@chromium.org> +Reviewed-by: Matt Falkenhagen <falken@chromium.org> +Commit-Queue: Mike Bjorge <mbjorge@chromium.org> +Cr-Commit-Position: refs/heads/master@{#492369} +--- + third_party/WebKit/Source/platform/loader/BUILD.gn | 1 + + third_party/WebKit/public/BUILD.gn | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/third_party/WebKit/Source/platform/loader/BUILD.gn b/third_party/WebKit/Source/platform/loader/BUILD.gn +index d483734b21cf..409befe884a8 100644 +--- a/third_party/WebKit/Source/platform/loader/BUILD.gn ++++ b/third_party/WebKit/Source/platform/loader/BUILD.gn +@@ -99,6 +99,7 @@ source_set("loader") { + "//components/link_header_util:link_header_util", + "//mojo/public/cpp/system:system", + "//storage/public/interfaces:interfaces_blink__generator", ++ "//third_party/WebKit/public:mojo_bindings_blink", + ] + + public_deps = [ +diff --git a/third_party/WebKit/public/BUILD.gn b/third_party/WebKit/public/BUILD.gn +index 84ee3ca9136d..cc847663efc6 100644 +--- a/third_party/WebKit/public/BUILD.gn ++++ b/third_party/WebKit/public/BUILD.gn +@@ -755,6 +755,7 @@ mojom("mojo_bindings") { + visibility_blink = [ + "//content/common:mojo_bindings_blink", + "//third_party/WebKit/Source/platform", ++ "//third_party/WebKit/Source/platform/loader", + ] + sources = [ + "platform/display_mode.mojom", +-- +2.14.0 + diff --git a/www-client/chromium/files/chromium-sysroot-r1.patch b/www-client/chromium/files/chromium-sysroot-r1.patch new file mode 100644 index 000000000000..b5ff0d8cba11 --- /dev/null +++ b/www-client/chromium/files/chromium-sysroot-r1.patch @@ -0,0 +1,14 @@ +--- a/chrome/installer/BUILD.gn ++++ b/chrome/installer/BUILD.gn +@@ -3,9 +3,10 @@ + # found in the LICENSE file. + + import("//build/config/chrome_build.gni") ++import("//build/config/sysroot.gni") + + declare_args() { +- enable_linux_installer = is_linux && !is_component_build ++ enable_linux_installer = is_linux && !is_component_build && use_sysroot + } + + # Meta-target that forwards to the installer of the correct type (if any). diff --git a/www-client/chromium/files/chromium-widevine-r1.patch b/www-client/chromium/files/chromium-widevine-r1.patch new file mode 100644 index 000000000000..f206878cf073 --- /dev/null +++ b/www-client/chromium/files/chromium-widevine-r1.patch @@ -0,0 +1,14 @@ +Minimal patch to get chromium to compile with widevine support + +https://bugs.gentoo.org/show_bug.cgi?id=547630 + +--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h ++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h +@@ -10,6 +10,7 @@ + + #include "third_party/widevine/cdm/widevine_cdm_common.h" + ++#define WIDEVINE_CDM_VERSION_STRING "unknown" + #define WIDEVINE_CDM_AVAILABLE + + #endif // WIDEVINE_CDM_VERSION_H_ diff --git a/www-client/chromium/files/chromium.default b/www-client/chromium/files/chromium.default new file mode 100644 index 000000000000..c140cdeb5666 --- /dev/null +++ b/www-client/chromium/files/chromium.default @@ -0,0 +1,5 @@ +# Default settings for chromium. This file is sourced by /bin/bash from +# the chromium launcher. + +# Options to pass to chromium. +#CHROMIUM_FLAGS="" diff --git a/www-client/chromium/files/toolchain/BUILD.gn b/www-client/chromium/files/toolchain/BUILD.gn new file mode 100644 index 000000000000..f88d3afdcfda --- /dev/null +++ b/www-client/chromium/files/toolchain/BUILD.gn @@ -0,0 +1,37 @@ +import("//build/toolchain/gcc_toolchain.gni") + +gcc_toolchain("default") { + cc = getenv("CC") + cxx = getenv("CXX") + ar = getenv("AR") + nm = getenv("NM") + ld = cxx + + extra_cflags = getenv("CFLAGS") + extra_cppflags = getenv("CPPFLAGS") + extra_cxxflags = getenv("CXXFLAGS") + extra_ldflags = getenv("LDFLAGS") + + toolchain_args = { + current_cpu = current_cpu + current_os = current_os + } +} + +gcc_toolchain("host") { + cc = getenv("BUILD_CC") + cxx = getenv("BUILD_CXX") + ar = getenv("BUILD_AR") + nm = getenv("BUILD_NM") + ld = cxx + + extra_cflags = getenv("BUILD_CFLAGS") + extra_cppflags = getenv("BUILD_CPPFLAGS") + extra_cxxflags = getenv("BUILD_CXXFLAGS") + extra_ldflags = getenv("BUILD_LDFLAGS") + + toolchain_args = { + current_cpu = current_cpu + current_os = current_os + } +} diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml new file mode 100644 index 000000000000..abb4eb267003 --- /dev/null +++ b/www-client/chromium/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>chromium@gentoo.org</email> + <name>Chromium in Gentoo Project</name> + </maintainer> + <longdescription>Chromium is the open-source web browser project behind Google Chrome</longdescription> + <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="hangouts">Enable support for Google Hangouts features such as screen sharing</flag> + <flag name="pic">Disable optimized assembly code that is not PIC friendly</flag> + <flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag> + <flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag> + <flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag> + <flag name="system-icu">Use system icu instead of the bundled one</flag> + <flag name="system-libvpx">Use system libvpx instead of the bundled one</flag> + <flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag> + <flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag> + </use> +</pkgmetadata> |