Skip to contentSkip to conversation

Re-introducing libgtk3

PATCH Superseded Eric Le Bihan 6 participants 14 messages Sep 23, 2014 – Oct 7, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover Re-introducing libgtk3

Hi!

This small series re-introduces libgtk3.

The following changes have been made to the latest version posted by H. Bouteville:

- Introduction of pkg-config-native, provided by host-pkgconf. This variant of pkg-config uses the host sysroot and is needed by the Gtk+ build system to build some tools.
- Add multiple backend support (X11, Wayland, Broadway).
- GSettings schemas compilation after installation (needed by gtk3-demo).
- Introduction of hicolor-icon-theme (needed by gtk3-demo).

The following tests have been performed:

- running gtk3-demo in QEMU x86/ARM in a X11/Fluxbox environment.
- running gtk3-demo in QEMU x86/ARM in a Wayland/Weston environment.

Note: since wayland has been bumped to 1.6.0, running gtk3-demo in Weston does not work anymore. Gtk+ 3.12.2 uses protocol version 3, whereas wayland 1.6.0 introduces version 4. A runtime check is performed and the program refuses to start. This is solved with Gtk+ 3.14.0. Once this series is accepted, I will provide a series bumping libgtk3 and friends (libglib2, pango, etc).

Best regards,
ELB

Eric Le Bihan (2):
host-pkgconf: install pkg-config-native
hicolor-icon-theme: new package

Hadrien Boutteville (1):
libgtk3: new package

 package/Config.in                                  |   2 +
 package/hicolor-icon-theme/Config.in               |   4 +
 package/hicolor-icon-theme/hicolor-icon-theme.mk   |  12 ++
 package/libgtk3/Config.in                          |  87 +++++++++++
 package/libgtk3/libgtk3-0001-no-gtk-doc.patch      |  25 +++
 .../libgtk3-0002-fix-introspection-check.patch     |  28 ++++
 .../libgtk3/libgtk3-0003-disable-atk-bridge.patch  |  45 ++++++
 package/libgtk3/libgtk3.mk                         | 174 +++++++++++++++++++++
 package/pkgconf/pkg-config-native.in               |   3 +
 package/pkgconf/pkgconf.mk                         |   8 +
 10 files changed, 388 insertions(+)
 create mode 100644 package/hicolor-icon-theme/Config.in
 create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk
 create mode 100644 package/libgtk3/Config.in
 create mode 100644 package/libgtk3/libgtk3-0001-no-gtk-doc.patch
 create mode 100644 package/libgtk3/libgtk3-0002-fix-introspection-check.patch
 create mode 100644 package/libgtk3/libgtk3-0003-disable-atk-bridge.patch
 create mode 100644 package/libgtk3/libgtk3.mk
 create mode 100644 package/pkgconf/pkg-config-native.in

--
1.9.1

#1 lore raw

PATCH 1/3 host-pkgconf: install pkg-config-native

The package host-pkgconf now provides pkg-config-native, which uses the host native sysroot. It is useful for packages which compile build-time helper tools (such as Gtk+ 3.0).

---
 package/pkgconf/pkg-config-native.in | 3 +++
 package/pkgconf/pkgconf.mk           | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 package/pkgconf/pkg-config-native.in
package/pkgconf/pkg-config-native.in new file +3 -0
new file mode 100644
index 0000000..7e25cd2
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+PKG_CONFIG_LIBDIR=@HOST_DIR@/usr/lib/pkgconfig:@HOST_DIR@/usr/share/pkgconfig @HOST_DIR@/usr/bin/pkgconf $@
package/pkgconf/pkgconf.mk +8 -0
index c961536..b6e7c12 100644
@@ -24,6 +24,13 @@ define HOST_PKGCONF_INSTALL_WRAPPER
 		$(HOST_DIR)/usr/bin/pkg-config
 endef
 
+define HOST_PKGCONF_INSTALL_NATIVE
+	$(INSTALL) -m 0755 -D package/pkgconf/pkg-config-native.in \
+		$(HOST_DIR)/usr/bin/pkg-config-native
+	$(SED) 's, at HOST_DIR@,$(HOST_DIR),g' \
+		$(HOST_DIR)/usr/bin/pkg-config-native
+endef
+
 define HOST_PKGCONF_STATIC
 	$(SED) 's, at STATIC@,--static,' $(HOST_DIR)/usr/bin/pkg-config
 endef
@@ -34,6 +41,7 @@ endef
 
 PKGCONF_POST_INSTALL_TARGET_HOOKS += PKGCONF_LINK_PKGCONFIG
 HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_WRAPPER
+HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_NATIVE
 
 ifeq ($(BR2_PREFER_STATIC_LIB),y)
 	HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_STATIC
Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/3 host-pkgconf: install pkg-config-native

Quoted 19 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Eric" == Eric Le Bihan <[email protected]> writes:

The package host-pkgconf now provides pkg-config-native, which uses the host native sysroot. It is useful for packages which compile build-time helper tools (such as Gtk+ 3.0).

---
 package/pkgconf/pkg-config-native.in | 3 +++
 package/pkgconf/pkgconf.mk           | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 package/pkgconf/pkg-config-native.in
package/pkgconf/pkg-config-native.in new file +0 -0
new file mode 100644
index 0000000..7e25cd2

package/pkgconf/pkg-config-native.in line 3

Quoted 3 lines
package/pkgconf/pkg-config-native.in new file +3 -0
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+PKG_CONFIG_LIBDIR=@HOST_DIR@/usr/lib/pkgconfig:@HOST_DIR@/usr/share/pkgconfig @HOST_DIR@/usr/bin/pkgconf $@

Why is that needed? host-pkgconf is already built with --prefix=$HOST_DIR/usr, so it does the right thing:

strace output/host/usr/bin/pkgconf --cflags blah 2>&1 |grep blah ~/source/buildroot
execve("output/host/usr/bin/pkgconf", ["output/host/usr/bin/pkgconf", "--cflags", "blah"], [/* 50 vars */]) = 0 open("/home/peko/source/buildroot/output/host/usr/lib/pkgconfig/blah-uninstalled.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/lib/pkgconfig/blah.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/share/pkgconfig/blah-uninstalled.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/share/pkgconfig/blah.pc", O_RDONLY) = -1 ENOENT (No such file or directory)

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 1/3 host-pkgconf: install pkg-config-native

Hi!

Quoted 26 lines · Peter Korsgaard
Quoted 19 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Eric" == Eric Le Bihan <[email protected]> writes:

The package host-pkgconf now provides pkg-config-native, which uses the host native sysroot. It is useful for packages which compile build-time helper tools (such as Gtk+ 3.0).

---
 package/pkgconf/pkg-config-native.in | 3 +++
 package/pkgconf/pkgconf.mk           | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 package/pkgconf/pkg-config-native.in
package/pkgconf/pkg-config-native.in new file +0 -0
new file mode 100644
index 0000000..7e25cd2

package/pkgconf/pkg-config-native.in line 3

Quoted 3 lines
package/pkgconf/pkg-config-native.in new file +3 -0
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+PKG_CONFIG_LIBDIR=@HOST_DIR@/usr/lib/pkgconfig:@HOST_DIR@/usr/share/pkgconfig @HOST_DIR@/usr/bin/pkgconf $@

Why is that needed? host-pkgconf is already built with --prefix=$HOST_DIR/usr, so it does the right thing:

Quoted 6 lines

strace output/host/usr/bin/pkgconf --cflags blah 2>&1 |grep blah ~/source/buildroot
execve("output/host/usr/bin/pkgconf", ["output/host/usr/bin/pkgconf", "--cflags", "blah"], [/* 50 vars */]) = 0 open("/home/peko/source/buildroot/output/host/usr/lib/pkgconfig/blah-uninstalled.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/lib/pkgconfig/blah.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/share/pkgconfig/blah-uninstalled.pc", O_RDONLY) = -1 ENOENT (No such file or directory) open("/home/peko/source/buildroot/output/host/usr/share/pkgconfig/blah.pc", O_RDONLY) = -1 ENOENT (No such file or directory)

Of course! No need to re-invent the wheel! Thanks for pointing it out. I will remove this patch and update the one for libgtk3.

Best regards,
ELB

#4 lore raw

PATCH 2/3 hicolor-icon-theme: new package

In reply to Eric Le Bihan

This new package provides Freedesktop Hicolor icon theme.

---
 package/Config.in                                |  1 +
 package/hicolor-icon-theme/Config.in             |  4 ++++
 package/hicolor-icon-theme/hicolor-icon-theme.mk | 12 ++++++++++++
 3 files changed, 17 insertions(+)
 create mode 100644 package/hicolor-icon-theme/Config.in
 create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk
package/Config.in +1 -0
index 2eefc3f..1fa2398 100644
@@ -622,6 +622,7 @@ menu "Graphics"
 	source "package/gtk2-engines/Config.in"
 	source "package/gtk2-themes/Config.in"
 	source "package/harfbuzz/Config.in"
