[Buildroot] [RFC 4/9] at-spi2-core: new package

Hadrien Boutteville hadrien.boutteville at gmail.com
Tue Jul 8 13:57:07 UTC 2014


The ati-spi2-core package provides Assistive Technology Service
Provider Interface (dbus core). This package is a requirement for Gtk+
3.0.

Signed-off-by: Hadrien Boutteville <hadrien.boutteville at gmail.com>
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev at free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: "Yann E. MORIN" <yann.morin.1998 at free.fr>
---
 package/Config.in                                  |  1 +
 package/at-spi2-core/Config.in                     | 17 +++++
 ...se-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch | 79 ++++++++++++++++++++++
 package/at-spi2-core/at-spi2-core.mk               | 24 +++++++
 4 files changed, 121 insertions(+)
 create mode 100644 package/at-spi2-core/Config.in
 create mode 100644 package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
 create mode 100644 package/at-spi2-core/at-spi2-core.mk

diff --git a/package/Config.in b/package/Config.in
index 8e1c391..1ec108a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -587,6 +587,7 @@ endmenu
 
 menu "Graphics"
 	source "package/atk/Config.in"
+	source "package/at-spi2-core/Config.in"
 	source "package/cairo/Config.in"
 	source "package/fltk/Config.in"
 	source "package/fontconfig/Config.in"
