All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/5] libevent: add host variant
@ 2013-10-25 12:15 Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 12:15 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/libevent/libevent.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/libevent/libevent.mk b/package/libevent/libevent.mk
index a6def1a..14ebf72 100644
--- a/package/libevent/libevent.mk
+++ b/package/libevent/libevent.mk
@@ -20,3 +20,4 @@ LIBEVENT_POST_INSTALL_TARGET_HOOKS += LIBEVENT_REMOVE_PYSCRIPT
 endif
 
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
1.8.1.5

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 12:15 [Buildroot] [PATCH 1/5] libevent: add host variant Gustavo Zacarias
@ 2013-10-25 12:15 ` Gustavo Zacarias
  2013-10-25 21:53   ` Ryan Barnett
  2013-10-25 23:21   ` Arnout Vandecappelle
  2013-10-25 12:15 ` [Buildroot] [PATCH 3/5] python-thrift: fix cross building Gustavo Zacarias
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 12:15 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/boost/boost.mk | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/package/boost/boost.mk b/package/boost/boost.mk
index b0b3352..8a1a8f7 100644
--- a/package/boost/boost.mk
+++ b/package/boost/boost.mk
@@ -11,11 +11,19 @@ BOOST_SITE = http://downloads.sourceforge.net/project/boost/boost/$(BOOST_VERSIO
 BOOST_INSTALL_STAGING = YES
 
 TARGET_CC_VERSION = $(shell $(TARGET_CC) -dumpversion)
+HOST_CC_VERSION = $(shell $(HOSTCC) -dumpversion)
 
 BOOST_DEPENDENCIES =
 
 BOOST_FLAGS =
 
+# keep host variant as minimal as possible
+HOST_BOOST_FLAGS = --without-icu \
+	--without-libraries=$(subst $(space),$(comma),atomic chrono context \
+	coroutine date_time exception filesystem graph graph_parallel \
+	iostreams locale log math mpi program_options python random regex \
+	serialization signals system test thread timer wave)
+
 # atomic library compile only with upstream version, wait for next release
 # coroutine breaks on some weak toolchains and it's new for 1.54+
 # log breaks with some toolchain combinations and it's new for 1.54+
@@ -54,6 +62,9 @@ ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y)
 BOOST_DEPENDENCIES += bzip2 zlib
 endif
 
+HOST_BOOST_OPT += toolset=gcc threading=multi variant=release link=shared \
+	runtime-link=shared
+
 BOOST_OPT += toolset=gcc \
 	     threading=multi \
 	     variant=$(if $(BR2_ENABLE_DEBUG),debug,release) \
@@ -78,6 +89,12 @@ define BOOST_CONFIGURE_CMDS
 	echo "" >> $(@D)/user-config.jam
 endef
 
+define HOST_BOOST_CONFIGURE_CMDS
+	(cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS))
+	echo "using gcc : $(HOST_CC_VERSION) : $(HOSTCXX) : <cxxflags>\"$(HOST_CXXFLAGS)\" <linkflags>\"$(HOST_LDFLAGS)\" ;" > $(@D)/user-config.jam
+	echo "" >> $(@D)/user-config.jam
+endef
+
 define BOOST_INSTALL_TARGET_CMDS
 	(cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
 	--user-config=$(@D)/user-config.jam \
@@ -86,6 +103,21 @@ define BOOST_INSTALL_TARGET_CMDS
 	--layout=system install )
 endef
 
