1
0

Accepting request 809430 from KDE:Qt:5.15

Qt 5.15.0

OBS-URL: https://build.opensuse.org/request/show/809430
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=59
This commit is contained in:
Yuchen Lin 2020-05-29 19:15:37 +00:00 committed by Git OBS Bridge
commit 5e3d1e068c
8 changed files with 234 additions and 482 deletions

View File

@ -1,197 +0,0 @@
From 7d56bbb4c1708f00f729bdfe2e8951c644c83194 Mon Sep 17 00:00:00 2001
From: Kirill Burtsev <kirill.burtsev@qt.io>
Date: Wed, 12 Feb 2020 16:15:34 +0100
Subject: [PATCH] Clear previous page text selection on new navigation unconditionally
Remove code duplication on triggering new url load, and use direct
code to clear SelectedText instead of CollapseSelection as it assumes
focused frame and might be ignored.
Fixes: QTBUG-81574
Change-Id: I01cf02967e118f407c8a3997e176d5b258478a5a
---
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 8cc8179..a7579f9 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -67,6 +67,7 @@
#include "base/task/sequence_manager/thread_controller_with_message_pump_impl.h"
#include "base/values.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
+#include "content/browser/renderer_host/text_input_manager.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/child_process_security_policy.h"
@@ -369,6 +370,23 @@
}
}
+static void Navigate(WebContentsAdapter *adapter, const content::NavigationController::LoadURLParams &params)
+{
+ Q_ASSERT(adapter);
+ adapter->webContents()->GetController().LoadURLWithParams(params);
+ adapter->focusIfNecessary();
+ adapter->resetSelection();
+}
+
+static void NavigateTask(QWeakPointer<WebContentsAdapter> weakAdapter, const content::NavigationController::LoadURLParams &params)
+{
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ const auto adapter = weakAdapter.toStrongRef();
+ if (!adapter)
+ return;
+ Navigate(adapter.get(), params);
+}
+
namespace {
static QList<WebContentsAdapter *> recursive_guard_loading_adapters;
@@ -705,21 +723,12 @@
}
}
- auto navigate = [](QWeakPointer<WebContentsAdapter> weakAdapter, const content::NavigationController::LoadURLParams &params) {
- const auto adapter = weakAdapter.toStrongRef();
- if (!adapter)
- return;
- adapter->webContents()->GetController().LoadURLWithParams(params);
- adapter->focusIfNecessary();
- };
-
- QWeakPointer<WebContentsAdapter> weakThis(sharedFromThis());
if (resizeNeeded) {
// Schedule navigation on the event loop.
base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(navigate, std::move(weakThis), std::move(params)));
+ base::BindOnce(&NavigateTask, sharedFromThis().toWeakRef(), std::move(params)));
} else {
- navigate(std::move(weakThis), params);
+ Navigate(this, params);
}
}
@@ -752,9 +761,7 @@
params.can_load_local_resources = true;
params.transition_type = ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | ui::PAGE_TRANSITION_FROM_API);
params.override_user_agent = content::NavigationController::UA_OVERRIDE_TRUE;
- m_webContents->GetController().LoadURLWithParams(params);
- focusIfNecessary();
- m_webContents->CollapseSelection();
+ Navigate(this, params);
}
void WebContentsAdapter::save(const QString &filePath, int savePageFormat)
@@ -1676,6 +1683,17 @@
return m_webContents->GetFocusedFrame() != nullptr;
}
+void WebContentsAdapter::resetSelection()
+{
+ CHECK_INITIALIZED();
+ // unconditionally clears the selection in contrast to CollapseSelection, which checks focus state first
+ if (auto rwhv = static_cast<RenderWidgetHostViewQt *>(m_webContents->GetRenderWidgetHostView())) {
+ if (auto mgr = rwhv->GetTextInputManager())
+ if (auto selection = const_cast<content::TextInputManager::TextSelection *>(mgr->GetTextSelection(rwhv)))
+ selection->SetSelection(base::string16(), 0, gfx::Range(), false);
+ }
+}
+
WebContentsAdapterClient::RenderProcessTerminationStatus
WebContentsAdapterClient::renderProcessExitStatus(int terminationStatus) {
auto status = WebContentsAdapterClient::RenderProcessTerminationStatus(-1);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 11f8f9c..f8f147f 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -229,6 +229,7 @@
void focusIfNecessary();
bool isFindTextInProgress() const;
bool hasFocusedFrame() const;
+ void resetSelection();
// meant to be used within WebEngineCore only
void initialize(content::SiteInstance *site);
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 8cdcc9f..94b3f16 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -700,7 +700,7 @@
CursorTrackedPage(QWidget *parent = 0): QWebEnginePage(parent) {
}
- QString selectedText() {
+ QString jsSelectedText() {
return evaluateJavaScriptSync(this, "window.getSelection().toString()").toString();
}
@@ -716,42 +716,52 @@
int isSelectionCollapsed() {
return evaluateJavaScriptSync(this, "window.getSelection().getRangeAt(0).collapsed").toBool();
}
- bool hasSelection()
- {
- return !selectedText().isEmpty();
- }
};
void tst_QWebEnginePage::textSelection()
{
- QWebEngineView view;
- CursorTrackedPage *page = new CursorTrackedPage(&view);
- QString content("<html><body><p id=one>The quick brown fox</p>" \
+ CursorTrackedPage page;
+
+ QString textToSelect("The quick brown fox");
+ QString content = QString("<html><body><p id=one>%1</p>" \
"<p id=two>jumps over the lazy dog</p>" \
- "<p>May the source<br/>be with you!</p></body></html>");
- page->setView(&view);
- QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
- page->setHtml(content);
+ "<p>May the source<br/>be with you!</p></body></html>").arg(textToSelect);
+
+ QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool)));
+ page.setHtml(content);
QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 20000);
// these actions must exist
- QVERIFY(page->action(QWebEnginePage::SelectAll) != 0);
+ QVERIFY(page.action(QWebEnginePage::SelectAll) != 0);
// ..but SelectAll is disabled because the page has no focus due to disabled FocusOnNavigationEnabled.
- QCOMPARE(page->action(QWebEnginePage::SelectAll)->isEnabled(), false);
+ QCOMPARE(page.action(QWebEnginePage::SelectAll)->isEnabled(), false);
// Verify hasSelection returns false since there is no selection yet...
- QCOMPARE(page->hasSelection(), false);
+ QVERIFY(!page.hasSelection());
+ QVERIFY(page.jsSelectedText().isEmpty());
// this will select the first paragraph
QString selectScript = "var range = document.createRange(); " \
"var node = document.getElementById(\"one\"); " \
"range.selectNode(node); " \
"getSelection().addRange(range);";
- evaluateJavaScriptSync(page, selectScript);
- QCOMPARE(page->selectedText().trimmed(), QString::fromLatin1("The quick brown fox"));
+ evaluateJavaScriptSync(&page, selectScript);
+
// Make sure hasSelection returns true, since there is selected text now...
- QCOMPARE(page->hasSelection(), true);
+ QTRY_VERIFY(page.hasSelection());
+ QCOMPARE(page.selectedText().trimmed(), textToSelect);
+
+ QCOMPARE(page.jsSelectedText().trimmed(), textToSelect);
+
+ // navigate away and check that selection is cleared
+ page.load(QUrl("about:blank"));
+ QTRY_COMPARE(loadSpy.count(), 2);
+
+ QVERIFY(!page.hasSelection());
+ QVERIFY(page.selectedText().isEmpty());
+
+ QVERIFY(page.jsSelectedText().isEmpty());
}