diff --git a/package/at-spi2-core/Config.in b/package/at-spi2-core/Config.in
new file mode 100644
index 0000000..8aa40c8
--- /dev/null
+++ b/package/at-spi2-core/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_AT_SPI2_CORE
+	bool "at-spi2-core"
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_DBUS
+	select BR2_PACKAGE_XLIB_LIBXI
+	select BR2_PACKAGE_XLIB_LIBXTST
+	depends on BR2_PACKAGE_XORG7
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+	depends on BR2_USE_MMU # libglib2
+	help
+	  Assistive Technology Service Provider Interface (dbus core)
+
+comment "at-spi2-core needs a toolchain w/wchar, threads"
+	depends on !BR2_USE_MMU
+	depends on !BR2_PACKAGE_XORG7
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch b/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
new file mode 100644
index 0000000..fd264a4
--- /dev/null
+++ b/package/at-spi2-core/at-spi2-core-0001-configure-use-AC_CHECK_ALIGNOF-instead-of-custom-DBI.patch
@@ -0,0 +1,79 @@
+From 03ffeeb29389b547d555a8d1d4a2b16eabfc3385 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
+Date: Wed, 25 Jun 2014 19:45:28 +0200
+Subject: [PATCH] configure: use AC_CHECK_ALIGNOF() instead of custom
+ DBIND_CHECK_ALIGNOF()
+
+DBIND_CHECK_ALIGNOF() is a custom autoconf macro from at-spi2-core
+that tests the alignment required on the current platform for a given
+C type. Unfortunately, this macro uses AC_TRY_RUN(), which requires
+running a test program on the target platform, which is fundamentally
+incompatible with cross-compilation.
+
+Therefore, this patch switches the configure.ac code to use
+AC_CHECK_ALIGNOF() instead, which is available in the standard set of
+autoconf macros, and is able to test the required alignment for C
+types without using AC_TRY_RUN(). Consequently, it adjusts the
+dbind/dbind-config.h.in definitions to use the definitions created by
+the AC_CHECK_ALIGNOF() macros, which are not substituted by autoconf,
+but directly available from config.h.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
+---
+ configure.ac            | 18 ++++++++++--------
+ dbind/dbind-config.h.in | 16 ++++++++--------
+ 2 files changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a330453..b997301 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -196,14 +196,16 @@ AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
+ dnl find sizes & alignments
+ orig_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $DBUS_CFLAGS"
+-DBIND_CHECK_ALIGNOF(char)
+-DBIND_CHECK_ALIGNOF(dbus_bool_t)
+-DBIND_CHECK_ALIGNOF(dbus_int16_t)
+-DBIND_CHECK_ALIGNOF(dbus_int32_t)
+-DBIND_CHECK_ALIGNOF(dbus_int64_t)
+-DBIND_CHECK_ALIGNOF(double)
+-DBIND_CHECK_ALIGNOF(dbind_pointer)
+-DBIND_CHECK_ALIGNOF(dbind_struct)
++AC_CHECK_ALIGNOF(char)
++AC_CHECK_ALIGNOF(dbus_bool_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int16_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int32_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbus_int64_t, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(double, [#include <dbus/dbus.h>])
++AC_CHECK_ALIGNOF(dbind_pointer, [AC_INCLUDES_DEFAULT
++typedef void *dbind_pointer;])
++AC_CHECK_ALIGNOF(dbind_struct, [AC_INCLUDES_DEFAULT
++typedef struct {char s1;} dbind_struct;])
+ 
+ GTK_DOC_CHECK([1.09])
+ 
+diff --git a/dbind/dbind-config.h.in b/dbind/dbind-config.h.in
+index 3da421e..779c4c6 100644
+--- a/dbind/dbind-config.h.in
++++ b/dbind/dbind-config.h.in
+@@ -1,8 +1,8 @@
+-#define DBIND_ALIGNOF_CHAR          @DBIND_ALIGNOF_CHAR@
+-#define DBIND_ALIGNOF_DBIND_POINTER @DBIND_ALIGNOF_DBIND_POINTER@
+-#define DBIND_ALIGNOF_DBIND_STRUCT  @DBIND_ALIGNOF_DBIND_STRUCT@
+-#define DBIND_ALIGNOF_DBUS_BOOL_T   @DBIND_ALIGNOF_DBUS_BOOL_T@
+-#define DBIND_ALIGNOF_DBUS_INT16_T  @DBIND_ALIGNOF_DBUS_INT16_T@
+-#define DBIND_ALIGNOF_DBUS_INT32_T  @DBIND_ALIGNOF_DBUS_INT32_T@
+-#define DBIND_ALIGNOF_DBUS_INT64_T  @DBIND_ALIGNOF_DBUS_INT64_T@
+-#define DBIND_ALIGNOF_DOUBLE        @DBIND_ALIGNOF_DOUBLE@
++#define DBIND_ALIGNOF_CHAR          ALIGNOF_CHAR
++#define DBIND_ALIGNOF_DBIND_POINTER ALIGNOF_DBIND_POINTER
++#define DBIND_ALIGNOF_DBIND_STRUCT  ALIGNOF_DBIND_STRUCT
++#define DBIND_ALIGNOF_DBUS_BOOL_T   ALIGNOF_DBUS_BOOL_T
++#define DBIND_ALIGNOF_DBUS_INT16_T  ALIGNOF_DBUS_INT16_T
++#define DBIND_ALIGNOF_DBUS_INT32_T  ALIGNOF_DBUS_INT32_T
++#define DBIND_ALIGNOF_DBUS_INT64_T  ALIGNOF_DBUS_INT64_T
++#define DBIND_ALIGNOF_DOUBLE        ALIGNOF_DOUBLE
+-- 
+2.0.0
+
diff --git a/package/at-spi2-core/at-spi2-core.mk b/package/at-spi2-core/at-spi2-core.mk
new file mode 100644
index 0000000..73a0ad3
--- /dev/null
+++ b/package/at-spi2-core/at-spi2-core.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# at-spi2-core
+#
+################################################################################
+
+AT_SPI2_CORE_VERSION_MAJOR = 2.10
+AT_SPI2_CORE_VERSION_MINOR = 2
+AT_SPI2_CORE_VERSION = $(AT_SPI2_CORE_VERSION_MAJOR).$(AT_SPI2_CORE_VERSION_MINOR)
+AT_SPI2_CORE_SOURCE = at-spi2-core-$(AT_SPI2_CORE_VERSION).tar.xz
+AT_SPI2_CORE_SITE = http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/$(AT_SPI2_CORE_VERSION_MAJOR)
+AT_SPI2_CORE_LICENSE = LGPLv2+
+AT_SPI2_CORE_LICENSE_FILES = COPYING
+AT_SPI2_CORE_INSTALL_STAGING = YES
+AT_SPI2_CORE_INSTALL_TARGET = YES
+AT_SPI2_CORE_AUTORECONF = YES
+
+AT_SPI2_CORE_CONF_OPT = --disable-introspection \
+			--disable-xevie
+
+AT_SPI2_CORE_DEPENDENCIES = host-pkgconf libglib2 dbus xlib_libXi xlib_libXtst \
+		host-intltool
+
+$(eval $(autotools-package))
-- 
2.0.1



More information about the buildroot mailing list