From b36ea68b5ad0f89ffd92cac3f91654e180683b1c Mon Sep 17 00:00:00 2001 From: Yann CARDAILLAC Date: Thu, 16 Jan 2020 23:05:39 +0100 Subject: [PATCH] package/open62541: new package Signed-off-by: Yann CARDAILLAC Signed-off-by: Romain Naour Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 3 ++ package/Config.in | 1 + package/open62541/Config.in | 71 ++++++++++++++++++++++++++++++++ package/open62541/open62541.hash | 3 ++ package/open62541/open62541.mk | 55 +++++++++++++++++++++++++ 5 files changed, 133 insertions(+) create mode 100644 package/open62541/Config.in create mode 100644 package/open62541/open62541.hash create mode 100644 package/open62541/open62541.mk diff --git a/DEVELOPERS b/DEVELOPERS index ddab7073b8..258a51a14c 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2710,6 +2710,9 @@ F: package/fwup/ N: Yair Ben Avraham F: package/gloox/ +N: Yann CARDAILLAC +F: package/open62541/ + N: Yann E. MORIN F: board/friendlyarm/nanopi-neo/ F: configs/nanopi_neo_defconfig diff --git a/package/Config.in b/package/Config.in index 219dba1c9d..7264198001 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1803,6 +1803,7 @@ menu "Networking" source "package/nss-myhostname/Config.in" source "package/nss-pam-ldapd/Config.in" source "package/omniorb/Config.in" + source "package/open62541/Config.in" source "package/openldap/Config.in" source "package/openmpi/Config.in" source "package/openpgm/Config.in" diff --git a/package/open62541/Config.in b/package/open62541/Config.in new file mode 100644 index 0000000000..a835595e83 --- /dev/null +++ b/package/open62541/Config.in @@ -0,0 +1,71 @@ +config BR2_PACKAGE_OPEN62541 + bool "open62541" + help + open62541 is an open source and free implementation of OPC UA. + + http://open62541.org + +if BR2_PACKAGE_OPEN62541 + +choice + prompt "namespace zero nodes" + help + Namespace zero contains the standard-defined nodes. The full + namespace zero may not be required for all applications. + +config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_DEFAULT + bool "default" + help + Use the default namespace zero contents. + +config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_MINIMAL + bool "minimal" + help + A barebones namespace zero that is compatible with most + clients. But this namespace 0 is so small that it does not + pass the CTT (Conformance Testing Tools of the OPC + Foundation). + +config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED + bool "reduced" + help + Small namespace zero that passes the CTT. + +config BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL + bool "full" + help + Full namespace zero generated from the official XML + definitions. + +endchoice + +config BR2_PACKAGE_OPEN62541_JSON_ENCODING + bool "json encoding" + +config BR2_PACKAGE_OPEN62541_PUBSUB + bool "publish/subscribe" + help + Enable the experimental OPC UA PubSub support. The option + will include the PubSub UDP multicast plugin. + +if BR2_PACKAGE_OPEN62541_PUBSUB + +config BR2_PACKAGE_OPEN62541_PUBSUB_DELTAFRAMES + bool "publish/subscribe deltaframes" + help + The PubSub messages differentiate between keyframe (all + published values contained) and deltaframe (only changed + values contained) messages. Deltaframe messages creation + consumes some additional ressources. + +config BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL + bool "publish/subscribe information model" + depends on BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED || \ + BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL + help + Enable the information model representation of the PubSub + configuration. + +endif # BR2_PACKAGE_OPEN62541_PUBSUB + +endif diff --git a/package/open62541/open62541.hash b/package/open62541/open62541.hash new file mode 100644 index 0000000000..a6b3b38ec6 --- /dev/null +++ b/package/open62541/open62541.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 3300149c2e9e8c1f87fe2786e25d74372a33611a0bd4c6c202c5fca347633069 open62541-1.0.tar.gz +sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 LICENSE diff --git a/package/open62541/open62541.mk b/package/open62541/open62541.mk new file mode 100644 index 0000000000..71c14f78ba --- /dev/null +++ b/package/open62541/open62541.mk @@ -0,0 +1,55 @@ +################################################################################ +# +# open62541 +# +################################################################################ + +OPEN62541_VERSION = 1.0 +OPEN62541_DL_VERSION = v$(OPEN62541_VERSION) +OPEN62541_SITE_METHOD = git +OPEN62541_SITE = git://github.com/open62541/open62541.git +OPEN62541_GIT_SUBMODULES = YES +OPEN62541_INSTALL_STAGING = YES +OPEN62541_LICENSE = MPL-2.0 +OPEN62541_LICENSE_FILES = LICENSE + +# Don't use git describe to get the version number. +# Disable hardening options to let Buildroot handle it. +OPEN62541_CONF_OPTS = \ + -DGIT_EXECUTABLE=NO \ + -DOPEN62541_VERSION=$(OPEN62541_VERSION) \ + -DUA_ENABLE_HARDENING=OFF + +ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_MINIMAL),y) +OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=MINIMAL +else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED),y) +OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=REDUCED +else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL),y) +OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=FULL +endif + +ifeq ($(BR2_PACKAGE_OPEN62541_JSON_ENCODING),y) +OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=ON +else +OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=OFF +endif + +ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB),y) +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=ON +else +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=OFF +endif + +ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_DELTAFRAMES),y) +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=ON +else +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=OFF +endif + +ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL),y) +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON +else +OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=OFF +endif + +$(eval $(cmake-package)) -- 2.30.2