diff options
author | Andrew Cameron <apcameron@gmail.com> | 2024-04-15 11:31:52 +0100 |
---|---|---|
committer | Yixun Lan <dlan@gentoo.org> | 2024-04-28 12:54:17 +0000 |
commit | 32c8c053f44a354a120c90e102c2b0f1f561fbf8 (patch) | |
tree | d232417909782337820d37b7cb9602ad83907b03 | |
parent | www-client/chromium: sync metadata.xml (diff) | |
download | riscv-32c8c053f44a354a120c90e102c2b0f1f561fbf8.tar.gz riscv-32c8c053f44a354a120c90e102c2b0f1f561fbf8.tar.bz2 riscv-32c8c053f44a354a120c90e102c2b0f1f561fbf8.zip |
www-client/chromium/: Update to 123.0.6312.122
Closes: https://github.com/gentoo/riscv/pull/14
Signed-off-by: Andrew Cameron <apcameron@gmail.com>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
-rw-r--r-- | www-client/chromium/Manifest | 4 | ||||
-rw-r--r-- | www-client/chromium/chromium-123.0.6312.122.ebuild (renamed from www-client/chromium/chromium-123.0.6312.58.ebuild) | 112 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-123-qt-gui-check.patch | 31 |
3 files changed, 115 insertions, 32 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index fd20d18..3786d14 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -1,9 +1,9 @@ DIST chromium-123-clang.tar.xz 50178332 BLAKE2B 4b5c4f81a83c7b0c809c93a713e869fde6fe559477665cb3b2f03c62d2175f821b81fb03b0ddd127c6eaf77c41011b4de06561f09a58384153d80fe2b3aa7427 SHA512 17108b9579f16d0da383bd5e41d012f94bcb8445a517ff823aa49b66d3861b0a124b6cce6183fbc64e8050f1ebcd65a9daa2acbda5fdaa42390bfbf4ecb16bd3 DIST chromium-123-rust.tar.xz 145295100 BLAKE2B ae6603a0e0218e4e39d3e8b7aa48a2cd946c90779dac48be26582926963c8a10a48e3e58fd00a23cb8cd9a3584d9d4a142e843f93c761e862253817635f18c2c SHA512 b4f8dce6d74be4be495d9948d7593ec9664c0b93e87456fab33d3ae5ac0e486a4e8576b26a9ab9890285a7c0d566afb803b98225c0692b6cac9f623a10b954a2 DIST chromium-123.0.6312.105.tar.xz 3481204616 BLAKE2B 8adbc4a0c96ea53b45b26a48c8eb94e29b31b981471a0d5fda4cdea1f7aa69714a9e5a5729a61a49a92b6322889ee794b4c7ac5e243bc495ff5bd04cdc59f616 SHA512 a1abbba78c96fd7bc44a23b21d8180ebff015d17abcb186dece595513fda9d4443ac67498a78181589884c384a48e6c3abfe72e6ee806fdfc764d05f13fb5cb6 -DIST chromium-123.0.6312.58.tar.xz 3465099244 BLAKE2B d0b85e740924a33350c5b6d3a6d1e94c8b946c52ac760237b2391127c99326c64b50de29751850dc368331b66402ab0c4fc65b9aeef09302857a1f5300a0d17b SHA512 4cb08767b8a6fe268c44bd7b621632c71f7d2f3f6c1b7bae9e0373dfc2eada397ab511a068582c2d17bbf3ee9ff16f05fccd454d610d63dd2fd14d6ca355a0c0 +DIST chromium-123.0.6312.122.tar.xz 3488275388 BLAKE2B 9f7e6c4984a41dbed6849eee08d4f6b8241c86ece0250d67786038980f3d7f208897f42b279c20ffbb965e8e49427ce74e896c34b40390321780b9cc2ba685ce SHA512 23e13d1d5758aa771f4c66e1a55068438e7c4890456dcb0b7a1fc1839b750e612e29d59e744c8b773935757aad01b78a5fecc3e03057a8acbb7e997dbb98f007 DIST chromium-patches-123.tar.bz2 4697 BLAKE2B 8a7dd76edb23afb7b2f65084696bce5d6e54d63ca34c4590052db1086ed0a422b1efde863c4daad4e2526f329eb65276b9ad5406017cd97fb75b1a9556c1f933 SHA512 ea47255deac1893896f64496629d34c7092f266a175b8400fcf4f01b9d038ae240e911bff488558bb28e6f5795bbcf276adf20ed1e0ccb8ac99f9ddd260742f9 DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c -DIST chromium_122.0.6261.57-1raptor0~deb12u1.debian.tar.xz 551860 BLAKE2B b3f9bef07a38061553816d6f0faf610cc19cc8565605bb520c163906a02e91795a6c6ae05c92ebbb6ccaf95e130438c8bf3c70d26a04951e8438074edb48b63d SHA512 6037a47e1011304ee33447ac11fa84a3355176b5452ad9f7132eebf2527eb3e4fc42635e148731b77b17db243b42172203feacb0443e6071dc9cc7c52d41f7d6 +DIST chromium_123.0.6312.105-1raptor0~deb12u1.debian.tar.xz 579484 BLAKE2B 587082358377f7bc0dca0dec83772abb7e040ad894ca4d456a294b7f5c19297acbc5b1dac725d3c1dbaaeefd480328c6c06c607438e560aa6359c1e98c4b1c9c SHA512 6b670a139e284cc96da65ff3c1b3e715cd9b436de2404792d619cfad23e2040fd931e7cc49f0b1ac17e11522804a4c9a621cb943e0dab33fb5bf422e954c5421 DIST chromium_123.0.6312.86-1raptor0~deb12u1.debian.tar.xz 579124 BLAKE2B a27996211fbed198480e50934e39b0eda4c39e5e78a03f9b290cb90a6c8d7003b6aa828bf35e6744e9d7aa9a922f43baa77d6c9768140baf5749a797c2dad664 SHA512 cfb51fd910f3330100a2dc9ea993d537f126329ff2c590744954a3bfbb712d7bf1d7ad9066628aba5d28c98f2f9b069cf02f8c6048d2ad0a1a376468bdbd9196 diff --git a/www-client/chromium/chromium-123.0.6312.58.ebuild b/www-client/chromium/chromium-123.0.6312.122.ebuild index 3ab7690..d9b1d00 100644 --- a/www-client/chromium/chromium-123.0.6312.58.ebuild +++ b/www-client/chromium/chromium-123.0.6312.122.ebuild @@ -6,15 +6,16 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..12} ) PYTHON_REQ_USE="xml(+)" -# PACKAGING NOTES: +# PACKAGING NOTES + # Google roll their bundled Clang every two weeks, and the bundled Rust # is rolled regularly and depends on that. While we do our best to build # with system Clang, we will eventually hit the point where we need to use # the bundled Clang due to the use of prerelease features. We've been lucky # enough so far that this hasn't been an issue. -# We try and avoid forcing the use of libcxx, but sometimes it is unavoidable. -# Remember to force the use of Clang when this is forced. +# We try and avoid forcing the use of the custom/bundled libcxx, but sometimes +# it is unavoidable. Remember to force the use of Clang when this is forced. # GCC is _not_ supported upstream, though patches are welcome. We do our # best to enable builds with GCC but reserve the right to force Clang @@ -24,6 +25,15 @@ PYTHON_REQ_USE="xml(+)" # GN is bundled with Chromium, but we always use the system version. Remember to # check for upstream changes to GN and update ebuild (and version below) as required. +# For binhost users, if USE=bindist is set, we configure Chromium in a way that it is able +# to use proprietary codecs, and so that ffmpeg is an external component (libffmpeg.so), +# then we remove ffmpeg from the image to ensure that the built package is distributable +# (i.e. we don't owe royalties). A suitable libffmpeg.so is symlinked in its place; +# as a result of this, ffmpeg[chromium] or ffmpeg-chromium must be installed on the system. + +# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's +# no reason not to. Todo: Re-enable USE=system-ffmpeg. + # These variables let us easily bound supported major dependency versions in one place. GCC_MIN_VER=12 GN_MIN_VER=0.2154 @@ -37,6 +47,7 @@ GOOGLE_CLANG_VER=llvmorg-19-init-2319-g7c4c2746-1 GOOGLE_RUST_VER=340bb19fea20fd5f9357bbfac542fad84fc7ea2b-3 # https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC +# Resolved upstream, requires testing and some backporting I'm sure : ${CHROMIUM_FORCE_CLANG=yes} # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 - Chromium 120: # webrtc - no matching member function for call to 'emplace' @@ -57,7 +68,7 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg- DESCRIPTION="Open-source version of Google Chrome web browser" HOMEPAGE="https://www.chromium.org/" -PATCHSET_PPC64="122.0.6261.57-1raptor0~deb12u1" +PATCHSET_PPC64="123.0.6312.105-1raptor0~deb12u1" PATCH_V="${PV%%\.*}" SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz system-toolchain? ( @@ -77,16 +88,19 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P} LICENSE="BSD" SLOT="0/stable" -KEYWORDS="~amd64 ~arm64 ~riscv" +KEYWORDS="~amd64 arm64 ~ppc64 ~riscv" IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} cups debug gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 screencast selinux +system-toolchain vaapi wayland widevine" +IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio" +IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine" +RESTRICT="!bindist? ( bindist )" + REQUIRED_USE=" !headless? ( || ( X wayland ) ) pgo? ( X !wayland ) qt6? ( qt5 ) screencast? ( wayland ) !system-toolchain? ( libcxx ) + ffmpeg-chromium? ( bindist proprietary-codecs ) " COMMON_X_DEPEND=" @@ -174,6 +188,10 @@ RDEPEND="${COMMON_DEPEND} ) 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? ( @@ -346,9 +364,13 @@ pkg_pretend() { 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} since USE=headless is set." + 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() { @@ -405,19 +427,21 @@ src_prepare() { "${FILESDIR}/chromium-109-system-zlib.patch" "${FILESDIR}/chromium-111-InkDropHost-crash.patch" "${FILESDIR}/chromium-117-system-zstd.patch" - "${FILESDIR}/00swiftshader-MCDissassembler.patch" - "${FILESDIR}/00swiftshader-use-llvm16.patch" - "${FILESDIR}/01fix-rust-target.patch" - "${FILESDIR}/02Debian-fix-rust-linking.patch" - "${FILESDIR}/03riscv-dav1d.patch" - "${FILESDIR}/05riscv-sandbox.patch" - "${FILESDIR}/06riscv-ffmpeg.patch" - "${FILESDIR}/09riscv.patch" - "${FILESDIR}/10cpuinfo.patch" + "${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch" + "${FILESDIR}/chromium-123-qt-gui-check.patch" + "${FILESDIR}/00swiftshader-MCDissassembler.patch" + "${FILESDIR}/00swiftshader-use-llvm16.patch" + "${FILESDIR}/01fix-rust-target.patch" + "${FILESDIR}/02Debian-fix-rust-linking.patch" + "${FILESDIR}/03riscv-dav1d.patch" + "${FILESDIR}/05riscv-sandbox.patch" + "${FILESDIR}/06riscv-ffmpeg.patch" + "${FILESDIR}/09riscv.patch" + "${FILESDIR}/10cpuinfo.patch" ) if use system-toolchain; then - # The patchset is really only required if we're not using the system-toolchain + # The patchset is really only required if we're using the system-toolchain PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) # We can't use the bundled compiler builtins sed -i -e \ @@ -443,6 +467,7 @@ src_prepare() { done PATCHES+=( "${WORKDIR}/ppc64le" ) PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) + PATCHES+=( "${WORKDIR}/debian/patches/fixes/blink-fonts-shape-result.patch" ) fi default @@ -733,9 +758,9 @@ src_prepare() { if use arm64 || use ppc64 ; then keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) fi - if use riscv ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-16.0 ) - fi + if use riscv ; then + keeplibs+=( third_party/swiftshader/third_party/llvm-16.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 @@ -849,13 +874,17 @@ chromium_configure() { local rustc_ver rustc_ver=$(chromium_rust_version_check) if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then - eerror "Rust >=${RUST_MIN_VER} is required" - eerror "Please run 'eselect rust' and select the correct rust version" - die "Selected rust version is too old" + eerror "Rust >=${RUST_MIN_VER} is required" + eerror "Please run 'eselect rust' and select the correct rust version" + die "Selected rust version is too old" else - einfo "Using rust ${rustc_ver} to build" + einfo "Using rust ${rustc_ver} to build" + fi + if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then + myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\"" + else + myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\"" fi - myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\"" myconf_gn+=" rustc_version=\"${rustc_ver}\"" fi @@ -961,9 +990,19 @@ chromium_configure() { # Disable code formating of generated files myconf_gn+=" blink_enable_generated_code_formatting=false" - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" + 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, @@ -1012,7 +1051,7 @@ chromium_configure() { elif [[ $myarch = riscv ]] ; then myconf_gn+=" target_cpu=\"riscv64\"" ffmpeg_target_arch=riscv64 - else + else die "Failed to determine target arch, got '$myarch'." fi @@ -1317,6 +1356,19 @@ src_install() { 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]) diff --git a/www-client/chromium/files/chromium-123-qt-gui-check.patch b/www-client/chromium/files/chromium-123-qt-gui-check.patch new file mode 100644 index 0000000..53c1ca8 --- /dev/null +++ b/www-client/chromium/files/chromium-123-qt-gui-check.patch @@ -0,0 +1,31 @@ +From 3a812de6e7e0b285eda21ebbb670ca809c4db2b5 Mon Sep 17 00:00:00 2001 +From: Matt Jolly <Matt.Jolly@footclan.ninja> +Date: Thu, 11 Apr 2024 12:42:17 +1000 +Subject: [PATCH] Add QtGui to the list of Qt modules + +Re: https://bugreports.qt.io/browse/QTBUG-124135 - certain versions of QT +(6.6.3, 6.7.0) produce pkg-config files that no longer emit dependencies. +This causes Chromium builds to fail as due to not seeing QtGui as a dependency +of QtWidgets: + + `gen/qt6/../../../../ui/qt/qt_shim.h:11:10: fatal error: 'QImage' file not found` + +While this has been resolved upstream, there will certainly be some users +that are still using these versions of QT. This patch adds QtGui to the list of +Qt modules that are required to build the Chromium UI. + +Bug: https://bugs.gentoo.org/928299 +Suggested-by: Chris Pritchard <chris@christopherpritchard.co.uk> +Signed-off-by: Matt Jolly <kangie@gentoo.org> +--- a/ui/qt/BUILD.gn ++++ b/ui/qt/BUILD.gn +@@ -60,6 +60,7 @@ template("qt_shim") { + pkg_config("qt" + invoker.qt_version + "_config") { + packages = [ + "Qt" + invoker.qt_version + "Core", ++ "Qt" + invoker.qt_version + "Gui", + "Qt" + invoker.qt_version + "Widgets", + ] + } +-- +2.44.0 |