diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-11-21 03:03:00 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-11-21 03:03:00 +0000 |
commit | 9db1279f804d62da2c61cfb39fc2e62b9faf56dd (patch) | |
tree | 7b951d5bf3ab775b91a18e0022d8f19d3582d84e /www-client | |
parent | 8a5f3383bbc5f817d89554020a3600d06985bc4a (diff) |
gentoo auto-resync : 21:11:2024 - 03:03:00
Diffstat (limited to 'www-client')
22 files changed, 2891 insertions, 28 deletions
diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz Binary files differindex 5da70b5ee3e8..050bf59f1a2e 100644 --- a/www-client/Manifest.gz +++ b/www-client/Manifest.gz diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index 3ee779cff3bb..2a7e4af41494 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -20,6 +20,10 @@ DIST chromium-131.0.6778.33-gentoo.tar.xz 4749423140 BLAKE2B b6c8988d2a69724bf57 DIST chromium-131.0.6778.33-testdata-gentoo.tar.xz 83508 BLAKE2B deb0049943e725e41b6ea40f61b43a9713ca25a900de098acaa457e9a49609d8b02f967d599ca68eb8089d98abfc78325cd265a183a045f83de21fba67489884 SHA512 87e08849514e34a22b54e580c9639b21edf5f574d3c1a25decd3db373215de214da776685ad291762a0f2b33584720cdf52fff64ed492d18955150b00861a2df DIST chromium-131.0.6778.69-gentoo.tar.xz 4749226080 BLAKE2B 83469461ba8965d3a47764f039dba57aa14641648f739f4fa43d52411bc207ed5d667e80f9c618234558702c8bb3125925d357a5457c898e00c1385145dc4d9d SHA512 019403b1352353204ace7fab8f8941dfe126d552ccba6e0db5bf0b0601f57373f0fbd2cb0240aee7ad821d8c6919ca25c2c0447cd4ab474d42f51ba863a80a5e DIST chromium-131.0.6778.69-testdata-gentoo.tar.xz 83280 BLAKE2B 1b1ebecf1cbc9c2c430b2884b928c9f1d55f22a4a1fea1303ead69fb4422681dffc9a6c8b11899feb002c1e7e80d476137689e1d8ed7d5b7e606ed78245fde95 SHA512 3dc9095e2657a5c3373d5a54a522f654cbcf039e27fb22b98fd72a486f0e5de1a4a3dfc821676de6b245009e88c281454b9dede5089457ebeb649992e8d382ca +DIST chromium-131.0.6778.85-gentoo.tar.xz 4749434048 BLAKE2B 8addba3589566cc50299df151e0a42e194d91db0bda5229e7f3a82d0ec548656f98de7c23695187e5564e56827e34ae881f307620b6891fe464dc0b4086a33b0 SHA512 054f7637af1abf04c94ee28317de373fd8df24c99bd617b06873a031606df8726478c1959a8a85f671c4d0ab789358fd5b4575d0af1db849a8b39897059f0ca4 +DIST chromium-131.0.6778.85-testdata-gentoo.tar.xz 83176 BLAKE2B 1fa58c8b1e3b16b9076fdd0fe0c8a3e4d6761fc3f9433e160dc19f5bce989d949c4f458d56ba4aacd5ce5dae578a3b27c308e3a3c6ae51b95683b1bb97c7c651 SHA512 6d4f6e2afa8c7982518c69def5bf7392226ac4cf71725201908af5f8b0395d7e26f52a68ec9306c1ee6e2cd239ab24aa17b0228d40ef768cfba11d21ecd13102 +DIST chromium-132.0.6834.15-gentoo.tar.xz 4767843916 BLAKE2B da0e7d1b1c177986b48326893f328ad163ca3c0d50a684840df47db56f2be1cfbc26dcb22f7e0298b825c69496cce1cefa0697ab8e312768fe5c45e8522e9a84 SHA512 2e2326bcd04d4e6a3eebebbb9493dd576a9ca5bfce0e9b9b2667aed13df6dd5cde41fbc7085c6487d4a5592fc346952b1396ad9d98a6b3f2e603420ff0f286a6 +DIST chromium-132.0.6834.15-testdata-gentoo.tar.xz 82768 BLAKE2B 56e1f6cc3e79ca1173b4715384df58bc26d29a0108a21a65676ab1dab6ab92afb1834bf14e101b2466fa0570264fb6da4a964754676fb6e45be08f0616a4b9e9 SHA512 4f4a673147b018d9171a30aeb39027e5a3d3da2b351c35c5e479b83a53aa45b23acc8fdc30ba66001fd934d3bf50c5162047cfc7f49c8f927825ac01cb1186d0 DIST chromium-132.0.6834.6-gentoo.tar.xz 4767675388 BLAKE2B 1fc21476f230575a819b9ae88afa5bd6e675cabd093f516c7c039bcb7340ab49e65c689c4109c14404133392487cee18956dc441a7501b1e39a1922825eb185e SHA512 bf1465d333a78323f153e0d96408b97833a914108389bac91b504a0d8a3b2230cad0c258d1d70a4414f28d5a8bb3ee179670e04cda77af64ae2932e7f8b8f40a DIST chromium-132.0.6834.6-testdata-gentoo.tar.xz 82832 BLAKE2B e96f4808c78fa670da7e5c96d20379a6903e43ae8daf1b07d289f089177a586c0df9b640755e3038ab217fc9cd75234f12ffbae5afe9e510b09e8fb4792d0585 SHA512 77025a1be7fa82a6dcf4ec8bdbf388baa271dde1dfc52c9416d931e3a065bc85dc09d727a970b6b430bbe811eae51dd008c35091eefca76bd47c821241e082a6 DIST chromium-133.0.6835.3-gentoo.tar.xz 4770847840 BLAKE2B da8032e5aa3d595bdf8b932b5f4cdea74098269ea3929b9fb7c3d2e6803652841625660bd14860720d7746ff84a1375b85a22e6792c689e54de83e194dbbc012 SHA512 e14b76fc64622ab9fa2d28d394ed3945bc67204c574d1889604bad897e51c32872a57c1b8a5bb8bdf69a653259fc3dda9d469db8a1b029f36156d9a662647a91 @@ -38,6 +42,8 @@ EBUILD chromium-129.0.6668.100-r1.ebuild 45716 BLAKE2B f6c3195da1d056f73adae2238 EBUILD chromium-130.0.6723.116-r1.ebuild 47364 BLAKE2B 5cb6c97251f2b4924353501cdfe7dcb62975c6a4c1b68584bea2f7d4bbd78fc015d5ac7699e9a0fc7561ca827b4151e4305ef7e712a1b7e49bc96f1c82459210 SHA512 d003d139462cf3eb8cd5b3675e6be6aeda7c16bbce47370652e91da553a1a6c1623e49b0f19a96ab374961a745f775b6e773d249ee3f913972b6c7730993927c EBUILD chromium-131.0.6778.33.ebuild 48182 BLAKE2B 5998826d65927ed29a34327f79aa64aaca3d7a16ceda8fd1a0dfe8fa0718cb967cb5f700ace73e602d1099868baaa9d0412e30e376d225ec8b0a1efb58a37372 SHA512 768dfde65abb76efb195041da9e260de0a4ba7c4d1a56383175351ee6dd29657579997cd30128c87dc33649d9102f5ee93fa1c891fa6fbe4ae6aaddd2b27c86b EBUILD chromium-131.0.6778.69.ebuild 48185 BLAKE2B aa6e9c7a9cfc9bbafc13fd4804a47d6f6f40024847e3a50706da9b2eccb4bcb888eaaa0c9a4419255965671dfe8d10326dbf70bddde9b623c99cd32a9aa3f2e6 SHA512 d5e42d573746de28c89620df8347647a7ecd97468a735eae540cc332a3996787c8ea35e855de4ef91e052ca2c58110a8c58cb856a72dce549d0a72f99331746d +EBUILD chromium-131.0.6778.85.ebuild 48185 BLAKE2B aa6e9c7a9cfc9bbafc13fd4804a47d6f6f40024847e3a50706da9b2eccb4bcb888eaaa0c9a4419255965671dfe8d10326dbf70bddde9b623c99cd32a9aa3f2e6 SHA512 d5e42d573746de28c89620df8347647a7ecd97468a735eae540cc332a3996787c8ea35e855de4ef91e052ca2c58110a8c58cb856a72dce549d0a72f99331746d +EBUILD chromium-132.0.6834.15.ebuild 48674 BLAKE2B c9a4b1865b8f583ea91105ede3e6e7fcd391b1d980ef9df02396dab0558e3453324e08717dc40dc50fa6168fa9b7867fc81d6a506a6dbb5fe03fb40b6f4133f0 SHA512 72eddf135225fbbb8bdfe52fb43aeb75ebdfa4f30c8e846e04ccf02ddcbd83d9b4b0aa3b9f01de9bdbbd47b8eda4ef5434778f5d766a81e2861addea01b61c5d EBUILD chromium-132.0.6834.6.ebuild 48674 BLAKE2B c9a4b1865b8f583ea91105ede3e6e7fcd391b1d980ef9df02396dab0558e3453324e08717dc40dc50fa6168fa9b7867fc81d6a506a6dbb5fe03fb40b6f4133f0 SHA512 72eddf135225fbbb8bdfe52fb43aeb75ebdfa4f30c8e846e04ccf02ddcbd83d9b4b0aa3b9f01de9bdbbd47b8eda4ef5434778f5d766a81e2861addea01b61c5d EBUILD chromium-133.0.6835.3.ebuild 49412 BLAKE2B ec176207e86eb19423b99fa8ad102de0d78d3978ad8d6eb6e28f10bd3c586de9c5ba2ca1db698f4d3a0ba7489c78e526febc41a6f3dd3ea86dfb8976e1cfdce6 SHA512 43d94b18127c7acd3841ba8a8d4d65966d91554bd18bf3c0879a16d70d90dd0d85d08d00640c46b10484e90b14aebbbfcfe948e2ffea7144cff628dd7590be77 MISC metadata.xml 2083 BLAKE2B e556591b48916e2b26d66b8b3a3f67d8f7c17d7cf2d03bfca4c91e0181604d853b16139583a8364646f5c2db55a2e3281a5b6ee623535452dbc8b0755fac89dc SHA512 b64e3140c1237d45aea47748a259b51685e7aa54c2ba259f6feb60df5a98ec434bd0ecde2e5dc2115d6c6409621ec3111e8b6b2a0fc8be2d9634dc465260dbe2 diff --git a/www-client/chromium/chromium-131.0.6778.85.ebuild b/www-client/chromium/chromium-131.0.6778.85.ebuild new file mode 100644 index 000000000000..f3dbb100a6d7 --- /dev/null +++ b/www-client/chromium/chromium-131.0.6778.85.ebuild @@ -0,0 +1,1423 @@ +# Copyright 2009-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# PACKAGING NOTES + +# This uses a gentoo-created tarball due to Google CI Failures. +# Use 133(?) as a base for new official tarballs. + +GN_MIN_VER=0.2165 +# chromium-tools/get-chromium-toolchain-strings.py +TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 + +VIRTUALX_REQUIRED="pgo" + +CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he + hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr + sv sw ta te th tr uk ur vi zh-CN zh-TW" + +LLVM_COMPAT=( 18 19 ) +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="xml(+)" +RUST_MIN_VER=1.78.0 +RUST_NEEDS_LLVM="yes please" + +inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils +inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="https://www.chromium.org/" +PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6" +PATCH_V="${PV%%\.*}-1" +SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz + https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 + test? ( + https://chromium-tarballs.distfiles.gentoo.org/${P}-testdata.tar.xz -> ${P}-testdata-gentoo.tar.xz + https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz + ) + ppc64? ( + https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + ) + pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" + +LICENSE="BSD" +SLOT="0/stable" +# Dev exists mostly to give devs some breathing room for beta/stable releases; +# it shouldn't be keyworded but adventurous users can select it. +if [[ ${SLOT} != "0/dev" ]]; then + KEYWORDS="~amd64 ~arm64" +fi + +IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" +IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" +IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" +RESTRICT=" + !bindist? ( bindist ) + !test? ( test ) +" + +REQUIRED_USE=" + !headless? ( || ( X wayland ) ) + pgo? ( X !wayland ) + qt6? ( qt5 ) + screencast? ( wayland ) + ffmpeg-chromium? ( bindist proprietary-codecs ) +" + +COMMON_X_DEPEND=" + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXtst:= + x11-libs/libxshmfence:= +" + +COMMON_SNAPSHOT_DEPEND=" + system-icu? ( >=dev-libs/icu-73.0:= ) + >=dev-libs/libxml2-2.12.4:=[icu] + dev-libs/nspr:= + >=dev-libs/nss-3.26:= + dev-libs/libxslt:= + media-libs/fontconfig:= + >=media-libs/freetype-2.11.0-r1:= + system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) + media-libs/libjpeg-turbo:= + system-png? ( media-libs/libpng:=[-apng(-)] ) + system-zstd? ( >=app-arch/zstd-1.5.5:= ) + >=media-libs/libwebp-0.4.0:= + media-libs/mesa:=[gbm(+)] + >=media-libs/openh264-1.6.0:= + sys-libs/zlib:= + x11-libs/libdrm:= + !headless? ( + dev-libs/glib:2 + >=media-libs/alsa-lib-1.0.19:= + pulseaudio? ( media-libs/libpulse:= ) + sys-apps/pciutils:= + kerberos? ( virtual/krb5 ) + vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) + X? ( + x11-base/xorg-proto:= + x11-libs/libX11:= + x11-libs/libxcb:= + x11-libs/libXext:= + ) + x11-libs/libxkbcommon:= + wayland? ( + dev-libs/libffi:= + dev-libs/wayland:= + screencast? ( media-video/pipewire:= ) + ) + ) +" + +COMMON_DEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + app-arch/bzip2:= + dev-libs/expat:= + net-misc/curl[ssl] + sys-apps/dbus:= + media-libs/flac:= + sys-libs/zlib:=[minizip] + !headless? ( + X? ( ${COMMON_X_DEPEND} ) + >=app-accessibility/at-spi2-core-2.46.0:2 + media-libs/mesa:=[X?,wayland?] + cups? ( >=net-print/cups-1.3.11:= ) + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/pango:= + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtwidgets:5 + ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + ) +" +RDEPEND="${COMMON_DEPEND} + !headless? ( + || ( + x11-libs/gtk+:3[X?,wayland?] + gui-libs/gtk:4[X?,wayland?] + ) + qt5? ( dev-qt/qtgui:5[X?,wayland?] ) + qt6? ( dev-qt/qtbase:6[X?,wayland?] ) + ) + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + bindist? ( + !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) + ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) + ) +" +DEPEND="${COMMON_DEPEND} + !headless? ( + gtk4? ( gui-libs/gtk:4[X?,wayland?] ) + !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) + ) +" + +BDEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + >=app-arch/gzip-1.7 + !headless? ( + qt5? ( dev-qt/qtcore:5 ) + qt6? ( dev-qt/qtbase:6 ) + ) + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + sys-devel/lld:${LLVM_SLOT} + ') + pgo? ( + >=dev-python/selenium-3.141.0 + >=dev-util/web_page_replay_go-20220314 + ) + >=dev-util/bindgen-0.68.0 + >=dev-build/gn-${GN_MIN_VER} + dev-build/ninja + dev-lang/perl + >=dev-util/gperf-3.0.3 + dev-vcs/git + >=net-libs/nodejs-7.6.0[inspector] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig +" + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Some web pages may require additional fonts to display properly. +Try installing some of the following packages if some characters +are not displayed properly: +- media-fonts/arphicfonts +- media-fonts/droid +- media-fonts/ipamonafont +- media-fonts/noto +- media-fonts/ja-ipafonts +- media-fonts/takao-fonts +- media-fonts/wqy-microhei +- media-fonts/wqy-zenhei + +To fix broken icons on the Downloads page, you should install an icon +theme that covers the appropriate MIME types, and configure this as your +GTK+ icon theme. + +For native file dialogs in KDE, install kde-apps/kdialog. + +To make password storage work with your desktop environment you may +have install one of the supported credentials management applications: +- app-crypt/libsecret (GNOME) +- kde-frameworks/kwallet (KDE) +If you have one of above packages installed, but don't want to use +them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS +in /etc/chromium/default. +" + +python_check_deps() { + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" +} + +pre_build_checks() { + # Check build requirements: bugs #471810, #541816, #914220 + # We're going to start doing maths here on the size of an unpacked source tarball, + # this should make updates easier as chromium continues to balloon in size. + local BASE_DISK=24 + local EXTRA_DISK=1 + local CHECKREQS_MEMORY="4G" + tc-is-cross-compiler && EXTRA_DISK=2 + if tc-is-lto || use pgo; then + CHECKREQS_MEMORY="9G" + tc-is-cross-compiler && EXTRA_DISK=4 + use pgo && EXTRA_DISK=8 + fi + if is-flagq '-g?(gdb)?([1-9])'; then + if use custom-cflags; then + EXTRA_DISK=13 + fi + CHECKREQS_MEMORY="16G" + fi + CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G" + check-reqs_${EBUILD_PHASE_FUNC} +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + fi + + if use headless; then + local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland") + for myiuse in ${headless_unused_flags[@]}; do + use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." + done + fi + + if ! use bindist && use ffmpeg-chromium; then + ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + + # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment + # We'll set these to clang here then use llvm-utils functions to very explicitly set these + # to a sane value. + # This is effectively the 'force-clang' path if GCC support is re-added. + # TODO: check if the user has already selected a specific impl via make.conf and respect that. + use_lto="false" + if tc-is-lto; then + use_lto="true" + # We can rely on GN to do this for us; anecdotally without this builds + # take significantly longer with LTO enabled and it doesn't hurt anything. + filter-lto + fi + + if [ "$use_lto" = "false" ] && use official; then + einfo "USE=official selected and LTO not detected." + einfo "It is _highly_ recommended that LTO be enabled for performance reasons" + einfo "and to be consistent with the upstream \"official\" build optimisations." + fi + + if [ "$use_lto" = "false" ] && use test; then + die "Tests require CFI which requires LTO" + fi + + export use_lto + + # 936858 + if tc-ld-is-mold; then + eerror "Your toolchain is using the mold linker." + eerror "This is not supported by Chromium." + die "Please switch to a different linker." + fi + + # Forcing clang; user choice respected by llvm_slot_x USE + AR=llvm-ar + CPP="${CHOST}-clang++ -E" + NM=llvm-nm + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + + if tc-is-cross-compiler; then + use pgo && die "The pgo USE flag cannot be used when cross-compiling" + CPP="${CBUILD}-clang++ -E" + fi + + llvm-r1_pkg_setup + rust_pkg_setup + + # I hate doing this but upstream Rust have yet to come up with a better solution for + # us poor packagers. Required for Split LTO units, which are required for CFI. + export RUSTC_BOOTSTRAP=1 + + # Users should never hit this, it's purely a development convenience + if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then + die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium" + fi + fi + + chromium_suid_sandbox_check_kernel_config +} + +src_unpack() { + unpack ${P}-gentoo.tar.xz + unpack chromium-patches-${PATCH_V}.tar.bz2 + + use pgo && unpack chromium-profiler-0.2.tar + + if use test; then + # A new testdata tarball is available for each release; but testfonts tend to remain stable + # for the duration of a release. + # This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`. + unpack ${P}-testdata-gentoo.tar.xz + # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location. + local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts" + local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" + tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" + fi + + if use ppc64; then + unpack chromium_${PATCHSET_PPC64}.debian.tar.xz + unpack chromium-ppc64le-gentoo-patches-1.tar.xz + fi +} + +src_prepare() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # disable global media controls, crashes with libstdc++ + sed -i -e \ + "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ + "chrome/browser/media/router/media_router_feature.cc" + + local PATCHES=( + "${FILESDIR}/chromium-cross-compile.patch" + "${FILESDIR}/chromium-109-system-zlib.patch" + "${FILESDIR}/chromium-111-InkDropHost-crash.patch" + "${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch" + "${FILESDIR}/chromium-131-unbundle-icu-target.patch" + "${FILESDIR}/chromium-131-oauth2-client-switches.patch" + "${FILESDIR}/chromium-131-const-atomicstring-conversion.patch" + ) + + PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) + # We can't use the bundled compiler builtins with the system toolchain + # `grep` is a development convenience to ensure we fail early when google changes something. + local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" + grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" + sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn + + if use ppc64 ; then + local p + for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do + if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then + eapply "${WORKDIR}/debian/patches/${p}" + fi + done + PATCHES+=( "${WORKDIR}/ppc64le" ) + PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) + fi + + default + + rm third_party/node/linux/node-linux-x64/bin/node || die + ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die + + # adjust python interpreter version + sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die + + # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party' + # whitelist matches use the right-most matching path component, so we need to whitelist from that point down. + local keeplibs=( + base/third_party/cityhash + base/third_party/double_conversion + base/third_party/icu + base/third_party/nspr + base/third_party/superfasthash + base/third_party/symbolize + base/third_party/xdg_user_dirs + buildtools/third_party/libc++ + buildtools/third_party/libc++abi + chrome/third_party/mozilla_security_manager + net/third_party/mozilla_security_manager + net/third_party/nss + net/third_party/quic + net/third_party/uri_template + third_party/abseil-cpp + third_party/angle + third_party/angle/src/common/third_party/xxhash + third_party/angle/src/third_party/ceval + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/volk + third_party/anonymous_tokens + third_party/apple_apsl + third_party/axe-core + third_party/bidimapper + third_party/blink + third_party/boringssl + third_party/boringssl/src/third_party/fiat + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + third_party/brotli + third_party/catapult + third_party/catapult/common/py_vulcanize/third_party/rcssmin + third_party/catapult/common/py_vulcanize/third_party/rjsmin + third_party/catapult/third_party/beautifulsoup4-4.9.3 + third_party/catapult/third_party/html5lib-1.1 + third_party/catapult/third_party/polymer + third_party/catapult/third_party/six + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jpeg-js + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/catapult/tracing/third_party/pako + third_party/ced + third_party/cld_3 + third_party/closure_compiler + third_party/content_analysis_sdk + third_party/cpuinfo + third_party/crabbyavif + third_party/crashpad + third_party/crashpad/crashpad/third_party/lss + third_party/crashpad/crashpad/third_party/zlib + third_party/crc32c + third_party/cros_system_api + third_party/d3 + third_party/dav1d + third_party/dawn + third_party/dawn/third_party/gn/webgpu-cts + third_party/dawn/third_party/khronos + third_party/depot_tools + third_party/devscripts + third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party/acorn + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/devtools-frontend/src/front_end/third_party/axe-core + third_party/devtools-frontend/src/front_end/third_party/chromium + third_party/devtools-frontend/src/front_end/third_party/codemirror + third_party/devtools-frontend/src/front_end/third_party/csp_evaluator + third_party/devtools-frontend/src/front_end/third_party/diff + third_party/devtools-frontend/src/front_end/third_party/i18n + third_party/devtools-frontend/src/front_end/third_party/intl-messageformat + third_party/devtools-frontend/src/front_end/third_party/json5 + third_party/devtools-frontend/src/front_end/third_party/lighthouse + third_party/devtools-frontend/src/front_end/third_party/lit + third_party/devtools-frontend/src/front_end/third_party/marked + third_party/devtools-frontend/src/front_end/third_party/puppeteer + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs + third_party/devtools-frontend/src/front_end/third_party/third-party-web + third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data + third_party/devtools-frontend/src/front_end/third_party/wasmparser + third_party/devtools-frontend/src/front_end/third_party/web-vitals + third_party/devtools-frontend/src/third_party + third_party/distributed_point_functions + third_party/dom_distiller_js + third_party/eigen3 + third_party/emoji-segmenter + third_party/farmhash + third_party/fast_float + third_party/fdlibm + third_party/ffmpeg + third_party/fft2d + third_party/flatbuffers + third_party/fp16 + third_party/freetype + third_party/fusejs + third_party/fxdiv + third_party/gemmlowp + third_party/google_input_tools + third_party/google_input_tools/third_party/closure_library + third_party/google_input_tools/third_party/closure_library/third_party/closure + third_party/googletest + third_party/highway + third_party/hunspell + third_party/iccjpeg + third_party/ink_stroke_modeler/src/ink_stroke_modeler + third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal + third_party/ink/src/ink/brush + third_party/ink/src/ink/color + third_party/ink/src/ink/geometry + third_party/ink/src/ink/rendering + third_party/ink/src/ink/rendering/skia/common_internal + third_party/ink/src/ink/rendering/skia/native + third_party/ink/src/ink/rendering/skia/native/internal + third_party/ink/src/ink/strokes + third_party/ink/src/ink/types + third_party/inspector_protocol + third_party/ipcz + third_party/jinja2 + third_party/jsoncpp + third_party/jstemplate + third_party/khronos + third_party/lens_server_proto + third_party/leveldatabase + third_party/libaddressinput + third_party/libaom + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/SVT-AV1 + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc + third_party/libavif + third_party/libc++ + third_party/libevent + third_party/libgav1 + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libsync + third_party/liburlpattern + third_party/libva_protected_content + third_party/libvpx + third_party/libvpx/source/libvpx/third_party/x86inc + third_party/libwebm + third_party/libx11 + third_party/libxcb-keysyms + third_party/libxml/chromium + third_party/libyuv + third_party/libzip + third_party/lit + third_party/lottie + third_party/lss + third_party/lzma_sdk + third_party/mako + third_party/markupsafe + third_party/material_color_utilities + third_party/mesa + third_party/metrics_proto + third_party/minigbm + third_party/modp_b64 + third_party/nasm + third_party/nearby + third_party/neon_2_sse + third_party/node + third_party/omnibox_proto + third_party/one_euro_filter + third_party/openscreen + third_party/openscreen/src/third_party/ + third_party/openscreen/src/third_party/tinycbor/src/src + third_party/opus + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg + third_party/pdfium/third_party/libtiff + third_party/perfetto + third_party/perfetto/protos/third_party/chromium + third_party/perfetto/protos/third_party/simpleperf + third_party/pffft + third_party/ply + third_party/polymer + third_party/private_membership + third_party/private-join-and-compute + third_party/protobuf + third_party/pthreadpool + third_party/puffin + third_party/pyjson5 + third_party/pyyaml + third_party/qcms + third_party/rapidhash + third_party/re2 + third_party/rnnoise + third_party/rust + third_party/ruy + third_party/s2cellid + third_party/securemessage + third_party/selenium-atoms + third_party/sentencepiece + third_party/sentencepiece/src/third_party/darts_clone + third_party/shell-encryption + third_party/simplejson + third_party/six + third_party/skia + third_party/skia/include/third_party/vulkan + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/snappy + third_party/spirv-headers + third_party/spirv-tools + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/astc-encoder + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv + third_party/swiftshader/third_party/SPIRV-Tools + third_party/swiftshader/third_party/subzero + third_party/tensorflow_models + third_party/tensorflow-text + third_party/tflite + third_party/tflite/src/third_party/eigen3 + third_party/tflite/src/third_party/fft2d + third_party/tflite/src/third_party/xla/third_party/tsl + third_party/tflite/src/third_party/xla/xla/tsl/framework + third_party/tflite/src/third_party/xla/xla/tsl/lib/random + third_party/tflite/src/third_party/xla/xla/tsl/protobuf + third_party/tflite/src/third_party/xla/xla/tsl/util + third_party/ukey2 + third_party/unrar + third_party/utf + third_party/vulkan + third_party/wayland + third_party/webdriver + third_party/webgpu-cts + third_party/webrtc + third_party/webrtc/common_audio/third_party/ooura + third_party/webrtc/common_audio/third_party/spl_sqrt_floor + third_party/webrtc/modules/third_party/fft + third_party/webrtc/modules/third_party/g711 + third_party/webrtc/modules/third_party/g722 + third_party/webrtc/rtc_base/third_party/base64 + third_party/webrtc/rtc_base/third_party/sigslot + third_party/widevine + third_party/woff2 + third_party/wuffs + third_party/x11proto + third_party/xcbproto + third_party/xnnpack + third_party/zlib/google + third_party/zxcvbn-cpp + url/third_party/mozilla + v8/src/third_party/siphash + v8/src/third_party/utf8-decoder + v8/src/third_party/valgrind + v8/third_party/glibc + v8/third_party/inspector_protocol + v8/third_party/v8 + + # gyp -> gn leftovers + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + ) + + if use test; then + # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' + keeplibs+=( + third_party/google_benchmark/src/include/benchmark + third_party/google_benchmark/src/src + third_party/perfetto/protos/third_party/pprof + third_party/test_fonts + third_party/test_fonts/fontconfig + ) + fi + + # USE=system-* + if ! use system-harfbuzz; then + keeplibs+=( third_party/harfbuzz-ng ) + fi + + if ! use system-icu; then + keeplibs+=( third_party/icu ) + fi + + if ! use system-png; then + keeplibs+=( third_party/libpng ) + fi + + if ! use system-zstd; then + keeplibs+=( third_party/zstd ) + fi + + # Arch-specific + if use arm64 || use ppc64 ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) + fi + # we need to generate ppc64 stuff because upstream does not ship it yet + # it has to be done before unbundling. + if use ppc64; then + pushd third_party/libvpx >/dev/null || die + mkdir -p source/config/linux/ppc64 || die + # requires git and clang, bug #832803 + # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh + # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh + # since we're not in a git repo + sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ + generate_gni.sh || die + ./generate_gni.sh || die + popd >/dev/null || die + + pushd third_party/ffmpeg >/dev/null || die + cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die + cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die + popd >/dev/null || die + fi + + # Sanity check keeplibs, on major version bumps it is often necessary to update this list + # and this enables us to hit them all at once. + # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd) + whitelist_libs=( + net/third_party/quic + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/libjingle + third_party/mesa + third_party/skia/third_party/vulkan + third_party/vulkan + ) + local not_found_libs=() + for lib in "${keeplibs[@]}"; do + if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then + not_found_libs+=( "${lib}" ) + fi + done + + if [[ ${#not_found_libs[@]} -gt 0 ]]; then + eerror "The following \`keeplibs\` directories were not found in the source tree:" + for lib in "${not_found_libs[@]}"; do + eerror " ${lib}" + done + die "Please update the ebuild." + fi + + # Remove most bundled libraries. Some are still needed. + einfo "Unbundling third-party libraries ..." + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die + + # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. + + # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries + mkdir -p buildtools/third_party/eu-strip/bin || die + ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die +} + +chromium_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + local myconf_gn="" + + # We already forced the "correct" clang via pkg_setup + + if tc-is-cross-compiler; then + CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}" + CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}" + BUILD_AR=${AR} + BUILD_CC=${CC} + BUILD_CXX=${CXX} + BUILD_NM=${NM} + fi + + strip-unsupported-flags + + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + # https://bugs.gentoo.org/918897#c32 + append-ldflags -Wl,--undefined-version + myconf_gn+=" use_lld=true" + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" + myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" + + # setup cups-config, build system only uses --libs option + if use cups; then + mkdir "${T}/cups-config" || die + cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die + export PATH="${PATH}:${T}/cups-config" + fi + + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # bindgen settings + # From 127, to make bindgen work, we need to provide a location for libclang. + # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch + # rust_bindgen_root = directory with `bin/bindgen` beneath it. + myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" + + myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" + # We don't need to set 'clang_base_bath' for anything in our build + # and it defaults to the google toolchain location. Instead provide a location + # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) + myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" + + myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" + myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=false" + + # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. + # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. + myconf_gn+=" dcheck_always_on=$(usex debug true false)" + myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" + + # Component build isn't generally intended for use by end users. It's mostly useful + # for development and debugging. + myconf_gn+=" is_component_build=false" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + fontconfig + freetype + # Need harfbuzz_from_pkgconfig target + #harfbuzz-ng + libdrm + libjpeg + libwebp + libxml + libxslt + openh264 + zlib + ) + if use system-icu; then + gn_system_libraries+=( icu ) + fi + if use system-png; then + gn_system_libraries+=( libpng ) + fi + if use system-zstd; then + gn_system_libraries+=( zstd ) + fi + + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file + # drop the last line, then append the freetype line and a new curly brace to end the block + local freetype_gni="build/config/freetype/freetype.gni" + sed -i -e '$d' ${freetype_gni} || die + echo " enable_freetype = true" >> ${freetype_gni} || die + echo "}" >> ${freetype_gni} || die + + # See dependency logic in third_party/BUILD.gn + myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + + if use headless; then + myconf_gn+=" use_cups=false" + myconf_gn+=" use_kerberos=false" + myconf_gn+=" use_pulseaudio=false" + myconf_gn+=" use_vaapi=false" + myconf_gn+=" rtc_use_pipewire=false" + else + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + myconf_gn+=" use_vaapi=$(usex vaapi true false)" + myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" + myconf_gn+=" gtk_version=$(usex gtk4 4 3)" + fi + + # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of + # using dlopen. This helps with automated detection of ABI mismatches and + # prevents silent errors. + if use pulseaudio; then + myconf_gn+=" link_pulseaudio=true" + fi + + # Non-developer builds of Chromium (for example, non-Chrome browsers, or + # Chromium builds provided by Linux distros) should disable the testing config + myconf_gn+=" disable_fieldtrial_testing_config=true" + + # The sysroot is the oldest debian image that chromium supports, we don't need it + myconf_gn+=" use_sysroot=false" + + # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi) + # instead of the system C++ library for C++ standard library support. + # default: true, but let's be explicit (forced since 120 ; USE removed 127). + myconf_gn+=" use_custom_libcxx=true" + + # Disable pseudolocales, only used for testing + myconf_gn+=" enable_pseudolocales=false" + + # Disable code formating of generated files + myconf_gn+=" blink_enable_generated_code_formatting=false" + + if use bindist ; then + # proprietary_codecs just forces Chromium to say that it can use h264/aac, + # the work is still done by ffmpeg. If this is set to no Chromium + # won't be able to load the codec even if the library can handle it + myconf_gn+=" proprietary_codecs=true" + myconf_gn+=" ffmpeg_branding=\"Chrome\"" + # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute + myconf_gn+=" is_component_ffmpeg=true" + else + ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" + myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" + myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" + 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. The OAuth2 credentials, however, have been left out. + # Those OAuth2 credentials have been broken for quite some time anyway. + # Instead we apply a patch to use the --oauth2-client-id= and + # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and + # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into + # Chromium without baked-in values. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + local myarch="$(tc-arch)" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Debug info section overflows without component build + # Prevent linker from running out of address space, bug #471810 . + filter-flags "-g*" + + # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. + if [[ ${myarch} == amd64 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + fi + fi + + if [[ $myarch = amd64 ]] ; then + myconf_gn+=" target_cpu=\"x64\"" + ffmpeg_target_arch=x64 + elif [[ $myarch = arm64 ]] ; then + myconf_gn+=" target_cpu=\"arm64\"" + ffmpeg_target_arch=arm64 + elif [[ $myarch = ppc64 ]] ; then + myconf_gn+=" target_cpu=\"ppc64\"" + ffmpeg_target_arch=ppc64 + else + die "Failed to determine target arch, got '$myarch'." + fi + + myconf_gn+=" treat_warnings_as_errors=false" + # Disable fatal linker warnings, bug 506268. + myconf_gn+=" fatal_linker_warnings=false" + + # Disable external code space for V8 for ppc64. It is disabled for ppc64 + # by default, but cross-compiling on amd64 enables it again. + if tc-is-cross-compiler; then + if ! use amd64 && ! use arm64; then + myconf_gn+=" v8_enable_external_code_space=false" + fi + fi + + # Only enabled for clang, but gcc has endian macros too + myconf_gn+=" v8_use_libm_trig_functions=true" + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + # https://bugs.gentoo.org/654216 + addpredict /dev/dri/ #nowarn + + # We don't use the same clang version as upstream, and with -Werror + # we need to make sure that we don't get superfluous warnings. + append-flags -Wno-unknown-warning-option + if tc-is-cross-compiler; then + export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" + export BUILD_CFLAGS+=" -Wno-unknown-warning-option" + fi + + # Explicitly disable ICU data file support for system-icu/headless builds. + if use system-icu || use headless; then + myconf_gn+=" icu_use_data_file=false" + fi + + # Don't need nocompile checks and GN crashes with our config + myconf_gn+=" enable_nocompile_tests=false" + + # 131 began laying the groundwork for replacing freetype with + # "Rust-based Fontations set of libraries plus Skia path rendering" + # We now need to opt-in + myconf_gn+=" enable_freetype=true" + + # Enable ozone wayland and/or headless support + myconf_gn+=" use_ozone=true ozone_auto_platforms=false" + myconf_gn+=" ozone_platform_headless=true" + if use headless; then + myconf_gn+=" ozone_platform=\"headless\"" + myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" + myconf_gn+=" use_glib=false use_gio=false" + myconf_gn+=" use_pangocairo=false use_alsa=false" + myconf_gn+=" use_libpci=false use_udev=false" + myconf_gn+=" enable_print_preview=false" + myconf_gn+=" enable_remoting=false" + else + myconf_gn+=" use_system_libdrm=true" + myconf_gn+=" use_system_minigbm=true" + myconf_gn+=" use_xkbcommon=true" + if use qt5 || use qt6; then + local cbuild_libdir=$(get_libdir) + if tc-is-cross-compiler; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) + cbuild_libdir=${cbuild_libdir:2} + cbuild_libdir=${cbuild_libdir/% } + fi + if use qt5; then + if tc-is-cross-compiler; then + myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" + else + myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" + fi + fi + if use qt6; then + myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" + fi + + myconf_gn+=" use_qt=true" + myconf_gn+=" use_qt6=$(usex qt6 true false)" + else + myconf_gn+=" use_qt=false" + fi + myconf_gn+=" ozone_platform_x11=$(usex X true false)" + myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" + myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" + use wayland && myconf_gn+=" use_system_libffi=true" + fi + + myconf_gn+=" use_thin_lto=${use_lto}" + myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" + + # Enable official builds + myconf_gn+=" is_official_build=$(usex official true false)" + if use official; then + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py || die + myconf_gn+=" is_cfi=${use_lto}" + # Don't add symbols to build + myconf_gn+=" symbol_level=0" + fi + + if use pgo; then + myconf_gn+=" chrome_pgo_phase=${1}" + if [[ "$1" == "2" ]]; then + myconf_gn+=" pgo_data_path=\"${2}\"" + fi + else + # Disable PGO + myconf_gn+=" chrome_pgo_phase=0" + fi + + # skipping typecheck is only supported on amd64, bug #876157 + if ! use amd64; then + myconf_gn+=" devtools_skip_typecheck=false" + fi + + einfo "Configuring Chromium ..." + set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release + echo "$@" + "$@" || die +} + +src_configure() { + chromium_configure $(usex pgo 1 0) +} + +chromium_compile() { + + # Final link uses lots of file descriptors. + ulimit -n 2048 + + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # Don't inherit PYTHONPATH from environment, bug #789021, #812689 + local -x PYTHONPATH= + + # Build mksnapshot and pax-mark it. + if use pax-kernel; then + local x + for x in mksnapshot v8_context_snapshot_generator; do + if tc-is-cross-compiler; then + eninja -C out/Release "host/${x}" + pax-mark m "out/Release/host/${x}" + else + eninja -C out/Release "${x}" + pax-mark m "out/Release/${x}" + fi + done + fi + + # Even though ninja autodetects number of CPUs, we respect + # user's options, for debugging with -j 1 or any other reason. + eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests") + + pax-mark m out/Release/chrome + +} + +# This function is called from virtx, and must always return so that Xvfb +# session isn't left running. If we return 1, virtx will call die(). +chromium_profile() { + einfo "Profiling for PGO" + + pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 + + # Remove old profdata in case profiling was interrupted. + rm -rf "${1}" || return 1 + + if ! "${EPYTHON}" ./chromium_profiler.py \ + --chrome-executable "${S}/out/Release/chrome" \ + --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ + --add-arg no-sandbox --add-arg disable-dev-shm-usage \ + --profile-output "${1}"; then + eerror "Profiling failed" + return 1 + fi + + popd >/dev/null || return 1 +} + +src_compile() { + if use pgo; then + local profdata + + profdata="${WORKDIR}/chromium.profdata" + + if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then + chromium_compile + virtx chromium_profile "$profdata" + + touch "${WORKDIR}/.pgo-profiled" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then + # Remove phase 1 output + rm -r out/Release || die + + chromium_configure 2 "$profdata" + + touch "${WORKDIR}/.pgo-phase-2-configured" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then + chromium_compile + touch "${WORKDIR}/.pgo-phase-2-compiled" || die + fi + else + chromium_compile + fi + + mv out/Release/chromedriver{.unstripped,} || die + + rm -f out/Release/locales/*.pak.info || die + + # Build manpage; bug #684550 + sed -e 's|@@PACKAGE@@|chromium-browser|g; + s|@@MENUNAME@@|Chromium|g;' \ + chrome/app/resources/manpage.1.in > \ + out/Release/chromium-browser.1 || die + + # Build desktop file; bug #706786 + sed -e 's|@@MENUNAME@@|Chromium|g; + s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; + s|@@PACKAGE@@|chromium-browser|g; + s|\(^Exec=\)/usr/bin/|\1|g;' \ + chrome/installer/linux/common/desktop.template > \ + out/Release/chromium-browser-chromium.desktop || die + + # Build vk_swiftshader_icd.json; bug #827861 + sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ + third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ + out/Release/vk_swiftshader_icd.json || die +} + +src_test() { + # Initial list of tests to skip pulled from Alpine. Thanks Lauren! + # https://issues.chromium.org/issues/40939315 + local skip_tests=( + 'MessagePumpLibeventTest.NestedNotification*' + ClampTest.Death + OptionalTest.DereferencingNoValueCrashes + PlatformThreadTest.SetCurrentThreadTypeTest + RawPtrTest.TrivialRelocability + SafeNumerics.IntMaxOperations + StackTraceTest.TraceStackFramePointersFromBuffer + StringPieceTest.InvalidLengthDeath + StringPieceTest.OutOfBoundsDeath + ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker + ValuesUtilTest.FilePath + # Gentoo-specific + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 + CharacterEncodingTest.GetCanonicalEncodingNameByAliasName + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress + FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe + FileTest.GetInfoForCreationTime + ICUStringConversionsTest.ConvertToUtf8AndNormalize + NumberFormattingTest.FormatPercent + PathServiceTest.CheckedGetFailure + PlatformThreadTest.CanChangeThreadType + StackCanary.ChangingStackCanaryCrashesOnReturn + StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree + SysStrings.SysNativeMBAndWide + SysStrings.SysNativeMBToWide + SysStrings.SysWideToNativeMB + TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest + ToolsSanityTest.BadVirtualCallNull + ToolsSanityTest.BadVirtualCallWrongType + ) + local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" + # test-launcher-bot-mode enables parallelism and plain output + ./out/Release/base_unittests --test-launcher-bot-mode \ + --test-launcher-jobs="$(makeopts_jobs)" \ + --gtest_filter="${test_filter}" || die "Tests failed!" +} + +src_install() { + local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome + + newexe out/Release/chrome_sandbox chrome-sandbox + fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" + + doexe out/Release/chromedriver + doexe out/Release/chrome_crashpad_handler + + ozone_auto_session () { + use X && use wayland && ! use headless && echo true || echo false + } + local sedargs=( -e + "s:/usr/lib/:/usr/$(get_libdir)/:g; + s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" + ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die + doexe chromium-launcher.sh + + # It is important that we name the target "chromium-browser", + # xdg-utils expect it; bug #355517. + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium + + dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver + + # Allow users to override command-line options, bug #357629. + insinto /etc/chromium + newins "${FILESDIR}/chromium.default" "default" + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + + if use bindist; then + # We built libffmpeg as a component library, but we can't distribute it + # with proprietary codec support. Remove it and make a symlink to the requested + # system library. + rm -f out/Release/libffmpeg.so \ + || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" + # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. + einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." + dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ + /usr/$(get_libdir)/chromium-browser/libffmpeg.so + fi + + ( + shopt -s nullglob + local files=(out/Release/*.so out/Release/*.so.[0-9]) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) + + # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" + doins out/Release/xdg-{settings,mime} + + if ! use system-icu && ! use headless; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/MEIPreload + + # Install vk_swiftshader_icd.json; bug #827861 + doins out/Release/vk_swiftshader_icd.json + + if [[ -d out/Release/swiftshader ]]; then + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + fi + + # Install icons + local branding size + for size in 16 24 32 48 64 128 256 ; do + case ${size} in + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; + *) branding="chrome/app/theme/chromium" ;; + esac + newicon -s ${size} "${branding}/product_logo_${size}.png" \ + chromium-browser.png + done + + # Install desktop entry + domenu out/Release/chromium-browser-chromium.desktop + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + # Install manpage; bug #684550 + doman out/Release/chromium-browser.1 + dosym chromium-browser.1 /usr/share/man/man1/chromium.1 + + readme.gentoo_create_doc +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog + + if ! use headless; then + if use vaapi; then + elog "VA-API is disabled by default at runtime. You have to enable it" + elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" + elog "in /etc/chromium/default." + fi + if use screencast; then + elog "Screencast is disabled by default at runtime. Either enable it" + elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" + elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use gtk4; then + elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" + elog "behavior you need to pass --gtk-version=4, e.g. by adding it" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use qt5 && use qt6; then + elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" + elog "environment. To override you need to pass --qt-version=5 or" + elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" + elog "/etc/chromium/default." + fi + fi + + if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then + ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" + ewarn "indicates that the Gentoo handbook was not followed to completion." + ewarn "" + ewarn "Chromium is known to behave unpredictably with this system configuration;" + ewarn "please complete the configuration of this system before logging any bugs." + fi +} diff --git a/www-client/chromium/chromium-132.0.6834.15.ebuild b/www-client/chromium/chromium-132.0.6834.15.ebuild new file mode 100644 index 000000000000..aa8e823dc2a0 --- /dev/null +++ b/www-client/chromium/chromium-132.0.6834.15.ebuild @@ -0,0 +1,1434 @@ +# Copyright 2009-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# PACKAGING NOTES + +# This uses a gentoo-created tarball due to Google CI Failures. +# Use 133(?) as a base for new official tarballs. + +GN_MIN_VER=0.2165 +# chromium-tools/get-chromium-toolchain-strings.py +TEST_FONT=f26f29c9d3bfae588207bbc9762de8d142e58935c62a86f67332819b15203b35 + +VIRTUALX_REQUIRED="pgo" + +CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he + hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr + sv sw ta te th tr uk ur vi zh-CN zh-TW" + +LLVM_COMPAT=( 18 19 ) +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="xml(+)" +RUST_MIN_VER=1.78.0 +RUST_NEEDS_LLVM="yes please" + +inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils +inherit python-any-r1 qmake-utils readme.gentoo-r1 rust systemd toolchain-funcs virtualx xdg-utils + +DESCRIPTION="Open-source version of Google Chrome web browser" +HOMEPAGE="https://www.chromium.org/" +PPC64_HASH="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6" +PATCH_V="${PV%%\.*}" +SRC_URI="https://chromium-tarballs.distfiles.gentoo.org/${P}.tar.xz -> ${P}-gentoo.tar.xz + https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 + test? ( + https://chromium-tarballs.distfiles.gentoo.org/${P}-testdata.tar.xz -> ${P}-testdata-gentoo.tar.xz + https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz + ) + ppc64? ( + https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2 + ) + pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" + +LICENSE="BSD" +SLOT="0/beta" +# Dev exists mostly to give devs some breathing room for beta/stable releases; +# it shouldn't be keyworded but adventurous users can select it. +if [[ ${SLOT} != "0/dev" ]]; then + KEYWORDS="~amd64 ~arm64" +fi + +IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" +IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio" +IUSE+=" qt5 qt6 +screencast selinux test +vaapi +wayland +widevine" +RESTRICT=" + !bindist? ( bindist ) + !test? ( test ) +" + +REQUIRED_USE=" + !headless? ( || ( X wayland ) ) + pgo? ( X !wayland ) + qt6? ( qt5 ) + screencast? ( wayland ) + ffmpeg-chromium? ( bindist proprietary-codecs ) +" + +COMMON_X_DEPEND=" + x11-libs/libXcomposite:= + x11-libs/libXcursor:= + x11-libs/libXdamage:= + x11-libs/libXfixes:= + >=x11-libs/libXi-1.6.0:= + x11-libs/libXrandr:= + x11-libs/libXrender:= + x11-libs/libXtst:= + x11-libs/libxshmfence:= +" + +COMMON_SNAPSHOT_DEPEND=" + system-icu? ( >=dev-libs/icu-73.0:= ) + >=dev-libs/libxml2-2.12.4:=[icu] + dev-libs/nspr:= + >=dev-libs/nss-3.26:= + dev-libs/libxslt:= + media-libs/fontconfig:= + >=media-libs/freetype-2.11.0-r1:= + system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) + media-libs/libjpeg-turbo:= + system-png? ( media-libs/libpng:=[-apng(-)] ) + system-zstd? ( >=app-arch/zstd-1.5.5:= ) + >=media-libs/libwebp-0.4.0:= + media-libs/mesa:=[gbm(+)] + >=media-libs/openh264-1.6.0:= + sys-libs/zlib:= + !headless? ( + dev-libs/glib:2 + >=media-libs/alsa-lib-1.0.19:= + pulseaudio? ( media-libs/libpulse:= ) + sys-apps/pciutils:= + kerberos? ( virtual/krb5 ) + vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) + X? ( + x11-base/xorg-proto:= + x11-libs/libX11:= + x11-libs/libxcb:= + x11-libs/libXext:= + ) + x11-libs/libxkbcommon:= + wayland? ( + dev-libs/libffi:= + dev-libs/wayland:= + screencast? ( media-video/pipewire:= ) + ) + ) +" + +COMMON_DEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + app-arch/bzip2:= + dev-libs/expat:= + net-misc/curl[ssl] + sys-apps/dbus:= + media-libs/flac:= + sys-libs/zlib:=[minizip] + !headless? ( + X? ( ${COMMON_X_DEPEND} ) + >=app-accessibility/at-spi2-core-2.46.0:2 + media-libs/mesa:=[X?,wayland?] + cups? ( >=net-print/cups-1.3.11:= ) + virtual/udev + x11-libs/cairo:= + x11-libs/gdk-pixbuf:2 + x11-libs/pango:= + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtwidgets:5 + ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + ) +" +RDEPEND="${COMMON_DEPEND} + !headless? ( + || ( + x11-libs/gtk+:3[X?,wayland?] + gui-libs/gtk:4[X?,wayland?] + ) + qt5? ( dev-qt/qtgui:5[X?,wayland?] ) + qt6? ( dev-qt/qtbase:6[X?,wayland?] ) + ) + virtual/ttf-fonts + selinux? ( sec-policy/selinux-chromium ) + bindist? ( + !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) + ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) + ) +" +DEPEND="${COMMON_DEPEND} + !headless? ( + gtk4? ( gui-libs/gtk:4[X?,wayland?] ) + !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) + ) +" + +BDEPEND=" + ${COMMON_SNAPSHOT_DEPEND} + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + >=app-arch/gzip-1.7 + !headless? ( + qt5? ( dev-qt/qtcore:5 ) + qt6? ( dev-qt/qtbase:6 ) + ) + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + sys-devel/lld:${LLVM_SLOT} + ') + pgo? ( + >=dev-python/selenium-3.141.0 + >=dev-util/web_page_replay_go-20220314 + ) + >=dev-util/bindgen-0.68.0 + >=dev-build/gn-${GN_MIN_VER} + dev-build/ninja + dev-lang/perl + >=dev-util/gperf-3.0.3 + dev-vcs/git + >=net-libs/nodejs-7.6.0[inspector] + >=sys-devel/bison-2.4.3 + sys-devel/flex + virtual/pkgconfig +" + +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then + EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; +fi + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +Some web pages may require additional fonts to display properly. +Try installing some of the following packages if some characters +are not displayed properly: +- media-fonts/arphicfonts +- media-fonts/droid +- media-fonts/ipamonafont +- media-fonts/noto +- media-fonts/ja-ipafonts +- media-fonts/takao-fonts +- media-fonts/wqy-microhei +- media-fonts/wqy-zenhei + +To fix broken icons on the Downloads page, you should install an icon +theme that covers the appropriate MIME types, and configure this as your +GTK+ icon theme. + +For native file dialogs in KDE, install kde-apps/kdialog. + +To make password storage work with your desktop environment you may +have install one of the supported credentials management applications: +- app-crypt/libsecret (GNOME) +- kde-frameworks/kwallet (KDE) +If you have one of above packages installed, but don't want to use +them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS +in /etc/chromium/default. +" + +python_check_deps() { + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" +} + +pre_build_checks() { + # Check build requirements: bugs #471810, #541816, #914220 + # We're going to start doing maths here on the size of an unpacked source tarball, + # this should make updates easier as chromium continues to balloon in size. + local BASE_DISK=24 + local EXTRA_DISK=1 + local CHECKREQS_MEMORY="4G" + tc-is-cross-compiler && EXTRA_DISK=2 + if tc-is-lto || use pgo; then + CHECKREQS_MEMORY="9G" + tc-is-cross-compiler && EXTRA_DISK=4 + use pgo && EXTRA_DISK=8 + fi + if is-flagq '-g?(gdb)?([1-9])'; then + if use custom-cflags; then + EXTRA_DISK=13 + fi + CHECKREQS_MEMORY="16G" + fi + CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G" + check-reqs_${EBUILD_PHASE_FUNC} +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + fi + + if use headless; then + local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland") + for myiuse in ${headless_unused_flags[@]}; do + use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." + done + fi + + if ! use bindist && use ffmpeg-chromium; then + ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + # The pre_build_checks are all about compilation resources, no need to run it for a binpkg + pre_build_checks + + # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment + # We'll set these to clang here then use llvm-utils functions to very explicitly set these + # to a sane value. + # This is effectively the 'force-clang' path if GCC support is re-added. + # TODO: check if the user has already selected a specific impl via make.conf and respect that. + use_lto="false" + if tc-is-lto; then + use_lto="true" + # We can rely on GN to do this for us; anecdotally without this builds + # take significantly longer with LTO enabled and it doesn't hurt anything. + filter-lto + fi + + if [ "$use_lto" = "false" ] && use official; then + einfo "USE=official selected and LTO not detected." + einfo "It is _highly_ recommended that LTO be enabled for performance reasons" + einfo "and to be consistent with the upstream \"official\" build optimisations." + fi + + if [ "$use_lto" = "false" ] && use test; then + die "Tests require CFI which requires LTO" + fi + + export use_lto + + # 936858 + if tc-ld-is-mold; then + eerror "Your toolchain is using the mold linker." + eerror "This is not supported by Chromium." + die "Please switch to a different linker." + fi + + # Forcing clang; user choice respected by llvm_slot_x USE + AR=llvm-ar + CPP="${CHOST}-clang++ -E" + NM=llvm-nm + CC=${CHOST}-clang + CXX=${CHOST}-clang++ + + if tc-is-cross-compiler; then + use pgo && die "The pgo USE flag cannot be used when cross-compiling" + CPP="${CBUILD}-clang++ -E" + fi + + llvm-r1_pkg_setup + rust_pkg_setup + + # I hate doing this but upstream Rust have yet to come up with a better solution for + # us poor packagers. Required for Split LTO units, which are required for CFI. + export RUSTC_BOOTSTRAP=1 + + # Users should never hit this, it's purely a development convenience + if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then + die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium" + fi + fi + + chromium_suid_sandbox_check_kernel_config +} + +src_unpack() { + unpack ${P}-gentoo.tar.xz + unpack chromium-patches-${PATCH_V}.tar.bz2 + + use pgo && unpack chromium-profiler-0.2.tar + + if use test; then + # A new testdata tarball is available for each release; but testfonts tend to remain stable + # for the duration of a release. + # This unpacks directly into/over ${WORKDIR}/${P} so we can just use `unpack`. + unpack ${P}-testdata-gentoo.tar.xz + # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location. + local testfonts_dir="${WORKDIR}/${P}/third_party/test_fonts" + local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz" + tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts" + fi + + if use ppc64; then + unpack chromium_${PATCHSET_PPC64}.debian.tar.xz + unpack chromium-ppc64le-gentoo-patches-1.tar.xz + fi +} + +src_prepare() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # disable global media controls, crashes with libstdc++ + sed -i -e \ + "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ + "chrome/browser/media/router/media_router_feature.cc" + + local PATCHES=( + "${FILESDIR}/chromium-cross-compile.patch" + "${FILESDIR}/chromium-109-system-zlib.patch" + "${FILESDIR}/chromium-111-InkDropHost-crash.patch" + "${FILESDIR}/chromium-131-unbundle-icu-target.patch" + "${FILESDIR}/chromium-131-oauth2-client-switches.patch" + "${FILESDIR}/chromium-132-bindgen-custom-toolchain.patch" + ) + + PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) + # We can't use the bundled compiler builtins with the system toolchain + # `grep` is a development convenience to ensure we fail early when google changes something. + local builtins_match="if (is_clang && !is_nacl && !is_cronet_build) {" + grep -q "${builtins_match}" build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" + sed -i -e "/${builtins_match}/,+2d" build/config/compiler/BUILD.gn + + if use ppc64 ; then + local p + for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do + if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then + eapply "${WORKDIR}/debian/patches/${p}" + fi + done + PATCHES+=( "${WORKDIR}/ppc64le" ) + PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) + fi + + # This is a nightly option that does not exist any current release + # https://github.com/rust-lang/rust/commit/389a399a501a626ebf891ae0bb076c25e325ae64 + if ver_test ${RUST_SLOT} -le "1.82.0"; then + sed '/rustflags = \[ "-Zdefault-visibility=hidden" \]/d' -i build/config/gcc/BUILD.gn || + die "Failed to remove default visibility nightly option" + fi + + default + + rm third_party/node/linux/node-linux-x64/bin/node || die + ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die + + # adjust python interpreter version + sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die + + # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party' + # whitelist matches use the right-most matching path component, so we need to whitelist from that point down. + local keeplibs=( + base/third_party/cityhash + base/third_party/double_conversion + base/third_party/icu + base/third_party/nspr + base/third_party/superfasthash + base/third_party/symbolize + base/third_party/xdg_user_dirs + buildtools/third_party/libc++ + buildtools/third_party/libc++abi + chrome/third_party/mozilla_security_manager + net/third_party/mozilla_security_manager + net/third_party/nss + net/third_party/quic + net/third_party/uri_template + third_party/abseil-cpp + third_party/angle + third_party/angle/src/common/third_party/xxhash + third_party/angle/src/third_party/ceval + third_party/angle/src/third_party/libXNVCtrl + third_party/angle/src/third_party/volk + third_party/anonymous_tokens + third_party/apple_apsl + third_party/axe-core + third_party/bidimapper + third_party/blink + third_party/boringssl + third_party/boringssl/src/third_party/fiat + third_party/breakpad + third_party/breakpad/breakpad/src/third_party/curl + third_party/brotli + third_party/catapult + third_party/catapult/common/py_vulcanize/third_party/rcssmin + third_party/catapult/common/py_vulcanize/third_party/rjsmin + third_party/catapult/third_party/beautifulsoup4-4.9.3 + third_party/catapult/third_party/html5lib-1.1 + third_party/catapult/third_party/polymer + third_party/catapult/third_party/six + third_party/catapult/tracing/third_party/d3 + third_party/catapult/tracing/third_party/gl-matrix + third_party/catapult/tracing/third_party/jpeg-js + third_party/catapult/tracing/third_party/jszip + third_party/catapult/tracing/third_party/mannwhitneyu + third_party/catapult/tracing/third_party/oboe + third_party/catapult/tracing/third_party/pako + third_party/ced + third_party/cld_3 + third_party/closure_compiler + third_party/content_analysis_sdk + third_party/cpuinfo + third_party/crabbyavif + third_party/crashpad + third_party/crashpad/crashpad/third_party/lss + third_party/crashpad/crashpad/third_party/zlib + third_party/crc32c + third_party/cros_system_api + third_party/d3 + third_party/dav1d + third_party/dawn + third_party/dawn/third_party/gn/webgpu-cts + third_party/dawn/third_party/khronos + third_party/depot_tools + third_party/devscripts + third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party/acorn + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/devtools-frontend/src/front_end/third_party/axe-core + third_party/devtools-frontend/src/front_end/third_party/chromium + third_party/devtools-frontend/src/front_end/third_party/codemirror + third_party/devtools-frontend/src/front_end/third_party/csp_evaluator + third_party/devtools-frontend/src/front_end/third_party/diff + third_party/devtools-frontend/src/front_end/third_party/i18n + third_party/devtools-frontend/src/front_end/third_party/intl-messageformat + third_party/devtools-frontend/src/front_end/third_party/json5 + third_party/devtools-frontend/src/front_end/third_party/lighthouse + third_party/devtools-frontend/src/front_end/third_party/lit + third_party/devtools-frontend/src/front_end/third_party/marked + third_party/devtools-frontend/src/front_end/third_party/puppeteer + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs + third_party/devtools-frontend/src/front_end/third_party/third-party-web + third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data + third_party/devtools-frontend/src/front_end/third_party/wasmparser + third_party/devtools-frontend/src/front_end/third_party/web-vitals + third_party/devtools-frontend/src/third_party + third_party/distributed_point_functions + third_party/dom_distiller_js + third_party/eigen3 + third_party/emoji-segmenter + third_party/farmhash + third_party/fast_float + third_party/fdlibm + third_party/ffmpeg + third_party/fft2d + third_party/flatbuffers + third_party/fp16 + third_party/freetype + third_party/fusejs + third_party/fxdiv + third_party/gemmlowp + third_party/google_input_tools + third_party/google_input_tools/third_party/closure_library + third_party/google_input_tools/third_party/closure_library/third_party/closure + third_party/googletest + third_party/highway + third_party/hunspell + third_party/iccjpeg + third_party/ink_stroke_modeler/src/ink_stroke_modeler + third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal + third_party/ink/src/ink/brush + third_party/ink/src/ink/color + third_party/ink/src/ink/geometry + third_party/ink/src/ink/rendering + third_party/ink/src/ink/rendering/skia/common_internal + third_party/ink/src/ink/rendering/skia/native + third_party/ink/src/ink/rendering/skia/native/internal + third_party/ink/src/ink/strokes + third_party/ink/src/ink/types + third_party/inspector_protocol + third_party/ipcz + third_party/jinja2 + third_party/jsoncpp + third_party/jstemplate + third_party/khronos + third_party/lens_server_proto + third_party/leveldatabase + third_party/libaddressinput + third_party/libaom + third_party/libaom/source/libaom/third_party/fastfeat + third_party/libaom/source/libaom/third_party/SVT-AV1 + third_party/libaom/source/libaom/third_party/vector + third_party/libaom/source/libaom/third_party/x86inc + third_party/libavif + third_party/libc++ + third_party/libdrm + third_party/libevent + third_party/libgav1 + third_party/libjingle + third_party/libphonenumber + third_party/libsecret + third_party/libsrtp + third_party/libsync + third_party/libtess2/libtess2 + third_party/libtess2/src/Include + third_party/libtess2/src/Source + third_party/liburlpattern + third_party/libva_protected_content + third_party/libvpx + third_party/libvpx/source/libvpx/third_party/x86inc + third_party/libwebm + third_party/libx11 + third_party/libxcb-keysyms + third_party/libxml/chromium + third_party/libyuv + third_party/libzip + third_party/lit + third_party/llvm-libc + third_party/llvm-libc/src/shared/ + third_party/lottie + third_party/lss + third_party/lzma_sdk + third_party/mako + third_party/markupsafe + third_party/material_color_utilities + third_party/mesa + third_party/metrics_proto + third_party/minigbm + third_party/modp_b64 + third_party/nasm + third_party/nearby + third_party/neon_2_sse + third_party/node + third_party/omnibox_proto + third_party/one_euro_filter + third_party/openscreen + third_party/openscreen/src/third_party/ + third_party/openscreen/src/third_party/tinycbor/src/src + third_party/opus + third_party/ots + third_party/pdfium + third_party/pdfium/third_party/agg23 + third_party/pdfium/third_party/bigint + third_party/pdfium/third_party/freetype + third_party/pdfium/third_party/lcms + third_party/pdfium/third_party/libopenjpeg + third_party/pdfium/third_party/libtiff + third_party/perfetto + third_party/perfetto/protos/third_party/chromium + third_party/perfetto/protos/third_party/simpleperf + third_party/pffft + third_party/ply + third_party/polymer + third_party/private_membership + third_party/private-join-and-compute + third_party/protobuf + third_party/pthreadpool + third_party/puffin + third_party/pyjson5 + third_party/pyyaml + third_party/qcms + third_party/rapidhash + third_party/re2 + third_party/rnnoise + third_party/rust + third_party/ruy + third_party/s2cellid + third_party/securemessage + third_party/selenium-atoms + third_party/sentencepiece + third_party/sentencepiece/src/third_party/darts_clone + third_party/shell-encryption + third_party/simplejson + third_party/six + third_party/skia + third_party/skia/include/third_party/vulkan + third_party/skia/third_party/vulkan + third_party/smhasher + third_party/snappy + third_party/spirv-headers + third_party/spirv-tools + third_party/sqlite + third_party/swiftshader + third_party/swiftshader/third_party/astc-encoder + third_party/swiftshader/third_party/llvm-subzero + third_party/swiftshader/third_party/marl + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv + third_party/swiftshader/third_party/SPIRV-Tools + third_party/swiftshader/third_party/subzero + third_party/tensorflow_models + third_party/tensorflow-text + third_party/tflite + third_party/tflite/src/third_party/eigen3 + third_party/tflite/src/third_party/fft2d + third_party/tflite/src/third_party/xla/third_party/tsl + third_party/tflite/src/third_party/xla/xla/tsl/framework + third_party/tflite/src/third_party/xla/xla/tsl/lib/random + third_party/tflite/src/third_party/xla/xla/tsl/protobuf + third_party/tflite/src/third_party/xla/xla/tsl/util + third_party/ukey2 + third_party/unrar + third_party/utf + third_party/vulkan + third_party/wayland + third_party/webdriver + third_party/webgpu-cts + third_party/webrtc + third_party/webrtc/common_audio/third_party/ooura + third_party/webrtc/common_audio/third_party/spl_sqrt_floor + third_party/webrtc/modules/third_party/fft + third_party/webrtc/modules/third_party/g711 + third_party/webrtc/modules/third_party/g722 + third_party/webrtc/rtc_base/third_party/base64 + third_party/webrtc/rtc_base/third_party/sigslot + third_party/widevine + third_party/woff2 + third_party/wuffs + third_party/x11proto + third_party/xcbproto + third_party/xnnpack + third_party/zlib/google + third_party/zxcvbn-cpp + url/third_party/mozilla + v8/src/third_party/siphash + v8/src/third_party/utf8-decoder + v8/src/third_party/valgrind + v8/third_party/glibc + v8/third_party/inspector_protocol + v8/third_party/v8 + + # gyp -> gn leftovers + third_party/speech-dispatcher + third_party/usb_ids + third_party/xdg-utils + ) + + if use test; then + # tar tvf /var/cache/distfiles/${P}-testdata.tar.xz | grep '^d' | grep 'third_party' | awk '{print $NF}' + keeplibs+=( + third_party/breakpad/breakpad/src/processor + third_party/google_benchmark/src/include/benchmark + third_party/google_benchmark/src/src + third_party/perfetto/protos/third_party/pprof + third_party/test_fonts + third_party/test_fonts/fontconfig + ) + fi + + # USE=system-* + if ! use system-harfbuzz; then + keeplibs+=( third_party/harfbuzz-ng ) + fi + + if ! use system-icu; then + keeplibs+=( third_party/icu ) + fi + + if ! use system-png; then + keeplibs+=( third_party/libpng ) + fi + + if ! use system-zstd; then + keeplibs+=( third_party/zstd ) + fi + + # Arch-specific + if use arm64 || use ppc64 ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) + fi + # we need to generate ppc64 stuff because upstream does not ship it yet + # it has to be done before unbundling. + if use ppc64; then + pushd third_party/libvpx >/dev/null || die + mkdir -p source/config/linux/ppc64 || die + # requires git and clang, bug #832803 + # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh + # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh + # since we're not in a git repo + sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ + generate_gni.sh || die + ./generate_gni.sh || die + popd >/dev/null || die + + pushd third_party/ffmpeg >/dev/null || die + cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die + cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die + popd >/dev/null || die + fi + + # Sanity check keeplibs, on major version bumps it is often necessary to update this list + # and this enables us to hit them all at once. + # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd) + whitelist_libs=( + net/third_party/quic + third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json + third_party/libjingle + third_party/mesa + third_party/skia/third_party/vulkan + third_party/vulkan + ) + local not_found_libs=() + for lib in "${keeplibs[@]}"; do + if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then + not_found_libs+=( "${lib}" ) + fi + done + + if [[ ${#not_found_libs[@]} -gt 0 ]]; then + eerror "The following \`keeplibs\` directories were not found in the source tree:" + for lib in "${not_found_libs[@]}"; do + eerror " ${lib}" + done + die "Please update the ebuild." + fi + + # Remove most bundled libraries. Some are still needed. + einfo "Unbundling third-party libraries ..." + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die + + # TODO: From 127 chromium includes a bunch of binaries? Unbundle them; they're not needed. + + # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries + mkdir -p buildtools/third_party/eu-strip/bin || die + ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die +} + +chromium_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + local myconf_gn="" + + # We already forced the "correct" clang via pkg_setup + + if tc-is-cross-compiler; then + CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}" + CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}" + BUILD_AR=${AR} + BUILD_CC=${CC} + BUILD_CXX=${CXX} + BUILD_NM=${NM} + fi + + strip-unsupported-flags + + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + # https://bugs.gentoo.org/918897#c32 + append-ldflags -Wl,--undefined-version + myconf_gn+=" use_lld=true" + + # Make sure the build system will use the right tools, bug #340795. + tc-export AR CC CXX NM + + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" + + if tc-is-cross-compiler; then + tc-export BUILD_{AR,CC,CXX,NM} + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" + myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" + myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" + + # setup cups-config, build system only uses --libs option + if use cups; then + mkdir "${T}/cups-config" || die + cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die + export PATH="${PATH}:${T}/cups-config" + fi + + # Don't inherit PKG_CONFIG_PATH from environment + local -x PKG_CONFIG_PATH= + else + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" + fi + + # bindgen settings + # From 127, to make bindgen work, we need to provide a location for libclang. + # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch + # rust_bindgen_root = directory with `bin/bindgen` beneath it. + myconf_gn+=" rust_bindgen_root=\"${EPREFIX}/usr/\"" + + myconf_gn+=" bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" + # We don't need to set 'clang_base_bath' for anything in our build + # and it defaults to the google toolchain location. Instead provide a location + # to where system clang lives sot that bindgen can find system headers (e.g. stddef.h) + myconf_gn+=" clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" + + myconf_gn+=" rust_sysroot_absolute=\"$(get_rust_prefix)\"" + myconf_gn+=" rustc_version=\"${RUST_SLOT}\"" + + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. + myconf_gn+=" is_debug=false" + + # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. + # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. + myconf_gn+=" dcheck_always_on=$(usex debug true false)" + myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" + + # Component build isn't generally intended for use by end users. It's mostly useful + # for development and debugging. + myconf_gn+=" is_component_build=false" + + # Disable nacl, we can't build without pnacl (http://crbug.com/269560). + myconf_gn+=" enable_nacl=false" + + # Use system-provided libraries. + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). + # TODO: use_system_hunspell (upstream changes needed). + # TODO: use_system_protobuf (bug #525560). + # TODO: use_system_sqlite (http://crbug.com/22208). + + # libevent: https://bugs.gentoo.org/593458 + local gn_system_libraries=( + flac + fontconfig + freetype + # Need harfbuzz_from_pkgconfig target + #harfbuzz-ng + libjpeg + libwebp + libxml + libxslt + openh264 + zlib + ) + if use system-icu; then + gn_system_libraries+=( icu ) + fi + if use system-png; then + gn_system_libraries+=( libpng ) + fi + if use system-zstd; then + gn_system_libraries+=( zstd ) + fi + + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die + + # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file + # drop the last line, then append the freetype line and a new curly brace to end the block + local freetype_gni="build/config/freetype/freetype.gni" + sed -i -e '$d' ${freetype_gni} || die + echo " enable_freetype = true" >> ${freetype_gni} || die + echo "}" >> ${freetype_gni} || die + + # See dependency logic in third_party/BUILD.gn + myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" + + # Optional dependencies. + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" + myconf_gn+=" enable_widevine=$(usex widevine true false)" + + if use headless; then + myconf_gn+=" use_cups=false" + myconf_gn+=" use_kerberos=false" + myconf_gn+=" use_pulseaudio=false" + myconf_gn+=" use_vaapi=false" + myconf_gn+=" rtc_use_pipewire=false" + else + myconf_gn+=" use_cups=$(usex cups true false)" + myconf_gn+=" use_kerberos=$(usex kerberos true false)" + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" + myconf_gn+=" use_vaapi=$(usex vaapi true false)" + myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" + myconf_gn+=" gtk_version=$(usex gtk4 4 3)" + fi + + # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of + # using dlopen. This helps with automated detection of ABI mismatches and + # prevents silent errors. + if use pulseaudio; then + myconf_gn+=" link_pulseaudio=true" + fi + + # Non-developer builds of Chromium (for example, non-Chrome browsers, or + # Chromium builds provided by Linux distros) should disable the testing config + myconf_gn+=" disable_fieldtrial_testing_config=true" + + # The sysroot is the oldest debian image that chromium supports, we don't need it + myconf_gn+=" use_sysroot=false" + + # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi) + # instead of the system C++ library for C++ standard library support. + # default: true, but let's be explicit (forced since 120 ; USE removed 127). + myconf_gn+=" use_custom_libcxx=true" + + # Disable pseudolocales, only used for testing + myconf_gn+=" enable_pseudolocales=false" + + # Disable code formating of generated files + myconf_gn+=" blink_enable_generated_code_formatting=false" + + if use bindist ; then + # proprietary_codecs just forces Chromium to say that it can use h264/aac, + # the work is still done by ffmpeg. If this is set to no Chromium + # won't be able to load the codec even if the library can handle it + myconf_gn+=" proprietary_codecs=true" + myconf_gn+=" ffmpeg_branding=\"Chrome\"" + # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute + myconf_gn+=" is_component_ffmpeg=true" + else + ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" + myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" + myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" + 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. The OAuth2 credentials, however, have been left out. + # Those OAuth2 credentials have been broken for quite some time anyway. + # Instead we apply a patch to use the --oauth2-client-id= and + # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and + # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into + # Chromium without baked-in values. + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" + myconf_gn+=" google_api_key=\"${google_api_key}\"" + local myarch="$(tc-arch)" + + # Avoid CFLAGS problems, bug #352457, bug #390147. + if ! use custom-cflags; then + replace-flags "-Os" "-O2" + strip-flags + + # Debug info section overflows without component build + # Prevent linker from running out of address space, bug #471810 . + filter-flags "-g*" + + # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. + if [[ ${myarch} == amd64 ]]; then + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a + fi + fi + + if [[ $myarch = amd64 ]] ; then + myconf_gn+=" target_cpu=\"x64\"" + ffmpeg_target_arch=x64 + elif [[ $myarch = arm64 ]] ; then + myconf_gn+=" target_cpu=\"arm64\"" + ffmpeg_target_arch=arm64 + elif [[ $myarch = ppc64 ]] ; then + myconf_gn+=" target_cpu=\"ppc64\"" + ffmpeg_target_arch=ppc64 + else + die "Failed to determine target arch, got '$myarch'." + fi + + myconf_gn+=" treat_warnings_as_errors=false" + # Disable fatal linker warnings, bug 506268. + myconf_gn+=" fatal_linker_warnings=false" + + # Disable external code space for V8 for ppc64. It is disabled for ppc64 + # by default, but cross-compiling on amd64 enables it again. + if tc-is-cross-compiler; then + if ! use amd64 && ! use arm64; then + myconf_gn+=" v8_enable_external_code_space=false" + fi + fi + + # Only enabled for clang, but gcc has endian macros too + myconf_gn+=" v8_use_libm_trig_functions=true" + + # Bug 491582. + export TMPDIR="${WORKDIR}/temp" + mkdir -p -m 755 "${TMPDIR}" || die + + # https://bugs.gentoo.org/654216 + addpredict /dev/dri/ #nowarn + + # We don't use the same clang version as upstream, and with -Werror + # we need to make sure that we don't get superfluous warnings. + append-flags -Wno-unknown-warning-option + if tc-is-cross-compiler; then + export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" + export BUILD_CFLAGS+=" -Wno-unknown-warning-option" + fi + + # Explicitly disable ICU data file support for system-icu/headless builds. + if use system-icu || use headless; then + myconf_gn+=" icu_use_data_file=false" + fi + + # Don't need nocompile checks and GN crashes with our config + myconf_gn+=" enable_nocompile_tests=false" + + # 131 began laying the groundwork for replacing freetype with + # "Rust-based Fontations set of libraries plus Skia path rendering" + # We now need to opt-in + myconf_gn+=" enable_freetype=true" + + # Enable ozone wayland and/or headless support + myconf_gn+=" use_ozone=true ozone_auto_platforms=false" + myconf_gn+=" ozone_platform_headless=true" + if use headless; then + myconf_gn+=" ozone_platform=\"headless\"" + myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" + myconf_gn+=" use_glib=false use_gio=false" + myconf_gn+=" use_pangocairo=false use_alsa=false" + myconf_gn+=" use_libpci=false use_udev=false" + myconf_gn+=" enable_print_preview=false" + myconf_gn+=" enable_remoting=false" + else + myconf_gn+=" use_system_minigbm=true" + myconf_gn+=" use_xkbcommon=true" + if use qt5 || use qt6; then + local cbuild_libdir=$(get_libdir) + if tc-is-cross-compiler; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) + cbuild_libdir=${cbuild_libdir:2} + cbuild_libdir=${cbuild_libdir/% } + fi + if use qt5; then + if tc-is-cross-compiler; then + myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" + else + myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" + fi + fi + if use qt6; then + myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" + fi + + myconf_gn+=" use_qt=true" + myconf_gn+=" use_qt6=$(usex qt6 true false)" + else + myconf_gn+=" use_qt=false" + fi + myconf_gn+=" ozone_platform_x11=$(usex X true false)" + myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" + myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" + use wayland && myconf_gn+=" use_system_libffi=true" + fi + + myconf_gn+=" use_thin_lto=${use_lto}" + myconf_gn+=" thin_lto_enable_optimizations=${use_lto}" + + # Enable official builds + myconf_gn+=" is_official_build=$(usex official true false)" + if use official; then + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py || die + myconf_gn+=" is_cfi=${use_lto}" + # Don't add symbols to build + myconf_gn+=" symbol_level=0" + fi + + if use pgo; then + myconf_gn+=" chrome_pgo_phase=${1}" + if [[ "$1" == "2" ]]; then + myconf_gn+=" pgo_data_path=\"${2}\"" + fi + else + # Disable PGO + myconf_gn+=" chrome_pgo_phase=0" + fi + + # skipping typecheck is only supported on amd64, bug #876157 + if ! use amd64; then + myconf_gn+=" devtools_skip_typecheck=false" + fi + + einfo "Configuring Chromium ..." + set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release + echo "$@" + "$@" || die +} + +src_configure() { + chromium_configure $(usex pgo 1 0) +} + +chromium_compile() { + + # Final link uses lots of file descriptors. + ulimit -n 2048 + + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # Don't inherit PYTHONPATH from environment, bug #789021, #812689 + local -x PYTHONPATH= + + # Build mksnapshot and pax-mark it. + if use pax-kernel; then + local x + for x in mksnapshot v8_context_snapshot_generator; do + if tc-is-cross-compiler; then + eninja -C out/Release "host/${x}" + pax-mark m "out/Release/host/${x}" + else + eninja -C out/Release "${x}" + pax-mark m "out/Release/${x}" + fi + done + fi + + # Even though ninja autodetects number of CPUs, we respect + # user's options, for debugging with -j 1 or any other reason. + eninja -C out/Release chrome chromedriver chrome_sandbox $(use test && echo "base_unittests") + + pax-mark m out/Release/chrome + +} + +# This function is called from virtx, and must always return so that Xvfb +# session isn't left running. If we return 1, virtx will call die(). +chromium_profile() { + einfo "Profiling for PGO" + + pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 + + # Remove old profdata in case profiling was interrupted. + rm -rf "${1}" || return 1 + + if ! "${EPYTHON}" ./chromium_profiler.py \ + --chrome-executable "${S}/out/Release/chrome" \ + --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ + --add-arg no-sandbox --add-arg disable-dev-shm-usage \ + --profile-output "${1}"; then + eerror "Profiling failed" + return 1 + fi + + popd >/dev/null || return 1 +} + +src_compile() { + if use pgo; then + local profdata + + profdata="${WORKDIR}/chromium.profdata" + + if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then + chromium_compile + virtx chromium_profile "$profdata" + + touch "${WORKDIR}/.pgo-profiled" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then + # Remove phase 1 output + rm -r out/Release || die + + chromium_configure 2 "$profdata" + + touch "${WORKDIR}/.pgo-phase-2-configured" || die + fi + + if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then + chromium_compile + touch "${WORKDIR}/.pgo-phase-2-compiled" || die + fi + else + chromium_compile + fi + + mv out/Release/chromedriver{.unstripped,} || die + + rm -f out/Release/locales/*.pak.info || die + + # Build manpage; bug #684550 + sed -e 's|@@PACKAGE@@|chromium-browser|g; + s|@@MENUNAME@@|Chromium|g;' \ + chrome/app/resources/manpage.1.in > \ + out/Release/chromium-browser.1 || die + + # Build desktop file; bug #706786 + sed -e 's|@@MENUNAME@@|Chromium|g; + s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; + s|@@PACKAGE@@|chromium-browser|g; + s|\(^Exec=\)/usr/bin/|\1|g;' \ + chrome/installer/linux/common/desktop.template > \ + out/Release/chromium-browser-chromium.desktop || die + + # Build vk_swiftshader_icd.json; bug #827861 + sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ + third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ + out/Release/vk_swiftshader_icd.json || die +} + +src_test() { + # Initial list of tests to skip pulled from Alpine. Thanks Lauren! + # https://issues.chromium.org/issues/40939315 + local skip_tests=( + 'MessagePumpLibeventTest.NestedNotification*' + ClampTest.Death + OptionalTest.DereferencingNoValueCrashes + PlatformThreadTest.SetCurrentThreadTypeTest + RawPtrTest.TrivialRelocability + SafeNumerics.IntMaxOperations + StackTraceTest.TraceStackFramePointersFromBuffer + StringPieceTest.InvalidLengthDeath + StringPieceTest.OutOfBoundsDeath + ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker + ValuesUtilTest.FilePath + # Gentoo-specific + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/0 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/1 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/2 + AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/3 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/0 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/1 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/2 + AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/3 + CharacterEncodingTest.GetCanonicalEncodingNameByAliasName + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGFPE + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGILL + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGV + CheckExitCodeAfterSignalHandlerDeathTest.CheckSIGSEGVNonCanonicalAddress + FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe + FileTest.GetInfoForCreationTime + ICUStringConversionsTest.ConvertToUtf8AndNormalize + NumberFormattingTest.FormatPercent + PathServiceTest.CheckedGetFailure + PlatformThreadTest.CanChangeThreadType + RustLogIntegrationTest.CheckAllSeverity + StackCanary.ChangingStackCanaryCrashesOnReturn + StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree + SysStrings.SysNativeMBAndWide + SysStrings.SysNativeMBToWide + SysStrings.SysWideToNativeMB + TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest + ToolsSanityTest.BadVirtualCallNull + ToolsSanityTest.BadVirtualCallWrongType + ) + local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")" + # test-launcher-bot-mode enables parallelism and plain output + ./out/Release/base_unittests --test-launcher-bot-mode \ + --test-launcher-jobs="$(makeopts_jobs)" \ + --gtest_filter="${test_filter}" || die "Tests failed!" +} + +src_install() { + local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" + exeinto "${CHROMIUM_HOME}" + doexe out/Release/chrome + + newexe out/Release/chrome_sandbox chrome-sandbox + fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" + + doexe out/Release/chromedriver + doexe out/Release/chrome_crashpad_handler + + ozone_auto_session () { + use X && use wayland && ! use headless && echo true || echo false + } + local sedargs=( -e + "s:/usr/lib/:/usr/$(get_libdir)/:g; + s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" + ) + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die + doexe chromium-launcher.sh + + # It is important that we name the target "chromium-browser", + # xdg-utils expect it; bug #355517. + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser + # keep the old symlink around for consistency + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium + + dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver + + # Allow users to override command-line options, bug #357629. + insinto /etc/chromium + newins "${FILESDIR}/chromium.default" "default" + + pushd out/Release/locales > /dev/null || die + chromium_remove_language_paks + popd + + insinto "${CHROMIUM_HOME}" + doins out/Release/*.bin + doins out/Release/*.pak + + if use bindist; then + # We built libffmpeg as a component library, but we can't distribute it + # with proprietary codec support. Remove it and make a symlink to the requested + # system library. + rm -f out/Release/libffmpeg.so \ + || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" + # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. + einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." + dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ + /usr/$(get_libdir)/chromium-browser/libffmpeg.so + fi + + ( + shopt -s nullglob + local files=(out/Release/*.so out/Release/*.so.[0-9]) + [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" + ) + + # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" + doins out/Release/xdg-{settings,mime} + + if ! use system-icu && ! use headless; then + doins out/Release/icudtl.dat + fi + + doins -r out/Release/locales + doins -r out/Release/MEIPreload + + # Install vk_swiftshader_icd.json; bug #827861 + doins out/Release/vk_swiftshader_icd.json + + if [[ -d out/Release/swiftshader ]]; then + insinto "${CHROMIUM_HOME}/swiftshader" + doins out/Release/swiftshader/*.so + fi + + # Install icons + local branding size + for size in 16 24 32 48 64 128 256 ; do + case ${size} in + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; + *) branding="chrome/app/theme/chromium" ;; + esac + newicon -s ${size} "${branding}/product_logo_${size}.png" \ + chromium-browser.png + done + + # Install desktop entry + domenu out/Release/chromium-browser-chromium.desktop + + # Install GNOME default application entry (bug #303100). + insinto /usr/share/gnome-control-center/default-apps + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml + + # Install manpage; bug #684550 + doman out/Release/chromium-browser.1 + dosym chromium-browser.1 /usr/share/man/man1/chromium.1 + + readme.gentoo_create_doc +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + readme.gentoo_print_elog + + if ! use headless; then + if use vaapi; then + elog "VA-API is disabled by default at runtime. You have to enable it" + elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" + elog "in /etc/chromium/default." + fi + if use screencast; then + elog "Screencast is disabled by default at runtime. Either enable it" + elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" + elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use gtk4; then + elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" + elog "behavior you need to pass --gtk-version=4, e.g. by adding it" + elog "to CHROMIUM_FLAGS in /etc/chromium/default." + fi + if use qt5 && use qt6; then + elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" + elog "environment. To override you need to pass --qt-version=5 or" + elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" + elog "/etc/chromium/default." + fi + fi + + if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then + ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" + ewarn "indicates that the Gentoo handbook was not followed to completion." + ewarn "" + ewarn "Chromium is known to behave unpredictably with this system configuration;" + ewarn "please complete the configuration of this system before logging any bugs." + fi +} diff --git a/www-client/google-chrome-unstable/Manifest b/www-client/google-chrome-unstable/Manifest index 72a75a1f89cd..549f26b1e8f8 100644 --- a/www-client/google-chrome-unstable/Manifest +++ b/www-client/google-chrome-unstable/Manifest @@ -1,3 +1,3 @@ -DIST google-chrome-unstable_132.0.6821.2-1_amd64.deb 112128092 BLAKE2B 8b55f3dae0ae031025807dd2040cac64279eb9126d76757f5bbd1a56649191c9e69cf95fb6ccfde8828040c663477e82dee80f502bebfb397b5e598cb0d4990d SHA512 048ca18f7c73a9fa40149d6eaf6e0c64c9e3a6f37c726cc9247860b043a4ac8ed4456b08b37a7f3109fadfd0bf726aaca5965be1c6668208139ecf33b89a3350 -EBUILD google-chrome-unstable-132.0.6821.2.ebuild 2983 BLAKE2B c0683d291bd6459daf64a35c34b4d56824b1c1119afe758af8bc18dc2a3625f16c5e94b4a137a8fd5b7673d36d3b6e559df17269ad3dce405643edb809137e10 SHA512 b00a89fbd7d0d9dd1a999ae2b01b7aec9ad2b6e7b9bde8727e22b9a35769da5ed7fe351fcca6681e02007380662b0688a2990f205b1dfed8effb91d991ab21d4 +DIST google-chrome-unstable_133.0.6835.3-1_amd64.deb 112324536 BLAKE2B a07fdd9abba62abdc17268997b654954cb46faf933d570d421b328bdcb5714f5223cf120930021ead9b4ce4590e5578a06d214d2f72dfb8c7a019033aff67452 SHA512 1aadc977b0d189608e810db58068b1609af0afffcc0a76c10971629b8d695c0f4ac1d2ba299a5371a184ffbf31911c995eee3adf4a17cb390674c7c521dae74e +EBUILD google-chrome-unstable-133.0.6835.3.ebuild 2983 BLAKE2B c0683d291bd6459daf64a35c34b4d56824b1c1119afe758af8bc18dc2a3625f16c5e94b4a137a8fd5b7673d36d3b6e559df17269ad3dce405643edb809137e10 SHA512 b00a89fbd7d0d9dd1a999ae2b01b7aec9ad2b6e7b9bde8727e22b9a35769da5ed7fe351fcca6681e02007380662b0688a2990f205b1dfed8effb91d991ab21d4 MISC metadata.xml 437 BLAKE2B 35ab5a754d8e65db84e25b08c76bed923c2f9eb1b1d65687dda842313b5f339c90cbb3eb8fe12ecb58f201383955ad8f72a5b34484265194a3fcffcf760122ef SHA512 82e6057b085e849bc5484b53fef974022bb9db33836502e8d54fca3c8f54f47768f9b0ed4591d90a444e82142e727d4e4071236b114705f91c005f170b2a3986 diff --git a/www-client/google-chrome-unstable/google-chrome-unstable-132.0.6821.2.ebuild b/www-client/google-chrome-unstable/google-chrome-unstable-133.0.6835.3.ebuild index dd9e9c497aea..dd9e9c497aea 100644 --- a/www-client/google-chrome-unstable/google-chrome-unstable-132.0.6821.2.ebuild +++ b/www-client/google-chrome-unstable/google-chrome-unstable-133.0.6835.3.ebuild diff --git a/www-client/google-chrome/Manifest b/www-client/google-chrome/Manifest index e081f7104ef4..82e2e0f56dce 100644 --- a/www-client/google-chrome/Manifest +++ b/www-client/google-chrome/Manifest @@ -1,3 +1,3 @@ -DIST google-chrome-stable_131.0.6778.69-1_amd64.deb 112472656 BLAKE2B b7e02bf6a5319a016590cd0b4da33cd282bcab7ce3c62e8f7b250175d5f1f356963c90ea2a16e86156a5166cfd6f358d2d9f004d8cb9568bbf623d3a94de21ae SHA512 47afd89418513f8e05b3206175abb0736ae263333d66ed8a2d78af8bf44978400612447ee6d846f35c45d97f3d8b5d3ea0ed9549b9e884f9dca11bdce0382ba8 -EBUILD google-chrome-131.0.6778.69.ebuild 2982 BLAKE2B 94c28a910834b70ccfa642f6e5372dce9e534bf5b9c210516958e8cd96c4b8e042d360a9fa5c85d13cbe4b152a26b7751f5f87ab832002fe21e83f2cdf03f47e SHA512 23c9d78446da4b7ceef659dd659af367733abb766207e343fc991122d13744e3d67b0919d9d6371df5fc43815301c062087e1ce8d685e41ad0613e352b8c96ee +DIST google-chrome-stable_131.0.6778.85-1_amd64.deb 112363312 BLAKE2B 3285cba9b13cb1286cb2828fe6f200d1f89f7ebca2446a9613165f161b201000ccfaa98f52e9f0c79c4140af6fc4a5a3754528f85a9e2fb2bb081ca8bcfe4115 SHA512 c3af22651d25da22e28ef876e53bf6dba5e5af0d141d6fc7f76258548d1d71d88060ed8c8169c59646749bd57d97fc8d1465856ebabe3b8b30a919fa04448880 +EBUILD google-chrome-131.0.6778.85.ebuild 2982 BLAKE2B 94c28a910834b70ccfa642f6e5372dce9e534bf5b9c210516958e8cd96c4b8e042d360a9fa5c85d13cbe4b152a26b7751f5f87ab832002fe21e83f2cdf03f47e SHA512 23c9d78446da4b7ceef659dd659af367733abb766207e343fc991122d13744e3d67b0919d9d6371df5fc43815301c062087e1ce8d685e41ad0613e352b8c96ee MISC metadata.xml 437 BLAKE2B 35ab5a754d8e65db84e25b08c76bed923c2f9eb1b1d65687dda842313b5f339c90cbb3eb8fe12ecb58f201383955ad8f72a5b34484265194a3fcffcf760122ef SHA512 82e6057b085e849bc5484b53fef974022bb9db33836502e8d54fca3c8f54f47768f9b0ed4591d90a444e82142e727d4e4071236b114705f91c005f170b2a3986 diff --git a/www-client/google-chrome/google-chrome-131.0.6778.69.ebuild b/www-client/google-chrome/google-chrome-131.0.6778.85.ebuild index a6673ff33b80..a6673ff33b80 100644 --- a/www-client/google-chrome/google-chrome-131.0.6778.69.ebuild +++ b/www-client/google-chrome/google-chrome-131.0.6778.85.ebuild diff --git a/www-client/microsoft-edge-beta/Manifest b/www-client/microsoft-edge-beta/Manifest index 50335fa5ac4e..a50c2b3c90ed 100644 --- a/www-client/microsoft-edge-beta/Manifest +++ b/www-client/microsoft-edge-beta/Manifest @@ -1,7 +1,7 @@ -DIST microsoft-edge-beta_131.0.2903.27-1_amd64.deb 168662946 BLAKE2B efe292a1dcee997fd241fa441cd5b0b30b5345fd0a034ca410b427ac7932365ee747899c6ed223dc34d743a228ca321de51f9d7e01b265092487cc8138e04012 SHA512 62090b61b076855c71f29c0cab098378617b5bc30f344a0694295835c07746ac0b1d4059da8c8f73b95be09e4df59221f9fc3cf31afdc642140f96f41616a778 -DIST microsoft-edge-beta_131.0.2903.36-1_amd64.deb 168700630 BLAKE2B 5d9c7bbf37eb6becdb2f47067766d3d02fb26522d4a14b1eb334fd39e4118a245e4183d624293bdfdbebbe005995618728f21efb14b257127ba7c3589fa71747 SHA512 8a79f1f3f51f03a2378827d476069be83af85be96c0bc956e962b43d14cc625acf8101a60ba1e9206ad1ca73ee9c657875dc87007c14787db1afc2655a172307 DIST microsoft-edge-beta_131.0.2903.45-1_amd64.deb 168670394 BLAKE2B 6383afcf3c5052bf3adc457046921df6dd36c73ead7a124a82d4ae38fe48849abe523cbff2ebbdf45b7c769bf8a07b360cabdf94dbf9155c02d48fa83c7b198b SHA512 d31b1ea6a0ea067d257226e1f75f404d07b542443c286dc832c393601a61a2afaa1dd66ad6141abe33ec330b3c155bbf4106ae9b72a92d982d6913005e5b48bf -EBUILD microsoft-edge-beta-131.0.2903.27.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b -EBUILD microsoft-edge-beta-131.0.2903.36.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b +DIST microsoft-edge-beta_131.0.2903.48-1_amd64.deb 168662034 BLAKE2B 103399cdd3343fea7234912082dd82cd75426245bd7bef106459bbf3e2d63c3bcebd2ba5a502a374d144e5deff2f34a3b7772656f12f4bea7979c08290409cc9 SHA512 62285295985e0bbc42ede5acbe3eaa35d13ce486f288e7774b17ffdbeb0428b6f41424db1754568bc4d004e566b8f4294bec5be459a67f1c61fbb0e3f92699d2 +DIST microsoft-edge-beta_131.0.2903.51-1_amd64.deb 168664862 BLAKE2B f7e41998d33519296b1796f34793374ccba9ada9a836cb2120b69cc063d56cd12d051518a5ba54b437ecf7335030a488c37ae03849d8e382efded1faea0952e0 SHA512 f1e00c33575cb1922c81fe3f59c4ed0ebe2447394d1094c70e986efddc29c6ed96a978077694645f6c484810ec34da9bd1925a8c04ed7cf3a6a3d7264af947fe EBUILD microsoft-edge-beta-131.0.2903.45.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b +EBUILD microsoft-edge-beta-131.0.2903.48.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b +EBUILD microsoft-edge-beta-131.0.2903.51.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b MISC metadata.xml 528 BLAKE2B ef09f12e6f9b503cd78a39ece67ab0b21c4760114b052bf105b7c5e426a1df43a5b37ff547338fc7122ac8a029b2ebb85a8793dbd4d192ae990ae71829dcdec6 SHA512 b6ab632cfce365f249a178a261eba3d469cd645cdcb99dd1bc4f1e865fbd6668cfd0f7171843e2b234ff852f8191a8b08b48cf89991cdfc7ca36337a71e5a38d diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.27.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.48.ebuild index 0ff710cc5ddc..0ff710cc5ddc 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.27.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.48.ebuild diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.36.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.51.ebuild index 0ff710cc5ddc..0ff710cc5ddc 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.36.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-131.0.2903.51.ebuild diff --git a/www-client/microsoft-edge/Manifest b/www-client/microsoft-edge/Manifest index adfc816cdc27..5e9fbbd183ee 100644 --- a/www-client/microsoft-edge/Manifest +++ b/www-client/microsoft-edge/Manifest @@ -1,3 +1,3 @@ -DIST microsoft-edge-stable_130.0.2849.80-1_amd64.deb 166816954 BLAKE2B 65fc5648eed22882f53cfe3c7908b3ca5b4c24e34346024ca66ddab91856145df953379a3f063180cc7a14f3e5f93772e92e581d375040840ef10211a94dbf46 SHA512 e73884221d6d02e2f12509651b88062dfcb97cbba7d1bf6d208c9b1469af24ebb777e365f9c2380de35b39aeb21feebd2a0b626304ce631bdcc41d7f7da6c1c0 -EBUILD microsoft-edge-130.0.2849.80.ebuild 2711 BLAKE2B 1bb44a3c56ae9b33ff45f5cede57afd5c9f39d9b02f030029e22de9694efe09e68eb0106d8a896e85de2fb033341c7b479a3c4d10e9b5be5ee50fa9ab218da0b SHA512 3df8105072f7b861b8fbb50a8c93ecd9b8221548dcfc84563b8aae1546c94687d45d8dded312c9b560f99bb9b3bcf0da24ca8489dd413b52a245943e778a073a +DIST microsoft-edge-stable_131.0.2903.51-1_amd64.deb 168571482 BLAKE2B ae98073c061e169ab8946037f5fc90feed52796a75c25f7e7c736756a8ecb56ff8809a459319fa66e0b20b8fa78775966702a21820b4bdcf84f8c66469620fce SHA512 72530b5029c907c8e992bff58904a358471b7980c94f86893dfbf87f68f2698d298f663a8387c7f53b63b5a2d858665f14fafd2dcfdfc761c42e3906aed5c3bf +EBUILD microsoft-edge-131.0.2903.51.ebuild 2711 BLAKE2B 1bb44a3c56ae9b33ff45f5cede57afd5c9f39d9b02f030029e22de9694efe09e68eb0106d8a896e85de2fb033341c7b479a3c4d10e9b5be5ee50fa9ab218da0b SHA512 3df8105072f7b861b8fbb50a8c93ecd9b8221548dcfc84563b8aae1546c94687d45d8dded312c9b560f99bb9b3bcf0da24ca8489dd413b52a245943e778a073a MISC metadata.xml 528 BLAKE2B ef09f12e6f9b503cd78a39ece67ab0b21c4760114b052bf105b7c5e426a1df43a5b37ff547338fc7122ac8a029b2ebb85a8793dbd4d192ae990ae71829dcdec6 SHA512 b6ab632cfce365f249a178a261eba3d469cd645cdcb99dd1bc4f1e865fbd6668cfd0f7171843e2b234ff852f8191a8b08b48cf89991cdfc7ca36337a71e5a38d diff --git a/www-client/microsoft-edge/microsoft-edge-130.0.2849.80.ebuild b/www-client/microsoft-edge/microsoft-edge-131.0.2903.51.ebuild index 7ea339bd40f9..7ea339bd40f9 100644 --- a/www-client/microsoft-edge/microsoft-edge-130.0.2849.80.ebuild +++ b/www-client/microsoft-edge/microsoft-edge-131.0.2903.51.ebuild diff --git a/www-client/opera-beta/Manifest b/www-client/opera-beta/Manifest index 2306601dcbee..18cf16b2b201 100644 --- a/www-client/opera-beta/Manifest +++ b/www-client/opera-beta/Manifest @@ -1,7 +1,7 @@ DIST opera-beta_114.0.5282.101_amd64.deb 115291244 BLAKE2B 2a1f22e248f7d4d59cf9c454caa500c9ad616c0ff1bfe69058ea3c50aefb493019f25b277b714bfd08cbab8accaa0f0421427652e261f2bd8066036c6c042b25 SHA512 171f28671dded63a816ce7b55cd1ff7bb0cc96bdd51302029511e4acf0d38baf70c5ec4e52aa506c4074022f0fdb2db4a089ef7d262e5c46120ac4b063d180ef -DIST opera-beta_114.0.5282.12_amd64.deb 114383976 BLAKE2B 5fa655e5fb52f49f527bba9a49be628dab30d60df9c04d064342359f080000615d5d579acff709d92bfe4ebcb3c357b23960e7f0de08258f6fddcf8dc915d087 SHA512 462da804c81130658e546f442baa4be2ee71f6d1ee95ddd591795ea1f32e4657657437ad456c124117b686dfb155ea7d8a16d40a4663a7234499640c7b50a8b6 DIST opera-beta_115.0.5322.36_amd64.deb 128000420 BLAKE2B 7c9a7d5e84d2af44d4016df079db43cf9c3528d78b9b3835db30a62fe05dcfd3054e8a4f99a52d0479881a28f7edee0ea84943d6358c63357eb214948e9fbcee SHA512 a7befcabb85c88e05691bb680a8932b3b5e13ede9d04f8f5053432399abfd99e4896e7e6d8ead5c4cbbeb44c931fa5f1491073e7b658281353916049079bbb4a +DIST opera-beta_115.0.5322.58_amd64.deb 128403936 BLAKE2B 90d0abc5b44d5eb40fe32cc4e2102d0434513f00f5e8fd67b53716cee380f80e5fda5eec95be71c2253cd7f1d81cef60bdae19abe1d1758e6df2953255f73fa6 SHA512 729826a40c8b81fa178cce957f323efa9befda61a218cf4e4b6040193510eaf294f90d6807b2853a0366035b85aa330a004402baa7d7fffe6fa7b1b7afd251aa EBUILD opera-beta-114.0.5282.101.ebuild 4223 BLAKE2B 8927bf7b10a5b7c99654dab062b5cf2627891872f7b27b8616d2870635e6b497416fc58133e76fa006803676b4687f527a5850ebb5334f92315f38f69c2c36f6 SHA512 97f51d58b355b3a234f4f203db8ef0f81b442dc720c22a5ae475686934576e375acd550b6b504b18a7791170cdcf4dbde4f1e861c7492de8c2676a4a75a16b8d -EBUILD opera-beta-114.0.5282.12.ebuild 4223 BLAKE2B 8927bf7b10a5b7c99654dab062b5cf2627891872f7b27b8616d2870635e6b497416fc58133e76fa006803676b4687f527a5850ebb5334f92315f38f69c2c36f6 SHA512 97f51d58b355b3a234f4f203db8ef0f81b442dc720c22a5ae475686934576e375acd550b6b504b18a7791170cdcf4dbde4f1e861c7492de8c2676a4a75a16b8d EBUILD opera-beta-115.0.5322.36.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee +EBUILD opera-beta-115.0.5322.58.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee MISC metadata.xml 544 BLAKE2B e8594a0cb9a73ac5901ece78db220822043dca9faec994810af426f96e2ece7fdb069c5f1d639f66d1236ec83e6c46e50bd21c49f8a075cf0de41c9db9afd8a0 SHA512 2361ebdde2707166e465058b41a893b4c14db7c7ba8f4fe34f7ab34da4275f0af691e55881232a9253f5d793ff76e61d57689f56dd8ab879fc3ecb3294fc8777 diff --git a/www-client/opera-developer/opera-developer-116.0.5335.0.ebuild b/www-client/opera-beta/opera-beta-115.0.5322.58.ebuild index d1438a2bae9a..d1438a2bae9a 100644 --- a/www-client/opera-developer/opera-developer-116.0.5335.0.ebuild +++ b/www-client/opera-beta/opera-beta-115.0.5322.58.ebuild diff --git a/www-client/opera-developer/Manifest b/www-client/opera-developer/Manifest index f3c75f212f7c..1e71b5e16f13 100644 --- a/www-client/opera-developer/Manifest +++ b/www-client/opera-developer/Manifest @@ -1,7 +1,7 @@ -DIST opera-developer_116.0.5335.0_amd64.deb 127212600 BLAKE2B 65cdbbce5315e807e18fccefa701764101451a8ad1bbe9d9923b78c3c5e3f4b40a15b5011e383943c4651a0cd3b6b804c3754d7bb7bddfc0eabf3eb7cf854d40 SHA512 445f03f6e262385c25300c43c69abbd2926f0fa85276b60468797767bb91f6acfdc68ad5238136a5ed0a486ebba7986a4ca4db6b9375323585b1dfc9c714c127 DIST opera-developer_116.0.5341.0_amd64.deb 127258536 BLAKE2B 67597e0706829091c1c07cecead151e63e3a61ccd4d2a56f40c1216f2a90b61faf57b480c2ac6fb422e7c855525f2cb593a66f4382d8774ee14ccc4647b92330 SHA512 2c13e5bd246f8dbb13f8666c29ca0a1fc2a3558f0231c73119da7002652aeaf56b280007979e526c81b6a311ae6dadce3611a59f360a64a701e4463057472d3f DIST opera-developer_116.0.5351.0_amd64.deb 127473264 BLAKE2B 2ddec1dce642b7aa5005dc46d34b9ec355e474afa1308b299e7ee02f9f6b9eed269bc4dd4f468ef487c2a80e9ad9a4411cdd887f1139071cb4b23f395d5f4170 SHA512 239878a95ca3cd23fe1dd1099b3f34593e62aa0eef75bd4519517eeeb327f23b20c360a868be44d2a9b41f77e6f6b857f20b130d343941c8167913113ca4174a -EBUILD opera-developer-116.0.5335.0.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee +DIST opera-developer_116.0.5356.0_amd64.deb 128297136 BLAKE2B a2e916d70f9193f602dd66e7fef483648b202ab05a0870fd125127da70b7c2ad787d3a7090aa75a3e23914b8ab16df63baeb1cdd734516c30ad801d735ba20dd SHA512 fabdd4a5ab56c177706f63417250350e5de5ebae953b81f79bcff483490e77b81f6a2b112c6ae3cb52f6159096a9eaa1d4aa30de709d211acba7fe1c534385e8 EBUILD opera-developer-116.0.5341.0.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee EBUILD opera-developer-116.0.5351.0.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee +EBUILD opera-developer-116.0.5356.0.ebuild 4223 BLAKE2B 808fa7f9a518d480ec475c560db3096afe1703c1ba1221d541a4c3907b556615532b9cc259f10caa44929828a182a1a67c4a264a339834239d7aa6b460ca1cc0 SHA512 9d637136d1f35cb559d76155d46c4c800a03e432c384d186418ea4b099e417f36b0dfa4c52920432d8cf3ffe57ff31d7945fb1acc601be9f93a9a2f7d9aa2dee MISC metadata.xml 544 BLAKE2B e8594a0cb9a73ac5901ece78db220822043dca9faec994810af426f96e2ece7fdb069c5f1d639f66d1236ec83e6c46e50bd21c49f8a075cf0de41c9db9afd8a0 SHA512 2361ebdde2707166e465058b41a893b4c14db7c7ba8f4fe34f7ab34da4275f0af691e55881232a9253f5d793ff76e61d57689f56dd8ab879fc3ecb3294fc8777 diff --git a/www-client/opera-beta/opera-beta-114.0.5282.12.ebuild b/www-client/opera-developer/opera-developer-116.0.5356.0.ebuild index 803a7b7c4565..d1438a2bae9a 100644 --- a/www-client/opera-beta/opera-beta-114.0.5282.12.ebuild +++ b/www-client/opera-developer/opera-developer-116.0.5356.0.ebuild @@ -42,7 +42,7 @@ fi # Commit ref from `strings libffmpeg.so | grep -F "FFmpeg version"` matches this Chromium version # used to select the correct ffmpeg-chromium version (corresponds to a major version of Chromium) # Does not need to be updated for every new version of Opera, only when it breaks -CHROMIUM_VERSION="128" +CHROMIUM_VERSION="130" SRC_URI="${SRC_URI_BASE[@]/%//${PV}/linux/${MY_PN}_${PV}_amd64.${OPERA_ARCHIVE_EXT}}" S=${WORKDIR} diff --git a/www-client/vivaldi-snapshot/Manifest b/www-client/vivaldi-snapshot/Manifest index b18aad427839..64a108b80341 100644 --- a/www-client/vivaldi-snapshot/Manifest +++ b/www-client/vivaldi-snapshot/Manifest @@ -1,9 +1,9 @@ -DIST vivaldi-snapshot_7.0.3495.5-1_amd64.deb 120919076 BLAKE2B ad42218cba3fb02ce193eaa47d7950b2c50c2ee0d037348ed02b488e0d473dc6442977a971f7c80f8867fd0f8b89bf0a79b6287bce459242b2a9085262cfef9a SHA512 749dea3739d3ef268c601fef2625ac9b56af2db79c3fb831e3ddfe1fc8e61d96c0ede69d9bc5955d70b91f24b06bfab0c9eba2e1b5fe40b54b99f0b7962e778d -DIST vivaldi-snapshot_7.0.3495.5-1_arm64.deb 112790332 BLAKE2B 1b58180762c557df8c45fbc76ff79beb7e44bac224de12172642232d4e4d96642ce3624bbd6c9500e4a7dfa958acb689ddac4085fcaf89d3c198349d615e0e28 SHA512 f6967f25fdfe11be18c8ae12607b34c59938095f14a12cd6e40502cd02c48a8967e7bb78262870fe3c2b20b535caf12b4ec3a36d998b541dd76eb1033dc8eb32 -DIST vivaldi-snapshot_7.0.3495.5-1_armhf.deb 113955392 BLAKE2B 913b20cd3722aef8a2e8e77cc07b97637d0b440fb97c6ab2069e35559cf70e361a1997c88a56f12e926293d09d687f8c7ce78eb972cab3da14a165eae70651d4 SHA512 379414951a003f54334b9681c4cca08e98a2e56e204ddefcffa30110e2b7cbf21ca9fe43d851fe6f900d8b3891203e6dac8b676f31458cc850e75827ca00c090 DIST vivaldi-snapshot_7.1.3510.4-1_amd64.deb 121045440 BLAKE2B d3cfd0e20228d1bf77ec42462ec58cf4888c0eb923ad5a6f7df86fb79b65666ecbf60f92f9adce04b31b78cce70789a26a4072982c36633c114bca2c924a1f69 SHA512 fe2464cf7b583ca6bbf2fa47060613667bc82d2ba2e54714c5189d534108af734afe5fc25ed9c4744e95593a3afaa6db115dc560c841f8d8c360157097690d80 DIST vivaldi-snapshot_7.1.3510.4-1_arm64.deb 112938880 BLAKE2B f3931831317b918c43f9771fd454bdd09143e5e33e4d5a4236ef8c9c2aa8f911f393167c28ca6d663b7fc4a841dd8cbf0d0af2c5f834df5336840cbd5ae42c96 SHA512 cc5f8376d438be8159afcb384e7340be6f155f1c7a67492aa3f17776150e209cbdb8b984bb97a8974a54ae8ac4ceae0a08a82b5af0d0b3592e88cb669b76b425 DIST vivaldi-snapshot_7.1.3510.4-1_armhf.deb 114060140 BLAKE2B 4984f711277bbe3127fe00f3f18a3c5984cafb68a6a127936a69bb45c587052e89fe2226e24545d03b61fb245f28a63b4c8c6739be450bea1e8cbc2543bab373 SHA512 c2eafc604cedb0e8dc00421ea0926dce5a523e9f678049565f6c74147acf963be04f5a64424dfec9c9dee2331cf52b07d112376711b18c2073ee8f3d0e50573a -EBUILD vivaldi-snapshot-7.0.3495.5.ebuild 4027 BLAKE2B cb9e3ed2b9971a91efeb68182a933cba477012491aba2aa9c9b90e3b8b8915523e362719c5120691529f282318c63b7ef27aa2651e90e7fdfbe61bda848e50be SHA512 ddf3572e8ffa311d07d0e82845da9f3a188aeca621577ccbb91b611e13f74da9cda3fa30bdf3e7ec0dc063f0e5d6482b826c76889ac01966f9cda4ecf2eea4dd +DIST vivaldi-snapshot_7.1.3527.3-1_amd64.deb 121007844 BLAKE2B aaad775ce4410d9774e96e309d5c37d75552aa533fbc2fb9a8d05482a75e9f078ef3691438089b0080202bfdce415a10e6d25ca2a383bdd56d1b89247f4e8e71 SHA512 cdd5818427dc25f3660e4e16019597ccd7229bb0d5e940852df1c7e5130fe22d94f5ade24c968534261ef9bef8913514e51286ca17b63c6ca07c3fc8a4683b6a +DIST vivaldi-snapshot_7.1.3527.3-1_arm64.deb 112952768 BLAKE2B bed39c28f3b6029d78289f3c504de49310b5a9bcd4d3af3579bcfaba4f57f98ec6386d4df47efadeed1e736c5d5f88c8c346c5ec75655c99aa42f24395d4efb0 SHA512 22564448fff9707f1e8ed1e910db77040b83fb2f4f6e903694e1abee48278566a1c922182d412e5de92a14be6d9ea4f87850340996f5ea7ea663f461f4438356 +DIST vivaldi-snapshot_7.1.3527.3-1_armhf.deb 114104520 BLAKE2B 42140a4ba241014a12cfeab1dd00f4982bb74f031dc82f6a5e05f2c53236f8757e3f79d81351b4b71c86730e8ea6d078693e4f6d47d5e74818ff7c7ca6113e8c SHA512 134a7ff43e4e6e347444376d42bc498a7f2df48167f82cea1b204f646d565660da8feb94e073af8a1511e5d8a1093bec02ffe8b916103198aa01c0d2c3477bc4 EBUILD vivaldi-snapshot-7.1.3510.4.ebuild 4027 BLAKE2B cb9e3ed2b9971a91efeb68182a933cba477012491aba2aa9c9b90e3b8b8915523e362719c5120691529f282318c63b7ef27aa2651e90e7fdfbe61bda848e50be SHA512 ddf3572e8ffa311d07d0e82845da9f3a188aeca621577ccbb91b611e13f74da9cda3fa30bdf3e7ec0dc063f0e5d6482b826c76889ac01966f9cda4ecf2eea4dd +EBUILD vivaldi-snapshot-7.1.3527.3.ebuild 4024 BLAKE2B e5a38007063673e3623f8eee10f4a2b8bff1d2cbbfa19392492e07e262fd4689a06944817c558d4b510d610dbeae3aa33b4cb72e82e4888a11a74ff1b91f81d4 SHA512 84e4be2624dc1a51723d9591c29b753ccc915de10909044dca720c075f12db8d738a9814ee890c39ff03574d6854aa0cc524d5c368c5f39df214ef70f3d988e2 MISC metadata.xml 634 BLAKE2B fa3f150ffb5f5da3780098747f71d304c9ceb9828cd4dc7c586ba7032a7ba0b3065c25e5dd84fdab7b4302db8b4c848f116eb5b329f440f8a38837dca005a570 SHA512 f226a355a39cec36b5d6f3f88e7f2132693b5dcf51bdec4676d17f608f16ced52d6b9c5dfac2d38f2245cdf6ff7279286034e77ea119cfb4b7240500f612968e diff --git a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.0.3495.5.ebuild b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3527.3.ebuild index 78e223893de8..8063fc01d0e9 100644 --- a/www-client/vivaldi-snapshot/vivaldi-snapshot-7.0.3495.5.ebuild +++ b/www-client/vivaldi-snapshot/vivaldi-snapshot-7.1.3527.3.ebuild @@ -133,7 +133,7 @@ RDEPEND=" x11-libs/libXfixes x11-libs/libxkbcommon x11-libs/libXrandr - x11-libs/pango[X] + x11-libs/pango gtk? ( gui-libs/gtk:4 x11-libs/gtk+:3 ) proprietary-codecs? ( !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) diff --git a/www-client/vivaldi/Manifest b/www-client/vivaldi/Manifest index 552624e6582c..88084442752c 100644 --- a/www-client/vivaldi/Manifest +++ b/www-client/vivaldi/Manifest @@ -1,9 +1,9 @@ DIST vivaldi-stable_7.0.3495.10-1_amd64.deb 120990972 BLAKE2B 55db6b2efd9a94cba4b016e739c89ce5a14ef0ae05ee65340c3a51e93482714716e7567941498108755e46128688417fe8793efee10eb9eafd10762d03518511 SHA512 99fb82df069daeebca6c6fc4b2ba2beabcbba6797bf838dda5dd91967c70f275b00a77fd1869345ad70253ac51fc559653c63639e0924c107256eea8113d2d7b DIST vivaldi-stable_7.0.3495.10-1_arm64.deb 112797448 BLAKE2B 0736c29d059fabc5b677c88d2a6ef260c11aa9ca9eb40dcc1604a763254e26a3311af9c0349b090240873a0f1e15eef4aef5fff78f0923131eedd0b5cb04c1ab SHA512 b69eddab970e10ccdf9bcb31b8e91a2a349e8c9aae55becc3313152e71459aba022f55a378a9810703c64614b44e8f4c7d3de3a56ad1e4b10d50eab17b4b051b DIST vivaldi-stable_7.0.3495.10-1_armhf.deb 114002332 BLAKE2B b0f9292943acdb99077a765f493a80974e8e8fce093c02f5785dd3b864cbc8acedf1c3a6d7dbc8455b937db6401becc49fd9aa5bd13bea5c17a57c23b601c36b SHA512 077d591eef251a574ce2c3ea880df510656fdf5911c771b24dd05fe4900ea499bd36ccdff7e6bebe7afdf5ac6f7c2d655df52ff5f66b7e08ff80cf09a1145c6c -DIST vivaldi-stable_7.0.3495.6-1_amd64.deb 120922504 BLAKE2B a45944233dd3adf7704c36357212807f29dfca5a76d8e4b28ebcdc32cf05bd16b2feaa12e51174076b00dc93da82e6f6d6c0cc7570bcf8699164d35436d4f063 SHA512 bd2c70c5f0bcbe6fd617d6f622975abdf4d07891425d54e7fade9aa395e9e6e6e115be6fd88d50d0c613188b133164838cc8e621f7aecdeb718aa44c824b05e3 -DIST vivaldi-stable_7.0.3495.6-1_arm64.deb 112791276 BLAKE2B b7d94f3b3c66961fe87a0b56c8203d755b710bf7960f8a67e25beba7611d89bf820e335387fae8d6f52548188f04ec4b3c9faf06069a3ca78df6720181745b0b SHA512 963f4a14027e0d08c9b494769b00c6f6144243431afdd5270e46f5c05e8436ef81204a03940684553f1c93b92a1cf404e0717536784421f990442f8fec761692 -DIST vivaldi-stable_7.0.3495.6-1_armhf.deb 113945752 BLAKE2B ccb27a951238fde74fad992447eaab169724b4b4a09125d436168904cf87ddd43fbb037e88f3a667e529d64b110384f397c6d7a8495d8c01df4751be28d01cb5 SHA512 d96bd6baa2606d17388308292ba4ea8447f5d4bc91cdf216c9f704d4283ceaa0d4a0fee216e33611e576211b590f6bb1a40e881f8117a35370754aff287ab0c7 -EBUILD vivaldi-7.0.3495.10.ebuild 4027 BLAKE2B cb9e3ed2b9971a91efeb68182a933cba477012491aba2aa9c9b90e3b8b8915523e362719c5120691529f282318c63b7ef27aa2651e90e7fdfbe61bda848e50be SHA512 ddf3572e8ffa311d07d0e82845da9f3a188aeca621577ccbb91b611e13f74da9cda3fa30bdf3e7ec0dc063f0e5d6482b826c76889ac01966f9cda4ecf2eea4dd -EBUILD vivaldi-7.0.3495.6.ebuild 4026 BLAKE2B b345c4ecb930a8873bc6d35db553ddbc65cf222631acadf213f31155e01df894ecf7cb83994014c3a036aaa05dbe9e6f428fad7ee328611fd370d8f8cfab4876 SHA512 84d9b1f8663d3ca245a0e15973b8c0bb66ea7476c8f111c4532fed3397379f64021ae8ecb41d262f4669e167aad3b7b1db06821eb6833e79bd81033f4f430a62 +DIST vivaldi-stable_7.0.3495.15-1_amd64.deb 120892368 BLAKE2B 32455bfa6762d5a1ff76ecae000f9650470e610094e6589e97dc15e53cad7a0e0f6a474ba58d9b30c73ec830dd323dbb3ab2221a90b6690882c5b977b20e7981 SHA512 b43e04258a861eb1220b2495a4e120dc364d7e2269ec0cb1cb7c84c259b5b292c409e8ef6746dfc1de43d9169b3c78edf4c452e8ecd2331655b30c6de84ed239 +DIST vivaldi-stable_7.0.3495.15-1_arm64.deb 112942544 BLAKE2B 928beea38e2a76e3d547469d9119d81fe9a8467891468849017fb70034f1a9f7bbd85ab0dff89301288ec12d61f905601b93d89e2b58bd724c09f55109b1def9 SHA512 6b8a9ada4d7ab27d705fb3cde61e6e2eb0df288e2c0bae2ec60c814037be1461ac1155f2b7a5a560e915a224d98ab420148f95a43afbb129fc672d26ed8fa8d9 +DIST vivaldi-stable_7.0.3495.15-1_armhf.deb 113982572 BLAKE2B 517f9fbc4218dc8db7356553f98b616d6a14d8a7cdf3aa6dd4ff06213efd70b845337781485a5981b9c85609a7bce01effb69a34c3e4468d9aa38b8e26865061 SHA512 a048c8f279690a9b5a003c84c11867ae1a95b7f45965c94d53d1d4731a498704ea870813cca6a21c55387cc84152d8f7c21a45be0a94f4663770a7934d24446c +EBUILD vivaldi-7.0.3495.10.ebuild 4026 BLAKE2B b345c4ecb930a8873bc6d35db553ddbc65cf222631acadf213f31155e01df894ecf7cb83994014c3a036aaa05dbe9e6f428fad7ee328611fd370d8f8cfab4876 SHA512 84d9b1f8663d3ca245a0e15973b8c0bb66ea7476c8f111c4532fed3397379f64021ae8ecb41d262f4669e167aad3b7b1db06821eb6833e79bd81033f4f430a62 +EBUILD vivaldi-7.0.3495.15.ebuild 4024 BLAKE2B e5a38007063673e3623f8eee10f4a2b8bff1d2cbbfa19392492e07e262fd4689a06944817c558d4b510d610dbeae3aa33b4cb72e82e4888a11a74ff1b91f81d4 SHA512 84e4be2624dc1a51723d9591c29b753ccc915de10909044dca720c075f12db8d738a9814ee890c39ff03574d6854aa0cc524d5c368c5f39df214ef70f3d988e2 MISC metadata.xml 634 BLAKE2B fa3f150ffb5f5da3780098747f71d304c9ceb9828cd4dc7c586ba7032a7ba0b3065c25e5dd84fdab7b4302db8b4c848f116eb5b329f440f8a38837dca005a570 SHA512 f226a355a39cec36b5d6f3f88e7f2132693b5dcf51bdec4676d17f608f16ced52d6b9c5dfac2d38f2245cdf6ff7279286034e77ea119cfb4b7240500f612968e diff --git a/www-client/vivaldi/vivaldi-7.0.3495.10.ebuild b/www-client/vivaldi/vivaldi-7.0.3495.10.ebuild index 78e223893de8..a7a1e4c6d893 100644 --- a/www-client/vivaldi/vivaldi-7.0.3495.10.ebuild +++ b/www-client/vivaldi/vivaldi-7.0.3495.10.ebuild @@ -108,7 +108,7 @@ SRC_URI=" S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64" +KEYWORDS="-* amd64 ~arm ~arm64" IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" diff --git a/www-client/vivaldi/vivaldi-7.0.3495.6.ebuild b/www-client/vivaldi/vivaldi-7.0.3495.15.ebuild index a7a1e4c6d893..8063fc01d0e9 100644 --- a/www-client/vivaldi/vivaldi-7.0.3495.6.ebuild +++ b/www-client/vivaldi/vivaldi-7.0.3495.15.ebuild @@ -108,7 +108,7 @@ SRC_URI=" S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" -KEYWORDS="-* amd64 ~arm ~arm64" +KEYWORDS="-* ~amd64 ~arm ~arm64" IUSE="ffmpeg-chromium gtk proprietary-codecs qt5 qt6 widevine" RESTRICT="bindist mirror" #REQUIRED_USE="ffmpeg-chromium? ( proprietary-codecs )" @@ -133,7 +133,7 @@ RDEPEND=" x11-libs/libXfixes x11-libs/libxkbcommon x11-libs/libXrandr - x11-libs/pango[X] + x11-libs/pango gtk? ( gui-libs/gtk:4 x11-libs/gtk+:3 ) proprietary-codecs? ( !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) |