Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [Patch v2 0/2] Re-introducing libgtk3
@ 2014-10-13 12:54 Eric Le Bihan
  2014-10-13 12:54 ` [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package Eric Le Bihan
  2014-10-13 12:54 ` [Buildroot] [Patch v2 2/2] libgtk3: " Eric Le Bihan
  0 siblings, 2 replies; 5+ messages in thread
From: Eric Le Bihan @ 2014-10-13 12:54 UTC (permalink / raw)
  To: buildroot

Hi!

This small series re-introduces libgtk3.

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

 - Add multiple backend support (X11, Wayland, Broadway).
 - Use pkgconf, from host-pkgconf, to build host-libgtk3 and some native tools
   in libgtk3.
 - 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

Changes v1 -> v2:

  - removed patch introducing pkg-config-native, as pkgconf does the same job
    (suggested by PeterK).
  - updated comments for hicolor-icon-theme, to explain this is not a full
    icon theme, but a fallback one (suggested by ThomasP).
  - use LIBGTK3_CONF_OPTS instead of LIBGTK3_CONF_OPT.

Eric Le Bihan (1):
  hicolor-icon-theme: new package

Hadrien Boutteville (1):
  libgtk3: new package

 package/Config.in                                  |   2 +
 package/hicolor-icon-theme/Config.in               |   8 +
 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 +++++++++++++++++++++
 8 files changed, 381 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

--
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package
  2014-10-13 12:54 [Buildroot] [Patch v2 0/2] Re-introducing libgtk3 Eric Le Bihan
