PREFERRED_VERSION_glib-2.0-native = "2.40.2"
PREFERRED_VERSION_glibmm = "2.40.2"
PREFERRED_VERSION_gst-pulse = "0.9.7"
-PREFERRED_VERSION_gtk+ = "2.20.0"
-PREFERRED_VERSION_gtk+-native = "2.20.0"
-PREFERRED_VERSION_gtkmm = "2.20.0"
+PREFERRED_VERSION_gtk+ = "2.20.1"
+PREFERRED_VERSION_gtk+-native = "2.20.1"
+PREFERRED_VERSION_gtkmm = "2.20.1"
PREFERRED_VERSION_hal = "0.5.14"
PREFERRED_VERSION_libgemwidget = "1.0"
PREFERRED_VERSION_libgpephone = "0.4"
--- /dev/null
+commit eff1fe2500f07fa2b4683ff52fe92e39e6487b05
+Author: Matthias Clasen <mclasen@redhat.com>
+Date: Fri May 21 12:13:05 2010 -0400
+
+ Make the !xkb build survive a little longer
+
+ This fixes bug 619114.
+
+diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
+index c0cbc99..6cded79 100644
+--- a/gdk/x11/gdkdisplay-x11.c
++++ b/gdk/x11/gdkdisplay-x11.c
+@@ -690,7 +690,11 @@ gdk_display_beep (GdkDisplay *display)
+ {
+ g_return_if_fail (GDK_IS_DISPLAY (display));
+
++#ifdef HAVE_XKB
+ XkbBell (GDK_DISPLAY_XDISPLAY (display), None, 0, None);
++#else
++ XBell (GDK_DISPLAY_XDISPLAY (display), 0);
++#endif
+ }
+
+ /**
--- /dev/null
+Index: gtk+-2.20.1/configure.in
+===================================================================
+--- gtk+-2.20.1.orig/configure.in 2010-07-10 16:25:40.000000000 -0700
++++ gtk+-2.20.1/configure.in 2010-07-12 22:08:49.878377002 -0700
+@@ -202,7 +202,7 @@ m4_ifdef([LT_OUTPUT], [LT_OUTPUT])
+ AC_SYS_LARGEFILE
+
+ AM_PROG_AS
+-AC_PATH_PROG(NM, nm, nm)
++AC_CHECK_PROG(NM, nm, nm)
+
+ dnl Initialize maintainer mode
+ AM_MAINTAINER_MODE
--- /dev/null
+commit 96c731cc2dde8a3e4ba542eca4c87ed6154084d2
+Author: Stanislav Brabec <sbrabec@suse.cz>
+Date: Fri Jul 9 15:11:15 2010 +0200
+
+ Fix pointer grab dead lock if gtk_drag_begin uses GDK_CURRENT_TIME and
+ release happens before getting grab.
+
+ For more see https://bugzilla.gnome.org/show_bug.cgi?id=623865
+
+diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
+index a0d878d..48063a5 100644
+--- a/gtk/gtkdnd.c
++++ b/gtk/gtkdnd.c
+@@ -4065,6 +4065,10 @@ gtk_drag_end (GtkDragSourceInfo *info, guint32 time)
+ pointer = gdk_drag_context_get_device (info->context);
+ keyboard = gdk_device_get_associated_device (pointer);
+
++ /* Prevent grab after release (see bug 623865) */
++ if (info->grab_time == GDK_CURRENT_TIME)
++ time = GDK_CURRENT_TIME;
++
+ if (info->update_idle)
+ {
+ g_source_remove (info->update_idle);
--- /dev/null
+Index: gtk+-2.14.2/configure.in
+===================================================================
+--- gtk+-2.14.2.orig/configure.in 2008-09-23 15:52:44.000000000 +0100
++++ gtk+-2.14.2/configure.in 2008-09-23 15:53:51.000000000 +0100
+@@ -401,7 +401,7 @@
+ case $enable_explicit_deps in
+ auto)
+ export SED
+- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
+ if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
+ enable_explicit_deps=yes
+ else
+@@ -759,7 +759,7 @@
+ dnl Now we check to see if our libtool supports shared lib deps
+ dnl (in a rather ugly way even)
+ if $dynworks; then
+- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
++ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config"
+ pixbuf_deplibs_check=`$pixbuf_libtool_config | \
+ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
+ sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
+@@ -1893,7 +1893,7 @@
+ # We are using gmodule-no-export now, but I'm leaving the stripping
+ # code in place for now, since pango and atk still require gmodule.
+ export SED
+-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
++export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+ if test -n "$export_dynamic"; then
+ GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
+ GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
--- /dev/null
+--- gtk+-2.10.1/Makefile.am.orig 2006-08-08 12:37:30.000000000 +0100
++++ gtk+-2.10.1/Makefile.am 2006-08-08 12:37:48.000000000 +0100
+@@ -1,6 +1,6 @@
+ ## Makefile.am for GTK+
+
+-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
++SRC_SUBDIRS = gdk-pixbuf gdk gtk modules tests perf contrib
+ SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
+
+ # require automake 1.4
--- /dev/null
+--- /tmp/Makefile.am 2009-10-28 18:21:54.000000000 +0100
++++ gtk+-2.18.3/gtk/Makefile.am 2009-10-28 18:23:07.000000000 +0100
+@@ -1300,11 +1300,11 @@
+ ./gtk-update-icon-cache
+ endif
+
+-gtkbuiltincache.h: @REBUILD@ stamp-icons
+- $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
+- $(gtk_update_icon_cache_program) --force --ignore-theme-index \
+- --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
+- mv gtkbuiltincache.h.tmp gtkbuiltincache.h
++#gtkbuiltincache.h: @REBUILD@ stamp-icons
++# $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
++# $(gtk_update_icon_cache_program) --force --ignore-theme-index \
++# --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
++# mv gtkbuiltincache.h.tmp gtkbuiltincache.h
+
+ EXTRA_DIST += \
+ $(STOCK_ICONS) \
--- /dev/null
+Index: gtk/gtkcellrenderertoggle.c
+===================================================================
+--- gtk/gtkcellrenderertoggle.c (revision 18523)
++++ gtk/gtkcellrenderertoggle.c (working copy)
+@@ -71,6 +71,8 @@
+ PROP_INDICATOR_SIZE
+ };
+
++/* This is a hard-coded default which promptly gets overridden by a size
++ calculated from the font size. */
+ #define TOGGLE_WIDTH 13
+
+ static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
+@@ -80,8 +82,9 @@
+ typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate;
+ struct _GtkCellRendererTogglePrivate
+ {
+- gint indicator_size;
+-
++ gint indicator_size; /* This is the real size */
++ gint override_size; /* This is the size set from the indicator-size property */
++ GtkWidget *cached_widget;
+ guint inconsistent : 1;
+ };
+
+@@ -104,6 +107,7 @@
+ GTK_CELL_RENDERER (celltoggle)->ypad = 2;
+
+ priv->indicator_size = TOGGLE_WIDTH;
++ priv->override_size = 0;
+ priv->inconsistent = FALSE;
+ }
+
+@@ -210,7 +214,7 @@
+ g_value_set_boolean (value, celltoggle->radio);
+ break;
+ case PROP_INDICATOR_SIZE:
+- g_value_set_int (value, priv->indicator_size);
++ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -245,7 +249,7 @@
+ celltoggle->radio = g_value_get_boolean (value);
+ break;
+ case PROP_INDICATOR_SIZE:
+- priv->indicator_size = g_value_get_int (value);
++ priv->override_size = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -273,6 +277,27 @@
+ }
+
+ static void
++on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data)
++{
++ GtkCellRendererTogglePrivate *priv = user_data;
++ PangoContext *context;
++ PangoFontMetrics *metrics;
++ int height;
++
++ context = gtk_widget_get_pango_context (widget);
++ metrics = pango_context_get_metrics (context,
++ widget->style->font_desc,
++ pango_context_get_language (context));
++
++ height = pango_font_metrics_get_ascent (metrics) +
++ pango_font_metrics_get_descent (metrics);
++
++ pango_font_metrics_unref (metrics);
++
++ priv->indicator_size = PANGO_PIXELS (height * 0.85);
++}
++
++static void
+ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ GdkRectangle *cell_area,
+@@ -287,6 +312,20 @@
+
+ priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell);
+
++ if (priv->override_size) {
++ priv->indicator_size = priv->override_size;
++ } else if (priv->cached_widget != widget) {
++ if (priv->cached_widget) {
++ g_object_remove_weak_pointer (widget, &priv->cached_widget);
++ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv);
++ }
++ priv->cached_widget = widget;
++ g_object_add_weak_pointer (widget, &priv->cached_widget);
++ g_signal_connect (widget, "style-set", on_widget_style_set, priv);
++
++ on_widget_style_set (widget, NULL, priv);
++ }
++
+ calc_width = (gint) cell->xpad * 2 + priv->indicator_size;
+ calc_height = (gint) cell->ypad * 2 + priv->indicator_size;
+
file://xsettings.patch;patch=1 \
"
-INC_PR = "r8"
+INC_PR = "r10"
inherit autotools pkgconfig
${libdir}/lib*.so.* \
${datadir}/themes ${sysconfdir} \
${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so"
-RDEPENDS_${PN} = "hicolor-icon-theme"
FILES_${PN}-dev += " \
${datadir}/gtk-2.0/include \
${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
-NEATSTUFF = " ttf-dejavu-sans gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm "
+NEATSTUFF = "ttf-dejavu-sans gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm"
+NEATSTUFF_append_linux = " glibc-gconv-iso8859-1"
+NEATSTUFF_append_linux-gnueabi = " glibc-gconv-iso8859-1"
-RRECOMMENDS_${PN} = " ${NEATSTUFF} "
-RRECOMMENDS_${PN}_linux = " ${NEATSTUFF} glibc-gconv-iso8859-1 "
-RRECOMMENDS_${PN}_linux-gnueabi = " ${NEATSTUFF} glibc-gconv-iso8859-1"
+# Only add runtime dependencies for target recipe
+RDEPENDS_${PN} += "${@['', 'hicolor-icon-theme']['${PN}' == '${BPN}']}"
+RRECOMMENDS_${PN} += "${@['', '${NEATSTUFF}']['${PN}' == '${BPN}']}"
do_install_append () {
mkdir -p ${D}${libdir}/gtk-2.0/include
rm -f ${D}${libdir}/gtk-2.0/*/*.la ${D}${libdir}/gtk-2.0/${LIBV}/*/*.la
}
-do_install_virtclass-native () {
- autotools_do_install
-
- mkdir -p ${D}${libdir}/gtk-2.0/include
- install -m 0644 gdk/gdkconfig.h ${D}${libdir}/gtk-2.0/include/gdkconfig.h
- # Copy over all headers, since the maemo stuff needs access to the private api. *sigh*
- cp gtk/*.h ${D}${includedir}/gtk-2.0/gtk/
-
- install -m 0644 m4macros/gtk-2.0.m4 ${STAGING_DATADIR}/aclocal/
-
- install -d ${D}${sysconfdir}/gtk-2.0
- rm -f ${D}${libdir}/gtk-2.0/*/*.la ${D}${libdir}/gtk-2.0/${LIBV}/*/*.la
+do_install_append_virtclass-native () {
+ ${D}${bindir}/gdk-pixbuf-query-loaders \
+ ${D}${libdir}/gtk-2.0/${LIBV}/loaders/*.so | \
+ sed -e's,${D},,' > \
+ ${D}${sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
+}
- mkdir -p "${D}${sysconfdir}/gtk-2.0"
- ${B}/gdk-pixbuf/gdk-pixbuf-query-loaders ${B}/gdk-pixbuf/.libs/*.so | sed 's:${B}/gdk-pixbuf/.libs:${STAGING_LIBDIR}/gtk-2.0/${LIBV}/loaders:' > "${D}${sysconfdir}/gtk-2.0/gdk-pixbuf.loaders"
+SYSROOT_PREPROCESS_FUNCS_append_virtclass-native = " gdk_pixbuf_fixup"
+
+_SYSROOT_DEST = "${SYSROOT_DESTDIR}${STAGING_DIR_HOST}"
+gdk_pixbuf_fixup () {
+ create_wrapper ${_SYSROOT_DEST}${bindir}/gdk-pixbuf-query-loaders \
+ LD_LIBRARY_PATH=${STAGING_LIBDIR} \
+ GDK_PIXBUF_MODULEDIR=${libdir}/gtk-2.0/${LIBV}/loaders
+ ${_SYSROOT_DEST}${bindir}/gdk-pixbuf-query-loaders \
+ ${_SYSROOT_DEST}${libdir}/gtk-2.0/${LIBV}/loaders/*.so | \
+ sed -e's,${_SYSROOT_DEST},,' > \
+ ${_SYSROOT_DEST}${sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
+ create_wrapper ${_SYSROOT_DEST}${bindir}/gdk-pixbuf-csource \
+ GDK_PIXBUF_MODULE_FILE=${sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
}
postinst_prologue() {
--- /dev/null
+require gtk+.inc
+
+LICENSE = "LGPLv2 LGPLv2+ LGPLv2.1+"
+
+SRC_URI_append_virtclass-native = " file://no-demos.patch \
+"
+SRC_URI_append = "file://gtk-dnd-grab-deadlock-fix.patch;patch=1 \
+ file://cross-nm.patch;patch=1 \
+ file://xkb-ifdef.patch;patch=1 \
+ "
+
+SRC_URI[gtk.md5sum] = "53e6f3a93bd22934878fc4a4a34c68aa"
+SRC_URI[gtk.sha256sum] = "0e081731d21e34ff45c82199490c2889504fa8b3c7e117c043e82ababaec0f65"
+
+PR = "${INC_PR}.5"
+
+BBCLASSEXTEND = "native"
+
+ARM_INSTRUCTION_SET = "arm"
+
+DEPENDS_virtclass-native = "libpng-native atk-native pango-native cairo-native libxrender-native libxext-native libgcrypt-native"
+PROVIDES_virtclass-native = "gdk-pixbuf-csource-native"
+
+# Enable xkb selectively
+XKBTOGGLE = " --disable-xkb"
+XKBTOGGLE_angstrom = ""
+
+EXTRA_OECONF = " --enable-introspection=no --with-libtiff ${XKBTOGGLE} --disable-glibtest gio_can_sniff=yes"
+EXTRA_OECONF_append_virtclass-native = " --without-libtiff --without-libjpeg --disable-cups"
+
+PACKAGES_DYNAMIC = "gtk-module-* gdk-pixbuf-loader-* gtk-immodule-* gtk-printbackend-*"
+
+python populate_packages_prepend () {
+ import os.path
+
+ prologue = bb.data.getVar("postinst_prologue", d, 1)
+
+ gtk_libdir = bb.data.expand('${libdir}/gtk-2.0/${LIBV}', d)
+ loaders_root = os.path.join(gtk_libdir, 'loaders')
+ immodules_root = os.path.join(gtk_libdir, 'immodules')
+ printmodules_root = os.path.join(gtk_libdir, 'printbackends');
+ modules_root = bb.data.expand('${libdir}/gtk-2.0/modules/',d)
+
+ do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s', prologue + 'gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders', extra_depends='')
+ do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s', prologue + 'gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules', extra_depends='')
+ do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s', extra_depends='')
+ do_split_packages(d, modules_root, '^lib(.*)\.so$', 'gtk-module-%s', 'GTK module for %s', extra_depends='')
+
+ if (bb.data.getVar('DEBIAN_NAMES', d, 1)):
+ bb.data.setVar('PKG_${PN}', 'libgtk-2.0', d)
+}
+
+# gail is part of gtk+ since gtk+-2.13.0 (targetting >=GNOME 2.23):
+PROVIDES = "virtual/gail"
+RPROVIDES_${PN} = "libgailutil18"
+RCONFLICTS_${PN} = "libgailutil18"
+RREPLACES_${PN} = "libgailutil18"
+RPROVIDES_${PN}-dev = "libgailutil-dev"
+RCONFLICTS_${PN}-dev = "libgailutil-dev"
+RREPLACES_${PN}-dev = "libgailutil-dev"
+RPROVIDES_${PN}-doc = "libgailutil-doc"
+RCONFLICTS_${PN}-doc = "libgailutil-doc"
+RREPLACES_${PN}-doc = "libgailutil-doc"
+RPROVIDES_${PN}-dbg = "libgailutil-dbg"
+RCONFLICTS_${PN}-dbg = "libgailutil-dbg"
+RREPLACES_${PN}-dbg = "libgailutil-dbg"
+# FIXME: replace locales as well
+