added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,107 @@
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 = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
SECTION = "libs"
inherit 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, --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
}

View File

@@ -0,0 +1,29 @@
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");

View File

@@ -0,0 +1,50 @@
From a703e2406fda3dc150574ae2f90cb5f4810d0601 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 29 Aug 2022 00:25:19 -0700
Subject: [PATCH] Fix signature of create_menu() function
Upstream-Status: Inappropriate [EOL]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
tests/testmenubars.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/testmenubars.c b/tests/testmenubars.c
index 416a939..7f247f8 100644
--- a/tests/testmenubars.c
+++ b/tests/testmenubars.c
@@ -21,7 +21,7 @@
#include <gtk/gtk.h>
static GtkWidget *
-create_menu (depth)
+create_menu (int depth)
{
GtkWidget *menu;
GtkWidget *menuitem;
@@ -70,19 +70,19 @@ create_menubar (GtkPackDirection pack_dir,
menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_HOME, NULL);
gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
- menu = create_menu (2, TRUE);
+ menu = create_menu (2);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
menuitem = gtk_menu_item_new_with_label ("foo");
gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
- menu = create_menu (2, TRUE);
+ menu = create_menu (2);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
menuitem = gtk_menu_item_new_with_label ("bar");
gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
- menu = create_menu (2, TRUE);
+ menu = create_menu (2);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
return menubar;
--
2.37.2

View File

@@ -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 <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 \

View File

@@ -0,0 +1,24 @@
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);

View File

@@ -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;

View File

@@ -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

View File

@@ -0,0 +1,34 @@
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://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 \
file://0001-Fix-signature-of-create_menu-function.patch \
"
SRC_URI[sha256sum] = "ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da"
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, r'^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s')))
do_split_packages(d, printmodules_root, r'^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')
}

View File

@@ -0,0 +1,23 @@
SUMMARY = "C++ bindings for the GTK+ toolkit V3"
HOMEPAGE = "http://www.gtkmm.org/"
SECTION = "libs"
LICENSE = "LGPL-2.1-only & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "glib-2.0-native atkmm pangomm glibmm gtk+3 cairomm gdk-pixbuf-native"
BPN = "gtkmm"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
SRC_URI[archive.sha256sum] = "1d7a35af9c5ceccacb244ee3c2deb9b245720d8510ac5c7e6f4b6f9947e6789c"
EXTRA_OEMESON = "-Dbuild-demos=false"
FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"

View File

@@ -0,0 +1,20 @@
SUMMARY = "C++ bindings for the GTK+ toolkit"
HOMEPAGE = "http://www.gtkmm.org/"
SECTION = "libs"
LICENSE = "LGPL-2.1-only & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
inherit gnomebase features_check
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI[archive.md5sum] = "6c59ae8bbff48fad9132f23af347acf1"
SRC_URI[archive.sha256sum] = "0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09fc4dd2f5fe6b72"
EXTRA_OECONF = " --disable-documentation "
FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"