@ 2014-10-13 12:54 ` Eric Le Bihan
  2014-10-15 10:10   ` Peter Korsgaard
  2014-10-13 12:54 ` [Buildroot] [Patch v2 2/2] libgtk3: " Eric Le Bihan
  1 sibling, 1 reply; 5+ messages in thread
From: Eric Le Bihan @ 2014-10-13 12:54 UTC (permalink / raw)
  To: buildroot

This new package provides Freedesktop Hicolor icon theme.

This is the fallback icon theme, which only creates the standard
directory structure for storing icons of third-party applications (i.e.
the ones not available in usual icon themes).

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
 package/Config.in                                |  1 +
 package/hicolor-icon-theme/Config.in             |  8 ++++++++
 package/hicolor-icon-theme/hicolor-icon-theme.mk | 12 ++++++++++++
 3 files changed, 21 insertions(+)
 create mode 100644 package/hicolor-icon-theme/Config.in
 create mode 100644 package/hicolor-icon-theme/hicolor-icon-theme.mk

diff --git a/package/Config.in b/package/Config.in
index 19bb9bf..ec22c35 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -627,6 +627,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"
diff --git a/package/hicolor-icon-theme/Config.in b/package/hicolor-icon-theme/Config.in
new file mode 100644
index 0000000..6cda097
--- /dev/null
+++ b/package/hicolor-icon-theme/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HICOLOR_ICON_THEME
+	bool "hicolor icon theme"
+	help
+	  Freedesktop Hicolor icon theme
+
+	  This is the fallback icon theme, which only creates the
+	  standard directory structure for storing icons of third-party
+	  applications (i.e. the ones not available in usual icon themes).
diff --git a/package/hicolor-icon-theme/hicolor-icon-theme.mk b/package/hicolor-icon-theme/hicolor-icon-theme.mk
new file mode 100644
index 0000000..768aec8
--- /dev/null
+++ b/package/hicolor-icon-theme/hicolor-icon-theme.mk
@@ -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))
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [Patch v2 2/2] libgtk3: new package
  2014-10-13 12:54 [Buildroot] [Patch v2 0/2] Re-introducing libgtk3 Eric Le Bihan
  2014-10-13 12:54 ` [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package Eric Le Bihan
@ 2014-10-13 12:54 ` Eric Le Bihan
  2014-10-15 12:48   ` Peter Korsgaard
  1 sibling, 1 reply; 5+ messages in thread
From: Eric Le Bihan @ 2014-10-13 12:54 UTC (permalink / raw)
  To: buildroot

From: Hadrien Boutteville <hadrien.boutteville@gmail.com>

This package provides Gtk+ 3.0, a graphical toolkit.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
[Eric: added backend support, use of pkgconf for host-libgtk3]
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>

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

diff --git a/package/Config.in b/package/Config.in
index ec22c35..93e148d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -643,6 +643,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"
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
new file mode 100644
index 0000000..94791b8
--- /dev/null
+++ b/package/libgtk3/Config.in
@@ -0,0 +1,87 @@
+config BR2_PACKAGE_LIBGTK3
+	bool "libgtk3"
+	select BR2_PACKAGE_ATK
+	select BR2_PACKAGE_CAIRO
+	select BR2_PACKAGE_CAIRO_PS
+	select BR2_PACKAGE_CAIRO_PDF
+	select BR2_PACKAGE_CAIRO_SVG
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_PANGO
+	select BR2_PACKAGE_GDK_PIXBUF
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_USE_WCHAR # glib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
+	depends on BR2_USE_MMU # glib2
+	depends on BR2_INSTALL_LIBSTDCPP # pango
+	depends on BR2_ARCH_HAS_ATOMICS # cairo
+	help
+	  The GTK+ version 3 graphical user interface library
+
+	  http://www.gtk.org/
+
+if BR2_PACKAGE_LIBGTK3
+
+comment "GDK backend"
+
+config BR2_PACKAGE_LIBGTK3_X11
+	bool "GDK X11 backend"
+	default y
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_FONTCONFIG
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXRENDER
+	select BR2_PACKAGE_XLIB_LIBXI
+	help
+	  This enables the X11 backend for GDK.
+
+config BR2_PACKAGE_LIBGTK3_WAYLAND
+	bool "GDK Wayland backend"
+	default y
+	depends on BR2_PACKAGE_WAYLAND
+	select BR2_PACKAGE_LIBXKBCOMMON
+	help
+	  This enables the Wayland backend for GDK.
+
+config BR2_PACKAGE_LIBGTK3_BROADWAY
+	bool "GDK Broadway backend"
+	default n
+	help
+	  This enables the Broadway backend for GDK, which provides support
+	  for displaying GTK+ applications in a web browser, using HTML5 and
+	  web sockets.
+
+	  For example, to run gtk3-demo on a target which IP address is
+	  192.168.0.1 and use it from a web browser, execute the following
+	  commands:
+
+	    $ broadwayd -a 192.168.0.1 -p 8080 :2 &
+	    $ export GDK_BACKEND=broadway
+	    $ export BROADWAY_DISPLAY=:2
+	    $ gtk3-demo
+
+	  Then open a web browser at address http://192.168.0.1:8080.
+	  Javascript and web sockets should be enabled.
+
+config BR2_PACKAGE_LIBGTK3_DEMO
+	bool "Install libgtk3 demo program"
+	select BR2_PACKAGE_SHARED_MIME_INFO
+	select BR2_PACKAGE_HICOLOR_ICON_THEME
+	help
+	  The GTK+ source base contains a demo program. This
+	  option allows to install this program to the target.
+
+config BR2_PACKAGE_LIBGTK3_TESTS
+	bool "Install libgtk3 tests"
+	help
+	  The GTK+ source base contains tests. This option
+	  allows to install them to the target.
+
+endif
+
+comment "libgtk3 needs a toolchain w/ wchar, threads, C++"
+	depends on BR2_USE_MMU
+	depends on BR2_ARCH_HAS_ATOMICS
+	depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_WAYLAND
+	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
+		!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk3/libgtk3-0001-no-gtk-doc.patch b/package/libgtk3/libgtk3-0001-no-gtk-doc.patch
new file mode 100644
index 0000000..926a263
--- /dev/null
+++ b/package/libgtk3/libgtk3-0001-no-gtk-doc.patch
@@ -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 <eric.le.bihan.dev@free.fr>
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- 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:
diff --git a/package/libgtk3/libgtk3-0002-fix-introspection-check.patch b/package/libgtk3/libgtk3-0002-fix-introspection-check.patch
new file mode 100644
index 0000000..5b56b3a
--- /dev/null
+++ b/package/libgtk3/libgtk3-0002-fix-introspection-check.patch
@@ -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 <hadrien.boutteville@gmail.com>
+
+--- 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
diff --git a/package/libgtk3/libgtk3-0003-disable-atk-bridge.patch b/package/libgtk3/libgtk3-0003-disable-atk-bridge.patch
new file mode 100644
index 0000000..30ff92d
--- /dev/null
+++ b/package/libgtk3/libgtk3-0003-disable-atk-bridge.patch
@@ -0,0 +1,45 @@
+Remove atk-bridge support.
+
+atk-bridge doesn't seem useful for now in Buildroot and requires to
+add two new packages just for it: at-spi2-core and at-spi2-atk.
+
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1349,11 +1349,7 @@
+ # Check for Accessibility Toolkit flags
+ ########################################
+
+-if test x$enable_x11_backend = xyes; then
+-   ATK_PACKAGES="atk atk-bridge-2.0"
+-else
+-   ATK_PACKAGES="atk"
+-fi
++ATK_PACKAGES="atk"
+
+ PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
+
+--- a/gtk/a11y/gtkaccessibility.c
++++ b/gtk/a11y/gtkaccessibility.c
+@@ -37,10 +37,6 @@
+ #include <gtk/gtkcombobox.h>
+ #include <gtk/gtkaccessible.h>
+
+-#ifdef GDK_WINDOWING_X11
+-#include <atk-bridge.h>
+-#endif
+-
+ static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
+                                          guint                  n_param_values,
+                                          const GValue          *param_values,
+@@ -987,9 +983,5 @@
+   _gtk_accessibility_override_atk_util ();
+   do_window_event_initialization ();
+
+-#ifdef GDK_WINDOWING_X11
+-  atk_bridge_adaptor_init (NULL, NULL);
+-#endif
+-
+   atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
+ }
diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk
new file mode 100644
index 0000000..b2c07a5
--- /dev/null
+++ b/package/libgtk3/libgtk3.mk
@@ -0,0 +1,174 @@
+################################################################################
+#
+# libgtk3
+#
+################################################################################
+
+LIBGTK3_VERSION_MAJOR = 3.12
+LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2
+LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
+LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
+LIBGTK3_LICENSE = LGPLv2+
+LIBGTK3_LICENSE_FILES = COPYING
+LIBGTK3_INSTALL_STAGING = YES
+LIBGTK3_AUTORECONF = YES
+
+LIBGTK3_CONF_ENV = \
+	ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
+	ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource
+
+LIBGTK3_CONF_ENV  = ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
+		    ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
+		    PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/usr/bin/pkgconf
+
+LIBGTK3_CONF_OPTS = --disable-glibtest \
+	--enable-explicit-deps=no \
+	--enable-gtk2-dependency \
+	--disable-debug \
+	--disable-introspection
+
+LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
+LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi
+
+LIBGTK3_CONF_OPTS += \
+	--enable-x11-backend \
+	--x-includes=$(STAGING_DIR)/usr/include/X11 \
+	--x-libraries=$(STAGING_DIR)/usr/lib
+else
+LIBGTK3_CONF_OPTS += --disable-x11-backend
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y)
+LIBGTK3_DEPENDENCIES += wayland libxkbcommon
+LIBGTK3_CONF_OPTS += --enable-wayland-backend
+else
+LIBGTK3_CONF_OPTS += --disable-wayland-backend
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_BROADWAY),y)
+LIBGTK3_CONF_OPTS += --enable-broadway-backend
+else
+LIBGTK3_CONF_OPTS += --disable-broadway-backend
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
+LIBGTK3_CONF_OPTS += --enable-xinerama
+LIBGTK3_DEPENDENCIES += xlib_libXinerama
+else
+LIBGTK3_CONF_OPTS += --disable-xinerama
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
+LIBGTK3_CONF_OPTS += --enable-xrandr
+LIBGTK3_DEPENDENCIES += xlib_libXrandr
+else
+LIBGTK3_CONF_OPTS += --disable-xrandr
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
+LIBGTK3_DEPENDENCIES += xlib_libXcursor
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
+LIBGTK3_CONF_OPTS += --enable-xfixes
+LIBGTK3_DEPENDENCIES += xlib_libXfixes
+else
+LIBGTK3_CONF_OPTS += --disable-xfixes
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
+LIBGTK3_CONF_OPTS += --enable-xcomposite
+LIBGTK3_DEPENDENCIES += xlib_libXcomposite
+else
+LIBGTK3_CONF_OPTS += --disable-xcomposite
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
+LIBGTK3_CONF_OPTS += --enable-xdamage
+LIBGTK3_DEPENDENCIES += xlib_libXdamage
+else
+LIBGTK3_CONF_OPTS += --disable-xdamage
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
+LIBGTK3_CONF_OPTS += --enable-xkb
+LIBGTK3_DEPENDENCIES += xlib_libxkbfile
+else
+LIBGTK3_CONF_OPTS += --disable-xkb
+endif
+
+ifeq ($(BR2_PACKAGE_CUPS),y)
+LIBGTK3_CONF_OPTS += --enable-cups
+LIBGTK3_DEPENDENCIES += cups
+else
+LIBGTK3_CONF_OPTS += --disable-cups
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),y)
+LIBGTK3_DEPENDENCIES += hicolor-icon-theme shared-mime-info
+else
+define LIBGTK3_REMOVE_DEMOS
+	$(RM) $(TARGET_DIR)/usr/bin/gtk3-demo \
+		$(TARGET_DIR)/usr/bin/gtk3-demo-application
+endef
+LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_REMOVE_DEMOS
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y)
+LIBGTK3_CONF_OPTS += --enable-installed-tests
+else
+LIBGTK3_CONF_OPTS += --disable-installed-tests
+endif
+
+define LIBGTK3_COMPILE_GLIB_SCHEMAS
+	$(HOST_DIR)/usr/bin/glib-compile-schemas \
+		$(TARGET_DIR)/usr/share/glib-2.0/schemas
+endef
+
+LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS
+
+# gtk+ >= 3.10 can build a native version of gtk-update-icon-cache if
+# --enable-gtk2-dependency=no is set when invoking './configure'.
+#
+# Unfortunately, if the target toolchain is based on uClibc, the macro
+# AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and
+# will add '-lintl' to the default list of libraries for the linker (used
+# for both native and target builds).
+#
+# But no native version of libintl is available (the functions are
+# provided by glibc). So gtk-update-icon-cache will not build.
+#
+# As a workaround, we build gtk-update-icon-cache on our own, set
+# --enable-gtk2-dependency=yes and force './configure' to use our version.
+
+HOST_LIBGTK3_DEPENDENCIES = \
+	host-libglib2 \
+	host-libpng \
+	host-gdk-pixbuf \
+	host-pkgconf
+
+HOST_LIBGTK3_CFLAGS = $(shell $(HOST_DIR)/usr/bin/pkgconf \
+		      --cflags --libs gdk-pixbuf-2.0)
+
+define HOST_LIBGTK3_CONFIGURE_CMDS
+	echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h
+	echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h
+	echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h
+endef
+
+define HOST_LIBGTK3_BUILD_CMDS
+	$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+		$(@D)/gtk/updateiconcache.c \
+		$(HOST_LIBGTK3_CFLAGS) \
+		-o $(@D)/gtk/gtk-update-icon-cache
+endef
+
+define HOST_LIBGTK3_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \
+		$(HOST_DIR)/usr/bin/gtk-update-icon-cache
+endef
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package
  2014-10-13 12:54 ` [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package Eric Le Bihan
@ 2014-10-15 10:10   ` Peter Korsgaard
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2014-10-15 10:10 UTC (permalink / raw)
  To: buildroot

