Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libqt5-qtwebengine for 
openSUSE:Factory checked in at 2022-09-26 18:47:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtwebengine (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtwebengine.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtwebengine"

Mon Sep 26 18:47:41 2022 rev:83 rq:1005868 version:5.15.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtwebengine/libqt5-qtwebengine.changes    
2022-08-09 15:26:02.081227851 +0200
+++ 
/work/SRC/openSUSE:Factory/.libqt5-qtwebengine.new.2275/libqt5-qtwebengine.changes
  2022-09-26 18:47:44.624002102 +0200
@@ -1,0 +2,9 @@
+Fri Sep 23 18:01:11 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Add patches to build with python 3, ffmpeg 5 and pipewire 0.3:
+  * qtwebengine-ffmpeg5.patch
+  * qtwebengine-pipewire-0.3.patch
+  * qtwebengine-python3.patch
+- Use a newer catapult snapshot when building with python3
+
+-------------------------------------------------------------------

New:
----
  catapult-git.tar.xz
  qtwebengine-ffmpeg5.patch
  qtwebengine-pipewire-0.3.patch
  qtwebengine-python3.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libqt5-qtwebengine.spec ++++++
--- /var/tmp/diff_new_pack.38u6yV/_old  2022-09-26 18:47:47.260007082 +0200
+++ /var/tmp/diff_new_pack.38u6yV/_new  2022-09-26 18:47:47.268007097 +0200
@@ -1,8 +1,7 @@
 #
 # spec file for package libqt5-qtwebengine
 #
-# Copyright (c) 2021 SUSE LLC
-# Copyright ?? 2017 Kevin Kofler <ke...@tigcc.ticalc.org>
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,6 +23,10 @@
 %endif
 %bcond_without system_ffmpeg
 %bcond_without system_minizip
+%bcond_without pipewire
+%if %{?suse_version} > 1500 || 0%{?sle_version} > 150400
+%bcond_without python3
+%endif
 
 # spellchecking dictionary directory
 %global _qtwebengine_dictionaries_dir 
%{_libqt5_datadir}/qtwebengine_dictionaries
@@ -40,6 +43,8 @@
 %define so_version 5.15.10
 %define tar_version qtwebengine-everywhere-src-%{version}
 Source:         %{tar_version}.tar.xz
+# Use a git snapshot for catapult to build with python3 (git rev: b7e9d5899)
+Source1:        catapult-git.tar.xz
 Source99:       libqt5-qtwebengine-rpmlintrc
 # PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration 
for armv6
 Patch0:         armv6-ffmpeg-no-thumb.patch
@@ -50,26 +55,26 @@
 Patch3:         rtc-dont-use-h264.patch
 # PATCH-FIX-UPSTREAM
 Patch4:         0001-skia-Some-includes-to-fix-build-with-GCC-12.patch
+# PATCH-FIX-UPSTREAM -- build with pipewire 0.3
+Patch5:         qtwebengine-pipewire-0.3.patch
+### Patch 50-99 are applied conditionally
+# PATCH-FIX-OPENSUSE -- allow building qtwebengine with python3 and ffmpeg5
+Patch50:        qtwebengine-python3.patch
+Patch51:        qtwebengine-ffmpeg5.patch
+###
 # http://www.chromium.org/blink is not ported to PowerPC & s390
 ExcludeArch:    ppc ppc64 ppc64le s390 s390x
 # Try to fix i586 MemoryErrors with rpmlint
 #!BuildIgnore: rpmlint
 BuildRequires:  bison
 BuildRequires:  fdupes
-%if %{with system_ffmpeg}
-BuildRequires:  ffmpeg-4-libavcodec-devel
-BuildRequires:  ffmpeg-4-libavformat-devel
-BuildRequires:  ffmpeg-4-libavutil-devel
-%endif
 BuildRequires:  flac-devel
 BuildRequires:  flex
-BuildRequires:  gperf
 BuildRequires:  git-core
+BuildRequires:  gperf
 BuildRequires:  krb5
 BuildRequires:  krb5-devel
 BuildRequires:  libQt5QuickControls2-devel
-# For building pdf examples...
-BuildRequires:  libqt5-qtsvg-devel
 BuildRequires:  libcap-devel
 BuildRequires:  libgcrypt-devel
 BuildRequires:  libjpeg-devel
@@ -77,37 +82,45 @@
 BuildRequires:  libqt5-qtbase-private-headers-devel >= 5.12
 BuildRequires:  libqt5-qtdeclarative-private-headers-devel >= 5.12
 BuildRequires:  libqt5-qtlocation-private-headers-devel >= 5.12
+# For building pdf examples...
+BuildRequires:  libqt5-qtsvg-devel
 BuildRequires:  libqt5-qttools-private-headers-devel >= 5.12
 BuildRequires:  libqt5-qtwebchannel-private-headers-devel >= 5.12
 BuildRequires:  libqt5-qtxmlpatterns-private-headers-devel >= 5.12
 BuildRequires:  memory-constraints
 BuildRequires:  ninja
-# nodejs-default doesn't exist on Leap 15.2
-%if 0%{?suse_version} == 1500 && 0%{?sle_version} == 150200
-BuildRequires:  nodejs-common
-%else
 BuildRequires:  nodejs-default
-%endif
 BuildRequires:  pam-devel
 BuildRequires:  pciutils-devel
 BuildRequires:  perl
 BuildRequires:  perl-JSON
+%if %{with pipewire}
+BuildRequires:  pipewire-devel
+%endif
 BuildRequires:  pkgconfig
+%if %{with python3}
+BuildRequires:  python3
+BuildRequires:  python3-devel
+BuildRequires:  python3-html5lib
+BuildRequires:  python3-xml
+%else
 BuildRequires:  python
 BuildRequires:  python-devel
 BuildRequires:  python-xml
+%endif
 BuildRequires:  re2c
 BuildRequires:  sed
 BuildRequires:  snappy-devel
 BuildRequires:  update-desktop-files
 BuildRequires:  usbutils
 BuildRequires:  util-linux
-%ifnarch %arm
+%ifnarch %{arm}
 BuildRequires:  valgrind-devel
 %endif
 BuildRequires:  wdiff
 BuildRequires:  xz
 BuildRequires:  yasm
+BuildRequires:  yasm-devel
 BuildRequires:  perl(Switch)
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(atk)
@@ -123,10 +136,15 @@
 BuildRequires:  pkgconfig(gobject-2.0)
 BuildRequires:  pkgconfig(gthread-2.0)
 BuildRequires:  pkgconfig(harfbuzz) >= 2.4.0
-BuildRequires:  pkgconfig(icu-uc) >= 65.0
 BuildRequires:  pkgconfig(icu-i18n) >= 65.0
+BuildRequires:  pkgconfig(icu-uc) >= 65.0
 BuildRequires:  pkgconfig(jsoncpp)
 BuildRequires:  pkgconfig(lcms2)
+%if %{with system_ffmpeg}
+BuildRequires:  pkgconfig(libavcodec)
+BuildRequires:  pkgconfig(libavformat)
+BuildRequires:  pkgconfig(libavutil)
+%endif
 BuildRequires:  pkgconfig(libcrypto)
 BuildRequires:  pkgconfig(libdrm)
 BuildRequires:  pkgconfig(libevent)
@@ -273,7 +291,30 @@
 Examples for the libqt5-qtpdf module.
 
 %prep
-%autosetup -p1 -n %{tar_version}
+%setup -q -n %{tar_version}
+# Leap 15 doesn't understand '%%autopatch -m'
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+
+%if %{with python3}
+%patch50 -p1
+# Replace the whole catapult folder rather than picking individual changes
+pushd src/3rdparty/chromium/third_party
+rm -r catapult
+tar xJf %{SOURCE1}
+mv catapult-git catapult
+popd
+%endif
+
+# FFmpeg 5
+%if %{with system_ffmpeg} && %{pkg_vcmp libavcodec-devel >= 5}
+%patch51 -p1
+%endif
+
 sed -i 's|$(STRIP)|strip|g' src/core/core_module.pro
 
 #force the configure script to generate the forwarding headers (it checks 
whether .git directory exists)
@@ -314,6 +355,9 @@
         -system-webengine-ffmpeg \
         -webengine-proprietary-codecs \
 %endif
