- 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

Reply via email to