+define HOST_BOOST_BUILD_CMDS
+	(cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
+	--user-config=$(@D)/user-config.jam \
+	$(HOST_BOOST_OPT) \
+	--prefix=$(HOST_DIR)/usr )
+endef
+
+define HOST_BOOST_INSTALL_CMDS
+	(cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
+	--user-config=$(@D)/user-config.jam \
+	$(HOST_BOOST_OPT) \
+	--prefix=$(HOST_DIR)/usr \
+	--layout=system install )
+endef
+
 define BOOST_INSTALL_STAGING_CMDS
 	(cd $(@D) && ./bjam -j$(PARALLEL_JOBS) -d+1 \
 	--user-config=$(@D)/user-config.jam \
@@ -95,3 +127,4 @@ define BOOST_INSTALL_STAGING_CMDS
 endef
 
 $(eval $(generic-package))
+$(eval $(host-autotools-package))
-- 
1.8.1.5

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

* [Buildroot] [PATCH 3/5] python-thrift: fix cross building
  2013-10-25 12:15 [Buildroot] [PATCH 1/5] libevent: add host variant Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
@ 2013-10-25 12:15 ` Gustavo Zacarias
  2013-10-25 21:54   ` Ryan Barnett
  2013-10-25 12:15 ` [Buildroot] [PATCH 4/5] python-thrift: bump to version 0.9.1 and switch to apache Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 5/5] thrift: new package Gustavo Zacarias
  3 siblings, 1 reply; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 12:15 UTC (permalink / raw)
  To: buildroot

The C code (fastbinary.so) wasn't built using the cross compiler, hence
it was unusable. Fix it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/python-thrift/python-thrift.mk | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/package/python-thrift/python-thrift.mk b/package/python-thrift/python-thrift.mk
index 4cd35e5..65733d4 100644
--- a/package/python-thrift/python-thrift.mk
+++ b/package/python-thrift/python-thrift.mk
@@ -9,13 +9,18 @@ PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz
 PYTHON_THRIFT_SITE = http://pypi.python.org/packages/source/t/thrift
 PYTHON_THRIFT_LICENSE = Apache-2.0
 PYTHON_THRIFT_LICENSE_FILES = README
-
 PYTHON_THRIFT_DEPENDENCIES = python
 
 define PYTHON_THRIFT_BUILD_CMDS
 	(cd $(@D); \
-		PYTHONXCPREFIX="$(STAGING_DIR)/usr/" \
-		LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
+		CC="$(TARGET_CC)" \
+		CFLAGS="$(TARGET_CFLAGS)" \
+		LDSHARED="$(TARGET_CROSS)gcc -shared" \
+		CROSS_COMPILING=yes \
+		_python_sysroot=$(STAGING_DIR) \
+		_python_srcdir=$(BUILD_DIR)/python$(PYTHON_VERSION) \
+		_python_prefix=/usr \
+		_python_exec_prefix=/usr \
 		$(HOST_DIR)/usr/bin/python setup.py build)
 endef
 
-- 
1.8.1.5

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

* [Buildroot] [PATCH 4/5] python-thrift: bump to version 0.9.1 and switch to apache
  2013-10-25 12:15 [Buildroot] [PATCH 1/5] libevent: add host variant Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 3/5] python-thrift: fix cross building Gustavo Zacarias
@ 2013-10-25 12:15 ` Gustavo Zacarias
  2013-10-25 12:15 ` [Buildroot] [PATCH 5/5] thrift: new package Gustavo Zacarias
  3 siblings, 0 replies; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 12:15 UTC (permalink / raw)
  To: buildroot

Switch away from the PyPI subset version since it has a great filename
clash with the full upstream apache version.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/python-thrift/python-thrift.mk | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/package/python-thrift/python-thrift.mk b/package/python-thrift/python-thrift.mk
index 65733d4..91e14e5 100644
--- a/package/python-thrift/python-thrift.mk
+++ b/package/python-thrift/python-thrift.mk
@@ -4,15 +4,15 @@
 #
 ################################################################################
 
-PYTHON_THRIFT_VERSION = 0.9.0
+PYTHON_THRIFT_VERSION = 0.9.1
 PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz
-PYTHON_THRIFT_SITE = http://pypi.python.org/packages/source/t/thrift
+PYTHON_THRIFT_SITE = http://www.us.apache.org/dist/thrift/$(PYTHON_THRIFT_VERSION)
 PYTHON_THRIFT_LICENSE = Apache-2.0
-PYTHON_THRIFT_LICENSE_FILES = README
+PYTHON_THRIFT_LICENSE_FILES = LICENSE
 PYTHON_THRIFT_DEPENDENCIES = python
 
 define PYTHON_THRIFT_BUILD_CMDS
-	(cd $(@D); \
+	(cd $(@D)/lib/py; \
 		CC="$(TARGET_CC)" \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		LDSHARED="$(TARGET_CROSS)gcc -shared" \
@@ -28,7 +28,7 @@ endef
 # the installation directory is in python's load path. For host-python,
 # it is not, so add it explicitly while installing to target.
 define PYTHON_THRIFT_INSTALL_TARGET_CMDS
-	(cd $(@D); PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
+	(cd $(@D)/lib/py; PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
 		$(HOST_DIR)/usr/bin/python setup.py install --prefix=$(TARGET_DIR)/usr)
 endef
 
-- 
1.8.1.5

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-25 12:15 [Buildroot] [PATCH 1/5] libevent: add host variant Gustavo Zacarias
                   ` (2 preceding siblings ...)
  2013-10-25 12:15 ` [Buildroot] [PATCH 4/5] python-thrift: bump to version 0.9.1 and switch to apache Gustavo Zacarias
@ 2013-10-25 12:15 ` Gustavo Zacarias
  2013-10-26  3:12   ` Ryan Barnett
  3 siblings, 1 reply; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 12:15 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/Config.in                             |  1 +
 package/thrift/Config.in                      | 22 +++++++++++
 package/thrift/thrift-01-libevent-cross.patch | 16 ++++++++
 package/thrift/thrift-02-autoreconf.patch     | 22 +++++++++++
 package/thrift/thrift-03-zlib-cross.patch     | 16 ++++++++
 package/thrift/thrift.mk                      | 54 +++++++++++++++++++++++++++
 6 files changed, 131 insertions(+)
 create mode 100644 package/thrift/Config.in
 create mode 100644 package/thrift/thrift-01-libevent-cross.patch
 create mode 100644 package/thrift/thrift-02-autoreconf.patch
 create mode 100644 package/thrift/thrift-03-zlib-cross.patch
 create mode 100644 package/thrift/thrift.mk

diff --git a/package/Config.in b/package/Config.in
index 16cb36d..319b7d5 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -639,6 +639,7 @@ source "package/openpgm/Config.in"
 source "package/ortp/Config.in"
 source "package/slirp/Config.in"
 source "package/snmppp/Config.in"
+source "package/thrift/Config.in"
 source "package/usbredir/Config.in"
 source "package/wvstreams/Config.in"
 source "package/zeromq/Config.in"
diff --git a/package/thrift/Config.in b/package/thrift/Config.in
new file mode 100644
index 0000000..38a8897
--- /dev/null
+++ b/package/thrift/Config.in
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_THRIFT
+	bool "thrift"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_WCHAR
+	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_LIBEVENT
+	select BR2_PACKAGE_OPENSSL
+	help
+	  The Apache Thrift software framework, for scalable cross-language
+	  services development, combines a software stack with a
+	  code generation engine to build services that work
+	  efficiently and seamlessly between C++, Java, Python, PHP, Ruby,
+	  Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk,
+	  OCaml and Delphi and other languages.
+
+	  http://thrift.apache.org/
+
+comment "thrift needs a toolchain w/ C++, largefile, wchar, threads"
+	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
diff --git a/package/thrift/thrift-01-libevent-cross.patch b/package/thrift/thrift-01-libevent-cross.patch
new file mode 100644
index 0000000..f07caa7
--- /dev/null
+++ b/package/thrift/thrift-01-libevent-cross.patch
@@ -0,0 +1,16 @@
+Make it cross-compile happy the hard way, there's no clean way.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_event.m4 thrift-0.9.1/aclocal/ax_lib_event.m4
+--- thrift-0.9.1.orig/aclocal/ax_lib_event.m4	2013-08-15 11:04:29.000000000 -0300
++++ thrift-0.9.1/aclocal/ax_lib_event.m4	2013-10-07 20:40:44.076435613 -0300
+@@ -75,7 +75,7 @@
+           AC_LANG_PUSH([C])
+           dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling,
+           dnl but then the version cannot be checked.
+-          AC_RUN_IFELSE([AC_LANG_PROGRAM([[
++          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+           #include <sys/types.h>
+           #include <event.h>
+           ]], [[
diff --git a/package/thrift/thrift-02-autoreconf.patch b/package/thrift/thrift-02-autoreconf.patch
new file mode 100644
index 0000000..d56212a
--- /dev/null
+++ b/package/thrift/thrift-02-autoreconf.patch
@@ -0,0 +1,22 @@
+Fillers to make autoreconf (automake) happy.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura thrift-0.9.1.orig/AUTHORS thrift-0.9.1/AUTHORS
+--- thrift-0.9.1.orig/AUTHORS	1969-12-31 21:00:00.000000000 -0300
++++ thrift-0.9.1/AUTHORS	2013-10-07 20:45:15.745315148 -0300
+@@ -0,0 +1,2 @@
++
++
+diff -Nura thrift-0.9.1.orig/ChangeLog thrift-0.9.1/ChangeLog
+--- thrift-0.9.1.orig/ChangeLog	1969-12-31 21:00:00.000000000 -0300
++++ thrift-0.9.1/ChangeLog	2013-10-07 20:45:23.078554836 -0300
+@@ -0,0 +1,2 @@
++
++
+diff -Nura thrift-0.9.1.orig/NEWS thrift-0.9.1/NEWS
+--- thrift-0.9.1.orig/NEWS	1969-12-31 21:00:00.000000000 -0300
++++ thrift-0.9.1/NEWS	2013-10-07 20:45:20.351465699 -0300
+@@ -0,0 +1,2 @@
++
++
diff --git a/package/thrift/thrift-03-zlib-cross.patch b/package/thrift/thrift-03-zlib-cross.patch
new file mode 100644
index 0000000..3af39c4
--- /dev/null
+++ b/package/thrift/thrift-03-zlib-cross.patch
@@ -0,0 +1,16 @@
+Make zlib version detection cross-compile happy.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4 thrift-0.9.1/aclocal/ax_lib_zlib.m4
+--- thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4	2013-08-15 11:04:29.000000000 -0300
++++ thrift-0.9.1/aclocal/ax_lib_zlib.m4	2013-10-07 20:47:44.523177973 -0300
+@@ -73,7 +73,7 @@
+           #   (defined in the library).
+           AC_LANG_PUSH([C])
+           dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling.
+-          AC_RUN_IFELSE([AC_LANG_PROGRAM([[
++          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+           #include <zlib.h>
+           #if ZLIB_VERNUM >= 0x$WANT_ZLIB_VERSION
+           #else
diff --git a/package/thrift/thrift.mk b/package/thrift/thrift.mk
new file mode 100644
index 0000000..53e1b97
--- /dev/null
+++ b/package/thrift/thrift.mk
@@ -0,0 +1,54 @@
+################################################################################
+#
+# thrift
+#
+################################################################################
+
+THRIFT_VERSION = 0.9.1
+THRIFT_SITE = http://www.us.apache.org/dist/thrift/$(THRIFT_VERSION)
+THRIFT_DEPENDENCIES = host-pkgconf host-thrift boost libevent openssl
+HOST_THRIFT_DEPENDENCIES = host-boost host-libevent host-openssl host-pkgconf
+THRIFT_CONF_OPT = --with-sysroot=$(STAGING_DIR) --with-tests=no \
+	--with-boost=$(STAGING_DIR)
+HOST_THRIFT_CONF_OPT = --with-sysroot=$(HOST_DIR) --with-tests=no
+THRIFT_AUTORECONF = YES
+THRIFT_LICENSE = Apache 2.0
+THRIFT_LICENSE_FILES = LICENSE
+
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+# openssl uses zlib, so we need to explicitly link with it when static
+THRIFT_CONF_ENV += LIBS=-lz
+endif
+
+# Language selection
+# The generator (host tool) works with all of them regardless
+# This is just for the libraries / bindings
+THRIFT_LANG_CONF_OPT += --without-csharp --without-java --without-erlang \
+	--without-python --without-perl --without-php --without-php_extension \
+	--without-ruby --without-haskell --without-go --without-d
+HOST_THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT) --without-c_glib
+THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT)
+
+# C bindings
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+THRIFT_DEPENDENCIES += libglib2
+else
+THRIFT_CONF_OPT += --without-c_glib
+endif
+
+# De-hardcode THRIFT for cross compiling
+define THRIFT_BUILD_CMDS
+	for f in `find $(@D) -name Makefile -type f`; do \
+		$(SED) "/^THRIFT =/d" $$f; \
+	done
+	$(SED) "s:top_builddir)/compiler/cpp/thrift:THRIFT):" $(@D)/tutorial/Makefile
+	$(TARGET_MAKE_ENV) $(MAKE) THRIFT=$(HOST_DIR)/usr/bin/thrift -C $(@D)
+endef
+
+# Install runtime only
+define THRIFT_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/lib DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
1.8.1.5

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
@ 2013-10-25 21:53   ` Ryan Barnett
  2013-10-25 22:23     ` Gustavo Zacarias
  2013-10-25 23:21   ` Arnout Vandecappelle
  1 sibling, 1 reply; 17+ messages in thread
From: Ryan Barnett @ 2013-10-25 21:53 UTC (permalink / raw)
  To: buildroot

Gustavo,

Please see my comment below, otherwise looks good.

Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 07:15:20 
AM:

> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/boost/boost.mk | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/package/boost/boost.mk b/package/boost/boost.mk
> index b0b3352..8a1a8f7 100644
> --- a/package/boost/boost.mk
> +++ b/package/boost/boost.mk
> @@ -11,11 +11,19 @@ BOOST_SITE = 
http://downloads.sourceforge.net/project/boost/boost/$(BOOST_VERSIO
>  BOOST_INSTALL_STAGING = YES
> 
>  TARGET_CC_VERSION = $(shell $(TARGET_CC) -dumpversion)
> +HOST_CC_VERSION = $(shell $(HOSTCC) -dumpversion)
> 
>  BOOST_DEPENDENCIES =
> 
>  BOOST_FLAGS =
> 
> +# keep host variant as minimal as possible

Could you expand more on what you are leaving enabled and why?

> +HOST_BOOST_FLAGS = --without-icu \
> +   --without-libraries=$(subst $(space),$(comma),atomic chrono context 
\
> +   coroutine date_time exception filesystem graph graph_parallel \
> +   iostreams locale log math mpi program_options python random regex \
> +   serialization signals system test thread timer wave)
> +
>  # atomic library compile only with upstream version, wait for next 
release
>  # coroutine breaks on some weak toolchains and it's new for 1.54+
>  # log breaks with some toolchain combinations and it's new for 1.54+
> @@ -54,6 +62,9 @@ ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y)
>  BOOST_DEPENDENCIES += bzip2 zlib
>  endif
> 
> +HOST_BOOST_OPT += toolset=gcc threading=multi variant=release 
link=shared \
> +   runtime-link=shared
> +
>  BOOST_OPT += toolset=gcc \
>          threading=multi \
>          variant=$(if $(BR2_ENABLE_DEBUG),debug,release) \
> @@ -78,6 +89,12 @@ define BOOST_CONFIGURE_CMDS
>     echo "" >> $(@D)/user-config.jam
>  endef
> 
> +define HOST_BOOST_CONFIGURE_CMDS
> +   (cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS))
> +   echo "using gcc : $(HOST_CC_VERSION) : $(HOSTCXX) : 
<cxxflags>\"$(HOST_CXXFLAGS)\" <linkflags>\"$(HOST_LDFLAGS)\" ;" > 
$(@D)/user-config.jam
> +   echo "" >> $(@D)/user-config.jam
> +endef
> +
>  define BOOST_INSTALL_TARGET_CMDS
>     (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
>     --user-config=$(@D)/user-config.jam \
> @@ -86,6 +103,21 @@ define BOOST_INSTALL_TARGET_CMDS
>     --layout=system install )
>  endef
> 
> +define HOST_BOOST_BUILD_CMDS
> +   (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
> +   --user-config=$(@D)/user-config.jam \
> +   $(HOST_BOOST_OPT) \
> +   --prefix=$(HOST_DIR)/usr )
> +endef
> +
> +define HOST_BOOST_INSTALL_CMDS
> +   (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
> +   --user-config=$(@D)/user-config.jam \
> +   $(HOST_BOOST_OPT) \
> +   --prefix=$(HOST_DIR)/usr \
> +   --layout=system install )
> +endef
> +
>  define BOOST_INSTALL_STAGING_CMDS
>     (cd $(@D) && ./bjam -j$(PARALLEL_JOBS) -d+1 \
>     --user-config=$(@D)/user-config.jam \
> @@ -95,3 +127,4 @@ define BOOST_INSTALL_STAGING_CMDS
>  endef
> 
>  $(eval $(generic-package))
> +$(eval $(host-autotools-package))
> -- 
> 1.8.1.5
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 3/5] python-thrift: fix cross building
  2013-10-25 12:15 ` [Buildroot] [PATCH 3/5] python-thrift: fix cross building Gustavo Zacarias
@ 2013-10-25 21:54   ` Ryan Barnett
  0 siblings, 0 replies; 17+ messages in thread
