diff --git a/.gitignore b/.gitignore index 8e32f24..53e021c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /qtwebengine-everywhere-src-5.15.10-clean.tar.xz /qtwebengine-everywhere-src-5.15.12-clean.tar.xz /qtwebengine-everywhere-src-5.15.16-clean.tar.xz +/qtwebengine-everywhere-src-5.15.17-clean.tar.xz diff --git a/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch b/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch deleted file mode 100644 index 5dcc8fb..0000000 --- a/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch +++ /dev/null @@ -1,75 +0,0 @@ -From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= -Date: Sun, 16 Jul 2023 18:18:02 +0300 -Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift - instructions within inline assembly - -Fixes assembling with binutil as >= 2.41 - -Signed-off-by: James Almer ---- - libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- - 1 file changed, 23 insertions(+), 3 deletions(-) - -diff --git a/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h b/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h -index 6298f5ed19..ca7e2dffc1 100644 ---- a/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h -+++ b/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h -@@ -35,12 +35,20 @@ - static av_always_inline av_const int MULL(int a, int b, unsigned shift) - { - int rt, dummy; -+ if (__builtin_constant_p(shift)) - __asm__ ( - "imull %3 \n\t" - "shrdl %4, %%edx, %%eax \n\t" - :"=a"(rt), "=d"(dummy) -- :"a"(a), "rm"(b), "ci"((uint8_t)shift) -+ :"a"(a), "rm"(b), "i"(shift & 0x1F) - ); -+ else -+ __asm__ ( -+ "imull %3 \n\t" -+ "shrdl %4, %%edx, %%eax \n\t" -+ :"=a"(rt), "=d"(dummy) -+ :"a"(a), "rm"(b), "c"((uint8_t)shift) -+ ); - return rt; - } - -@@ -113,19 +121,31 @@ __asm__ volatile(\ - // avoid +32 for shift optimization (gcc should do that ...) - #define NEG_SSR32 NEG_SSR32 - static inline int32_t NEG_SSR32( int32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("sarl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("sarl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - - #define NEG_USR32 NEG_USR32 - static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("shrl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("shrl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - --- -2.41.0 diff --git a/fix_build_pdf_extension_util.patch b/fix_build_pdf_extension_util.patch new file mode 100644 index 0000000..0b4c754 --- /dev/null +++ b/fix_build_pdf_extension_util.patch @@ -0,0 +1,10 @@ +--- ./src/3rdparty/chromium/qtwebengine/browser/pdf/BUILD.gn.orig 2024-07-03 13:49:13.812285886 +0100 ++++ ./src/3rdparty/chromium/qtwebengine/browser/pdf/BUILD.gn 2024-07-03 13:51:45.789966941 +0100 +@@ -6,6 +6,7 @@ source_set("pdf") { + ] + + deps = [ ++ "//chrome/app:generated_resources", + "//content/public/browser", + ] + } diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index ac6ed75..07c7eb1 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -52,8 +52,8 @@ Summary: Qt5 - QtWebEngine components Name: qt5-qtwebengine -Version: 5.15.16 -Release: 6%{?dist} +Version: 5.15.17 +Release: 1%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -105,13 +105,13 @@ Patch32: qtwebengine-skia-missing-includes.patch Patch34: qtwebengine-fix-build.patch Patch35: qt5-qtwebengine-c99.patch -# Fix assembly with binutils 2.41 https://fftrac-bg.ffmpeg.org/ticket/10405 -Patch50: 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch -Patch51: qtwebengine-icu-74.patch - # Working with ffmpeg Patch60: qtwebengine-ffmpeg5.patch +# Fix build +Patch61: qtwebengine-5.15.13_p20240322-ninja1.12.patch +Patch62: fix_build_pdf_extension_util.patch + # riscv64 support patch from https://github.com/felixonmars/archriscv-packages/tree/master/qt5-webengine Patch100: v8.patch Patch101: riscv.patch @@ -140,6 +140,7 @@ BuildRequires: cmake BuildRequires: bison BuildRequires: flex BuildRequires: gcc-c++ +BuildRequires: binutils-gold # gn links statically (for now) BuildRequires: libstdc++-static BuildRequires: git-core @@ -419,10 +420,9 @@ popd %patch -P35 -p1 -b .c99 -%patch -P50 -p1 -b .0001-avcodec-x86-mathops-clip-constants-used-with-shift-i -%patch -P51 -p1 -b .icu-74 - %patch -P60 -p1 +%patch -P61 -p1 +%patch -P62 -p1 %ifarch riscv64 %patch -P100 -p1 -b .riscv64-v8 @@ -618,6 +618,10 @@ done %{_qt5_examplesdir}/ %changelog +* Mon Jun 24 2024 Sérgio Basto - 5.15.17-1 +- 5.15.17 +- BR: binutils-gold to build on rawhide + * Thu May 30 2024 Jan Grulich - 5.15.16-6 - Rebuild (qt5) diff --git a/qtwebengine-5.15.13_p20240322-ninja1.12.patch b/qtwebengine-5.15.13_p20240322-ninja1.12.patch new file mode 100644 index 0000000..0fdf13e --- /dev/null +++ b/qtwebengine-5.15.13_p20240322-ninja1.12.patch @@ -0,0 +1,27 @@ +Quoting the description from qtwebengine-6.7.0-ninja1.12.patch: +""" +Patch status: pending being looked at upstream + +Issue[1][2][3] also exist in chromium itself[4], and unclear +why this started happening only with ninja-1.12.0 at the moment. + +Just a quickfix, likely not fully correct and seems there may +be further unresolved race issues. + +[1] https://bugs.gentoo.org/930107 +[2] https://bugreports.qt.io/browse/QTBUG-124375 +[3] https://github.com/ninja-build/ninja/issues/2417 +[4] https://bugs.gentoo.org/930112 +""" + +This has a hunk removed but is otherwise the same. +--- ./src/3rdparty/chromium/content/browser/BUILD.gn.orig 2024-03-26 14:47:34.000000000 +0000 ++++ ./src/3rdparty/chromium/content/browser/BUILD.gn 2024-06-24 04:57:25.108720935 +0100 +@@ -196,6 +196,7 @@ jumbo_static_library("browser") { + "//content/common", + "//content/common:buildflags", + "//content/common:mojo_bindings", ++ "//components/spellcheck:buildflags", + "//content/public/browser:proto", + "//content/public/common:common_sources", + "//content/public/common:content_descriptor_keys", diff --git a/qtwebengine-everywhere-5.15.5-use-python2.patch b/qtwebengine-everywhere-5.15.5-use-python2.patch index 9626d27..91a17ae 100644 --- a/qtwebengine-everywhere-5.15.5-use-python2.patch +++ b/qtwebengine-everywhere-5.15.5-use-python2.patch @@ -1,25 +1,3 @@ -diff --git a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py -index 8af373102..b551c0fe2 100644 ---- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py -+++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py -@@ -83,7 +83,7 @@ def _MinifyJS(input_js): - - with tempfile.NamedTemporaryFile() as _: - args = [ -- 'python', -+ 'python2', - rjsmin_path - ] - p = subprocess.Popen(args, -@@ -203,7 +203,7 @@ def _MinifyCSS(css_text): - os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py')) - - with tempfile.NamedTemporaryFile() as _: -- rcssmin_args = ['python', rcssmin_path] -+ rcssmin_args = ['python2', rcssmin_path] - p = subprocess.Popen(rcssmin_args, - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, diff --git a/src/webengine/module.pro b/src/webengine/module.pro index 49a1086b2..afc89d49e 100644 --- a/src/webengine/module.pro diff --git a/qtwebengine-icu-74.patch b/qtwebengine-icu-74.patch deleted file mode 100644 index 703f5f3..0000000 --- a/qtwebengine-icu-74.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc -index e34b07372..c0f9268aa 100644 ---- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc -@@ -162,7 +162,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar - }; - // clang-format on - --#if U_ICU_VERSION_MAJOR_NUM >= 58 -+#if U_ICU_VERSION_MAJOR_NUM >= 74 -+#define BA_LB_COUNT (U_LB_COUNT - 8) -+#elif U_ICU_VERSION_MAJOR_NUM >= 58 - #define BA_LB_COUNT (U_LB_COUNT - 3) - #else - #define BA_LB_COUNT U_LB_COUNT diff --git a/qtwebengine-release.sh b/qtwebengine-release.sh index ccec359..2d86b0f 100755 --- a/qtwebengine-release.sh +++ b/qtwebengine-release.sh @@ -1,6 +1,6 @@ #!/bin/sh set -x -VERSION=5.15.16 +VERSION=5.15.17 CHROMIUMHASH=`wget https://code.qt.io/cgit/qt/qtwebengine.git/tree/src/3rdparty?h=$VERSION -q --content-on-error -O - | grep "Bad object name: " | sed 's/^.*Bad object name: \([0-9a-f]\{40\}\).*$/\1/g'` rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION wget https://github.com/qt/qtwebengine/archive/$VERSION.tar.gz -O qtwebengine-$VERSION.tar.gz || exit $? diff --git a/sources b/sources index 3347037..8fff628 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (qtwebengine-everywhere-src-5.15.16-clean.tar.xz) = 40572289b542a55d6e87d045fc9f9d841e5434df55bcdd4da3818df492b0cdcaaa2cc14f0827a2e9af65d08372a69de980732bf7f83b0103732c9ea4f0881bf1 +SHA512 (qtwebengine-everywhere-src-5.15.17-clean.tar.xz) = d8fa20e0d1eea0c3c15a98145995eaa37ca21edcb7de3bf5ec548a0347c0aa2409a183ba2f8d9fdfc3686802e5e1f5bb083c0d51fe5ad3a435ab3c72b4c32af9 SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be SHA512 (python2.7-2.7.18-19.el9.1.src.rpm) = e6d738b2880b833ea80aec709f7bcf20dac2e8c59d45f1627f61245b3aa9be845888152232e9f08145723514eb29aeada3d5d99641aabe9ec9af2a5c15f32777 SHA512 (python2.7-2.7.18-19.el9.1.aarch64.rpm) = 66c8487a3323bb854ff79242287ae5d290315609b4f79fb985626e52d96286d6dfd2da9a8257e23be036b72adabbbec08d53db339935d5d6e8b6018417bbc769