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 <[email protected]>
> ---
>  ...-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 <[email protected]>
> +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 <[email protected]>
> +---
> + 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 <[email protected]>
> +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 <[email protected]>
> +---
> + 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 <[email protected]>
> +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 <[email protected]>
> +---
> + 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
> [email protected]
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to