From: Ryan Barnett @ 2013-10-25 21:54 UTC (permalink / raw)
  To: buildroot

Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 07:15:21 
AM:

> The C code (fastbinary.so) wasn't built using the cross compiler, hence
> it was unusable. Fix it.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

Acked-by: Ryan Barnett <rjbarnet@rockwellcollins.com>

> ---
>  package/python-thrift/python-thrift.mk | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 21:53   ` Ryan Barnett
@ 2013-10-25 22:23     ` Gustavo Zacarias
  2013-10-26  2:29       ` Ryan Barnett
  0 siblings, 1 reply; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 22:23 UTC (permalink / raw)
  To: buildroot

On 10/25/2013 06:53 PM, Ryan Barnett wrote:

> Gustavo,
> 
> Please see my comment below, otherwise looks good.
> 
> Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 07:15:20 
> AM:
> 
>> +# keep host variant as minimal as possible
> 
> Could you expand more on what you are leaving enabled and why?

Just the barebones is enough for host-thrift (the tool) hence there's
nothing to gain from a full host-boost other than longer build times.
If the need arises it can be expanded in the future for other host-* users.
Regards.

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
  2013-10-25 21:53   ` Ryan Barnett
@ 2013-10-25 23:21   ` Arnout Vandecappelle
  2013-10-25 23:52     ` Gustavo Zacarias
  1 sibling, 1 reply; 17+ messages in thread