View File

@ -1,48 +0,0 @@
From c729361f9f8f6c0602d401d5e230ba63ab11a682 Mon Sep 17 00:00:00 2001
From: Jüri Valdmann <juri.valdmann@qt.io>
Date: Wed, 19 Feb 2020 14:15:34 +0100
Subject: [PATCH] Fix recursive deadlock in sandbox::InitLibcLocaltimeFunctions
QtWebEngineProcess overrides the C library's localtime* functions by redefining
the symbols in src/process/main.cpp and then using dlsym(RTLD_NEXT, ...) to
fetch the original symbols in //sandbox/linux/services/libc_interceptor.cc. The
functions InitLibcLocaltimeFunctions{,Impl} use pthread_once to guarantee that
this symbol resolution happens only once.
If dlsym fails, for example because the C library is earlier in the search path
than QtWebEngineCore, then InitLibcLocaltimeFunctionsImpl tries to print an
error message with LOG(ERROR). However, printing a log message involves also
printing the timestamp in the local time zone, using, of course, localtime_r.
Thus, InitLibcLocaltimeFunctions depends on localtime_r depends on
InitLibcLocaltimeFunctions, and we get a deadlock due to the recursive use of
pthread_once.
This deadlock happens only for utility processes and not for zygotes or
renderers, since the latter proxy the localtime* calls back to the main process.
(See service_manager::ZygoteMain, where the first function call is to
sandbox::SetAmZygoteOrRenderer, and compare with content::UtilityMain)
Task-number: QTBUG-82186
Change-Id: I32009e8482b2634c47082a4c89393dc61c22507e
---
diff --git a/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc b/chromium/sandbox/linux/services/libc_interceptor.cc
index ed4dd02..fad77f9 100644
--- a/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
+++ b/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
@@ -199,6 +199,7 @@
g_libc_funcs->localtime64_r =
reinterpret_cast<LocaltimeRFunction>(dlsym(RTLD_NEXT, "localtime64_r"));
+#if !defined(TOOLKIT_QT)
if (!g_libc_funcs->localtime || !g_libc_funcs->localtime_r) {
// https://bugs.chromium.org/p/chromium/issues/detail?id=16800
//
@@ -210,6 +211,7 @@
" time related functions to misbehave. "
"https://bugs.chromium.org/p/chromium/issues/detail?id=16800";
}
+#endif
if (!g_libc_funcs->localtime)
g_libc_funcs->localtime = gmtime;

