diff options
Diffstat (limited to 'www-client')
18 files changed, 1445 insertions, 202 deletions
diff --git a/www-client/Manifest.gz b/www-client/Manifest.gz Binary files differindex 1e53b0941915..bc1e559bccc6 100644 --- a/www-client/Manifest.gz +++ b/www-client/Manifest.gz diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index b4b8a329e477..5c1e6eb226d0 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -16,6 +16,8 @@ DIST chromium-131.0.6778.139-linux-testdata.tar.xz 279152856 BLAKE2B 41f96d726ed DIST chromium-131.0.6778.139-linux.tar.xz 2189495224 BLAKE2B 5e32ffa9de17df58b4017c90dd19b9cf1699c94f2ea1f38890821ef4bc3ed5c558c31cb0d57fb5b00c9bede6a953efc553fd8efa14354fd2314ca6e79bdac27e SHA512 b5aa8045edf483c9c53fe9fc253cd6f62ebef51f2b9dc9d59c225705d68ae7fdd88870fac5162ca7d9d9c4e0e778cdf27e4f9bd93bed8c059e0d1eab5ccac767 DIST chromium-131.0.6778.204-linux-testdata.tar.xz 279220900 BLAKE2B ab46bc825ba4d70696bf4441b22d36d45fb4c492ff234ccd0e26d66f9cc3790634f72dfcd81db299f0e0f77bc209ab24057a29e9937a8aefdca5109cce064eae SHA512 a7d97e216c1cc1f4145912b94b85a1c80ee57504b6792f0399ca5bff6494fc24c9cc846179de313f876d04e864ff79465df84997649c7d26d55b9d2848cb31f3 DIST chromium-131.0.6778.204-linux.tar.xz 2189629432 BLAKE2B 35a254700ff906e5f94b07ee4d577e1e4d356ee35972d03dc7c5cfd282e8e2400bd35548ad0bd1619654634abcaffed83d8bc1267727afee0a4294d1fbb3db77 SHA512 86f9fadfc8f2b46c16783767fd10e84129a65d3d7aa22e40d8adb8125e6b1e30f4fbf32d46d482f12999ab6e3fc5a47938921a7ccc77a43a1112003d8805c823 +DIST chromium-131.0.6778.264-linux-testdata.tar.xz 279207424 BLAKE2B c3da4c4e00717ea53ae2fa774bf313b805966ba96ad6c5dbe72cd0b6e50f414023e475026b87b58e8b06dfc6bf9890852ca8a76f3c12004aa5e7f9b84e5cc665 SHA512 fb28a206102a5e85c28e8bd2a2c1077b8dc67edba7633783edf5e3a57b01e402fcd0638f8f0b268c839c3ed74d87d82a3ef52b41e3c1755973c27f9b824c817a +DIST chromium-131.0.6778.264-linux.tar.xz 2189651292 BLAKE2B aa9277ce7211b253f5f38641eeb7531be9edb7fc97f668a23a931f98d6671d3ebeda1b2e900a117acac9edb432f7a0ceb75e7b545752b642e27288ac44043827 SHA512 63bc7c79589ceffed2d089fec9fffcaa1f0b50aa1929da4b173de838ad13bf9c8c989001978d8f5d8a667a946124f897595a2ee206c5f04d05e5b05460b115a1 DIST chromium-132.0.6834.46-linux-testdata.tar.xz 299805496 BLAKE2B e3a5ca8fe2d557ac4f2b731b30c9fbb781e362d5f62d09e93bb4c899f07a841be5467cacfc6c690fac599d9bbc4057e99a03702925fb62fffc206a57781cbb18 SHA512 0ff0cb4d5ce75b63583d003c6a6d9fca895cdeec7e67c65a75ff4468628fc5ffbacdbf9df250bb8a66419205c5ad1933f0f228e821d019d35973ce6ad3ca2b92 DIST chromium-132.0.6834.46-linux.tar.xz 2193310724 BLAKE2B edacfec054f9ebc51fed26aa20222f6a9c61f0c503484cbef4081d819d110465f661ae1fc18bb4cd0223ed7917a4d191af6cc8f32c8d0ff65e750408b62f5dd8 SHA512 2c161b71ce988d864ea5353221fc1b8eefbf8b26dc4e31c8312574b749e44d07a80f52fea18bf5c9e9f08c90fe724fb20c97963472883fb8a3b49482874878b8 DIST chromium-132.0.6834.57-linux-testdata.tar.xz 299792072 BLAKE2B bd48dc8a5cbe8286e01a9155c76ed0e4f2ec127bee21500410c5a7cfbdf403abb22ffd76ca03ba3b5ba2d4cc7721d776669cce136ce0576be68aaa8b7b665ef8 SHA512 2276fc6fcca05c17ccbe4af9972615924372a79f70145c274d63b126daf4e14900a5d6c178673512710374e7ed188cb3c46782825e969381719373144539a129 @@ -34,6 +36,7 @@ DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4a EBUILD chromium-130.0.6723.116-r1.ebuild 47304 BLAKE2B 90d2b03d081827702750209d03130d779e7f0f26ea17adbf9a05bac44c35e8169ac097e312dda5db6d987863cba2e4cc9b93d1d9c0eb53c51e6aebdbc17508a8 SHA512 e1c734c0a8f1367089f0ce06aefe136100f2bfc68cea6ab91b885dab741e1a6cb19f01da752c1ecb2e4ae6ec22fc530e1420fc5fe16a483ab8dd5b59eda6d326 EBUILD chromium-131.0.6778.139.ebuild 48172 BLAKE2B 69806523250f2ceaf080f54c6b5ff8ed4cd4c5658363d4f51bbd9c3a97d608053c34cf595216b044729bf9f1f49b7e1372104a5c7ef3bc51c213de00c97b9b7e SHA512 0aadac2d10e741cf6344250e70809d8adcd371c47c22fc3bf9b83648103ba482aac50b868a688ec5469a9e2d14c554359c944d92408b5423d42555d3cd5f0035 EBUILD chromium-131.0.6778.204.ebuild 48174 BLAKE2B 3334883f18e281a8a6138864a6c9007a2dbaef572883c69867d4e0a1ea8e6702b6114edaa83a8ae6604b1576b8fadeaa90cfaba489d6569aa6d6267989e9f50f SHA512 81ee6873892fe0b2ab7d933e1c5203906858cbfa9a67081e1ba15fed1a7f1e8105cb495d60eb95c5e2c2de12bb64d75f35f33382881acd1495df9c525fe450d1 +EBUILD chromium-131.0.6778.264.ebuild 48174 BLAKE2B 99ff2ae38e28998c44fd4d5e68c808aea82d7d8849f557ce187f756ce2e723bdd2b818ad7ee88d6a5b1cb6cae082e504eb8c8831c28266fddca32b76acbbd72c SHA512 0dbd4d88530a36235de9888752378c5c268942cda99f8620ceded4b5238d9fc7ef17c39b7c0f1d8308634618246632ec737dcae202e1ec60f70c001de92e8832 EBUILD chromium-132.0.6834.46.ebuild 48663 BLAKE2B e0d0b6004b3d005ef11044d8fc81a23a1689a8c8bff77c85fa842647e9f61c9ea18087cd2bed441002b7b1bf0a4b285b8facf4074af6044633e831897ad1811d SHA512 b1a89d50806711ce181e8bd7055170bbea23f5e57dad921567ef9c7009d7021dd8e9f363f1e3c2373e3310c0688a1187bcbaf067f6c6c3b886223364cb105fff EBUILD chromium-132.0.6834.57.ebuild 48663 BLAKE2B e0d0b6004b3d005ef11044d8fc81a23a1689a8c8bff77c85fa842647e9f61c9ea18087cd2bed441002b7b1bf0a4b285b8facf4074af6044633e831897ad1811d SHA512 b1a89d50806711ce181e8bd7055170bbea23f5e57dad921567ef9c7009d7021dd8e9f363f1e3c2373e3310c0688a1187bcbaf067f6c6c3b886223364cb105fff EBUILD chromium-133.0.6888.2.ebuild 49899 BLAKE2B d06a085ec4ae6a3f39b6914638488ea1d46e1ca4ebf5b567b88d5a64a69fefaa7866ba1b648625ea3bdaae3e3ca7ea0df00453a751f523efcdde20a74746c4dc SHA512 f0809593163b392736be6d7d7a25802ef5b12cca1bf644af1771bf3e1918f0d07c9f00dab2d3254e4a3b6d33c3faa8c001c3697f47033eef9ea96f95ee73b177 diff --git a/www-client/chromium/chromium-131.0.6778.264.ebuild b/www-client/chromium/chromium-131.0.6778.264.ebuild new file mode 100644 index 000000000000..ddaae4026f21 --- /dev/null +++ b/www-client/chromium/chromium-131.0.6778.264.ebuild @@ -0,0 +1,1422 @@ +# Copyright 2009-2025 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=( 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}-linux.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}-linux-testdata.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 ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + llvm-core/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 + + llvm-r1_pkg_setup + rust_pkg_setup + + # Forcing clang; respect llvm_slot_x to enable selection of impl from LLVM_COMPAT + AR=llvm-ar + CPP="${CHOST}-clang++-${LLVM_SLOT} -E" + NM=llvm-nm + CC="${CHOST}-clang-${LLVM_SLOT}" + CXX="${CHOST}-clang++-${LLVM_SLOT}" + + if tc-is-cross-compiler; then + use pgo && die "The pgo USE flag cannot be used when cross-compiling" + CPP="${CBUILD}-clang++-${LLVM_SLOT} -E" + fi + + # 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}-linux.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}-linux-testdata.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-openpower-${PPC64_HASH:0:10}.tar.bz2 + 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/dillo/Manifest b/www-client/dillo/Manifest index c5a307dcf40f..96f5dacc8963 100644 --- a/www-client/dillo/Manifest +++ b/www-client/dillo/Manifest @@ -1,6 +1,6 @@ AUX dillo-3.1.1-remove-which.patch 1026 BLAKE2B 2cc500b296d7273a3b0a8835750617852dcbbb113ce626e4e5aad92be73f17c8dfba8bbf4f9657df8d4054c03162c095d31d7fc5dcbc76158d50ec89a8c433c7 SHA512 86199f43bd81928b13ed4cf5adfc77a0e1a2297808ee4b2199eb1a9b1cd3b11bb9da47d1b463036253202218a12079d43cec12aea9d0f25f504704facc868b28 AUX dillo-3.1.1-unused-constructor.patch 1916 BLAKE2B 1eae8440df79137bcdba2ecb0efd981a009ee33863a4e389828a31b1020aac4cc49eca51a61a7df412d434ca3695cbc78ea8c56a925af34f7bd774d966a09a5b SHA512 1b4137bf4f3edd45043883e8c5a54cb8077dcfb2e89e20a83ee5fe3e9593317a387475da3f8af3c462dae3df8e394c60cd23880d6a48ea39176bd4a1c03c15ca DIST dillo-3.1.1.tar.bz2 1026711 BLAKE2B 81fbaf527f89160bfddf4bc51048dab8f1487b735e6d9cb9679deb46cda666158bb6b0d469ec28691167cd9d9657a12f5d5f5ed5b6c1cb0102963d611b4e2ece SHA512 2f6ad315c246638e91af13fbeb8a846b756c222aaf2275efb1bff6bae08130bb4b8fda9c09cd33925911c424fe536cf7a587e6657de9a13d63733714c86533c1 -EBUILD dillo-3.1.1-r1.ebuild 1891 BLAKE2B 03a6d8ca42d7a69c8a532e701b7de60baa4a27b2d397dd5bdf14f7d80684cb5f2c9dfe4b3b785cae2ccf9b0d5bacb0fa384e650c4bc663ad32c9344770f07325 SHA512 0600753ab5f3ca31ab581250e0180f0b3e21632f7f62cadda24c2dbd48d5f021dfc519bc8f1b29a891ebcac60a593e8157a56397f9e2825dcbd5f3ce30c36c4c -EBUILD dillo-9999.ebuild 1794 BLAKE2B 3280f7330f8e513a7834d0209cbd22d00ea87322e18733cde2a6a26f3eea93237f85fc27cdd6084c7f32de1ace6c330efb86e75edacbea1c196a156f074b7087 SHA512 090a77f7f0e665fc62aa62f010116f576a578cb6d3bb80b41d07ae42d9b5fcca3c86ad1ce2d38908daf81fea1c0871cd3cb1d8f27f44ffc37b4daf6a44a1562f +EBUILD dillo-3.1.1-r2.ebuild 1892 BLAKE2B df5cc940f87fe2d2e8231173a10e569dbad884d2f5cd4ba58b527eada8d1d482e777c077316449184e16e5afcb6ff61a2daecac603bda5fd8d8e06e594a20640 SHA512 d7b4e4e0cdb41695fa8a39ea5f401d71581c5ddd757cdb806400edee5d077b7374c69e3f68d883ff5a4ed337fbfae704995115a35d5daeb8e898d0bc44720300 +EBUILD dillo-9999.ebuild 1795 BLAKE2B 387ba4f5f487279d5558530322802cb32321fba478f2c82fcd8dcc1f243bb2e0fbe87e7c68bfc3ef57fcc6aae2f62a7e9f2c7033125ad34b08c5dd77fbf40c5a SHA512 a62cc3e668d5bdb735e6dbab105d29629d5fab6a11c142e6454b52f45a62ed4e8e24f306fc3a6484d86c3b1ed552c7c11e0261ec93d11c03f2fa5b3f7aaf098b MISC metadata.xml 645 BLAKE2B 1c0dc7392fa848bf1f229641929105e23f3be0253035c4da8d1b8ac499ed60a90ca7578ffc2a4fdcd8808f25fab8e93678081b621d0cb68f0629e19554958a2d SHA512 10acbeacf15254145d7cc2dbedc75d064f045b0c7d76e5facbf364e15c9e0af1fcf3ab12803323dd827c7540de71770926ddbd123a851da16dad2cd5e1f89248 diff --git a/www-client/dillo/dillo-3.1.1-r1.ebuild b/www-client/dillo/dillo-3.1.1-r2.ebuild index 53222bcbf650..59b02fe21509 100644 --- a/www-client/dillo/dillo-3.1.1-r1.ebuild +++ b/www-client/dillo/dillo-3.1.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -30,7 +30,7 @@ RDEPEND=" jpeg? ( media-libs/libjpeg-turbo:= ) png? ( >=media-libs/libpng-1.2:= ) ssl? ( - mbedtls? ( net-libs/mbedtls:= ) + mbedtls? ( net-libs/mbedtls:0= ) openssl? ( dev-libs/openssl:= ) ) test? ( diff --git a/www-client/dillo/dillo-9999.ebuild b/www-client/dillo/dillo-9999.ebuild index 6afd97ac6375..cd0dca3283fe 100644 --- a/www-client/dillo/dillo-9999.ebuild +++ b/www-client/dillo/dillo-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -30,7 +30,7 @@ RDEPEND=" jpeg? ( media-libs/libjpeg-turbo:= ) png? ( >=media-libs/libpng-1.2:= ) ssl? ( - mbedtls? ( net-libs/mbedtls:= ) + mbedtls? ( net-libs/mbedtls:0= ) openssl? ( dev-libs/openssl:= ) ) test? ( diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 69e34d2d70b3..520319547974 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -422,5 +422,5 @@ DIST wasi-sdk-25.0-x86_64-linux.tar.gz 114450290 BLAKE2B 07618828d4c25d67421aa72 EBUILD firefox-128.5.0.ebuild 41203 BLAKE2B c7f12ff1ec0ab88d1ba0d2e96e5fcd62ce294715906b9bb381090e89c7b33e5f42035cbf9366d3eec5be6d3c5506654025cfed5a1c5c1e51b2b959a5f6ef440f SHA512 bb574b16d9782045837514d0434f3a627398cb75aef7aa7fbf68bd151dc5d24806ad8c711b33fba4c65d0f9072ea7989c30eb5957811a023e0a948ded93aed2e EBUILD firefox-128.5.1.ebuild 41205 BLAKE2B 62be1b1a02d0630eadbf2b441febb6d02bb9a0633ea8c46d0fe35bd5df9ca30ab85b854d5c1bf5c8fce0e5fa020d6085d358e69b80ed43f919dc5eeb80a0171f SHA512 299056c24bda66a12cb4a29518b522fb7551729631d01d2db3d54a5c5dda6bb568d6cd5db27c57f686231034397162841739cd6e49ff244fc29ebfcc05f1cd32 EBUILD firefox-133.0.3.ebuild 40775 BLAKE2B 80594fd1b2501bda3d6852cb9af0c0eeb25852c4dca9fda50c45af48b439fa716f624a5c6885855c72370edf540bcf216ebbe097ac1e922c9281c3c645a8d7ce SHA512 90f5653a1f8b81bf99a87f4198b28d4a207c7421fcf88a19a4cc57b360e69e944561afe571e357f9d0f2e09709f182260bc03d4b08edd7a31cbe4fcde394b9f5 -EBUILD firefox-134.0.ebuild 41084 BLAKE2B 41524f3a25a1a6d4d60a339979f315e82b5597e4b070c7260ede8e4636bb762bc7b62880443601c37cfc04368a3909cd87889b1fe21ce8bd10dd5e6046949ad7 SHA512 de70cd2c7e201b8ac9e3ac70ed7eb057a13bd869585dc2ae4dd09c3bd7a883c2a5cb88464b62aa0ee247bd5a1f9fdfed9cf685cab8f27fe57d6d233e28ca7495 +EBUILD firefox-134.0.ebuild 41083 BLAKE2B e3c1339be6577370c54853d08abe549be982de7188427bd138103d7c6ba883956a280a6263cd86224e3926d62f4fd8f57dcedf810a9e3c432812bb5453443774 SHA512 c0e4115dd53a93c18fa98e622b7386d7f27d6899eb333d1b1a93027a1804ceb65ed93861ab2bb7d1bffa7d746735acd8b6eec2a54ed1a41cb7fb6e750d35bd78 MISC metadata.xml 2730 BLAKE2B b9afb69e8ce59ffbf2804d7d2fc0540bbf4f6cbf4e2290b198339421fb1d27cadf26681d66e28797b2cff0778e07795a9cb5a8a842e68dda8c502d1d5522b044 SHA512 f093bd263102c298e6c3a05a2fb6729b34809a3bbcc5c4ebc5d308d9b6efb371ebb0392e2f12bed3d333a49123cc0ca450ac94c3653fbbe431a63acc18085551 diff --git a/www-client/firefox/firefox-134.0.ebuild b/www-client/firefox/firefox-134.0.ebuild index d6b84147dda0..af9245e50f9b 100644 --- a/www-client/firefox/firefox-134.0.ebuild +++ b/www-client/firefox/firefox-134.0.ebuild @@ -54,7 +54,7 @@ MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm-r1 multiprocessing \ - optfeature pax-utils python-any-r1 rust readme.gentoo-r1 toolchain-funcs virtualx xdg + optfeature pax-utils python-any-r1 readme.gentoo-r1 rust toolchain-funcs virtualx xdg MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" @@ -931,7 +931,6 @@ src_configure() { mozconfig_use_with system-harfbuzz system-graphite2 fi - if [[ ${use_lto} == "yes" ]] ; then if use clang ; then # Upstream only supports lld or mold when using clang. diff --git a/www-client/google-chrome/Manifest b/www-client/google-chrome/Manifest index c6fe927109f8..51538448bee4 100644 --- a/www-client/google-chrome/Manifest +++ b/www-client/google-chrome/Manifest @@ -1,3 +1,3 @@ -DIST google-chrome-stable_131.0.6778.204-1_amd64.deb 112770956 BLAKE2B 73c69f9ef4ea5a8400121886c9e6a1b671434cbd12a34222517390390c3e5c1cab9a3abe2995f5bbe45d2a9410390de3d1d04f3d787670deb91e0c3b0521f1c6 SHA512 e3d7ffbb51ef3a251358ddf67ec36c7ff45c5a6eaa8b118e93fd26212a024f369f017b92808fa9681e8e8452e8da77c9cd693a67d33d729685fd66673e8f6fc2 -EBUILD google-chrome-131.0.6778.204.ebuild 2982 BLAKE2B 94c28a910834b70ccfa642f6e5372dce9e534bf5b9c210516958e8cd96c4b8e042d360a9fa5c85d13cbe4b152a26b7751f5f87ab832002fe21e83f2cdf03f47e SHA512 23c9d78446da4b7ceef659dd659af367733abb766207e343fc991122d13744e3d67b0919d9d6371df5fc43815301c062087e1ce8d685e41ad0613e352b8c96ee +DIST google-chrome-stable_131.0.6778.264-1_amd64.deb 112846176 BLAKE2B 6db0220e0bfcf4721776542d8469062381526c7ae8ede18762f788a96d4097c5bf426050f7ad829b00035abec7a7b73bec0dd6154d42367cba30cae80d9e4747 SHA512 95123e9d86b2e84be8b4964d4e5d16ab987f2e2854ca90d192f3c88e4b5bbb2f6a1aae46adb408b3538d6277a0083bb1da4d35d3b9806ef7788f3bdac40020f8 +EBUILD google-chrome-131.0.6778.264.ebuild 2982 BLAKE2B 91c3b7c4f601d24b8550bd58a41f62d3288d3897e645f7a0e3977bfefdb43e5399db07195aba1a9c5b3b441e8dcd7b59f13a62c5020e6ade9f2ec85dfc312130 SHA512 4aa39c52957b5a93860f457c755ac37b83b7dcc00f960f1bf3e38f00a9a5f029beeb3715583a659e38f93d4b56900f0cca0ad835bb8b30951e8f52952ccc45c8 MISC metadata.xml 437 BLAKE2B 35ab5a754d8e65db84e25b08c76bed923c2f9eb1b1d65687dda842313b5f339c90cbb3eb8fe12ecb58f201383955ad8f72a5b34484265194a3fcffcf760122ef SHA512 82e6057b085e849bc5484b53fef974022bb9db33836502e8d54fca3c8f54f47768f9b0ed4591d90a444e82142e727d4e4071236b114705f91c005f170b2a3986 diff --git a/www-client/google-chrome/google-chrome-131.0.6778.204.ebuild b/www-client/google-chrome/google-chrome-131.0.6778.264.ebuild index a6673ff33b80..f579ec5a9cbc 100644 --- a/www-client/google-chrome/google-chrome-131.0.6778.204.ebuild +++ b/www-client/google-chrome/google-chrome-131.0.6778.264.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/www-client/microsoft-edge-beta/Manifest b/www-client/microsoft-edge-beta/Manifest index a02381d45f8f..2a0c855ffc9c 100644 --- a/www-client/microsoft-edge-beta/Manifest +++ b/www-client/microsoft-edge-beta/Manifest @@ -1,7 +1,7 @@ -DIST microsoft-edge-beta_132.0.2957.26-1_amd64.deb 168158222 BLAKE2B d73d4033933d4bc70ebbfd521bb273c417c202879b27e11c3e7a5a904b46b57bf068b07e083ce4a923be3407569eba56ce2d70beb0cf4b9623f1433c8c89acc1 SHA512 d059d16a8e770e37376648c21616a87eb5733df0ceb3d9c1b4b5e6aaced95d481e65187abc10415216ab4e40f6ed7c6a955bb7be6f216327cbff1a03ed3e40ec DIST microsoft-edge-beta_132.0.2957.41-1_amd64.deb 168122314 BLAKE2B 6258dcef23958c087bae8fe964a3392ef96ff979dcbf58d4f734e1bcd72cd316c0ef58ed29114d9dd4aba61d720313663430d08a251ff96586b1abbf935a4438 SHA512 502019af5ce65619675f55896cc4e488c4df57ebcfc16703eb6048e3657e3c9dd46575fdcd482d23f29ac5106703ab163b7d0acb9474d0fa45165c0972d1d306 DIST microsoft-edge-beta_132.0.2957.55-1_amd64.deb 168243378 BLAKE2B d9df026a906be25c740b7cbd7396ef53a8cc584da1a402a1a69885621151cad149cec1c13a8ec5450e6ace80d1c8633e3e734f5a9e425aca5450a968d08f41f8 SHA512 d1d37a878211d875debe855b8e3d57db624d42264047deb4ca8fd7c9613a86c2fc6245ceca44530a9dfaac0d2fea1752e3d2e2435c3443da3ae40c0bd87092a1 -EBUILD microsoft-edge-beta-132.0.2957.26.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b +DIST microsoft-edge-beta_132.0.2957.93-1_amd64.deb 168276626 BLAKE2B becdfde6b5aef16649682d624cfd5b7228da5dd73f913829bd74d8b8909f120552151f9a27f262acb3bd76fa22e03d0f0e3f0a9f12b2ec7e5282ac9e2f39c8ae SHA512 52f6eefd3353cc3aa15ba484ac4f2f6d34e662090c37b936ecbd456523f576cb8c4b89653714afa37630cb5db32c3f3077935fa143b3a1f84719c9de50ee4f30 EBUILD microsoft-edge-beta-132.0.2957.41.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b EBUILD microsoft-edge-beta-132.0.2957.55.ebuild 2712 BLAKE2B e4c40954c5106692f7b454e32c79e47cdc99c09b2e1aa02a263951adcafb56ef2179235210e2c1c4a24b7571338c9329d46bf7c5fa8430284be2e1d2eb447148 SHA512 1d1a784a1b19db517d78db66fd8457b5dbfe803f852cf82d7137bd18f624618e91016f38f571e0d848542a17788d01685228863fb005cc8de4bbb96381e3044b +EBUILD microsoft-edge-beta-132.0.2957.93.ebuild 2712 BLAKE2B f41865950ec1dbb730972c1f8f7ff4f33782bb2ff45597b8977134dbffd1e0dcecf45fdd7f030f904b291d7d20e06aee2783aeb45951127c5dba08f13d59dbdd SHA512 c95aa0f4e886830508b4ec3051cb5f8c8a50470ad29a06dffffaa22b690aea73e89d07661ac84943d7f195efed30242db01101ce5a2f2a466d6070a8a313b48a MISC metadata.xml 528 BLAKE2B ef09f12e6f9b503cd78a39ece67ab0b21c4760114b052bf105b7c5e426a1df43a5b37ff547338fc7122ac8a029b2ebb85a8793dbd4d192ae990ae71829dcdec6 SHA512 b6ab632cfce365f249a178a261eba3d469cd645cdcb99dd1bc4f1e865fbd6668cfd0f7171843e2b234ff852f8191a8b08b48cf89991cdfc7ca36337a71e5a38d diff --git a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.26.ebuild b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.93.ebuild index 0ff710cc5ddc..32c5a4f611f9 100644 --- a/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.26.ebuild +++ b/www-client/microsoft-edge-beta/microsoft-edge-beta-132.0.2957.93.ebuild @@ -1,4 +1,4 @@ -# Copyright 2011-2024 Gentoo Authors +# Copyright 2011-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" diff --git a/www-client/opera-developer/Manifest b/www-client/opera-developer/Manifest index c820210836c9..08ad0d7221d0 100644 --- a/www-client/opera-developer/Manifest +++ b/www-client/opera-developer/Manifest @@ -1,7 +1,7 @@ -DIST opera-developer_117.0.5369.0_amd64.deb 125121468 BLAKE2B 80d099b270c5598ce2cfadf4a75d67f64a14e069b41207b03263f50302d0f4bf958d00a49e2c68ba551e208b710cd6a7df9bdfc8048dbf2c12f57fd529b27ef6 SHA512 606370edb1c691a49473c9109b4971793ce7f13da57f81eb0f1f793de47753dfdd121d6791f9a98a0a7edc4b08bb9c33f332b62d3bea3cdb31a540320f95d831 DIST opera-developer_117.0.5378.0_amd64.deb 124205104 BLAKE2B 660a87fde76f3484708d98c5a538c73cb54afa146c2b26fdee581af765a373daa3efd737fd787e23c60a60d5c1e3f2f4a1eebc618ce5f52e21a4c1dea58c5dcb SHA512 13895f0d6f3e672b262711e2c5fc6e148b236b17a59af05629f46aab4372999dae7c4593362a3c3f22cf2ff16dd6a50c932f6c75cfe593af81e511b640e58bd6 DIST opera-developer_117.0.5383.0_amd64.deb 124192636 BLAKE2B 46af2334c8f9c8c337e1e0385cb688029cb32692958b53d96f0989983fbd033b475cf60f4a95c0893fbb280237d8c23d39e8b3bc8cccbb5f7d842e93ffdc27d0 SHA512 dbcfab9a46eb4683a8d02b920c6085992b4aeefb7a6e04b5a41c4730a6f4d81da1a6bbe3c1c99dbf84dcc1f0e3926cb00175cef696bbaf8245520c38f1c2152d -EBUILD opera-developer-117.0.5369.0.ebuild 4223 BLAKE2B d8b358f78b5203a159cb1797cab1deb7c5c3da180f3ca9fd3cfbaeb82d9f483ac7ee2b8e3b738e2a0cf9bdb20bc37abd5b6c0f8eae4a8441b6cd878b5466af34 SHA512 88de1249c99550fc606c4db4856436054973d7ef8cf267057cad05100a005d9ff55489015faafad22a562b17eb2faabd435000626bc330bd41d6454f7f9365bf +DIST opera-developer_117.0.5405.0_amd64.deb 127733944 BLAKE2B 8e865990c21253be8b8191d2e611bb05d18754a69e30b0fd4a18911d5d50445c80faea3c4d3387375d6d3273a5e0ef13395805817760442512d6f7055188e026 SHA512 719dac3dc7a63a97f320c95dce22994485d3767a973a2cda46cc27a3cb54c0173afabb40cd71004830618bae1550bd42fa2de465f8fde1388555828882bf9016 EBUILD opera-developer-117.0.5378.0.ebuild 4223 BLAKE2B d8b358f78b5203a159cb1797cab1deb7c5c3da180f3ca9fd3cfbaeb82d9f483ac7ee2b8e3b738e2a0cf9bdb20bc37abd5b6c0f8eae4a8441b6cd878b5466af34 SHA512 88de1249c99550fc606c4db4856436054973d7ef8cf267057cad05100a005d9ff55489015faafad22a562b17eb2faabd435000626bc330bd41d6454f7f9365bf EBUILD opera-developer-117.0.5383.0.ebuild 4223 BLAKE2B d8b358f78b5203a159cb1797cab1deb7c5c3da180f3ca9fd3cfbaeb82d9f483ac7ee2b8e3b738e2a0cf9bdb20bc37abd5b6c0f8eae4a8441b6cd878b5466af34 SHA512 88de1249c99550fc606c4db4856436054973d7ef8cf267057cad05100a005d9ff55489015faafad22a562b17eb2faabd435000626bc330bd41d6454f7f9365bf +EBUILD opera-developer-117.0.5405.0.ebuild 4223 BLAKE2B 166a4d0c99c144710fdcfb8c6603dea8cd442c414c8a097c92113ce690f3b0bb1d07cfdaadee94d7ebf285682f55363492a1590685a7ac7eef438b0cd23daf55 SHA512 6f2538edbda5c86c45bb83c3c2eed418c6ef49101fc021650b6c8415ada8c241a12bd40ca193689d63fd9ce722992f344320daa31f879b28797ab087279efebb MISC metadata.xml 544 BLAKE2B e8594a0cb9a73ac5901ece78db220822043dca9faec994810af426f96e2ece7fdb069c5f1d639f66d1236ec83e6c46e50bd21c49f8a075cf0de41c9db9afd8a0 SHA512 2361ebdde2707166e465058b41a893b4c14db7c7ba8f4fe34f7ab34da4275f0af691e55881232a9253f5d793ff76e61d57689f56dd8ab879fc3ecb3294fc8777 diff --git a/www-client/opera-developer/opera-developer-117.0.5369.0.ebuild b/www-client/opera-developer/opera-developer-117.0.5405.0.ebuild index 1cab05aa0a7e..604325658279 100644 --- a/www-client/opera-developer/opera-developer-117.0.5369.0.ebuild +++ b/www-client/opera-developer/opera-developer-117.0.5405.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/www-client/opera/Manifest b/www-client/opera/Manifest index 4acd17f44962..c941dd3e45a0 100644 --- a/www-client/opera/Manifest +++ b/www-client/opera/Manifest @@ -1,3 +1,3 @@ -DIST opera-stable_115.0.5322.109_amd64.deb 123855044 BLAKE2B 8f07df24bdb916e2159133b5f532058444d9c0f2e7219d5e2d7a0bd5787bcb610b5c34827f97b7a53980b6e8a108942e56a14c5d1dfabd57c9cff928e27b1dd7 SHA512 50b45be519e6b78823856cdf3aac1c43fe96b3adab9b7d09048e8be8e7b14d8b375caedeb9d6473571d5554c63e235521846005cfccad25835ae89c8bb30e893 -EBUILD opera-115.0.5322.109.ebuild 4222 BLAKE2B c05587e0bff43bd793bb40f54cf408ac695b03995d310b6f705d0ca716a70657b8733e961c4d919ad0c6fa8f0dc6c3e0946fa7a05cc1488605b137fd511aaf8c SHA512 55e31603335a971eaef7c7d0ef3b8f89eb62ed885a5636b5134eee9f8b5ce8bb93872fcd5825f48840ca27ea88219e3922076cb4a3657151ca3bfdcf2afb8d36 +DIST opera-stable_115.0.5322.119_amd64.deb 123877420 BLAKE2B 02e88a1dfa98ce716a09dc703a1d128bf4851fc326c110d92b0b1cac3fb37ff5531cf07f8c48173200cdec8673ac400b05b30e07c05676397540d2f8d32ce46a SHA512 70dcd3bd27661faf16a465f914d686a0947f5418c5a8df5993d76dbd584f0b77b77b19e4bfe46deb36b3813c9f43ea77f92dedc5d472680c0f3709cd12fbd483 +EBUILD opera-115.0.5322.119.ebuild 4222 BLAKE2B 6dfda705b9381124de5a152b14630f07e6d4b848fb6ed29e041fcea6e6913e9073e4d9cb9d61da730c5b10f57c3bf0d33d8443031f13ccd02bf9345ceaafc54e SHA512 6da58f3a0eb96acef3397e4c581eda8810899c59ed305a5cca844aa7d7ba9b4641fa6f09e4638eb0974612c638826e61241eb204147e931f97e63037df381a93 MISC metadata.xml 544 BLAKE2B 94b2f6807c021794769fc62b041c69bd08a0d307c51db96109bd45a1fff240d586c51daa91e894055e47291505750f07e9054b6b1b364a691c18f5711acbe9b4 SHA512 691c7b62fa7c8a46e4cc981a2f211a1609b1c57620aca668b001eeaa2cbcd2f38299680c4707a73a8f32ee19b054cd131a2b09600bac30b8530af35142694ff7 diff --git a/www-client/opera/opera-115.0.5322.109.ebuild b/www-client/opera/opera-115.0.5322.119.ebuild index 6768372b2cf2..ffc605d82d39 100644 --- a/www-client/opera/opera-115.0.5322.109.ebuild +++ b/www-client/opera/opera-115.0.5322.119.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/www-client/qutebrowser/Manifest b/www-client/qutebrowser/Manifest index 702cb2ee0416..866ab8dfea2e 100644 --- a/www-client/qutebrowser/Manifest +++ b/www-client/qutebrowser/Manifest @@ -1,8 +1,5 @@ -DIST qutebrowser-3.3.1.tar.gz 6059431 BLAKE2B 287946f3a6c4e0585f8e1659aa99e771aba21002187cbedeb07ee27d0e9ed69a685b78eeeda25d78e2286cbfb96377bc1c63c582f7f9d6ff79560245afc9f702 SHA512 7d95620f8e5c30f44e21c5644364a41500ca7c568fcd90f67efab9657346ee9c31a7322f6b574bfb6f68e0e4a80f37395b4b567268ca2df183af3db798c64f84 -DIST qutebrowser-3.3.1.tar.gz.asc 659 BLAKE2B 34a0e258d3dd068261fcedeca9897a9529d313781b4dd1eefcc9aefebf9ae52be67b51a958cd39bd73bfaf2fca76f09a6c5238f5cb606e11bdb4940c88e229c3 SHA512 e4bf7ddd31101a856a6f76555b6fbd26d05591e63238c9dd149abe967b153d1ba0b07dca30c2510dc3cabf52805161e3ca7ff120f0c71ff8f68c1b70f96626bb DIST qutebrowser-3.4.0.tar.gz 6065180 BLAKE2B fb4b8c7207b9320ce185465f249cdfa430330935cac40ae02d41e583d7f41da4deb2ac24489cf8c76473468706c8d812eceb7b24c4a430767b758615703b7e57 SHA512 9f056012e53a75c06cf2a6f113dd9ce53d1052250c4fdaa969586b182ec1b36ed077b1a140f10c779e8ae5eb0df69b7d3d466bbf14a21c433a84c9d621f53f96 DIST qutebrowser-3.4.0.tar.gz.asc 659 BLAKE2B 4e9438d9b3b33e2fc61dca1e264cf83b09e77cdb6fcaebe779347097ab4be064f2c1cd18cb59e23e959dc65da94cca578da2adc909c6f0e05b6e6304db25b23b SHA512 6fe8276f2873334dc433c7eeef96c36158a301b53a7bd3f0e670ec539e6c41d47c7c3d4979e590627fb9bf5656ce568bfb1231cab6485e7ca0d761b063b747d7 -EBUILD qutebrowser-3.3.1.ebuild 6021 BLAKE2B b265a10125de6ac7410fc7d1d9fac7ea1ae137e3b332e8cc0d651d9f48d2b59593c8e153713c6889a724837ced1e50c81ee5151ec2697b7de3e76de8af0fa9bc SHA512 450f0f7e767c52da78fb6646c657258b19645aac94e5d76a2df76fdaf3a78be5d52197ee1f066a81b011274d2c624831d8fb75da69e41b8c10189572dc70932f EBUILD qutebrowser-3.4.0.ebuild 5425 BLAKE2B bfe893e7f534aaffbc1cfd68fc32b5d9723650db503d662e998511b31d785bb15026720147e78f037b426dd058ae15e001bc2d342415251655a01162362b8fc0 SHA512 2120c411ca3ade5d0ff751ca8cbd4fbc02773df442ff18d6a15ef33a03842ee692554274b37f8577c94f0d90923d45d709966670d4e5197803312f493e6e4e8e EBUILD qutebrowser-9999.ebuild 5426 BLAKE2B 37fd71e453d73a4f669733df88444e9430ef00371a0471574ec58ef992d49f080a701e59e622a6b3fcad670fd1feb4ded5c591f2fd3a0db992be55cdc85dca68 SHA512 eb60abd46b10890fa6ef8a7b9d35ab290d2e85ed9723930bfcd3069bcb5fbda94aaa6fa84a9c4ffed35f1029ac271ce27bc2bc8f26ba3e17f7663c78acd2b5bf MISC metadata.xml 945 BLAKE2B e796d777d56a5452b6652d77e011dfb160684f6e7498d0c4fad583bb828ecd111c25be5d80ed906b9b579e6ccd33315fc20a727342df0fb1b66b1a71effcea25 SHA512 80a65a391a84208042d9e7a6e0b5e8644ed07d5e389cd6a7b314b961dca5cff6406c5556693b34dcd275acfb27d05d9e40f77e9d503f9e3e8054ab6b6763932d diff --git a/www-client/qutebrowser/qutebrowser-3.3.1.ebuild b/www-client/qutebrowser/qutebrowser-3.3.1.ebuild deleted file mode 100644 index d38ed30059cb..000000000000 --- a/www-client/qutebrowser/qutebrowser-3.3.1.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) -inherit distutils-r1 xdg - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/qutebrowser/qutebrowser.git" -else - inherit verify-sig - SRC_URI=" - https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz.asc ) - " - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/qutebrowser.gpg - KEYWORDS="amd64 ~arm64" -fi - -DESCRIPTION="Keyboard-driven, vim-like browser based on Python and Qt" -HOMEPAGE="https://qutebrowser.org/" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="+adblock pdf widevine" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets] - dev-python/pyqt6[${PYTHON_USEDEP},dbus,gui,network,opengl,printsupport,qml,sql,widgets] - dev-python/colorama[${PYTHON_USEDEP}] - dev-python/jinja2[${PYTHON_USEDEP}] - dev-python/markupsafe[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/zipp[${PYTHON_USEDEP}] - dev-qt/qtbase:6[icu,sqlite] - adblock? ( dev-python/adblock[${PYTHON_USEDEP}] ) - pdf? ( www-plugins/pdfjs ) - widevine? ( www-plugins/chrome-binary-plugins ) - ') -" -# <pytest-bdd-8: https://github.com/qutebrowser/qutebrowser/issues/8342 -BDEPEND=" - $(python_gen_cond_dep ' - test? ( - dev-python/pyqt6[testlib] - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/cheroot[${PYTHON_USEDEP}] - dev-python/flask[${PYTHON_USEDEP}] - dev-python/hypothesis[${PYTHON_USEDEP}] - dev-python/pillow[${PYTHON_USEDEP}] - <dev-python/pytest-bdd-8[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-qt[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xvfb[${PYTHON_USEDEP}] - dev-python/tldextract[${PYTHON_USEDEP}] - ) - ') -" - -if [[ ${PV} == 9999 ]]; then - BDEPEND+=" app-text/asciidoc" -else - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-qutebrowser )" -fi - -distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - - if use pdf; then - # does not hurt to enable by default if it was explicitly requested - sed -e '/^content.pdfjs:/,+1s/false/true/' \ - -i ${PN}/config/configdata.yml || die - fi - - # let eclass handle python - sed -i '/setup.py/d' misc/Makefile || die - - if [[ ${PV} == 9999 ]]; then - # call asciidoc(1) rather than the single target python module - sed -e '/cmdline = /s/= .*/= ["asciidoc"]/' \ - -i scripts/asciidoc2html.py || die - - "${EPYTHON}" scripts/asciidoc2html.py || die - fi - - if use test; then - # skip unnecessary (for us) pytest plugins, and ignore Qt's - # warnings that tend to newly appear with new versions - sed -e '/pytest-benchmark/d' -e 's/--benchmark[^ ]*//' \ - -e '/pytest-instafail/d' -e 's/--instafail//' \ - -e '/qt_log_level_fail/s/WARNING/CRITICAL/' \ - -i pytest.ini || die - - if [[ ${PV} == 9999 ]]; then - # likewise, needs vulture - rm tests/unit/scripts/test_run_vulture.py || die - else - # https://github.com/qutebrowser/qutebrowser/issues/7620 - rm tests/unit/scripts/test_problemmatchers.py || die - fi - fi -} - -python_test() { - local -x PYTEST_QT_API=pyqt6 - - local EPYTEST_DESELECT=( - # end2end/IPC tests are broken with "Name error" if socket path is over - # ~108 characters (>124 in /var/tmp/portage) due to Linux limitations, - # skip rather than bother using /tmp+cleanup over ${T} (end2end tests - # are important, but the other tests should be enough for downstream) - tests/end2end - tests/unit/misc/test_ipc.py - # python eclasses provide a fake "failing" python2 and trips this test - tests/unit/misc/test_checkpyver.py::test_old_python - # not worth running dbus over - tests/unit/browser/test_notification.py::TestDBus - # fails in ebuild, seems due to saving fake downloads in the wrong location - tests/unit/browser/webengine/test_webenginedownloads.py::TestDataUrlWorkaround - # may fail if environment is very large (bug #819393) - tests/unit/commands/test_userscripts.py::test_custom_env\[_POSIXUserscriptRunner\] - # may fail if chromium version is unrecognized (aka newer qtwebengine) - tests/unit/utils/test_version.py - # new type added in (currently prerelease-only) PyQt6-WebEngine-6.8, - # *should* be safe to ignore until qutebrowser upstream updates this - # https://github.com/qutebrowser/qutebrowser/issues/8069#issuecomment-2439490061 - tests/unit/browser/webengine/test_webengineinterceptor.py::test_no_missing_resource_types - # upstream is also ignoring this failure w/ Qt6.8 in live for now - # https://github.com/qutebrowser/qutebrowser/issues/8330 - tests/unit/browser/webengine/test_webenginesettings.py::test_existing_dict - ) - - local epytestargs=( - # prefer pytest-xvfb over virtx given same upstream and is expected - -p xvfb - # skip warning tests broken by -Wdefault, and benchmarks - -k 'not _bench and not _matches_tree and not _warning' - # override eclass' settings, tempdirs are re-used by Qt - -o tmp_path_retention_policy=all - ) - - epytest "${epytestargs[@]}" -} - -python_install_all() { - emake -f misc/Makefile DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install - - rm -- "${ED}"/usr/share/${PN}/scripts/{mkvenv,utils}.py || die - fperms -x /usr/share/${PN}/{scripts/cycle-inputs.js,userscripts/README.md} - python_fix_shebang "${ED}"/usr/share/${PN} - - einstalldocs -} - -pkg_postinst() { - xdg_pkg_postinst - - if [[ ! ${REPLACING_VERSIONS} ]]; then - elog "Note that optional scripts in ${EROOT}/usr/share/${PN}/{user,}scripts" - elog "have additional dependencies not covered by this ebuild, for example" - elog "view_in_mpv needs media-video/mpv[lua] and net-misc/yt-dlp." - fi - - if has_version 'dev-qt/qtwebengine:6[bindist]'; then - ewarn - ewarn "USE=bindist is set on dev-qt/qtwebengine, be warned that this" - ewarn "will prevent playback of proprietary media formats (e.g. h264)." - fi -} |