From: Arnout Vandecappelle @ 2013-10-25 23:21 UTC (permalink / raw)
  To: buildroot

On 25/10/13 14:15, Gustavo Zacarias wrote:
[snip]
> @@ -95,3 +127,4 @@ define BOOST_INSTALL_STAGING_CMDS
>   endef
>
>   $(eval $(generic-package))
> +$(eval $(host-autotools-package))

  Wow, did it suddenly become an autotools package? :-)

  Regards,
  Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 23:21   ` Arnout Vandecappelle
@ 2013-10-25 23:52     ` Gustavo Zacarias
  0 siblings, 0 replies; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-25 23:52 UTC (permalink / raw)
  To: buildroot

On 10/25/2013 08:21 PM, Arnout Vandecappelle wrote:

> On 25/10/13 14:15, Gustavo Zacarias wrote:
> [snip]
>> @@ -95,3 +127,4 @@ define BOOST_INSTALL_STAGING_CMDS
>>   endef
>>
>>   $(eval $(generic-package))
>> +$(eval $(host-autotools-package))
> 
>  Wow, did it suddenly become an autotools package? :-)

Damn copy/paste!
For all intents and purposes it works since all the important steps are
redefined.
I'll sent a v2 tomorrow after seeing if there's anything else to touch
in the other patches.
Regards.

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