+%if %{with pipewire}
+        -webengine-webrtc-pipewire
+%endif
 
 # Determine the right number of parallel processes based on the available 
memory
 %limit_build -m 2750
@@ -322,6 +366,7 @@
 # processes instead of its defaults.
 export NINJAFLAGS="%{?_smp_mflags}"
 
+# Warning: Don't use %%make_build or the chromium build log won't be available
 make %{_smp_mflags} VERBOSE=1
 
 %install

++++++ _service ++++++
--- /var/tmp/diff_new_pack.38u6yV/_old  2022-09-26 18:47:47.332007219 +0200
+++ /var/tmp/diff_new_pack.38u6yV/_new  2022-09-26 18:47:47.336007226 +0200
@@ -7,10 +7,17 @@
    <param name="filename">qtwebengine-everywhere-src</param>
    <param name="revision">v5.15.10-lts</param>
   </service>
+  <service name="tar_scm" mode="disabled">
+   <param name="changesgenerate">disable</param>
+   <param name="url">https://chromium.googlesource.com/catapult</param>
+   <param name="revision">main</param>
+   <param name="scm">git</param>
+   <param name="filename">catapult</param>
+   <param name="versionformat">git</param>
+  </service>
   <service name="recompress" mode="disabled">
    <param name="file">*.tar</param>
    <param name="compression">xz</param>
   </service>
-  <service name="set_version" mode="disabled" />
 </services>
 

++++++ qtwebengine-ffmpeg5.patch ++++++
Allow building qtwebengine using ffmpeg 5
Origin: ArchLinux, 
https://github.com/archlinux/svntogit-packages/tree/packages/qt5-webengine/trunk

diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h 
b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
index 2734a48..70b1877 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/audio_file_reader.cc 
b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
index cb81d92..bd73908 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc 
b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
index 0d825ed..72fac61 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc 
b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
index d34db63..427565b 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc 
b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
index 0ef3521..8483ecc 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc 
b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
index ef12477..7996606 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/media/filters/media_file_checker.cc 
b/src/3rdparty/chromium/media/filters/media_file_checker.cc
index 59c2a2f..1a9872c 100644
--- a/src/3rdparty/chromium/media/filters/media_file_checker.cc
+++ b/src/3rdparty/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/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
 
b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index 9002b87..d12fade 100644
--- 
a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ 
b/src/3rdparty/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.

++++++ qtwebengine-pipewire-0.3.patch ++++++
++++ 1765 lines (skipped)

++++++ qtwebengine-python3.patch ++++++
++++ 2059 lines (skipped)

Reply via email to