From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5E9AA13835A for ; Sun, 28 Jun 2020 02:21:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8756EE08DD; Sun, 28 Jun 2020 02:21:09 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5D1F3E08DD for ; Sun, 28 Jun 2020 02:21:09 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0378334F210 for ; Sun, 28 Jun 2020 02:21:08 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 89E142A5 for ; Sun, 28 Jun 2020 02:21:06 +0000 (UTC) From: "Mike Gilbert" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Mike Gilbert" Message-ID: <1593310851.7df14bbbf6f80e1fca0dc66dcf4c4530085cea9b.floppym@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/, www-client/chromium/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: www-client/chromium/Manifest www-client/chromium/chromium-84.0.4147.45-r1.ebuild www-client/chromium/chromium-84.0.4147.45.ebuild www-client/chromium/chromium-84.0.4147.68.ebuild www-client/chromium/files/chromium-launcher-r4.sh www-client/chromium/metadata.xml X-VCS-Directories: www-client/chromium/ www-client/chromium/files/ X-VCS-Committer: floppym X-VCS-Committer-Name: Mike Gilbert X-VCS-Revision: 7df14bbbf6f80e1fca0dc66dcf4c4530085cea9b X-VCS-Branch: master Date: Sun, 28 Jun 2020 02:21:06 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 86aa2713-1cca-4401-8b9f-35db18c5daeb X-Archives-Hash: bcb9e59af28aea155989d08c96467f35 commit: 7df14bbbf6f80e1fca0dc66dcf4c4530085cea9b Author: Stephan Hartmann googlemail com> AuthorDate: Fri Jun 19 17:13:58 2020 +0000 Commit: Mike Gilbert gentoo org> CommitDate: Sun Jun 28 02:20:51 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7df14bbb www-client/chromium: beta channel bump to 84.0.4147.68 Closes: https://bugs.gentoo.org/689584 Closes: https://bugs.gentoo.org/655158 Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Stephan Hartmann googlemail.com> Signed-off-by: Mike Gilbert gentoo.org> www-client/chromium/Manifest | 4 +- www-client/chromium/chromium-84.0.4147.45.ebuild | 804 --------------------- ...7.45-r1.ebuild => chromium-84.0.4147.68.ebuild} | 109 ++- www-client/chromium/files/chromium-launcher-r4.sh | 52 ++ www-client/chromium/metadata.xml | 3 + 5 files changed, 140 insertions(+), 832 deletions(-) diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index ec6120b2d52..39875559fb8 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -1,6 +1,6 @@ DIST chromium-83.0.4103.106.tar.xz 802630620 BLAKE2B b145fd04347ef252778c99931d2e6aebc4cb9c3b4340db13ede074ac0631fef3c530b6b8c348ad33576a1da828817a590339206cf941729ee01444350bec1683 SHA512 37d0298ec6794f753bc280352c9ea45d57dd5050240d468fd2a7465b2021ebb598cdc6c4538050dd1d626bcd4a146af87fb837619e08766d38d21821605bd3a8 DIST chromium-83.0.4103.116.tar.xz 802626772 BLAKE2B 6890d8f4a4a9b12ab56a63e037129f6b77f03f95a841494505fdbbe212b0dd756e5558bddd7ee186669929c6069568c76b70b179fe4a58ccad465f2d4677d6e5 SHA512 dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f -DIST chromium-84-patchset-1.tar.xz 17652 BLAKE2B 17008a5d7b81fd9dd3934f815922a10c4b33bd4b3a13b350011d60627133f2179c2e70a6e74ef11ddf9b68b83b988fad3df15e9307f871006ccb7aca52c819da SHA512 2a45183c60794256b150bf67aa8395bab113e77b338775f737ebd8a822fd17be776b786ad12ffa759774a8876e0976a1c285ef90257e9532cfd9952baba7096d -DIST chromium-84.0.4147.45.tar.xz 845103524 BLAKE2B 8b1e1c052b2ff3968fc4f13215551b9bd53b2fe89f15512d064267e82e71909f267d4f91665b456ad84ec537601e4fbc097eebc45b461f967aa8fe997da2716c SHA512 d43ef067ed855813d3f003cc8f7302d433c924a58ea79bdafa3ec1fe35b4f71a24c4493389563bbc88744ee8fce9b1664c62548e975e0e5a97c823f90aacfe30 +DIST chromium-84-patchset-3.tar.xz 20148 BLAKE2B d910570b43f63bcf4ead90ca4e4005a08d7c85b5b4e7af2a70ec4bc18265cbe8b075523878710075cfee4e0631eb3374e1e6d06251f4bf03377954807b1951e9 SHA512 316db8b0359b10a988242a0d665475d912fa9b610a547478d8c39b337afc02780a54d7024e231eb4fd402063cf439f6e2b4bb92a4968c8e0c3e69d84a2ae1664 +DIST chromium-84.0.4147.68.tar.xz 845188784 BLAKE2B a0185a5aacc1297f6240e2d887e980c69ba1219267714fb82c87e2ec31e4a3bee24ea9c059fc4f56dcc5c3e576d0baf5b59ec3576fc266daac583cf2b2917b56 SHA512 c5304dfa76ec9bf1d7e96116b6560b77d636eaa226acf7be46798f4b161c6aba90c54bec797dfbf1e48ece46d4e52e44737ed68457f9b10bbc11658a9020bffd DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf DIST xcb-proto-1.14.tar.xz 143384 BLAKE2B 60212b0f0ce039a64a2e6cbbc78564eeffc57cff20987b37dc780d8d97ae888a7dbfbbaadc6e0e4bedfc5d1e360f16318e3825ad8406de668d9c7c66cf7f4b5d SHA512 de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690 diff --git a/www-client/chromium/chromium-84.0.4147.45.ebuild b/www-client/chromium/chromium-84.0.4147.45.ebuild deleted file mode 100644 index d50cafdca25..00000000000 --- a/www-client/chromium/chromium-84.0.4147.45.ebuild +++ /dev/null @@ -1,804 +0,0 @@ -# Copyright 2009-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -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 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils - -DESCRIPTION="Open-source version of Google Chrome web browser" -HOMEPAGE="https://chromium.org/" -XCB_PROTO_VERSION="1.14" -PATCHSET="1" -PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz - https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip - https://www.x.org/releases/individual/proto/xcb-proto-${XCB_PROTO_VERSION}.tar.xz - https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" -RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" -REQUIRED_USE="component-build? ( !suid )" - -COMMON_DEPEND=" - >=app-accessibility/at-spi2-atk-2.26:2 - app-arch/bzip2:= - cups? ( >=net-print/cups-1.3.11:= ) - >=dev-libs/atk-2.26 - dev-libs/expat:= - dev-libs/glib:2 - >=dev-libs/libxml2-2.9.4-r3:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - >=media-libs/alsa-lib-1.0.19:= - media-libs/fontconfig:= - media-libs/freetype:= - >=media-libs/harfbuzz-2.4.0:0=[icu(-)] - media-libs/libjpeg-turbo:= - media-libs/libpng:= - media-libs/mesa:=[gbm] - system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] ) - pulseaudio? ( media-sound/pulseaudio:= ) - system-ffmpeg? ( - >=media-video/ffmpeg-4:= - || ( - media-video/ffmpeg[-samba] - >=net-fs/samba-4.5.10-r1[-debug(-)] - ) - >=media-libs/opus-1.3.1:= - ) - 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:= - 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} - x11-misc/xdg-utils - virtual/opengl - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) - tcmalloc? ( ! gn leftovers - base/third_party/libevent - third_party/adobe - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - if ! use system-ffmpeg; then - keeplibs+=( third_party/ffmpeg third_party/opus ) - fi - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - if ! use system-libvpx; then - keeplibs+=( third_party/libvpx ) - keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc ) - - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - ./generate_gni.sh || die - popd >/dev/null || die - fi - fi - if use tcmalloc; then - keeplibs+=( third_party/tcmalloc ) - fi - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then - keeplibs+=( third_party/libxml ) - keeplibs+=( third_party/libxslt ) - keeplibs+=( third_party/openh264 ) - keeplibs+=( third_party/re2 ) - keeplibs+=( third_party/snappy ) - if use system-icu; then - keeplibs+=( third_party/icu ) - fi - fi - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die -} - -src_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then - # Force clang since gcc is pretty broken at the moment. - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then - die "Compiling with sys-libs/libcxx requires clang." - fi - myconf_gn+=" is_clang=false" - fi - - # Define a custom toolchain for GN - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # 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 -- remove sources (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 - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libdrm - libjpeg - libpng - libwebp - 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 - if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then - # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++ - gn_system_libraries+=( libxml ) - gn_system_libraries+=( libxslt ) - gn_system_libraries+=( openh264 ) - gn_system_libraries+=( re2 ) - gn_system_libraries+=( snappy ) - fi - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=true" - - # Disable deprecated libgnome-keyring dependency, bug #713012 - myconf_gn+=" use_gnome_keyring=false" - - # Optional dependencies. - myconf_gn+=" closure_compile=$(usex closure-compile true false)" - 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_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" - - # 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 use_custom_libcxx=false" - - # Disable forced lld, bug 641556 - myconf_gn+=" use_lld=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)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - if ! use component-build || use x86; then - filter-flags "-g*" - fi - - # Prevent libvpx 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 -mno-fma -mno-fma4 - fi - fi - - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then - append-flags -stdlib=libc++ - append-ldflags -stdlib=libc++ - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = x86 ]] ; then - myconf_gn+=" target_cpu=\"x86\"" - ffmpeg_target_arch=ia32 - - # This is normally defined by compiler_cpu_abi in - # build/config/compiler/BUILD.gn, but we patch that part out. - append-flags -msse2 -mfpmath=sse -mmmx - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = arm ]] ; then - myconf_gn+=" target_cpu=\"arm\"" - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - #if ! use system-ffmpeg; then - if false; then - local build_ffmpeg_args="" - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then - build_ffmpeg_args+=" --disable-asm" - fi - - # Re-configure bundled ffmpeg. See bug #491378 for example reasons. - einfo "Configuring bundled ffmpeg..." - pushd third_party/ffmpeg > /dev/null || die - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die - chromium/scripts/copy_config.sh || die - chromium/scripts/generate_gn.py || die - popd > /dev/null || die - fi - - # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470 - append-cxxflags $(test-flags-CXX -flax-vector-conversions=all) - - # Explicitly disable ICU data file support for system-icu builds. - if use system-icu; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Use bundled xcb-proto, bug #727000 - myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\"" - - einfo "Configuring Chromium..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # https://bugs.gentoo.org/717456 - # Use bundled xcb-proto, because system xcb-proto doesn't have Python 2.7 support - local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}${PYTHONPATH+:}${PYTHONPATH}" - - #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die - - # Build mksnapshot and pax-mark it. - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver - use suid && eninja -C out/Release chrome_sandbox - - pax-mark m out/Release/chrome - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die -} - -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 - - 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 - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog -} diff --git a/www-client/chromium/chromium-84.0.4147.45-r1.ebuild b/www-client/chromium/chromium-84.0.4147.68.ebuild similarity index 93% rename from www-client/chromium/chromium-84.0.4147.45-r1.ebuild rename to www-client/chromium/chromium-84.0.4147.68.ebuild index 966c8a05a06..fa4201cf1b1 100644 --- a/www-client/chromium/chromium-84.0.4147.45-r1.ebuild +++ b/www-client/chromium/chromium-84.0.4147.68.ebuild @@ -13,7 +13,7 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util DESCRIPTION="Open-source version of Google Chrome web browser" HOMEPAGE="https://chromium.org/" XCB_PROTO_VERSION="1.14" -PATCHSET="1" +PATCHSET="3" PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}" SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip @@ -23,15 +23,31 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P} LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine" +IUSE="+closure-compile component-build cups cpu_flags_arm_neon +hangouts headless kerberos ozone pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine" RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" -REQUIRED_USE="component-build? ( !suid )" +REQUIRED_USE=" + component-build? ( !suid ) + wayland? ( ozone ) +" + +COMMON_X_DEPEND=" + media-libs/mesa:=[gbm] + 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/libXtst:= + x11-libs/libxcb:= +" COMMON_DEPEND=" - >=app-accessibility/at-spi2-atk-2.26:2 app-arch/bzip2:= cups? ( >=net-print/cups-1.3.11:= ) - >=dev-libs/atk-2.26 dev-libs/expat:= dev-libs/glib:2 >=dev-libs/libxml2-2.9.4-r3:=[icu] @@ -43,11 +59,11 @@ COMMON_DEPEND=" >=media-libs/harfbuzz-2.4.0:0=[icu(-)] media-libs/libjpeg-turbo:= media-libs/libpng:= - media-libs/mesa:=[gbm] system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc,svc] ) pulseaudio? ( media-sound/pulseaudio:= ) system-ffmpeg? ( - >=media-video/ffmpeg-4:= + >=media-video/ffmpeg-4:0 + =net-fs/samba-4.5.10-r1[-debug(-)] @@ -59,23 +75,31 @@ COMMON_DEPEND=" 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:= media-libs/flac:= >=media-libs/libwebp-0.4.0:= sys-libs/zlib:=[minizip] kerberos? ( virtual/krb5 ) + ozone? ( + !headless? ( + ${COMMON_X_DEPEND} + x11-libs/gtk+:3[wayland?,X] + wayland? ( + dev-libs/wayland:= + dev-libs/libffi:= + x11-libs/libdrm:= + x11-libs/libxkbcommon:= + ) + ) + ) + !ozone? ( + >=app-accessibility/at-spi2-atk-2.26:2 + >=app-accessibility/at-spi2-core-2.26:2 + >=dev-libs/atk-2.26 + x11-libs/gtk+:3[X] + x11-libs/libXScrnSaver:= + ${COMMON_X_DEPEND} + ) " # For nvidia-drivers blocker, see bug #413637 . RDEPEND="${COMMON_DEPEND} @@ -160,6 +184,10 @@ them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS in /etc/chromium/default. " +PATCHES=( + "${FILESDIR}/chromium-84-mediaalloc.patch" +) + pre_build_checks() { if [[ ${MERGE_TYPE} != binary ]]; then local -x CPP="$(tc-getCXX) -E" @@ -206,7 +234,6 @@ src_prepare() { python_setup eapply "${WORKDIR}/patches" - eapply "${FILESDIR}"/chromium-84-mediaalloc.patch default @@ -434,6 +461,9 @@ src_prepare() { if use tcmalloc; then keeplibs+=( third_party/tcmalloc ) fi + if use ozone && use wayland && ! use headless ; then + keeplibs+=( third_party/wayland ) + fi if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then keeplibs+=( third_party/libxml ) keeplibs+=( third_party/libxslt ) @@ -658,9 +688,6 @@ src_configure() { # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470 append-cxxflags $(test-flags-CXX -flax-vector-conversions=all) - # Silence lots of GCC warnings upstream doesn't seem to care about - append-cxxflags -Wno-invalid-offsetof -Wno-attributes -Wno-pragmas - # Explicitly disable ICU data file support for system-icu builds. if use system-icu; then myconf_gn+=" icu_use_data_file=false" @@ -669,6 +696,26 @@ src_configure() { # Use bundled xcb-proto, bug #727000 myconf_gn+=" xcbproto_path=\"${WORKDIR}/xcb-proto-${XCB_PROTO_VERSION}/src\"" + # Enable ozone support + if use ozone; then + myconf_gn+=" use_ozone=true ozone_auto_platforms=false" + myconf_gn+=" ozone_platform_headless=true" + if ! use headless; then + myconf_gn+=" use_system_libdrm=true" + myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" + myconf_gn+=" ozone_platform_x11=true" + myconf_gn+=" ozone_platform_headless=true" + if use wayland; then + myconf_gn+=" use_system_minigbm=true use_xkbcommon=true" + myconf_gn+=" ozone_platform=\"wayland\"" + else + myconf_gn+=" ozone_platform=\"x11\"" + fi + else + myconf_gn+=" ozone_platform=\"headless\"" + fi + fi + einfo "Configuring Chromium..." set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release echo "$@" @@ -734,8 +781,14 @@ src_install() { 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 + ozone_auto_session () { + use ozone && use wayland && ! use headless && echo true || echo false + } + local sedargs=( -e + "s:/usr/lib/:/usr/$(get_libdir)/:g; + s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" + ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r4.sh" > chromium-launcher.sh || die doexe chromium-launcher.sh # It is important that we name the target "chromium-browser", @@ -757,7 +810,11 @@ src_install() { insinto "${CHROMIUM_HOME}" doins out/Release/*.bin doins out/Release/*.pak - doins out/Release/*.so + ( + shopt -s nullglob + local files=(out/Release/*.so) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) if ! use system-icu; then doins out/Release/icudtl.dat diff --git a/www-client/chromium/files/chromium-launcher-r4.sh b/www-client/chromium/files/chromium-launcher-r4.sh new file mode 100644 index 00000000000..cb1e9f548b3 --- /dev/null +++ b/www-client/chromium/files/chromium-launcher-r4.sh @@ -0,0 +1,52 @@ +#!/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 + +# Select session type +if @@OZONE_AUTO_SESSION@@; then + if [[ -z ${XDG_SESSION_TYPE+x} ]]; then + if [[ -z ${WAYLAND_DISPLAY+x} ]]; then + CHROMIUM_FLAGS="--ozone-platform=x11 ${CHROMIUM_FLAGS}" + else + CHROMIUM_FLAGS="--ozone-platform=wayland ${CHROMIUM_FLAGS}" + fi + else + CHROMIUM_FLAGS="--ozone-platform=${XDG_SESSION_TYPE} ${CHROMIUM_FLAGS}" + fi +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/metadata.xml b/www-client/chromium/metadata.xml index c54bc9ef351..4be3cc80873 100644 --- a/www-client/chromium/metadata.xml +++ b/www-client/chromium/metadata.xml @@ -8,7 +8,9 @@ Enable closure type-checking for Chrome's web technology-based UI. Requires Java. Split build into more shared libraries to speed up linking. Mostly intended for debugging and development, NOT RECOMMENDED for general use. + Build Ozone only with headless backend, NOT RECOMMENDED for general use. Enable support for Google Hangouts features such as screen sharing + Enable Ozone platform abstraction layer with X11 backend. Disable optimized assembly code that is not PIC friendly Enable proprietary codecs like H.264, MP3 Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels @@ -16,6 +18,7 @@ Use system icu instead of the bundled one Use system libvpx instead of the bundled one Use bundled tcmalloc instead of system malloc + Enable Wayland backend for Ozone. Unsupported closed-source DRM capability (required by Netflix VOD)