View File

@ -6,12 +6,12 @@ https://bugzilla.opensuse.org/show_bug.cgi?id=1163766
seccomp filters disallow a new kernel syscall to get time
used on i586
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
@@ -1422,5 +1422,13 @@
#define __NR_memfd_create 356
--- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
@@ -1710,5 +1710,13 @@
#define __NR_clone3 435
#endif
+#if !defined(__NR_clock_gettime64)
@ -24,10 +24,10 @@ Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/sys
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
--- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
@@ -151,6 +151,11 @@ ResultExpr EvaluateSyscallImpl(int fs_de
if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) {
return RestrictClockID();
@ -40,11 +40,11 @@ Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/sandbox/linux/sec
if (sysno == __NR_clone) {
return RestrictCloneToThreadsAndEPERMFork();
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
@@ -30,6 +30,9 @@ ResultExpr ImeProcessPolicy::EvaluateSys
--- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc
@@ -31,6 +31,9 @@ ResultExpr ImeProcessPolicy::EvaluateSys
#if defined(__NR_clock_gettime)
case __NR_clock_gettime:
#endif
@ -52,5 +52,5 @@ Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/services/service_
+ case __NR_clock_gettime64:
+#endif
return Allow();
default:
auto* broker_process = SandboxLinux::GetInstance()->broker_process();
// https://crbug.com/991435
#if defined(__NR_getrusage)

View File

@ -1,8 +1,53 @@
-------------------------------------------------------------------
Wed May 27 08:47:23 UTC 2020 - Fabian Vogt <fvogt@suse.com>
- Can't use system VPX on Leap 15.2
-------------------------------------------------------------------
Tue May 26 11:27:19 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
- Update to version 5.15.0:
* No changelog available
-------------------------------------------------------------------
Thu May 21 10:35:41 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
- Update to version 5.15.0-rc2:
* No changelog available
* Removed some-more-includes-gcc10.patch: contained in upstream
-------------------------------------------------------------------
Wed May 6 11:43:17 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-rc:
* New bugfix release
* For the changes between 5.14.2 and 5.15.0 please see:
http://code.qt.io/cgit/qt/qtwebengine.git/plain/dist/changes-5.15.0/?h=5.15.0
- Drop patches, now upstream:
* QTBUG-82186.patch
-------------------------------------------------------------------
Fri Apr 24 10:19:13 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
- Add icu-v67.patch to fix compilation with icu v67, this is a backport
of https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463
- Rebase icu-v67.patch on 5.15.0-beta4
-------------------------------------------------------------------
Fri Apr 24 07:11:42 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-beta4:
* New bugfix release
* No changelog available
- Refresh QTBUG-82186.patch
-------------------------------------------------------------------
Tue Apr 14 06:47:59 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-beta3:
* New bugfix release
* No changelog available
- Refresh fix1163766.patch
-------------------------------------------------------------------
Thu Apr 9 08:21:02 UTC 2020 - Bernhard Wiedemann <bwiedemann@suse.com>
@ -15,6 +60,23 @@ Mon Mar 30 13:49:40 UTC 2020 - Fabian Vogt <fvogt@suse.com>
- Add patch to fix build with GCC 10 (boo#1158516):
* some-more-includes-gcc10.patch
-------------------------------------------------------------------
Tue Mar 24 12:14:06 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-beta2:
* New bugfix release
* No changelog available
-------------------------------------------------------------------
Fri Feb 28 09:59:24 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-beta1:
* New bugfix release
* No changelog available
- Drop patches, now upstream:
* fix-missing-designerplugin.patch
* QTBUG-81574.patch
-------------------------------------------------------------------
Fri Feb 21 13:36:31 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
@ -27,6 +89,19 @@ Fri Feb 21 09:25:44 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Fix an issue with selections breaking replying in KMail:
* QTBUG-81574.patch
-------------------------------------------------------------------
Wed Feb 19 10:17:00 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-alpha:
* New feature release
* For more details please see:
https://wiki.qt.io/New_Features_in_Qt_5.15
- Add patch to fix building the designer plugin:
* fix-missing-designerplugin.patch
- Move designer plugin into -devel subpackage
- Add packages for new Qt PDF module (which is technically separate
from WebEngine, but shares the source tarball)
-------------------------------------------------------------------
Mon Jan 27 13:14:47 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>

View File

@ -20,49 +20,35 @@
%define qt5_snapshot 0
%if %{?suse_version} > 1500 || 0%{?sle_version} > 150100
%bcond_without system_harfbuzz
%bcond_without system_icu
%else
%bcond_with system_harfbuzz
%bcond_with system_icu
%endif
%if %{?suse_version} > 1500 || 0%{?sle_version} > 150200
%bcond_without system_vpx
%else
%bcond_with system_vpx
%endif
%if 0%{?suse_version} > 1500
# Needs ICU >= 63
%bcond_without system_icu
%else
%bcond_with system_icu
%endif
%if %{?suse_version} >= 1330 || (0%{?is_opensuse} && 0%{?sle_version} >= 120200)
%bcond_without system_ffmpeg
%else
%bcond_with system_ffmpeg
%endif
%if %{?suse_version} >= 1320 || (0%{?suse_version} == 1315 && 0%{?sle_version} >= 120200)
%bcond_without system_minizip
%else
%bcond_with system_minizip
%endif
# Not even in Tumbleweed as of 2019-03-22
%bcond_with system_harfbuzz
# This is just overall condition to contain everything we can't provide on SLE12
%if 0%{?suse_version} >= 1320 || 0%{?is_opensuse}
%bcond_with sle_bundles
%else
%bcond_without sle_bundles
%endif
# spellchecking dictionary directory
%global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries
Name: libqt5-qtwebengine
Version: 5.14.1
Version: 5.15.0
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.14.1
%define so_version 5.14.1
%define tar_version qtwebengine-everywhere-src-5.14.1
Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz
%define real_version 5.15.0
%define so_version 5.15.0
%define tar_version qtwebengine-everywhere-src-5.15.0
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
@ -70,12 +56,6 @@ Patch1: armv6-ffmpeg-no-thumb.patch
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
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwebengine/+/290321
Patch4: QTBUG-81574.patch
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/291216
Patch5: QTBUG-82186.patch
# PATCH-FIX-OPENSUSE
Patch6: some-more-includes-gcc10.patch
Patch7: fix1163766.patch
# PATCH-FIX-UPSTREAM https://chromium-review.googlesource.com/c/v8/v8/+/2136489
Patch8: icu-v67.patch
@ -94,6 +74,8 @@ BuildRequires: git-core
BuildRequires: krb5
BuildRequires: krb5-devel
BuildRequires: libQt5QuickControls2-devel
# For building pdf exmples...
BuildRequires: libqt5-qtsvg-devel
BuildRequires: libcap-devel
BuildRequires: libgcrypt-devel
BuildRequires: libicu-devel
@ -180,17 +162,16 @@ BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(zlib)
%if !%{with sle_bundles}
BuildRequires: yasm-devel
%endif
%if %{with system_minizip}
BuildRequires: pkgconfig(minizip)
%endif
%if %{with system_harfbuzz}
BuildRequires: pkgconfig(harfbuzz) >= 2.0.0
BuildRequires: pkgconfig(harfbuzz) >= 2.2.0
%endif
%if %{with system_icu}
BuildRequires: pkgconfig(icu-i18n) >= 63.0
BuildRequires: pkgconfig(icu-uc) >= 64.0
BuildRequires: pkgconfig(icu-i18n) >= 64.0
%endif
%if %{with system_vpx}
BuildRequires: pkgconfig(vpx) >= 1.8.0
@ -245,7 +226,7 @@ API guarantees. The packages that build against these have to require
the exact Qt version.
%package examples
Summary: Qt5 location examples
Summary: Qt5 WebEngine examples
Group: Development/Libraries/X11
Requires: libqt5-qtquickcontrols2
Recommends: %{name}-devel
@ -253,6 +234,57 @@ Recommends: %{name}-devel
%description examples
Examples for the libqt5-qtwebengine module.
%package -n libQt5Pdf5
Summary: Qt5 PDF library
Group: Development/Libraries/X11
%description -n libQt5Pdf5
Main library of the Qt PDF module.
%package -n libQt5PdfWidgets5
Summary: Qt5 PDF library for Qt Widgets
Group: Development/Libraries/X11
%description -n libQt5PdfWidgets5
Library of the Qt PDF module with support for Qt Widgets.
%package -n libqt5-qtpdf-imports
Summary: Qt5 PDF module for QML
Group: Development/Libraries/X11
%description -n libqt5-qtpdf-imports
Qt Quick module for the Qt PDF library.
%package -n libqt5-qtpdf-devel
Summary: Development files for the Qt5 PDF library
Group: Development/Libraries/X11
Requires: libQt5Pdf5 = %{version}
Requires: libQt5PdfWidgets5 = %{version}
%description -n libqt5-qtpdf-devel
You need this package if you want to compile programs with Qt PDF.
%package -n libqt5-qtpdf-private-headers-devel
Summary: Non-ABI stable experimental API for the Qt5 PDF library
Group: Development/Libraries/C and C++
BuildArch: noarch
Requires: libqt5-qtpdf-devel = %{version}
%requires_ge libqt5-qtbase-private-headers-devel
%description -n libqt5-qtpdf-private-headers-devel
This package provides private headers of libqt5-qtpdf that are normally
not used by application development and that do not have any ABI or
API guarantees. The packages that build against these have to require
the exact Qt version.
%package -n libqt5-qtpdf-examples
Summary: Qt5 PDF examples
Group: Development/Libraries/X11
Recommends: libqt5-qtpdf-devel
%description -n libqt5-qtpdf-examples
Examples for the libqt5-qtpdf module.
%prep
%setup -q -n %{tar_version}
sed -i 's|$(STRIP)|strip|g' src/core/core_module.pro
@ -268,16 +300,6 @@ sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
mkdir .git
%endif
%if 0%{?suse_version} < 1330
# WE checks the version of GCC qtbase was built with, not the version it's building with.
# ARGH!
echo "QT_GCC_MAJOR_VERSION = 7" > qtwebengine_new.pro
echo "QT_GCC_MINOR_VERSION = 2" >> qtwebengine_new.pro
echo "QT_CONFIG += c++14" >> qtwebengine_new.pro
cat qtwebengine.pro >> qtwebengine_new.pro
mv qtwebengine{_new,}.pro
%endif
%ifnarch x86_64
RPM_OPT_FLAGS="$RPM_OPT_FLAGS "
export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / }
@ -311,11 +333,6 @@ export RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wno-return-type"
# processes instead of its defaults.
export NINJAFLAGS="%{_smp_mflags}"
%if 0%{?suse_version} < 1330
export CC=gcc-7
export CXX=g++-7
%endif
make %{_smp_mflags} VERBOSE=1
%install
@ -341,8 +358,11 @@ sed -i '/find_package/!b;n;s/'%{so_version}/$(rpm -q --qf %%{version} libQt5Core
mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post -n libQt5Pdf5 -p /sbin/ldconfig
%postun -n libQt5Pdf5 -p /sbin/ldconfig
%post -n libQt5PdfWidgets5 -p /sbin/ldconfig
%postun -n libQt5PdfWidgets5 -p /sbin/ldconfig
%if 0%{?suse_version} >= 1500
%filetriggerin -- %{_datadir}/hunspell
@ -358,36 +378,86 @@ done
%endif
%files
%defattr(-,root,root,755)
%license LICENSE.*
%{_libqt5_libdir}/libQt*Web*.so.*
%{_datadir}/qt5/
%dir %{_libqt5_libexecdir}
%{_libqt5_libdir}/libQt5WebEngine.so.*
%{_libqt5_libdir}/libQt5WebEngineCore.so.*
%{_libqt5_libdir}/libQt5WebEngineWidgets.so.*
%dir %{_datadir}/qt5/
%dir %{_datadir}/qt5/translations/
%{_datadir}/qt5/translations/qtwebengine_locales/
%dir %{_datadir}/qt5/resources/
%{_datadir}/qt5/resources/qtwebengine_*
%if %{without system_icu}
%{_datadir}/qt5/resources/icudtl.dat
%endif
%dir %{_qtwebengine_dictionaries_dir}
%dir %{_libqt5_libexecdir}
%{_libqt5_libexecdir}/QtWebEngineProcess
%{_libqt5_archdatadir}/qml/QtWebEngine/
%{_libqt5_plugindir}/designer/
%{_libqt5_bindir}/qwebengine_convert_dict
%files private-headers-devel
%defattr(-,root,root,755)
%license LICENSE.*
%{_libqt5_includedir}/*/%{so_version}
%{_libqt5_includedir}/QtWebEngine*/%{so_version}
%files devel
%defattr(-,root,root,755)
%license LICENSE.*
%exclude %{_libqt5_includedir}/*/%{so_version}
%{_libqt5_includedir}/*/
%{_libqt5_libdir}/cmake/Qt5*/
%{_libqt5_libdir}/libQt*Web*.so
%{_libqt5_libdir}/libQt*Web*.prl
%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_*.pri
%{_libqt5_libdir}/pkgconfig/Qt*Web*.pc
%exclude %{_libqt5_includedir}/QtWebEngine*/%{so_version}
%{_libqt5_includedir}/QtWebEngine*/
%{_libqt5_libdir}/libQt5WebEngine*.so
%{_libqt5_libdir}/libQt5WebEngine*.prl
%{_libqt5_libdir}/pkgconfig/Qt5WebEngine*.pc
%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_webengine*.pri
%dir %{_libqt5_libdir}/cmake/Qt5Designer/
%{_libqt5_libdir}/cmake/Qt5Designer/Qt5Designer_QWebEngineViewPlugin.cmake
%dir %{_libqt5_plugindir}/designer/
%{_libqt5_plugindir}/designer/libqwebengineview.so
%{_libqt5_libdir}/cmake/Qt5WebEngine*/
%files examples
%defattr(-,root,root,755)
%license LICENSE.*
%{_libqt5_examplesdir}/
%dir %{_libqt5_examplesdir}
%{_libqt5_examplesdir}/webengine*/
%files -n libQt5Pdf5
%license LICENSE.*
%{_libqt5_libdir}/libQt5Pdf.so.*
%{_libqt5_archdatadir}/plugins/imageformats/libqpdf.so
# Not quite sure what this would be used by
%dir %{_libqt5_libdir}/cmake/
%dir %{_libqt5_libdir}/cmake/Qt5Gui/
%{_libqt5_libdir}/cmake/Qt5Gui/Qt5Gui_QPdfPlugin.cmake
%files -n libQt5PdfWidgets5
%license LICENSE.*
%{_libqt5_libdir}/libQt5PdfWidgets.so.*
%files -n libqt5-qtpdf-imports
%license LICENSE.*
%{_libqt5_archdatadir}/qml/QtQuick/Pdf/
%files -n libqt5-qtpdf-private-headers-devel
%license LICENSE.*
%{_libqt5_includedir}/QtPdf/%{so_version}
%{_libqt5_includedir}/QtPdfWidgets/%{so_version}
%files -n libqt5-qtpdf-devel
%license LICENSE.*
%exclude %{_libqt5_includedir}/QtPdf*/%{so_version}
%{_libqt5_includedir}/QtPdf/
%{_libqt5_includedir}/QtPdfWidgets/
%{_libqt5_libdir}/cmake/Qt5Pdf/
%{_libqt5_libdir}/cmake/Qt5PdfWidgets/
%{_libqt5_libdir}/libQt5Pdf.so
%{_libqt5_libdir}/libQt5PdfWidgets.so
%{_libqt5_libdir}/libQt5Pdf.prl
%{_libqt5_libdir}/libQt5PdfWidgets.prl
%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_pdf*.pri
%{_libqt5_libdir}/pkgconfig/Qt5Pdf.pc
%{_libqt5_libdir}/pkgconfig/Qt5PdfWidgets.pc
%files -n libqt5-qtpdf-examples
%license LICENSE.*
%dir %{_libqt5_examplesdir}
%{_libqt5_examplesdir}/pdf*/
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ec77040a876a83aa2a833ebfe7b3e88dcc167ceb317095eb226a0b8d455e887
size 242438244

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df
size 278257432

View File

@ -1,148 +0,0 @@
From: Martin Liška <mliska@suse.cz>
References: boo#1167465 boo#1158516
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/base/trace_event/trace_event_memory_overhead.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/base/trace_event/trace_event_memory_overhead.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/base/trace_event/trace_event_memory_overhead.h
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <string>
#include <unordered_map>
#include "base/base_export.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h
@@ -6,6 +6,7 @@
#define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
#include <array>
+#include <cstddef>
#include "media/base/media_export.h"
#include "media/cdm/api/content_decryption_module.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/angle/include/platform/Platform.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/angle/include/platform/Platform.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/angle/include/platform/Platform.h
@@ -11,6 +11,7 @@
#include <stdint.h>
#include <array>
+#include <cstddef>
#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
@@ -17,6 +17,7 @@
#ifndef INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
#define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+#include <cstdint>
#include <functional>
#include "perfetto/base/export.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
@@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
+
#include "audio/utility/channel_mixer.h"
#include "audio/utility/channel_mixing_matrix.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h
@@ -11,6 +11,7 @@
#ifndef CALL_RTX_RECEIVE_STREAM_H_
#define CALL_RTX_RECEIVE_STREAM_H_
+#include <cstdint>
#include <map>
#include "call/rtp_packet_sink_interface.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
@@ -11,6 +11,7 @@
#ifndef COMMON_VIDEO_H264_PPS_PARSER_H_
#define COMMON_VIDEO_H264_PPS_PARSER_H_
+#include <cstdint>
#include "absl/types/optional.h"
namespace rtc {
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
@@ -11,6 +11,7 @@
#ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
#define COMMON_VIDEO_H264_SPS_PARSER_H_
+#include <cstdint>
#include "absl/types/optional.h"
namespace rtc {
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#include <array>
+#include <cstddef>
namespace webrtc {
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
@@ -17,6 +17,7 @@
#include <spa/param/video/raw-utils.h>
#include <spa/support/type-map.h>
+#include <cstring>
#include <memory>
#include <utility>
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
@@ -11,6 +11,7 @@
#ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
#define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+#include <cstdint>
#include <limits>
#include "absl/types/optional.h"
Index: qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
===================================================================
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+++ qtwebengine-everywhere-src-5.14.1/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
@@ -11,6 +11,7 @@
#ifndef MODULES_VIDEO_CODING_DECODING_STATE_H_
#define MODULES_VIDEO_CODING_DECODING_STATE_H_
+#include <cstdint>
#include <map>
#include <set>
#include <vector>