From 6fd8eea9f8abecb59b980b451f014b8300a742329c1d816d015cc6130c6b038f Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 11 Sep 2020 06:30:06 +0000 Subject: [PATCH] Qt 5.15.1 - not built yet OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=13 --- ...x-build-after-y2038-changes-in-glibc.patch | 27 --- ...le-gpu-when-using-nouveau-boo-1005323.diff | 16 +- icu-v67.patch | 159 ------------------ libqt5-qtwebengine.changes | 19 +++ libqt5-qtwebengine.spec | 17 +- qtwebengine-everywhere-src-5.15.0.tar.xz | 3 - qtwebengine-everywhere-src-5.15.1.tar.xz | 3 + rtc-dont-use-h264.patch | 31 ++++ 8 files changed, 70 insertions(+), 205 deletions(-) delete mode 100644 0001-fix-build-after-y2038-changes-in-glibc.patch delete mode 100644 icu-v67.patch delete mode 100644 qtwebengine-everywhere-src-5.15.0.tar.xz create mode 100644 qtwebengine-everywhere-src-5.15.1.tar.xz create mode 100644 rtc-dont-use-h264.patch diff --git a/0001-fix-build-after-y2038-changes-in-glibc.patch b/0001-fix-build-after-y2038-changes-in-glibc.patch deleted file mode 100644 index 51b1a30..0000000 --- a/0001-fix-build-after-y2038-changes-in-glibc.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Jiri Slaby -Date: Thu, 11 Jul 2019 09:35:13 +0200 -Subject: fix build after y2038 changes in glibc -Patch-mainline: submitted on 2019/07/11 -References: QTBUG-76963 - -SIOCGSTAMP is defined in linux/sockios.h since kernel 5.2. Include that -file wherever needed. - -Signed-off-by: Jiri Slaby ---- - chromium/third_party/webrtc/rtc_base/physical_socket_server.cc | 1 + - 1 file changed, 1 insertion(+) - ---- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc -+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc -@@ -67,6 +67,7 @@ typedef void* SockOptArg; - #endif // WEBRTC_POSIX - - #if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) -+#include - - int64_t GetSocketRecvTimestamp(int socket) { - struct timeval tv_ioctl; --- -2.21.0 - diff --git a/disable-gpu-when-using-nouveau-boo-1005323.diff b/disable-gpu-when-using-nouveau-boo-1005323.diff index 545faf9..82d429b 100644 --- a/disable-gpu-when-using-nouveau-boo-1005323.diff +++ b/disable-gpu-when-using-nouveau-boo-1005323.diff @@ -7,19 +7,19 @@ It also crashes when running on wayland, the cause is not yet known. Work around these issues by not doing GPU-accelerated rendering in such cases. -Index: qtwebengine-everywhere-src-5.13.0-beta1/src/core/web_engine_context.cpp +Index: qtwebengine-everywhere-src-5.15.1/src/core/web_engine_context.cpp =================================================================== ---- qtwebengine-everywhere-src-5.13.0-beta1.orig/src/core/web_engine_context.cpp -+++ qtwebengine-everywhere-src-5.13.0-beta1/src/core/web_engine_context.cpp -@@ -108,6 +108,7 @@ +--- qtwebengine-everywhere-src-5.15.1.orig/src/core/web_engine_context.cpp ++++ qtwebengine-everywhere-src-5.15.1/src/core/web_engine_context.cpp +@@ -127,6 +127,7 @@ #include - #ifndef QT_NO_OPENGL + #if QT_CONFIG(opengl) # include +# include #endif #include #include -@@ -167,6 +168,39 @@ void dummyGetPluginCallback(const std::v +@@ -186,6 +187,39 @@ void dummyGetPluginCallback(const std::v } #endif @@ -59,9 +59,9 @@ Index: qtwebengine-everywhere-src-5.13.0-beta1/src/core/web_engine_context.cpp } // namespace namespace QtWebEngineCore { -@@ -501,10 +535,31 @@ WebEngineContext::WebEngineContext() +@@ -697,10 +731,31 @@ WebEngineContext::WebEngineContext() const char *glType = 0; - #ifndef QT_NO_OPENGL + #if QT_CONFIG(opengl) + bool disableGpu = qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_GPU"); + diff --git a/icu-v67.patch b/icu-v67.patch deleted file mode 100644 index b4dbca7..0000000 --- a/icu-v67.patch +++ /dev/null @@ -1,159 +0,0 @@ -From 3f8dc4b2e5baf77b463334c769af85b79d8c1463 Mon Sep 17 00:00:00 2001 -From: Frank Tang -Date: Fri, 3 Apr 2020 23:13:54 -0700 -Subject: [PATCH] [intl] Remove soon-to-be removed getAllFieldPositions - -Needed to land ICU67.1 soon. - -Bug: v8:10393 -Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 -Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 -Reviewed-by: Jakob Kummerow -Commit-Queue: Frank Tang -Cr-Commit-Position: refs/heads/master@{#67027} - -Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/v8/src/objects/js-number-format.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/v8/src/objects/js-number-format.cc -+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/v8/src/objects/js-number-format.cc -@@ -1187,42 +1187,31 @@ MaybeHandle JSNumberForm - } - - namespace { --Maybe IcuFormatNumber( -+Maybe IcuFormatNumber( - Isolate* isolate, - const icu::number::LocalizedNumberFormatter& number_format, -- Handle numeric_obj, icu::FieldPositionIterator* fp_iter) { -+ Handle numeric_obj, icu::number::FormattedNumber* formatted) { - // If it is BigInt, handle it differently. - UErrorCode status = U_ZERO_ERROR; -- icu::number::FormattedNumber formatted; - if (numeric_obj->IsBigInt()) { - Handle big_int = Handle::cast(numeric_obj); - Handle big_int_string; - ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string, - BigInt::ToString(isolate, big_int), -- Nothing()); -- formatted = number_format.formatDecimal( -+ Nothing()); -+ *formatted = number_format.formatDecimal( - {big_int_string->ToCString().get(), big_int_string->length()}, status); - } else { - double number = numeric_obj->Number(); -- formatted = number_format.formatDouble(number, status); -+ *formatted = number_format.formatDouble(number, status); - } - if (U_FAILURE(status)) { - // This happen because of icu data trimming trim out "unit". - // See https://bugs.chromium.org/p/v8/issues/detail?id=8641 -- THROW_NEW_ERROR_RETURN_VALUE(isolate, -- NewTypeError(MessageTemplate::kIcuError), -- Nothing()); -- } -- if (fp_iter) { -- formatted.getAllFieldPositions(*fp_iter, status); -+ THROW_NEW_ERROR_RETURN_VALUE( -+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing()); - } -- icu::UnicodeString result = formatted.toString(status); -- if (U_FAILURE(status)) { -- THROW_NEW_ERROR_RETURN_VALUE(isolate, -- NewTypeError(MessageTemplate::kIcuError), -- Nothing()); -- } -- return Just(result); -+ return Just(true); - } - - } // namespace -@@ -1233,10 +1222,16 @@ MaybeHandle JSNumberFormat::Form - Handle numeric_obj) { - DCHECK(numeric_obj->IsNumeric()); - -- Maybe maybe_format = -- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr); -+ icu::number::FormattedNumber formatted; -+ Maybe maybe_format = -+ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted); - MAYBE_RETURN(maybe_format, Handle()); -- return Intl::ToString(isolate, maybe_format.FromJust()); -+ UErrorCode status = U_ZERO_ERROR; -+ icu::UnicodeString result = formatted.toString(status); -+ if (U_FAILURE(status)) { -+ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String); -+ } -+ return Intl::ToString(isolate, result); - } - - namespace { -@@ -1349,12 +1344,18 @@ std::vector FlattenReg - } - - namespace { --Maybe ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, -- icu::FieldPositionIterator* fp_iter, -+Maybe ConstructParts(Isolate* isolate, -+ icu::number::FormattedNumber* formatted, - Handle result, int start_index, - Handle numeric_obj, bool style_is_unit) { -+ UErrorCode status = U_ZERO_ERROR; -+ icu::UnicodeString formatted_text = formatted->toString(status); -+ if (U_FAILURE(status)) { -+ THROW_NEW_ERROR_RETURN_VALUE( -+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing()); -+ } - DCHECK(numeric_obj->IsNumeric()); -- int32_t length = formatted.length(); -+ int32_t length = formatted_text.length(); - int index = start_index; - if (length == 0) return Just(index); - -@@ -1363,13 +1364,14 @@ Maybe ConstructParts(Isolate* isola - // other region covers some part of the formatted string. It's possible - // there's another field with exactly the same begin and end as this backdrop, - // in which case the backdrop's field_id of -1 will give it lower priority. -- regions.push_back(NumberFormatSpan(-1, 0, formatted.length())); -+ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length())); - - { -- icu::FieldPosition fp; -- while (fp_iter->next(fp)) { -- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(), -- fp.getEndIndex())); -+ icu::ConstrainedFieldPosition cfp; -+ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER); -+ while (formatted->nextPosition(cfp, status)) { -+ regions.push_back( -+ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit())); - } - } - -@@ -1391,7 +1393,7 @@ Maybe ConstructParts(Isolate* isola - Handle substring; - ASSIGN_RETURN_ON_EXCEPTION_VALUE( - isolate, substring, -- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos), -+ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos), - Nothing()); - Intl::AddElement(isolate, result, index, field_type_string, substring); - ++index; -@@ -1411,14 +1413,14 @@ MaybeHandle JSNumberFormat::For - number_format->icu_number_formatter().raw(); - CHECK_NOT_NULL(fmt); - -- icu::FieldPositionIterator fp_iter; -- Maybe maybe_format = -- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter); -+ icu::number::FormattedNumber formatted; -+ Maybe maybe_format = -+ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted); - MAYBE_RETURN(maybe_format, Handle()); - - Handle result = factory->NewJSArray(0); - Maybe maybe_format_to_parts = ConstructParts( -- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj, -+ isolate, &formatted, result, 0, numeric_obj, - number_format->style() == JSNumberFormat::Style::UNIT); - MAYBE_RETURN(maybe_format_to_parts, Handle()); - diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes index cdff3f5..e0f6506 100644 --- a/libqt5-qtwebengine.changes +++ b/libqt5-qtwebengine.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Thu Sep 10 07:57:36 UTC 2020 - Fabian Vogt + +- Update to 5.15.1: + * New bugfix release + * For more details please see: + http://code.qt.io/cgit/qt/qtwebengine.git/plain/dist/changes-5.15.1/?h=5.15.1 +- Drop patches, now upstream: + * icu-v67.patch + * 0001-fix-build-after-y2038-changes-in-glibc.patch +- Refresh disable-gpu-when-using-nouveau-boo-1005323.diff +- Update rtc-dont-use-h264.patch + +------------------------------------------------------------------- +Thu May 28 10:28:37 UTC 2020 - Fabian Vogt + +- Add patch to not require openh264 and don't build the bundled version: + * rtc-dont-use-h264.patch + ------------------------------------------------------------------- Wed May 27 08:47:23 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec index 56bfebc..0eb944a 100644 --- a/libqt5-qtwebengine.spec +++ b/libqt5-qtwebengine.spec @@ -38,27 +38,25 @@ %global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries Name: libqt5-qtwebengine -Version: 5.15.0 +Version: 5.15.1 Release: 0 Summary: Qt 5 WebEngine Library License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only Group: Development/Libraries/X11 URL: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0 -%define so_version 5.15.0 -%define tar_version qtwebengine-everywhere-src-5.15.0 +%define real_version 5.15.1 +%define so_version 5.15.1 +%define tar_version qtwebengine-everywhere-src-5.15.1 Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz Source1: baselibs.conf # PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6 Patch1: armv6-ffmpeg-no-thumb.patch # PATCH-FIX-UPSTREAM disable-gpu-when-using-nouveau-boo-1005323.diff Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff -# PATCH-FIX-UPSTREAM 0001-fix-build-after-y2038-changes-in-glibc.patch -Patch3: 0001-fix-build-after-y2038-changes-in-glibc.patch Patch7: fix1163766.patch -# PATCH-FIX-UPSTREAM https://chromium-review.googlesource.com/c/v8/v8/+/2136489 -Patch8: icu-v67.patch +# PATCH-FIX-OPENSUSE +Patch9: rtc-dont-use-h264.patch # http://www.chromium.org/blink not ported to PowerPC ExcludeArch: ppc ppc64 ppc64le s390 s390x # Try to fix i586 MemoryErrors with rpmlint @@ -300,6 +298,9 @@ sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \ mkdir .git %endif +# TODO: Get the manual unbundling from chromium.spec working here as well +rm -r src/3rdparty/chromium/third_party/openh264/src + %ifnarch x86_64 RPM_OPT_FLAGS="$RPM_OPT_FLAGS " export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / } diff --git a/qtwebengine-everywhere-src-5.15.0.tar.xz b/qtwebengine-everywhere-src-5.15.0.tar.xz deleted file mode 100644 index f266d31..0000000 --- a/qtwebengine-everywhere-src-5.15.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df -size 278257432 diff --git a/qtwebengine-everywhere-src-5.15.1.tar.xz b/qtwebengine-everywhere-src-5.15.1.tar.xz new file mode 100644 index 0000000..acca3e0 --- /dev/null +++ b/qtwebengine-everywhere-src-5.15.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f903e98fe3cd717161252710125fce011cf882ced96c24968b0c38811fbefdf2 +size 278488056 diff --git a/rtc-dont-use-h264.patch b/rtc-dont-use-h264.patch new file mode 100644 index 0000000..5755730 --- /dev/null +++ b/rtc-dont-use-h264.patch @@ -0,0 +1,31 @@ +From: Fabian Vogt +Subject: Don't require open264 when proprietary_codecs are supported + +Index: qtwebengine-everywhere-src-5.15.1/src/3rdparty/chromium/third_party/webrtc/webrtc.gni +=================================================================== +--- qtwebengine-everywhere-src-5.15.1.orig/src/3rdparty/chromium/third_party/webrtc/webrtc.gni ++++ qtwebengine-everywhere-src-5.15.1/src/3rdparty/chromium/third_party/webrtc/webrtc.gni +@@ -149,8 +149,7 @@ declare_args() { + # + # Enabling H264 when building with MSVC is currently not supported, see + # bugs.webrtc.org/9213#c13 for more info. +- rtc_use_h264 = +- proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang) ++ rtc_use_h264 = false + + # By default, use normal platform audio support or dummy audio, but don't + # use file-based audio playout and record. +Index: qtwebengine-everywhere-src-5.15.1/src/core/config/common.pri +=================================================================== +--- qtwebengine-everywhere-src-5.15.1.orig/src/core/config/common.pri ++++ qtwebengine-everywhere-src-5.15.1/src/core/config/common.pri +@@ -27,9 +27,6 @@ qtConfig(webengine-webrtc) { + + qtConfig(webengine-proprietary-codecs) { + gn_args += proprietary_codecs=true ffmpeg_branding=\"Chrome\" +- qtConfig(webengine-webrtc) { +- gn_args += rtc_use_h264=true +- } + } else { + gn_args += proprietary_codecs=false + }