diff options
Diffstat (limited to 'external/poky/meta/recipes-gnome/gtk+')
16 files changed, 196 insertions, 649 deletions
diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+.inc b/external/poky/meta/recipes-gnome/gtk+/gtk+.inc deleted file mode 100644 index 14ed8d81..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+.inc +++ /dev/null @@ -1,107 +0,0 @@ -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" - -inherit distro_features_check -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" - -# This picks stable releases in the 2.x series (but not 2.90 onwards, -# which were GNOME 3 betas). -UPSTREAM_CHECK_REGEX = "(?P<pver>2\.([0-8]*[02468])+(\.\d+)+)" - -X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" -DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native \ - cairo gdk-pixbuf" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)}" - -PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}" -# without --with-gdktarget=directfb it will check for cairo-xlib which isn't available without X11 DISTRO_FEATURE -PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb" -PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native" - -inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache gobject-introspection manpages - -PACKAGES += "libgail gtk-demo" - -FILES_${PN} += "${bindir}/gtk-update-icon-cache-2.0 \ - ${bindir}/gtk-query-immodules-2.0 \ - ${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_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 ?= "liberation-fonts \ - gdk-pixbuf-loader-png \ - gdk-pixbuf-loader-jpeg \ - gdk-pixbuf-loader-gif \ - gdk-pixbuf-loader-xpm \ - shared-mime-info \ - gnome-theme-adwaita \ - " -GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" - -RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" -RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" - -ALTERNATIVE_${PN} = "gtk-update-icon-cache" -ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-2.0" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" -} - -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 ${S}/gtk/gtkfilechooserprivate.h ${D}${includedir}/gtk-2.0/gtk/ - install -m 0644 ${S}/gtk/gtkfilechooserutils.h ${D}${includedir}/gtk-2.0/gtk/ - install -m 0644 ${S}/gtk/gtkfilesystemmodel.h ${D}${includedir}/gtk-2.0/gtk/ - - mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0 - - # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache - mkdir -p ${D}${libexecdir} - ln ${D}${bindir}/gtk-query-immodules-2.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-2.0 -} - -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 -} - diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch deleted file mode 100644 index 83be39c3..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 34ce93e1c50bfb88f92a687d4f82de55584f3f6a Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Wed, 11 Apr 2018 14:20:39 +0300 -Subject: [PATCH] Do not look into $HOME when looking for gtk modules - -On the host it causes host contamination, on the target it's a -potential security issue. Gtk+3 has already removed this. - -Upstream-Status: Inappropriate [gtk2 is in maintenance mode] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - gtk/gtkmodules.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/gtk/gtkmodules.c b/gtk/gtkmodules.c -index 50729b6..e09b583 100644 ---- a/gtk/gtkmodules.c -+++ b/gtk/gtkmodules.c -@@ -65,10 +65,6 @@ get_module_path (void) - if (result) - return result; - -- home_dir = g_get_home_dir(); -- if (home_dir) -- home_gtk_dir = g_build_filename (home_dir, ".gtk-2.0", NULL); -- - module_path_env = g_getenv ("GTK_PATH"); - exe_prefix = g_getenv ("GTK_EXE_PREFIX"); - diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch deleted file mode 100644 index 74e479fd..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch +++ /dev/null @@ -1,22 +0,0 @@ -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 \ diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch deleted file mode 100644 index 9eb7f6bf..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch +++ /dev/null @@ -1,36 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Updated to apply to gtk+-2.24.15 - -Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> -Index: gtk+-2.24.31/configure.ac -=================================================================== ---- gtk+-2.24.31.orig/configure.ac -+++ gtk+-2.24.31/configure.ac -@@ -415,7 +415,7 @@ AC_MSG_CHECKING([Whether to write depend - 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 -@@ -772,7 +772,7 @@ else - 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/'` -@@ -1579,7 +1579,7 @@ fi - # 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/external/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch deleted file mode 100644 index 96e1f5fe..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fixes - -include/gtk-2.0/gtk/gtkitemfactory.h:47:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] - typedef void (*GtkItemFactoryCallback) (); - -gcc5 has -Wstrict-prototypes on by default for -Werror so this becomes a build failure for consumers -of this header e.g. matchbox-panel-2 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: gtk+-2.24.27/gtk/gtkitemfactory.h -=================================================================== ---- gtk+-2.24.27.orig/gtk/gtkitemfactory.h -+++ gtk+-2.24.27/gtk/gtkitemfactory.h -@@ -44,7 +44,7 @@ typedef void (*GtkPrintFunc) (gpoint - * (Note that if we are included from a C++ program () will mean - * (void) so an explicit cast will be needed.) - */ --typedef void (*GtkItemFactoryCallback) (); -+typedef void (*GtkItemFactoryCallback) (void); - typedef void (*GtkItemFactoryCallback1) (gpointer callback_data, - guint callback_action, - GtkWidget *widget); diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff b/external/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff deleted file mode 100644 index 340d1200..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff +++ /dev/null @@ -1,102 +0,0 @@ -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/external/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch deleted file mode 100644 index d0a970ad..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch +++ /dev/null @@ -1,20 +0,0 @@ -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/external/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/external/poky/meta/recipes-gnome/gtk+/gtk+3.inc index 6331a432..5d1f59ea 100644 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -10,7 +10,11 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" -inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection +inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection + +BBCLASSEXTEND = "native nativesdk" + +GSETTINGS_PACKAGE_class-native = "" # versions >= 3.90 are development versions, otherwise like upstream-version-is-even UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar" @@ -33,8 +37,6 @@ EXTRA_OECONF += " \ --disable-glibtest \ --disable-xinerama \ --enable-modules \ - --disable-cups \ - --disable-colord \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "--disable-gtk-doc", d)} \ " @@ -49,16 +51,35 @@ PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fon # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy" PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" -PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/mesa wayland-native" +PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" +PACKAGECONFIG[cloudprint] = "--enable-cloudprint,--disable-cloudprint,rest json-glib" +PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" -do_install_append() { - mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 +prepare_gtk_scripts() { + mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache mkdir -p ${D}${libexecdir} ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0 } +do_install_append_class-target() { + prepare_gtk_scripts +} + +do_install_append_class-nativesdk() { + prepare_gtk_scripts +} + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache + create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache +} + +PROVIDES += "gtk-icon-utils" PACKAGES =+ "${PN}-demo" LIBV = "3.0.0" @@ -104,6 +125,10 @@ GTKBASE_RRECOMMENDS ?= "liberation-fonts \ shared-mime-info \ adwaita-icon-theme-symbolic \ " + +GTKBASE_RRECOMMENDS_class-native ?= "\ + " + GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" @@ -123,11 +148,11 @@ python populate_packages_prepend () { immodules_root = os.path.join(gtk_libdir, 'immodules') printmodules_root = os.path.join(gtk_libdir, 'printbackends'); - immodules = do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') + immodules = do_split_packages(d, immodules_root, r'^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') if immodules: d.setVar("GTKIMMODULES_PACKAGES", " ".join(immodules)) - do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') + do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') if (d.getVar('DEBIAN_NAMES')): d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch index cc7edf76..80dc2d7a 100644 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch @@ -1,7 +1,7 @@ -From 23a563155406980dfc8cf6f7c2da6cce0ac310f0 Mon Sep 17 00:00:00 2001 +From 6575ab0f0e8c1bba033ad1616511e37a2ec995ff Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen <jussi.kukkonen@intel.com> Date: Fri, 16 Oct 2015 16:35:16 +0300 -Subject: [PATCH 2/4] Do not try to initialize GL without libGL +Subject: [PATCH] Do not try to initialize GL without libGL _gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys GLX api which will exit() if libGL.so.1 is not present. We do not @@ -22,10 +22,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> 2 files changed, 11 insertions(+) diff --git a/configure.ac b/configure.ac -index 757fd7c..0a48875 100644 +index e9f5583..bd651bb 100644 --- a/configure.ac +++ b/configure.ac -@@ -351,6 +351,12 @@ AC_ARG_ENABLE(cloudproviders, +@@ -346,6 +346,12 @@ AC_ARG_ENABLE(cloudproviders, [AS_HELP_STRING([--enable-cloudproviders], [enable libcloudproviders integration])], [cloudproviders_set=yes]) @@ -36,8 +36,8 @@ index 757fd7c..0a48875 100644 + AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime]) +]) - if test -z "$backend_set"; then - if test "$platform_win32" = yes; then + AC_ARG_ENABLE(profiler, + [AS_HELP_STRING([--enable-profiler], diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index 81479d8..3c8c5c0 100644 --- a/gdk/x11/gdkvisual-x11.c @@ -55,6 +55,3 @@ index 81479d8..3c8c5c0 100644 } gint --- -2.14.1 - diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch index d2f12dc7..398c9bc3 100644 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch @@ -1,7 +1,7 @@ -From de36df70d87ba3453ed4f2b92e990021c67238f5 Mon Sep 17 00:00:00 2001 +From f83fcf1991afad6d9c15546b2ccd775dad4e314c Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen <jussi.kukkonen@intel.com> Date: Tue, 21 Jun 2016 15:11:39 +0300 -Subject: [PATCH 3/4] Add --disable-opengl configure option +Subject: [PATCH] Add --disable-opengl configure option --disable-opengl will remove the dependency on libepoxy and on the OpenGL APIs. This is useful for those who want to keep using gtk+3 @@ -21,35 +21,36 @@ Upstream-Status: Inappropriate [Evil eye expected from upstream] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- - configure.ac | 13 +++++-- - demos/gtk-demo/glarea.c | 14 ++++++++ - docs/tools/Makefile.am | 9 +++-- - docs/tools/widgets.c | 4 ++- - gdk/gdkdisplay.c | 4 ++- - gdk/gdkgl.c | 10 ++++++ - gdk/gdkglcontext.c | 6 ++++ - gdk/gdkwindow.c | 13 +++++++ - gdk/x11/Makefile.am | 30 +++++++++++++--- - gdk/x11/gdkdisplay-x11.c | 6 +++- - gdk/x11/gdkscreen-x11.c | 5 +++ - gdk/x11/gdkwindow-x11.c | 4 +++ - gdk/x11/gdkx-autocleanups.h | 2 ++ + configure.ac | 13 ++++- + demos/gtk-demo/glarea.c | 14 ++++++ + docs/tools/Makefile.am | 9 +++- + docs/tools/widgets.c | 4 +- + gdk/Makefile.am | 8 ++- + gdk/gdkdisplay.c | 4 +- + gdk/gdkgl.c | 10 ++++ + gdk/gdkglcontext.c | 6 +++ + gdk/gdkwindow.c | 13 +++++ + gdk/x11/Makefile.am | 30 +++++++++-- + gdk/x11/gdkdisplay-x11.c | 6 ++- + gdk/x11/gdkscreen-x11.c | 5 ++ + gdk/x11/gdkwindow-x11.c | 4 ++ + gdk/x11/gdkx-autocleanups.h | 2 + gdk/x11/{gdkx.h => gdkx-with-gl-context.h} | 1 - - gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++++++++++ - gtk/Makefile.am | 3 +- - gtk/gtkglarea.c | 20 ++++++++++- - gtk/inspector/general.c | 6 ++++ - tests/Makefile.am | 10 ++++-- - testsuite/gtk/objects-finalize.c | 2 ++ - 20 files changed, 202 insertions(+), 18 deletions(-) + gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++ + gtk/Makefile.am | 2 +- + gtk/gtkglarea.c | 20 +++++++- + gtk/inspector/general.c | 6 +++ + tests/Makefile.am | 10 ++-- + testsuite/gtk/objects-finalize.c | 2 + + 21 files changed, 208 insertions(+), 19 deletions(-) rename gdk/x11/{gdkx.h => gdkx-with-gl-context.h} (98%) create mode 100644 gdk/x11/gdkx-without-gl-context.h diff --git a/configure.ac b/configure.ac -index 0a48875..6f0a3a6 100644 +index bd651bb..b4c061f 100644 --- a/configure.ac +++ b/configure.ac -@@ -351,6 +351,15 @@ AC_ARG_ENABLE(cloudproviders, +@@ -346,6 +346,15 @@ AC_ARG_ENABLE(cloudproviders, [AS_HELP_STRING([--enable-cloudproviders], [enable libcloudproviders integration])], [cloudproviders_set=yes]) @@ -65,21 +66,21 @@ index 0a48875..6f0a3a6 100644 AC_ARG_ENABLE(glx, [AS_HELP_STRING([--enable-glx], [When enabled Gdk will try to initialize GLX])]) -@@ -1372,7 +1381,7 @@ CFLAGS="$saved_cflags" +@@ -1345,7 +1354,7 @@ CFLAGS="$saved_cflags" LDFLAGS="$saved_ldflags" GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version" --GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES" -+GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES" +-GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version" ++GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version" PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES) GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB" -@@ -1406,7 +1415,7 @@ fi +@@ -1379,7 +1388,7 @@ fi PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version" --GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version" -+GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $EPOXY_PACKAGES" +-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES epoxy >= epoxy_required_version fribidi >= fribidi_required_version" ++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $EPOXY_PACKAGES fribidi >= fribidi_required_version" if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2" fi @@ -167,7 +168,7 @@ index b51e4ae..82409c7 100644 return TRUE; } diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am -index 6a6d70f..5cdf312 100644 +index bec43e3..189e8fc 100644 --- a/docs/tools/Makefile.am +++ b/docs/tools/Makefile.am @@ -9,13 +9,18 @@ AM_CPPFLAGS = \ @@ -208,11 +209,44 @@ index 932daf1..54239d6 100644 info = new_widget_info ("glarea", widget, MEDIUM); return info; +diff --git a/gdk/Makefile.am b/gdk/Makefile.am +index 479d6a1..7edbee8 100644 +--- a/gdk/Makefile.am ++++ b/gdk/Makefile.am +@@ -274,7 +274,6 @@ x11_introspection_files = \ + x11/gdkeventsource.c \ + x11/gdkeventtranslator.c \ + x11/gdkgeometry-x11.c \ +- x11/gdkglcontext-x11.c \ + x11/gdkkeys-x11.c \ + x11/gdkmain-x11.c \ + x11/gdkmonitor-x11.c \ +@@ -300,7 +299,6 @@ x11_introspection_files = \ + x11/gdkx11display.h \ + x11/gdkx11displaymanager.h \ + x11/gdkx11dnd.h \ +- x11/gdkx11glcontext.h \ + x11/gdkx11keys.h \ + x11/gdkx11monitor.h \ + x11/gdkx11property.h \ +@@ -310,6 +308,12 @@ x11_introspection_files = \ + x11/gdkx11visual.h \ + x11/gdkx11window.h + ++if HAVE_OPENGL ++x11_introspection_files += \ ++ x11/gdkglcontext-x11.c \ ++ x11/gdkx11glcontext.h ++endif ++ + GdkX11-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile + GdkX11_3_0_gir_SCANNERFLAGS = \ + --identifier-prefix=Gdk \ diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c -index 40225e9..c55e1de 100644 +index 240c99f..9eb49bf 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c -@@ -2406,7 +2406,9 @@ gboolean +@@ -2419,7 +2419,9 @@ gboolean gdk_display_make_gl_context_current (GdkDisplay *display, GdkGLContext *context) { @@ -224,12 +258,12 @@ index 40225e9..c55e1de 100644 GdkRenderingMode diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c -index 8e7b8c2..b579b22 100644 +index 933e204..1767508 100644 --- a/gdk/gdkgl.c +++ b/gdk/gdkgl.c -@@ -22,7 +22,9 @@ - - #include "gdkinternals.h" +@@ -26,7 +26,9 @@ + # include "win32/gdkwin32.h" + #endif +#ifdef HAVE_OPENGL #include <epoxy/gl.h> @@ -237,7 +271,7 @@ index 8e7b8c2..b579b22 100644 #include <math.h> #include <string.h> -@@ -36,6 +38,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, +@@ -40,6 +42,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, g_object_ref (window), g_object_unref); } @@ -245,7 +279,7 @@ index 8e7b8c2..b579b22 100644 static const char * get_vertex_type_name (int type) { -@@ -208,6 +211,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) +@@ -212,6 +215,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) glUseProgram (paint_data->current_program->program); } } @@ -253,7 +287,7 @@ index 8e7b8c2..b579b22 100644 void gdk_gl_texture_quads (GdkGLContext *paint_context, -@@ -216,6 +220,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, +@@ -220,6 +224,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, GdkTexturedQuad *quads, gboolean flip_colors) { @@ -261,7 +295,7 @@ index 8e7b8c2..b579b22 100644 GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context); GdkGLContextProgram *program; GdkWindow *window = gdk_gl_context_get_window (paint_context); -@@ -289,6 +294,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, +@@ -293,6 +298,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, glDisableVertexAttribArray (program->position_location); glDisableVertexAttribArray (program->uv_location); @@ -269,7 +303,7 @@ index 8e7b8c2..b579b22 100644 } /* x,y,width,height describes a rectangle in the gl render buffer -@@ -337,6 +343,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, +@@ -341,6 +347,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, int width, int height) { @@ -277,7 +311,7 @@ index 8e7b8c2..b579b22 100644 GdkGLContext *paint_context; cairo_surface_t *image; cairo_matrix_t matrix; -@@ -707,6 +714,7 @@ out: +@@ -718,6 +725,7 @@ out: if (clip_region) cairo_region_destroy (clip_region); @@ -285,7 +319,7 @@ index 8e7b8c2..b579b22 100644 } /* This is always called with the paint context current */ -@@ -714,6 +722,7 @@ void +@@ -725,6 +733,7 @@ void gdk_gl_texture_from_surface (cairo_surface_t *surface, cairo_region_t *region) { @@ -293,14 +327,14 @@ index 8e7b8c2..b579b22 100644 GdkGLContext *paint_context; cairo_surface_t *image; double device_x_offset, device_y_offset; -@@ -814,4 +823,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, +@@ -825,4 +834,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, glDisable (GL_SCISSOR_TEST); glDeleteTextures (1, &texture_id); +#endif } diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c -index c79dca0..8a7bec2 100644 +index dfbed63..556f0a3 100644 --- a/gdk/gdkglcontext.c +++ b/gdk/gdkglcontext.c @@ -85,7 +85,9 @@ @@ -337,7 +371,7 @@ index c79dca0..8a7bec2 100644 GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); gboolean has_npot, has_texture_rectangle; -@@ -847,6 +852,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) +@@ -853,6 +858,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) priv->use_texture_rectangle ? "yes" : "no")); priv->extensions_checked = TRUE; @@ -346,7 +380,7 @@ index c79dca0..8a7bec2 100644 /** diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c -index c0e0a7d..437ab03 100644 +index 6ae0f86..4e48a2a 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -45,7 +45,9 @@ @@ -359,7 +393,7 @@ index c0e0a7d..437ab03 100644 /* for the use of round() */ #include "fallback-c89.c" -@@ -2822,6 +2824,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, +@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, { GError *internal_error = NULL; @@ -373,7 +407,7 @@ index c0e0a7d..437ab03 100644 if (_gdk_gl_flags & GDK_GL_DISABLE) { g_set_error_literal (error, GDK_GL_ERROR, -@@ -2957,6 +2966,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, +@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, } else { @@ -381,7 +415,7 @@ index c0e0a7d..437ab03 100644 gdk_gl_context_make_current (context); /* With gl we always need a surface to combine the gl drawing with the native drawing. */ -@@ -2971,6 +2981,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, +@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glViewport (0, 0, ww, wh); @@ -389,7 +423,7 @@ index c0e0a7d..437ab03 100644 } } -@@ -3034,6 +3045,7 @@ gdk_window_end_paint_internal (GdkWindow *window) +@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window) gdk_gl_context_make_current (window->gl_paint_context); @@ -397,7 +431,7 @@ index c0e0a7d..437ab03 100644 if (!cairo_region_is_empty (opaque_region)) gdk_gl_texture_from_surface (window->current_paint.surface, opaque_region); -@@ -3044,6 +3056,7 @@ gdk_window_end_paint_internal (GdkWindow *window) +@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window) window->current_paint.need_blend_region); glDisable(GL_BLEND); } @@ -406,7 +440,7 @@ index c0e0a7d..437ab03 100644 cairo_region_destroy (opaque_region); diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am -index 6289f3a..cbbac79 100644 +index 32b1f24..6352313 100644 --- a/gdk/x11/Makefile.am +++ b/gdk/x11/Makefile.am @@ -40,8 +40,6 @@ libgdk_x11_la_SOURCES = \ @@ -460,7 +494,7 @@ index 6289f3a..cbbac79 100644 gdkx11keys.h \ gdkx11monitor.h \ gdkx11property.h \ -@@ -87,9 +102,16 @@ libgdkx11include_HEADERS = \ +@@ -87,10 +102,17 @@ libgdkx11include_HEADERS = \ gdkx11visual.h \ gdkx11window.h @@ -472,13 +506,14 @@ index 6289f3a..cbbac79 100644 # don't seem to be correctly expanded for the dist files. EXTRA_DIST += \ + gdkx.h \ - gdksettings.c + gdksettings.c \ + meson.build +MAINTAINERCLEANFILES = gdkx.h + -include $(top_srcdir)/git.mk diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c -index e9a263f..2829a31 100644 +index 817944e..e7a2947 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -37,7 +37,9 @@ @@ -489,9 +524,9 @@ index e9a263f..2829a31 100644 #include "gdkglcontext-x11.h" +#endif #include "gdk-private.h" + #include "gdkprofilerprivate.h" - #include <glib.h> -@@ -3169,7 +3171,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) +@@ -3188,7 +3190,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list; display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target; @@ -503,10 +538,10 @@ index e9a263f..2829a31 100644 display_class->get_default_seat = gdk_x11_display_get_default_seat; diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c -index 7bf9979..cd1cc9d 100644 +index 8939ae9..931bff9 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c -@@ -1643,3 +1643,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen) +@@ -1723,3 +1723,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen) { return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP"); } @@ -516,7 +551,7 @@ index 7bf9979..cd1cc9d 100644 +void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {} +#endif diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c -index 3d6fd3b..2bd5c87 100644 +index 1fe7b90..d23a347 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -36,7 +36,9 @@ @@ -529,7 +564,7 @@ index 3d6fd3b..2bd5c87 100644 #include "gdkprivate-x11.h" #include "gdk-private.h" -@@ -5801,7 +5803,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) +@@ -5861,7 +5863,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) impl_class->set_opaque_region = gdk_x11_window_set_opaque_region; impl_class->set_shadow_width = gdk_x11_window_set_shadow_width; impl_class->show_window_menu = gdk_x11_window_show_window_menu; @@ -633,30 +668,23 @@ index 0000000..c9e2617 + +#endif /* __GDK_X_H__ */ diff --git a/gtk/Makefile.am b/gtk/Makefile.am -index 842c2f9..0921bc7 100644 +index eaca473..99352d1 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am -@@ -1416,14 +1416,13 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins. - && cp xgen-gptbc gtkprivatetypebuiltins.c \ - && rm -f xgen-gptbc - -- - gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile - $(AM_V_GEN) (echo '#undef GTK_COMPILATION' && echo '#include <gtk/gtkx.h>') > xgen-gtfsrc.c && \ - echo 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS' > xgen-gtf && \ +@@ -1449,7 +1449,7 @@ gtktypefuncs.inc: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_s ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \ $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \ sort | uniq | \ - $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \ + $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; s/^.*gdk_x11_gl.*$$/#ifdef HAVE_OPENGL\n&\n#endif/; }' >> xgen-gtf \ && cp xgen-gtf $@ && rm -f xgen-gtf - gtktestutils.c: gtktypefuncs.c + $(srcdir)/gtktestutils.c: gtktypefuncs.inc diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c -index 094378e..f7c7f47 100644 +index 9a56443..7de0db2 100644 --- a/gtk/gtkglarea.c +++ b/gtk/gtkglarea.c -@@ -28,7 +28,9 @@ +@@ -29,7 +29,9 @@ #include "gtkprivate.h" #include "gtkrender.h" @@ -666,7 +694,7 @@ index 094378e..f7c7f47 100644 /** * SECTION:gtkglarea -@@ -368,9 +370,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) +@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) static void gtk_gl_area_resize (GtkGLArea *area, int width, int height) { @@ -679,7 +707,7 @@ index 094378e..f7c7f47 100644 /* * Creates all the buffer objects needed for rendering the scene */ -@@ -482,6 +487,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) +@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) priv->needs_render = TRUE; } @@ -687,7 +715,7 @@ index 094378e..f7c7f47 100644 /** * gtk_gl_area_attach_buffers: -@@ -500,6 +506,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) +@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) void gtk_gl_area_attach_buffers (GtkGLArea *area) { @@ -695,7 +723,7 @@ index 094378e..f7c7f47 100644 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); g_return_if_fail (GTK_IS_GL_AREA (area)); -@@ -532,11 +539,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) +@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer); } @@ -709,7 +737,7 @@ index 094378e..f7c7f47 100644 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); if (priv->context == NULL) -@@ -568,6 +577,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) +@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) glDeleteFramebuffersEXT (1, &priv->frame_buffer); priv->frame_buffer = 0; } @@ -717,7 +745,7 @@ index 094378e..f7c7f47 100644 } static void -@@ -678,6 +688,7 @@ gtk_gl_area_draw (GtkWidget *widget, +@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget, GtkGLArea *area = GTK_GL_AREA (widget); GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); gboolean unused; @@ -725,7 +753,7 @@ index 094378e..f7c7f47 100644 int w, h, scale; GLenum status; -@@ -689,7 +700,6 @@ gtk_gl_area_draw (GtkWidget *widget, +@@ -690,7 +701,6 @@ gtk_gl_area_draw (GtkWidget *widget, gtk_widget_get_allocated_height (widget)); return FALSE; } @@ -733,7 +761,7 @@ index 094378e..f7c7f47 100644 if (priv->context == NULL) return FALSE; -@@ -735,6 +745,14 @@ gtk_gl_area_draw (GtkWidget *widget, +@@ -736,6 +746,14 @@ gtk_gl_area_draw (GtkWidget *widget, } return TRUE; @@ -796,7 +824,7 @@ index c241ec8..24576dd 100644 if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) { diff --git a/tests/Makefile.am b/tests/Makefile.am -index e2db6e4..e51cf34 100644 +index ee1e8b5..e6c6502 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \ @@ -808,7 +836,7 @@ index e2db6e4..e51cf34 100644 testgrid \ testgtk \ testheaderbar \ -@@ -170,12 +168,18 @@ noinst_PROGRAMS = $(TEST_PROGS) \ +@@ -172,12 +170,18 @@ noinst_PROGRAMS = $(TEST_PROGS) \ testactionbar \ testwindowsize \ testpopover \ @@ -829,10 +857,10 @@ index e2db6e4..e51cf34 100644 noinst_PROGRAMS += testforeign endif diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c -index 0b3a519..07b096f 100644 +index 24540e3..e0f863a 100644 --- a/testsuite/gtk/objects-finalize.c +++ b/testsuite/gtk/objects-finalize.c -@@ -115,7 +115,9 @@ main (int argc, char **argv) +@@ -116,7 +116,9 @@ main (int argc, char **argv) all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE && all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 && all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER && @@ -842,6 +870,3 @@ index 0b3a519..07b096f 100644 #endif /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */ all_types[i] != GDK_TYPE_PIXBUF_LOADER && --- -2.14.1 - diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch new file mode 100644 index 00000000..e4bbd799 --- /dev/null +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch @@ -0,0 +1,19 @@ +Link with libfribidi, this is to avoid under linking where these functions are +used but the library is not linked in, and they are marked undefined by BFD linker +but gold linker refuses to link + +| ./.libs/libgdk-3.so: error: undefined reference to 'fribidi_get_bidi_type' + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending + +--- a/gdk/Makefile.am ++++ b/gdk/Makefile.am +@@ -55,6 +55,7 @@ LDADD = \ + -version-info $(LT_VERSION_INFO) \ + -export-dynamic \ + -rpath $(libdir) \ ++ -lfribidi \ + $(no_undefined) + + # diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch b/external/poky/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch new file mode 100644 index 00000000..7f87372c --- /dev/null +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch @@ -0,0 +1,19 @@ +If the resources file isn't sorted in some way then libgdk.so will differ +depending on the inode order of the resource files. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +diff --git a/gdk/Makefile.am b/gdk/Makefile.am +index e25b57ba50..26f2d57c6e 100644 +--- a/gdk/Makefile.am ++++ b/gdk/Makefile.am +@@ -465,7 +465,7 @@ stamp-gc-h: $(top_builddir)/config.status + # Resources + # + +-glsl_sources := $(wildcard $(srcdir)/resources/glsl/*.glsl) ++glsl_sources := $(sort $(wildcard $(srcdir)/resources/glsl/*.glsl)) + + gdk.gresource.xml: Makefile.am + $(AM_V_GEN) echo "<?xml version='1.0' encoding='UTF-8'?>" > $@; \ diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.30.bb b/external/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.14.bb index 697b5185..ab1f87c2 100644 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.30.bb +++ b/external/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.14.bb @@ -6,9 +6,11 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar file://0001-Hardcoded-libtool.patch \ file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ file://0003-Add-disable-opengl-configure-option.patch \ + file://link_fribidi.patch \ + file://sort-resources.patch \ " -SRC_URI[md5sum] = "61e60dc073e0a6893c72043d20579dc0" -SRC_URI[sha256sum] = "a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567" +SRC_URI[md5sum] = "62e39212fa0a84016a3392a9d291faf8" +SRC_URI[sha256sum] = "1c4d69f93ab884fd80c6b95115bfbc12d51ecd029178b6dad3672fdc5ff91e88" S = "${WORKDIR}/gtk+-${PV}" diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb b/external/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb deleted file mode 100644 index 89fca736..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb +++ /dev/null @@ -1,35 +0,0 @@ -require gtk+.inc - -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://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \ - file://xsettings.patch \ - file://hardcoded_libtool.patch \ - file://toggle-font.diff;striplevel=0 \ - file://doc-fixes.patch \ - file://strict-prototypes.patch \ - file://0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch \ - " - -SRC_URI[md5sum] = "d5742aa42275203a499b59b4c382a784" -SRC_URI[sha256sum] = "b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e" - -EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama" - -LIBV = "2.10.0" - -PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*" - -python populate_packages_prepend () { - gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}') - immodules_root = os.path.join(gtk_libdir, 'immodules') - printmodules_root = os.path.join(gtk_libdir, 'printbackends'); - - d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s'))) - do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s') - - if (d.getVar('DEBIAN_NAMES')): - d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0') -} diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.30.bb b/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.30.bb deleted file mode 100644 index 28e7a312..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.30.bb +++ /dev/null @@ -1,63 +0,0 @@ -SUMMARY = "Native icon utils for GTK+" -DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution." -SECTION = "libs" - -DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native" - -LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ - file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch" -SRC_URI[md5sum] = "61e60dc073e0a6893c72043d20579dc0" -SRC_URI[sha256sum] = "a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567" - -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ - file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ - file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" - -S = "${WORKDIR}/gtk+-${PV}" - -inherit pkgconfig native - -# versions >= 3.90 are development versions, otherwise like upstream-version-is-even -UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar" - -PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" - -do_configure() { - # Quite ugly but defines enough to compile the tools. - if ! test -f gtk/config.h; then - echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h - echo "#define HAVE_UNISTD_H 1" >> gtk/config.h - echo "#define HAVE_FTW_H 1" >> gtk/config.h - fi - if ! test -f gdk/config.h; then - touch gdk/config.h - fi -} - -do_compile() { - ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ - ${S}/gtk/updateiconcache.c \ - $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ - -o gtk-update-icon-cache - - ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ - ${S}/gtk/encodesymbolic.c \ - $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \ - -o gtk-encode-symbolic-svg -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} - install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir} - - create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache - create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache -} diff --git a/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch deleted file mode 100644 index 237f8037..00000000 --- a/external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 4d09ff324419fe4e671233044e424378da53969b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 9 Jun 2015 14:20:30 +0300 -Subject: [PATCH] Remove Gdk-dependency from gtk-encode-symbolic-svg - -Building gtk-encode-symbolic-svg without building Gdk is useful -as only the icon tools are needed on the native build: this makes -native build much faster and requires much less dependencies. - -Upstream-Status: Pending - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - gtk/encodesymbolic.c | 36 ++++++++++-------------------------- - 1 file changed, 10 insertions(+), 26 deletions(-) - -diff --git a/gtk/encodesymbolic.c b/gtk/encodesymbolic.c -index 9f7d015..1f07563 100644 ---- a/gtk/encodesymbolic.c -+++ b/gtk/encodesymbolic.c -@@ -19,7 +19,6 @@ - - #include <glib.h> - #include <gdk-pixbuf/gdk-pixdata.h> --#include <gdk/gdk.h> - #include <glib/gi18n.h> - - #ifdef HAVE_UNISTD_H -@@ -43,30 +42,18 @@ static GdkPixbuf * - load_symbolic_svg (char *file_data, gsize file_len, - int width, - int height, -- const GdkRGBA *fg, -- const GdkRGBA *success_color, -- const GdkRGBA *warning_color, -- const GdkRGBA *error_color, -+ const char *css_fg, -+ const char *css_success, -+ const char *css_warning, -+ const char *css_error, - GError **error) - { - GInputStream *stream; - GdkPixbuf *pixbuf; -- gchar *css_fg; -- gchar *css_success; -- gchar *css_warning; -- gchar *css_error; - gchar *data; - gchar *svg_width, *svg_height; - gchar *escaped_file_data; - -- css_fg = gdk_rgba_to_string (fg); -- -- css_success = css_warning = css_error = NULL; -- -- css_warning = gdk_rgba_to_string (warning_color); -- css_error = gdk_rgba_to_string (error_color); -- css_success = gdk_rgba_to_string (success_color); -- - /* Fetch size from the original icon */ - stream = g_memory_input_stream_new_from_data (file_data, file_len, NULL); - pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, error); -@@ -105,10 +92,6 @@ load_symbolic_svg (char *file_data, gsize file_len, - "</svg>", - NULL); - g_free (escaped_file_data); -- g_free (css_fg); -- g_free (css_warning); -- g_free (css_error); -- g_free (css_success); - g_free (svg_width); - g_free (svg_height); - -@@ -167,7 +150,8 @@ make_symbolic_pixbuf (char *file, - GError **error) - - { -- GdkRGBA r = { 1,0,0,1}, g = {0,1,0,1}; -+ const char r[] = "rgba(255,0,0,1)"; -+ const char g[] = "rgba(0,255,0,1)"; - GdkPixbuf *loaded; - GdkPixbuf *pixbuf; - int plane; -@@ -196,10 +180,10 @@ make_symbolic_pixbuf (char *file, - * the "rest", as all color fractions should add up to 1. - */ - loaded = load_symbolic_svg (file_data, file_len, width, height, -- &g, -- plane == 0 ? &r : &g, -- plane == 1 ? &r : &g, -- plane == 2 ? &r : &g, -+ g, -+ plane == 0 ? r : g, -+ plane == 1 ? r : g, -+ plane == 2 ? r : g, - error); - if (loaded == NULL) - return NULL; --- -2.1.4 - |