%bcond_without doc # documentation
%bcond_without system_libvpx # Build with system libvpx
+%define base_version 5.15
+
%define orgname qtwebengine
%define qtbase_ver 5.15
%define qtdeclarative_ver 5.15
Summary: The Qt5 WebEngine library
Summary(pl.UTF-8): Biblioteka Qt5 WebEngine
Name: qt5-%{orgname}
-Version: 5.15.5
-Release: 2
+Version: %{base_version}.15
+Release: 5
License: LGPL v3 or GPL v2 or GPL v3 or commercial
Group: X11/Libraries
Source0: qtwebengine-%{version}.tar.xz
-# Source0-md5: ef8a67c66f2e59d349c3590a3ef41615
+# Source0-md5: fa635b1707607b3eafdc7e099b8cc22c
Patch0: x32.patch
Patch1: %{name}-gn-dynamic.patch
-Patch2: icu.patch
-Patch3: glibc-2.33.patch
-Patch4: glibc2.34.patch
+Patch2: 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
+Patch3: qt5-webengine-ffmpeg5.patch
+Patch4: qt5-webengine-pipewire-0.3.patch
+Patch5: chromium-107-proprietary-codecs.patch
+Patch6: chromium-112-ffmpeg-first_dts.patch
URL: https://www.qt.io/
-BuildRequires: Mesa-khrplatform-devel
BuildRequires: Qt5Core-devel >= %{qtbase_ver}
BuildRequires: Qt5Designer-devel >= %{qttools_ver}
BuildRequires: Qt5Gui-devel >= %{qtbase_ver}
BuildRequires: glibc-misc >= 6:2.17
BuildRequires: glibc-devel >= 6:2.17
BuildRequires: gperf
-BuildRequires: harfbuzz-devel >= 2.2.0
+BuildRequires: harfbuzz-devel >= 3.0.0
+BuildRequires: harfbuzz-subset-devel >= 3.0.0
# webengine-system-jsoncpp disabled in src/core/config/linux.pri
#BuildRequires: jsoncpp-devel
+BuildRequires: khrplatform-devel
BuildRequires: lcms2-devel
BuildRequires: libdrm-devel
BuildRequires: libevent-devel
-BuildRequires: libicu-devel >= 64
+BuildRequires: libicu-devel >= 65
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel >= 2:1.6.0
BuildRequires: libstdc++-devel >= 6:5
#BuildRequires: protobuf-devel
BuildRequires: pulseaudio-devel >= 0.9.10
BuildRequires: python >= 1:2.7.5
+BuildRequires: python-modules >= 1:2.7.5
%if %{with doc}
BuildRequires: qt5-assistant >= 5.15
%endif
BuildRequires: qt5-qtdoc
BuildRequires: qt5-qttools
BuildRequires: re2-devel
-BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 2.016
BuildRequires: snappy-devel
BuildRequires: tar >= 1:1.22
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXrandr-devel
BuildRequires: xorg-lib-libXtst-devel
BuildRequires: xorg-lib-libxkbcommon-devel
+BuildRequires: xorg-lib-libxkbfile-devel
+BuildRequires: xorg-proto-glproto-devel
BuildRequires: xz
BuildRequires: zlib-devel
BuildConflicts: Qt5WebEngine-devel
%define qt5bindir %(qtpaths-qt5 --binaries-dir)
+%define ffmpeg_ver %(rpm --quiet -q --qf=%%{V} ffmpeg-devel)
+
%description
Qt is a cross-platform application and UI framework. Using Qt, you can
write web-enabled applications once and deploy them across desktop,
Summary: The Qt5 WebEngine library
Summary(pl.UTF-8): Biblioteka Qt5 WebEngine
Group: Libraries
-%requires_ge_to Qt5Core Qt5Core-devel
+%requires_eq_to Qt5Core Qt5Core-devel
%requires_ge_to Qt5Gui Qt5Gui-devel
%requires_ge_to Qt5Network Qt5Network-devel
%requires_ge_to Qt5Positioning Qt5Positioning-devel
%requires_ge_to Qt5WebChannel Qt5WebChannel-devel
Requires: alsa-lib >= 1.0.10
Requires: freetype >= 1:2.4.2
-Requires: harfbuzz >= 2.2.0
-Requires: libicu >= 64
+Requires: harfbuzz >= 3.0.0
+Requires: harfbuzz-subset >= 3.0.0
+Requires: libicu >= 65
Requires: libpng >= 2:1.6.0
%{?with_system_libvpx:Requires: libvpx >= 1.8.0}
Requires: nss >= 3.26
Summary: The Qt5 Pdf library
Summary(pl.UTF-8): Biblioteka Qt5 Pdf
Group: Libraries
-%requires_ge_to Qt5Core Qt5Core-devel
+%requires_eq_to Qt5Core Qt5Core-devel
%requires_ge_to Qt5Gui Qt5Gui-devel
%requires_ge_to Qt5Network Qt5Network-devel
%requires_ge_to Qt5Qml Qt5Qml-devel
%endif
%patch1 -p1
%patch2 -p1
-%patch3 -p1
-cd src/3rdparty/chromium
-%patch4 -p1
-cd ../../..
+%patch4 -p1 -d src/3rdparty
+%patch5 -p1 -d src/3rdparty/chromium
+%if %{_ver_ge %ffmpeg_ver 5}
+%patch3 -p1 -d src/3rdparty
+%patch6 -p1 -d src/3rdparty/chromium
+%endif
%{qt5bindir}/syncqt.pl -version %{version}
%ifarch x32
export V8_TARGET_ARCH="x32"
%endif
-qmake-qt5 CONFIG+=use_gold_linker -- \
+%{qmake_qt5} CONFIG+=use_gold_linker -- \
-webengine-ffmpeg \
-webengine-icu \
-webengine-opus \
ifecho_tree examples %{_examplesdir}/qt5/webengine
ifecho_tree examples %{_examplesdir}/qt5/webenginewidgets
+# fixup artificial Qt version dependency
+sed -i -e 's/%{version} ${_Qt5WebEngine[^_]*_FIND_VERSION_EXACT}/%{base_version}/' \
+ $RPM_BUILD_ROOT%{_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake
+
%clean
rm -rf $RPM_BUILD_ROOT