>>>>> "Eric" == Eric Le Bihan <eric.le.bihan.dev@free.fr> writes:

 > This new package provides Freedesktop Hicolor icon theme.
 > This is the fallback icon theme, which only creates the standard
 > directory structure for storing icons of third-party applications (i.e.
 > the ones not available in usual icon themes).

 > Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [Patch v2 2/2] libgtk3: new package
  2014-10-13 12:54 ` [Buildroot] [Patch v2 2/2] libgtk3: " Eric Le Bihan
@ 2014-10-15 12:48   ` Peter Korsgaard
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2014-10-15 12:48 UTC (permalink / raw)
  To: buildroot

>>>>> "Eric" == Eric Le Bihan <eric.le.bihan.dev@free.fr> writes:

 > From: Hadrien Boutteville <hadrien.boutteville@gmail.com>
 > This package provides Gtk+ 3.0, a graphical toolkit.

 > Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
 > Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
 > [Eric: added backend support, use of pkgconf for host-libgtk3]
 > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 > Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>

 > +++ b/package/libgtk3/Config.in
 > @@ -0,0 +1,87 @@
 > +config BR2_PACKAGE_LIBGTK3
 > +	bool "libgtk3"
 > +	select BR2_PACKAGE_ATK
 > +	select BR2_PACKAGE_CAIRO
 > +	select BR2_PACKAGE_CAIRO_PS
 > +	select BR2_PACKAGE_CAIRO_PDF
 > +	select BR2_PACKAGE_CAIRO_SVG
 > +	select BR2_PACKAGE_LIBGLIB2
 > +	select BR2_PACKAGE_PANGO
 > +	select BR2_PACKAGE_GDK_PIXBUF
 > +	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND

That's not true, as you can build the HTML5 backend without any of
these. What we do need to do is to ensure atleast one backend is
enabled. As the HTML5 doesn't have any extra dependencies, that is the
one we should force enable if needed like this:

	# atleast 1 backend must be enabled
	select BR2_PACKAGE_LIBGTK3_BROADWAY if \
	       !(BR2_PACKAGE_LIBGTK3_X11 || BR2_PACKAGE_LIBGTK3_WAYLAND)

 > +	depends on BR2_USE_WCHAR # glib2
 > +	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 > +	depends on BR2_USE_MMU # glib2
 > +	depends on BR2_INSTALL_LIBSTDCPP # pango
 > +	depends on BR2_ARCH_HAS_ATOMICS # cairo
 > +	help
 > +	  The GTK+ version 3 graphical user interface library
 > +
 > +	  http://www.gtk.org/
 > +
 > +if BR2_PACKAGE_LIBGTK3
 > +
 > +comment "GDK backend"
 > +
 > +config BR2_PACKAGE_LIBGTK3_X11
 > +	bool "GDK X11 backend"
 > +	default y
 > +	depends on BR2_PACKAGE_XORG7
 > +	select BR2_PACKAGE_FONTCONFIG
 > +	select BR2_PACKAGE_XLIB_LIBX11
 > +	select BR2_PACKAGE_XLIB_LIBXEXT
 > +	select BR2_PACKAGE_XLIB_LIBXRENDER
 > +	select BR2_PACKAGE_XLIB_LIBXI
 > +	help
 > +	  This enables the X11 backend for GDK.
 > +
 > +config BR2_PACKAGE_LIBGTK3_WAYLAND
 > +	bool "GDK Wayland backend"
 > +	default y
 > +	depends on BR2_PACKAGE_WAYLAND
 > +	select BR2_PACKAGE_LIBXKBCOMMON
 > +	help
 > +	  This enables the Wayland backend for GDK.
 > +
 > +config BR2_PACKAGE_LIBGTK3_BROADWAY
 > +	bool "GDK Broadway backend"
 > +	default n