+	source "package/hicolor-icon-theme/Config.in"
 	source "package/imlib2/Config.in"
 	source "package/jasper/Config.in"
 	source "package/jpeg/Config.in"
package/hicolor-icon-theme/Config.in new file +4 -0
new file mode 100644
index 0000000..b1c66f6
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_HICOLOR_ICON_THEME
+	bool "hicolor icon theme"
+	help
+	  Freedesktop Hicolor icon theme
package/hicolor-icon-theme/hicolor-icon-theme.mk new file +12 -0
new file mode 100644
index 0000000..768aec8
@@ -0,0 +1,12 @@
+################################################################################
+#
+# hicolor-icon-theme
+#
+################################################################################
+
+HICOLOR_ICON_THEME_VERSION = 0.13
+HICOLOR_ICON_THEME_SITE = http://icon-theme.freedesktop.org/releases/
+HICOLOR_ICON_THEME_LICENSE = GPLv2
+HICOLOR_ICON_THEME_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
Signature · 1 line
1.9.1
#5 lore raw

PATCH 2/3 hicolor-icon-theme: new package

Dear Eric Le Bihan,

Quoted 10 lines · Eric Le Bihan

This new package provides Freedesktop Hicolor icon theme.

---
 package/Config.in                                |  1 +
 package/hicolor-icon-theme/Config.in             |  4 ++++
 package/hicolor-icon-theme/hicolor-icon-theme.mk | 12 ++++++++++++
 3 files changed, 17 insertions(+)
 create mode 100644 package/hicolor-icon-theme/Config.in
 create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk

I'm a bit confused by what this package does: it doesn't contain anything, and does not install anything except a huge number of directories (empty) in usr/share/icons/. Is this the intended behavior? I would have expected an icon theme to install some .svg or .png files, no?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#6 lore raw

PATCH 2/3 hicolor-icon-theme: new package

Hi!

Quoted 14 lines · Thomas Petazzoni

Dear Eric Le Bihan,

Quoted 10 lines · Eric Le Bihan

This new package provides Freedesktop Hicolor icon theme.

---
 package/Config.in                                |  1 +
 package/hicolor-icon-theme/Config.in             |  4 ++++
 package/hicolor-icon-theme/hicolor-icon-theme.mk | 12 ++++++++++++
 3 files changed, 17 insertions(+)
 create mode 100644 package/hicolor-icon-theme/Config.in
 create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk
Quoted 5 lines

I'm a bit confused by what this package does: it doesn't contain anything, and does not install anything except a huge number of directories (empty) in usr/share/icons/. Is this the intended behavior? I would have expected an icon theme to install some .svg or .png files, no?

The hicolor icon theme is the *fallback* icon theme. As explained in the specifications [1], this theme is required to have a place for third-party applications to install their icons. If a icon is not found in the current theme, then hicolor is the theme to look into.

So the package just installs a directory structure as well as an index.

I added it to avoid some warnings when executing the gtk3-demo application.

When I'll provide a patch bumping libgtk3 to 3.14, I will also provide a package for adwaita-icon-theme, which is a true icon theme, weighting 18 MB!

[1] http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

Best regards,
ELB

#7 lore raw

PATCH 2/3 hicolor-icon-theme: new package

Dear Eric Le Bihan,

Quoted 6 lines · Eric Le Bihan
Quoted 5 lines

I'm a bit confused by what this package does: it doesn't contain anything, and does not install anything except a huge number of directories (empty) in usr/share/icons/. Is this the intended behavior? I would have expected an icon theme to install some .svg or .png files, no?

Quoted 6 lines

The hicolor icon theme is the *fallback* icon theme. As explained in the specifications [1], this theme is required to have a place for third-party applications to install their icons. If a icon is not found in the current theme, then hicolor is the theme to look into.

So the package just installs a directory structure as well as an index.

Well, how can an empty thing be a fallback icon theme? That's kind of weird.

Anyway, if you could update the help text to mention what it is exactly, it'd be great. Just to clarify to the user that it's normal for this package to not install anything except a bunch of empty directories.

Quoted 1 line

I added it to avoid some warnings when executing the gtk3-demo application.

Sure, I certainly don't claim that it is unnecessary, I was just trying to understand what was going on.

Quoted 2 lines

When I'll provide a patch bumping libgtk3 to 3.14, I will also provide a package for adwaita-icon-theme, which is a true icon theme, weighting 18 MB!

Ouch. But all icons are present in multiple sizes, no? Are all sizes needed?

Just looked at my /usr/share/icons on Ubuntu: 347 MB. Ouch.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#8 lore raw

PATCH 2/3 hicolor-icon-theme: new package

