From: Denys Dmytriyenko <denys@ti.com>
To: Eric Ruei <e-ruei1@ti.com>
Cc: meta-arago@arago-project.org
Subject: Re: [morty/master][PATCH v2] qtwebengine: add patches as workarond of the following three issues
Date: Thu, 25 May 2017 17:13:25 -0400 [thread overview]
Message-ID: <20170525211325.GJ28136@edge> (raw)
In-Reply-To: <1495746550-49109-1-git-send-email-e-ruei1@ti.com>
Thanks! I'll queue it up for "next" branch testing.
On Thu, May 25, 2017 at 05:09:10PM -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 | 71 ++++++++++++++++++++++
> ...-set-default-logging-level-back-to-LOG_FA.patch | 47 ++++++++++++++
> ...-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch | 34 +++++++++++
> .../recipes-qt/qt5/qtwebengine_git.bbappend | 8 +++
> 4 files changed, 160 insertions(+)
> create mode 100755 meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
> create mode 100755 meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
> create mode 100755 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 100755
> index 0000000..56b724d
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0001-qtwebengine-fix-the-system-crash-due-to-mismatched-G.patch
> @@ -0,0 +1,71 @@
> +From e42a0566079a86c3b637b058ac6a5ad3b3ee6f5b Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 25 May 2017 16:44:51 -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(
> +
> +Upstream-Status: Inappropriate
> +This patch is for TI only because the libGLESv2.so.1 is provided by IMG DDK 1.14.
> +The issue is expected to be resolved by DDK 1.15 or DDK 1.16 when MESA-style
> +libraries are provided.
> +
> +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 100755
> index 0000000..1486d17
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0002-qtwebengine-set-default-logging-level-back-to-LOG_FA.patch
> @@ -0,0 +1,47 @@
> +From 7e2a1b06447693c588a0608cef22636bc6edb466 Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 25 May 2017 16:55:38 -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
> +
> +Upstream-Status: Inappropriate
> +It is clear that this workaround reverses the course of QT, but we do need
> +this change as described above.
> +
> +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 100755
> index 0000000..8ac434a
> --- /dev/null
> +++ b/meta-arago-distro/recipes-qt/qt5/qtwebengine/0003-qtwebengine-HACK-disable-SECCOMP-BPF-Sandbox-at-star.patch
> @@ -0,0 +1,34 @@
> +From 5e4eef86271cbb83d9a37e889485dc0fde9b8798 Mon Sep 17 00:00:00 2001
> +From: Eric Ruei <e-ruei1@ti.com>
> +Date: Thu, 25 May 2017 17:00:43 -0400
> +Subject: [PATCH 3/3] qtwebengine: HACK: disable SECCOMP-BPF Sandbox at startup
> +
> +SECCOMP-BPF Sandbox does not work due to unexpected FUTEX_UNLOCK_PI call
> +from the pthread implementation
> +Disable this feature temporarily until those issues are resolved.
> +
> +Upstream-Status: Inappropriate [HACK]
> +
> +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
prev parent reply other threads:[~2017-05-25 21:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-25 21:09 [morty/master][PATCH v2] qtwebengine: add patches as workarond of the following three issues Eric Ruei
2017-05-25 21:13 ` Denys Dmytriyenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170525211325.GJ28136@edge \
--to=denys@ti.com \
--cc=e-ruei1@ti.com \
--cc=meta-arago@arago-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.