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.24.8"
-PREFERRED_VERSION_gtk+-native = "2.24.8"
-PREFERRED_VERSION_gtkmm = "2.24.8"
+PREFERRED_VERSION_gtk+ = "2.24.24"
+PREFERRED_VERSION_gtk+-native = "2.24.24"
+PREFERRED_VERSION_gtkmm = "2.24.24"
PREFERRED_VERSION_hal = "0.5.14"
PREFERRED_VERSION_libgemwidget = "1.0"
PREFERRED_VERSION_libgpephone = "0.4"
--- /dev/null
+From d1f7a894674dfdd6769f1bbae31eb1a69e451a5c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Fri, 16 Nov 2012 22:07:28 +0100
+Subject: [PATCH] GtkButton: do not prelight in touchscreen mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Code was copied from GtkToggleButton.
+
+Upstream-Status: submitted [1]
+
+[1] https://bugzilla.gnome.org/show_bug.cgi?id=689138
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ gtk/gtkbutton.c | 8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
+index f472007..1beb1b6 100644
+--- a/gtk/gtkbutton.c
++++ b/gtk/gtkbutton.c
+@@ -2079,15 +2079,19 @@ _gtk_button_set_depressed (GtkButton *button,
+ static void
+ gtk_button_update_state (GtkButton *button)
+ {
+- gboolean depressed;
++ gboolean depressed, touchscreen;
+ GtkStateType new_state;
+
++ g_object_get (gtk_widget_get_settings (GTK_WIDGET (button)),
++ "gtk-touchscreen-mode", &touchscreen,
++ NULL);
++
+ if (button->activate_timeout)
+ depressed = button->depress_on_activate;
+ else
+ depressed = button->in_button && button->button_down;
+
+- if (button->in_button && (!button->button_down || !depressed))
++ if (!touchscreen && button->in_button && (!button->button_down || !depressed))
+ new_state = GTK_STATE_PRELIGHT;
+ else
+ new_state = depressed ? GTK_STATE_ACTIVE : GTK_STATE_NORMAL;
+--
+1.7.6.5
+
--- /dev/null
+From 69b9441eab2a7215509687dc22b48b6f212d22aa Mon Sep 17 00:00:00 2001
+From: Rob Bradford <rob@linux.intel.com>
+Date: Thu, 4 Jun 2009 15:43:20 +0100
+Subject: [PATCH] =?utf-8?q?bgo#584832=20=E2=80=93=20Duplicate=20the=20exec=20string=20returned=20by=20gtk=5Frecent=5Finfo=5Fget=5Fapplication=5Finfo?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+This function states that the caller is responsible for freeing the string
+passed returned by reference. Unfortunately if you do this you get a crash
+since the internal value is returned without being duplicated.
+---
+ gtk/gtkrecentmanager.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Upstream-Status: Pending
+
+Index: gtk+-2.21.2/gtk/gtkrecentmanager.c
+===================================================================
+--- gtk+-2.21.2.orig/gtk/gtkrecentmanager.c 2010-06-22 18:11:30.000000000 +0800
++++ gtk+-2.21.2/gtk/gtkrecentmanager.c 2010-06-22 18:11:53.000000000 +0800
+@@ -1766,7 +1766,7 @@
+ }
+
+ if (app_exec)
+- *app_exec = ai->exec;
++ *app_exec = g_strdup (ai->exec);
+
+ if (count)
+ *count = ai->count;
--- /dev/null
+From d9164e9c6075f95aad11012ec4114d97b26aa7c5 Mon Sep 17 00:00:00 2001
+From: Sebastian Gerhardt <sebgerhardt@gmx.net>
+Date: Mon, 18 Aug 2014 18:40:48 +0200
+Subject: [PATCH 1/4] gdk_drawable_get_screen() used for mask, which is a
+ pixmap, not a window
+
+The function gtk_drag_set_icon_pixmap() triggered failing assertions. This was because it called the function gdk_window_get_screen(mask), where "mask" is a pixmap, but not a window.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=735005
+---
+ gtk/gtkdnd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
+index 7488358..144ec2b 100644
+--- a/gtk/gtkdnd.c
++++ b/gtk/gtkdnd.c
+@@ -3272,7 +3272,7 @@ gtk_drag_set_icon_pixmap (GdkDragContext *context,
+ screen = gdk_colormap_get_screen (colormap);
+
+ g_return_if_fail (gdk_drawable_get_screen (pixmap) == screen);
+- g_return_if_fail (!mask || gdk_window_get_screen (mask) == screen);
++ g_return_if_fail (!mask || gdk_drawable_get_screen (mask) == screen);
+
+ gdk_drawable_get_size (pixmap, &width, &height);
+
+--
+1.7.9.5
+
--- /dev/null
+From fbf38d16bcc26630f0f721d266509f5bc292f606 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Tue, 26 Aug 2014 12:07:34 +0100
+Subject: [PATCH 2/4] threads: Do not release the GDK lock if it hasn't been
+ acquired yet
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since GLib ≥ 2.41, attempting to release an unlocked mutex will abort(),
+as it happens on most systems already.
+
+Given the lack of proper documentation on how to use GDK with threads,
+there is code in the wild that does:
+
+ gdk_threads_init ();
+ gdk_init ();
+
+ ...
+
+ gtk_main ();
+
+instead of the idiomatically correct:
+
+ gdk_threads_init ();
+ gdk_threads_enter ();
+
+ gtk_init ();
+
+ ...
+
+ gtk_main ();
+
+ ...
+
+ gdk_threads_leave ();
+
+Which means that gtk_main() will try to release the GDK lock, and thus
+trigger an error from GLib.
+
+we cannot really fix all the wrong code everywhere, and since it does
+not cost us anything, we can work around the issue inside GDK itself, by
+trying to acquire the GDK lock inside gdk_threads_leave() with
+trylock().
+
+https://bugzilla.gnome.org/show_bug.cgi?id=735428
+---
+ gdk/gdk.c | 24 +++++++++++++++++++++++-
+ 1 file changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/gdk/gdk.c b/gdk/gdk.c
+index 0106d8a..f722dbf 100644
+--- a/gdk/gdk.c
++++ b/gdk/gdk.c
+@@ -434,7 +434,29 @@ static void
+ gdk_threads_impl_unlock (void)
+ {
+ if (gdk_threads_mutex)
+- g_mutex_unlock (gdk_threads_mutex);
++ {
++ /* we need a trylock() here because trying to unlock a mutex
++ * that hasn't been locked yet is:
++ *
++ * a) not portable
++ * b) fail on GLib ≥ 2.41
++ *
++ * trylock() will either succeed because nothing is holding the
++ * GDK mutex, and will be unlocked right afterwards; or it's
++ * going to fail because the mutex is locked already, in which
++ * case we unlock it as expected.
++ *
++ * this is needed in the case somebody called gdk_threads_init()
++ * without calling gdk_threads_enter() before calling gtk_main().
++ * in theory, we could just say that this is undefined behaviour,
++ * but our documentation has always been *less* than explicit as
++ * to what the behaviour should actually be.
++ *
++ * see bug: https://bugzilla.gnome.org/show_bug.cgi?id=735428
++ */
++ g_mutex_trylock (gdk_threads_mutex);
++ g_mutex_unlock (gdk_threads_mutex);
++ }
+ }
+
+ /**
+--
+1.7.9.5
+
--- /dev/null
+From 1d0e2d58385bd01fdb753bf40ba2f4c32ccd0cc8 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Mon, 29 Sep 2014 16:05:57 -0400
+Subject: [PATCH 4/4] pixbuf engine: Avoid a crash if widget is NULL
+
+Commit 85f2a721cf introduced an unconditional call to
+gtk_widget_get_direction(). This does not work for 'foreign'
+uses of the theme engine, e.g. in Qt, where widget is NULL.
+
+This was reported as a crash in Fedora here:
+https://bugzilla.redhat.com/show_bug.cgi?id=924683
+---
+ modules/engines/pixbuf/pixbuf-draw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/engines/pixbuf/pixbuf-draw.c b/modules/engines/pixbuf/pixbuf-draw.c
+index 9239bd1..5448d81 100644
+--- a/modules/engines/pixbuf/pixbuf-draw.c
++++ b/modules/engines/pixbuf/pixbuf-draw.c
+@@ -131,7 +131,7 @@ draw_simple_image(GtkStyle *style,
+ match_data->orientation = GTK_ORIENTATION_HORIZONTAL;
+ }
+
+- if (!(match_data->flags & THEME_MATCH_DIRECTION))
++ if (widget && !(match_data->flags & THEME_MATCH_DIRECTION))
+ {
+ match_data->flags |= THEME_MATCH_DIRECTION;
+ match_data->direction = gtk_widget_get_direction (widget);
+--
+1.7.9.5
+
--- /dev/null
+Upstream-Status: Pending
+
+Index: gtk/gtkcellrenderer.c
+===================================================================
+--- gtk/gtkcellrenderer.c.orig 2010-06-22 17:21:22.000000000 +0800
++++ gtk/gtkcellrenderer.c 2010-06-22 17:21:25.000000000 +0800
+@@ -566,6 +566,7 @@
+
+ if (cell->cell_background_set && !selected)
+ {
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_t *cr = gdk_cairo_create (window);
+
+ gdk_cairo_rectangle (cr, background_area);
+@@ -573,6 +574,16 @@
+ cairo_fill (cr);
+
+ cairo_destroy (cr);
++#else
++ GdkGC *gc;
++
++ gc = gdk_gc_new (window);
++ gdk_gc_set_rgb_fg_color (gc, &priv->cell_background);
++ gdk_draw_rectangle (window, gc, TRUE,
++ background_area->x, background_area->y,
++ background_area->width, background_area->height);
++ g_object_unref (gc);
++#endif
+ }
+
+ GTK_CELL_RENDERER_GET_CLASS (cell)->render (cell,
--- /dev/null
+Upstream-Status: Pending
+https://bugzilla.gnome.org/show_bug.cgi?id=671515
+
+Signed-Off-By: Xiaofeng Yan <xiaofeng.yan@windriver.com>
+# Pick up ${NM} from the environment
+
+Updated to apply to gtk+-2.24.15
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurd gtk+-2.24.15/configure.ac gtk+-2.24.15/configure.ac
+--- gtk+-2.24.15/configure.ac 2013-01-12 20:52:54.000000000 +0200
++++ gtk+-2.24.15/configure.ac 2013-02-12 21:25:06.073937041 +0200
+@@ -190,7 +190,7 @@
+ AC_SYS_LARGEFILE
+
+ AM_PROG_AS
+-AC_PATH_PROG(NM, nm, nm)
++AC_CHECK_TOOLS(NM, [$NM nm], nm)
+
+ dnl Initialize maintainer mode
+ AM_MAINTAINER_MODE([enable])
--- /dev/null
+Upstream-Status: Inappropriate [configuration]
+
+Index: gtk+-2.21.2/docs/faq/Makefile.am
+===================================================================
+--- gtk+-2.21.2.orig/docs/faq/Makefile.am 2010-04-09 10:29:53.000000000 +0800
++++ gtk+-2.21.2/docs/faq/Makefile.am 2010-06-22 17:39:24.000000000 +0800
+@@ -3,34 +3,36 @@
+ EXTRA_DIST += \
+ gtk-faq.sgml
+
+-if HAVE_DOCBOOK
++
+ html:
++if HAVE_DOCBOOK
+ if test -w $(srcdir); then \
+ (cd $(srcdir); \
+ db2html gtk-faq.sgml; \
+ test -d html && rm -r html; \
+ mv gtk-faq html); \
+ fi
+-
+-pdf:
+- if test -w $(srcdir); then \
+- (cd $(srcdir); db2pdf gtk-faq.sgml); \
+- fi
+-
+-dist-hook: html
+- cp -Rp $(srcdir)/html $(distdir)
+ else
+-html:
+ echo "***"
+ echo "*** Warning: FAQ not built"
+ echo "***"
++endif
+
+ pdf:
++if HAVE_DOCBOOK
++ if test -w $(srcdir); then \
++ (cd $(srcdir); db2pdf gtk-faq.sgml); \
++ fi
++else
+ echo "***"
+ echo "*** Warning: FAQ not built"
+ echo "***"
++endif
+
+-dist-hook:
++dist-hook: html
++if HAVE_DOCBOOK
++ cp -Rp $(srcdir)/html $(distdir)
++else
+ echo "***"
+ echo "*** Warning: FAQ not built"
+ echo "*** DISTRIBUTION IS INCOMPLETE"
+Index: gtk+-2.21.2/gtk-doc.make
+===================================================================
+--- gtk+-2.21.2.orig/gtk-doc.make 2010-05-28 00:01:48.000000000 +0800
++++ gtk+-2.21.2/gtk-doc.make 2010-06-22 17:39:24.000000000 +0800
+@@ -23,7 +23,7 @@
+
+ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+-EXTRA_DIST = \
++EXTRA_DIST += \
+ $(content_files) \
+ $(HTML_IMAGES) \
+ $(DOC_MAIN_SGML_FILE) \
+Index: gtk+-2.21.2/gtk/tests/Makefile.am
+===================================================================
+--- gtk+-2.21.2.orig/gtk/tests/Makefile.am 2010-06-10 20:53:46.000000000 +0800
++++ gtk+-2.21.2/gtk/tests/Makefile.am 2010-06-22 17:39:24.000000000 +0800
+@@ -58,13 +58,13 @@
+ # this doesn't work in make distcheck, since running
+ # on a naked X server creates slightly different event
+ # sequences than running on a normal desktop
+-# TEST_PROGS += crossingevents
++#TEST_PROGS += crossingevents
+ crossingevents_SOURCES = crossingevents.c
+ crossingevents_LDADD = $(progs_ldadd)
+
+ # this doesn't work in make distcheck, since it doesn't
+ # find file-chooser-test-dir
+-# TEST_PROGS += filechooser
++#TEST_PROGS += filechooser
+ filechooser_SOURCES = filechooser.c pixbuf-init.c
+ filechooser_LDADD = $(progs_ldadd)
+
--- /dev/null
+diff -ur gtk+-2.24.24_/gtk-doc.make gtk+-2.24.24/gtk-doc.make
+--- gtk+-2.24.24_/gtk-doc.make 2014-10-10 00:10:55.728788111 +0300
++++ gtk+-2.24.24/gtk-doc.make 2012-03-19 08:36:54.000000000 +0200
+@@ -49,13 +49,9 @@
+ $(DOC_MODULE)-undeclared.txt \
+ $(DOC_MODULE)-unused.txt
+
+-gtkdoc-check.test: Makefile
+- $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+- echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+- chmod +x $@
+-
+-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
++CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+
++if ENABLE_GTK_DOC
+ if GTK_DOC_BUILD_HTML
+ HTML_BUILD_STAMP=html-build.stamp
+ else
+@@ -67,11 +63,9 @@
+ PDF_BUILD_STAMP=
+ endif
+
+-all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+-.PHONY: all-gtk-doc
+-
+-if ENABLE_GTK_DOC
+-all-local: all-gtk-doc
++all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
++else
++all-local:
+ endif
+
+ docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+@@ -80,44 +74,33 @@
+
+ #### setup ####
+
+-GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
+-GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_SETUP_0=@echo " DOC Preparing build";
+-
+ setup-build.stamp:
+- -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
++ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
++ echo ' DOC Preparing build'; \
+ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+ if test "x$$files" != "x" ; then \
+ for file in $$files ; do \
+- destdir=`dirname $(abs_builddir)/$$file` ;\
+- test -d "$$destdir" || mkdir -p "$$destdir"; \
+ test -f $(abs_srcdir)/$$file && \
+- cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
++ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+ done; \
+ fi; \
+ test -d $(abs_srcdir)/tmpl && \
+- { cp -pR $(abs_srcdir)/tmpl $(abs_builddir)/; \
++ { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+ chmod -R u+w $(abs_builddir)/tmpl; } \
+ fi
+- $(AM_V_at)touch setup-build.stamp
++ @touch setup-build.stamp
+
+ #### scan ####
+
+-GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
+-GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files";
+-
+-GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
+-GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
+-
+-scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
+- $(GTK_DOC_V_SCAN)_source_dir='' ; \
++scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
++ @echo ' DOC Scanning header files'
++ @_source_dir='' ; \
+ for i in $(DOC_SOURCE_DIR) ; do \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ done ; \
+ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+- $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
++ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
++ echo " DOC Introspecting gobjects"; \
+ scanobj_options=""; \
+ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+@@ -132,25 +115,22 @@
+ test -f $$i || touch $$i ; \
+ done \
+ fi
+- $(AM_V_at)touch scan-build.stamp
++ @touch scan-build.stamp
+
+ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+ @true
+
+ #### templates ####
+
+-GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V))
+-GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_TMPL_0=@echo " DOC Rebuilding template files";
+-
+ tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+- $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+- $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
++ @echo ' DOC Rebuilding template files'
++ @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
++ @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+ if test -w $(abs_srcdir) ; then \
+- cp -pR $(abs_builddir)/tmpl $(abs_srcdir)/; \
++ cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+ fi \
+ fi
+- $(AM_V_at)touch tmpl-build.stamp
++ @touch tmpl-build.stamp
+
+ tmpl.stamp: tmpl-build.stamp
+ @true
+@@ -160,34 +140,26 @@
+
+ #### xml ####
+
+-GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
+-GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_XML_0=@echo " DOC Building XML";
+-
+ sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+- -$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \
++ @echo ' DOC Building XML'
++ @-chmod -R u+w $(srcdir)
++ @_source_dir='' ; \
+ for i in $(DOC_SOURCE_DIR) ; do \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ done ; \
+ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+- $(AM_V_at)touch sgml-build.stamp
++ @touch sgml-build.stamp
+
+ sgml.stamp: sgml-build.stamp
+ @true
+
+ #### html ####
+
+-GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
+-GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_HTML_0=@echo " DOC Building HTML";
+-
+-GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
+-GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
+-
+ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+- $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+- mkhtml_options=""; \
++ @echo ' DOC Building HTML'
++ @rm -rf html
++ @mkdir html
++ @mkhtml_options=""; \
+ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+@@ -208,18 +180,16 @@
+ cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+ fi; \
+ done;
+- $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+- $(AM_V_at)touch html-build.stamp
++ @echo ' DOC Fixing cross-references'
++ @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
++ @touch html-build.stamp
+
+ #### pdf ####
+
+-GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
+-GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+-GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
+-
+ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+- $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+- mkpdf_options=""; \
++ @echo ' DOC Building PDF'
++ @rm -f $(DOC_MODULE).pdf
++ @mkpdf_options=""; \
+ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+@@ -236,16 +206,13 @@
+ done; \
+ fi; \
+ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+- $(AM_V_at)touch pdf-build.stamp
++ @touch pdf-build.stamp
+
+ ##############
+
+ clean-local:
+ @rm -f *~ *.bak
+ @rm -rf .libs
+- @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+- rm -f $(DOC_MODULE).types; \
+- fi
+
+ distclean-local:
+ @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+@@ -255,7 +222,7 @@
+ rm -rf tmpl; \
+ fi
+
+-maintainer-clean-local:
++maintainer-clean-local: clean
+ @rm -rf xml html
+
+ install-data-local:
+@@ -291,17 +258,15 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
+-dist-check-gtkdoc: docs
++if ENABLE_GTK_DOC
++dist-check-gtkdoc:
+ else
+ dist-check-gtkdoc:
+- @echo "*** gtk-doc is needed to run 'make dist'. ***"
+- @echo "*** gtk-doc was not found when 'configure' ran. ***"
+- @echo "*** please install gtk-doc and rerun 'configure'. ***"
++ @echo "*** gtk-doc must be installed and enabled in order to make dist"
+ @false
+ endif
+
+-dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
++dist-hook: dist-check-gtkdoc dist-hook-local
+ @mkdir $(distdir)/tmpl
+ @mkdir $(distdir)/html
+ @-cp ./tmpl/*.sgml $(distdir)/tmpl
+Only in gtk+-2.24.24/m4: gtk-doc.m4
--- /dev/null
+There are issues building the gtk+ tutorial and faq documentation.
+Since they were removed in gtk+ upstream and are superfluous in
+embedded applications, just don't build them.
+
+Thanks to Joshua Lock for suggesting this approach.
+
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+
+diff -urN gtk+-2.22.1.orig/docs/Makefile.am gtk+-2.22.1/docs/Makefile.am
+--- gtk+-2.22.1.orig/docs/Makefile.am 2010-11-15 04:13:09.000000000 -0800
++++ gtk+-2.22.1/docs/Makefile.am 2011-02-23 19:25:16.914815097 -0800
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+ include $(top_srcdir)/Makefile.decl
+
+-SUBDIRS = tutorial faq reference tools
++SUBDIRS = reference tools
+
+ EXTRA_DIST += \
+ defsformat.txt \
--- /dev/null
+Upstream-Status: Pending
+
+Index: gtk/gtkentry.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gtk/gtkentry.c,v
+retrieving revision 1.317
+diff -u -r1.317 gtkentry.c
+--- gtk/gtkentry.c 29 Jun 2006 09:18:05 -0000 1.317
++++ gtk/gtkentry.c 2 Jul 2006 14:14:24 -0000
+@@ -3337,7 +3337,9 @@
+ if (GTK_WIDGET_DRAWABLE (entry))
+ {
+ PangoLayout *layout = gtk_entry_ensure_layout (entry, TRUE);
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_t *cr;
++#endif
+ gint x, y;
+ gint start_pos, end_pos;
+
+@@ -3345,23 +3347,35 @@
+
+ get_layout_position (entry, &x, &y);
+
++#ifdef USE_CAIRO_INTERNALLY
+ cr = gdk_cairo_create (entry->text_area);
+
+ cairo_move_to (cr, x, y);
+ gdk_cairo_set_source_color (cr, &widget->style->text [widget->state]);
+ pango_cairo_show_layout (cr, layout);
++#else
++ gdk_draw_layout (entry->text_area, widget->style->text_gc [widget->state],
++ x, y,
++ layout);
++#endif
+
+ if (gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &start_pos, &end_pos))
+ {
+ gint *ranges;
+ gint n_ranges, i;
+ PangoRectangle logical_rect;
+- GdkColor *selection_color, *text_color;
+ GtkBorder inner_border;
++#ifdef USE_CAIRO_INTERNALLY
++ GdkColor *selection_color, *text_color;
++#else
++ GdkGC *selection_gc, *text_gc;
++ GdkRegion *clip_region;
++#endif
+
+ pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
+ gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges);
+
++#ifdef USE_CAIRO_INTERNALLY
+ if (GTK_WIDGET_HAS_FOCUS (entry))
+ {
+ selection_color = &widget->style->base [GTK_STATE_SELECTED];
+@@ -3390,11 +3404,46 @@
+ cairo_move_to (cr, x, y);
+ gdk_cairo_set_source_color (cr, text_color);
+ pango_cairo_show_layout (cr, layout);
+-
++#else
++ if (GTK_WIDGET_HAS_FOCUS (entry))
++ {
++ selection_gc = widget->style->base_gc [GTK_STATE_SELECTED];
++ text_gc = widget->style->text_gc [GTK_STATE_SELECTED];
++ }
++ else
++ {
++ selection_gc = widget->style->base_gc [GTK_STATE_ACTIVE];
++ text_gc = widget->style->text_gc [GTK_STATE_ACTIVE];
++ }
++
++ clip_region = gdk_region_new ();
++ for (i = 0; i < n_ranges; ++i)
++ {
++ GdkRectangle rect;
++
++ rect.x = inner_border.left - entry->scroll_offset + ranges[2 * i];
++ rect.y = y;
++ rect.width = ranges[2 * i + 1];
++ rect.height = logical_rect.height;
++
++ gdk_draw_rectangle (entry->text_area, selection_gc, TRUE,
++ rect.x, rect.y, rect.width, rect.height);
++
++ gdk_region_union_with_rect (clip_region, &rect);
++ }
++
++ gdk_gc_set_clip_region (text_gc, clip_region);
++ gdk_draw_layout (entry->text_area, text_gc,
++ x, y,
++ layout);
++ gdk_gc_set_clip_region (text_gc, NULL);
++ gdk_region_destroy (clip_region);
++#endif
+ g_free (ranges);
+ }
+-
++#ifdef USE_CAIRO_INTERNALLY
+ cairo_destroy (cr);
++#endif
+ }
+ }
+
--- /dev/null
+Upstream-Status: Inappropriate [embedded specific]
+
+Updated to apply to gtk+-2.24.15
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurd gtk+-2.24.15/configure.ac gtk+-2.24.15/configure.ac
+--- gtk+-2.24.15/configure.ac 2013-01-12 20:52:54.000000000 +0200
++++ gtk+-2.24.15/configure.ac 2013-02-12 21:33:30.689925967 +0200
+@@ -415,7 +415,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
+@@ -774,7 +774,7 @@
+ dnl Now we check to see if our libtool supports shared lib deps
+ dnl (in a rather ugly way even)
+ if $dynworks; then
+- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
++ module_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config"
+ module_deplibs_check=`$module_libtool_config | \
+ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
+ sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
+@@ -1574,7 +1574,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_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
+ GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
--- /dev/null
+Upstream-Status: Inappropriate [configuration]
+
+diff -Nurd gtk+-2.24.24/gtk/Makefile.am gtk+-2.24.24/gtk/Makefile.am
+--- gtk+-2.24.24/gtk/Makefile.am 2014-06-23 18:08:14.000000000 +0300
++++ gtk+-2.24.24/gtk/Makefile.am 2014-09-03 23:45:12.669307700 +0300
+@@ -1391,12 +1391,12 @@
+ ./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 \
+- --include-image-data \
+- --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 \
++# --include-image-data \
++# --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
++# mv gtkbuiltincache.h.tmp gtkbuiltincache.h
+
+ EXTRA_DIST += \
+ $(STOCK_ICONS) \
--- /dev/null
+Upstream-Status: Pending
+
+Index: gtk/gtkcellrenderertoggle.c
+===================================================================
+--- gtk/gtkcellrenderertoggle.c.orig 2010-06-22 18:11:33.000000000 +0800
++++ gtk/gtkcellrenderertoggle.c 2010-06-22 18:11:43.000000000 +0800
+@@ -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;
+
--- /dev/null
+Upstream-Status: Pending
+
+Index: gtk+-2.21.2/gdk/x11/gdkevents-x11.c
+===================================================================
+--- gtk+-2.21.2.orig/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:04.000000000 +0800
++++ gtk+-2.21.2/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:06.000000000 +0800
+@@ -3062,10 +3062,9 @@
+ {
+ GdkScreenX11 *screen = data;
+
+- if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent))
+- return GDK_FILTER_REMOVE;
+- else
+- return GDK_FILTER_CONTINUE;
++ xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent);
++
++ return GDK_FILTER_CONTINUE;
+ }
+
+ static Bool
--- /dev/null
+SUMMARY = "Multi-platform toolkit for creating GUIs"
+DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
+set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites."
+HOMEPAGE = "http://www.gtk.org"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2 LGPLv2+ LGPLv2.1+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+
+SECTION = "libs"
+DEPENDS = "glib-2.0 tiff pango atk jpeg libpng libxext libxcursor \
+ gtk-doc-native docbook-utils-native libxrandr libgcrypt \
+ libxdamage libxrender libxcomposite cairo jasper gdk-pixbuf \
+ gtk+-native gdk-pixbuf-native docbook-utils-native"
+DEPENDS_virtclass-native = "libpng-native atk-native pango-native \
+ cairo-native libxrender-native libxext-native libgcrypt-native gdk-pixbuf-native"
+
+inherit autotools pkgconfig
+
+PACKAGES += "libgail gtk-demo"
+
+FILES_${PN} = "${bindir}/gtk-update-icon-cache \
+ ${bindir}/gtk-query-immodules-2.0 \
+ ${libdir}/lib*so.* \
+ ${datadir}/themes ${sysconfdir} \
+ ${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so"
+
+FILES_${PN}-dev += " \
+ ${datadir}/gtk-2.0/include \
+ ${libdir}/gtk-2.0/include \
+ ${libdir}/gtk-2.0/modules/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/loaders/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/immodules/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/printbackends/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/engines/*.la \
+ ${bindir}/gtk-builder-convert"
+
+FILES_${PN}-dbg += " \
+ ${libdir}/gtk-2.0/modules/.debug/* \
+ ${libdir}/gtk-2.0/${LIBV}/loaders/.debug/* \
+ ${libdir}/gtk-2.0/${LIBV}/immodules/.debug/* \
+ ${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
+ ${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
+
+FILES_gtk-demo = " \
+ ${datadir}/gtk-2.0/demo/* \
+ ${bindir}/gtk-demo \
+ "
+
+FILES_libgail = " \
+ ${libdir}/gtk-2.0/modules/libgail.so \
+ ${libdir}/gtk-2.0/modules/libferret.so \
+ "
+
+GTKBASE_RRECOMMENDS ?= "ttf-dejavu-sans gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm shared-mime-info"
+GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
+
+RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}"
+RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
+
+do_install () {
+ autotools_do_install
+
+ install -d ${D}${sysconfdir}/gtk-2.0
+
+ mkdir -p ${D}${libdir}/gtk-2.0/include
+ install -m 0644 gdk/gdkconfig.h ${D}${libdir}/gtk-2.0/include/gdkconfig.h
+
+ install -m 0644 gtk/gtkfilechooserprivate.h ${D}${includedir}/gtk-2.0/gtk/
+ install -m 0644 gtk/gtkfilechooserutils.h ${D}${includedir}/gtk-2.0/gtk/
+ install -m 0644 gtk/gtkfilesystemmodel.h ${D}${includedir}/gtk-2.0/gtk/
+}
+
+SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess"
+
+gtk_sysroot_preprocess () {
+ if [ -e ${D}${bindir}/gtk-builder-convert ]; then
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/gtk-builder-convert ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ fi
+}
+
+postinst_prologue() {
+if [ "x$D" != "x" ]; then
+ exit 1
+fi
+
+}
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \
+ file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \
+ file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c"
+SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.xz \
+ file://xsettings.patch;patch=1 \
+ file://run-iconcache.patch;patch=1 \
+ file://configure-nm.patch;patch=1 \
+ file://hardcoded_libtool.patch;patch=1 \
+ file://cellrenderer-cairo.patch;patch=1;pnum=0 \
+ file://toggle-font.diff;patch=1;pnum=0 \
+ file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch;patch=1 \
+ file://doc-fixes.patch;patch=1 \
+ file://0001-GtkButton-do-not-prelight-in-touchscreen-mode.patch;patch=1 \
+ file://do_gtkdocize.patch;patch=1 \
+ file://0001-gdk_drawable_get_screen-used-for-mask-which-is-a-pix.patch;patch=1 \
+ file://0002-threads-Do-not-release-the-GDK-lock-if-it-hasn-t-bee.patch;patch=1 \
+ file://0004-pixbuf-engine-Avoid-a-crash-if-widget-is-NULL.patch;patch=1 \
+ "
+
+# TO MERGE
+# file://entry-cairo.patch;striplevel=0
+# file://filesystem-volumes.patch
+# file://filechooser-props.patch
+# file://filechooser-default.patch
+# file://filechooser-sizefix.patch
+# temporary
+# file://gtklabel-resize-patch
+# file://menu-deactivate.patch
+# file://combo-arrow-size.patch;striplevel=0
+# file://configurefix.patch
+
+PR = "r0"
+
+SRC_URI[md5sum] = "f80ac8aa95ea8482ad89656d0370752e"
+SRC_URI[sha256sum] = "12ceb2e198c82bfb93eb36348b6e9293c8fdcd60786763d04cfec7ebe7ed3d6d"
+
+BBCLASSEXTEND = "native"
+
+ARM_INSTRUCTION_SET = "arm"
+
+EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
+EXTRA_OECONF_append_virtclass-native = " --without-libtiff --without-libjpeg --disable-cups"
+
+LEAD_SONAME = "libgtk-x11-2.0.so"
+LIBV = "2.10.0"
+
+PACKAGES_DYNAMIC += "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)
+ immodules_root = os.path.join(gtk_libdir, 'immodules')
+ printmodules_root = os.path.join(gtk_libdir, 'printbackends');
+
+ 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')
+ do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s')
+
+ 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
+