* [Buildroot] [PATCH 2/5] boost: add host variant
  2013-10-25 22:23     ` Gustavo Zacarias
@ 2013-10-26  2:29       ` Ryan Barnett
  0 siblings, 0 replies; 17+ messages in thread
From: Ryan Barnett @ 2013-10-26  2:29 UTC (permalink / raw)
  To: buildroot

Gustavo,

Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 05:23:28 
PM:

> On 10/25/2013 06:53 PM, Ryan Barnett wrote:
> 
> > Gustavo,
> > 
> > Please see my comment below, otherwise looks good.
> > 
> > Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 
07:15:20 
> > AM:
> > 
> >> +# keep host variant as minimal as possible
> > 
> > Could you expand more on what you are leaving enabled and why?
> 
> Just the barebones is enough for host-thrift (the tool) hence there's
> nothing to gain from a full host-boost other than longer build times.
> If the need arises it can be expanded in the future for other host-* 
users.

Mind adding a small comment along these lines - minimal configuration for 
host-thrift?

Thanks,
-Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20131025/d34488e8/attachment-0001.html>

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-25 12:15 ` [Buildroot] [PATCH 5/5] thrift: new package Gustavo Zacarias
@ 2013-10-26  3:12   ` Ryan Barnett
  2013-10-26  9:48     ` Gustavo Zacarias
  0 siblings, 1 reply; 17+ messages in thread
From: Ryan Barnett @ 2013-10-26  3:12 UTC (permalink / raw)
  To: buildroot

Gustavo,

Please see my comments below.

Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/25/2013 07:15:23 
AM:

> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/Config.in                             |  1 +
>  package/thrift/Config.in                      | 22 +++++++++++
>  package/thrift/thrift-01-libevent-cross.patch | 16 ++++++++
>  package/thrift/thrift-02-autoreconf.patch     | 22 +++++++++++
>  package/thrift/thrift-03-zlib-cross.patch     | 16 ++++++++
>  package/thrift/thrift.mk                      | 54 
+++++++++++++++++++++++++++
>  6 files changed, 131 insertions(+)
>  create mode 100644 package/thrift/Config.in
>  create mode 100644 package/thrift/thrift-01-libevent-cross.patch
>  create mode 100644 package/thrift/thrift-02-autoreconf.patch
>  create mode 100644 package/thrift/thrift-03-zlib-cross.patch
>  create mode 100644 package/thrift/thrift.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 16cb36d..319b7d5 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -639,6 +639,7 @@ source "package/openpgm/Config.in"
>  source "package/ortp/Config.in"
>  source "package/slirp/Config.in"
>  source "package/snmppp/Config.in"
> +source "package/thrift/Config.in"
>  source "package/usbredir/Config.in"
>  source "package/wvstreams/Config.in"
>  source "package/zeromq/Config.in"
> diff --git a/package/thrift/Config.in b/package/thrift/Config.in
> new file mode 100644
> index 0000000..38a8897
> --- /dev/null
> +++ b/package/thrift/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_THRIFT
> +   bool "thrift"
> +   depends on BR2_INSTALL_LIBSTDCPP
> +   depends on BR2_USE_WCHAR
> +   depends on BR2_LARGEFILE
> +   depends on BR2_TOOLCHAIN_HAS_THREADS
> +   select BR2_PACKAGE_BOOST
> +   select BR2_PACKAGE_LIBEVENT
> +   select BR2_PACKAGE_OPENSSL
> +   help
> +     The Apache Thrift software framework, for scalable cross-language
> +     services development, combines a software stack with a
> +     code generation engine to build services that work
> +     efficiently and seamlessly between C++, Java, Python, PHP, Ruby,
> +     Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk,
> +     OCaml and Delphi and other languages.
> +
> +     http://thrift.apache.org/
> +
> +comment "thrift needs a toolchain w/ C++, largefile, wchar, threads"
> +   depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \
> +      !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/thrift/thrift-01-libevent-cross.patch 
b/package/thrift/thrift-01-libevent-cross.patch
> new file mode 100644
> index 0000000..f07caa7
> --- /dev/null
> +++ b/package/thrift/thrift-01-libevent-cross.patch
> @@ -0,0 +1,16 @@
> +Make it cross-compile happy the hard way, there's no clean way.
> +
> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> +
> +diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_event.m4 
thrift-0.9.1/aclocal/ax_lib_event.m4
> +--- thrift-0.9.1.orig/aclocal/ax_lib_event.m4   2013-08-15 
11:04:29.000000000 -0300
> ++++ thrift-0.9.1/aclocal/ax_lib_event.m4   2013-10-07 
20:40:44.076435613 -0300
> +@@ -75,7 +75,7 @@
> +           AC_LANG_PUSH([C])
> +           dnl This can be changed to AC_LINK_IFELSE if you are 
cross-compiling,
> +           dnl but then the version cannot be checked.
> +-          AC_RUN_IFELSE([AC_LANG_PROGRAM([[
> ++          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
> +           #include <sys/types.h>
> +           #include <event.h>
> +           ]], [[
> diff --git a/package/thrift/thrift-02-autoreconf.patch 
b/package/thrift/thrift-02-autoreconf.patch
> new file mode 100644
> index 0000000..d56212a
> --- /dev/null
> +++ b/package/thrift/thrift-02-autoreconf.patch
> @@ -0,0 +1,22 @@
> +Fillers to make autoreconf (automake) happy.
> +
> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> +
> +diff -Nura thrift-0.9.1.orig/AUTHORS thrift-0.9.1/AUTHORS
> +--- thrift-0.9.1.orig/AUTHORS   1969-12-31 21:00:00.000000000 -0300
> ++++ thrift-0.9.1/AUTHORS   2013-10-07 20:45:15.745315148 -0300
> +@@ -0,0 +1,2 @@
> ++
> ++
> +diff -Nura thrift-0.9.1.orig/ChangeLog thrift-0.9.1/ChangeLog
> +--- thrift-0.9.1.orig/ChangeLog   1969-12-31 21:00:00.000000000 -0300
> ++++ thrift-0.9.1/ChangeLog   2013-10-07 20:45:23.078554836 -0300
> +@@ -0,0 +1,2 @@
> ++
> ++
> +diff -Nura thrift-0.9.1.orig/NEWS thrift-0.9.1/NEWS
> +--- thrift-0.9.1.orig/NEWS   1969-12-31 21:00:00.000000000 -0300
> ++++ thrift-0.9.1/NEWS   2013-10-07 20:45:20.351465699 -0300
> +@@ -0,0 +1,2 @@
> ++
> ++
> diff --git a/package/thrift/thrift-03-zlib-cross.patch 
b/package/thrift/thrift-03-zlib-cross.patch
> new file mode 100644
> index 0000000..3af39c4
> --- /dev/null
> +++ b/package/thrift/thrift-03-zlib-cross.patch
> @@ -0,0 +1,16 @@
> +Make zlib version detection cross-compile happy.
> +
> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> +
> +diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4 
thrift-0.9.1/aclocal/ax_lib_zlib.m4
> +--- thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4   2013-08-15 
11:04:29.000000000 -0300
> ++++ thrift-0.9.1/aclocal/ax_lib_zlib.m4   2013-10-07 20:47:44.523177973 
-0300
> +@@ -73,7 +73,7 @@
> +           #   (defined in the library).
> +           AC_LANG_PUSH([C])
> +           dnl This can be changed to AC_LINK_IFELSE if you are 
cross-compiling.
> +-          AC_RUN_IFELSE([AC_LANG_PROGRAM([[
> ++          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
> +           #include <zlib.h>
> +           #if ZLIB_VERNUM >= 0x$WANT_ZLIB_VERSION
> +           #else
> diff --git a/package/thrift/thrift.mk b/package/thrift/thrift.mk
> new file mode 100644
> index 0000000..53e1b97
> --- /dev/null
> +++ b/package/thrift/thrift.mk
> @@ -0,0 +1,54 @@
> 
+################################################################################
> +#
> +# thrift
> +#
> 
+################################################################################
> +
> +THRIFT_VERSION = 0.9.1
> +THRIFT_SITE = http://www.us.apache.org/dist/thrift/$(THRIFT_VERSION)
> +THRIFT_DEPENDENCIES = host-pkgconf host-thrift boost libevent openssl
> +HOST_THRIFT_DEPENDENCIES = host-boost host-libevent host-openssl 
host-pkgconf
> +THRIFT_CONF_OPT = --with-sysroot=$(STAGING_DIR) --with-tests=no \
> +   --with-boost=$(STAGING_DIR)
> +HOST_THRIFT_CONF_OPT = --with-sysroot=$(HOST_DIR) --with-tests=no
> +THRIFT_AUTORECONF = YES

Could you move the license to right below the site? It doesn't really 
matter but I guess I like to see version, site, license as the first 
things in a package. I guess there isn't any official standard to the way 
a package makefile should be in but I guess that is just my person 
preference. 

> +THRIFT_LICENSE = Apache 2.0
> +THRIFT_LICENSE_FILES = LICENSE
> +
> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
> +# openssl uses zlib, so we need to explicitly link with it when static
> +THRIFT_CONF_ENV += LIBS=-lz

Shouldn't you add a dependancy on libz then?

THRIFT_DEPENDCIES += zlib

> +endif
> +
> +# Language selection
> +# The generator (host tool) works with all of them regardless
> +# This is just for the libraries / bindings
> +THRIFT_LANG_CONF_OPT += --without-csharp --without-java 
--without-erlang \
> +   --without-python --without-perl --without-php 
--without-php_extension \
> +   --without-ruby --without-haskell --without-go --without-d
> +HOST_THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT) --without-c_glib
> +THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT)
> +
> +# C bindings
> +ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> +THRIFT_DEPENDENCIES += libglib2
> +else
> +THRIFT_CONF_OPT += --without-c_glib
> +endif
> +
> +# De-hardcode THRIFT for cross compiling
> +define THRIFT_BUILD_CMDS
> +   for f in `find $(@D) -name Makefile -type f`; do \
> +      $(SED) "/^THRIFT =/d" $$f; \
> +   done
> +   $(SED) "s:top_builddir)/compiler/cpp/thrift:THRIFT):" 
$(@D)/tutorial/Makefile
> +   $(TARGET_MAKE_ENV) $(MAKE) THRIFT=$(HOST_DIR)/usr/bin/thrift -C 
$(@D)
> +endef
> +

I haven't tested this so I don't fully understand what exactly what you 
are doing here. I see that this is an autotools package but it doesn't 
appear to be building or installing using the autotools infrastructure. 
Could you please elaborate a little bit more of why exactly you can't use 
autotoools to build for this? I believe I understand what you are doing 
here but I guess I would like a few more details from you. 

Also it looks like thrift is a compiler, so wouldn't we want to have this 
available as a host tool because presumably there would be a need to to 
add custom user packages that utilize Thrift to compile their application. 
Again I haven't had time to read further what exactly thrift does but 
these are just the few things that are coming to my mind tonight.

I will try to investigate this a little bit more in the coming days (next 
week) but for now this are my initial reaction comments.

> +# Install runtime only
> +define THRIFT_INSTALL_TARGET_CMDS
> +   $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/lib DESTDIR=$(TARGET_DIR) 
install
> +endef
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))
> -- 
> 1.8.1.5

Thanks,
-Ryan

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-26  3:12   ` Ryan Barnett
@ 2013-10-26  9:48     ` Gustavo Zacarias
  2013-10-28  7:24       ` Arnout Vandecappelle
  0 siblings, 1 reply; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-26  9:48 UTC (permalink / raw)
  To: buildroot

