[OE-core] [PATCH] webkitgtk: add a new recipe for latest upstream version

Alexander Kanavin alexander.kanavin at linux.intel.com
Thu Sep 10 18:18:07 UTC 2015


Also, add a backported patch that prevents too long command lines from happening.

Recipe for the obsolete webkit-gtk 1.8.3 is removed in a separate commit.

(From OE-Core rev: 1ffa1c36f5d3d3f076840c9239c17f13f36064c3)

Signed-off-by: Alexander Kanavin <alexander.kanavin at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 ...fixes-a-command-line-that-is-too-long-ove.patch | 89 ++++++++++++++++++++++
 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb        | 57 ++++++++++++++
 2 files changed, 146 insertions(+)
 create mode 100644 meta/recipes-sato/webkit/files/0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch
 create mode 100644 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb

diff --git a/meta/recipes-sato/webkit/files/0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch b/meta/recipes-sato/webkit/files/0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch
new file mode 100644
index 0000000..ee9c807
--- /dev/null
+++ b/meta/recipes-sato/webkit/files/0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch
@@ -0,0 +1,89 @@
+From 22d5063c551d3c08c0a4ad8b80e08b793d53093d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin at gmail.com>
+Date: Thu, 10 Sep 2015 16:23:27 +0300
+Subject: [PATCH] This patch fixes a command line that is too long (over 100K!)
+ and is rejected by /bin/sh.
+
+Upstream-status: Backport [should appear in 2.10, http://trac.webkit.org/changeset/184856]
+---
+ Source/WebKit2/PlatformGTK.cmake                   | 11 ++++++-----
+ Tools/gtk/generate-inspector-gresource-manifest.py | 16 ++++++++++++----
+ 2 files changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
+index a13af7c..058c241 100644
+--- a/Source/WebKit2/PlatformGTK.cmake
++++ b/Source/WebKit2/PlatformGTK.cmake
+@@ -408,7 +408,7 @@ set(WebKit2WebExtension_INSTALLED_HEADERS
+     ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h
+ )
+ 
+-file(GLOB InspectorFiles
++set(InspectorFiles
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/*.html
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Base/*.js
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Controllers/*.css
+@@ -423,13 +423,14 @@ file(GLOB InspectorFiles
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Views/*.js
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Images/gtk/*.png
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Images/gtk/*.svg
+-)
+-
+-list(APPEND InspectorFiles
+     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
+     ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol/InspectorBackendCommands.js
+ )
+ 
++file(GLOB InspectorFilesDependencies
++    ${InspectorFiles}
++)
++
+ # This is necessary because of a conflict between the GTK+ API WebKitVersion.h and one generated by WebCore.
+ list(INSERT WebKit2_INCLUDE_DIRECTORIES 0
+     "${FORWARDING_HEADERS_WEBKIT2GTK_DIR}"
+@@ -564,7 +565,7 @@ add_custom_command(
+ 
+ add_custom_command(
+     OUTPUT ${DERIVED_SOURCES_WEBKIT2GTK_DIR}/InspectorGResourceBundle.xml
+-    DEPENDS ${InspectorFiles}
++    DEPENDS ${InspectorFilesDependencies}
+             ${TOOLS_DIR}/gtk/generate-inspector-gresource-manifest.py
+     COMMAND ${TOOLS_DIR}/gtk/generate-inspector-gresource-manifest.py --output=${DERIVED_SOURCES_WEBKIT2GTK_DIR}/InspectorGResourceBundle.xml ${InspectorFiles}
+     VERBATIM
+diff --git a/Tools/gtk/generate-inspector-gresource-manifest.py b/Tools/gtk/generate-inspector-gresource-manifest.py
+index 0687c4c..03060cf 100755
+--- a/Tools/gtk/generate-inspector-gresource-manifest.py
++++ b/Tools/gtk/generate-inspector-gresource-manifest.py
+@@ -16,6 +16,7 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ 
+ import argparse
++import glob
+ import os
+ import sys
+ 
+@@ -26,10 +27,17 @@ BASE_DIR = 'WebInspectorUI/'
+ def get_filenames(args):
+     filenames = []
+ 
+-    for filename in args:
+-        base_dir_index = filename.rfind(BASE_DIR)
+-        if base_dir_index != -1:
+-            filenames.append(filename[base_dir_index + len(BASE_DIR):])
++    for pattern in args:
++        paths = glob.glob(pattern)
++        for filename in paths:
++            base_dir_index = filename.rfind(BASE_DIR)
++            if base_dir_index != -1:
++                name = filename[base_dir_index + len(BASE_DIR):]
++                # The result should use forward slashes, thus make sure any os-specific
++                # separator, added by the glob.glob() call, is properly replaced
++                if os.sep != '/':
++                    name = name.replace(os.sep, '/')
++                filenames.append(name)
+     return filenames
+ 
+ 
+-- 
+2.1.4
+
diff --git a/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
new file mode 100644
index 0000000..365f20b
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
@@ -0,0 +1,57 @@
+SUMMARY = "WebKit web rendering engine for the GTK+ platform"
+HOMEPAGE = "http://www.webkitgtk.org/"
+BUGTRACKER = "http://bugs.webkit.org/"
+
+LICENSE = "BSD & LGPLv2+"
+LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
+                    file://Source/WebKit/LICENSE;md5=4646f90082c40bcf298c285f8bab0b12 \
+                    file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
+		    file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
+		    file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
+		   "
+
+SRC_URI = "\
+  http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
+  file://0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch \
+  "
+SRC_URI[md5sum] = "df79991848a5096d3a75289ebce547ae"
+SRC_URI[sha256sum] = "3d1f0c534935f43fd74df90f2648fcee672d60f1f57a30fa557a77891ae04d20"
+
+inherit cmake lib_package pkgconfig perlnative pythonnative
+
+DEPENDS = "zlib enchant libsoup-2.4 curl libxml2 cairo libxslt libxt libidn gnutls \
+           gtk+ gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \
+	   pango icu bison-native gnome-common gawk intltool-native libwebp \
+	   atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \
+	   ruby-native libsecret libnotify gstreamer1.0-plugins-bad \
+          "
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)}"
+
+EXTRA_OECMAKE = " \
+		-DPORT=GTK \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DENABLE_INTROSPECTION=False \
+		-DENABLE_MINIBROWSER=True \
+	        ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '-DENABLE_WEBGL=True', '-DENABLE_WEBGL=False', d)} \
+		"
+
+# Javascript JIT is not supported on powerpc
+EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=False "
+EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=False "
+
+# ARM JIT code does not build on ARMv5/6 anymore, apparently they test only on v7 onwards
+EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=False "
+EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=False "
+
+# binutils 2.25.1 has a bug on aarch64:
+# https://sourceware.org/bugzilla/show_bug.cgi?id=18430
+EXTRA_OECMAKE_append_aarch64 = " -DUSE_LD_GOLD=False "
+
+# JIT not supported on MIPS either
+EXTRA_OECMAKE_append_mips = " -DENABLE_JIT=False "
+EXTRA_OECMAKE_append_mips64 = " -DENABLE_JIT=False "
+
+FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"
+FILES_${PN}-dbg += "${libdir}/webkit2gtk-4.0/injected-bundle/.debug/libwebkit2gtkinjectedbundle.so"
+FILES_${PN}-dbg += "${libdir}/webkitgtk/webkit2gtk-4.0/.debug/*"
+
-- 
2.1.4




More information about the Openembedded-core mailing list