mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
extra/qt6-webengine to 6.3.0-1
This commit is contained in:
parent
f81c79d496
commit
76926206ab
2 changed files with 11 additions and 163 deletions
|
@ -11,36 +11,33 @@
|
|||
highmem=1
|
||||
|
||||
pkgname=qt6-webengine
|
||||
_qtver=6.2.4
|
||||
_qtver=6.3.0
|
||||
pkgver=${_qtver/-/}
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
arch=(x86_64)
|
||||
url='https://www.qt.io'
|
||||
license=(GPL3 LGPL3 FDL custom)
|
||||
pkgdesc='Provides support for web applications using the Chromium browser project'
|
||||
depends=(qt6-webchannel qt6-positioning libxcomposite libxrandr pciutils libxss libxkbfile
|
||||
libevent snappy nss libxslt minizip ffmpeg re2 libvpx libxtst ttf-font)
|
||||
makedepends=(cmake ninja python2 python gperf jsoncpp qt6-tools pipewire nodejs qt6-websockets)
|
||||
depends=(qt6-webchannel qt6-positioning libxcomposite libxrandr libxkbfile
|
||||
libevent snappy nss libxslt minizip ffmpeg re2 libvpx libxtst ttf-font pciutils)
|
||||
makedepends=(cmake ninja python-html5lib gperf jsoncpp qt6-tools pipewire nodejs qt6-websockets)
|
||||
optdepends=('pipewire: WebRTC desktop sharing under Wayland')
|
||||
groups=(qt6)
|
||||
options=(debug)
|
||||
_pkgfn="${pkgname/6-/}-everywhere-src-$_qtver"
|
||||
_pkgfn=${pkgname/6-/}-everywhere-src-$_qtver
|
||||
source=(https://download.qt.io/official_releases/qt/${pkgver%.*}/$_qtver/submodules/$_pkgfn.tar.xz
|
||||
qt6-webengine-ffmpeg5.patch
|
||||
https://download.qt.io/official_releases/qt/6.2/CVE-2022-1096-qtwebengine-6.2.diff
|
||||
qt6-webengine-system-icu.patch::https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=75f0f4eb
|
||||
0001-ARM-toolchain-fixes.patch
|
||||
0002-Fix-ARM-skia-ICE.patch
|
||||
0003-Run-blink-bindings-generation-single-threaded.patch)
|
||||
sha256sums=('2e3e96b7a0335b1f683fecf8863ff2930b1bed4df00ce2ff064fa26d0a49e2b1'
|
||||
'c50d3019626183e753c53a997dc8a55938847543aa3178d4c51f377be741c693'
|
||||
'331117c3aebe6ae35a630e743a3e03018e66347a2a44d39963c383f083763008'
|
||||
sha256sums=('2001b45dd81dcb7ad1bc6cf1aa32f2eca5367a11fed49656053c75676c4d093d'
|
||||
'ec28b71135f293f624365a50be0c329e396eaa9433655386af146614837e82a2'
|
||||
'3dba0f507498ed078dbe5dc5753c593fa6babb7252be1cb964c404b62bf600ab'
|
||||
'20f5f470bdd350e40046eb11cd786730aaa777a2ad6b68d004f7464313792320'
|
||||
'005e5c1476b2c6e8edd6ab0637315cf268060090a7d3a89060a339f9ce4c9851')
|
||||
|
||||
prepare() {
|
||||
patch -d $_pkgfn/src/3rdparty -p1 < qt6-webengine-ffmpeg5.patch # Fix build with ffmpeg 5
|
||||
patch -d $_pkgfn -p1 < CVE-2022-1096-qtwebengine-6.2.diff
|
||||
patch -d $_pkgfn/src/3rdparty -p1 < qt6-webengine-system-icu.patch # Fix build with system ICU
|
||||
|
||||
cd $_pkgfn
|
||||
|
||||
|
@ -60,6 +57,7 @@ build() {
|
|||
-DQT_FEATURE_webengine_system_ffmpeg=ON \
|
||||
-DQT_FEATURE_webengine_system_icu=ON \
|
||||
-DQT_FEATURE_webengine_system_libevent=ON \
|
||||
-DQT_FEATURE_webengine_system_libxslt=ON \
|
||||
-DQT_FEATURE_webengine_proprietary_codecs=ON \
|
||||
-DQT_FEATURE_webengine_kerberos=ON \
|
||||
-DQT_FEATURE_webengine_webrtc_pipewire=ON \
|
||||
|
|
|
@ -1,150 +0,0 @@
|
|||
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.
|
Loading…
Reference in a new issue