mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 21:32:12 +02:00
gtk+3: Upgrade to 3.16.4
* Drop --disable-gtk2-dependency and the patch for gtk/native/Makefile.am: gtk-update-icon-cache is no longer used at build time and as a result the option was removed. * Add dependency to libepoxy * Add dependency to virtual/mesa for wayland-egl * Package new binaries gtk3-icon-browser and gtk-encode-symbolic-svg * Add a backported patch that allows server side window decorations in all cases * RRECOMMEND adwaita-icon-theme-symbolic: GTK+ widgets expect a symbolic theme to be installed (From OE-Core rev: 8d34b4db648756d3474c809d2895b15299fc8a6a) Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
f71e47361c
commit
88ea874880
@@ -6,7 +6,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/"
|
||||
SECTION = "libs"
|
||||
|
||||
DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
|
||||
docbook-utils-native gdk-pixbuf-native"
|
||||
docbook-utils-native gdk-pixbuf-native libepoxy"
|
||||
|
||||
LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
|
||||
|
||||
@@ -22,10 +22,7 @@ do_configure_prepend() {
|
||||
ln -s ${TARGET_PREFIX}libtool libtool
|
||||
}
|
||||
|
||||
# Forcibly disable the GTK+ 2 dependency as we don't want to natively build the
|
||||
# entire GTK+ stack, or need GTK+ 2 for gtk-update-icon-cache.
|
||||
EXTRA_OECONF += " \
|
||||
--disable-gtk2-dependency \
|
||||
--disable-glibtest \
|
||||
--disable-xinerama \
|
||||
--enable-modules \
|
||||
@@ -37,7 +34,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)}
|
||||
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}"
|
||||
|
||||
PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
|
||||
PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon"
|
||||
PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa"
|
||||
|
||||
do_install_append() {
|
||||
mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
|
||||
@@ -48,12 +45,14 @@ LIBV = "3.0.0"
|
||||
|
||||
FILES_${PN}-demo = "${bindir}/gtk3-demo \
|
||||
${bindir}/gtk3-demo-application \
|
||||
${bindir}/gtk3-icon-browser \
|
||||
${bindir}/gtk3-widget-factory \
|
||||
${datadir}/gtk-3.0/demo \
|
||||
${datadir}/applications/gtk3-demo.desktop \
|
||||
${datadir}/applications/gtk3-icon-browser.desktop \
|
||||
${datadir}/applications/gtk3-widget-factory.desktop \
|
||||
${datadir}/icons/hicolor/*/apps/gtk3-demo.png \
|
||||
${datadir}/icons/hicolor/*/apps/gtk3-widget-factory.png"
|
||||
${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
|
||||
${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
|
||||
|
||||
# The demo uses PNG files and mime type sniffing, so ensure that these
|
||||
# dependencies are present.
|
||||
@@ -76,7 +75,8 @@ FILES_${PN}-dev += " \
|
||||
${libdir}/gtk-3.0/3.0.0/printbackends/*.la \
|
||||
${libdir}/gtk-3.0/${LIBV}/engines/*.la \
|
||||
${libdir}/gtk-3.0/modules/*.la \
|
||||
${bindir}/gtk-builder-convert"
|
||||
${bindir}/gtk-builder-convert \
|
||||
${bindir}/gtk-encode-symbolic-svg"
|
||||
|
||||
FILES_${PN}-dbg += " \
|
||||
${libdir}/gtk-3.0/${LIBV}/loaders/.debug \
|
||||
@@ -85,6 +85,7 @@ FILES_${PN}-dbg += " \
|
||||
${libdir}/gtk-3.0/${LIBV}/printbackends/.debug \
|
||||
${libdir}/gtk-3.0/modules/.debug"
|
||||
|
||||
RRECOMMENDS_${PN} = "adwaita-icon-theme-symbolic"
|
||||
|
||||
PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
|
||||
|
||||
|
||||
118
meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch
Normal file
118
meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch
Normal file
@@ -0,0 +1,118 @@
|
||||
window: Check if we can use CSD before enabling them
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
||||
|
||||
|
||||
From c5e5ee67490e7e7af56052d8f8beb75db002c2f1 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuele Bassi <ebassi@gnome.org>
|
||||
Date: Wed, 3 Jun 2015 14:07:29 +0100
|
||||
Subject: window: Check if we can use CSD before enabling them
|
||||
|
||||
The change in 03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules
|
||||
as to when CSD can be enabled, but it also unconditionally enables CSD
|
||||
with the implicit assumption that client-side shadows were the real
|
||||
issue, and that we could work around that by drawing our own borders.
|
||||
This also means that setting a titlebar for a GtkWindow will enable CSD
|
||||
unconditionally.
|
||||
|
||||
In reality, some window managers (like Matchbox) *only* support
|
||||
server-side decorations, and will ignore all hints to the contrary, to
|
||||
the point of drawing decorations at random locations on top of the
|
||||
window.
|
||||
|
||||
Since CSD are enabled unconditionally, the GTK_CSD environment variable
|
||||
is also not a suitable escape hatch.
|
||||
|
||||
In the grand tradition of asking ourselves if we should do something
|
||||
just because we can, we should split the environment checks from the
|
||||
checks on what the user requested; by doing that, we can also check
|
||||
when enabling client-side decorations, and ideally bail out if needed.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=750343
|
||||
|
||||
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
|
||||
index 423c6bd..9fe882f 100644
|
||||
--- a/gtk/gtkwindow.c
|
||||
+++ b/gtk/gtkwindow.c
|
||||
@@ -4056,6 +4056,32 @@ gtk_window_supports_client_shadow (GtkWindow *window)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+gtk_window_can_use_csd (GtkWindow *window)
|
||||
+{
|
||||
+ const gchar *csd_env;
|
||||
+
|
||||
+#ifdef GDK_WINDOWING_BROADWAY
|
||||
+ if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
+ return TRUE;
|
||||
+#endif
|
||||
+
|
||||
+#ifdef GDK_WINDOWING_WAYLAND
|
||||
+ if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
+ return TRUE;
|
||||
+#endif
|
||||
+
|
||||
+#ifdef GDK_WINDOWING_MIR
|
||||
+ if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
+ return TRUE;
|
||||
+#endif
|
||||
+
|
||||
+ csd_env = g_getenv ("GTK_CSD");
|
||||
+
|
||||
+ /* If GTK_CSD is unset we default to CSD support */
|
||||
+ return csd_env == NULL || (strcmp (csd_env, "1") == 0);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
gtk_window_enable_csd (GtkWindow *window)
|
||||
{
|
||||
@@ -4063,6 +4089,10 @@ gtk_window_enable_csd (GtkWindow *window)
|
||||
GtkWidget *widget = GTK_WIDGET (window);
|
||||
GdkVisual *visual;
|
||||
|
||||
+ /* If the environment does not support CSD, then there's no point in enabling them */
|
||||
+ if (!gtk_window_can_use_csd (window))
|
||||
+ return;
|
||||
+
|
||||
/* We need a visual with alpha for client shadows */
|
||||
if (priv->use_client_shadow)
|
||||
{
|
||||
@@ -5839,7 +5869,6 @@ static gboolean
|
||||
gtk_window_should_use_csd (GtkWindow *window)
|
||||
{
|
||||
GtkWindowPrivate *priv = window->priv;
|
||||
- const gchar *csd_env;
|
||||
|
||||
if (priv->csd_requested)
|
||||
return TRUE;
|
||||
@@ -5850,24 +5879,7 @@ gtk_window_should_use_csd (GtkWindow *window)
|
||||
if (priv->type == GTK_WINDOW_POPUP)
|
||||
return FALSE;
|
||||
|
||||
-#ifdef GDK_WINDOWING_BROADWAY
|
||||
- if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
- return TRUE;
|
||||
-#endif
|
||||
-
|
||||
-#ifdef GDK_WINDOWING_WAYLAND
|
||||
- if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
- return TRUE;
|
||||
-#endif
|
||||
-
|
||||
-#ifdef GDK_WINDOWING_MIR
|
||||
- if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
|
||||
- return TRUE;
|
||||
-#endif
|
||||
-
|
||||
- csd_env = g_getenv ("GTK_CSD");
|
||||
-
|
||||
- return (g_strcmp0 (csd_env, "1") == 0);
|
||||
+ return gtk_window_can_use_csd (window);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 5e16904f94b5f5961f8f6e75716e6d7d228de119 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Fri, 28 Mar 2014 03:10:12 +0000
|
||||
Subject: [PATCH] gtk/native/Makefile.am: unset target FLAGS for native build
|
||||
|
||||
The target gtk+3 does a native build in its "native" directory, we need
|
||||
unset the target FLAGS for native build, otherwise, there might be build
|
||||
failures.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
gtk/native/Makefile.am | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/gtk/native/Makefile.am b/gtk/native/Makefile.am
|
||||
index 64899e9..a1c814a 100644
|
||||
--- a/gtk/native/Makefile.am
|
||||
+++ b/gtk/native/Makefile.am
|
||||
@@ -3,6 +3,9 @@ AM_CFLAGS = @CFLAGS_FOR_BUILD@
|
||||
CPP = @CPP_FOR_BUILD@
|
||||
AM_CPPFLAGS = @CPPFLAGS_FOR_BUILD@
|
||||
AM_LDFLAGS = @LDFLAGS_FOR_BUILD@
|
||||
+CFLAGS =
|
||||
+CPPFLAGS =
|
||||
+LDFLAGS =
|
||||
|
||||
if CROSS_COMPILING
|
||||
if !USE_EXTERNAL_ICON_CACHE
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
@@ -4,11 +4,11 @@ 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://hardcoded_libtool.patch \
|
||||
file://fix-flags-for-native.patch \
|
||||
file://Dont-force-csd.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "0d6d8f9f79132b3b47475d047b369b1c"
|
||||
SRC_URI[sha256sum] = "61d74eea74231b1ea4b53084a9d6fc9917ab0e1d71b69d92cbf60a4b4fb385d0"
|
||||
SRC_URI[md5sum] = "c7497aaf6730524a127597b768a73bd7"
|
||||
SRC_URI[sha256sum] = "1ee5dbd7a4cb81a91eaa1b7ae64ba5a3eab6a3c0a764155583ab96524590fc8e"
|
||||
|
||||
S = "${WORKDIR}/gtk+-${PV}"
|
||||
|
||||
Reference in New Issue
Block a user