* [morty/master][PATCH] qtwebengine: add patches as workarond of the following three issues
@ 2017-05-25 20:05 Eric Ruei
2017-05-25 20:13 ` Denys Dmytriyenko
0 siblings, 1 reply; 2+ messages in thread
From: Eric Ruei @ 2017-05-25 20:05 UTC (permalink / raw)
To: meta-arago
- fix system crash due to mismatched GLES2 library version
- set default logging level back to LOG_FATAL to avoid unnecessary warnings
- disable SECCOMP-BPF Sandbox
Signed-off-by: Eric Ruei <e-ruei1@ti.com>
---
...-fix-the-system-crash-due-to-mismatched-G.patch | 66 ++++++++++++++++++++++
...-set-default-logging-level-back-to-LOG_FA.patch | 44 +++++++++++++++
...-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch | 31 ++++++++++
.../recipes-qt/qt5/qtwebengine_git.bbappend | 8 +++
4 files changed, 149 insertions(+)
create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
new file mode 100644
index 0000000..4701720
--- /dev/null
+++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
@@ -0,0 +1,66 @@
+From 883678cb4444c13ea8fb4763da1917ace8c5c8b3 Mon Sep 17 00:00:00 2001
+From: Eric Ruei <e-ruei1@ti.com>
+Date: Thu, 23 Mar 2017 15:30:16 -0400
+Subject: [PATCH 1/3] qtwebengine: fix the system crash due to mismatched GLES2
+ library version
+
+- define QT_LIB_GLES2 as "libGLESv2.so.1"
+- remove the Q_UNREACHABLE() which causes unnecessary system crash at
+ GLSurface::CreateOffscreenGLSurface(
+
+Signed-off-by: Eric Ruei <e-ruei1@ti.com>
+---
+ src/core/gl_surface_qt.cpp | 5 +++--
+ src/core/surface_factory_qt.cpp | 11 +++++++++--
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp
+index e7b4536..f020be9 100644
+--- a/src/core/gl_surface_qt.cpp
++++ b/src/core/gl_surface_qt.cpp
+@@ -619,8 +619,9 @@ GLSurface::CreateOffscreenGLSurface(const gfx::Size& size)
+ default:
+ break;
+ }
+- LOG(ERROR) << "Requested OpenGL platform is not supported.";
+- Q_UNREACHABLE();
++ LOG(ERROR) << "Requested OpenGL platform is not supported.";
++ // This is no longer an unreachable code. It is OK to return NULL if any prior operation fails
++ // Q_UNREACHABLE();
+ return NULL;
+ }
+
+diff --git a/src/core/surface_factory_qt.cpp b/src/core/surface_factory_qt.cpp
+index 48c91bf..134a866 100644
+--- a/src/core/surface_factory_qt.cpp
++++ b/src/core/surface_factory_qt.cpp
+@@ -57,8 +57,13 @@
+ #endif
+ #ifndef QT_LIBDIR_GLES2
+ #define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
++#endif
++
++#ifndef QT_LIB_GLES2
++#define QT_LIB_GLES2 "libGLESv2.so.1"
+ #endif
+
++
+ namespace QtWebEngineCore {
+
+ base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
+@@ -79,8 +84,10 @@ bool SurfaceFactoryQt::LoadEGLGLES2Bindings(AddGLLibraryCallback add_gl_library,
+ if (!eglLibrary)
+ return false;
+
+- base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
+- libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
++ base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
++ // It does not make sence to expect the version of libGLESv2 to be 2 as libGLESv2.so.2
++ // It will be better to use another #define for user to reconfigure the library name
++ libGLES2Path = libGLES2Path.Append(QT_LIB_GLES2);
+ base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
+ if (!gles2Library)
+ return false;
+--
+1.9.1
+
diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
new file mode 100644
index 0000000..f8085d8
--- /dev/null
+++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
@@ -0,0 +1,44 @@
+From 359141b88834bac09ac6bebae7ef09dcf2bd1dc7 Mon Sep 17 00:00:00 2001
+From: Eric Ruei <e-ruei1@ti.com>
+Date: Thu, 23 Mar 2017 15:38:22 -0400
+Subject: [PATCH 2/3] qtwebengine: set default logging level back to LOG_FATAL
+
+Suppress info, warning and error messages by default to be consistent
+with QT5.6.2 behavior
+
+
+Signed-off-by: Eric Ruei <e-ruei1@ti.com>
+---
+ src/core/content_main_delegate_qt.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp
+index 8bd07ef..6d8cfb1 100644
+--- a/src/core/content_main_delegate_qt.cpp
++++ b/src/core/content_main_delegate_qt.cpp
+@@ -111,14 +111,21 @@ void ContentMainDelegateQt::PreSandboxStartup()
+ settings.logging_dest = DetermineLogMode(*parsedCommandLine);
+ logging::InitLogging(settings);
+
++ // Suppress info, warning and error messages per default.
++ int logLevel = logging::LOG_FATAL;
++
+ if (logging::GetMinLogLevel() >= logging::LOG_INFO) {
+ if (parsedCommandLine->HasSwitch(switches::kLoggingLevel)) {
+ std::string logLevelValue = parsedCommandLine->GetSwitchValueASCII(switches::kLoggingLevel);
+ int level = 0;
+ if (base::StringToInt(logLevelValue, &level) && level >= logging::LOG_INFO && level < logging::LOG_NUM_SEVERITIES)
+- logging::SetMinLogLevel(level);
++ logLevel = level;
++ //logging::SetMinLogLevel(level);
+ }
+ }
++
++ logging::SetMinLogLevel(logLevel);
++
+ }
+
+ content::ContentBrowserClient *ContentMainDelegateQt::CreateContentBrowserClient()
+--
+1.9.1
+
diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
new file mode 100644
index 0000000..90fa373
--- /dev/null
+++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
@@ -0,0 +1,31 @@
+From 59dcfb9bc325b006097efb75a6c323d10205b90a Mon Sep 17 00:00:00 2001
+From: Eric Ruei <e-ruei1@ti.com>
+Date: Thu, 23 Mar 2017 15:42:43 -0400
+Subject: [PATCH 3/3] qtwebengine: HACK: disable SECCOMP-BPF Sandbox at startup
+
+SECCOMP-BPF Sandbox does not work at kernel 4.9.
+Disable this feature temporarily until those issues are resolved.
+
+Signed-off-by: Eric Ruei <e-ruei1@ti.com>
+---
+ src/core/web_engine_context.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
+index 39e11a9..ae51097 100644
+--- a/src/core/web_engine_context.cpp
++++ b/src/core/web_engine_context.cpp
+@@ -281,7 +281,9 @@ WebEngineContext::WebEngineContext()
+ #if defined(Q_OS_WIN)
+ parsedCommandLine->AppendSwitch(switches::kNoSandbox);
+ #elif defined(Q_OS_LINUX)
+- parsedCommandLine->AppendSwitch(switches::kDisableSetuidSandbox);
++ parsedCommandLine->AppendSwitch(switches::kDisableSetuidSandbox);
++ // HACK: disable seccomp filter sandbox for now because it does not work
++ parsedCommandLine->AppendSwitch(switches::kDisableSeccompFilterSandbox);
+ #endif
+ } else {
+ parsedCommandLine->AppendSwitch(switches::kNoSandbox);
+--
+1.9.1
+
diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend b/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
new file mode 100644
index 0000000..794459a
--- /dev/null
+++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+PR_append = ".arago0"
+
+SRC_URI += " \
+ file://0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch \
+ file://0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch \
+ file://0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch \
+"
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [morty/master][PATCH] qtwebengine: add patches as workarond of the following three issues
2017-05-25 20:05 [morty/master][PATCH] qtwebengine: add patches as workarond of the following three issues Eric Ruei
@ 2017-05-25 20:13 ` Denys Dmytriyenko
0 siblings, 0 replies; 2+ messages in thread
From: Denys Dmytriyenko @ 2017-05-25 20:13 UTC (permalink / raw)
To: Eric Ruei; +Cc: meta-arago
What's the upstream status for these patches?
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations
On Thu, May 25, 2017 at 04:05:51PM -0400, Eric Ruei wrote:
> - fix system crash due to mismatched GLES2 library version
> - set default logging level back to LOG_FATAL to avoid unnecessary warnings
> - disable SECCOMP-BPF Sandbox
>
>
> Signed-off-by: Eric Ruei <e-ruei1@ti.com>
> ---
> ...-fix-the-system-crash-due-to-mismatched-G.patch | 66 ++++++++++++++++++++++
> ...-set-default-logging-level-back-to-LOG_FA.patch | 44 +++++++++++++++
> ...-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch | 31 ++++++++++
> .../recipes-qt/qt5/qtwebengine_git.bbappend | 8 +++
> 4 files changed, 149 insertions(+)
> create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
> create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
> create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
> create mode 100644 meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
>
> diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
> new file mode 100644
> index 0000000..4701720
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
> @@ -0,0 +1,66 @@
> +From 883678cb4444c13ea8fb4763da1917ace8c5c8b3 Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 23 Mar 2017 15:30:16 -0400
> +Subject: [PATCH 1/3] qtwebengine: fix the system crash due to mismatched GLES2
> + library version
> +
> +- define QT_LIB_GLES2 as "libGLESv2.so.1"
> +- remove the Q_UNREACHABLE() which causes unnecessary system crash at
> + GLSurface::CreateOffscreenGLSurface(
> +
> +Signed-off-by: Eric Ruei <e-ruei1@ti.com>
> +---
> + src/core/gl_surface_qt.cpp | 5 +++--
> + src/core/surface_factory_qt.cpp | 11 +++++++++--
> + 2 files changed, 12 insertions(+), 4 deletions(-)
> +
> +diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp
> +index e7b4536..f020be9 100644
> +--- a/src/core/gl_surface_qt.cpp
> ++++ b/src/core/gl_surface_qt.cpp
> +@@ -619,8 +619,9 @@ GLSurface::CreateOffscreenGLSurface(const gfx::Size& size)
> + default:
> + break;
> + }
> +- LOG(ERROR) << "Requested OpenGL platform is not supported.";
> +- Q_UNREACHABLE();
> ++ LOG(ERROR) << "Requested OpenGL platform is not supported.";
> ++ // This is no longer an unreachable code. It is OK to return NULL if any prior operation fails
> ++ // Q_UNREACHABLE();
> + return NULL;
> + }
> +
> +diff --git a/src/core/surface_factory_qt.cpp b/src/core/surface_factory_qt.cpp
> +index 48c91bf..134a866 100644
> +--- a/src/core/surface_factory_qt.cpp
> ++++ b/src/core/surface_factory_qt.cpp
> +@@ -57,8 +57,13 @@
> + #endif
> + #ifndef QT_LIBDIR_GLES2
> + #define QT_LIBDIR_GLES2 QT_LIBDIR_EGL
> ++#endif
> ++
> ++#ifndef QT_LIB_GLES2
> ++#define QT_LIB_GLES2 "libGLESv2.so.1"
> + #endif
> +
> ++
> + namespace QtWebEngineCore {
> +
> + base::NativeLibrary LoadLibrary(const base::FilePath& filename) {
> +@@ -79,8 +84,10 @@ bool SurfaceFactoryQt::LoadEGLGLES2Bindings(AddGLLibraryCallback add_gl_library,
> + if (!eglLibrary)
> + return false;
> +
> +- base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
> +- libGLES2Path = libGLES2Path.Append("libGLESv2.so.2");
> ++ base::FilePath libGLES2Path = QtWebEngineCore::toFilePath(QT_LIBDIR_GLES2);
> ++ // It does not make sence to expect the version of libGLESv2 to be 2 as libGLESv2.so.2
> ++ // It will be better to use another #define for user to reconfigure the library name
> ++ libGLES2Path = libGLES2Path.Append(QT_LIB_GLES2);
> + base::NativeLibrary gles2Library = LoadLibrary(libGLES2Path);
> + if (!gles2Library)
> + return false;
> +--
> +1.9.1
> +
> diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
> new file mode 100644
> index 0000000..f8085d8
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
> @@ -0,0 +1,44 @@
> +From 359141b88834bac09ac6bebae7ef09dcf2bd1dc7 Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 23 Mar 2017 15:38:22 -0400
> +Subject: [PATCH 2/3] qtwebengine: set default logging level back to LOG_FATAL
> +
> +Suppress info, warning and error messages by default to be consistent
> +with QT5.6.2 behavior
> +
> +
> +Signed-off-by: Eric Ruei <e-ruei1@ti.com>
> +---
> + src/core/content_main_delegate_qt.cpp | 9 ++++++++-
> + 1 file changed, 8 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp
> +index 8bd07ef..6d8cfb1 100644
> +--- a/src/core/content_main_delegate_qt.cpp
> ++++ b/src/core/content_main_delegate_qt.cpp
> +@@ -111,14 +111,21 @@ void ContentMainDelegateQt::PreSandboxStartup()
> + settings.logging_dest = DetermineLogMode(*parsedCommandLine);
> + logging::InitLogging(settings);
> +
> ++ // Suppress info, warning and error messages per default.
> ++ int logLevel = logging::LOG_FATAL;
> ++
> + if (logging::GetMinLogLevel() >= logging::LOG_INFO) {
> + if (parsedCommandLine->HasSwitch(switches::kLoggingLevel)) {
> + std::string logLevelValue = parsedCommandLine->GetSwitchValueASCII(switches::kLoggingLevel);
> + int level = 0;
> + if (base::StringToInt(logLevelValue, &level) && level >= logging::LOG_INFO && level < logging::LOG_NUM_SEVERITIES)
> +- logging::SetMinLogLevel(level);
> ++ logLevel = level;
> ++ //logging::SetMinLogLevel(level);
> + }
> + }
> ++
> ++ logging::SetMinLogLevel(logLevel);
> ++
> + }
> +
> + content::ContentBrowserClient *ContentMainDelegateQt::CreateContentBrowserClient()
> +--
> +1.9.1
> +
> diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
> new file mode 100644
> index 0000000..90fa373
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
> @@ -0,0 +1,31 @@
> +From 59dcfb9bc325b006097efb75a6c323d10205b90a Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 23 Mar 2017 15:42:43 -0400
> +Subject: [PATCH 3/3] qtwebengine: HACK: disable SECCOMP-BPF Sandbox at startup
> +
> +SECCOMP-BPF Sandbox does not work at kernel 4.9.
> +Disable this feature temporarily until those issues are resolved.
> +
> +Signed-off-by: Eric Ruei <e-ruei1@ti.com>
> +---
> + src/core/web_engine_context.cpp | 4 +++-
> + 1 file changed, 3 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
> +index 39e11a9..ae51097 100644
> +--- a/src/core/web_engine_context.cpp
> ++++ b/src/core/web_engine_context.cpp
> +@@ -281,7 +281,9 @@ WebEngineContext::WebEngineContext()
> + #if defined(Q_OS_WIN)
> + parsedCommandLine->AppendSwitch(switches::kNoSandbox);
> + #elif defined(Q_OS_LINUX)
> +- parsedCommandLine->AppendSwitch(switches::kDisableSetuidSandbox);
> ++ parsedCommandLine->AppendSwitch(switches::kDisableSetuidSandbox);
> ++ // HACK: disable seccomp filter sandbox for now because it does not work
> ++ parsedCommandLine->AppendSwitch(switches::kDisableSeccompFilterSandbox);
> + #endif
> + } else {
> + parsedCommandLine->AppendSwitch(switches::kNoSandbox);
> +--
> +1.9.1
> +
> diff --git a/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend b/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
> new file mode 100644
> index 0000000..794459a
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine_git.bbappend
> @@ -0,0 +1,8 @@
> +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> +PR_append = ".arago0"
> +
> +SRC_URI += " \
> + file://0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch \
> + file://0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch \
> + file://0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch \
> +"
> --
> 1.9.1
>
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-05-25 20:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-25 20:05 [morty/master][PATCH] qtwebengine: add patches as workarond of the following three issues Eric Ruei
2017-05-25 20:13 ` Denys Dmytriyenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.