On 10/26/2013 12:12 AM, Ryan Barnett wrote:
> Could you move the license to right below the site? It doesn't really 
> matter but I guess I like to see version, site, license as the first 
> things in a package. I guess there isn't any official standard to the way 
> a package makefile should be in but I guess that is just my person 
> preference. 

Huh, that's very OCD :)
There are several packages that don't keep them ordered, specially those

>> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
>> +# openssl uses zlib, so we need to explicitly link with it when static
>> +THRIFT_CONF_ENV += LIBS=-lz
> 
> Shouldn't you add a dependancy on libz then?
> 
> THRIFT_DEPENDCIES += zlib

It's implicit from openssl, we don't build openssl without zlib (it's
possible to do so, but not really that useful and would complicate other
packages).

> I haven't tested this so I don't fully understand what exactly what you 
> are doing here. I see that this is an autotools package but it doesn't 
> appear to be building or installing using the autotools infrastructure. 
> Could you please elaborate a little bit more of why exactly you can't use 
> autotoools to build for this? I believe I understand what you are doing 
> here but I guess I would like a few more details from you. 
> 
> Also it looks like thrift is a compiler, so wouldn't we want to have this 
> available as a host tool because presumably there would be a need to to 
> add custom user packages that utilize Thrift to compile their application. 
> Again I haven't had time to read further what exactly thrift does but 
> these are just the few things that are coming to my mind tonight.
> 
> I will try to investigate this a little bit more in the coming days (next 
> week) but for now this are my initial reaction comments.