Quoted 9 lines · On Tue, 7 Oct 2014 14:28:42 +0200 Thomas Petazzoni…
Quoted 3 lines

When I'll provide a patch bumping libgtk3 to 3.14, I will also provide a package for adwaita-icon-theme, which is a true icon theme, weighting 18 MB!

Ouch. But all icons are present in multiple sizes, no? Are all sizes needed?

Just looked at my /usr/share/icons on Ubuntu: 347 MB. Ouch.

What an opportunity!!!

Let's get the manufacturers of embedded memory devices to become regular supporters of the Buildroot project before we do that. ;)

Just point out how many 500MB devices they could sell in addition to what their customers are buying now.

Mike

#9 lore raw

PATCH 2/3 hicolor-icon-theme: new package

In reply to Thomas Petazzoni
Quoted 17 lines · Thomas Petazzoni

Dear Eric Le Bihan,

Quoted 6 lines · Eric Le Bihan
Quoted 5 lines

I'm a bit confused by what this package does: it doesn't contain anything, and does not install anything except a huge number of directories (empty) in usr/share/icons/. Is this the intended behavior? I would have expected an icon theme to install some .svg or .png files, no?

Quoted 6 lines

The hicolor icon theme is the *fallback* icon theme. As explained in the specifications [1], this theme is required to have a place for third-party applications to install their icons. If a icon is not found in the current theme, then hicolor is the theme to look into.

So the package just installs a directory structure as well as an index.

Quoted 7 lines

Well, how can an empty thing be a fallback icon theme? That's kind of weird.

Anyway, if you could update the help text to mention what it is exactly, it'd be great. Just to clarify to the user that it's normal for this package to not install anything except a bunch of empty directories.

Of course!

Quoted 10 lines
Quoted 1 line

I added it to avoid some warnings when executing the gtk3-demo application.

Sure, I certainly don't claim that it is unnecessary, I was just trying to understand what was going on.

Quoted 2 lines

When I'll provide a patch bumping libgtk3 to 3.14, I will also provide a package for adwaita-icon-theme, which is a true icon theme, weighting 18 MB!

Ouch. But all icons are present in multiple sizes, no? Are all sizes needed?

The adwaita-icon-theme package provides icons which sizes are 16x16, 24x24, 32x32, 48x48, 256x256 and of course some SVG ones. On the target its takes 20 MB of storage.

I'm no expert in icon loading, but it looks like if the requested size is not found, then a smaller one is selected, upscaling is applied and you get blurry icons.

Should I provide an option in the configuration menu to install only specific sizes, or should removing the unwanted icons be left to the user (via post-build script)?

Best regards,
ELB

#10 lore raw

PATCH 2/3 hicolor-icon-theme: new package

Dear Eric Le Bihan,

Quoted 15 lines · Eric Le Bihan
Quoted 10 lines
Quoted 1 line

I added it to avoid some warnings when executing the gtk3-demo application.

Sure, I certainly don't claim that it is unnecessary, I was just trying to understand what was going on.

Quoted 2 lines

When I'll provide a patch bumping libgtk3 to 3.14, I will also provide a package for adwaita-icon-theme, which is a true icon theme, weighting 18 MB!

Ouch. But all icons are present in multiple sizes, no? Are all sizes needed?

The adwaita-icon-theme package provides icons which sizes are 16x16, 24x24, 32x32, 48x48, 256x256 and of course some SVG ones. On the target its takes 20 MB of storage.

Quoted 7 lines

I'm no expert in icon loading, but it looks like if the requested size is not found, then a smaller one is selected, upscaling is applied and you get blurry icons.

Should I provide an option in the configuration menu to install only specific sizes, or should removing the unwanted icons be left to the user (via post-build script)?

I'm not sure. As long as we can build libgtk3 without those icons, I think we can just keep them all. Anyway, this is something that can be improved at a later point if needed.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#11 lore raw

PATCH 3/3 libgtk3: new package

In reply to Eric Le Bihan

From: Hadrien Boutteville <[email protected]>

This package provides Gtk+ 3.0, a graphical toolkit.

