Squashed 'yocto-poky/' content from commit ea562de

git-subtree-dir: yocto-poky
git-subtree-split: ea562de57590c966cd5a75fda8defecd397e6436
diff --git a/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc b/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
new file mode 100644
index 0000000..4e37ff2
--- /dev/null
+++ b/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
@@ -0,0 +1,23 @@
+SUMMARY = "Sato theme engine for GTK+"
+HOMEPAGE = "http://www.o-hand.com"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "LGPLv2.1 & LGPLv2+"
+
+SECTION = "x11/base"
+DEPENDS = "gtk+"
+RDEPENDS_gtk-theme-sato = "gtk-sato-engine"
+
+PACKAGES += "gtk-theme-sato"
+FILES_${PN} = "${libdir}/gtk-2.0/*/engines/*.so "
+FILES_${PN}-dev = "${libdir}/gtk-2.0/*/engines/*.la"
+FILES_${PN}-dbg += " ${libdir}/gtk-2.0/*/engines/.debug"
+FILES_gtk-theme-sato = "${datadir}/icons ${datadir}/themes"
+
+inherit autotools-brokensep pkgconfig
+
+do_configure_prepend() {
+	for i in `ls gtk-common`; do
+		ln -sf ../gtk-common/$i gtk2-engine/$i
+	done
+}
diff --git a/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb b/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb
new file mode 100644
index 0000000..da4d98a
--- /dev/null
+++ b/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb
@@ -0,0 +1,14 @@
+require gtk-sato-engine.inc
+
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://src/sato-utils.h;endline=24;md5=708f28cfe7fe028d497aaf4389b80b62 \
+                    file://src/sato-main.c;endline=24;md5=b5e5dddebca570275becb51b526e4c5a"
+
+SRCREV = "4740ad8d53aba4368ce3e03b06cfdc69eb86dcdc"
+PV = "0.3.3+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'qvga', '--with-mode=qvga', '',d)}"
diff --git a/meta/recipes-sato/images/core-image-sato-dev.bb b/meta/recipes-sato/images/core-image-sato-dev.bb
new file mode 100644
index 0000000..7fa69d0
--- /dev/null
+++ b/meta/recipes-sato/images/core-image-sato-dev.bb
@@ -0,0 +1,7 @@
+require core-image-sato.bb
+
+DESCRIPTION = "Image with Sato for development work. It includes everything \
+within core-image-sato plus a native toolchain, application development and \
+testing libraries, profiling and debug symbols."
+
+IMAGE_FEATURES += "dev-pkgs"
diff --git a/meta/recipes-sato/images/core-image-sato-sdk.bb b/meta/recipes-sato/images/core-image-sato-sdk.bb
new file mode 100644
index 0000000..62836f9
--- /dev/null
+++ b/meta/recipes-sato/images/core-image-sato-sdk.bb
@@ -0,0 +1,15 @@
+require core-image-sato.bb
+
+DESCRIPTION = "Image with Sato support that includes everything within \
+core-image-sato plus meta-toolchain, development headers and libraries to \
+form a standalone SDK."
+
+QT4PKG = "qt4-pkgs"
+QT4PKG_mips64 = ""
+QT4PKG_mips64n32 = ""
+
+IMAGE_FEATURES += "dev-pkgs tools-sdk ${QT4PKG} \
+	tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks ssh-server-openssh"
+
+IMAGE_INSTALL += "kernel-devsrc"
+
diff --git a/meta/recipes-sato/images/core-image-sato.bb b/meta/recipes-sato/images/core-image-sato.bb
new file mode 100644
index 0000000..e3246d2
--- /dev/null
+++ b/meta/recipes-sato/images/core-image-sato.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Image with Sato, a mobile environment and visual style for \
+mobile devices. The image supports X11 with a Sato theme, Pimlico \
+applications, and contains terminal, editor, and file manager."
+
+IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear hwcodecs"
+
+LICENSE = "MIT"
+
+inherit core-image
+
+IMAGE_INSTALL += "packagegroup-core-x11-sato-games"
diff --git a/meta/recipes-sato/leafpad/files/leafpad.desktop b/meta/recipes-sato/leafpad/files/leafpad.desktop
new file mode 100644
index 0000000..c7e2d5b
--- /dev/null
+++ b/meta/recipes-sato/leafpad/files/leafpad.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Notes
+Exec=/usr/bin/leafpad
+Comment=Text Editor
+Icon=accessories-text-editor
+Terminal=false
+Type=Application
+Categories=GTK;Utility;TextEditor;
+X-MB-SingleInstance=true
+StartupNotify=true
diff --git a/meta/recipes-sato/leafpad/files/owl-menu.patch b/meta/recipes-sato/leafpad/files/owl-menu.patch
new file mode 100644
index 0000000..2ebf74a
--- /dev/null
+++ b/meta/recipes-sato/leafpad/files/owl-menu.patch
@@ -0,0 +1,63 @@
+Upstream-Status: Inappropriate [enable feature]
+
+--- tmp/src/menu.c.orig	2007-04-23 12:08:41.000000000 +0100
++++ tmp/src/menu.c	2007-04-23 12:08:41.000000000 +0100
+@@ -152,7 +152,7 @@
+ 	}
+ 	
+ 	accel_group = gtk_accel_group_new();
+-	ifactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group);
++	ifactory = gtk_item_factory_new(GTK_TYPE_MENU, "<main>", accel_group);
+ 	gtk_item_factory_set_translate_func(ifactory, menu_translate, NULL, NULL);
+ 	gtk_item_factory_create_items(ifactory, nmenu_items, menu_items, NULL);
+ 	gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
+
+--- tmp/src/window.c.orig	2007-04-23 12:14:07.000000000 +0100
++++ tmp/src/window.c	2007-04-23 12:14:07.000000000 +0100
+@@ -18,6 +18,8 @@
+  */
+ 
+ #include "leafpad.h"
++#include <libowl/owlwindowmenu.h>
++
+ /*
+ static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view)
+ {
+@@ -52,7 +54,6 @@
+ 	gtk_container_add(GTK_CONTAINER(window), vbox);
+ 	
+ 	menubar = create_menu_bar(window);
+-	gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
+ 	
+ 	sw = gtk_scrolled_window_new(NULL, NULL);
+ 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
+
+--- tmp/src/main.c.orig	2007-04-23 12:15:03.000000000 +0100
++++ tmp/src/main.c	2007-04-23 12:15:03.000000000 +0100
+@@ -244,6 +244,7 @@
+ 	Conf *conf;
+ 	GtkItemFactory *ifactory;
+ 	gchar *stdin_data = NULL;
++	GtkWidget *menu;
+ 	
+ 	bindtextdomain(PACKAGE, LOCALEDIR);
+ 	bind_textdomain_codeset(PACKAGE, "UTF-8");
+@@ -293,7 +294,10 @@
+ 		conf->autoindent);
+ 	
+ 	gtk_widget_show_all(pub->mw->window);
++	owl_set_window_menu (GTK_WINDOW(pub->mw->window),
++			     GTK_MENU(pub->mw->menubar));
++	
+ 	g_free(conf->fontname);
+ 	g_free(conf);
+ 	
+
+--- tmp/src/Makefile.am.orig	2007-04-23 12:17:54.000000000 +0100
++++ tmp/src/Makefile.am	2007-04-23 12:17:54.000000000 +0100
+@@ -27,4 +27,4 @@
+ 	i18n.h
+ 
+ leafpad_CFLAGS  = $(GTK_CFLAGS) $(GNOMEPRINT_CFLAGS)
+-leafpad_LDADD   = $(GTK_LIBS) $(INTLLIBS) $(GNOMEPRINT_LIBS)
++leafpad_LDADD   = $(GTK_LIBS) $(INTLLIBS) $(GNOMEPRINT_LIBS) -lowl
diff --git a/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb b/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb
new file mode 100644
index 0000000..f715149
--- /dev/null
+++ b/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Simple GTK+ Text Editor"
+HOMEPAGE = "http://tarot.freeshell.org/leafpad/"
+
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://src/leafpad.h;endline=20;md5=d3d6a89f5e61e8b13bdea537511ba1fa \
+                    file://src/utils.c;endline=20;md5=0d2cc6584ba3202448bb274f62739571"
+
+DEPENDS = "gtk+ intltool-native libowl"
+# The libowl requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+	   file://leafpad.desktop"
+
+SRC_URI[md5sum] = "254a72fc67505e3aa52884c729cd7b97"
+SRC_URI[sha256sum] = "959d22ae07f22803bc66ff40d373a854532a6e4732680bf8a96a3fbcb9f80a2c"
+PR = "r2"
+
+SRC_URI_append_poky = " file://owl-menu.patch;apply=yes "
+
+inherit autotools pkgconfig distro_features_check
+
+EXTRA_OECONF = " --enable-chooser --disable-emacs --disable-print"
+
+do_install_append () {
+        install -d ${D}/${datadir}
+        install -d ${D}/${datadir}/applications
+        install -m 0644 ${WORKDIR}/leafpad.desktop ${D}/${datadir}/applications
+}
+
+FILES_${PN} += "${datadir}/applications/leafpad.desktop"
+
+PACKAGES += "leafpad-stock-icons"
+FILES_leafpad-stock-icons = "${datadir}/icons/hicolor/"
diff --git a/meta/recipes-sato/libowl/libowl_git.bb b/meta/recipes-sato/libowl/libowl_git.bb
new file mode 100644
index 0000000..9cc47db
--- /dev/null
+++ b/meta/recipes-sato/libowl/libowl_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenedHand Widget Library"
+HOMEPAGE = "http://www.o-hand.com"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2 & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://libowl/owlpaned.h;endline=20;md5=7fef844c4cc01b10541a7ab6ab5971af \
+                    file://libowl/owltreemodelslice.h;endline=20;md5=a5421f2cdae8debe5e4c48c09a02beb9 \
+                    file://libowl/owlcolourswatch.h;endline=24;md5=063c415c58719d536990ca8f606b5730"
+
+SECTION = "libs"
+DEPENDS = "gtk+"
+SRCREV = "6ebc8ac8f8575278dd40a535cadefa26374e44b1"
+PV = "0.1+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+# Requires gdk/gdkx.h which is provided by gtk when x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch b/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch
new file mode 100644
index 0000000..8256949
--- /dev/null
+++ b/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch
@@ -0,0 +1,35 @@
+Upstream-Status: Inappropriate [configuration]
+
+Index: appearance/mb-appearance.c
+===================================================================
+--- appearance/mb-appearance.c	(revision 1614)
++++ appearance/mb-appearance.c	(working copy)
+@@ -300,11 +300,13 @@
+     gtk_font_button_set_font_name (GTK_FONT_BUTTON (font_button),
+                                    gconf_value_get_string (value));
+   } else if (strcmp (key, HANDED_KEY) == 0) {
++#if 0
+     GEnumValue *e;
+     e = g_enum_get_value_by_name (g_type_class_ref (GTK_TYPE_CORNER_TYPE),
+                                   gconf_value_get_string (value));
+     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (handed_check),
+                                   e->value == GTK_CORNER_TOP_RIGHT);
++#endif
+   }
+ }
+ 
+@@ -395,12 +397,13 @@
+   gtk_container_add (GTK_CONTAINER (align), font_button);
+ 
+   /* Left/Right Handed */
+-  
++#if 0
+   frame = new_frame (_("Orientation"), &align);
+   gtk_box_pack_start (GTK_BOX (box), frame, TRUE, TRUE, 0);
+   handed_check = gtk_check_button_new_with_mnemonic (_("_Left-handed"));
+   g_signal_connect (handed_check, "toggled", G_CALLBACK (on_handed_set), NULL);
+   gtk_container_add (GTK_CONTAINER (align), handed_check);
++#endif
+ 
+   gconf_client_add_dir (gconf, INTERFACE_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+   g_signal_connect (gconf, "value-changed", G_CALLBACK (on_gconf_value_changed), NULL);
diff --git a/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb
new file mode 100644
index 0000000..5f73a4c
--- /dev/null
+++ b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Matchbox GTK+ theme configuration application"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://appearance/mb-appearance.c;endline=25;md5=ea92333cf8a6802639d62d874c114a28"
+
+DEPENDS = "gconf gtk+"
+RDEPENDS_${PN} = "settings-daemon"
+
+SRCREV = "3ed74dfb7c57be088a5ab36e446c0ccde9fa1028"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN} \
+        file://no-handed.patch;striplevel=0"
+
+inherit autotools pkgconfig distro_features_check
+
+# The settings-daemon requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb b/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb
new file mode 100644
index 0000000..1979cbb
--- /dev/null
+++ b/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Matchbox desktop folders for the Sato environment"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SECTION = "x11"
+DEPENDS = ""
+RCONFLICTS_${PN} = "matchbox-common"
+
+SRCREV = "810b0b08eb79e4685202da2ec347b990bb467e07"
+PV = "0.1+git${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir}"
diff --git a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
new file mode 100644
index 0000000..318d2e0
--- /dev/null
+++ b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Matchbox Window Manager Desktop"
+HOMEPAGE = "http://matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://libtaku/eggsequence.h;endline=20;md5=b91f68f7642a1459fa1f4c9df94a8f15 \
+                    file://src/desktop.c;endline=20;md5=36c9bf295e6007f3423095f405af5a2d \
+                    file://src/main.c;endline=19;md5=2044244f97a195c25b7dc602ac7e9a00"
+
+DEPENDS = "gtk+ startup-notification dbus"
+SECTION = "x11/wm"
+SRCREV = "71e3e6e04271e9d5a14f1c231ef100c7f320134d"
+PV = "2.0+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}-2"
+
+EXTRA_OECONF = "--enable-startup-notification --with-dbus"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+# The startup-notification requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh b/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
new file mode 100644
index 0000000..6cf188b
--- /dev/null
+++ b/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+CMD=""
+
+if [ "$HAVE_KEYBOARD" = "0" ]; then
+    CMD="matchbox-keyboard -d"
+elif [ "$DISPLAY_CAN_ROTATE" = "1" ]; then
+    if [ "$HAVE_KEYBOARD_PORTRAIT" = "1" -a "$HAVE_KEYBOARD_LANDSCAPE" = "0" ]; then
+        CMD="matchbox-keyboard -d -o landscape"
+    elif [ "$HAVE_KEYBOARD_LANDSCAPE" = "1" -a "$HAVE_KEYBOARD_PORTRAIT" = "0" ]; then
+        CMD="matchbox-keyboard -d -o portrait"
+    fi
+fi
+
+if [ "$CMD" ]; then
+    # Delay to make sure the window manager is active
+    # by waiting for the desktop to say its finished loading
+    dbus-wait org.matchbox_project.desktop Loaded && $CMD &
+fi
diff --git a/meta/recipes-sato/matchbox-keyboard/files/single-instance.patch b/meta/recipes-sato/matchbox-keyboard/files/single-instance.patch
new file mode 100644
index 0000000..18b6c41
--- /dev/null
+++ b/meta/recipes-sato/matchbox-keyboard/files/single-instance.patch
@@ -0,0 +1,23 @@
+Multiple matchbox-keyboard instances would occupy whole screen and cause X
+window segfault(Bug 509). Making matchbox-keyboard singleton is one work
+around.
+
+This patch allow only one instance of matchbox-keyboard based on some mechanism
+in matchbox-desktop. In future, an applet and GTK-IM modules in
+matchbox-keyboard can be used to automatically map/unmap the virtual keyboard
+on demand.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: matchbox-keyboard/matchbox-keyboard.desktop
+===================================================================
+--- matchbox-keyboard.orig/matchbox-keyboard.desktop	2010-12-22 20:41:40.000000000 +0800
++++ matchbox-keyboard/matchbox-keyboard.desktop	2010-12-22 20:42:12.000000000 +0800
+@@ -6,3 +6,5 @@
+ Icon=matchbox-keyboard.png
+ Categories=Panel;Utility;MB
+ X-MB-INPUT-MECHANSIM=True
++X-MB-SingleInstance=true
++StartupNotify=true
diff --git a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
new file mode 100644
index 0000000..0d321d3
--- /dev/null
+++ b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Matchbox virtual keyboard for X11"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+SECTION = "x11"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://src/matchbox-keyboard.h;endline=17;md5=9d6586c69e4a926f3cb0b4425f24ba3c \
+                    file://applet/applet.c;endline=18;md5=4a0f721724746b14d95b51ddd42b95e7"
+
+DEPENDS = "libfakekey expat libxft gtk+ matchbox-panel-2"
+
+SRCREV = "217f1bfe14c41cf7e291d04a63aa2d79cc13d063"
+PV = "0.0+git${SRCPV}"
+PR = "r4"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
+           file://single-instance.patch \
+           file://80matchboxkeyboard.sh"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check
+
+# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--disable-cairo --enable-gtk-im --enable-applet"
+
+PACKAGES += "${PN}-im ${PN}-applet"
+
+FILES_${PN} = "${bindir}/ \
+	       ${sysconfdir} \
+	       ${datadir}/applications \
+	       ${datadir}/pixmaps \
+	       ${datadir}/matchbox-keyboard"
+
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/immodules/.debug"
+
+FILES_${PN}-im = "${libdir}/gtk-2.0/*/immodules/*.so"
+
+FILES_${PN}-applet = "${libdir}/matchbox-panel/*.so"
+
+
+do_install_append () {
+	install -d ${D}/${sysconfdir}/X11/Xsession.d/
+	install -m 755 ${WORKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
+
+	rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
+	rm -f ${D}${libdir}/matchbox-panel/*.la
+}
+
+GTKIMMODULES_PACKAGES = "${PN}-im"
+
+RDEPENDS_${PN} = "formfactor dbus-wait"
+RRECOMMENDS_${PN} = "${PN}-applet"
diff --git a/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch b/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch
new file mode 100644
index 0000000..45ba9a0
--- /dev/null
+++ b/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch
@@ -0,0 +1,64 @@
+Don't warn if the machine doesn't actually have a battery, or if the applets
+string contains consecutive separators.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/applets/battery/battery-acpi.c b/applets/battery/battery-acpi.c
+index 6515cb0..c44dd12 100644
+--- a/applets/battery/battery-acpi.c
++++ b/applets/battery/battery-acpi.c
+@@ -14,8 +14,6 @@ int batt_state, ac_state;
+ int pm_support(void)
+ {
+ 	if(check_acpi_support() == NOT_SUPPORTED){
+-		g_warning("No ACPI support\n");
+-
+ 		return 0;
+ 	}
+ 
+@@ -32,8 +30,9 @@ const char* pm_battery_icon(void)
+ 	const char *icon;
+ 	battery_t *binfo;
+ 
++        /* No battery available (not present, disabled, or something
++           else. Silently do nothing. */
+ 	if (batt_state != SUCCESS) {
+-		g_warning("Couldnt initialize ACPI battery\n");
+ 		return NULL;
+ 	}
+ 
+diff --git a/applets/battery/battery-apm.c b/applets/battery/battery-apm.c
+index 5467438..2f39cb6 100644
+--- a/applets/battery/battery-apm.c
++++ b/applets/battery/battery-apm.c
+@@ -10,8 +10,6 @@
+ int pm_support(void)
+ {
+ 	if (1 == apm_exists ()) {
+-                g_warning ("No APM support");
+-
+                 return 0;
+         }
+ 
+diff --git a/matchbox-panel/mb-panel.c b/matchbox-panel/mb-panel.c
+index 2d8cafd..828a36d 100644
+--- a/matchbox-panel/mb-panel.c
++++ b/matchbox-panel/mb-panel.c
+@@ -110,10 +110,15 @@ load_applets (const char    *applets_desc,
+         applets = g_strsplit (applets_desc, ",", -1);
+ 
+         for (i = 0; applets[i]; i++) {
++                char *s;
+                 char **bits;
+                 GtkWidget *applet;
+ 
+-                bits = g_strsplit (applets[i], ":", 2);
++                s = applets[i];
++                if (s == NULL || s[0] == '\0')
++                        continue;
++
++                bits = g_strsplit (s, ":", 2);
+ 
+                 applet = load_applet (bits[0],
+                                       bits[1],
diff --git a/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb
new file mode 100644
index 0000000..4ed7368
--- /dev/null
+++ b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Simple GTK+ based panel for handheld devices"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://matchbox-panel/mb-panel.h;endline=10;md5=0b7db28f4b6863fb853d0467e590019a \
+                    file://applets/startup/startup.c;endline=22;md5=b0a64fbef3097d79f8264e6907a98f03"
+
+DEPENDS = "gnome-common gtk+ startup-notification dbus dbus-glib"
+DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}"
+DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "apmd", "",d)}"
+
+# The startup-notification requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRCREV = "26a3a67b41c50e0ae163d8fe86ccf7a0f0a671ae"
+PV = "2.0+git${SRCPV}"
+
+RPROVIDES_${PN} = "matchbox-panel"
+RREPLACES_${PN} = "matchbox-panel"
+RCONFLICTS_${PN} = "matchbox-panel"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN} \
+           file://silence-warnings.patch"
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dbus"
+EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}"
+EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "--with-battery=apm", "",d)}"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${libdir}/matchbox-panel/*.so \
+                ${datadir}/matchbox-panel/brightness/*.png \
+                ${datadir}/matchbox-panel/startup/*.png "
+FILES_${PN}-dbg += "${libdir}/matchbox-panel/.debug"
+FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la"
+
+inherit autotools pkgconfig distro_features_check
diff --git a/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session b/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session
new file mode 100644
index 0000000..42ce483
--- /dev/null
+++ b/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+. /etc/formfactor/config
+
+if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
+    SHOWCURSOR="no"
+else
+    SHOWCURSOR="yes"
+fi
+
+if [ "$HAVE_KEYBOARD" = "1" ]; then
+    KEYBOARD_APPLET=""
+else
+    KEYBOARD_APPLET="keyboard"
+fi
+
+# Tell GTK+3 we really want server side decorations, even with
+# GtkHeaderBar using applications: Without that mb-panel will render
+# on top of the client side decorations.
+export GTK_CSD=0
+
+matchbox-desktop &
+
+# Lines containing feature-[foo] are removed at build time if the machine
+# doesn't have the feature "foo".
+
+START_APPLETS=showdesktop,windowselector
+END_APPLETS=clock,battery,$KEYBOARD_APPLET,systray,startup-notify,notify
+END_APPLETS=openmoko-panel-gsm,$END_APPLETS # feature-phone
+
+matchbox-panel --titlebar --start-applets $START_APPLETS --end-applets $END_APPLETS &
+
+exec matchbox-window-manager -theme Sato -use_desktop_mode decorated -use_cursor $SHOWCURSOR $@
diff --git a/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
new file mode 100644
index 0000000..76de18a
--- /dev/null
+++ b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Custom Matchbox session files for the Sato environment"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2.0+"
+LIC_FILES_CHKSUM = "file://session;endline=3;md5=f8a5c5b9c279e52dc094d10e11c2be63"
+
+SECTION = "x11"
+DEPENDS = "gconf-native"
+RDEPENDS_${PN} = "formfactor gtk-sato-engine matchbox-theme-sato gtk-theme-sato matchbox-panel-2 matchbox-desktop-sato matchbox-session gconf"
+PR = "r30"
+
+# This package is architecture specific because the session script is modified
+# based on the machine architecture.
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit distro_features_check
+
+# The matchbox-theme-sato requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "file://session"
+S = "${WORKDIR}"
+
+do_install() {
+	# This is the set of machine features that the script has markers for
+	FEATURES="phone"
+	SCRIPT="${S}/sedder"
+	rm -f $SCRIPT
+	touch $SCRIPT
+	for FEAT in $FEATURES; do
+		if echo ${MACHINE_FEATURES} | awk "/$FEAT/ {exit 1}"; then
+			echo "/feature-$FEAT/d" >> $SCRIPT
+		fi
+	done
+
+	install -d ${D}/${sysconfdir}/matchbox
+	sed -f "$SCRIPT" ${S}/session > ${D}/${sysconfdir}/matchbox/session
+        chmod +x ${D}/${sysconfdir}/matchbox/session
+}
+
+pkg_postinst_${PN} () {
+	set_value() {
+		#type, name, value
+		gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type $1 --set /desktop/poky/interface/$2 "$3"
+	}
+	set_value string theme Sato
+	set_value string icon_theme Sato
+	set_value bool touchscreen true
+	set_value string font_name "Sans 9"
+}
diff --git a/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb
new file mode 100644
index 0000000..91fd150
--- /dev/null
+++ b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Lightweight GTK+ terminal application"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://main.c;endline=20;md5=96e39176d9e355639a0b8b1c7a840820"
+
+DEPENDS = "gtk+ vte"
+SECTION = "x11/utils"
+SRCREV = "452bca253492a97a587f440289b9ab27d217353e"
+PV = "0.0+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
new file mode 100644
index 0000000..d947e1a
--- /dev/null
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
@@ -0,0 +1,16 @@
+SUMMARY = "Matchbox window manager Sato themes"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4"
+
+DEPENDS = "matchbox-wm"
+SECTION = "x11/wm"
+
+inherit autotools pkgconfig distro_features_check
+
+FILES_${PN} += "${datadir}/themes"
+
+# The matchbox-wm requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
new file mode 100644
index 0000000..f6786dd
--- /dev/null
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
@@ -0,0 +1,8 @@
+require matchbox-theme-sato.inc
+
+PR = "r1"
+
+SRC_URI = "http://pokylinux.org/releases/sato/matchbox-theme-sato-0.1.tar.gz"
+
+SRC_URI[md5sum] = "72ae272ef7803141a3dcb69e670cff97"
+SRC_URI[sha256sum] = "5b59f9646edbfb907a309332db3bd6fa7080dc1fe24df549480cfae7d974a3fb"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb
new file mode 100644
index 0000000..0d3569d
--- /dev/null
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb
@@ -0,0 +1,12 @@
+require matchbox-theme-sato.inc
+
+SRCREV = "f72cf4ed7d71ad9e47b0f2d3dbc593bc2f3e76f8"
+PV = "0.2+git${SRCPV}"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "git://git.yoctoproject.org/matchbox-sato"
+
+EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'qvga', '--with-mode=qvga', '',d)}"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
new file mode 100644
index 0000000..6679db8
--- /dev/null
+++ b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2007-2008 OpenedHand Ltd.
+#
+
+SUMMARY = "Sato desktop"
+LICENSE = "MIT"
+PR = "r33"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup distro_features_check
+# rdepends on x11vnc
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGES = "${PN} ${PN}-base ${PN}-apps ${PN}-games"
+
+RDEPENDS_${PN} = "\
+    ${PN}-base \
+    ${PN}-apps \
+    ${PN}-games \
+    "
+
+NETWORK_MANAGER ?= "connman-gnome"
+NETWORK_MANAGER_libc-uclibc = ""
+
+SUMMARY_${PN}-base = "Sato desktop - base packages"
+RDEPENDS_${PN}-base = "\
+    matchbox-desktop \
+    matchbox-session-sato \
+    matchbox-keyboard \
+    matchbox-keyboard-applet \
+    matchbox-keyboard-im \
+    matchbox-config-gtk \
+    xcursor-transparent-theme \
+    sato-icon-theme \
+    settings-daemon \
+    gtk-sato-engine \
+    shutdown-desktop \
+    libsdl \
+    ${NETWORK_MANAGER} \
+    udev-extraconf \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio-server pulseaudio-client-conf-sato', '', d)} \
+    "
+
+# pcmanfm doesn't work on mips
+FILEMANAGER ?= "pcmanfm"
+FILEMANAGER_mips ?= ""
+
+WEB ?= ""
+#WEB = "epiphany"
+
+SUMMARY_${PN}-apps = "Sato desktop - applications"
+RDEPENDS_${PN}-apps = "\
+    leafpad \
+    gst-player-bin \
+    x11vnc \
+    matchbox-terminal \
+    sato-screenshot \
+    ${FILEMANAGER} \
+    ${WEB} \
+    "
+
+SUMMARY_${PN}-games = "Sato desktop - games"
+RDEPENDS_${PN}-games = "\
+    oh-puzzles \
+    "
diff --git a/meta/recipes-sato/pcmanfm/files/emblem-symbolic-link.png b/meta/recipes-sato/pcmanfm/files/emblem-symbolic-link.png
new file mode 100644
index 0000000..b8e5594
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/files/emblem-symbolic-link.png
Binary files differ
diff --git a/meta/recipes-sato/pcmanfm/files/gnome-fs-directory.png b/meta/recipes-sato/pcmanfm/files/gnome-fs-directory.png
new file mode 100644
index 0000000..05921a6
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/files/gnome-fs-directory.png
Binary files differ
diff --git a/meta/recipes-sato/pcmanfm/files/gnome-fs-regular.png b/meta/recipes-sato/pcmanfm/files/gnome-fs-regular.png
new file mode 100644
index 0000000..ce77a8e
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/files/gnome-fs-regular.png
Binary files differ
diff --git a/meta/recipes-sato/pcmanfm/files/gnome-mime-text-plain.png b/meta/recipes-sato/pcmanfm/files/gnome-mime-text-plain.png
new file mode 100644
index 0000000..bfe4bad
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/files/gnome-mime-text-plain.png
Binary files differ
diff --git a/meta/recipes-sato/pcmanfm/files/no-desktop.patch b/meta/recipes-sato/pcmanfm/files/no-desktop.patch
new file mode 100644
index 0000000..103d6d1
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/files/no-desktop.patch
@@ -0,0 +1,15 @@
+Disable the desktop preferences launcher as we don't use the pcmanfm desktop in
+Sato.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/data/pcmanfm-desktop-pref.desktop b/data/pcmanfm-desktop-pref.desktop
+index ccf8abb..3f6fc1c 100644
+--- a/data/pcmanfm-desktop-pref.desktop.in
++++ b/data/pcmanfm-desktop-pref.desktop.in
+@@ -7,3 +7,4 @@ Exec=pcmanfm --desktop-pref
+ StartupNotify=true
+ Terminal=false
+ NotShowIn=GNOME;XFCE;KDE;
++NoDisplay=true
diff --git a/meta/recipes-sato/pcmanfm/pcmanfm_1.2.3.bb b/meta/recipes-sato/pcmanfm/pcmanfm_1.2.3.bb
new file mode 100644
index 0000000..4467303
--- /dev/null
+++ b/meta/recipes-sato/pcmanfm/pcmanfm_1.2.3.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Fast lightweight tabbed filemanager"
+HOMEPAGE = "http://pcmanfm.sourceforge.net/"
+
+LICENSE = "GPLv2 & GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+                    file://src/pcmanfm.h;endline=22;md5=417b3855771a3a87f8ad753d994491f0 \
+                    file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
+
+SECTION = "x11"
+DEPENDS = "gtk+ startup-notification libfm intltool-native"
+DEPENDS_append_poky = " libowl"
+
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*|aarch64.*|arm.*|mips.*|powerpc.*|sh.*)-(linux|freebsd.*)'
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.xz \
+	   file://gnome-fs-directory.png \
+	   file://gnome-fs-regular.png \
+	   file://gnome-mime-text-plain.png \
+	   file://emblem-symbolic-link.png \
+	   file://no-desktop.patch"
+
+SRC_URI[md5sum] = "c993402d407b0a3fc076f842ac1bc5c9"
+SRC_URI[sha256sum] = "cfa8d82fc63be147045174bef074807e1e32ce8c6bf4dbd8fad49e260bcf6380"
+
+inherit autotools pkgconfig distro_features_check
+
+# The startup-notification requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append () {
+	install -d ${D}/${datadir}
+	install -d ${D}/${datadir}/pixmaps/
+
+	install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
+}
+
+FILES_${PN} += "${libdir}/pcmanfm"
+
+RRECOMMENDS_${PN} += "adwaita-icon-theme"
diff --git a/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato/50-sato.conf b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato/50-sato.conf
new file mode 100644
index 0000000..97492e7
--- /dev/null
+++ b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato/50-sato.conf
@@ -0,0 +1,7 @@
+# We rely on PulseAudio's autospawn feature to automatically start the daemon
+# in Sato. The graphical session in Sato runs under root, however, and
+# PulseAudio disables autospawning for root by default. In a normal setup it's
+# not desirable to autospawn for root, because it can easily interfere with
+# other users' PulseAudio instances, but in Sato there are no other users, so
+# it's OK to enable this in Sato.
+allow-autospawn-for-root = yes
diff --git a/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb
new file mode 100644
index 0000000..e27339f
--- /dev/null
+++ b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "/etc/pulse/client.conf tailored for Sato"
+SECTION = "multimedia"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://50-sato.conf"
+S = "${WORKDIR}"
+
+inherit allarch
+
+do_install() {
+	install -d ${D}${sysconfdir}/pulse/client.conf.d
+	install -m 0644 ${S}/50-sato.conf ${D}${sysconfdir}/pulse/client.conf.d/50-sato.conf
+}
+
+FILES_${PN} = "${sysconfdir}/pulse/client.conf.d/50-sato.conf"
+CONFFILES_${PN} = "${sysconfdir}/pulse/client.conf.d/50-sato.conf"
diff --git a/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch b/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch
new file mode 100644
index 0000000..f43d1df
--- /dev/null
+++ b/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch
@@ -0,0 +1,46 @@
+From 9808dc09e08937c9bffd858d3ded428225a4312a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Sep 2015 09:02:38 +0000
+Subject: [PATCH] Use labs instead of abs
+
+cluevals is array of longs so we have to use labs() instead of abs()
+since abs() returns int
+
+Fixes
+
+keen.c:1458:17: error: absolute value function 'abs' given an argument
+of type 'long' but has parameter of type 'int' which may cause
+truncation of value
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ keen.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/keen.c b/keen.c
+index a6a7238..1631992 100644
+--- a/keen.c
++++ b/keen.c
+@@ -1043,7 +1043,7 @@ done
+ 		    cluevals[j] *= grid[i];
+ 		    break;
+ 		  case C_SUB:
+-		    cluevals[j] = abs(cluevals[j] - grid[i]);
++		    cluevals[j] = labs(cluevals[j] - grid[i]);
+ 		    break;
+ 		  case C_DIV:
+ 		    {
+@@ -1455,7 +1455,7 @@ static int check_errors(const game_state *state, long *errors)
+ 		cluevals[j] *= state->grid[i];
+ 		break;
+ 	      case C_SUB:
+-		cluevals[j] = abs(cluevals[j] - state->grid[i]);
++		cluevals[j] = labs(cluevals[j] - state->grid[i]);
+ 		break;
+ 	      case C_DIV:
+ 		{
+-- 
+2.5.1
+
diff --git a/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch b/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
new file mode 100644
index 0000000..d246fee
--- /dev/null
+++ b/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
@@ -0,0 +1,52 @@
+gtk.c: fix compiling failure with option -g -O
+
+There were compiling failure with option -g -O
+...
+././gtk.c: In function 'configure_area':
+././gtk.c:397:2: error: 'cr' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+  cairo_set_source_rgb(cr,
+  ^
+././gtk.c:384:14: note: 'cr' was declared here
+     cairo_t *cr;
+              ^
+././gtk.c: In function 'main':
+././gtk.c:2911:6: error: 'error' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+      fprintf(stderr, "%s: %s\n", pname, error);
+      ^
+cc1: all warnings being treated as errors
+...
+
+Initialized pointer 'cr' and 'error' with NULL
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ gtk.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gtk.c b/gtk.c
+index a2eba2c..c54bf63 100644
+--- a/gtk.c
++++ b/gtk.c
+@@ -381,7 +381,7 @@ static void clear_backing_store(frontend *fe)
+ 
+ static void setup_backing_store(frontend *fe)
+ {
+-    cairo_t *cr;
++    cairo_t *cr = NULL;
+     int i;
+ 
+     fe->pixmap = gdk_pixmap_new(fe->area->window, fe->pw, fe->ph, -1);
+@@ -2481,7 +2481,7 @@ char *fgetline(FILE *fp)
+ int main(int argc, char **argv)
+ {
+     char *pname = argv[0];
+-    char *error;
++    char *error = NULL;
+     int ngenerate = 0, print = FALSE, px = 1, py = 1;
+     int time_generation = FALSE, test_solve = FALSE, list_presets = FALSE;
+     int soln = FALSE, colour = FALSE;
+-- 
+1.9.1
+
diff --git a/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
new file mode 100644
index 0000000..7e2c3ab
--- /dev/null
+++ b/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
@@ -0,0 +1,203 @@
+This patch enable owl menu, which is hidden in the title bar to save space on
+small screen. It has not been used for a long time, rebase needed.
+
+Upstream-Status: Inappropriate [enable feature]
+
+Index: src/gtk.c
+===================================================================
+--- src/gtk.c	(revision 22)
++++ src/gtk.c	(working copy)
+@@ -28,6 +28,8 @@
+ #include <gdk/gdkx.h>
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+ 
++#include <libowl/owlwindowmenu.h>
++
+ #include <librsvg/rsvg.h>
+ 
+ #include <X11/Xlib.h>
+@@ -1237,6 +1239,7 @@
+     }
+ }
+ 
++#if 0
+ static void
+ add_widget (GtkUIManager *merge,
+ 	    GtkWidget *widget,
+@@ -1247,10 +1250,11 @@
+     gtk_box_pack_start (box, widget, FALSE, FALSE, 0);
+ 
+     toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box));
+-    gtk_widget_show_all (toplevel);
+ }
++#endif
+ 
+ static GtkActionEntry toplevel_actions[] = {
++    { "Top", NULL, "" },
+     { "Game", NULL, N_("Game") },
+     { "Settings", NULL, N_("Settings") },
+     { "Help", NULL, N_("Help") },
+@@ -1303,11 +1307,13 @@
+ 			frontend *fe)
+ {
+     GString *xml;
++    GError *error = NULL;
+     gboolean presets = FALSE;
+     GSList *radio_group = NULL;
+     int i;
+ 
+-    xml = g_string_new ("<ui><menubar><placeholder name=\"TypePlaceholder\">"
++    xml = g_string_new ("<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
++			"<placeholder name=\"TypePlaceholder\">"
+ 			"<menu name=\"SettingsMenu\" action=\"Settings\">");
+ 
+     for (i = 0; i < midend_num_presets(fe->me); i++) {
+@@ -1359,8 +1365,14 @@
+ 			 "<menuitem name=\"CustomMenu\" action=\"Custom\"/>");
+     }
+     
+-    g_string_append (xml, "</menu></placeholder></menubar></ui>");
+-    gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, NULL);
++    g_string_append (xml, "</menu></placeholder></menu></menubar></ui>");
++
++    gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, &error);
++    if (error != NULL) {
++	g_warning ("Error adding custom: %s", error->message);
++	g_error_free (error);
++    }
++
+     g_string_free (xml, TRUE);
+ }
+ 
+@@ -1434,6 +1446,7 @@
+ new_window(char *arg, char **error)
+ {
+     frontend *fe;
++    GError *err = NULL;
+     GtkBox *vbox;
+     GtkUIManager *merge;
+     GtkActionGroup *actions;
+@@ -1496,8 +1509,6 @@
+     gtk_window_add_accel_group(GTK_WINDOW(fe->window), fe->accelgroup);
+ 
+     merge = gtk_ui_manager_new ();
+-    g_signal_connect (G_OBJECT (merge), "add_widget",
+-		      G_CALLBACK (add_widget), vbox);
+ 
+     actions = gtk_action_group_new ("PuzzleActions");
+     gtk_action_group_add_actions (actions, toplevel_actions,
+@@ -1509,22 +1520,39 @@
+ 
+     gtk_ui_manager_insert_action_group (merge, actions, 0);
+     
+-    gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", NULL);
++    gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", 
++				     &err);
++    if (err != NULL) {
++	g_warning ("Error making UI: %s", err->message);
++	g_error_free (err);
++	err = NULL;
++    }
+ 
+     if (thegame.can_solve) {
+-	    char *str = "<ui><menubar><menu name=\"GameMenu\" action=\"Game\">"
++	char *str = "<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
++	    "<menu name=\"GameMenu\" action=\"Game\">"
+ 	    "<placeholder name=\"SolvePlaceholder\">"
+ 	    "<separator name=\"SolveSep\"/>"
+ 	    "<menuitem name=\"SolveMenu\" action=\"Solve\"/>"
+-	    "</placeholder></menu></menubar></ui>";
++	    "</placeholder></menu></menu></menubar></ui>";
+ 
+-	gtk_ui_manager_add_ui_from_string (merge, str, -1, NULL);
++	gtk_ui_manager_add_ui_from_string (merge, str, -1, &err);
++	if (err != NULL) {
++	    g_warning ("Error adding solve. %s", err->message);
++	    g_error_free (err);
++	}
+     }
+ 
+     if ((n = midend_num_presets(fe->me)) > 0 || thegame.can_configure) {
+ 	generate_settings_menu (merge, actions, fe);
+     }
+ 
++    /* Do this so that the menu is packed now instead of in the idle loop */
++    gtk_ui_manager_ensure_update (merge);
++
++    owl_set_window_menu_item (GTK_WINDOW (fe->window),
++			      GTK_MENU_ITEM (gtk_ui_manager_get_widget (merge, "/menubar/TopMenu")));
++    
+     setup_colours (fe);
+     setup_pixbufs (fe);
+ 
+@@ -1572,7 +1600,7 @@
+                           GDK_BUTTON_RELEASE_MASK |
+ 			  GDK_BUTTON_MOTION_MASK);
+ 
+-    /* The window is shown once the menubar has been added */
++    gtk_widget_show_all (fe->window);
+     return fe;
+ }
+ 
+Index: src/menu.xml
+===================================================================
+--- src/menu.xml	(revision 22)
++++ src/menu.xml	(working copy)
+@@ -1,26 +1,25 @@
+ <ui>
+ <menubar>
+-<menu name="GameMenu" action="Game">
+-	<menuitem name="NewMenu" action="New"/>
+-	<menuitem name="RestartMenu" action="Restart"/>
+-<!--	<menuitem name="SpecificMenu" action="Specific"/> -->
+-	<menuitem name="RandomMenu" action="Random"/>
+-	<separator name="GameSep1"/>
+-	<menuitem name="LoadMenu" action="Load"/>
+-	<menuitem name="SaveMenu" action="Save"/>
+-	<separator name="GameSep2"/>
+-	<menuitem name="UndoMenu" action="Undo"/>
+-	<menuitem name="RedoMenu" action="Redo"/>
+-	<placeholder name="CopyPlaceholder"/>
+-	<placeholder name="SolvePlaceholder"/>
+-	<separator name="GameSep3"/>
+-	<menuitem name="QuitMenu" action="Quit"/>
+-</menu>
++<menu name="TopMenu" action="Top">
++	<menu name="GameMenu" action="Game">
++		<menuitem name="NewMenu" action="New"/>
++		<menuitem name="RestartMenu" action="Restart"/>
++	<!--	<menuitem name="SpecificMenu" action="Specific"/> -->
++		<menuitem name="RandomMenu" action="Random"/>
++		<separator name="GameSep1"/>
++		<menuitem name="LoadMenu" action="Load"/>
++		<menuitem name="SaveMenu" action="Save"/>
++		<separator name="GameSep2"/>
++		<menuitem name="UndoMenu" action="Undo"/>
++		<menuitem name="RedoMenu" action="Redo"/>
++		<placeholder name="CopyPlaceholder"/>
++		<placeholder name="SolvePlaceholder"/>
++	</menu>
+ 
+-<placeholder name="TypePlaceholder"/>
+-
+-<menu name="HelpMenu" action="Help">
++	<placeholder name="TypePlaceholder"/>
+ 	<menuitem name="AboutMenu" action="About"/>
++	<menuitem name="QuitMenu" action="Quit"/>
++
+ </menu>
+ </menubar>
+ </ui>
+Index: src/Makefile.am
+===================================================================
+--- src/Makefile.am	(revision 22)
++++ src/Makefile.am	(working copy)
+@@ -10,7 +10,7 @@
+ 	lightup loopy map mines net netslide pattern pegs rect samegame \
+ 	sixteen slant solo tents twiddle untangle
+ 
+-libpuzzles_la_LIBADD = $(PUZZLES_LIBS)
++libpuzzles_la_LIBADD = $(PUZZLES_LIBS) -lowl
+ libpuzzles_la_SOURCES = combi.c \
+ 			configuration.c \
+ 			drawing.c \
diff --git a/meta/recipes-sato/puzzles/oh-puzzles_git.bb b/meta/recipes-sato/puzzles/oh-puzzles_git.bb
new file mode 100644
index 0000000..36cd2cc
--- /dev/null
+++ b/meta/recipes-sato/puzzles/oh-puzzles_git.bb
@@ -0,0 +1,74 @@
+SUMMARY = "Portable Puzzle Collection"
+HOMEPAGE = "http://o-hand.com/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=f56ec6772dd1c7c367067bbea8ea1675 \
+                    file://src/tree234.h;endline=28;md5=a188e6d250430ca094a54a82f48472a7 \
+                    file://src/tree234.c;endline=28;md5=b4feb1976feebf8f1379093ed52f2945"
+
+SECTION = "x11"
+DEPENDS = "gtk+ gconf intltool-native librsvg"
+
+# libowl requires x11 in DISTRO_FEATURES
+DEPENDS_append_poky = " ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libowl', '', d)}"
+
+# Requires gdk/gdkx.h which is provided by gtk when x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRCREV = "92f1a20e4b72eed7a35b00984d9793b51dc2fb3b"
+PV = "0.2+git${SRCPV}"
+PR = "r10"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+SRC_URI_append_poky = " file://oh-puzzles-owl-menu.patch;striplevel=0 "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+bindir = "/usr/games"
+
+EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1"
+
+do_install_append () {
+    install -d ${D}/${datadir}/applications/
+
+    cd ${D}/${prefix}/games
+    for prog in *; do
+	if [ -x $prog ]; then
+            # Convert prog to Title Case
+            title=$(echo $prog | sed 's/\(^\| \)./\U&/g')
+	    echo "making ${D}/${datadir}/applications/$prog.desktop"
+	    cat <<STOP > ${D}/${datadir}/applications/$prog.desktop
+[Desktop Entry]
+Name=$title
+Exec=${prefix}/games/$prog
+Icon=applications-games
+Terminal=false
+Type=Application
+Categories=Game;
+StartupNotify=true
+X-MB-SingleInstance=true
+Comment=Play $title.
+STOP
+        fi
+    done
+}
+
+PACKAGES += "${PN}-extra"
+RDEPENDS_${PN}-extra += "oh-puzzles"
+
+FILES_${PN} = "/usr/share/pixmaps /usr/share/oh-puzzles/"
+FILES_${PN}-dbg += "/usr/games/.debug/*"
+FILES_${PN}-extra = "/usr/games/ /usr/share/applications /etc/gconf/schemas"
+
+python __anonymous () {
+    var = bb.data.expand("FILES_${PN}", d, 1)
+    data = d.getVar(var, True)
+    for name in ("bridges", "fifteen", "inertia", "map", "samegame", "slant"):
+        data = data + " /usr/games/%s" % name
+        data = data + " /usr/share/applications/%s.desktop" % name
+        data = data + " /etc/gconf/schemas/%s.schemas" % name
+    d.setVar(var, data)
+}
diff --git a/meta/recipes-sato/puzzles/puzzles_git.bb b/meta/recipes-sato/puzzles/puzzles_git.bb
new file mode 100644
index 0000000..95826c1
--- /dev/null
+++ b/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Simon Tatham's Portable Puzzle Collection"
+HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
+
+DEPENDS = "gtk+ libxt"
+
+# The libxt requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=33bcd4bce8f3c197f2aefbdbd2d299bc"
+
+SRC_URI = "git://git.tartarus.org/simon/puzzles.git \
+           file://fix-compiling-failure-with-option-g-O.patch \
+           file://0001-Use-labs-instead-of-abs.patch \
+"
+SRCREV = "c296301a06ce49b87c954c9d15452521dfeddf1a"
+PE = "1"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep distro_features_check
+
+do_configure_prepend () {
+    ./mkfiles.pl
+}
+
+FILES_${PN} = "${prefix}/bin/* ${datadir}/applications/*"
+FILES_${PN}-dbg += "${prefix}/bin/.debug"
+
+do_install () {
+    rm -rf ${D}/*
+    export prefix=${D}
+    export DESTDIR=${D}
+    install -d ${D}/${prefix}/bin/
+    oe_runmake install
+
+
+    install -d ${D}/${datadir}/applications/
+
+    # Create desktop shortcuts
+    cd ${D}/${prefix}/bin
+    for prog in *; do
+	if [ -x $prog ]; then
+            # Convert prog to Title Case
+            title=$(echo $prog | sed 's/\(^\| \)./\U&/g')
+	    echo "making ${D}/${datadir}/applications/$prog.desktop"
+	    cat <<STOP > ${D}/${datadir}/applications/$prog.desktop
+[Desktop Entry]
+Name=$title
+Exec=${prefix}/bin/$prog
+Icon=applications-games
+Terminal=false
+Type=Application
+Categories=Game;
+StartupNotify=true
+X-MB-SingleInstance=true
+STOP
+        fi
+    done
+}
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
new file mode 100644
index 0000000..04a43c0
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
@@ -0,0 +1,58 @@
+SECTION = "x11/utils"
+SUMMARY = "rxvt terminal clone supporting unicode"
+DESCRIPTION = "rxvt-unicode is a clone of the well known \
+terminal emulator rxvt, modified to store text in Unicode \
+(either UCS-2 or UCS-4) and to use locale-correct input and \
+output. It also supports mixing multiple fonts at the \
+same time, including Xft fonts."
+DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf"
+
+SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
+	   file://xwc.patch \
+	   file://rxvt.desktop \
+	   file://rxvt.png"
+
+inherit autotools update-alternatives
+
+PROVIDES = "virtual/x-terminal-emulator"
+ALTERNATIVE_${PN} = "x-terminal-emulator"
+ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/rxvt"
+
+CFLAGS_append = " -fpermissive"
+
+EXTRA_OECONF = "--enable-xim \
+		--enable-utmp --enable-wtmp --enable-lastlog \
+		--with-term=rxvt --enable-keepscrolling \
+		--enable-xft --with-name=rxvt --enable-frills \
+		--enable-swapscreen --enable-transparency \
+		--with-codesets=eu --enable-pointer-blank \
+		--enable-text-blink --enable-rxvt-scroll \
+		--enable-combining --disable-perl \
+		--with-x=${STAGING_DIR_HOST}${prefix}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification,"
+
+do_configure_prepend () {
+	if [ ! -e ${S}/acinclude.m4 ]; then
+		cp ${S}/aclocal.m4 ${S}/acinclude.m4
+	fi
+}
+
+do_compile_prepend () {
+	echo '#define UTMP_FILE "${localstatedir}/run/utmp"' >> config.h
+	echo '#define WTMP_FILE "${localstatedir}/log/wtmp"' >> config.h
+	echo '#define LASTLOG_FILE "${localstatedir}/log/lastlog"' >> config.h
+	echo '#define HAVE_XLOCALE 1' >> config.h
+}
+
+do_install_append () {
+	install -d ${D}/${datadir}
+	install -d ${D}/${datadir}/applications
+	install -d ${D}/${datadir}/pixmaps/
+
+	install -m 0644 ${WORKDIR}/rxvt.png ${D}/${datadir}/pixmaps
+	install -m 0644 ${WORKDIR}/rxvt.desktop ${D}/${datadir}/applications
+}
+
+FILES_${PN} += "${datadir}/applications/rxvt.desktop ${datadir}/pixmaps/rxvt.png"
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop
new file mode 100644
index 0000000..882ea41
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Name=Terminal
+Comment=A unicode capable rxvt clone
+Exec=rxvt
+Icon=terminal
+Terminal=false
+Type=Application
+Categories=Utility;TerminalEmulator;
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.png b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.png
new file mode 100644
index 0000000..e56fa2e
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.png
Binary files differ
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode/xwc.patch b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/xwc.patch
new file mode 100644
index 0000000..16efeef
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode/xwc.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+diff -ruN rxvt-unicode-9.10-orig//src/screen.C rxvt-unicode-9.10/src/screen.C
+--- rxvt-unicode-9.10-orig//src/screen.C	2011-04-19 13:34:01.327664984 +0800
++++ rxvt-unicode-9.10/src/screen.C	2011-04-19 13:34:47.037665001 +0800
+@@ -3152,7 +3152,7 @@
+       return false;
+     }
+ 
+-#if 0
++#if HAVE_XWC
+   XTextProperty ct;
+ 
+   if (XwcTextListToTextProperty (dpy, &selection.text, 1, XStringStyle, &ct) >= 0)
+@@ -3734,9 +3734,11 @@
+         }
+       else
+ #endif
++#ifdef HAVE_XWC
+       if (XwcTextListToTextProperty (dpy, &cl, 1, (XICCEncodingStyle) style, &ct) >= 0)
+         freect = 1;
+       else
++#endif
+         {
+           /* if we failed to convert then send it raw */
+           ct.value = (unsigned char *)cl;
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb
new file mode 100644
index 0000000..3480ec7
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb
@@ -0,0 +1,8 @@
+require rxvt-unicode.inc
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://src/main.C;beginline=1;endline=31;md5=775485398a09fa7aee6f90464af88432"
+
+SRC_URI[md5sum] = "4a5b823f08d21036f94a6c51e94d025b"
+SRC_URI[sha256sum] = "e73e13fe64b59fd3c8e6e20c00f149d388741f141b8155e4700d3ed40aa94b4e"
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.21.bb b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.21.bb
new file mode 100644
index 0000000..7049495
--- /dev/null
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.21.bb
@@ -0,0 +1,8 @@
+require rxvt-unicode.inc
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://src/main.C;beginline=1;endline=31;md5=7dac0395806570856e037f98aba8513b"
+
+SRC_URI[md5sum] = "a9a06c608258c5fd247c3725d8f44582"
+SRC_URI[sha256sum] = "75270ed72bc5895a64a1d7392bf45a622204192371c3965bd3dd978dc088956b"
diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch b/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch
new file mode 100644
index 0000000..2c176ee
--- /dev/null
+++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch
@@ -0,0 +1,31 @@
+From b9f02989310a3c920589f1aa646bcbf16b2572a0 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Wed, 13 Jun 2012 11:07:33 +0100
+Subject: [PATCH] Inherit the GNOME icon theme
+
+If the GNOME icon theme isn't installed this is a no-op, but if it is then
+you'll get fallback from Sato to GNOME for icons that are not in Sato.
+
+As applications that use the full GNOME icon theme depend on gnome-icon-theme,
+this just works.
+
+Upstream-Status: Backport
+---
+ index.theme |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/index.theme b/index.theme
+index c4b03a7..688fbbf 100644
+--- a/index.theme
++++ b/index.theme
+@@ -1,6 +1,7 @@
+ [Icon Theme]
+ Name=Sato
+ Comment=Sato icon theme
++Inherits=Adwaita
+ 
+ Directories=16x16/apps,16x16/status,16x16/stock,16x16/places,16x16/mimetypes,16x16/devices,16x16/actions,22x22/apps,22x22/status,22x22/stock,22x22/places,22x22/mimetypes,22x22/devices,22x22/actions,32x32/apps,32x32/status,32x32/stock,32x32/places,32x32/mimetypes,32x32/devices,32x32/actions,48x48/apps,48x48/status,48x48/stock,48x48/places,48x48/mimetypes,48x48/devices,48x48/actions,64x64/apps,64x64/status,64x64/stock,64x64/places,64x64/mimetypes,64x64/devices,64x64/actions,
+ 
+-- 
+1.7.10
+
diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
new file mode 100644
index 0000000..ced735f
--- /dev/null
+++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Sato icon theme"
+HOMEPAGE = "http://www.o-hand.com"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=56a830bbe6e4697fe6cbbae01bb7c2b2"
+SECTION = "x11"
+
+PR = "r6"
+
+DEPENDS = "icon-naming-utils-native libxml-simple-perl-native"
+
+SRC_URI = "http://pokylinux.org/releases/sato/${BPN}-${PV}.tar.gz \
+           file://0001-Inherit-the-GNOME-icon-theme.patch"
+
+SRC_URI[md5sum] = "86a847f3128a43a9cf23b7029a656f50"
+SRC_URI[sha256sum] = "0b0a2807a6a96918ac799a86094ec3e8e2c892be0fd679a4232c2a77f2f61732"
+
+inherit autotools pkgconfig allarch gtk-icon-cache perlnative
+
+# The configure script uses pkg-config to find native binaries to execute, so
+# tell it to use our pkg-config-native wrapper.
+export PKG_CONFIG = "pkg-config-native"
+
+FILES_${PN} += "${datadir}/icons/Sato"
+
+do_install_append() {
+	find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s preferences-system.png {}/apps/preferences-desktop.png \;
+	find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s file-manager.png {}/apps/system-file-manager.png \;
+	find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s ../apps/terminal.png {}/places/computer.png \;
+}
+
+# Explictly setting "Sato" as the default icon theme to avoid flickering from
+# the desktop and settings daemon racing.  This shouldn't be done here but in the sato image
+pkg_postinst_${PN} () {
+    mkdir -p $D/etc/gtk-2.0
+
+    grep -s -q -e ^gtk-icon-theme-name.*\"Sato\" $D/etc/gtk-2.0/gtkrc || \
+        echo 'gtk-icon-theme-name = "Sato"' >> $D/etc/gtk-2.0/gtkrc
+}
diff --git a/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb b/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb
new file mode 100644
index 0000000..8794032
--- /dev/null
+++ b/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Ultra-simple screen capture utility, aimed at handheld devices"
+HOMEPAGE = "http://www.o-hand.com"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://main.c;endline=9;md5=023e14d6404d0a961eb97cbd011fc141 \
+                    file://screenshot-ui.h;endline=9;md5=638d9ffa83e9325a36df224166ed6ad0"
+
+DEPENDS = "matchbox-panel-2"
+SRCREV = "3a9688e8a01b63a78f402b4e7c0b8b005fcdfa29"
+PV = "0.1+git${SRCPV}"
+PR = "r2"
+
+SRC_URI = "git://git.yoctoproject.org/screenshot"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+FILES_${PN} += "${libdir}/matchbox-panel/*.so"
+FILES_${PN}-dbg += "${libdir}/matchbox-panel/.debug"
+
+do_install_append () {
+	rm ${D}${libdir}/matchbox-panel/*.la
+}
+
+# The matchbox-panel-2 requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/settings-daemon/files/70settings-daemon.sh b/meta/recipes-sato/settings-daemon/files/70settings-daemon.sh
new file mode 100644
index 0000000..9537413
--- /dev/null
+++ b/meta/recipes-sato/settings-daemon/files/70settings-daemon.sh
@@ -0,0 +1 @@
+/usr/bin/settings-daemon &
diff --git a/meta/recipes-sato/settings-daemon/files/addsoundkeys.patch b/meta/recipes-sato/settings-daemon/files/addsoundkeys.patch
new file mode 100644
index 0000000..baf06d6
--- /dev/null
+++ b/meta/recipes-sato/settings-daemon/files/addsoundkeys.patch
@@ -0,0 +1,49 @@
+Upstream-Status: Pending
+
+Index: settings-daemon/settings-daemon.c
+===================================================================
+--- settings-daemon.orig/settings-daemon.c	2009-05-22 14:57:05.000000000 +0100
++++ settings-daemon/settings-daemon.c	2009-05-22 14:58:22.000000000 +0100
+@@ -187,6 +187,10 @@
+     GCONF_VALUE_STRING, translate_string_string },
+   { "/desktop/poky/interface/gtk_color_scheme", "Gtk/ColorScheme",
+     GCONF_VALUE_STRING, translate_string_string },
++  { "/desktop/gnome/sound/theme_name", "Net/SoundThemeName",
++    GCONF_VALUE_STRING,   translate_string_string },
++  { "/desktop/gnome/sound/event_sounds", "Net/EnableEventSounds" ,
++    GCONF_VALUE_BOOL,     translate_bool_int },
+ };
+ 
+ static const TranslationEntry*
+Index: settings-daemon/settings-daemon.schemas
+===================================================================
+--- settings-daemon.orig/settings-daemon.schemas	2009-05-22 15:49:17.000000000 +0100
++++ settings-daemon/settings-daemon.schemas	2009-05-22 15:51:31.000000000 +0100
+@@ -196,6 +196,27 @@
+     </locale>
+   </schema>
+ 
++  <schema>
++    <key>/schemas/desktop/gnome/sound/theme_name</key>
++    <applyto>/desktop/gnome/sound/theme_name</applyto>
++    <owner>gnome</owner>
++    <type>string</type>
++    <default>freedesktop</default>
++    <locale name="C">
++      <short>Sound Theme Name</short>
++    </locale>
++  </schema>
++
++  <schema>
++    <key>/schemas/desktop/gnome/sound/event_sounds</key>
++    <applyto>/desktop/gnome/sound/event_sounds</applyto>
++    <owner>gnome</owner>
++    <type>bool</type>
++    <default>true</default>
++    <locale name="C">
++      <short>Enable Sound Events</short>
++    </locale>
++  </schema>
+ 
+ </schemalist>
+ </gconfschemafile>
diff --git a/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch b/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch
new file mode 100644
index 0000000..5943744
--- /dev/null
+++ b/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch
@@ -0,0 +1,31 @@
+Upstream-Status: Inappropriate [configuration]
+
+after gcc linking has changed, all the libraries must be explicitely specified to for linking. 
+This patch avoids this linking error:
+
+| make  all-am^M
+| make[1]: Entering directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/settings-daemon-0.0+svnr2059-r3/settings-daemon'^M
+| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -Wall -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o settings-daemon settings_daemon-xsettings-common.o settings_daemon-xsettings-manager.o settings_daemon-settings-daemon.o -pthread -lgconf-2 -ldbus-glib-1 -ldbus-1 -lpthread -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0^M
+| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: *^A: invalid DSO for symbol `XCreateSimpleWindow' definition^M
+| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libX11.so.6: could not read symbols: Bad value^M
+| collect2: ld returned 1 exit status^M
+| make[1]: *** [settings-daemon] Error 1^M
+| make[1]: Leaving directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/settings-daemon-0.0+svnr2059-r3/settings-daemon'^M
+| make: *** [all] Error 2^M
+
+Nitin A Kamble <nitin.a.kamble@intel.com>
+Date: 2011/01/11
+
+Index: settings-daemon/configure.ac
+===================================================================
+--- settings-daemon.orig/configure.ac
++++ settings-daemon/configure.ac
+@@ -14,7 +14,7 @@ AC_PROG_CC
+ 
+ 
+ dnl TODO: make gconf optional
+-PKG_CHECK_MODULES(APP, [gconf-2.0 gdk-x11-2.0])
++PKG_CHECK_MODULES(APP, [gconf-2.0 gdk-x11-2.0 x11])
+ 
+ 
+ AC_SUBST(APP_CFLAGS)
diff --git a/meta/recipes-sato/settings-daemon/settings-daemon_git.bb b/meta/recipes-sato/settings-daemon/settings-daemon_git.bb
new file mode 100644
index 0000000..c061553
--- /dev/null
+++ b/meta/recipes-sato/settings-daemon/settings-daemon_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Provides a bridge between gconf and xsettings"
+HOMEPAGE = "http://svn.o-hand.com/view/matchbox/trunk/settings-daemon/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://xsettings-manager.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
+                    file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
+DEPENDS = "gconf glib-2.0 gtk+"
+SECTION = "x11"
+SRCREV = "9a99528b02255450db81176abd9bbcc1dab9a4c1"
+PV = "0.0+git${SRCPV}"
+
+
+SRC_URI = "git://git.yoctoproject.org/xsettings-daemon \
+           file://addsoundkeys.patch;apply=yes \
+           file://70settings-daemon.sh \
+           file://dso_linking_change_build_fix.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gconf distro_features_check
+
+FILES_${PN} = 	"${bindir}/* ${sysconfdir}"
+
+# Requires gdk-x11-2.0 which is provided by gtk when x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append () {
+	install -d ${D}/${sysconfdir}/X11/Xsession.d
+	install -m 755 ${WORKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/
+}
diff --git a/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb b/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
new file mode 100644
index 0000000..ebdd6d1
--- /dev/null
+++ b/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Provides an icon to shut down the system cleanly"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://shutdown.desktop"
+
+PR = "r1"
+
+S = "${WORKDIR}"
+
+do_install() {
+	install -d ${D}${datadir}/applications
+	install -m 0644 shutdown.desktop ${D}${datadir}/applications/
+
+	sed -i ${D}${datadir}/applications/shutdown.desktop -e 's#^Exec=\(.*\)#Exec=${base_sbindir}/\1#'
+}
+
+pkg_postinst_${PN} () {
+    grep -q qemuarm $D${sysconfdir}/hostname && \
+        sed -i $D${datadir}/applications/shutdown.desktop -e 's#^Exec=\(.*\)/halt#Exec=\1/reboot#' \
+        || true
+}
+
+inherit allarch
diff --git a/meta/recipes-sato/shutdown-desktop/shutdown-desktop/shutdown.desktop b/meta/recipes-sato/shutdown-desktop/shutdown-desktop/shutdown.desktop
new file mode 100644
index 0000000..662659a
--- /dev/null
+++ b/meta/recipes-sato/shutdown-desktop/shutdown-desktop/shutdown.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Shutdown
+Comment=Close down the machine safely
+Exec=poweroff
+Icon=system-shutdown
+Terminal=false
+Categories=Utility;
+StartupNotify=true
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..28b3420
--- /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 <alex.kanavin@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]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ 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/gcc5.patch b/meta/recipes-sato/webkit/webkitgtk/gcc5.patch
new file mode 100644
index 0000000..5951a81
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk/gcc5.patch
@@ -0,0 +1,26 @@
+JSObject: Create explicit instantiation of putByIndexBeyondVectorLengthWithoutAttributes
+
+Reason for change: newer gcc might optimize away the templates
+and they wont be available for other .cpp files to use as these
+are used in a different .cpp we need to tell compiler to explicitly
+instantiate them.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+Index: webkitgtk-2.8.5/Source/JavaScriptCore/runtime/JSObject.cpp
+===================================================================
+--- webkitgtk-2.8.5.orig/Source/JavaScriptCore/runtime/JSObject.cpp
++++ webkitgtk-2.8.5/Source/JavaScriptCore/runtime/JSObject.cpp
+@@ -1965,6 +1965,10 @@ void JSObject::putByIndexBeyondVectorLen
+     }
+ }
+ 
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value);
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value);
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value);
++
+ void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage)
+ {
+     VM& vm = exec->vm();
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..82d670d
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
@@ -0,0 +1,58 @@
+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 \
+  file://gcc5.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/*"
+