mirror of
https://git.yoctoproject.org/poky
synced 2026-06-02 13:29:49 +00: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"
|
SECTION = "libs"
|
||||||
|
|
||||||
DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
|
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+"
|
LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
|
||||||
|
|
||||||
@@ -22,10 +22,7 @@ do_configure_prepend() {
|
|||||||
ln -s ${TARGET_PREFIX}libtool libtool
|
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 += " \
|
EXTRA_OECONF += " \
|
||||||
--disable-gtk2-dependency \
|
|
||||||
--disable-glibtest \
|
--disable-glibtest \
|
||||||
--disable-xinerama \
|
--disable-xinerama \
|
||||||
--enable-modules \
|
--enable-modules \
|
||||||
@@ -37,7 +34,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)}
|
|||||||
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", 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[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() {
|
do_install_append() {
|
||||||
mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
|
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 \
|
FILES_${PN}-demo = "${bindir}/gtk3-demo \
|
||||||
${bindir}/gtk3-demo-application \
|
${bindir}/gtk3-demo-application \
|
||||||
|
${bindir}/gtk3-icon-browser \
|
||||||
${bindir}/gtk3-widget-factory \
|
${bindir}/gtk3-widget-factory \
|
||||||
${datadir}/gtk-3.0/demo \
|
${datadir}/gtk-3.0/demo \
|
||||||
${datadir}/applications/gtk3-demo.desktop \
|
${datadir}/applications/gtk3-demo.desktop \
|
||||||
|
${datadir}/applications/gtk3-icon-browser.desktop \
|
||||||
${datadir}/applications/gtk3-widget-factory.desktop \
|
${datadir}/applications/gtk3-widget-factory.desktop \
|
||||||
${datadir}/icons/hicolor/*/apps/gtk3-demo.png \
|
${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
|
||||||
${datadir}/icons/hicolor/*/apps/gtk3-widget-factory.png"
|
${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
|
||||||
|
|
||||||
# The demo uses PNG files and mime type sniffing, so ensure that these
|
# The demo uses PNG files and mime type sniffing, so ensure that these
|
||||||
# dependencies are present.
|
# dependencies are present.
|
||||||
@@ -76,7 +75,8 @@ FILES_${PN}-dev += " \
|
|||||||
${libdir}/gtk-3.0/3.0.0/printbackends/*.la \
|
${libdir}/gtk-3.0/3.0.0/printbackends/*.la \
|
||||||
${libdir}/gtk-3.0/${LIBV}/engines/*.la \
|
${libdir}/gtk-3.0/${LIBV}/engines/*.la \
|
||||||
${libdir}/gtk-3.0/modules/*.la \
|
${libdir}/gtk-3.0/modules/*.la \
|
||||||
${bindir}/gtk-builder-convert"
|
${bindir}/gtk-builder-convert \
|
||||||
|
${bindir}/gtk-encode-symbolic-svg"
|
||||||
|
|
||||||
FILES_${PN}-dbg += " \
|
FILES_${PN}-dbg += " \
|
||||||
${libdir}/gtk-3.0/${LIBV}/loaders/.debug \
|
${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/${LIBV}/printbackends/.debug \
|
||||||
${libdir}/gtk-3.0/modules/.debug"
|
${libdir}/gtk-3.0/modules/.debug"
|
||||||
|
|
||||||
|
RRECOMMENDS_${PN} = "adwaita-icon-theme-symbolic"
|
||||||
|
|
||||||
PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
|
PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
|
||||||
|
|
||||||
|
|||||||
@@ -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 \
|
SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
|
||||||
file://hardcoded_libtool.patch \
|
file://hardcoded_libtool.patch \
|
||||||
file://fix-flags-for-native.patch \
|
file://Dont-force-csd.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "0d6d8f9f79132b3b47475d047b369b1c"
|
SRC_URI[md5sum] = "c7497aaf6730524a127597b768a73bd7"
|
||||||
SRC_URI[sha256sum] = "61d74eea74231b1ea4b53084a9d6fc9917ab0e1d71b69d92cbf60a4b4fb385d0"
|
SRC_URI[sha256sum] = "1ee5dbd7a4cb81a91eaa1b7ae64ba5a3eab6a3c0a764155583ab96524590fc8e"
|
||||||
|
|
||||||
S = "${WORKDIR}/gtk+-${PV}"
|
S = "${WORKDIR}/gtk+-${PV}"
|
||||||
|
|
||||||
Reference in New Issue
Block a user