diff options
author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2015-04-01 21:36:47 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-16 15:09:17 +0100 |
commit | 88ea8748809043be61d501c1ce8a9c8e8c06b9ae (patch) | |
tree | 4a91c84f6680e8c36751aa540a5375463cefc75a /meta/recipes-gnome | |
parent | f71e47361cf8b934bcff1eebd13d71b43ee5cd6d (diff) | |
download | poky-88ea8748809043be61d501c1ce8a9c8e8c06b9ae.tar.gz |
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>
Diffstat (limited to 'meta/recipes-gnome')
-rw-r--r-- | meta/recipes-gnome/gtk+/gtk+3.inc | 17 | ||||
-rw-r--r-- | meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch | 118 | ||||
-rw-r--r-- | meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch | 33 | ||||
-rw-r--r-- | meta/recipes-gnome/gtk+/gtk+3_3.16.4.bb (renamed from meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb) | 6 |
4 files changed, 130 insertions, 44 deletions
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc index 3e36676ac4..f29f0d3031 100644 --- a/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/meta/recipes-gnome/gtk+/gtk+3.inc | |||
@@ -6,7 +6,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/" | |||
6 | SECTION = "libs" | 6 | SECTION = "libs" |
7 | 7 | ||
8 | DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ | 8 | DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ |
9 | docbook-utils-native gdk-pixbuf-native" | 9 | docbook-utils-native gdk-pixbuf-native libepoxy" |
10 | 10 | ||
11 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" | 11 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" |
12 | 12 | ||
@@ -22,10 +22,7 @@ do_configure_prepend() { | |||
22 | ln -s ${TARGET_PREFIX}libtool libtool | 22 | ln -s ${TARGET_PREFIX}libtool libtool |
23 | } | 23 | } |
24 | 24 | ||
25 | # Forcibly disable the GTK+ 2 dependency as we don't want to natively build the | ||
26 | # entire GTK+ stack, or need GTK+ 2 for gtk-update-icon-cache. | ||
27 | EXTRA_OECONF += " \ | 25 | EXTRA_OECONF += " \ |
28 | --disable-gtk2-dependency \ | ||
29 | --disable-glibtest \ | 26 | --disable-glibtest \ |
30 | --disable-xinerama \ | 27 | --disable-xinerama \ |
31 | --enable-modules \ | 28 | --enable-modules \ |
@@ -37,7 +34,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} | |||
37 | ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}" | 34 | ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}" |
38 | 35 | ||
39 | PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" | 36 | PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" |
40 | PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon" | 37 | PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa" |
41 | 38 | ||
42 | do_install_append() { | 39 | do_install_append() { |
43 | mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 | 40 | mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 |
@@ -48,12 +45,14 @@ LIBV = "3.0.0" | |||
48 | 45 | ||
49 | FILES_${PN}-demo = "${bindir}/gtk3-demo \ | 46 | FILES_${PN}-demo = "${bindir}/gtk3-demo \ |
50 | ${bindir}/gtk3-demo-application \ | 47 | ${bindir}/gtk3-demo-application \ |
48 | ${bindir}/gtk3-icon-browser \ | ||
51 | ${bindir}/gtk3-widget-factory \ | 49 | ${bindir}/gtk3-widget-factory \ |
52 | ${datadir}/gtk-3.0/demo \ | 50 | ${datadir}/gtk-3.0/demo \ |
53 | ${datadir}/applications/gtk3-demo.desktop \ | 51 | ${datadir}/applications/gtk3-demo.desktop \ |
52 | ${datadir}/applications/gtk3-icon-browser.desktop \ | ||
54 | ${datadir}/applications/gtk3-widget-factory.desktop \ | 53 | ${datadir}/applications/gtk3-widget-factory.desktop \ |
55 | ${datadir}/icons/hicolor/*/apps/gtk3-demo.png \ | 54 | ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ |
56 | ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory.png" | 55 | ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" |
57 | 56 | ||
58 | # The demo uses PNG files and mime type sniffing, so ensure that these | 57 | # The demo uses PNG files and mime type sniffing, so ensure that these |
59 | # dependencies are present. | 58 | # dependencies are present. |
@@ -76,7 +75,8 @@ FILES_${PN}-dev += " \ | |||
76 | ${libdir}/gtk-3.0/3.0.0/printbackends/*.la \ | 75 | ${libdir}/gtk-3.0/3.0.0/printbackends/*.la \ |
77 | ${libdir}/gtk-3.0/${LIBV}/engines/*.la \ | 76 | ${libdir}/gtk-3.0/${LIBV}/engines/*.la \ |
78 | ${libdir}/gtk-3.0/modules/*.la \ | 77 | ${libdir}/gtk-3.0/modules/*.la \ |
79 | ${bindir}/gtk-builder-convert" | 78 | ${bindir}/gtk-builder-convert \ |
79 | ${bindir}/gtk-encode-symbolic-svg" | ||
80 | 80 | ||
81 | FILES_${PN}-dbg += " \ | 81 | FILES_${PN}-dbg += " \ |
82 | ${libdir}/gtk-3.0/${LIBV}/loaders/.debug \ | 82 | ${libdir}/gtk-3.0/${LIBV}/loaders/.debug \ |
@@ -85,6 +85,7 @@ FILES_${PN}-dbg += " \ | |||
85 | ${libdir}/gtk-3.0/${LIBV}/printbackends/.debug \ | 85 | ${libdir}/gtk-3.0/${LIBV}/printbackends/.debug \ |
86 | ${libdir}/gtk-3.0/modules/.debug" | 86 | ${libdir}/gtk-3.0/modules/.debug" |
87 | 87 | ||
88 | RRECOMMENDS_${PN} = "adwaita-icon-theme-symbolic" | ||
88 | 89 | ||
89 | PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" | 90 | PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" |
90 | 91 | ||
diff --git a/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch b/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch new file mode 100644 index 0000000000..32d8a84792 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch | |||
@@ -0,0 +1,118 @@ | |||
1 | window: Check if we can use CSD before enabling them | ||
2 | |||
3 | Upstream-Status: Backport | ||
4 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
5 | |||
6 | |||
7 | From c5e5ee67490e7e7af56052d8f8beb75db002c2f1 Mon Sep 17 00:00:00 2001 | ||
8 | From: Emmanuele Bassi <ebassi@gnome.org> | ||
9 | Date: Wed, 3 Jun 2015 14:07:29 +0100 | ||
10 | Subject: window: Check if we can use CSD before enabling them | ||
11 | |||
12 | The change in 03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules | ||
13 | as to when CSD can be enabled, but it also unconditionally enables CSD | ||
14 | with the implicit assumption that client-side shadows were the real | ||
15 | issue, and that we could work around that by drawing our own borders. | ||
16 | This also means that setting a titlebar for a GtkWindow will enable CSD | ||
17 | unconditionally. | ||
18 | |||
19 | In reality, some window managers (like Matchbox) *only* support | ||
20 | server-side decorations, and will ignore all hints to the contrary, to | ||
21 | the point of drawing decorations at random locations on top of the | ||
22 | window. | ||
23 | |||
24 | Since CSD are enabled unconditionally, the GTK_CSD environment variable | ||
25 | is also not a suitable escape hatch. | ||
26 | |||
27 | In the grand tradition of asking ourselves if we should do something | ||
28 | just because we can, we should split the environment checks from the | ||
29 | checks on what the user requested; by doing that, we can also check | ||
30 | when enabling client-side decorations, and ideally bail out if needed. | ||
31 | |||
32 | https://bugzilla.gnome.org/show_bug.cgi?id=750343 | ||
33 | |||
34 | diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c | ||
35 | index 423c6bd..9fe882f 100644 | ||
36 | --- a/gtk/gtkwindow.c | ||
37 | +++ b/gtk/gtkwindow.c | ||
38 | @@ -4056,6 +4056,32 @@ gtk_window_supports_client_shadow (GtkWindow *window) | ||
39 | return TRUE; | ||
40 | } | ||
41 | |||
42 | +static gboolean | ||
43 | +gtk_window_can_use_csd (GtkWindow *window) | ||
44 | +{ | ||
45 | + const gchar *csd_env; | ||
46 | + | ||
47 | +#ifdef GDK_WINDOWING_BROADWAY | ||
48 | + if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
49 | + return TRUE; | ||
50 | +#endif | ||
51 | + | ||
52 | +#ifdef GDK_WINDOWING_WAYLAND | ||
53 | + if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
54 | + return TRUE; | ||
55 | +#endif | ||
56 | + | ||
57 | +#ifdef GDK_WINDOWING_MIR | ||
58 | + if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
59 | + return TRUE; | ||
60 | +#endif | ||
61 | + | ||
62 | + csd_env = g_getenv ("GTK_CSD"); | ||
63 | + | ||
64 | + /* If GTK_CSD is unset we default to CSD support */ | ||
65 | + return csd_env == NULL || (strcmp (csd_env, "1") == 0); | ||
66 | +} | ||
67 | + | ||
68 | static void | ||
69 | gtk_window_enable_csd (GtkWindow *window) | ||
70 | { | ||
71 | @@ -4063,6 +4089,10 @@ gtk_window_enable_csd (GtkWindow *window) | ||
72 | GtkWidget *widget = GTK_WIDGET (window); | ||
73 | GdkVisual *visual; | ||
74 | |||
75 | + /* If the environment does not support CSD, then there's no point in enabling them */ | ||
76 | + if (!gtk_window_can_use_csd (window)) | ||
77 | + return; | ||
78 | + | ||
79 | /* We need a visual with alpha for client shadows */ | ||
80 | if (priv->use_client_shadow) | ||
81 | { | ||
82 | @@ -5839,7 +5869,6 @@ static gboolean | ||
83 | gtk_window_should_use_csd (GtkWindow *window) | ||
84 | { | ||
85 | GtkWindowPrivate *priv = window->priv; | ||
86 | - const gchar *csd_env; | ||
87 | |||
88 | if (priv->csd_requested) | ||
89 | return TRUE; | ||
90 | @@ -5850,24 +5879,7 @@ gtk_window_should_use_csd (GtkWindow *window) | ||
91 | if (priv->type == GTK_WINDOW_POPUP) | ||
92 | return FALSE; | ||
93 | |||
94 | -#ifdef GDK_WINDOWING_BROADWAY | ||
95 | - if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
96 | - return TRUE; | ||
97 | -#endif | ||
98 | - | ||
99 | -#ifdef GDK_WINDOWING_WAYLAND | ||
100 | - if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
101 | - return TRUE; | ||
102 | -#endif | ||
103 | - | ||
104 | -#ifdef GDK_WINDOWING_MIR | ||
105 | - if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) | ||
106 | - return TRUE; | ||
107 | -#endif | ||
108 | - | ||
109 | - csd_env = g_getenv ("GTK_CSD"); | ||
110 | - | ||
111 | - return (g_strcmp0 (csd_env, "1") == 0); | ||
112 | + return gtk_window_can_use_csd (window); | ||
113 | } | ||
114 | |||
115 | static void | ||
116 | -- | ||
117 | cgit v0.10.2 | ||
118 | |||
diff --git a/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch b/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch deleted file mode 100644 index 9ae1088e01..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 5e16904f94b5f5961f8f6e75716e6d7d228de119 Mon Sep 17 00:00:00 2001 | ||
2 | From: Robert Yang <liezhi.yang@windriver.com> | ||
3 | Date: Fri, 28 Mar 2014 03:10:12 +0000 | ||
4 | Subject: [PATCH] gtk/native/Makefile.am: unset target FLAGS for native build | ||
5 | |||
6 | The target gtk+3 does a native build in its "native" directory, we need | ||
7 | unset the target FLAGS for native build, otherwise, there might be build | ||
8 | failures. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
13 | --- | ||
14 | gtk/native/Makefile.am | 3 +++ | ||
15 | 1 file changed, 3 insertions(+) | ||
16 | |||
17 | diff --git a/gtk/native/Makefile.am b/gtk/native/Makefile.am | ||
18 | index 64899e9..a1c814a 100644 | ||
19 | --- a/gtk/native/Makefile.am | ||
20 | +++ b/gtk/native/Makefile.am | ||
21 | @@ -3,6 +3,9 @@ AM_CFLAGS = @CFLAGS_FOR_BUILD@ | ||
22 | CPP = @CPP_FOR_BUILD@ | ||
23 | AM_CPPFLAGS = @CPPFLAGS_FOR_BUILD@ | ||
24 | AM_LDFLAGS = @LDFLAGS_FOR_BUILD@ | ||
25 | +CFLAGS = | ||
26 | +CPPFLAGS = | ||
27 | +LDFLAGS = | ||
28 | |||
29 | if CROSS_COMPILING | ||
30 | if !USE_EXTERNAL_ICON_CACHE | ||
31 | -- | ||
32 | 1.8.3.4 | ||
33 | |||
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb b/meta/recipes-gnome/gtk+/gtk+3_3.16.4.bb index f4f197131b..3a45afcc10 100644 --- a/meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb +++ b/meta/recipes-gnome/gtk+/gtk+3_3.16.4.bb | |||
@@ -4,11 +4,11 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" | |||
4 | 4 | ||
5 | SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ | 5 | SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ |
6 | file://hardcoded_libtool.patch \ | 6 | file://hardcoded_libtool.patch \ |
7 | file://fix-flags-for-native.patch \ | 7 | file://Dont-force-csd.patch \ |
8 | " | 8 | " |
9 | 9 | ||
10 | SRC_URI[md5sum] = "0d6d8f9f79132b3b47475d047b369b1c" | 10 | SRC_URI[md5sum] = "c7497aaf6730524a127597b768a73bd7" |
11 | SRC_URI[sha256sum] = "61d74eea74231b1ea4b53084a9d6fc9917ab0e1d71b69d92cbf60a4b4fb385d0" | 11 | SRC_URI[sha256sum] = "1ee5dbd7a4cb81a91eaa1b7ae64ba5a3eab6a3c0a764155583ab96524590fc8e" |
12 | 12 | ||
13 | S = "${WORKDIR}/gtk+-${PV}" | 13 | S = "${WORKDIR}/gtk+-${PV}" |
14 | 14 | ||