forward
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-webengine?expand=0&rev=1
This commit is contained in:
commit
5957a3226b
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
48
0001-Fix-build-when-x11-over-egl-es2.patch
Normal file
48
0001-Fix-build-when-x11-over-egl-es2.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From 130089f928db6d8ae6a49b27abc774c7e669cee0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Klocek <michal.klocek@qt.io>
|
||||||
|
Date: Mon, 13 Sep 2021 09:23:54 +0200
|
||||||
|
Subject: [PATCH] Fix build when x11 over egl/es2
|
||||||
|
|
||||||
|
Qt's xcb can be compiled without the glx support,
|
||||||
|
do not use Chromium flag to check that.
|
||||||
|
|
||||||
|
Task-number: QTBUG-96398
|
||||||
|
Pick-to: 6.2
|
||||||
|
Change-Id: Ie7f1fe74699cd83aee1f9e5aff59760d4d7a70bf
|
||||||
|
---
|
||||||
|
src/core/ozone/gl_context_qt.cpp | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/core/ozone/gl_context_qt.cpp b/src/core/ozone/gl_context_qt.cpp
|
||||||
|
index 55497751..1dd7d8f6 100644
|
||||||
|
--- a/src/core/ozone/gl_context_qt.cpp
|
||||||
|
+++ b/src/core/ozone/gl_context_qt.cpp
|
||||||
|
@@ -42,6 +42,7 @@
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QOpenGLContext>
|
||||||
|
#include <QThread>
|
||||||
|
+#include <QtGui/private/qtgui-config_p.h>
|
||||||
|
#include <qpa/qplatformnativeinterface.h>
|
||||||
|
#include "ui/gl/gl_context_egl.h"
|
||||||
|
#include "ui/gl/gl_implementation.h"
|
||||||
|
@@ -154,7 +155,7 @@ void* GLContextHelper::getNativeDisplay()
|
||||||
|
QFunctionPointer GLContextHelper::getGlXGetProcAddress()
|
||||||
|
{
|
||||||
|
QFunctionPointer get_proc_address = nullptr;
|
||||||
|
-#if QT_CONFIG(opengl)
|
||||||
|
+#if QT_CONFIG(xcb_glx)
|
||||||
|
if (QOpenGLContext *context = qt_gl_global_share_context()) {
|
||||||
|
get_proc_address = context->getProcAddress("glXGetProcAddress");
|
||||||
|
}
|
||||||
|
@@ -175,7 +176,7 @@ QFunctionPointer GLContextHelper::getEglGetProcAddress()
|
||||||
|
|
||||||
|
void *GLContextHelper::getGlxPlatformInterface()
|
||||||
|
{
|
||||||
|
-#if QT_CONFIG(opengl) && defined(USE_GLX)
|
||||||
|
+#if QT_CONFIG(xcb_glx)
|
||||||
|
if (QOpenGLContext *context = qt_gl_global_share_context())
|
||||||
|
return context->nativeInterface<QNativeInterface::QGLXContext>();
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
54
0001-Fix-build-with-glibc-2.34.patch
Normal file
54
0001-Fix-build-with-glibc-2.34.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
From 6dc7ed884091eb373f72d53f2b87371cd899378e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
Date: Wed, 11 Aug 2021 11:39:59 +0200
|
||||||
|
Subject: [PATCH] Fix build with glibc 2.34
|
||||||
|
|
||||||
|
---
|
||||||
|
.../abseil-cpp/absl/debugging/failure_signal_handler.cc | 3 ++-
|
||||||
|
.../breakpad/src/client/linux/handler/exception_handler.cc | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/sandbox/linux/services/credentials.cc b/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
|
||||||
|
index d7b5d8c4413..a62cb21bd7a 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
|
||||||
|
@@ -98,7 +98,9 @@ bool ChrootToSafeEmptyDir() {
|
||||||
|
// attempt this optimization.
|
||||||
|
clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
|
||||||
|
|
||||||
|
- char tls_buf[PTHREAD_STACK_MIN] = {0};
|
||||||
|
+ const std::size_t pthread_stack_min = PTHREAD_STACK_MIN;
|
||||||
|
+ char tls_buf[pthread_stack_min];
|
||||||
|
+ memset(tls_buf, 0, pthread_stack_min);
|
||||||
|
tls = tls_buf;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc b/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
|
||||||
|
index 5d13bdbbbd1..2ed137b58f1 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
|
||||||
|
@@ -135,7 +135,8 @@ static bool SetupAlternateStackOnce() {
|
||||||
|
#else
|
||||||
|
const size_t page_mask = sysconf(_SC_PAGESIZE) - 1;
|
||||||
|
#endif
|
||||||
|
- size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
|
||||||
|
+ size_t stack_size =
|
||||||
|
+ (std::max<size_t>(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
|
||||||
|
#if defined(ABSL_HAVE_ADDRESS_SANITIZER) || \
|
||||||
|
defined(ABSL_HAVE_MEMORY_SANITIZER) || defined(ABSL_HAVE_THREAD_SANITIZER)
|
||||||
|
// Account for sanitizer instrumentation requiring additional stack space.
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
index ca353c40997..2e43ba6fc04 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
|
||||||
|
// SIGSTKSZ may be too small to prevent the signal handlers from overrunning
|
||||||
|
// the alternative stack. Ensure that the size of the alternative stack is
|
||||||
|
// large enough.
|
||||||
|
- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
|
||||||
|
+ static const unsigned kSigStackSize = std::max<size_t>(16384, SIGSTKSZ);
|
||||||
|
|
||||||
|
// Only set an alternative stack if there isn't already one, or if the current
|
||||||
|
// one is too small.
|
||||||
|
--
|
||||||
|
2.32.0
|
42
0001-return-ENOSYS-for-clone3.patch
Normal file
42
0001-return-ENOSYS-for-clone3.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
From 218438259dd795456f0a48f67cbe5b4e520db88b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthew Denton <mpdenton@chromium.org>
|
||||||
|
Date: Thu, 3 Jun 2021 20:06:13 +0000
|
||||||
|
Subject: [PATCH] Linux sandbox: return ENOSYS for clone3
|
||||||
|
|
||||||
|
Because clone3 uses a pointer argument rather than a flags argument, we
|
||||||
|
cannot examine the contents with seccomp, which is essential to
|
||||||
|
preventing sandboxed processes from starting other processes. So, we
|
||||||
|
won't be able to support clone3 in Chromium. This CL modifies the
|
||||||
|
BPF policy to return ENOSYS for clone3 so glibc always uses the fallback
|
||||||
|
to clone.
|
||||||
|
|
||||||
|
Bug: 1213452
|
||||||
|
Change-Id: I7c7c585a319e0264eac5b1ebee1a45be2d782303
|
||||||
|
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2936184
|
||||||
|
Reviewed-by: Robert Sesek <rsesek@chromium.org>
|
||||||
|
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
||||||
|
Cr-Commit-Position: refs/heads/master@{#888980}
|
||||||
|
---
|
||||||
|
.../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 8 ++++++++
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
index 3c67b124786..81cb25e139e 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
@@ -165,6 +165,14 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
|
||||||
|
return RestrictCloneToThreadsAndEPERMFork();
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // clone3 takes a pointer argument which we cannot examine, so return ENOSYS
|
||||||
|
+ // to force the libc to use clone. See https://crbug.com/1213452.
|
||||||
|
+ #if defined(__NR_clone3)
|
||||||
|
+ if (sysno == __NR_clone3) {
|
||||||
|
+ return Error(ENOSYS);
|
||||||
|
+ }
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
if (sysno == __NR_fcntl)
|
||||||
|
return RestrictFcntlCommands();
|
||||||
|
|
||||||
|
--
|
||||||
|
2.32.0
|
19
_constraints
Normal file
19
_constraints
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<constraints>
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<package>qt6-webengine</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">12</size>
|
||||||
|
</disk>
|
||||||
|
<memory>
|
||||||
|
<size unit="G">20</size>
|
||||||
|
</memory>
|
||||||
|
<physicalmemory>
|
||||||
|
<size unit="G">8</size>
|
||||||
|
</physicalmemory>
|
||||||
|
<processors>8</processors>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
</constraints>
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<flavor>docs</flavor>
|
||||||
|
</multibuild>
|
53
chromium-90-fseal.patch
Normal file
53
chromium-90-fseal.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
Define FSEAL for Leap 15.2
|
||||||
|
Origin: chromium package
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
--- a/src/3rdparty/chromium/mojo/core/channel_linux.cc.xx 2021-04-26 10:31:10.188705842 +0200
|
||||||
|
+++ b/src/3rdparty/chromium/mojo/core/channel_linux.cc 2021-04-26 11:23:26.997161282 +0200
|
||||||
|
@@ -5,6 +5,21 @@
|
||||||
|
#include "mojo/core/channel_linux.h"
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
+#ifndef F_SEAL_SEAL
|
||||||
|
+# define F_SEAL_SEAL 0x0001
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_SEAL_SHRINK
|
||||||
|
+# define F_SEAL_SHRINK 0x0002
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_SEAL_GROW
|
||||||
|
+# define F_SEAL_GROW 0x0004
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_ADD_SEALS
|
||||||
|
+# define F_ADD_SEALS 1033
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_GET_SEALS
|
||||||
|
+# define F_GET_SEALS 1034
|
||||||
|
+#endif
|
||||||
|
#include <linux/futex.h>
|
||||||
|
#include <linux/memfd.h>
|
||||||
|
#include <sys/eventfd.h>
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.xx 2021-04-26 16:39:18.387482941 +0200
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2021-04-26 16:40:10.866754337 +0200
|
||||||
|
@@ -6,6 +6,21 @@
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
+#ifndef F_SEAL_SEAL
|
||||||
|
+# define F_SEAL_SEAL 0x0001
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_SEAL_SHRINK
|
||||||
|
+# define F_SEAL_SHRINK 0x0002
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_SEAL_GROW
|
||||||
|
+# define F_SEAL_GROW 0x0004
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_ADD_SEALS
|
||||||
|
+# define F_ADD_SEALS 1033
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_GET_SEALS
|
||||||
|
+# define F_GET_SEALS 1034
|
||||||
|
+#endif
|
||||||
|
#include <linux/net.h>
|
||||||
|
#include <sched.h>
|
||||||
|
#include <signal.h>
|
96
disable-gpu-when-using-nouveau-boo-1005323.diff
Normal file
96
disable-gpu-when-using-nouveau-boo-1005323.diff
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
From: Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
Subject: Disable GPU when using nouveau or running on wayland
|
||||||
|
References: boo#1005323, boo#1060990
|
||||||
|
|
||||||
|
Qt WebEngine uses multi-threaded OpenGL, which nouveau does not support.
|
||||||
|
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.
|
||||||
|
|
||||||
|
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
|
||||||
|
index c9f82c31..0f92e3de 100644
|
||||||
|
--- a/src/core/web_engine_context.cpp
|
||||||
|
+++ b/src/core/web_engine_context.cpp
|
||||||
|
@@ -133,6 +133,7 @@
|
||||||
|
#include <QOffscreenSurface>
|
||||||
|
#if QT_CONFIG(opengl)
|
||||||
|
# include <QOpenGLContext>
|
||||||
|
+# include <QOpenGLFunctions>
|
||||||
|
# include <qopenglcontext_platform.h>
|
||||||
|
#endif
|
||||||
|
#include <QQuickWindow>
|
||||||
|
@@ -206,11 +207,33 @@ bool usingSoftwareDynamicGL()
|
||||||
|
static const char *getGLType(bool enableGLSoftwareRendering)
|
||||||
|
{
|
||||||
|
const char *glType = nullptr;
|
||||||
|
+
|
||||||
|
+ bool disableGpu = qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_GPU");
|
||||||
|
+
|
||||||
|
+ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND") && qApp->platformName().startsWith("wayland", Qt::CaseInsensitive))
|
||||||
|
+ {
|
||||||
|
+ qWarning() << "Running on wayland. Qt WebEngine will disable usage of the GPU.\n"
|
||||||
|
+ "Note: you can set the QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND\n"
|
||||||
|
+ "environment variable before running this application, but this is \n"
|
||||||
|
+ "not recommended since this usually causes applications to crash.";
|
||||||
|
+ disableGpu = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND") && openGLVendor() == QStringLiteral("nouveau"))
|
||||||
|
+ {
|
||||||
|
+ qWarning() << "Nouveau openGL driver detected. Qt WebEngine will disable usage of the GPU.\n"
|
||||||
|
+ "Note: you can set the QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND\n"
|
||||||
|
+ "environment variable before running this application, but this is \n"
|
||||||
|
+ "not recommended since this usually causes applications to crash as\n"
|
||||||
|
+ "Nouveau openGL drivers don't support multithreaded rendering";
|
||||||
|
+ disableGpu = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
const bool tryGL = (usingDefaultSGBackend() && !usingSoftwareDynamicGL()
|
||||||
|
&& QGuiApplicationPrivate::platformIntegration()->hasCapability(
|
||||||
|
QPlatformIntegration::OpenGL))
|
||||||
|
|| enableGLSoftwareRendering;
|
||||||
|
- if (tryGL) {
|
||||||
|
+ if (tryGL && !disableGpu) {
|
||||||
|
if (!qt_gl_global_share_context() || !qt_gl_global_share_context()->isValid()) {
|
||||||
|
qWarning("WebEngineContext used before QtWebEngineCore::initialize() or OpenGL context "
|
||||||
|
"creation failed.");
|
||||||
|
@@ -914,6 +937,39 @@ base::CommandLine* WebEngineContext::commandLine() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef QT_NO_OPENGL
|
||||||
|
+QString openGLVendor()
|
||||||
|
+{
|
||||||
|
+ QString vendor;
|
||||||
|
+
|
||||||
|
+ QOpenGLContext *oldContext = QOpenGLContext::currentContext();
|
||||||
|
+ QSurface *oldSurface = 0;
|
||||||
|
+ if (oldContext)
|
||||||
|
+ oldSurface = oldContext->surface();
|
||||||
|
+
|
||||||
|
+ QScopedPointer<QOffscreenSurface> surface( new QOffscreenSurface );
|
||||||
|
+ surface->create();
|
||||||
|
+ QOpenGLContext context;
|
||||||
|
+ if (!context.create()) {
|
||||||
|
+ qDebug() << "Error creating openGL context";
|
||||||
|
+ }
|
||||||
|
+ else if (!context.makeCurrent(surface.data())) {
|
||||||
|
+ qDebug() << "Error making openGL context current context";
|
||||||
|
+ } else {
|
||||||
|
+ const GLubyte *p;
|
||||||
|
+ QOpenGLFunctions *f = context.functions();
|
||||||
|
+ if ((p = f->glGetString(GL_VENDOR)))
|
||||||
|
+ vendor = QString::fromLatin1(reinterpret_cast<const char *>(p));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ context.doneCurrent();
|
||||||
|
+ if (oldContext && oldSurface)
|
||||||
|
+ oldContext->makeCurrent(oldSurface);
|
||||||
|
+
|
||||||
|
+ return vendor;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
8
qt6-webengine-rpmlintrc
Normal file
8
qt6-webengine-rpmlintrc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# using fdupes on include directories means looking for troubles
|
||||||
|
addFilter("files-duplicate .*")
|
||||||
|
|
||||||
|
# library and development package names don't match
|
||||||
|
addFilter("no-dependency-on .*")
|
||||||
|
|
||||||
|
# Only libraries used at link time are guaranteed to work
|
||||||
|
addFilter("shlib-fixed-dependency .*")
|
47
qt6-webengine.changes
Normal file
47
qt6-webengine.changes
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 30 12:31:00 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.2-lts-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 25 07:18:46 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-rc2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 16 14:24:30 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-rc
|
||||||
|
- Add arm build fix:
|
||||||
|
* 0001-Fix-build-when-x11-over-egl-es2.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 11 12:47:13 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-beta4
|
||||||
|
- Add glibc 2.34 compatibility patch:
|
||||||
|
* 0001-Fix-build-with-glibc-2.34.patch
|
||||||
|
- Import patches from the chromium package:
|
||||||
|
* 0001-return-ENOSYS-for-clone3.patch
|
||||||
|
* chromium-90-fseal.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Aug 1 09:41:59 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Drop chromium-glibc-2.33.patch. Merged upstream
|
||||||
|
- Rebase sandbox-statx-futex_time64.patch.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 2 12:22:23 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Add back patches from libqt5-qtwebengine:
|
||||||
|
* qtwebengine-boo1163766.patch
|
||||||
|
* rtc-dont-use-h264.patch
|
||||||
|
* sandbox-statx-futex_time64.patch
|
||||||
|
* chromium-glibc-2.33.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 23 19:27:45 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Init qt6-webengine
|
522
qt6-webengine.spec
Normal file
522
qt6-webengine.spec
Normal file
@ -0,0 +1,522 @@
|
|||||||
|
#
|
||||||
|
# spec file for package qt6-webengine
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define real_version 6.2.0
|
||||||
|
%define short_version 6.2
|
||||||
|
%define tar_name qtwebengine-everywhere-src
|
||||||
|
%define tar_suffix %{nil}
|
||||||
|
#
|
||||||
|
%global qt6_flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
%define no_flavor ("%qt6_flavor" == "")
|
||||||
|
#
|
||||||
|
%if "%{qt6_flavor}" == "docs"
|
||||||
|
%define pkg_suffix -docs
|
||||||
|
%endif
|
||||||
|
#
|
||||||
|
%if %{?suse_version} > 1500 || 0%{?sle_version} > 150300
|
||||||
|
%bcond_without system_vpx
|
||||||
|
# icu >= 68 is required
|
||||||
|
%bcond_without system_icu
|
||||||
|
%define _use_system_icu ON
|
||||||
|
%else
|
||||||
|
%bcond_with system_vpx
|
||||||
|
%bcond_with system_icu
|
||||||
|
%define _use_system_icu OFF
|
||||||
|
%endif
|
||||||
|
%bcond_without system_ffmpeg
|
||||||
|
%bcond_without system_minizip
|
||||||
|
#
|
||||||
|
Name: qt6-webengine%{?pkg_suffix}
|
||||||
|
Version: 6.2.0
|
||||||
|
Release: 0
|
||||||
|
Summary: Web browser engine for Qt applications
|
||||||
|
License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
URL: https://www.qt.io
|
||||||
|
Source: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
|
||||||
|
Source99: qt6-webengine-rpmlintrc
|
||||||
|
# Patches 0-100 are upstream patches #
|
||||||
|
# PATCH-FIX-UPSTREAM
|
||||||
|
Patch0: 0001-Fix-build-when-x11-over-egl-es2.patch
|
||||||
|
# Patches 100-200 are openSUSE and/or non-upstream(able) patches #
|
||||||
|
Patch100: qtwebengine-boo1163766.patch
|
||||||
|
Patch101: rtc-dont-use-h264.patch
|
||||||
|
Patch102: sandbox-statx-futex_time64.patch
|
||||||
|
# PATCH-FIX-UPSTREAM
|
||||||
|
Patch103: 0001-Fix-build-with-glibc-2.34.patch
|
||||||
|
# PATCH-FIX-UPSTREAM
|
||||||
|
Patch104: 0001-return-ENOSYS-for-clone3.patch
|
||||||
|
# PATCH-FIX-OPENSUSE -- Needed for leap 15.2
|
||||||
|
Patch105: chromium-90-fseal.patch
|
||||||
|
# PATCH-FIX-OPENSUSE -- disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||||
|
# PATCH-NEEDS-REBASE
|
||||||
|
%if 0
|
||||||
|
Patch106: disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||||
|
%endif
|
||||||
|
#
|
||||||
|
# Chromium/blink don't support all archs
|
||||||
|
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 %{mips} %{riscv}
|
||||||
|
BuildRequires: Mesa-KHR-devel
|
||||||
|
BuildRequires: bison
|
||||||
|
# Not pulled automatically on Leap
|
||||||
|
BuildRequires: cups-config
|
||||||
|
BuildRequires: flex
|
||||||
|
BuildRequires: gperf
|
||||||
|
BuildRequires: krb5-devel
|
||||||
|
BuildRequires: libjpeg-devel
|
||||||
|
BuildRequires: libpng-devel >= 1.6.0
|
||||||
|
BuildRequires: memory-constraints
|
||||||
|
# nodejs-default doesn't exist on Leap 15.2
|
||||||
|
%if 0%{?suse_version} == 1500 && 0%{?sle_version} == 150200
|
||||||
|
BuildRequires: nodejs-common
|
||||||
|
%else
|
||||||
|
BuildRequires: nodejs-default
|
||||||
|
%endif
|
||||||
|
BuildRequires: pipewire-devel
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: python
|
||||||
|
BuildRequires: python-devel
|
||||||
|
BuildRequires: python-xml
|
||||||
|
BuildRequires: qt6-core-private-devel
|
||||||
|
BuildRequires: qt6-gui-private-devel
|
||||||
|
BuildRequires: qt6-qml-private-devel
|
||||||
|
BuildRequires: qt6-quick-private-devel
|
||||||
|
BuildRequires: qt6-quickwidgets-private-devel
|
||||||
|
BuildRequires: qt6-widgets-private-devel
|
||||||
|
BuildRequires: snappy-devel
|
||||||
|
BuildRequires: cmake(Qt6Core)
|
||||||
|
BuildRequires: cmake(Qt6Gui)
|
||||||
|
BuildRequires: cmake(Qt6GuiTools)
|
||||||
|
BuildRequires: cmake(Qt6Network)
|
||||||
|
BuildRequires: cmake(Qt6OpenGL)
|
||||||
|
BuildRequires: cmake(Qt6OpenGLWidgets)
|
||||||
|
BuildRequires: cmake(Qt6Positioning)
|
||||||
|
BuildRequires: cmake(Qt6PrintSupport)
|
||||||
|
BuildRequires: cmake(Qt6Qml)
|
||||||
|
BuildRequires: cmake(Qt6QmlModels)
|
||||||
|
BuildRequires: cmake(Qt6QmlTools)
|
||||||
|
BuildRequires: cmake(Qt6Quick)
|
||||||
|
BuildRequires: cmake(Qt6QuickWidgets)
|
||||||
|
BuildRequires: cmake(Qt6WebChannel)
|
||||||
|
BuildRequires: cmake(Qt6Widgets)
|
||||||
|
BuildRequires: cmake(Qt6WidgetsTools)
|
||||||
|
BuildRequires: pkgconfig(alsa)
|
||||||
|
BuildRequires: pkgconfig(dbus-1)
|
||||||
|
BuildRequires: pkgconfig(fontconfig)
|
||||||
|
BuildRequires: pkgconfig(freetype2)
|
||||||
|
BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
|
||||||
|
BuildRequires: pkgconfig(gio-2.0)
|
||||||
|
BuildRequires: pkgconfig(glproto)
|
||||||
|
BuildRequires: pkgconfig(harfbuzz) >= 2.4.0
|
||||||
|
%if %{with system_icu}
|
||||||
|
BuildRequires: pkgconfig(icu-uc) >= 68
|
||||||
|
BuildRequires: pkgconfig(icu-i18n) >= 68
|
||||||
|
%endif
|
||||||
|
BuildRequires: pkgconfig(lcms2)
|
||||||
|
%if %{with system_ffmpeg}
|
||||||
|
BuildRequires: pkgconfig(libavcodec)
|
||||||
|
BuildRequires: pkgconfig(libavformat)
|
||||||
|
BuildRequires: pkgconfig(libavutil)
|
||||||
|
%endif
|
||||||
|
BuildRequires: pkgconfig(libcrypto)
|
||||||
|
BuildRequires: pkgconfig(libdrm)
|
||||||
|
BuildRequires: pkgconfig(libevent)
|
||||||
|
BuildRequires: pkgconfig(libpci)
|
||||||
|
BuildRequires: pkgconfig(libpulse) >= 0.9.10
|
||||||
|
BuildRequires: pkgconfig(libwebp)
|
||||||
|
BuildRequires: pkgconfig(libxml-2.0)
|
||||||
|
BuildRequires: pkgconfig(libxslt)
|
||||||
|
BuildRequires: pkgconfig(nss) >= 3.26
|
||||||
|
BuildRequires: pkgconfig(opus) >= 1.3.1
|
||||||
|
BuildRequires: pkgconfig(re2)
|
||||||
|
%if %{with system_vpx}
|
||||||
|
BuildRequires: pkgconfig(vpx) >= 1.10.0
|
||||||
|
%endif
|
||||||
|
BuildRequires: pkgconfig(x11)
|
||||||
|
BuildRequires: pkgconfig(xcomposite)
|
||||||
|
BuildRequires: pkgconfig(xcursor)
|
||||||
|
BuildRequires: pkgconfig(xdamage)
|
||||||
|
BuildRequires: pkgconfig(xext)
|
||||||
|
BuildRequires: pkgconfig(xfixes)
|
||||||
|
BuildRequires: pkgconfig(xi)
|
||||||
|
BuildRequires: pkgconfig(xkbfile)
|
||||||
|
BuildRequires: pkgconfig(xrandr)
|
||||||
|
BuildRequires: pkgconfig(xrender)
|
||||||
|
BuildRequires: pkgconfig(xscrnsaver)
|
||||||
|
BuildRequires: pkgconfig(xshmfence)
|
||||||
|
BuildRequires: pkgconfig(xt)
|
||||||
|
BuildRequires: pkgconfig(xtst)
|
||||||
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
%if %{with system_minizip}
|
||||||
|
BuildRequires: pkgconfig(minizip)
|
||||||
|
%endif
|
||||||
|
%if "%{qt6_flavor}" == "docs"
|
||||||
|
BuildRequires: qt6-tools
|
||||||
|
%{qt6_doc_packages}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
The Qt WebEngine module provides a web browser engine to embed web content into
|
||||||
|
Qt applications.
|
||||||
|
The functionality in Qt WebEngine is divided into the following
|
||||||
|
modules:
|
||||||
|
* Qt WebEngine Core module for interacting with Chromium
|
||||||
|
* Qt WebEngine Widgets module for creating widget-based web applications
|
||||||
|
* Qt WebEngine module for creating Qt Quick based web applications
|
||||||
|
|
||||||
|
%if %{no_flavor}
|
||||||
|
|
||||||
|
%package imports
|
||||||
|
Summary: Qt 6 WebEngine QML files and plugins
|
||||||
|
|
||||||
|
%description imports
|
||||||
|
QML files and plugins from the Qt 6 WebEngine module
|
||||||
|
|
||||||
|
%package -n libQt6Pdf6
|
||||||
|
Summary: Qt6 Pdf library
|
||||||
|
|
||||||
|
%description -n libQt6Pdf6
|
||||||
|
The Qt6 Pdf library.
|
||||||
|
|
||||||
|
%package -n qt6-pdf-imports
|
||||||
|
Summary: Qt 6 Pdf QML files and plugins
|
||||||
|
|
||||||
|
%description -n qt6-pdf-imports
|
||||||
|
QML files and plugins from the Qt 6 Pdf module
|
||||||
|
|
||||||
|
%package -n qt6-pdf-devel
|
||||||
|
Summary: Development files for the Qt 6 Pdf library
|
||||||
|
Requires: libQt6Pdf6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-pdf-devel
|
||||||
|
Development files for the Qt 6 Pdf library.
|
||||||
|
|
||||||
|
%package -n qt6-pdf-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 Pdf library
|
||||||
|
Requires: cmake(Qt6Pdf) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-pdf-private-devel
|
||||||
|
This package provides private headers of libQt6Pdf that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
%package -n libQt6PdfQuick6
|
||||||
|
Summary: Qt6 PdfQuick library
|
||||||
|
|
||||||
|
%description -n libQt6PdfQuick6
|
||||||
|
The Qt6 PdfQuick library.
|
||||||
|
|
||||||
|
%package -n qt6-pdfquick-devel
|
||||||
|
Summary: Development files for the Qt 6 PdfQuick library
|
||||||
|
Requires: libQt6PdfQuick6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-pdfquick-devel
|
||||||
|
Development files for the Qt 6 PdfQuick library.
|
||||||
|
|
||||||
|
%package -n qt6-pdfquick-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 PdfQuick library
|
||||||
|
Requires: cmake(Qt6PdfQuick) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-pdfquick-private-devel
|
||||||
|
This package provides private headers of libQt6PdfQuick that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
%package -n libQt6PdfWidgets6
|
||||||
|
Summary: Qt6 PdfWidgets library
|
||||||
|
|
||||||
|
%description -n libQt6PdfWidgets6
|
||||||
|
The Qt6 PdfWidgets library.
|
||||||
|
|
||||||
|
%package -n qt6-pdfwidgets-devel
|
||||||
|
Summary: Development files for the Qt 6 PdfWidgets library
|
||||||
|
Requires: libQt6PdfWidgets6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-pdfwidgets-devel
|
||||||
|
Development files for the Qt 6 PdfWidgets library.
|
||||||
|
|
||||||
|
%package -n qt6-pdfwidgets-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 PdfWidgets library
|
||||||
|
Requires: cmake(Qt6PdfWidgets) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-pdfwidgets-private-devel
|
||||||
|
This package provides private headers of libQt6PdfWidgets that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
%package -n libQt6WebEngineCore6
|
||||||
|
Summary: Qt6 WebEngineCore library
|
||||||
|
Requires: qt6-webengine = %{version}
|
||||||
|
|
||||||
|
%description -n libQt6WebEngineCore6
|
||||||
|
The Qt6 WebEngineCore library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginecore-devel
|
||||||
|
Summary: Development files for the Qt 6 WebEngineCore library
|
||||||
|
Requires: libQt6WebEngineCore6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginecore-devel
|
||||||
|
Development files for the Qt 6 WebEngineCore library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginecore-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 WebEngineCore library
|
||||||
|
Requires: cmake(Qt6WebEngineCore) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginecore-private-devel
|
||||||
|
This package provides private headers of libQt6WebEngineCore that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
%package -n libQt6WebEngineQuick6
|
||||||
|
Summary: Qt6 WebEngineQuick library
|
||||||
|
Requires: qt6-webengine-imports = %{version}
|
||||||
|
|
||||||
|
%description -n libQt6WebEngineQuick6
|
||||||
|
The Qt6 WebEngineQuick library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginequick-devel
|
||||||
|
Summary: Development files for the Qt 6 WebEngineQuick library
|
||||||
|
Requires: libQt6WebEngineQuick6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginequick-devel
|
||||||
|
Development files for the Qt 6 WebEngineQuick library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginequick-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 WebEngineQuick library
|
||||||
|
Requires: cmake(Qt6WebEngineQuick) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginequick-private-devel
|
||||||
|
This package provides private headers of libQt6WebEngineQuick that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
%package -n libQt6WebEngineWidgets6
|
||||||
|
Summary: Qt6 WebEngineWidgets library
|
||||||
|
|
||||||
|
%description -n libQt6WebEngineWidgets6
|
||||||
|
The Qt6 WebEngineWidgets library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginewidgets-devel
|
||||||
|
Summary: Development files for the Qt 6 WebEngineWidgets library
|
||||||
|
Requires: libQt6WebEngineWidgets6 = %{version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginewidgets-devel
|
||||||
|
Development files for the Qt 6 WebEngineWidgets library.
|
||||||
|
|
||||||
|
%package -n qt6-webenginewidgets-private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 WebEngineWidgets library
|
||||||
|
Requires: cmake(Qt6WebEngineWidgets) = %{real_version}
|
||||||
|
|
||||||
|
%description -n qt6-webenginewidgets-private-devel
|
||||||
|
This package provides private headers of libQt6WebEngineWidgets that do not have any
|
||||||
|
ABI or API guarantees.
|
||||||
|
|
||||||
|
# Examples cause build failure (6.2.0-beta4)
|
||||||
|
# %%{qt6_examples_package}
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Determine the right number of parallel processes based on the available memory
|
||||||
|
# Copied from the Qt 5 webengine package
|
||||||
|
%limit_build -m 2750
|
||||||
|
|
||||||
|
# Ensure that also the internal chromium build follows the right number of
|
||||||
|
# parallel processes instead of its defaults.
|
||||||
|
export NINJAFLAGS="%{?_smp_mflags}"
|
||||||
|
|
||||||
|
%cmake_qt6 \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE:STRING="%{_qt6_cmakedir}/Qt6/qt.toolchain.cmake" \
|
||||||
|
-DFEATURE_printer:BOOL=ON \
|
||||||
|
-DFEATURE_qtpdf_build:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_developer_build:BOOL=OFF \
|
||||||
|
-DFEATURE_webengine_embedded_build:BOOL=OFF \
|
||||||
|
-DFEATURE_webengine_extensions:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_kerberos:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_native_spellchecker:BOOL=OFF \
|
||||||
|
-DFEATURE_webengine_system_libevent:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_webrtc:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_webrtc_pipewire:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_system_icu:BOOL=%{_use_system_icu} \
|
||||||
|
%if %{with system_ffmpeg}
|
||||||
|
-DFEATURE_webengine_system_ffmpeg:BOOL=ON \
|
||||||
|
-DFEATURE_webengine_proprietary_codecs:BOOL=ON \
|
||||||
|
%endif
|
||||||
|
-DQT_BUILD_EXAMPLES:BOOL=OFF
|
||||||
|
|
||||||
|
%{qt6_build}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%{qt6_install}
|
||||||
|
|
||||||
|
%if %{no_flavor}
|
||||||
|
|
||||||
|
# CMake files are not needed for plugins
|
||||||
|
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Gui/
|
||||||
|
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Qml/QmlPlugins
|
||||||
|
|
||||||
|
# This shouldn't be needed
|
||||||
|
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6BuildInternals
|
||||||
|
|
||||||
|
%post -n libQt6Pdf6 -p /sbin/ldconfig
|
||||||
|
%post -n libQt6PdfQuick6 -p /sbin/ldconfig
|
||||||
|
%post -n libQt6PdfWidgets6 -p /sbin/ldconfig
|
||||||
|
%post -n libQt6WebEngineCore6 -p /sbin/ldconfig
|
||||||
|
%post -n libQt6WebEngineQuick6 -p /sbin/ldconfig
|
||||||
|
%post -n libQt6WebEngineWidgets6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6Pdf6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6PdfQuick6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6PdfWidgets6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6WebEngineCore6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6WebEngineQuick6 -p /sbin/ldconfig
|
||||||
|
%postun -n libQt6WebEngineWidgets6 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_qt6_datadir}/resources/
|
||||||
|
%{_qt6_translationsdir}/qtwebengine_locales/
|
||||||
|
%{_qt6_libexecdir}/QtWebEngineProcess
|
||||||
|
|
||||||
|
%files imports
|
||||||
|
%{_qt6_qmldir}/QtWebEngine/
|
||||||
|
|
||||||
|
%files -n libQt6Pdf6
|
||||||
|
%dir %{_qt6_pluginsdir}/imageformats
|
||||||
|
%{_qt6_libdir}/libQt6Pdf.so.*
|
||||||
|
%{_qt6_pluginsdir}/imageformats/libqpdf.so
|
||||||
|
|
||||||
|
%files -n qt6-pdf-imports
|
||||||
|
%dir %{_qt6_qmldir}/QtQuick
|
||||||
|
%{_qt6_qmldir}/QtQuick/Pdf
|
||||||
|
|
||||||
|
%files -n qt6-pdf-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6Pdf/
|
||||||
|
%{_qt6_descriptionsdir}/Pdf.json
|
||||||
|
%{_qt6_includedir}/QtPdf/
|
||||||
|
%{_qt6_libdir}/libQt6Pdf.prl
|
||||||
|
%{_qt6_libdir}/libQt6Pdf.so
|
||||||
|
%{_qt6_metatypesdir}/qt6pdf_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdf.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtPdf/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-pdf-private-devel
|
||||||
|
%{_qt6_includedir}/QtPdf/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdf_private.pri
|
||||||
|
|
||||||
|
%files -n libQt6PdfQuick6
|
||||||
|
%{_qt6_libdir}/libQt6PdfQuick.so.*
|
||||||
|
|
||||||
|
%files -n qt6-pdfquick-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6PdfQuick/
|
||||||
|
%{_qt6_descriptionsdir}/PdfQuick.json
|
||||||
|
%{_qt6_includedir}/QtPdfQuick/
|
||||||
|
%{_qt6_libdir}/libQt6PdfQuick.prl
|
||||||
|
%{_qt6_libdir}/libQt6PdfQuick.so
|
||||||
|
%{_qt6_metatypesdir}/qt6pdfquick_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdfquick.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtPdfQuick/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-pdfquick-private-devel
|
||||||
|
%{_qt6_includedir}/QtPdfQuick/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdfquick_private.pri
|
||||||
|
|
||||||
|
%files -n libQt6PdfWidgets6
|
||||||
|
%{_qt6_libdir}/libQt6PdfWidgets.so.*
|
||||||
|
|
||||||
|
%files -n qt6-pdfwidgets-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6PdfWidgets/
|
||||||
|
%{_qt6_descriptionsdir}/PdfWidgets.json
|
||||||
|
%{_qt6_includedir}/QtPdfWidgets/
|
||||||
|
%{_qt6_libdir}/libQt6PdfWidgets.prl
|
||||||
|
%{_qt6_libdir}/libQt6PdfWidgets.so
|
||||||
|
%{_qt6_metatypesdir}/qt6pdfwidgets_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdfwidgets.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtPdfWidgets/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-pdfwidgets-private-devel
|
||||||
|
%{_qt6_includedir}/QtPdfWidgets/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_pdfwidgets_private.pri
|
||||||
|
|
||||||
|
%files -n libQt6WebEngineCore6
|
||||||
|
%license LICENSE.*
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineCore.so.*
|
||||||
|
|
||||||
|
%files -n qt6-webenginecore-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindGPerf.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindGn.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindNinja.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindNodejs.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindPkgConfigHost.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindSnappy.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6WebEngineCore/
|
||||||
|
%{_qt6_cmakedir}/Qt6WebEngineCoreTools/
|
||||||
|
%{_qt6_descriptionsdir}/WebEngineCore.json
|
||||||
|
%{_qt6_includedir}/QtWebEngineCore/
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineCore.prl
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineCore.so
|
||||||
|
%{_qt6_libexecdir}/gn
|
||||||
|
%{_qt6_libexecdir}/qwebengine_convert_dict
|
||||||
|
%{_qt6_metatypesdir}/qt6webenginecore_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginecore.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtWebEngineCore/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-webenginecore-private-devel
|
||||||
|
%{_qt6_includedir}/QtWebEngineCore/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginecore_private.pri
|
||||||
|
|
||||||
|
%files -n libQt6WebEngineQuick6
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuick.so.*
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so.*
|
||||||
|
|
||||||
|
%files -n qt6-webenginequick-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6WebEngineQuick/
|
||||||
|
%{_qt6_cmakedir}/Qt6WebEngineQuickDelegatesQml/
|
||||||
|
%{_qt6_descriptionsdir}/WebEngineQuick.json
|
||||||
|
%{_qt6_descriptionsdir}/WebEngineQuickDelegatesQml.json
|
||||||
|
%{_qt6_includedir}/QtWebEngineQuick/
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuick.prl
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuick.so
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.prl
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so
|
||||||
|
%{_qt6_metatypesdir}/qt6webenginequick_*_metatypes.json
|
||||||
|
%{_qt6_metatypesdir}/qt6webenginequickdelegatesqml_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginequick.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginequickdelegatesqml.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtWebEngineQuick/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-webenginequick-private-devel
|
||||||
|
%{_qt6_includedir}/QtWebEngineQuick/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginequick_private.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginequickdelegatesqml_private.pri
|
||||||
|
|
||||||
|
%files -n libQt6WebEngineWidgets6
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineWidgets.so.*
|
||||||
|
|
||||||
|
%files -n qt6-webenginewidgets-devel
|
||||||
|
%{_qt6_cmakedir}/Qt6WebEngineWidgets/
|
||||||
|
%{_qt6_descriptionsdir}/WebEngineWidgets.json
|
||||||
|
%{_qt6_includedir}/QtWebEngineWidgets/
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineWidgets.prl
|
||||||
|
%{_qt6_libdir}/libQt6WebEngineWidgets.so
|
||||||
|
%{_qt6_metatypesdir}/qt6webenginewidgets_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginewidgets.pri
|
||||||
|
%exclude %{_qt6_includedir}/QtWebEngineWidgets/%{real_version}
|
||||||
|
|
||||||
|
%files -n qt6-webenginewidgets-private-devel
|
||||||
|
%{_qt6_includedir}/QtWebEngineWidgets/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_webenginewidgets_private.pri
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
62
qtwebengine-boo1163766.patch
Normal file
62
qtwebengine-boo1163766.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From eaae274cb1975be558d8a535ba2310bc67c073a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Bernhard M. Wiedemann" <bwiedemann suse de>
|
||||||
|
Date: Wed, 24 Mar 2021 16:00:08 +0100
|
||||||
|
Subject: [PATCH] https://bugzilla.opensuse.org/show_bug.cgi?id=1163766
|
||||||
|
|
||||||
|
seccomp filters disallow a new kernel syscall to get time
|
||||||
|
used on i586
|
||||||
|
---
|
||||||
|
src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 6 ++++++
|
||||||
|
src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h | 8 ++++++++
|
||||||
|
src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc | 3 +++
|
||||||
|
3 files changed, 17 insertions(+)
|
||||||
|
|
||||||
|
Index: qtwebengine-everywhere-src-5.15.3/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
|
||||||
|
===================================================================
|
||||||
|
--- qtwebengine-everywhere-src-5.15.3.orig/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.3/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)
|
||||||
|
+#define __NR_clock_gettime64 403
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#if !defined(__NR_clock_nanosleep_time64)
|
||||||
|
+#define __NR_clock_nanosleep_time64 407
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
|
||||||
|
|
||||||
|
Index: qtwebengine-everywhere-src-5.15.3/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc
|
||||||
|
===================================================================
|
||||||
|
--- qtwebengine-everywhere-src-5.15.3.orig/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.3/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc
|
||||||
|
@@ -32,6 +32,9 @@ ResultExpr ImeProcessPolicy::EvaluateSys
|
||||||
|
#if defined(__NR_clock_gettime)
|
||||||
|
case __NR_clock_gettime:
|
||||||
|
#endif
|
||||||
|
+#if defined(__NR_clock_gettime64)
|
||||||
|
+ case __NR_clock_gettime64:
|
||||||
|
+#endif
|
||||||
|
return Allow();
|
||||||
|
// https://crbug.com/991435
|
||||||
|
#if defined(__NR_getrusage)
|
||||||
|
Index: qtwebengine-everywhere-src-5.15.3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
===================================================================
|
||||||
|
--- qtwebengine-everywhere-src-5.15.3.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
+++ qtwebengine-everywhere-src-5.15.3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
@@ -161,6 +161,12 @@ ResultExpr EvaluateSyscallImpl(int fs_de
|
||||||
|
return RestrictClockID();
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if defined(__NR_clock_gettime64)
|
||||||
|
+ if (sysno == __NR_clock_gettime64 || sysno == __NR_clock_nanosleep_time64) {
|
||||||
|
+ return RestrictClockID();
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (sysno == __NR_clone) {
|
||||||
|
return RestrictCloneToThreadsAndEPERMFork();
|
||||||
|
}
|
3
qtwebengine-everywhere-src-6.2.0.tar.xz
Normal file
3
qtwebengine-everywhere-src-6.2.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c6e530a61bea2e7fbb50308a2b4e7fdb4f7c7b61a28797973270acffc020809d
|
||||||
|
size 369733760
|
32
rtc-dont-use-h264.patch
Normal file
32
rtc-dont-use-h264.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Subject: Don't require open264 when proprietary_codecs are supported
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni b/chromium/third_party/webrtc/webrtc.gni
|
||||||
|
index ca8acdbf259..36897a72aa8 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||||
|
@@ -151,8 +151,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
|
||||||
|
|
||||||
|
# Enable this flag to make webrtc::Mutex be implemented by absl::Mutex.
|
||||||
|
rtc_use_absl_mutex = false
|
||||||
|
|
||||||
|
diff --git a/src/core/config/common.pri b/src/core/config/common.pri
|
||||||
|
index d9d64e76..cd0fd120 100644
|
||||||
|
--- a/src/core/config/common.pri
|
||||||
|
+++ b/src/core/config/common.pri
|
||||||
|
@@ -26,9 +26,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
|
||||||
|
}
|
39
sandbox-statx-futex_time64.patch
Normal file
39
sandbox-statx-futex_time64.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Subject: Sandbox: Handle statx and futex_time64
|
||||||
|
|
||||||
|
glibc uses statx in some more places now (e.g stat64 -> __fstatat64_time64),
|
||||||
|
but it's caught by the sandbox, which doesn't handle it and breaks.
|
||||||
|
Return -ENOSYS instead to trigger the fallback in glibc.
|
||||||
|
|
||||||
|
futex_time64 is also used internally in glibc, so handle that as well.
|
||||||
|
The signature is identical where it matters.
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
index 5e997009667..1cfe1f382cf 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
|
||||||
|
@@ -196,6 +196,11 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
|
||||||
|
if (sysno == __NR_futex)
|
||||||
|
return RestrictFutex();
|
||||||
|
|
||||||
|
+#if defined(__NR_futex_time64)
|
||||||
|
+ if (sysno == __NR_futex_time64)
|
||||||
|
+ return RestrictFutex();
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (sysno == __NR_set_robust_list)
|
||||||
|
return Error(EPERM);
|
||||||
|
|
||||||
|
@@ -281,6 +286,12 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined(__NR_statx)
|
||||||
|
+ if (sysno == __NR_statx) {
|
||||||
|
+ return Error(ENOSYS);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (SyscallSets::IsFileSystem(sysno) ||
|
||||||
|
SyscallSets::IsCurrentDirectory(sysno)) {
|
||||||
|
return Error(fs_denied_errno);
|
Loading…
Reference in New Issue
Block a user