A quick overlook then.
Thrift is basically a compiler and runtime libs.
The compiler component is only useful for the host because we don't do
development on the target any more, that would be host-boost, which IS
actually using autotools infra (no defines overriding HOST_THRIFT_*_CMDS).
For the target the INSTALL phase has an override to just install the
runtime libraries and avoid the compiler, tests and examples.
The target BUILD override patches the thrift makefiles to use $(THRIFT)
rather than hardcode it (the for-SED loop), and builds passing $(THRIFT)
to the appropiate host-compiled one (since it's hell bent on using it's
own built one which would be cross and wouldn't run).
This is a double catch though, i wanted to build examples as a sane way
to test it that things are ok but not install them.
Regards.

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-26  9:48     ` Gustavo Zacarias
@ 2013-10-28  7:24       ` Arnout Vandecappelle
  2013-10-28 11:02         ` Gustavo Zacarias
  0 siblings, 1 reply; 17+ messages in thread
From: Arnout Vandecappelle @ 2013-10-28  7:24 UTC (permalink / raw)
  To: buildroot

On 26/10/13 11:48, Gustavo Zacarias wrote:
> On 10/26/2013 12:12 AM, Ryan Barnett wrote:
>> Could you move the license to right below the site? It doesn't really
>> matter but I guess I like to see version, site, license as the first
>> things in a package. I guess there isn't any official standard to the way
>> a package makefile should be in but I guess that is just my person
>> preference.
>
> Huh, that's very OCD :)

  But not as much as requiring 80 hashes in the header :-)

> There are several packages that don't keep them ordered, specially those

  It's not because it wasn't done right in the past that it shouldn't be 
done right now :-)


  I agree with Ryan that it would be a good idea to standardize on some 
order of the variable definitions. But since there is not standard at the 
moment, we have to wait for an edict from Peter before we can enforce it.


[snip]
>>> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
>>> +# openssl uses zlib, so we need to explicitly link with it when static
>>> +THRIFT_CONF_ENV += LIBS=-lz
>>
>> Shouldn't you add a dependancy on libz then?
>>
>> THRIFT_DEPENDCIES += zlib
>
> It's implicit from openssl, we don't build openssl without zlib (it's
> possible to do so, but not really that useful and would complicate other
> packages).

  That it's implicit from openssl is not really relevant - if the 
dependency is ever removed from openssl (OK, this will not happen, but 
just imagine) then we'd like to keep the correct dependency here.

>
>> I haven't tested this so I don't fully understand what exactly what you
>> are doing here. I see that this is an autotools package but it doesn't
>> appear to be building or installing using the autotools infrastructure.
>> Could you please elaborate a little bit more of why exactly you can't use
>> autotoools to build for this? I believe I understand what you are doing
>> here but I guess I would like a few more details from you.
>>
>> Also it looks like thrift is a compiler, so wouldn't we want to have this
>> available as a host tool because presumably there would be a need to to
>> add custom user packages that utilize Thrift to compile their application.
>> Again I haven't had time to read further what exactly thrift does but
>> these are just the few things that are coming to my mind tonight.
>>
>> I will try to investigate this a little bit more in the coming days (next
>> week) but for now this are my initial reaction comments.
>
> A quick overlook then.
> Thrift is basically a compiler and runtime libs.
> The compiler component is only useful for the host because we don't do
> development on the target any more, that would be host-boost, which IS
> actually using autotools infra (no defines overriding HOST_THRIFT_*_CMDS).
> For the target the INSTALL phase has an override to just install the
> runtime libraries and avoid the compiler, tests and examples.
> The target BUILD override patches the thrift makefiles to use $(THRIFT)
> rather than hardcode it (the for-SED loop), and builds passing $(THRIFT)
> to the appropiate host-compiled one (since it's hell bent on using it's
> own built one which would be cross and wouldn't run).
> This is a double catch though, i wanted to build examples as a sane way
> to test it that things are ok but not install them.

  It would be nicer though if that could be done with an upstreamable 
patch, but I think you said before that it wasn't going to happen.

  I do think that your sed magic should be done in POST_PATCH_HOOKS on 
the Makefile.am, though. Patching up the generated Makefiles just feels 
icky to me.

  Regards,
  Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-28  7:24       ` Arnout Vandecappelle
@ 2013-10-28 11:02         ` Gustavo Zacarias
  2013-10-28 14:11           ` Ryan Barnett
  0 siblings, 1 reply; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-28 11:02 UTC (permalink / raw)
  To: buildroot

On 10/28/2013 04:24 AM, Arnout Vandecappelle wrote:

>  But not as much as requiring 80 hashes in the header :-)

Pfffft, that's not mine :)

>  It's not because it wasn't done right in the past that it shouldn't be
> done right now :-)