[Eric: added backend support, dependency on pkg-config-native]
Cc Thomas Petazzoni <[email protected]>
Cc "Yann E. MORIN" <[email protected]>
---
 package/Config.in                                  |   1 +
 package/libgtk3/Config.in                          |  87 +++++++++++
 package/libgtk3/libgtk3-0001-no-gtk-doc.patch      |  25 +++
 .../libgtk3-0002-fix-introspection-check.patch     |  28 ++++
 .../libgtk3/libgtk3-0003-disable-atk-bridge.patch  |  45 ++++++
 package/libgtk3/libgtk3.mk                         | 174 +++++++++++++++++++++
 6 files changed, 360 insertions(+)
 create mode 100644 package/libgtk3/Config.in
 create mode 100644 package/libgtk3/libgtk3-0001-no-gtk-doc.patch
 create mode 100644 package/libgtk3/libgtk3-0002-fix-introspection-check.patch
 create mode 100644 package/libgtk3/libgtk3-0003-disable-atk-bridge.patch
 create mode 100644 package/libgtk3/libgtk3.mk
package/Config.in +1 -0
index 1fa2398..0f0949c 100644
@@ -638,6 +638,7 @@ menu "Graphics"
 	source "package/libglew/Config.in"
 	source "package/libglu/Config.in"
 	source "package/libgtk2/Config.in"
+	source "package/libgtk3/Config.in"
 	source "package/libpng/Config.in"
 	source "package/libqrencode/Config.in"
 	source "package/libraw/Config.in"
package/libgtk3/Config.in new file +87 -0

87 lines not on this page · raw message

package/libgtk3/libgtk3-0001-no-gtk-doc.patch new file +25 -0
new file mode 100644
index 0000000..926a263
@@ -0,0 +1,25 @@
+Same patch as for systemd in commit
+7144f2f04b705538a893e538a6b851f536f433b6:
+
+Fix deactivation of gtk-doc
+
+The tarball contains the Makefile for building documentation with gtk-doc,
+Unfortunately the AM_CONDITIONAL variable is not the correct one, which
+results in an error when running autoreconf.
+
+This patch fixes this issue.
+
+Signed-off-by: Eric Le Bihan <[email protected]>
+Signed-off-by: Hadrien Boutteville <[email protected]>
+
+--- a/gtk-doc.make
++++ b/gtk-doc.make
+@@ -267,7 +267,7 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
++if ENABLE_GTK_DOC
+ dist-check-gtkdoc: docs
+ else
+ dist-check-gtkdoc:
package/libgtk3/libgtk3-0002-fix-introspection-check.patch new file +28 -0
new file mode 100644
index 0000000..5b56b3a
@@ -0,0 +1,28 @@
+Fix HAVE_INTROSPECTION does not appear in AM_CONDITIONAL
+
+During autoreconf GOBJECT_INTROSPECTION_CHECK could not be resolve because we
+don't have introspection which provides its custom m4 macro. Reconfigure fails
+with:
+
+gdk/Makefile.am:196: error: HAVE_INTROSPECTION does not appear in AM_CONDITIONAL
+gtk/Makefile.am:1347: error: HAVE_INTROSPECTION does not appear in AM_CONDITIONAL
+
+We avoid to add a copy of introspection.m4 in the m4 directory of libgtk3 by
+adding a check, as performed in Systemd.
+
+Signed-off-by: Hadrien Boutteville <[email protected]>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1621,7 +1621,10 @@
+ # GObject introspection
+ ##################################################
+
+-GOBJECT_INTROSPECTION_CHECK(introspection_required_version)
++m4_ifdef([GOBJECT_INTROSPECTION_CHECK],
++         [GOBJECT_INTROSPECTION_CHECK(introspection_required_version)],
++         [AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
++          enable_introspection=no])
+
+ ##################################################
+ # colord module
package/libgtk3/libgtk3-0003-disable-atk-bridge.patch new file +45 -0

45 lines not on this page · raw message

package/libgtk3/libgtk3.mk new file +174 -0

174 lines not on this page · raw message

--
1.9.1

#12 lore raw

PATCH 3/3 libgtk3: new package

Quoted 6 lines · Eric Le Bihan
package/libgtk3/libgtk3.mk new file +0 -0
new file mode 100644
index 0000000..523d8f1

package/libgtk3/libgtk3.mk line 8

Quoted 8 lines
package/libgtk3/libgtk3.mk new file +8 -0
@@ -0,0 +1,174 @@
+################################################################################
+#
+# libgtk3
+#
+################################################################################
+
+LIBGTK3_VERSION_MAJOR = 3.12
+LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2

Since you are planing to add a new package, why not use the latests version of it? 3.14.0

Signature · 1 line
Vincent
#13 lore raw

PATCH 3/3 libgtk3: new package

Quoted 2 lines · Vicente Olivert Riera

Since you are planing to add a new package, why not use the latests version of it? 3.14.0

Probably because it needs a libglib2, atk, cairo and whatnot bump as well. And since it was just released in this case in particular i'd go for safe so as to get this in sooner rather than later - the bump can be a new patchset afterwards.
Regards.