'n' is the default value, so this can get dropped.

 > +	help
 > +	  This enables the Broadway backend for GDK, which provides support
 > +	  for displaying GTK+ applications in a web browser, using HTML5 and
 > +	  web sockets.
 > +
 > +	  For example, to run gtk3-demo on a target which IP address is
 > +	  192.168.0.1 and use it from a web browser, execute the following
 > +	  commands:
 > +
 > +	    $ broadwayd -a 192.168.0.1 -p 8080 :2 &
 > +	    $ export GDK_BACKEND=broadway
 > +	    $ export BROADWAY_DISPLAY=:2
 > +	    $ gtk3-demo

Thanks, that's very nice. For a "normal" (E.G. single network interface)
I believe we can drop the -a 192.168.0.1 part.


 > +++ b/package/libgtk3/libgtk3-0001-no-gtk-doc.patch
 > @@ -0,0 +1,25 @@
 > +Same patch as for systemd in commit
 > +7144f2f04b705538a893e538a6b851f536f433b6:

It might not be clear to people what repository this commit id refers to
so I've added a link to cgit.


 > +++ b/package/libgtk3/libgtk3-0002-fix-introspection-check.patch
 > @@ -0,0 +1,28 @@
 > +Fix HAVE_INTROSPECTION does not appear in AM_CONDITIONAL
 > +
 > +During autoreconf GOBJECT_INTROSPECTION_CHECK could not be resolve because we

s/resolve/resolved/


 > +++ b/package/libgtk3/libgtk3.mk
 > @@ -0,0 +1,174 @@
 > +################################################################################
 > +#
 > +# libgtk3
 > +#
 > +################################################################################
 > +
 > +LIBGTK3_VERSION_MAJOR = 3.12
 > +LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2
 > +LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
 > +LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
 > +LIBGTK3_LICENSE = LGPLv2+
 > +LIBGTK3_LICENSE_FILES = COPYING
 > +LIBGTK3_INSTALL_STAGING = YES
 > +LIBGTK3_AUTORECONF = YES
 > +
 > +LIBGTK3_CONF_ENV = \
 > +	ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
 > +	ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource
 > +
 > +LIBGTK3_CONF_ENV  = ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/usr/bin/gtk-update-icon-cache \
 > +		    ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/usr/bin/gdk-pixbuf-csource \
 > +		    PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/usr/bin/pkgconf
 > +

_ENV is defined twice. We already pass the correct pkg-config to
configure, so I've dropped the 2nd part.


 > +LIBGTK3_CONF_OPTS = --disable-glibtest \
 > +	--enable-explicit-deps=no \
 > +	--enable-gtk2-dependency \

Why? What does this do?


 > +	--disable-debug \

Debugging is disabled by default (for stable gtk3 releases), and
pkg-autotools.mk already pass --enable-debug if needed so this can get
dropped.

Committed with these fixes, thanks!

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-10-15 12:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-13 12:54 [Buildroot] [Patch v2 0/2] Re-introducing libgtk3 Eric Le Bihan
2014-10-13 12:54 ` [Buildroot] [Patch v2 1/2] hicolor-icon-theme: new package Eric Le Bihan
2014-10-15 10:10   ` Peter Korsgaard
2014-10-13 12:54 ` [Buildroot] [Patch v2 2/2] libgtk3: " Eric Le Bihan
2014-10-15 12:48   ` Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox