diff --git a/recipes-support/gtkglext/files/0001-gtkglwidget-various-fixes.patch b/recipes-support/gtkglext/files/0001-gtkglwidget-various-fixes.patch new file mode 100644 index 0000000..3abd82b --- /dev/null +++ b/recipes-support/gtkglext/files/0001-gtkglwidget-various-fixes.patch @@ -0,0 +1,173 @@ +From be3b1dcbe0d9920eff4094e0a2ef8cd736051dff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 21 Dec 2016 08:20:27 +0100 +Subject: [PATCH] gtkglwidget: various fixes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/gtkglext.git/plain/gtkglext-1.2.0-bz677457.diff + +Upstream Status: Pending + +Signed-off-by: Andreas Müller +--- + gtk/gtkglwidget.c | 31 +++++++++++++++++++------------ + 1 file changed, 19 insertions(+), 12 deletions(-) + +diff --git a/gtk/gtkglwidget.c b/gtk/gtkglwidget.c +index ecb41ef..2e5e9f6 100644 +--- a/gtk/gtkglwidget.c ++++ b/gtk/gtkglwidget.c +@@ -16,7 +16,9 @@ + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +-#include ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ + + #include "gtkglprivate.h" + #include "gtkglwidget.h" +@@ -68,6 +70,7 @@ + gtk_gl_widget_realize (GtkWidget *widget, + GLWidgetPrivate *private) + { ++ GdkWindow *window; + GdkGLWindow *glwindow; + + GTK_GL_NOTE_FUNC_PRIVATE (); +@@ -77,9 +80,10 @@ + * handlers. + */ + +- if (!gdk_window_is_gl_capable (widget->window)) ++ window = gtk_widget_get_window (widget); ++ if (!gdk_window_is_gl_capable (window)) + { +- glwindow = gdk_window_set_gl_capability (widget->window, ++ glwindow = gdk_window_set_gl_capability (window, + private->glconfig, + NULL); + if (glwindow == NULL) +@@ -127,9 +131,9 @@ + * Synchronize OpenGL and window resizing request streams. + */ + +- if (GTK_WIDGET_REALIZED (widget) && private->is_realized) ++ if (gtk_widget_get_realized (widget) && private->is_realized) + { +- gldrawable = gdk_window_get_gl_drawable (widget->window); ++ gldrawable = gdk_window_get_gl_drawable (gtk_widget_get_window (widget)); + gdk_gl_drawable_wait_gdk (gldrawable); + } + } +@@ -146,7 +150,7 @@ + + if (private->glcontext != NULL) + { +- gdk_gl_context_destroy (private->glcontext); ++ g_object_unref (private->glcontext); + private->glcontext = NULL; + } + +@@ -154,8 +158,8 @@ + * Remove OpenGL-capability from widget->window. + */ + +- if (GTK_WIDGET_REALIZED (widget)) +- gdk_window_unset_gl_capability (widget->window); ++ if (gtk_widget_get_realized (widget)) ++ gdk_window_unset_gl_capability (gtk_widget_get_window (widget)); + + private->is_realized = FALSE; + } +@@ -174,7 +178,7 @@ + */ + + toplevel = gtk_widget_get_toplevel (widget); +- if (GTK_WIDGET_TOPLEVEL (toplevel) && !GTK_WIDGET_REALIZED (toplevel)) ++ if (gtk_widget_is_toplevel (toplevel) && !gtk_widget_get_realized (toplevel)) + { + GTK_GL_NOTE (MISC, + g_message (" - Install colormap to the top-level window.")); +@@ -188,23 +192,27 @@ + GtkStyle *previous_style, + gpointer user_data) + { ++ GdkWindow *window; ++ + GTK_GL_NOTE_FUNC_PRIVATE (); + + /* + * Set a background of "None" on window to avoid AIX X server crash. + */ + +- if (GTK_WIDGET_REALIZED (widget)) ++ if (gtk_widget_get_realized (widget)) + { ++ window = gtk_widget_get_window (widget); ++ + GTK_GL_NOTE (MISC, + g_message (" - window->bg_pixmap = %p", +- ((GdkWindowObject *) (widget->window))->bg_pixmap)); ++ ((GdkWindowObject *) window)->bg_pixmap)); + +- gdk_window_set_back_pixmap (widget->window, NULL, FALSE); ++ gdk_window_set_back_pixmap (window, NULL, FALSE); + + GTK_GL_NOTE (MISC, + g_message (" - window->bg_pixmap = %p", +- ((GdkWindowObject *) (widget->window))->bg_pixmap)); ++ ((GdkWindowObject *) window)->bg_pixmap)); + } + } + +@@ -250,8 +258,8 @@ + GTK_GL_NOTE_FUNC (); + + g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); +- g_return_val_if_fail (!GTK_WIDGET_NO_WINDOW (widget), FALSE); +- g_return_val_if_fail (!GTK_WIDGET_REALIZED (widget), FALSE); ++ g_return_val_if_fail (gtk_widget_get_has_window (widget), FALSE); ++ g_return_val_if_fail (!gtk_widget_get_realized (widget), FALSE); + g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE); + + /* +@@ -432,9 +440,9 @@ + GTK_GL_NOTE_FUNC (); + + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); +- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL); ++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL); + +- gldrawable = gdk_window_get_gl_drawable (widget->window); ++ gldrawable = gdk_window_get_gl_drawable (gtk_widget_get_window (widget)); + if (gldrawable == NULL) + return NULL; + +@@ -474,7 +482,7 @@ + GLWidgetPrivate *private; + + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); +- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL); ++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL); + + private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private); + if (private == NULL) +@@ -501,7 +509,7 @@ + gtk_widget_get_gl_window (GtkWidget *widget) + { + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); +- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL); ++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL); + +- return gdk_window_get_gl_window (widget->window); ++ return gdk_window_get_gl_window (gtk_widget_get_window (widget)); + } +-- +2.5.5 + diff --git a/recipes-support/gtkglext/files/0002-Fix-variable-name-conflict.patch b/recipes-support/gtkglext/files/0002-Fix-variable-name-conflict.patch new file mode 100644 index 0000000..40466cb --- /dev/null +++ b/recipes-support/gtkglext/files/0002-Fix-variable-name-conflict.patch @@ -0,0 +1,51 @@ +From 9cbea61c54ee97b6a92263f6392cd84a4918aa54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 6 Jun 2018 14:10:19 +0200 +Subject: [PATCH] Fix variable name conflict +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ../../gtkglext-1.2.0/gdk/gdkglshapes.c:547:12: error: 'index' redeclared as different kind of symbol +| static int index[20][3] = +| ^~~~~ +| In file included from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/gtkglext/1.2.0-r0/recipe-sysroot/usr/include/string.h:431:0, +| from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/gtkglext/1.2.0-r0/recipe-sysroot/usr/include/glib-2.0/glib/gtestutils.h:30, +| from /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/gtkglext/1.2.0-r0/recipe-sysroot/usr/include/glib-2.0/glib.h:82, +| from ../../gtkglext-1.2.0/gdk/gdkglshapes.c:21: +| /home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/gtkglext/1.2.0-r0/recipe-sysroot/usr/include/strings.h:68:14: note: previous declaration of 'index' was here +| extern char *index (const char *__s, int __c) +| ^~~~~ + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + gdk/gdkglshapes.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gdk/gdkglshapes.c b/gdk/gdkglshapes.c +index f72abba..d468b05 100644 +--- a/gdk/gdkglshapes.c ++++ b/gdk/gdkglshapes.c +@@ -544,7 +544,7 @@ static GLfloat idata[12][3] = + {-Z, -X, 0} + }; + +-static int index[20][3] = ++static int _index[20][3] = + { + {0, 4, 1}, + {0, 9, 4}, +@@ -574,7 +574,7 @@ icosahedron(GLenum shadeType) + int i; + + for (i = 19; i >= 0; i--) { +- drawtriangle(i, idata, index, shadeType); ++ drawtriangle(i, idata, _index, shadeType); + } + } + +-- +2.14.3 + diff --git a/recipes-support/gtkglext/gtkglext_1.2.0.bb b/recipes-support/gtkglext/gtkglext_1.2.0.bb new file mode 100644 index 0000000..80c17f6 --- /dev/null +++ b/recipes-support/gtkglext/gtkglext_1.2.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "OpenGL Extension to GTK" +LICENSE = "GPLv2 | LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff" + +inherit gnomebase pkgconfig distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +DEPENDS += "gtk+ glib-2.0-native pangox-compat libglu libxmu" + +SRC_URI += " \ + file://0001-gtkglwidget-various-fixes.patch \ + file://0002-Fix-variable-name-conflict.patch \ +" +SRC_URI[archive.md5sum] = "ed7ba24ce06a8630c07f2d0ee5f04ab4" +SRC_URI[archive.sha256sum] = "16bd736074f6b14180f206b7e91263fc721b49912ea3258ab5f094cfa5497f51" +GNOME_COMPRESS_TYPE="bz2" + +FILES_${PN}-dev += "${libdir}/gtkglext-1.0"