* [Buildroot] [PATCH 1/2] norm: new package
@ 2016-03-09 9:35 Gustavo Zacarias
2016-03-09 9:35 ` [Buildroot] [PATCH 2/2] zeromq: add norm support Gustavo Zacarias
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Gustavo Zacarias @ 2016-03-09 9:35 UTC (permalink / raw)
To: buildroot
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/Config.in | 1 +
package/norm/0001-fix-bigendian-build.patch | 17 ++++++++++
package/norm/Config.in | 15 +++++++++
package/norm/norm.hash | 2 ++
package/norm/norm.mk | 50 +++++++++++++++++++++++++++++
5 files changed, 85 insertions(+)
create mode 100644 package/norm/0001-fix-bigendian-build.patch
create mode 100644 package/norm/Config.in
create mode 100644 package/norm/norm.hash
create mode 100644 package/norm/norm.mk
diff --git a/package/Config.in b/package/Config.in
index 433e9a3..24be023 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1153,6 +1153,7 @@ menu "Networking"
source "package/lksctp-tools/Config.in"
source "package/mongoose/Config.in"
source "package/neon/Config.in"
+ source "package/norm/Config.in"
source "package/nss-mdns/Config.in"
source "package/nss-pam-ldapd/Config.in"
source "package/omniorb/Config.in"
diff --git a/package/norm/0001-fix-bigendian-build.patch b/package/norm/0001-fix-bigendian-build.patch
new file mode 100644
index 0000000..cf999c2
--- /dev/null
+++ b/package/norm/0001-fix-bigendian-build.patch
@@ -0,0 +1,17 @@
+Fix big-endian build breakage in protolib.
+Patch status: submitted to author via email.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura norm-1.5r6.orig/protolib/include/protoSpace.h norm-1.5r6/protolib/include/protoSpace.h
+--- norm-1.5r6.orig/protolib/include/protoSpace.h 2016-03-08 19:48:21.326357963 -0300
++++ norm-1.5r6/protolib/include/protoSpace.h 2016-03-08 19:48:46.647234075 -0300
+@@ -89,7 +89,7 @@
+ }
+ #else
+ ProtoTree::Endian GetEndian() const
+- return ProtoTree::ENDIAN_BIG;
++ {return ProtoTree::ENDIAN_BIG;}
+ void SetNode(Node* theNode)
+ {memcpy(key+sizeof(double), &theNode, sizeof(Node*));}
+ Node* GetNode() const
diff --git a/package/norm/Config.in b/package/norm/Config.in
new file mode 100644
index 0000000..4944633
--- /dev/null
+++ b/package/norm/Config.in
@@ -0,0 +1,15 @@
+comment "norm needs a toolchain w/ C++, threads, dynamic library"
+ depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+ !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_NORM
+ bool "norm"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on !BR2_STATIC_LIBS
+ help
+ The NORM protocol is designed to provide end-to-end reliable
+ transport of bulk data objects or streams over generic IP
+ multicast routing and forwarding services.
+
+ http://www.nrl.navy.mil/itd/ncs/products/norm
diff --git a/package/norm/norm.hash b/package/norm/norm.hash
new file mode 100644
index 0000000..4693eed
--- /dev/null
+++ b/package/norm/norm.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 20ea2e8dd5d5e1ff1ff91dc7dab6db53a77d7b7183d8cf2425c215fd294f22a7 src-norm-1.5r6.tgz
diff --git a/package/norm/norm.mk b/package/norm/norm.mk
new file mode 100644
index 0000000..42054b9
--- /dev/null
+++ b/package/norm/norm.mk
@@ -0,0 +1,50 @@
+################################################################################
+#
+# norm
+#
+################################################################################
+
+NORM_VERSION = 1.5r6
+NORM_SITE = http://downloads.pf.itd.nrl.navy.mil/norm/archive
+NORM_SOURCE = src-norm-$(NORM_VERSION).tgz
+NORM_INSTALL_STAGING = YES
+NORM_LICENSE = NRL License
+NORM_LICENSE_FILES = LICENSE.TXT
+
+ifeq ($(BR2_PACKAGE_LIBNETFILTER_QUEUE),y)
+NORM_DEPENDENCIES += libnetfilter_queue
+endif
+
+define NORM_CONFIGURE_CMDS
+ (cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) \
+ ./waf configure --prefix=/usr \
+ )
+endef
+
+define NORM_BUILD_CMDS
+ (cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ ./waf build \
+ )
+endef
+
+# install target doesn't install headers unfortunately...
+define NORM_INSTALL_STAGING_CMDS
+ (cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ DESTDIR=$(STAGING_DIR) \
+ ./waf install; \
+ cp -f $(@D)/include/norm* $(STAGING_DIR)/usr/include \
+ )
+endef
+
+define NORM_INSTALL_TARGET_CMDS
+ (cd $(@D); \
+ $(TARGET_MAKE_ENV) \
+ DESTDIR=$(TARGET_DIR) \
+ ./waf install \
+ )
+endef
+
+$(eval $(generic-package))
--
2.4.10
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] zeromq: add norm support
2016-03-09 9:35 [Buildroot] [PATCH 1/2] norm: new package Gustavo Zacarias
@ 2016-03-09 9:35 ` Gustavo Zacarias
2016-03-20 22:09 ` Thomas Petazzoni
2016-03-15 22:03 ` [Buildroot] [PATCH 1/2] norm: new package Peter Korsgaard
2016-03-20 22:01 ` Thomas Petazzoni
2 siblings, 1 reply; 10+ messages in thread
From: Gustavo Zacarias @ 2016-03-09 9:35 UTC (permalink / raw)
To: buildroot
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/zeromq/Config.in | 11 +++++++++++
package/zeromq/zeromq.mk | 5 +++++
2 files changed, 16 insertions(+)
diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
index b75ed3a..c623064 100644
--- a/package/zeromq/Config.in
+++ b/package/zeromq/Config.in
@@ -27,6 +27,17 @@ config BR2_PACKAGE_ZEROMQ
if BR2_PACKAGE_ZEROMQ
+comment "norm support needs a toolchain w/ dynamic library"
+ depends on BR2_STATIC_LIBS
+
+config BR2_PACKAGE_ZEROMQ_NORM
+ bool "NORM support"
+ depends on !BR2_STATIC_LIBS
+ select BR2_PACKAGE_NORM
+ help
+ Add support for NACK-Oriented Reliable Multicast (RFC 5740)
+ protocol.
+
config BR2_PACKAGE_ZEROMQ_PGM
bool "PGM/EPGM support"
depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # openpgm
diff --git a/package/zeromq/zeromq.mk b/package/zeromq/zeromq.mk
index b80f8e4..20ff2bc 100644
--- a/package/zeromq/zeromq.mk
+++ b/package/zeromq/zeromq.mk
@@ -28,6 +28,11 @@ ifeq ($(BR2_STATIC_LIBS),y)
ZEROMQ_CONF_OPTS += LIBS=-lstdc++
endif
+ifeq ($(BR2_PACKAGE_ZEROMQ_NORM),y)
+ZEROMQ_CONF_OPTS += --with-norm
+ZEROMQ_DEPENDENCIES += norm
+endif
+
ifeq ($(BR2_PACKAGE_ZEROMQ_PGM),y)
ZEROMQ_DEPENDENCIES += host-pkgconf openpgm
ZEROMQ_CONF_OPTS += --with-pgm
--
2.4.10
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-09 9:35 [Buildroot] [PATCH 1/2] norm: new package Gustavo Zacarias
2016-03-09 9:35 ` [Buildroot] [PATCH 2/2] zeromq: add norm support Gustavo Zacarias
@ 2016-03-15 22:03 ` Peter Korsgaard
2016-03-15 22:14 ` Gustavo Zacarias
2016-03-20 22:01 ` Thomas Petazzoni
2 siblings, 1 reply; 10+ messages in thread
From: Peter Korsgaard @ 2016-03-15 22:03 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
> package/Config.in | 1 +
> package/norm/0001-fix-bigendian-build.patch | 17 ++++++++++
> package/norm/Config.in | 15 +++++++++
> package/norm/norm.hash | 2 ++
> package/norm/norm.mk | 50 +++++++++++++++++++++++++++++
> 5 files changed, 85 insertions(+)
> create mode 100644 package/norm/0001-fix-bigendian-build.patch
> create mode 100644 package/norm/Config.in
> create mode 100644 package/norm/norm.hash
> create mode 100644 package/norm/norm.mk
> diff --git a/package/Config.in b/package/Config.in
> index 433e9a3..24be023 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1153,6 +1153,7 @@ menu "Networking"
> source "package/lksctp-tools/Config.in"
> source "package/mongoose/Config.in"
> source "package/neon/Config.in"
> + source "package/norm/Config.in"
> source "package/nss-mdns/Config.in"
> source "package/nss-pam-ldapd/Config.in"
> source "package/omniorb/Config.in"
> +################################################################################
> +#
> +# norm
> +#
> +################################################################################
> +
> +NORM_VERSION = 1.5r6
> +NORM_SITE = http://downloads.pf.itd.nrl.navy.mil/norm/archive
> +NORM_SOURCE = src-norm-$(NORM_VERSION).tgz
> +NORM_INSTALL_STAGING = YES
> +NORM_LICENSE = NRL License
> +NORM_LICENSE_FILES = LICENSE.TXT
> +
> +ifeq ($(BR2_PACKAGE_LIBNETFILTER_QUEUE),y)
> +NORM_DEPENDENCIES += libnetfilter_queue
> +endif
> +
> +define NORM_CONFIGURE_CMDS
> + (cd $(@D); \
> + $(TARGET_CONFIGURE_OPTS) \
> + ./waf configure --prefix=/usr \
The package looks good - But waf is a python script, right? It got me
wondering if we should use our host-python or if we can rely on the
build host having all dependencies?
It seems like we have a mix:
package/glmark2/glmark2.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure $(GLMARK2_CONF_OPTS) \
package/glmark2/glmark2.mk: cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf
package/glmark2/glmark2.mk: cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf install --destdir=$(TARGET_DIR)
package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure $(GST1_IMX_CONF_OPTS)
package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS)
package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \
package/jack2/jack2.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure \
package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \
package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) \
package/libimxvpuapi/libimxvpuapi.mk: $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \
package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS)
package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) install
package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install
package/samba4/samba4.mk: ./buildtools/bin/waf configure \
E.G. everything else than samba4 uses host-python2.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-15 22:03 ` [Buildroot] [PATCH 1/2] norm: new package Peter Korsgaard
@ 2016-03-15 22:14 ` Gustavo Zacarias
2016-03-15 22:19 ` Peter Korsgaard
0 siblings, 1 reply; 10+ messages in thread
From: Gustavo Zacarias @ 2016-03-15 22:14 UTC (permalink / raw)
To: buildroot
On 15/03/16 19:03, Peter Korsgaard wrote:
> The package looks good - But waf is a python script, right? It got me
> wondering if we should use our host-python or if we can rely on the
> build host having all dependencies?
>
> It seems like we have a mix:
>
> package/glmark2/glmark2.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure $(GLMARK2_CONF_OPTS) \
> package/glmark2/glmark2.mk: cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf
> package/glmark2/glmark2.mk: cd $(@D) && $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/python2 ./waf install --destdir=$(TARGET_DIR)
> package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure $(GST1_IMX_CONF_OPTS)
> package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS)
> package/gstreamer1/gst1-imx/gst1-imx.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \
> package/jack2/jack2.mk: $(HOST_DIR)/usr/bin/python2 ./waf configure \
> package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
> package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \
> package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) \
> package/libimxvpuapi/libimxvpuapi.mk: $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \
> package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS)
> package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) install
> package/libimxvpuapi/libimxvpuapi.mk: $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install
> package/samba4/samba4.mk: ./buildtools/bin/waf configure \
>
> E.G. everything else than samba4 uses host-python2.
Hi Peter.
I can't speak for all the rest, but norm uses waf 1.8.11 (I.E. 1.8.x
series) which works fine with python2 or python3, so as long as there's
one host python (at least 2.5) everything should be fine (covered by the
prereqs, and waf is pretty much self-contained).
Regards.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-15 22:14 ` Gustavo Zacarias
@ 2016-03-15 22:19 ` Peter Korsgaard
2016-03-15 22:22 ` Gustavo Zacarias
0 siblings, 1 reply; 10+ messages in thread
From: Peter Korsgaard @ 2016-03-15 22:19 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
Hi,
>> E.G. everything else than samba4 uses host-python2.
> Hi Peter.
> I can't speak for all the rest, but norm uses waf 1.8.11 (I.E. 1.8.x
> series) which works fine with python2 or python3, so as long as
> there's one host python (at least 2.5) everything should be fine
> (covered by the prereqs, and waf is pretty much self-contained).
Ok, and that is the case for samba4 as well?
--
Venlig hilsen,
Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-15 22:19 ` Peter Korsgaard
@ 2016-03-15 22:22 ` Gustavo Zacarias
2016-03-15 22:33 ` Peter Korsgaard
0 siblings, 1 reply; 10+ messages in thread
From: Gustavo Zacarias @ 2016-03-15 22:22 UTC (permalink / raw)
To: buildroot
On 15/03/16 19:19, Peter Korsgaard wrote:
> Ok, and that is the case for samba4 as well?
No, samba4 is still using an old waf (1.5.x) which requires python2.
But since samba4 uses python2 (target) it's getting the host python2 for
free, we might just add it for cosmetics (graph-depends).
Regards.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-15 22:22 ` Gustavo Zacarias
@ 2016-03-15 22:33 ` Peter Korsgaard
2016-03-15 22:39 ` Gustavo Zacarias
0 siblings, 1 reply; 10+ messages in thread
From: Peter Korsgaard @ 2016-03-15 22:33 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
> On 15/03/16 19:19, Peter Korsgaard wrote:
>> Ok, and that is the case for samba4 as well?
> No, samba4 is still using an old waf (1.5.x) which requires python2.
> But since samba4 uses python2 (target) it's getting the host python2
> for free, we might just add it for cosmetics (graph-depends).
Ok, thanks. Will you send a patch?
--
Venlig hilsen,
Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-15 22:33 ` Peter Korsgaard
@ 2016-03-15 22:39 ` Gustavo Zacarias
0 siblings, 0 replies; 10+ messages in thread
From: Gustavo Zacarias @ 2016-03-15 22:39 UTC (permalink / raw)
To: buildroot
On 15/03/16 19:33, Peter Korsgaard wrote:
> Ok, thanks. Will you send a patch?
Sure, as i've just mentioned on IRC i thought the upcoming 4.4.x series
would update to a newer waf making this kind of redundant soon, but i
just checked -rc4 and it does not.
Regards.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] norm: new package
2016-03-09 9:35 [Buildroot] [PATCH 1/2] norm: new package Gustavo Zacarias
2016-03-09 9:35 ` [Buildroot] [PATCH 2/2] zeromq: add norm support Gustavo Zacarias
2016-03-15 22:03 ` [Buildroot] [PATCH 1/2] norm: new package Peter Korsgaard
@ 2016-03-20 22:01 ` Thomas Petazzoni
2 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2016-03-20 22:01 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 9 Mar 2016 06:35:41 -0300, Gustavo Zacarias wrote:
> +define NORM_CONFIGURE_CMDS
> + (cd $(@D); \
> + $(TARGET_CONFIGURE_OPTS) \
> + ./waf configure --prefix=/usr \
> + )
The parenthesis here (and in the other commands) are not needed.
> +# install target doesn't install headers unfortunately...
> +define NORM_INSTALL_STAGING_CMDS
> + (cd $(@D); \
> + $(TARGET_MAKE_ENV) \
> + DESTDIR=$(STAGING_DIR) \
> + ./waf install; \
> + cp -f $(@D)/include/norm* $(STAGING_DIR)/usr/include \
And there's no reason for this headers copy to be inside the cd $(@D).
I've fixed those two issues and applied.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] zeromq: add norm support
2016-03-09 9:35 ` [Buildroot] [PATCH 2/2] zeromq: add norm support Gustavo Zacarias
@ 2016-03-20 22:09 ` Thomas Petazzoni
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2016-03-20 22:09 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 9 Mar 2016 06:35:42 -0300, Gustavo Zacarias wrote:
> +ifeq ($(BR2_PACKAGE_ZEROMQ_NORM),y)
> +ZEROMQ_CONF_OPTS += --with-norm
> +ZEROMQ_DEPENDENCIES += norm
> +endif
I've added an else clause that adds --without-norm to the configure
options, and applied.
> ifeq ($(BR2_PACKAGE_ZEROMQ_PGM),y)
> ZEROMQ_DEPENDENCIES += host-pkgconf openpgm
> ZEROMQ_CONF_OPTS += --with-pgm
... and I've done a follow-up commit that adds --without-pgm in the
else clause here.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-03-20 22:09 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-09 9:35 [Buildroot] [PATCH 1/2] norm: new package Gustavo Zacarias
2016-03-09 9:35 ` [Buildroot] [PATCH 2/2] zeromq: add norm support Gustavo Zacarias
2016-03-20 22:09 ` Thomas Petazzoni
2016-03-15 22:03 ` [Buildroot] [PATCH 1/2] norm: new package Peter Korsgaard
2016-03-15 22:14 ` Gustavo Zacarias
2016-03-15 22:19 ` Peter Korsgaard
2016-03-15 22:22 ` Gustavo Zacarias
2016-03-15 22:33 ` Peter Korsgaard
2016-03-15 22:39 ` Gustavo Zacarias
2016-03-20 22:01 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox