From a7f06b7821f788f77ae5e0f2822480f85e338ad1 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 10 Sep 2015 21:18:07 +0300 Subject: webkitgtk: add a new recipe for latest upstream version 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. Signed-off-by: Alexander Kanavin Signed-off-by: Ross Burton --- ...fixes-a-command-line-that-is-too-long-ove.patch | 91 ++++++++++++++++++++++ meta/recipes-sato/webkit/webkitgtk_2.8.5.bb | 57 ++++++++++++++ 2 files changed, 148 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 0000000000..28b3420537 --- /dev/null +++ b/meta/recipes-sato/webkit/files/0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch @@ -0,0 +1,91 @@ +From 22d5063c551d3c08c0a4ad8b80e08b793d53093d Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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] +Signed-off-by: Alexander Kanavin + +--- + 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 0000000000..365f20bbb8 --- /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/*" + -- cgit 1.2.3-korg