Some licenses were defined a few days ago that weren't the last lines
before defines and nobody said anything, you should have shown up then :P

>  I agree with Ryan that it would be a good idea to standardize on some
> order of the variable definitions. But since there is not standard at
> the moment, we have to wait for an edict from Peter before we can
> enforce it.

Propose it then and get it rolling, for the time being there's no rule
about it.

>  That it's implicit from openssl is not really relevant - if the
> dependency is ever removed from openssl (OK, this will not happen, but
> just imagine) then we'd like to keep the correct dependency here.

Ok.
All the packages that use openssl should be checked though, almost none
of them do zlib either (doesn't mean they use it directly, but a good
check wouldn't hurt).

>  It would be nicer though if that could be done with an upstreamable
> patch, but I think you said before that it wasn't going to happen.
> 
>  I do think that your sed magic should be done in POST_PATCH_HOOKS on
> the Makefile.am, though. Patching up the generated Makefiles just feels
> icky to me.

I don't think i've said that, but i might be wrong.
At the moment i prefer SED rather than a patch because there are many
instances around, i'll try reaching upstream to see how receptive they
are to a patch that just defines THRIFT ?= .. for a clean cross build.
It was a leftover from a quick hack to get it to build properly that
i've overlooked when cleaning up.
Fixed, i'll send a revised patchset soon.
Regards.

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-28 11:02         ` Gustavo Zacarias
@ 2013-10-28 14:11           ` Ryan Barnett
  2013-10-28 14:21             ` Gustavo Zacarias
  0 siblings, 1 reply; 17+ messages in thread
From: Ryan Barnett @ 2013-10-28 14:11 UTC (permalink / raw)
  To: buildroot

Gustavo, Arnout,

Gustavo Zacarias <gustavo@zacarias.com.ar> wrote on 10/28/2013 06:02:30 
AM:

> On 10/28/2013 04:24 AM, Arnout Vandecappelle wrote:
> 
> >  But not as much as requiring 80 hashes in the header :-)
> 
> Pfffft, that's not mine :)
> 
> >  It's not because it wasn't done right in the past that it shouldn't 
be
> > done right now :-)
> 
> Some licenses were defined a few days ago that weren't the last lines
> before defines and nobody said anything, you should have shown up then 
:P
> 
> >  I agree with Ryan that it would be a good idea to standardize on some
> > order of the variable definitions. But since there is not standard at
> > the moment, we have to wait for an edict from Peter before we can
> > enforce it.
> 
> Propose it then and get it rolling, for the time being there's no rule
> about it.

I never was intending for you to change it, rather it was a suggestion and 
I don't have any standard to fall back on to back me up. 

> >  That it's implicit from openssl is not really relevant - if the
> > dependency is ever removed from openssl (OK, this will not happen, but
> > just imagine) then we'd like to keep the correct dependency here.
> 
> Ok.
> All the packages that use openssl should be checked though, almost none
> of them do zlib either (doesn't mean they use it directly, but a good
> check wouldn't hurt).

I guess all I really care about is a comment in regards to zlib being 
built from having dependancy on openssl. I don't always remember these 
things so just a friendly reminder comment is good enough.

Thanks,
-Ryan

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

* [Buildroot] [PATCH 5/5] thrift: new package
  2013-10-28 14:11           ` Ryan Barnett
@ 2013-10-28 14:21             ` Gustavo Zacarias
  0 siblings, 0 replies; 17+ messages in thread
From: Gustavo Zacarias @ 2013-10-28 14:21 UTC (permalink / raw)
  To: buildroot

On 10/28/2013 11:11 AM, Ryan Barnett wrote:

>>>  That it's implicit from openssl is not really relevant - if the
>>> dependency is ever removed from openssl (OK, this will not happen, but
>>> just imagine) then we'd like to keep the correct dependency here.
>>
>> Ok.
>> All the packages that use openssl should be checked though, almost none
>> of them do zlib either (doesn't mean they use it directly, but a good
>> check wouldn't hurt).
> 
> I guess all I really care about is a comment in regards to zlib being 
> built from having dependancy on openssl. I don't always remember these 
> things so just a friendly reminder comment is good enough.

Point is thrift has a hard dependency on zlib right now (regardless of
openssl, for channel compression) so it is a dependency.
It can be built without it and loose the TZlibTransport but really it's
already pulled in by openssl so making it optional is kind of pointless.
What should be checked is the same holding true for other packages that
do use openssl and _maybe_ use zlib as well in a separate fashion which
haven't accounted for it (like thrift).
So the comment itself wouldn't apply, pulling in zlib does (select +
DEPENDENCIES) which is what i'm doing for the next patchset version.
Regards.

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

end of thread, other threads:[~2013-10-28 14:21 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-25 12:15 [Buildroot] [PATCH 1/5] libevent: add host variant Gustavo Zacarias
2013-10-25 12:15 ` [Buildroot] [PATCH 2/5] boost: " Gustavo Zacarias
2013-10-25 21:53   ` Ryan Barnett
2013-10-25 22:23     ` Gustavo Zacarias
2013-10-26  2:29       ` Ryan Barnett
2013-10-25 23:21   ` Arnout Vandecappelle
2013-10-25 23:52     ` Gustavo Zacarias
2013-10-25 12:15 ` [Buildroot] [PATCH 3/5] python-thrift: fix cross building Gustavo Zacarias
2013-10-25 21:54   ` Ryan Barnett
2013-10-25 12:15 ` [Buildroot] [PATCH 4/5] python-thrift: bump to version 0.9.1 and switch to apache Gustavo Zacarias
2013-10-25 12:15 ` [Buildroot] [PATCH 5/5] thrift: new package Gustavo Zacarias
2013-10-26  3:12   ` Ryan Barnett
2013-10-26  9:48     ` Gustavo Zacarias
2013-10-28  7:24       ` Arnout Vandecappelle
2013-10-28 11:02         ` Gustavo Zacarias
2013-10-28 14:11           ` Ryan Barnett
2013-10-28 14:21             ` Gustavo Zacarias

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.