diff options
Diffstat (limited to 'www-client/chromium')
-rw-r--r-- | www-client/chromium/ChangeLog | 7 | ||||
-rw-r--r-- | www-client/chromium/Manifest | 10 | ||||
-rw-r--r-- | www-client/chromium/chromium-25.0.1364.152.ebuild | 530 |
3 files changed, 542 insertions, 5 deletions
diff --git a/www-client/chromium/ChangeLog b/www-client/chromium/ChangeLog index a2b0e1e09b16..e94e3344d29c 100644 --- a/www-client/chromium/ChangeLog +++ b/www-client/chromium/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for www-client/chromium # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.825 2013/03/04 01:53:16 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.826 2013/03/04 20:31:07 floppym Exp $ + +*chromium-25.0.1364.152 (04 Mar 2013) + + 04 Mar 2013; Mike Gilbert <floppym@gentoo.org> +chromium-25.0.1364.152.ebuild: + Stable channel bump. Use bundled libsrtp for bug 459932. 04 Mar 2013; Mike Gilbert <floppym@gentoo.org> files/chromium-mesa-r0.patch, files/chromium-mesa-r1.patch: diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index 3d8270612856..4fff4bd7aebb 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -20,24 +20,26 @@ AUX chromium-system-opus-r0.patch 1007 SHA256 87d1b6befff07d9a1dfca86e1304e0b80d AUX chromium-system-v8-r0.patch 397 SHA256 9b69099db82e3d4def410f887eb0b0b9006f4e68b59b8eb72d3b33c79a42da7c SHA512 83d44848d637d545aa851cdf2df81b24964d6febbde4ab28ff600f82ebd0c60a66059fc87a96bb1464363d2e2f098fe151ca3a9911f9ca2f3c11ba36bbf7e653 WHIRLPOOL 8fc87b7c1a0f8aca41ee17bef0d415d0f73619a2191807f5f0ce7340052ccb2fc0e34af033285fe62eb41b895b556b241f8c1182fa5daf68c6cc0d658a05af0f AUX chromium.default 148 SHA256 bdac1d32025d53158f96c8ad5bd71a58abdcf02f3a8759a43154e97e812fcdd1 SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739 WHIRLPOOL 2e51e864134426668cc73fc5081c35288677d8ce855b07dfbd3413397f9c43148a6d6096a9b7a617511388f87623a3ce7f3387103202db53876a74bccb9dbe6c AUX dot-gclient 253 SHA256 8c5750251ff681044cc584ef3768fe39c56c7877ade5fb9107298734126e62cf SHA512 96d4ffd01fec2773d7beaf2bc82b8eb969556f6e859e39136b4044521c5b8bfd36c13a7f2fcc64613935d4703d8ede8a56c7ce581a7732642cb8ee71039c801e WHIRLPOOL 6a65521487fa353a22f192c567b487c77a405e068c88898e0d8045b3de26bdd54ed736f104e495598e0cc8703d3f6abc80f8b2ea1e254007dfb18f50294e8c07 +DIST chromium-25.0.1364.152-lite.tar.bz2 125551576 SHA256 ff575ac5abafa370bb10b21cb7f542a1d27c399d7ce199b8eb61f814e8067af3 SHA512 c611943baf1723bd9adb51550315cc1e0d575582a89d53a992d79de33d1001acde50442c337cbecdaef2a35a522017423c257b77c7667c2ffaa8a2bb785872d1 WHIRLPOOL c87a3ed087e06396570f30bf86c74bc661fae8448f35744ea4d085d82ae8516061820a84b519fff777613a60a399fa23eb2183667a27714adb001a9634005172 DIST chromium-25.0.1364.97-lite.tar.bz2 125698044 SHA256 f39861718cc1a0bde0ffbe15ce7957404881f0881640eb3fd2f92e2f344a20d2 SHA512 7bc1f3cd31059aba3ed12e89b90139f2dfefb0b7a57557372602eb14281ff64d259f0b973c37d7c4e2d12af1698b3a701115c7d4b8ca3e6cc104d7edcbf2a5ba WHIRLPOOL 56dad03ffc44f25170d220794b46a545fb6a5ad19670ed5ef3d855a39e77aea917032838cfa4c377db716ef5cf2701bc7eb70bbf4c545317ccebc4f536222a8d DIST chromium-26.0.1410.12.tar.xz 140786668 SHA256 b242b2c6e1d65cf3582e7e164bb2b6717e9d49cbeb17edb91ca5bedf28dddfb1 SHA512 b47e6dd6df3b14c4aaa2daa48eb50f57b3e766ae8f6702849e2aec9cc5963f567e46813df7f3472c5db9582dd2b97667634361b2a6094a11189d8a5a6b547517 WHIRLPOOL 764d37e67aede3f864e543b3574623929198699e736f047b023aad4b0c48d8086a5c74c2e9744ecbd878a58c5dbec3b9a3caad8df894035c7cefaed30d1d64af DIST chromium-26.0.1410.19.tar.xz 140798820 SHA256 f901cc35c76995d7d70d50c8d20a9a2f3667d3fbc72ad9d43d4ef5a826881e2e SHA512 09f5c4cfbe9c15edc4a2a42fe91f711fdbebb30920a9dcd10b2344f3fa23b04adca35296e4c4618601806a29c4622cbb28255f5feaff89c9fc85f41393493ba9 WHIRLPOOL 0e7d5361a900530660c33f4d1528ecea53c991c6fc24948b401af4bb1c30edc79833f6784e30777dada7caa8f15754f324a744be835dbadefef4f59cc5521c2c DIST chromium-27.0.1423.0.tar.xz 141869340 SHA256 d346820b07acdd5e828329fb1cd6256987e26124c7b2fde369a41a8440cdd588 SHA512 49f9ee0fdb33fdf1131c4c3862aba0a056fb855631e272e54fa2942dab4ee990b7fc1886a08d8c6917bf9d3d442c128aa2273068ea6f76be43aed6d5f0f73b4f WHIRLPOOL 53e01b6029e6c5c818537e9948ba08f79921f2c6cc3c279a4374592d2176045a3a0ae93b1ce0ed7cfa1b442e1bc7e5711c4a68bce42b1a5d84996c6e18a82b66 DIST chromium-27.0.1425.0-lite.tar.xz 106076024 SHA256 9ca878cdb15b70f9d16dfe216263fd46bc0e017cec3d6252a58325bf862202b8 SHA512 ab409c89d1f1e704cd6a3b0797192ae466611429fad3de34d3800506c3994b3bb3c72322ad6655f2c6af38b7b36814764889b16081fabfe896ab3a807b015a03 WHIRLPOOL 5f76a971b560060672fb739e9677dfa0d5f70c0868e903e2f56447e8ed24cf5eb84da1be4686b1f5d3c74792eb09fe2766b701dbf03d0017024a26f56264a444 +EBUILD chromium-25.0.1364.152.ebuild 16261 SHA256 0b23102d7ed59fd0c807a390fe972483f0e3b3cde4e29a01c2754559ee5050b6 SHA512 902e0743f181443d62855f767b41abd5d27f34e862d1eebb66d2a1a8d85abb2de86e364d8df20d7dd3fffe992d9f1f483d8b975a396d8119f10d6dee2a212e11 WHIRLPOOL 6d99c3b9443a288e43562b11d4236ba8c8eae2b5600f2da10425d62500a95e8de530b1dfd6c0b7e644bd0443282a8804e647490ea4aee3d9cc418c3facfb0b55 EBUILD chromium-25.0.1364.97.ebuild 16217 SHA256 e24e128b98d30457d34f87eea73cad3bad3149dfcb34ee27d59279fac277516d SHA512 5e718c82d9653719df8ec4bb23781ec593a25c349f68316cb2591f2797e3baa5674ccc22b8c6e5ac5eb6657ba62a3b422c8d9ec958a7eb8f7b7542c6a57921e0 WHIRLPOOL de343741d0bf1160b27abc02b65d971c4acb73c3aabf17215e20cf6bb3048d78f52c4ff634a66c2ee363b3b5285c21ecf0da7e0ba12be13f7cbc35140560c711 EBUILD chromium-26.0.1410.12.ebuild 15857 SHA256 f65b8e135a2e43797cd676c37ea47d0edc202594345161be56aee864c630487b SHA512 9f256362ddba0bdf87dd51d2c06069374c58eabebc0d687908c12df180ed885b8dbabab75bad6e974c4cd34ea54b0b21acff6f42a94693f95bc60368ac415d21 WHIRLPOOL 0974bf5a2e10501db2346b14634d55bc41eb501c64e900bbe295436c21d83e1a457c8b53dddeb0bd078fd3fdfc2e16b2e9815d178f5be36d1ae73a4a2b6726f8 EBUILD chromium-26.0.1410.19.ebuild 15951 SHA256 df65e4ab8b10deda2112808c774fa9c8777bb17672076edac8874949fa40fb6c SHA512 c6b136d84d065d04cfd097ee480990f5fdb7acc6ee2a7e8b3de148dca34a68efd8a696f41ba80e019a46e12a665659ec7ee45908ed395498f563b8bf8f615b43 WHIRLPOOL eac62ae6b46a2e0e27d4bc80d350776356e9748a8cf4b90a18a59a807c25c1ad03614e23e94a933b1bc6ca1021df750603fcbf58956049a953e4b62f6ff5d4d4 EBUILD chromium-27.0.1423.0.ebuild 15853 SHA256 9aee36234878e57f0cd9dd5962b446aadc4cc2746f64d3a737a2ca34ed686d7e SHA512 2d8eb965ca4eab7c747431cbd8cb0e832a1021063b84df7e2cf382c406011846b244fb7ab665afb561cf7cb8d29f7cd3b7b6b429819048f900b5416faec9ef3c WHIRLPOOL 98e956e23be0e709911ef76b78ce92a21ab68f73fd1021425f16eb66d42e2b9668a827225613cfc2b99a0d7b749f46411faf9cbd9eb5c661cbd436cafb780ef3 EBUILD chromium-27.0.1425.0.ebuild 15960 SHA256 5361275df5947c2c7a972b559548f468954e6a9d2149ae13a9dc79e30fdbf615 SHA512 7e119ab01db9ed6edf77f03355ad0350b519798cc6537166664ba519be4e4e303c44e05acb5e83531aac8b8cf561eff64455b0596f33f75206d7db1e5c798513 WHIRLPOOL df51e88b3001c67170698d0a387d616f597dd7c858023efcee019a92d1d88ade5b695286e189d5b7cd271ffec58fe8888eca8f636de54599f698d9f64421df7c EBUILD chromium-9999-r1.ebuild 17658 SHA256 34b491dfa553851a96af610f027f512bdec811b539b8184d505ce5b4e6163289 SHA512 15793bd3e1d6a4672ad2a22996b1e9fc63811b1e46c35605ef556474dde61dc4323849c51daa6e1ec5e1746940dd6787ecabb978365a59193afb556a35ff49c4 WHIRLPOOL 243656b4da5449b19b5ed3d407bcee8932c076de2002e73fdcfe9067887ac6c33604bd8088cf58f944a1074926d08333fa3d467be957c3ad7385bb8be7bcb056 -MISC ChangeLog 57951 SHA256 8ba0810a531134b7806daba56dbbdb382c4438f77c69ad2af3a3a472093bb60a SHA512 2632fdbb91fde1e895d1a927810a6d8839b44a7f380dc63c99707d86e102b6e4891abc643c679fc666814374d2e11c4d2f0277ff5dd04bdbc85728bd129d4786 WHIRLPOOL b687341e74b41b396afc3d4b88c501913e0254e5c2c45126a967aaa0b9a3a2414a7c0247c1681b874246c58ddc9d4261d09fbc3c978f69381cb30f2c3f7a3ea2 +MISC ChangeLog 58131 SHA256 dbfe5f2aa6e193ad485e36b4b66d22b0182e900ce1f3dbdcb66145178f66b479 SHA512 f40664a0ad4923b3df9bb7b303c24838d95b297e455b1dc49bd30c801d36fc6e8c4babaeaf1b7ce554424a0526f2a88bacf61caea8fa5a5e4791a60a45cea79f WHIRLPOOL 3444402a850d7060f42052be98b95170d3cfaf9b86fc8abd1a6a2c62b31b0fef8e071df0fb477fc8117821964a1564ab17c2583602d39e1e60dfec3f5e6798f9 MISC ChangeLog-2011 114031 SHA256 e2c2c75785c5eaf78b6efe01e357279cbb7be0c89d00b4053f475e963916fa54 SHA512 8e14759348333bdbd7c338080472789d7bbb1ece1ca5817bac6306bdcb33dda1e23bf3055cbb3b7bcee9362b6900bba1ace7ba73f353570a74d3ed761c9198cc WHIRLPOOL 810b6423c53f892a4b0964380b8190dec2a8783d560a9cb0baec93a77d879186201055382ca05975ae242e16728529ae85445db003fdd425355292d17817157b MISC metadata.xml 516 SHA256 e5ca0cf3ef65ca054555c35bbb492d02b40138a907fae82aaa236f774fdef32f SHA512 580852722eb6ce8c660ea05b4b9a6a6ca04582c1438401e92425b6733e7a9423f048818153f59394081df6f89bee349da2b3c97a61e030f995df5ae00bc41b58 WHIRLPOOL 03ac4c1574b769bdeebe082281809af638223bdcbdea1bc2faef86f484e0f26298be769f6311023642257d49eb3d31f223c445b07dba5c6aa699775fcedff8ad -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iF4EAREIAAYFAlEz/pEACgkQC77qH+pIQ6RCQQEAqe0zzl5dlsysGgfH37zDpN2b -ZXOMb2cmQXexUotNfygA/iVe3wZeDY4JYxP0Q7Q1TceEgbBpsDAuRpNiHhhOvfeq -=EQd7 +iF4EAREIAAYFAlE1BIwACgkQC77qH+pIQ6SIIQD7BQZmxcPi3bVKDir20xT1KGki +96YYqIgMRC8qG3PF9N8A/3xpaLpddRjawDJyPPgMdYURAzQSpRfLDH17PauWVQ1h +=gEjj -----END PGP SIGNATURE----- diff --git a/www-client/chromium/chromium-25.0.1364.152.ebuild b/www-client/chromium/chromium-25.0.1364.152.ebuild new file mode 100644 index 000000000000..3189f6e659ad --- /dev/null +++ b/www-client/chromium/chromium-25.0.1364.152.ebuild @@ -0,0 +1,530 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-25.0.1364.152.ebuild,v 1.1 2013/03/04 20:31:07 floppym Exp $ + +EAPI="5" +PYTHON_DEPEND="2:2.6" + +CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA 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 chromium eutils flag-o-matic multilib \ + pax-utils portability python toolchain-funcs versionator virtualx + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="http://chromium.org/" +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="bindist cups gnome gnome-keyring kerberos pulseaudio selinux system-ffmpeg tcmalloc" + +RDEPEND="app-accessibility/speech-dispatcher + app-arch/bzip2 + cups? ( + dev-libs/libgcrypt + >=net-print/cups-1.3.11 + ) + >=dev-lang/v8-3.15.11.1:= + >=dev-libs/elfutils-0.149 + dev-libs/expat + >=dev-libs/icu-49.1.1-r1 + >=dev-libs/libevent-1.4.13 + dev-libs/libxml2[icu] + dev-libs/libxslt + >=dev-libs/nss-3.12.3 + dev-libs/protobuf + gnome? ( >=gnome-base/gconf-2.24.0 ) + gnome-keyring? ( >=gnome-base/gnome-keyring-2.28.2 ) + >=media-libs/alsa-lib-1.0.19 + media-libs/flac + media-libs/harfbuzz + >=media-libs/libjpeg-turbo-1.2.0-r1 + media-libs/libpng + media-libs/libvpx + >=media-libs/libwebp-0.2.0_rc1 + media-libs/opus + media-libs/speex + pulseaudio? ( media-sound/pulseaudio ) + system-ffmpeg? ( >=media-video/ffmpeg-1.0 ) + sys-apps/dbus + sys-apps/pciutils + sys-libs/zlib[minizip] + virtual/udev + virtual/libusb:1 + x11-libs/gtk+:2 + x11-libs/libXinerama + x11-libs/libXScrnSaver + x11-libs/libXtst + kerberos? ( virtual/krb5 ) + selinux? ( + sec-policy/selinux-chromium + sys-libs/libselinux + )" +DEPEND="${RDEPEND} + !arm? ( + >=dev-lang/nacl-toolchain-newlib-0_p9093 + dev-lang/yasm + ) + dev-lang/perl + dev-python/ply + dev-python/simplejson + >=dev-util/gperf-3.0.3 + sys-apps/hwids + >=sys-devel/bison-2.4.3 + sys-devel/flex + >=sys-devel/make-3.81-r2 + virtual/pkgconfig + test? ( dev-python/pyftpdlib )" +RDEPEND+=" + !=www-client/chromium-9999 + x11-misc/xdg-utils + virtual/ttf-fonts" + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +pkg_setup() { + if [[ "${SLOT}" == "0" ]]; then + CHROMIUM_SUFFIX="" + else + CHROMIUM_SUFFIX="-${SLOT}" + fi + CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}" + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX RANLIB + + # Make sure the build system will use the right python, bug #344367. + python_set_active_version 2 + python_pkg_setup + + if ! use selinux; then + chromium_suid_sandbox_check_kernel_config + fi + + if use bindist && ! use system-ffmpeg; then + elog "bindist enabled: H.264 video support will be disabled." + fi + if ! use bindist; then + elog "bindist disabled: Resulting binaries may not be legal to re-distribute." + fi +} + +src_prepare() { + if ! use arm; then + ebegin "Preparing NaCl newlib toolchain" + pushd "${T}" >/dev/null || die + mkdir sdk || die + cp -a /usr/$(get_libdir)/nacl-toolchain-newlib sdk/nacl-sdk || die + mkdir -p "${S}"/native_client/toolchain/.tars || die + tar czf "${S}"/native_client/toolchain/.tars/naclsdk_linux_x86.tgz sdk || die + popd >/dev/null || die + eend $? + fi + + # Fix build without NaCl glibc toolchain. + epatch "${FILESDIR}/${PN}-ppapi-r0.patch" + + # Fix build without NaCl pnacl toolchain. + epatch "${FILESDIR}/${PN}-no-pnacl-r0.patch" + + # Backport a fix for libpng shim headers. + epatch "${FILESDIR}/${PN}-system-libpng-r0.patch" + + # Fix build with system opus, bug #439884. + epatch "${FILESDIR}/${PN}-system-opus-r0.patch" + + # Backport fix for test expectations, bug #444886. + epatch "${FILESDIR}/${PN}-icu50-tests-r0.patch" + + # Missing gyp files in tarball. + # https://code.google.com/p/chromium/issues/detail?id=144823 + if [[ -e chrome/test/data/nacl/nacl_test_data.gyp ]]; then + die "tarball fixed, please remove workaround" + fi + + mkdir -p chrome/test/data/nacl + cat > chrome/test/data/nacl/nacl_test_data.gyp <<-EOF + { + 'targets': [ + { + 'target_name': 'nacl_tests', + 'type': 'none', + }, + ], + } + EOF + + epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch" + + epatch_user + + # Remove most bundled libraries. Some are still needed. + find third_party -type f \! -iname '*.gyp*' \ + \! -path 'third_party/WebKit/*' \ + \! -path 'third_party/angle/*' \ + \! -path 'third_party/cacheinvalidation/*' \ + \! -path 'third_party/cld/*' \ + \! -path 'third_party/cros_system_api/*' \ + \! -path 'third_party/ffmpeg/*' \ + \! -path 'third_party/flac/flac.h' \ + \! -path 'third_party/flot/*' \ + \! -path 'third_party/gpsd/*' \ + \! -path 'third_party/hunspell/*' \ + \! -path 'third_party/hyphen/*' \ + \! -path 'third_party/iccjpeg/*' \ + \! -path 'third_party/jsoncpp/*' \ + \! -path 'third_party/khronos/*' \ + \! -path 'third_party/leveldatabase/*' \ + \! -path 'third_party/libjingle/*' \ + \! -path 'third_party/libphonenumber/*' \ + \! -path 'third_party/libsrtp/*' \ + \! -path 'third_party/libusb/libusb.h' \ + \! -path 'third_party/libvpx/libvpx.h' \ + \! -path 'third_party/libxml/chromium/*' \ + \! -path 'third_party/libXNVCtrl/*' \ + \! -path 'third_party/libyuv/*' \ + \! -path 'third_party/lss/*' \ + \! -path 'third_party/mesa/*' \ + \! -path 'third_party/modp_b64/*' \ + \! -path 'third_party/mongoose/*' \ + \! -path 'third_party/mt19937ar/*' \ + \! -path 'third_party/npapi/*' \ + \! -path 'third_party/openmax/*' \ + \! -path 'third_party/opus/opus.h' \ + \! -path 'third_party/ots/*' \ + \! -path 'third_party/pywebsocket/*' \ + \! -path 'third_party/qcms/*' \ + \! -path 'third_party/re2/*' \ + \! -path 'third_party/scons-2.0.1/*' \ + \! -path 'third_party/sfntly/*' \ + \! -path 'third_party/skia/*' \ + \! -path 'third_party/smhasher/*' \ + \! -path 'third_party/speex/speex.h' \ + \! -path 'third_party/sqlite/*' \ + \! -path 'third_party/tcmalloc/*' \ + \! -path 'third_party/tlslite/*' \ + \! -path 'third_party/trace-viewer/*' \ + \! -path 'third_party/undoview/*' \ + \! -path 'third_party/v8-i18n/*' \ + \! -path 'third_party/webdriver/*' \ + \! -path 'third_party/webgl_conformance/*' \ + \! -path 'third_party/webrtc/*' \ + \! -path 'third_party/widevine/*' \ + \! -path 'third_party/x86inc/*' \ + -delete || die + + # Remove bundled v8. + find v8 -type f \! -iname '*.gyp*' -delete || die + + # The implementation files include v8 headers with full path, + # like #include "v8/include/v8.h". Make sure the system headers + # will be used. + # TODO: find a solution that can be upstreamed. + rmdir v8/include || die + ln -s /usr/include v8/include || die +} + +src_configure() { + local myconf="" + + # Never tell the build system to "enable" SSE2, it has a few unexpected + # additions, bug #336871. + myconf+=" -Ddisable_sse2=1" + + # Optional tcmalloc. Note it causes problems with e.g. NVIDIA + # drivers, bug #413637. + myconf+=" $(gyp_use tcmalloc linux_use_tcmalloc)" + + # Disable glibc Native Client toolchain, we don't need it (bug #417019). + myconf+=" -Ddisable_glibc=1" + + # TODO: also build with pnacl + myconf+=" -Ddisable_pnacl=1" + + # Make it possible to remove third_party/adobe. + echo > "${T}/flapper_version.h" || die + myconf+=" -Dflapper_version_h_file=${T}/flapper_version.h" + + # Use system-provided libraries. + # TODO: use_system_ffmpeg + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_ssl (http://crbug.com/58087). + # TODO: use_system_sqlite (http://crbug.com/22208). + myconf+=" + -Duse_system_bzip2=1 + -Duse_system_flac=1 + -Duse_system_harfbuzz=1 + -Duse_system_icu=1 + -Duse_system_libevent=1 + -Duse_system_libjpeg=1 + -Duse_system_libpng=1 + -Duse_system_libsrtp=0 + -Duse_system_libusb=1 + -Duse_system_libvpx=1 + -Duse_system_libwebp=1 + -Duse_system_libxml=1 + -Duse_system_minizip=1 + -Duse_system_opus=1 + -Duse_system_protobuf=1 + -Duse_system_speex=1 + -Duse_system_v8=1 + -Duse_system_xdg_utils=1 + -Duse_system_yasm=1 + -Duse_system_zlib=1 + $(gyp_use system-ffmpeg use_system_ffmpeg)" + + # Optional dependencies. + # TODO: linux_link_kerberos, bug #381289. + myconf+=" + $(gyp_use cups) + $(gyp_use gnome use_gconf) + $(gyp_use gnome-keyring use_gnome_keyring) + $(gyp_use gnome-keyring linux_link_gnome_keyring) + $(gyp_use kerberos) + $(gyp_use pulseaudio) + $(gyp_use selinux selinux)" + + # Use explicit library dependencies instead of dlopen. + # This makes breakages easier to detect by revdep-rebuild. + myconf+=" + -Dlinux_link_gsettings=1 + -Dlinux_link_libpci=1 + -Dlinux_link_libspeechd=1" + + # TODO: use the file at run time instead of effectively compiling it in. + myconf+=" + -Dusb_ids_path=/usr/share/misc/usb.ids" + + if ! use selinux; then + # Enable SUID sandbox. + myconf+=" + -Dlinux_sandbox_path=${CHROMIUM_HOME}/chrome_sandbox + -Dlinux_sandbox_chrome_path=${CHROMIUM_HOME}/chrome" + fi + + # Never use bundled gold binary. Disable gold linker flags for now. + myconf+=" + -Dlinux_use_gold_binary=0 + -Dlinux_use_gold_flags=0" + + if ! use bindist && ! use system-ffmpeg; then + # Enable H.624 support in bundled ffmpeg. + myconf+=" -Dproprietary_codecs=1 -Dffmpeg_branding=Chrome" + fi + + # 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. + myconf+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc + -Dgoogle_default_client_id=329227923882.apps.googleusercontent.com + -Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu" + + local myarch="$(tc-arch)" + if [[ $myarch = amd64 ]] ; then + myconf+=" -Dtarget_arch=x64" + elif [[ $myarch = x86 ]] ; then + myconf+=" -Dtarget_arch=ia32" + elif [[ $myarch = arm ]] ; then + # TODO: re-enable NaCl (NativeClient). + myconf+=" -Dtarget_arch=arm + -Darmv7=0 + -Darm_neon=0 + -Ddisable_nacl=1" + 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+=" -Dwerror=" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + fi + + egyp_chromium ${myconf} || die +} + +src_compile() { + local test_targets + for x in base cacheinvalidation crypto \ + googleurl gpu media net printing sql; do + test_targets+=" ${x}_unittests" + done + + local make_targets="chrome chromedriver" + if ! use selinux; then + make_targets+=" chrome_sandbox" + fi + if use test; then + make_targets+=$test_targets + fi + + # See bug #410883 for more info about the .host mess. + emake ${make_targets} BUILDTYPE=Release V=1 \ + CC.host="$(tc-getCC)" CFLAGS.host="${CFLAGS}" \ + CXX.host="$(tc-getCXX)" CXXFLAGS.host="${CXXFLAGS}" \ + LINK.host="$(tc-getCXX)" LDFLAGS.host="${LDFLAGS}" \ + AR.host="$(tc-getAR)" || die + + pax-mark m out/Release/chrome + if use test; then + for x in $test_targets; do + pax-mark m out/Release/${x} + done + fi +} + +src_test() { + # For more info see bug #350349. + local mylocale='en_US.utf8' + if ! locale -a | grep -q "$mylocale"; then + eerror "${PN} requires ${mylocale} locale for tests" + eerror "Please read the following guides for more information:" + eerror " http://www.gentoo.org/doc/en/guide-localization.xml" + eerror " http://www.gentoo.org/doc/en/utf-8.xml" + die "locale ${mylocale} is not supported" + fi + + # For more info see bug #370957. + if [[ $UID -eq 0 ]]; then + die "Tests must be run as non-root. Please use FEATURES=userpriv." + fi + + runtest() { + local cmd=$1 + shift + local filter="--gtest_filter=$(IFS=:; echo "-${*}")" + einfo "${cmd}" "${filter}" + LC_ALL="${mylocale}" VIRTUALX_COMMAND="${cmd}" virtualmake "${filter}" + } + + local excluded_base_unittests=( + "ICUStringConversionsTest.*" # bug #350347 + "MessagePumpLibeventTest.*" # bug #398591 + ) + runtest out/Release/base_unittests "${excluded_base_unittests[@]}" + + runtest out/Release/cacheinvalidation_unittests + runtest out/Release/crypto_unittests + runtest out/Release/googleurl_unittests + runtest out/Release/gpu_unittests + + # TODO: re-enable when we get the test data in a separate tarball. + # runtest out/Release/media_unittests + + # local excluded_net_unittests=( + # "NetUtilTest.IDNToUnicode*" # bug 361885 + # "NetUtilTest.FormatUrl*" # see above + # "DnsConfigServiceTest.GetSystemConfig" # bug #394883 + # "CertDatabaseNSSTest.ImportServerCert_SelfSigned" # bug #399269 + # "URLFetcher*" # bug #425764 + # "HTTPSOCSPTest.*" # bug #426630 + # "HTTPSEVCRLSetTest.*" # see above + # "HTTPSCRLSetTest.*" # see above + #) + # runtest out/Release/net_unittests "${excluded_net_unittests[@]}" + + runtest out/Release/printing_unittests + runtest out/Release/sql_unittests +} + +src_install() { + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome || die + + if ! use selinux; then + doexe out/Release/chrome_sandbox || die + fperms 4755 "${CHROMIUM_HOME}/chrome_sandbox" + fi + + doexe out/Release/chromedriver || die + + 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 + + newexe "${FILESDIR}"/chromium-launcher-r2.sh chromium-launcher.sh || die + if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then + sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" \ + -i "${ED}"/"${CHROMIUM_HOME}"/chromium-launcher.sh || die + sed "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g" \ + -i "${ED}"/"${CHROMIUM_HOME}"/chromium-launcher.sh || die + sed "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:" \ + -i "${ED}"/"${CHROMIUM_HOME}"/chromium-launcher.sh || die + fi + + # 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${CHROMIUM_SUFFIX} || die + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die + + # Allow users to override command-line options, bug #357629. + dodir /etc/chromium || die + insinto /etc/chromium + newins "${FILESDIR}/chromium.default" "default" || die + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.pak || die + + doins -r out/Release/locales || die + doins -r out/Release/resources || die + + newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die + newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die + + if ! use system-ffmpeg; then + doexe out/Release/libffmpegsumo.so || die + fi + + # 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${CHROMIUM_SUFFIX}.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_SUFFIX} \ + "Chromium${CHROMIUM_SUFFIX}" \ + chromium-browser${CHROMIUM_SUFFIX} \ + "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). + if use gnome; then + dodir /usr/share/gnome-control-center/default-apps || die + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die + if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then + sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \ + "${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml + fi + fi +} |