diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index a62d2b0..d789055 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -62,7 +62,7 @@ Summary: Qt5 - QtWebEngine components Name: qt5-qtwebengine Version: 5.15.8 -Release: 5%{?dist} +Release: 5%{?dist}.1 # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -120,6 +120,9 @@ Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch ## Upstream patches: +## epel8 patches +Patch101: qtwebengine-everywhere-5.15.8-gcc-aarch64-hack.patch.patch + %if 0%{?fedora} || 0%{?epel} > 7 # handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches ExclusiveArch: %{qt5_qtwebengine_arches} @@ -416,7 +419,7 @@ mv pulse src/3rdparty/chromium/ pushd src/3rdparty/chromium popd -%if 0%{?epel:1} +%if 0%{?rhel} && 0%{?rhel} == 9 # Install python2 from rpms mkdir python2 pushd python2 @@ -449,6 +452,9 @@ popd %patch26 -p1 -b .use-python2 %patch31 -p1 -b .TRUE +## epel8 patches +%patch101 -p1 -b .fix-aarch64 + # delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we # never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \ @@ -669,6 +675,9 @@ done %changelog +* Thu May 12 2022 Troy Dawson - 5.15.8-5.1 +- Fix aarch64 build failures on epel8-next + * Wed Mar 09 2022 Jan Grulich - 5.15.8-5 - Rebuild (qt5) diff --git a/qtwebengine-everywhere-5.15.8-gcc-aarch64-hack.patch.patch b/qtwebengine-everywhere-5.15.8-gcc-aarch64-hack.patch.patch new file mode 100644 index 0000000..73c20d9 --- /dev/null +++ b/qtwebengine-everywhere-5.15.8-gcc-aarch64-hack.patch.patch @@ -0,0 +1,48 @@ +From 14242d039503d5b79cb1867f06a5682cfde167f3 Mon Sep 17 00:00:00 2001 +From: Troy Dawson +Date: Thu, 12 May 2022 13:17:26 -0700 +Subject: [PATCH] gcc-aarch64-hack.patch + +--- + .../skia/third_party/skcms/src/Transform_inl.h | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/src/3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h b/src/3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h +index 2dcf717..02514ef 100644 +--- a/src/3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h ++++ b/src/3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h +@@ -117,6 +117,22 @@ SI D cast(const S& v) { + #endif + } + ++// This is a hack to work around GCC PR95726 ++template ++SI D cast2(const S& v) { ++#if N == 1 ++ return (D)v; ++#elif defined(__clang__) ++ return __builtin_convertvector(v, D); ++#else ++ D d; ++ for (int i = 0; i < N; i++) { ++ d[i] = v[i]; ++ } ++ return d; ++#endif ++} ++ + template + SI D bit_pun(const S& v) { + static_assert(sizeof(D) == sizeof(v), ""); +@@ -618,7 +634,7 @@ SI F F_from_U16_BE(U16 v) { + // MSVC catches the "loss" of data here in the portable path, so we also make sure to mask. + U16 lo = (v >> 8), + hi = (v << 8) & 0xffff; +- return cast(lo|hi) * (1/65535.0f); ++ return cast2(lo|hi) * (1/65535.0f); + } + + SI U16 U16_from_F(F v) { +-- +2.36.1 +