forked from pool/qt6-webengine
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