From: Grazvydas Ignotas Date: Thu, 9 Oct 2014 21:47:59 +0000 (+0300) Subject: gtk+: update to 2.24.24 X-Git-Tag: sz_173~103 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abaf992a1ac59513ad2878d4e1fc596c1b5e360b;p=openembedded.git gtk+: update to 2.24.24 --- diff --git a/conf/distro/include/angstrom-2008-preferred-versions.inc b/conf/distro/include/angstrom-2008-preferred-versions.inc index c84bdaae13..b7315abd0b 100644 --- a/conf/distro/include/angstrom-2008-preferred-versions.inc +++ b/conf/distro/include/angstrom-2008-preferred-versions.inc @@ -12,9 +12,9 @@ PREFERRED_VERSION_glib-2.0 = "2.40.2" 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" diff --git a/recipes/gtk+/gtk+-2.24.24/0001-GtkButton-do-not-prelight-in-touchscreen-mode.patch b/recipes/gtk+/gtk+-2.24.24/0001-GtkButton-do-not-prelight-in-touchscreen-mode.patch new file mode 100644 index 0000000000..71e334d897 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/0001-GtkButton-do-not-prelight-in-touchscreen-mode.patch @@ -0,0 +1,48 @@ +From d1f7a894674dfdd6769f1bbae31eb1a69e451a5c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +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 +--- + 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 + diff --git a/recipes/gtk+/gtk+-2.24.24/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch b/recipes/gtk+/gtk+-2.24.24/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch new file mode 100644 index 0000000000..354f0ab376 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch @@ -0,0 +1,30 @@ +From 69b9441eab2a7215509687dc22b48b6f212d22aa Mon Sep 17 00:00:00 2001 +From: Rob Bradford +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; diff --git a/recipes/gtk+/gtk+-2.24.24/0001-gdk_drawable_get_screen-used-for-mask-which-is-a-pix.patch b/recipes/gtk+/gtk+-2.24.24/0001-gdk_drawable_get_screen-used-for-mask-which-is-a-pix.patch new file mode 100644 index 0000000000..cb278595e7 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/0001-gdk_drawable_get_screen-used-for-mask-which-is-a-pix.patch @@ -0,0 +1,29 @@ +From d9164e9c6075f95aad11012ec4114d97b26aa7c5 Mon Sep 17 00:00:00 2001 +From: Sebastian Gerhardt +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 + diff --git a/recipes/gtk+/gtk+-2.24.24/0002-threads-Do-not-release-the-GDK-lock-if-it-hasn-t-bee.patch b/recipes/gtk+/gtk+-2.24.24/0002-threads-Do-not-release-the-GDK-lock-if-it-hasn-t-bee.patch new file mode 100644 index 0000000000..f150a9818a --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/0002-threads-Do-not-release-the-GDK-lock-if-it-hasn-t-bee.patch @@ -0,0 +1,88 @@ +From fbf38d16bcc26630f0f721d266509f5bc292f606 Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi +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 + diff --git a/recipes/gtk+/gtk+-2.24.24/0004-pixbuf-engine-Avoid-a-crash-if-widget-is-NULL.patch b/recipes/gtk+/gtk+-2.24.24/0004-pixbuf-engine-Avoid-a-crash-if-widget-is-NULL.patch new file mode 100644 index 0000000000..3b37971e92 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/0004-pixbuf-engine-Avoid-a-crash-if-widget-is-NULL.patch @@ -0,0 +1,31 @@ +From 1d0e2d58385bd01fdb753bf40ba2f4c32ccd0cc8 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +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 + diff --git a/recipes/gtk+/gtk+-2.24.24/cellrenderer-cairo.patch b/recipes/gtk+/gtk+-2.24.24/cellrenderer-cairo.patch new file mode 100644 index 0000000000..ba893292d6 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/cellrenderer-cairo.patch @@ -0,0 +1,31 @@ +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, diff --git a/recipes/gtk+/gtk+-2.24.24/configure-nm.patch b/recipes/gtk+/gtk+-2.24.24/configure-nm.patch new file mode 100644 index 0000000000..d67b797852 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/configure-nm.patch @@ -0,0 +1,21 @@ +Upstream-Status: Pending +https://bugzilla.gnome.org/show_bug.cgi?id=671515 + +Signed-Off-By: Xiaofeng Yan +# Pick up ${NM} from the environment + +Updated to apply to gtk+-2.24.15 + +Signed-off-by: Marko Lindqvist +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]) diff --git a/recipes/gtk+/gtk+-2.24.24/configurefix.patch b/recipes/gtk+/gtk+-2.24.24/configurefix.patch new file mode 100644 index 0000000000..2803691246 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/configurefix.patch @@ -0,0 +1,87 @@ +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) + diff --git a/recipes/gtk+/gtk+-2.24.24/do_gtkdocize.patch b/recipes/gtk+/gtk+-2.24.24/do_gtkdocize.patch new file mode 100644 index 0000000000..e9a6e1390f --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/do_gtkdocize.patch @@ -0,0 +1,239 @@ +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 diff --git a/recipes/gtk+/gtk+-2.24.24/doc-fixes.patch b/recipes/gtk+/gtk+-2.24.24/doc-fixes.patch new file mode 100644 index 0000000000..74e479fd1b --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/doc-fixes.patch @@ -0,0 +1,22 @@ +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 + +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 \ diff --git a/recipes/gtk+/gtk+-2.24.24/entry-cairo.patch b/recipes/gtk+/gtk+-2.24.24/entry-cairo.patch new file mode 100644 index 0000000000..3083b77830 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/entry-cairo.patch @@ -0,0 +1,105 @@ +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 + } + } + diff --git a/recipes/gtk+/gtk+-2.24.24/hardcoded_libtool.patch b/recipes/gtk+/gtk+-2.24.24/hardcoded_libtool.patch new file mode 100644 index 0000000000..1ae728e70d --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/hardcoded_libtool.patch @@ -0,0 +1,35 @@ +Upstream-Status: Inappropriate [embedded specific] + +Updated to apply to gtk+-2.24.15 + +Signed-off-by: Marko Lindqvist +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//"` diff --git a/recipes/gtk+/gtk+-2.24.24/run-iconcache.patch b/recipes/gtk+/gtk+-2.24.24/run-iconcache.patch new file mode 100644 index 0000000000..a4e2254c59 --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/run-iconcache.patch @@ -0,0 +1,24 @@ +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) \ diff --git a/recipes/gtk+/gtk+-2.24.24/toggle-font.diff b/recipes/gtk+/gtk+-2.24.24/toggle-font.diff new file mode 100644 index 0000000000..340d12008b --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/toggle-font.diff @@ -0,0 +1,102 @@ +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; + diff --git a/recipes/gtk+/gtk+-2.24.24/xsettings.patch b/recipes/gtk+/gtk+-2.24.24/xsettings.patch new file mode 100644 index 0000000000..d0a970ad4d --- /dev/null +++ b/recipes/gtk+/gtk+-2.24.24/xsettings.patch @@ -0,0 +1,20 @@ +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 diff --git a/recipes/gtk+/gtk+_2.24.24.bb b/recipes/gtk+/gtk+_2.24.24.bb new file mode 100644 index 0000000000..3a71ed0855 --- /dev/null +++ b/recipes/gtk+/gtk+_2.24.24.bb @@ -0,0 +1,171 @@ +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 +