From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1382820-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 7D1EE15808B for <garchives@archives.gentoo.org>; Tue, 5 Apr 2022 17:08:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CA385E0974; Tue, 5 Apr 2022 17:08:18 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 174B4E0974 for <gentoo-commits@lists.gentoo.org>; Tue, 5 Apr 2022 17:08:18 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 880633412E3 for <gentoo-commits@lists.gentoo.org>; Tue, 5 Apr 2022 17:08:16 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9C623389 for <gentoo-commits@lists.gentoo.org>; Tue, 5 Apr 2022 17:07:50 +0000 (UTC) From: "Andreas Sturmlechner" <asturm@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" <asturm@gentoo.org> Message-ID: <1649178432.07dfab4b3469b6455f543f156b66816602eaf14d.asturm@gentoo> Subject: [gentoo-commits] proj/qt:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/ X-VCS-Repository: proj/qt X-VCS-Files: dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220330-ffmpeg5.patch dev-qt/qtwebengine/metadata.xml dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild X-VCS-Directories: dev-qt/qtwebengine/files/ dev-qt/qtwebengine/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: 07dfab4b3469b6455f543f156b66816602eaf14d X-VCS-Branch: master Date: Tue, 5 Apr 2022 17:07:50 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 427c8da2-65ac-41a8-a035-631f0bbcb42b X-Archives-Hash: 1c7256e1838638f732d37a36958eac39 commit: 07dfab4b3469b6455f543f156b66816602eaf14d Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Tue Apr 5 15:36:00 2022 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Tue Apr 5 17:07:12 2022 +0000 URL: https://gitweb.gentoo.org/proj/qt.git/commit/?id=07dfab4b dev-qt/qtwebengine: Fix build with >=ffmpeg-5 Patch sourced from ArchLinux. Closes: https://bugs.gentoo.org/831487 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> .../qtwebengine-5.15.3_p20220329-clang14.patch | 26 ++++ .../qtwebengine-5.15.3_p20220330-ffmpeg5.patch | 169 +++++++++++++++++++++ dev-qt/qtwebengine/metadata.xml | 12 +- dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild | 6 +- 4 files changed, 204 insertions(+), 9 deletions(-) diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch index ed48544f..c1a98d09 100644 --- a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch @@ -1,3 +1,29 @@ +From 0825e7bc64e47d87e1f1026cc80c933550f114f5 Mon Sep 17 00:00:00 2001 +From: Dimitry Andric <dim@FreeBSD.org> +Date: Mon, 14 Feb 2022 13:55:25 +0100 +Subject: www/qt5-webengine: fix build with clang 14 + +Fixes compile error: + +In file included from gen/third_party/blink/renderer/platform/platform_jumbo_63.cc:8: +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:122:15: error: anonymous non-C-compatible type given name for linkage purposes by typedef declaration after its linkage was computed; add a tag name here to establish linkage prior to definition +typedef struct { + ^ + UTextWithBuffer +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:123:3: note: type is not C-compatible due to this member declaration + DISALLOW_NEW(); + ^~~~~~~~~~~~~~ +src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/allocator/allocator.h:40:2: note: expanded from macro 'DISALLOW_NEW' + public: \ + ^~~~~~~ +src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:126:3: note: type is given name 'UTextWithBuffer' for linkage purposes by this typedef declaration +} UTextWithBuffer; + ^ + +PR: 261949 +Approved by: adridg (maintainer) +MFH: 2022Q1 + --- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc +++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc @@ -119,11 +119,11 @@ enum TextContext { kNoContext, kPriorContext, kPrimary diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220330-ffmpeg5.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220330-ffmpeg5.patch new file mode 100644 index 00000000..d85c1985 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220330-ffmpeg5.patch @@ -0,0 +1,169 @@ +From 05f6ffbbce0a2aad01dc05d682cbe4a1ec44fad5 Mon Sep 17 00:00:00 2001 +From: Antonio Rojas <arojas@archlinux.org> +Date: Tue, 25 Jan 2022 10:51:58 +0000 +Subject: [PATCH] Fix build with ffmpeg 5 + +--- + chromium/media/ffmpeg/ffmpeg_common.h | 1 + + chromium/media/filters/audio_file_reader.cc | 2 +- + chromium/media/filters/ffmpeg_audio_decoder.cc | 2 +- + chromium/media/filters/ffmpeg_demuxer.cc | 12 ++++++------ + chromium/media/filters/ffmpeg_glue.cc | 4 ---- + chromium/media/filters/ffmpeg_video_decoder.cc | 2 +- + chromium/media/filters/media_file_checker.cc | 2 +- + .../video_coding/codecs/h264/h264_decoder_impl.cc | 2 +- + 8 files changed, 12 insertions(+), 15 deletions(-) + +diff --git a/chromium/media/ffmpeg/ffmpeg_common.h b/chromium/media/ffmpeg/ffmpeg_common.h +index 2734a485cbd..70b1877a43c 100644 +--- a/chromium/media/ffmpeg/ffmpeg_common.h ++++ b/chromium/media/ffmpeg/ffmpeg_common.h +@@ -29,6 +29,7 @@ extern "C" { + #include <libavformat/avformat.h> + #include <libavformat/avio.h> + #include <libavutil/avutil.h> ++#include <libavutil/channel_layout.h> + #include <libavutil/imgutils.h> + #include <libavutil/log.h> + #include <libavutil/mastering_display_metadata.h> +diff --git a/chromium/media/filters/audio_file_reader.cc b/chromium/media/filters/audio_file_reader.cc +index cb81d920def..bd73908d0ca 100644 +--- a/chromium/media/filters/audio_file_reader.cc ++++ b/chromium/media/filters/audio_file_reader.cc +@@ -85,7 +85,7 @@ bool AudioFileReader::OpenDemuxer() { + } + + bool AudioFileReader::OpenDecoder() { +- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); ++ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); + if (codec) { + // MP3 decodes to S16P which we don't support, tell it to use S16 instead. + if (codec_context_->sample_fmt == AV_SAMPLE_FMT_S16P) +diff --git a/chromium/media/filters/ffmpeg_audio_decoder.cc b/chromium/media/filters/ffmpeg_audio_decoder.cc +index 0d825ed791b..72fac6167ef 100644 +--- a/chromium/media/filters/ffmpeg_audio_decoder.cc ++++ b/chromium/media/filters/ffmpeg_audio_decoder.cc +@@ -329,7 +329,7 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { + } + } + +- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); ++ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); + if (!codec || + avcodec_open2(codec_context_.get(), codec, &codec_options) < 0) { + DLOG(ERROR) << "Could not initialize audio decoder: " +diff --git a/chromium/media/filters/ffmpeg_demuxer.cc b/chromium/media/filters/ffmpeg_demuxer.cc +index d34db63f3ef..427565b00c1 100644 +--- a/chromium/media/filters/ffmpeg_demuxer.cc ++++ b/chromium/media/filters/ffmpeg_demuxer.cc +@@ -98,12 +98,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) { + + // Next try to use the first DTS value, for codecs where we know PTS == DTS + // (excludes all H26x codecs). The start time must be returned in PTS. +- if (stream->first_dts != kNoFFmpegTimestamp && ++ if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && + stream->codecpar->codec_id != AV_CODEC_ID_HEVC && + stream->codecpar->codec_id != AV_CODEC_ID_H264 && + stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { + const base::TimeDelta first_pts = +- ConvertFromTimeBase(stream->time_base, stream->first_dts); ++ ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); + if (first_pts < start_time) + start_time = first_pts; + } +@@ -408,11 +408,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + scoped_refptr<DecoderBuffer> buffer; + + if (type() == DemuxerStream::TEXT) { +- int id_size = 0; ++ size_t id_size = 0; + uint8_t* id_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size); + +- int settings_size = 0; ++ size_t settings_size = 0; + uint8_t* settings_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size); + +@@ -424,7 +424,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + buffer = DecoderBuffer::CopyFrom(packet->data, packet->size, + side_data.data(), side_data.size()); + } else { +- int side_data_size = 0; ++ size_t side_data_size = 0; + uint8_t* side_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size); + +@@ -485,7 +485,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + packet->size - data_offset); + } + +- int skip_samples_size = 0; ++ size_t skip_samples_size = 0; + const uint32_t* skip_samples_ptr = + reinterpret_cast<const uint32_t*>(av_packet_get_side_data( + packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size)); +diff --git a/chromium/media/filters/ffmpeg_glue.cc b/chromium/media/filters/ffmpeg_glue.cc +index 0ef3521473d..8483ecc348f 100644 +--- a/chromium/media/filters/ffmpeg_glue.cc ++++ b/chromium/media/filters/ffmpeg_glue.cc +@@ -59,7 +59,6 @@ static int64_t AVIOSeekOperation(void* opaque, int64_t offset, int whence) { + } + + void FFmpegGlue::InitializeFFmpeg() { +- av_register_all(); + } + + static void LogContainer(bool is_local_file, +@@ -95,9 +94,6 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol* protocol) { + // Enable fast, but inaccurate seeks for MP3. + format_context_->flags |= AVFMT_FLAG_FAST_SEEK; + +- // Ensures we can read out various metadata bits like vp8 alpha. +- format_context_->flags |= AVFMT_FLAG_KEEP_SIDE_DATA; +- + // Ensures format parsing errors will bail out. From an audit on 11/2017, all + // instances were real failures. Solves bugs like http://crbug.com/710791. + format_context_->error_recognition |= AV_EF_EXPLODE; +diff --git a/chromium/media/filters/ffmpeg_video_decoder.cc b/chromium/media/filters/ffmpeg_video_decoder.cc +index ef12477ee89..7996606f5f9 100644 +--- a/chromium/media/filters/ffmpeg_video_decoder.cc ++++ b/chromium/media/filters/ffmpeg_video_decoder.cc +@@ -391,7 +391,7 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config, + if (decode_nalus_) + codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS; + +- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); ++ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); + if (!codec || avcodec_open2(codec_context_.get(), codec, NULL) < 0) { + ReleaseFFmpegResources(); + return false; +diff --git a/chromium/media/filters/media_file_checker.cc b/chromium/media/filters/media_file_checker.cc +index 59c2a2fc618..1a9872c7acb 100644 +--- a/chromium/media/filters/media_file_checker.cc ++++ b/chromium/media/filters/media_file_checker.cc +@@ -68,7 +68,7 @@ bool MediaFileChecker::Start(base::TimeDelta check_time) { + auto context = AVStreamToAVCodecContext(format_context->streams[i]); + if (!context) + continue; +- AVCodec* codec = avcodec_find_decoder(cp->codec_id); ++ const AVCodec* codec = avcodec_find_decoder(cp->codec_id); + if (codec && avcodec_open2(context.get(), codec, nullptr) >= 0) { + auto loop = std::make_unique<FFmpegDecodingLoop>(context.get()); + stream_contexts[i] = {std::move(context), std::move(loop)}; +diff --git a/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc +index 9002b874611..d12fade8b63 100644 +--- a/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc ++++ b/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc +@@ -203,7 +203,7 @@ int32_t H264DecoderImpl::InitDecode(const VideoCodec* codec_settings, + // a pointer |this|. + av_context_->opaque = this; + +- AVCodec* codec = avcodec_find_decoder(av_context_->codec_id); ++ const AVCodec* codec = avcodec_find_decoder(av_context_->codec_id); + if (!codec) { + // This is an indication that FFmpeg has not been initialized or it has not + // been compiled/initialized with the correct set of codecs. +-- +2.35.1 + diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml index 944fcbe0..0bc98db9 100644 --- a/dev-qt/qtwebengine/metadata.xml +++ b/dev-qt/qtwebengine/metadata.xml @@ -11,16 +11,12 @@ <name>Georgy Yakovlev</name> </maintainer> <use> - <flag name="designer">Install the QWebEngineView plugin used to add widgets in - <pkg>dev-qt/designer</pkg> forms that display web pages.</flag> - <flag name="geolocation">Enable physical position determination - via <pkg>dev-qt/qtpositioning</pkg></flag> + <flag name="designer">Install the QWebEngineView plugin used to add widgets in <pkg>dev-qt/designer</pkg> forms that display web pages.</flag> + <flag name="geolocation">Enable physical position determination via <pkg>dev-qt/qtpositioning</pkg></flag> <flag name="jumbo-build">Combine source files to speed up build process.</flag> <flag name="pipewire">Enable PipeWire support for WebRTC.</flag> - <flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg> - instead of bundled.</flag> - <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> - instead of bundled.</flag> + <flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg> instead of bundled.</flag> + <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled.</flag> <flag name="widgets">Enable QtWidgets support</flag> </use> <upstream> diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild index 53315490..b755d163 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.15.3.9999.ebuild @@ -106,8 +106,8 @@ PATCHES=( "${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606 "${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix "${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746 - "${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957 "${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # fixes build with clang 14 + "${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957 ) qtwebengine_check-reqs() { @@ -199,6 +199,10 @@ src_prepare() { eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch" fi + if use system-ffmpeg && has_version '>=media-video/ffmpeg-5'; then + eapply "${FILESDIR}/${PN}-5.15.3_p20220330-ffmpeg5.patch" # by Archlinux, bug 831437 + fi + qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri