mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH v5 1/3] mbedtls: new package
@ 2020-02-05 10:42 Ulrich Ölmann
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 2/3] host-ua-nodeset: " Ulrich Ölmann
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-02-05 10:42 UTC (permalink / raw)
  To: PTXdist Development Mailing List

From: Björn Esser <b.esser@pengutronix.de>

mbed TLS (formerly known as PolarSSL) makes it trivially easy
for developers to include cryptographic and SSL/TLS capabilities
in their (embedded) products, facilitating this functionality
with a minimal coding footprint.

Unfortunately the upcoming open62541 package cannot be built
against OpenSSL. To enable its SSL functionality mbed TLS is
needed.

Signed-off-by: Björn Esser <b.esser@pengutronix.de>
[uol: adjusted commit message]
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
---
v2 --> v3: adjusted commit message

 rules/mbedtls.in   | 13 +++++++++
 rules/mbedtls.make | 66 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 79 insertions(+)
 create mode 100644 rules/mbedtls.in
 create mode 100644 rules/mbedtls.make

diff --git a/rules/mbedtls.in b/rules/mbedtls.in
new file mode 100644
index 000000000000..a0d58dbd5468
--- /dev/null
+++ b/rules/mbedtls.in
@@ -0,0 +1,13 @@
+## SECTION=system_libraries
+
+config MBEDTLS
+	tristate
+	prompt "mbedtls"
+	select HOST_CMAKE
+	select LIBC_PTHREAD
+	select ZLIB
+	help
+	  mbed TLS (formerly known as PolarSSL) makes it trivially easy
+	  for developers to include cryptographic and SSL/TLS capabilities
+	  in their (embedded) products, facilitating this functionality
+	  with a minimal coding footprint.
diff --git a/rules/mbedtls.make b/rules/mbedtls.make
new file mode 100644
index 000000000000..0086492fc029
--- /dev/null
+++ b/rules/mbedtls.make
@@ -0,0 +1,66 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MBEDTLS) += mbedtls
+
+#
+# Paths and names
+#
+MBEDTLS_VERSION		:= 2.16.3
+MBEDTLS_MD5		:= 90ce7c7a001d2514410280706b3ab1a7
+MBEDTLS			:= mbedtls-$(MBEDTLS_VERSION)
+MBEDTLS_SUFFIX		:= tgz
+MBEDTLS_URL		:= https://tls.mbed.org/download/$(MBEDTLS)-apache.$(MBEDTLS_SUFFIX)
+MBEDTLS_SOURCE		:= $(SRCDIR)/$(MBEDTLS).$(MBEDTLS_SUFFIX)
+MBEDTLS_DIR		:= $(BUILDDIR)/$(MBEDTLS)
+MBEDTLS_LICENSE		:= Apache-2.0
+MBEDTLS_LICENSE_FILES	:= file://apache-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+MBEDTLS_CONF_TOOL	:= cmake
+MBEDTLS_CONF_OPT	:= \
+	$(CROSS_CMAKE_USR) \
+	-DENABLE_PROGRAMS=OFF \
+	-DENABLE_TESTING=OFF \
+	-DENABLE_ZLIB_SUPPORT=ON \
+	-DINSTALL_MBEDTLS_HEADERS=ON \
+	-DLINK_WITH_PTHREAD=ON \
+	-DUNSAFE_BUILD=OFF \
+	-DUSE_PKCS11_HELPER_LIBRARY=OFF \
+	-DUSE_SHARED_MBEDTLS_LIBRARY=ON \
+	-DUSE_STATIC_MBEDTLS_LIBRARY=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/mbedtls.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, mbedtls)
+	@$(call install_fixup, mbedtls,PRIORITY,optional)
+	@$(call install_fixup, mbedtls,SECTION,base)
+	@$(call install_fixup, mbedtls,AUTHOR,"Bjoern Esser <bes@pengutronix.de>")
+	@$(call install_fixup, mbedtls,DESCRIPTION,missing)
+
+	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedcrypto)
+	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedtls)
+	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedx509)
+
+	@$(call install_finish, mbedtls)
+
+	@$(call touch)
-- 
2.25.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* [ptxdist] [PATCH v5 2/3] host-ua-nodeset: new package
  2020-02-05 10:42 [ptxdist] [PATCH v5 1/3] mbedtls: new package Ulrich Ölmann
@ 2020-02-05 10:42 ` Ulrich Ölmann
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 3/3] open62541: " Ulrich Ölmann
  2020-02-17  9:39 ` [ptxdist] [PATCH v5 1/3] mbedtls: " Michael Olbrich
  2 siblings, 0 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-02-05 10:42 UTC (permalink / raw)
  To: PTXdist Development Mailing List

From: Björn Esser <b.esser@pengutronix.de>

The OPC Foundation's UA NodeSets and other normative files which are released
with an OPC UA specification (for details see [1]). Needed to build open62541.

[1] https://github.com/OPCFoundation/UA-Nodeset/#opc-ua-nodesets-and-other-supporting-files

Signed-off-by: Björn Esser <b.esser@pengutronix.de>
[uol: adjusted commit message and Kconfig menu file, wrapped mkdir/cp into
world/execute and execute]
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
---
v1 --> v2: adjusted commit message and Kconfig menu file's help text
v2 --> v3: adjusted commit message and replaced mkdir/cp by install -D -t
v3 --> v4: adjusted commit message and added default y in Kconfig menu file
v4 --> v5: adjusted commit message and re-replaced install -D -t by mkdir/cp
           wrapped into world/execute and execute

 rules/host-ua-nodeset.in   | 11 +++++++++
 rules/host-ua-nodeset.make | 46 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 rules/host-ua-nodeset.in
 create mode 100644 rules/host-ua-nodeset.make

diff --git a/rules/host-ua-nodeset.in b/rules/host-ua-nodeset.in
new file mode 100644
index 000000000000..ba10ae26c36c
--- /dev/null
+++ b/rules/host-ua-nodeset.in
@@ -0,0 +1,11 @@
+## SECTION=hosttools_noprompt
+
+config HOST_UA_NODESET
+	tristate
+	default y if ALLYES
+	help
+	  The OPC Foundation's UA NodeSets and other normative files which are
+	  released with an OPC UA specification (for details see [1]). Needed to
+	  build open62541.
+
+	  [1] https://github.com/OPCFoundation/UA-Nodeset/#opc-ua-nodesets-and-other-supporting-files
diff --git a/rules/host-ua-nodeset.make b/rules/host-ua-nodeset.make
new file mode 100644
index 000000000000..172dafbf3a68
--- /dev/null
+++ b/rules/host-ua-nodeset.make
@@ -0,0 +1,46 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_UA_NODESET) += host-ua-nodeset
+
+#
+# Paths and names
+#
+HOST_UA_NODESET_VERSION	:= 1.04.4-2020-01-08
+HOST_UA_NODESET_MD5	:= ce7b39c7f2d65617f76e0301f654a9ea
+HOST_UA_NODESET		:= ua-nodeset-$(HOST_UA_NODESET_VERSION)
+HOST_UA_NODESET_SUFFIX	:= tar.gz
+HOST_UA_NODESET_URL	:= https://github.com/OPCFoundation/UA-Nodeset/archive/UA-$(HOST_UA_NODESET_VERSION)/$(HOST_UA_NODESET).$(HOST_UA_NODESET_SUFFIX)
+HOST_UA_NODESET_SOURCE	:= $(SRCDIR)/$(HOST_UA_NODESET).$(HOST_UA_NODESET_SUFFIX)
+HOST_UA_NODESET_DIR	:= $(HOST_BUILDDIR)/$(HOST_UA_NODESET)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-ua-nodeset.compile:
+	@$(call targetinfo)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-ua-nodeset.install:
+	@$(call targetinfo)
+
+	@$(call world/execute, HOST_UA_NODESET, \
+		mkdir -p $(HOST_UA_NODESET_PKGDIR)/usr/share/ua-nodeset)
+	@$(call execute, HOST_UA_NODESET, \
+		cp -a $(HOST_BUILDDIR)/$(HOST_UA_NODESET)/* \
+			$(HOST_UA_NODESET_PKGDIR)/usr/share/ua-nodeset)
+
+	@$(call touch)
-- 
2.25.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-05 10:42 [ptxdist] [PATCH v5 1/3] mbedtls: new package Ulrich Ölmann
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 2/3] host-ua-nodeset: " Ulrich Ölmann
@ 2020-02-05 10:42 ` Ulrich Ölmann
  2020-02-14 12:50   ` Michael Olbrich
  2020-02-15  9:58   ` Michael Olbrich
  2020-02-17  9:39 ` [ptxdist] [PATCH v5 1/3] mbedtls: " Michael Olbrich
  2 siblings, 2 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-02-05 10:42 UTC (permalink / raw)
  To: PTXdist Development Mailing List

From: Björn Esser <b.esser@pengutronix.de>

The open62541 project is an open source implementation of the OPC UA
communication infrastructure which is used in industrial control.

Signed-off-by: Björn Esser <b.esser@pengutronix.de>
[uol: adjusted commit message]
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
---
v2 --> v3: adjusted commit message

 ...-UA_NODESET_DIR-to-be-custom-defined.patch | 224 ++++++++++++++++++
 patches/open62541-1.0/series                  |   4 +
 rules/host-open62541.in                       |   6 +
 rules/host-open62541.make                     |  50 ++++
 rules/open62541.in                            |  13 +
 rules/open62541.make                          | 140 +++++++++++
 6 files changed, 437 insertions(+)
 create mode 100644 patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
 create mode 100644 patches/open62541-1.0/series
 create mode 100644 rules/host-open62541.in
 create mode 100644 rules/host-open62541.make
 create mode 100644 rules/open62541.in
 create mode 100644 rules/open62541.make

diff --git a/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
new file mode 100644
index 000000000000..0dfd003518ed
--- /dev/null
+++ b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
@@ -0,0 +1,224 @@
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <b.esser@pengutronix.de>
+Date: Mon, 2 Dec 2019 14:38:38 +0100
+Subject: [PATCH] CMake: Allow UA_NODESET_DIR to be custom defined.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This makes it easier for developers to keep all ua-nodesets XML
+definitions in a common location.
+
+Backported from: https://github.com/open62541/open62541/pull/3310
+
+Signed-off-by: Björn Esser <b.esser@pengutronix.de>
+---
+ CMakeLists.txt                        | 14 +++++++++-----
+ doc/nodeset_compiler.rst              | 22 +++++++++++-----------
+ examples/CMakeLists.txt               |  4 ----
+ examples/nodeset/CMakeLists.txt       |  6 +++---
+ tests/nodeset-compiler/CMakeLists.txt | 14 +++++++-------
+ tools/cmake/macros_public.cmake       |  2 +-
+ 6 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d426e1da66fe..fbbafd8f2791 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -15,7 +15,6 @@ include(GNUInstallDirs)
+ 
+ # Set when installed via make install
+ set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
+-set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
+ 
+ include(macros_internal)
+ include(macros_public)
+@@ -134,6 +133,11 @@ option(UA_ENABLE_ENCRYPTION "Enable encryption support (uses mbedTLS)" OFF)
+ option(UA_ENABLE_MICRO_EMB_DEV_PROFILE "Builds CTT Compliant Micro Embedded Device Server Profile" OFF)
+ option(BUILD_SHARED_LIBS "Enable building of shared libraries (dll/so)" OFF)
+ 
++if(NOT UA_NODESET_DIR)
++    set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
++endif()
++set(open62541_NODESET_DIR ${UA_NODESET_DIR})
++
+ # Namespace Zero
+ set(UA_NAMESPACE_ZERO "REDUCED" CACHE STRING "Completeness of the generated namespace zero (minimal/reduced/full)")
+ SET_PROPERTY(CACHE UA_NAMESPACE_ZERO PROPERTY STRINGS "MINIMAL" "REDUCED" "FULL")
+@@ -770,7 +774,7 @@ set(UA_FILE_NODESETS)
+ 
+ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     if(NOT UA_FILE_NS0)
+-        set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml)
++        set(UA_FILE_NS0 ${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
+     endif()
+     set(UA_FILE_NODESETS "${UA_FILE_NS0}")
+ 
+@@ -779,9 +783,9 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     endif()
+ 
+ 
+-    set(UA_FILE_NODEIDS ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/NodeIds.csv)
+-    set(UA_FILE_STATUSCODES ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/StatusCode.csv)
+-    set(UA_FILE_TYPES_BSD ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd)
++    set(UA_FILE_NODEIDS ${UA_NODESET_DIR}/Schema/NodeIds.csv)
++    set(UA_FILE_STATUSCODES ${UA_NODESET_DIR}/Schema/StatusCode.csv)
++    set(UA_FILE_TYPES_BSD ${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
+ else()
+     if(NOT UA_FILE_NS0)
+         set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Minimal.xml)
+diff --git a/doc/nodeset_compiler.rst b/doc/nodeset_compiler.rst
+index dd752ccd70a9..34fc8f800480 100644
+--- a/doc/nodeset_compiler.rst
++++ b/doc/nodeset_compiler.rst
+@@ -292,17 +292,17 @@ Here are some examples for the ``DI`` and ``PLCOpen`` nodesets::
+     # Generate types and namespace for DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "di"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+         NAMESPACE_IDX 2
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+     )
+ 
+     # generate PLCopen namespace which is using DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "plc"
+         # PLCopen does not define custom types. Only generate the nodeset
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         # PLCopen depends on the di nodeset, which must be generated before
+         DEPENDS "di"
+     )
+@@ -403,8 +403,8 @@ This DI nodeset makes use of some additional data types in ``deps/ua-nodeset/DI/
+         NAME "ua_types_di"
+         TARGET_SUFFIX "types-di"
+         NAMESPACE_IDX 2
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILES_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILES_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+     )
+ 
+ The ``NAMESPACE_IDX`` parameter indicates the namespace index of the generated node IDs for the type definitions. Currently we need to rely that the namespace is also added at this position in the final server. There is no automatic inferring yet (pull requests are warmly welcome).
+@@ -414,11 +414,11 @@ Now you can compile the DI nodeset XML using the following command::
+ 
+     ua_generate_nodeset(
+         NAME "di"
+-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         TYPES_ARRAY "UA_TYPES_DI"
+         INTERNAL
+         DEPENDS_TYPES "UA_TYPES"
+-        DEPENDS_NS    "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
++        DEPENDS_NS    "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
+         DEPENDS_TARGET "open62541-generator-types-di"
+     )
+ 
+@@ -429,13 +429,13 @@ Next we can generate the PLCopen nodeset. Since it doesn't require any additiona
+ 
+     ua_generate_nodeset(
+         NAME "plc"
+-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         INTERNAL
+         DEPENDS_TYPES
+             "UA_TYPES" "UA_TYPES_DI"
+         DEPENDS_NS
+-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
+-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++            "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
++            "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         DEPENDS_TARGET "open62541-generator-ns-di"
+     )
+ 
+diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
+index d46f853ecde6..353a0fbf992d 100644
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -26,10 +26,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
+         set(UA_TOOLS_DIR ${open62541_TOOLS_DIR})
+     endif()
+ 
+-    if(NOT UA_NODESET_DIR)
+-        set(UA_NODESET_DIR ${open62541_NODESET_DIR})
+-    endif()
+-
+     function(assign_source_group)
+         # define empty function. We don't need it in standalone
+     endfunction(assign_source_group)
+diff --git a/examples/nodeset/CMakeLists.txt b/examples/nodeset/CMakeLists.txt
+index c4b612d911d5..0a5fe38ef229 100644
+--- a/examples/nodeset/CMakeLists.txt
++++ b/examples/nodeset/CMakeLists.txt
+@@ -63,10 +63,10 @@ endif()
+ ###################
+ 
+ if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
+-    set(FILE_CSV_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
+-    set(FILE_BSD_PLCOPEN_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
++    set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
++    set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
+     set(FILE_BSD_POWERLINK_DIRPREFIX ${PROJECT_SOURCE_DIR}/nodeset)
+-    set(FILE_NS_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
++    set(FILE_NS_DIRPREFIX ${UA_NODESET_DIR})
+ else()
+     set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
+     set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
+diff --git a/tests/nodeset-compiler/CMakeLists.txt b/tests/nodeset-compiler/CMakeLists.txt
+index 153759aa16c6..2b68e3926499 100644
+--- a/tests/nodeset-compiler/CMakeLists.txt
++++ b/tests/nodeset-compiler/CMakeLists.txt
+@@ -11,22 +11,22 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     # Generate types and namespace for DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-di"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+         NAMESPACE_IDX 2
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         INTERNAL
+     )
+ 
+     # Generate types and namespace for ADI
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-adi"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/OpcUaAdiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/ADI/OpcUaAdiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.Types.bsd"
+         NAMESPACE_IDX 3
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.NodeSet2.xml"
+         DEPENDS "tests-di"
+         INTERNAL
+     )
+@@ -46,7 +46,7 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-plc"
+         # PLCopen does not define custom types. Only generate the nodeset
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         # PLCopen depends on the di nodeset, which must be generated before
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+         DEPENDS "tests-di"
+diff --git a/tools/cmake/macros_public.cmake b/tools/cmake/macros_public.cmake
+index a6a36f3d1090..751b679a37d8 100644
+--- a/tools/cmake/macros_public.cmake
++++ b/tools/cmake/macros_public.cmake
+@@ -100,7 +100,7 @@ endfunction()
+ #                   passed which will all combined to one resulting code.
+ #   IMPORT_BSD      Combination of types array and path to the .bsd file containing additional type definitions referenced by
+ #                   the FILES_BSD files. The value is separated with a hash sign, i.e.
+-#                   'UA_TYPES#${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd'
++#                   'UA_TYPES#${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd'
+ #                   Multiple files can be passed which will all be imported.
+ #   [FILES_SELECTED] Optional path to a simple text file which contains a list of types which should be included in the generation.
+ #                   The file should contain one type per line. Multiple files can be passed to this argument.
diff --git a/patches/open62541-1.0/series b/patches/open62541-1.0/series
new file mode 100644
index 000000000000..248a1b603996
--- /dev/null
+++ b/patches/open62541-1.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
+# 4a88edd1483ff7bb07a623335b407de7  - git-ptx-patches magic
diff --git a/rules/host-open62541.in b/rules/host-open62541.in
new file mode 100644
index 000000000000..8a432080ed34
--- /dev/null
+++ b/rules/host-open62541.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_OPEN62541
+        tristate
+	select HOST_CMAKE
+	select HOST_UA_NODESET
diff --git a/rules/host-open62541.make b/rules/host-open62541.make
new file mode 100644
index 000000000000..755ef67a380c
--- /dev/null
+++ b/rules/host-open62541.make
@@ -0,0 +1,50 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_OPEN62541) += host-open62541
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_OPEN62541_LOGLEVEL		:= 300
+
+HOST_OPEN62541_CONF_TOOL	:= cmake
+HOST_OPEN62541_CONF_OPT		 = \
+	$(CROSS_CMAKE_USR) \
+	-DBUILD_SHARED_LIBS=OFF \
+	-DOPEN62541_VERSION="v$(HOST_OPEN62541_VERSION)" \
+	-DUA_ARCHITECTURE=posix \
+	-DUA_BUILD_EXAMPLES=OFF \
+	-DUA_BUILD_TOOLS=ON \
+	-DUA_BUILD_UNIT_TESTS=OFF \
+	-DUA_ENABLE_AMALGAMATION=OFF \
+	-DUA_ENABLE_COVERAGE=OFF \
+	-DUA_ENABLE_DISCOVERY=OFF \
+	-DUA_ENABLE_DISCOVERY_MULTICAST=OFF \
+	-DUA_ENABLE_ENCRYPTION=OFF \
+	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
+	-DUA_ENABLE_HISTORIZING=OFF \
+	-DUA_ENABLE_METHODCALLS=OFF \
+	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=OFF \
+	-DUA_ENABLE_NODEMANAGEMENT=OFF \
+	-DUA_ENABLE_QUERY=OFF \
+	-DUA_ENABLE_STATIC_ANALYZER=OFF \
+	-DUA_ENABLE_SUBSCRIPTIONS=OFF \
+	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF \
+	-DUA_LOGLEVEL=$(HOST_OPEN62541_LOGLEVEL) \
+	-DUA_NAMESPACE_ZERO=FULL \
+	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset"
+
+# vim: syntax=make
diff --git a/rules/open62541.in b/rules/open62541.in
new file mode 100644
index 000000000000..74ee011e2875
--- /dev/null
+++ b/rules/open62541.in
@@ -0,0 +1,13 @@
+## SECTION=communication
+
+config OPEN62541
+	tristate
+	prompt "open62541"
+	select HOST_CMAKE
+	select HOST_OPEN62541
+	select HOST_UA_NODESET
+	select LIBC_PTHREAD
+	select MBEDTLS
+	help
+          The open62541 project is an open source implementation of the OPC UA
+          communication infrastructure which is used in industrial control.
diff --git a/rules/open62541.make b/rules/open62541.make
new file mode 100644
index 000000000000..62e030ed3752
--- /dev/null
+++ b/rules/open62541.make
@@ -0,0 +1,140 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_OPEN62541) += open62541
+
+#
+# Paths and names
+#
+OPEN62541_VERSION		:= 1.0
+OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
+OPEN62541			:= open62541-$(OPEN62541_VERSION)
+OPEN62541_SUFFIX		:= tar.gz
+OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
+OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
+OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
+OPEN62541_LICENSE		:= MPL-2.0
+OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
+
+OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
+OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
+OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
+OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
+$(OPEN62541_MDNSD_SOURCE)	:= OPEN62541_MDNSD
+OPEN62541_MDNSD_DIR		:= $(OPEN62541_DIR)/deps/mdnsd
+OPEN62541_MDNSD_LICENSE		:= BSD-3-Clause
+OPEN62541_MDNSD_LICENSE_FILES	:= file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
+
+# open62541-mdnsd needs the source dir.
+OPEN62541_DEVPKG		:= NO
+
+OPEN62541_SOURCES		:= $(OPEN62541_SOURCE) $(OPEN62541_MDNSD_SOURCE)
+
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/open62541.extract:
+	@$(call targetinfo)
+	@$(call clean, $(OPEN62541_DIR))
+	@$(call extract, OPEN62541)
+	@$(call extract, OPEN62541_MDNSD)
+	@$(call patchin, OPEN62541)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+OPEN62541_LOGLEVEL	:= 300
+
+OPEN62541_CONF_TOOL	:= cmake
+OPEN62541_CONF_OPT	:= \
+	$(CROSS_CMAKE_USR) \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCLANG_FORMAT_EXE=$(PTXDIST_WORKSPACE)/selected_toolchain/clang-format \
+	-DMDNSD_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
+	-DOPEN62541_VERSION="v$(OPEN62541_VERSION)" \
+	-DUA_ARCHITECTURE=posix \
+	-DUA_BUILD_EXAMPLES=OFF \
+	-DUA_BUILD_FUZZING=OFF \
+	-DUA_BUILD_FUZZING_CORPUS=OFF \
+	-DUA_BUILD_OSS_FUZZ=OFF \
+	-DUA_BUILD_TOOLS=ON \
+	-DUA_BUILD_UNIT_TESTS=OFF \
+	-DUA_DEBUG=OFF \
+	-DUA_DEBUG_DUMP_PKGS=OFF \
+	-DUA_ENABLE_AMALGAMATION=OFF \
+	-DUA_ENABLE_COVERAGE=OFF \
+	-DUA_ENABLE_DA=ON \
+	-DUA_ENABLE_CUSTOM_NODESTORE=OFF \
+	-DUA_ENABLE_DETERMINISTIC_RNG=OFF \
+	-DUA_ENABLE_DISCOVERY=ON \
+	-DUA_ENABLE_DISCOVERY_MULTICAST=ON \
+	-DUA_ENABLE_DISCOVERY_SEMAPHORE=ON \
+	-DUA_ENABLE_ENCRYPTION=ON \
+	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
+	-DUA_ENABLE_HARDENING=ON \
+	-DUA_ENABLE_HISTORIZING=ON \
+	-DUA_ENABLE_IMMUTABLE_NODES=ON \
+	-DUA_ENABLE_JSON_ENCODING=OFF \
+	-DUA_ENABLE_MALLOC_SINGLETON=OFF \
+	-DUA_ENABLE_METHODCALLS=ON \
+	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON \
+	-DUA_ENABLE_MULTITHREADING=200 \
+	-DUA_ENABLE_NODEMANAGEMENT=ON \
+	-DUA_ENABLE_NODESET_COMPILER_DESCRIPTIONS=ON \
+	-DUA_ENABLE_PUBSUB=ON \
+	-DUA_ENABLE_PUBSUB_ETH_UADP=ON \
+	-DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
+	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \
+	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON \
+	-DUA_ENABLE_PUBSUB_CUSTOM_PUBLISH_HANDLING=OFF \
+	-DUA_ENABLE_QUERY=ON \
+	-DUA_ENABLE_STATIC_ANALYZER=OFF \
+	-DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
+	-DUA_ENABLE_SUBSCRIPTIONS=ON \
+	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON \
+	-DUA_ENABLE_TYPENAMES=ON \
+	-DUA_ENABLE_UNIT_TEST_FAILURE_HOOKS=OFF \
+	-DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF \
+	-DUA_ENABLE_VALGRIND_INTERACTIVE=OFF \
+	-DUA_COMPILE_AS_CXX=OFF \
+	-DUA_FILE_NS0="" \
+	-DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
+	-DUA_MSVC_FORCE_STATIC_CRT=OFF \
+	-DUA_NAMESPACE_ZERO=FULL \
+	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset" \
+	-DUA_PACK_DEBIAN=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/open62541.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, open62541)
+	@$(call install_fixup, open62541,PRIORITY,optional)
+	@$(call install_fixup, open62541,SECTION,base)
+	@$(call install_fixup, open62541,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
+	@$(call install_fixup, open62541,DESCRIPTION,missing)
+
+	@$(call install_lib, open62541, 0, 0, 0644, libopen62541)
+
+	@$(call install_finish, open62541)
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.25.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 3/3] open62541: " Ulrich Ölmann
@ 2020-02-14 12:50   ` Michael Olbrich
  2020-02-17  9:50     ` Roland Hieber
  2020-03-11 15:40     ` Ulrich Ölmann
  2020-02-15  9:58   ` Michael Olbrich
  1 sibling, 2 replies; 12+ messages in thread
From: Michael Olbrich @ 2020-02-14 12:50 UTC (permalink / raw)
  To: ptxdist

On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
> From: Björn Esser <b.esser@pengutronix.de>
> 
> The open62541 project is an open source implementation of the OPC UA
> communication infrastructure which is used in industrial control.
> 
> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
> [uol: adjusted commit message]
> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
> ---
> v2 --> v3: adjusted commit message
> 
>  ...-UA_NODESET_DIR-to-be-custom-defined.patch | 224 ++++++++++++++++++
>  patches/open62541-1.0/series                  |   4 +
>  rules/host-open62541.in                       |   6 +
>  rules/host-open62541.make                     |  50 ++++
>  rules/open62541.in                            |  13 +
>  rules/open62541.make                          | 140 +++++++++++
>  6 files changed, 437 insertions(+)
>  create mode 100644 patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
>  create mode 100644 patches/open62541-1.0/series
>  create mode 100644 rules/host-open62541.in
>  create mode 100644 rules/host-open62541.make
>  create mode 100644 rules/open62541.in
>  create mode 100644 rules/open62541.make
> 
> diff --git a/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> new file mode 100644
> index 000000000000..0dfd003518ed
> --- /dev/null
> +++ b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> @@ -0,0 +1,224 @@
> +From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <b.esser@pengutronix.de>
> +Date: Mon, 2 Dec 2019 14:38:38 +0100
> +Subject: [PATCH] CMake: Allow UA_NODESET_DIR to be custom defined.
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +This makes it easier for developers to keep all ua-nodesets XML
> +definitions in a common location.
> +
> +Backported from: https://github.com/open62541/open62541/pull/3310
> +
> +Signed-off-by: Björn Esser <b.esser@pengutronix.de>
> +---
> + CMakeLists.txt                        | 14 +++++++++-----
> + doc/nodeset_compiler.rst              | 22 +++++++++++-----------
> + examples/CMakeLists.txt               |  4 ----
> + examples/nodeset/CMakeLists.txt       |  6 +++---
> + tests/nodeset-compiler/CMakeLists.txt | 14 +++++++-------
> + tools/cmake/macros_public.cmake       |  2 +-
> + 6 files changed, 31 insertions(+), 31 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index d426e1da66fe..fbbafd8f2791 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -15,7 +15,6 @@ include(GNUInstallDirs)
> + 
> + # Set when installed via make install
> + set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
> +-set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
> + 
> + include(macros_internal)
> + include(macros_public)
> +@@ -134,6 +133,11 @@ option(UA_ENABLE_ENCRYPTION "Enable encryption support (uses mbedTLS)" OFF)
> + option(UA_ENABLE_MICRO_EMB_DEV_PROFILE "Builds CTT Compliant Micro Embedded Device Server Profile" OFF)
> + option(BUILD_SHARED_LIBS "Enable building of shared libraries (dll/so)" OFF)
> + 
> ++if(NOT UA_NODESET_DIR)
> ++    set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
> ++endif()
> ++set(open62541_NODESET_DIR ${UA_NODESET_DIR})
> ++
> + # Namespace Zero
> + set(UA_NAMESPACE_ZERO "REDUCED" CACHE STRING "Completeness of the generated namespace zero (minimal/reduced/full)")
> + SET_PROPERTY(CACHE UA_NAMESPACE_ZERO PROPERTY STRINGS "MINIMAL" "REDUCED" "FULL")
> +@@ -770,7 +774,7 @@ set(UA_FILE_NODESETS)
> + 
> + if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     if(NOT UA_FILE_NS0)
> +-        set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml)
> ++        set(UA_FILE_NS0 ${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
> +     endif()
> +     set(UA_FILE_NODESETS "${UA_FILE_NS0}")
> + 
> +@@ -779,9 +783,9 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     endif()
> + 
> + 
> +-    set(UA_FILE_NODEIDS ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/NodeIds.csv)
> +-    set(UA_FILE_STATUSCODES ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/StatusCode.csv)
> +-    set(UA_FILE_TYPES_BSD ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd)
> ++    set(UA_FILE_NODEIDS ${UA_NODESET_DIR}/Schema/NodeIds.csv)
> ++    set(UA_FILE_STATUSCODES ${UA_NODESET_DIR}/Schema/StatusCode.csv)
> ++    set(UA_FILE_TYPES_BSD ${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
> + else()
> +     if(NOT UA_FILE_NS0)
> +         set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Minimal.xml)
> +diff --git a/doc/nodeset_compiler.rst b/doc/nodeset_compiler.rst
> +index dd752ccd70a9..34fc8f800480 100644
> +--- a/doc/nodeset_compiler.rst
> ++++ b/doc/nodeset_compiler.rst
> +@@ -292,17 +292,17 @@ Here are some examples for the ``DI`` and ``PLCOpen`` nodesets::
> +     # Generate types and namespace for DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "di"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +         NAMESPACE_IDX 2
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +     )
> + 
> +     # generate PLCopen namespace which is using DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "plc"
> +         # PLCopen does not define custom types. Only generate the nodeset
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         # PLCopen depends on the di nodeset, which must be generated before
> +         DEPENDS "di"
> +     )
> +@@ -403,8 +403,8 @@ This DI nodeset makes use of some additional data types in ``deps/ua-nodeset/DI/
> +         NAME "ua_types_di"
> +         TARGET_SUFFIX "types-di"
> +         NAMESPACE_IDX 2
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILES_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILES_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +     )
> + 
> + The ``NAMESPACE_IDX`` parameter indicates the namespace index of the generated node IDs for the type definitions. Currently we need to rely that the namespace is also added at this position in the final server. There is no automatic inferring yet (pull requests are warmly welcome).
> +@@ -414,11 +414,11 @@ Now you can compile the DI nodeset XML using the following command::
> + 
> +     ua_generate_nodeset(
> +         NAME "di"
> +-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         TYPES_ARRAY "UA_TYPES_DI"
> +         INTERNAL
> +         DEPENDS_TYPES "UA_TYPES"
> +-        DEPENDS_NS    "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
> ++        DEPENDS_NS    "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
> +         DEPENDS_TARGET "open62541-generator-types-di"
> +     )
> + 
> +@@ -429,13 +429,13 @@ Next we can generate the PLCopen nodeset. Since it doesn't require any additiona
> + 
> +     ua_generate_nodeset(
> +         NAME "plc"
> +-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         INTERNAL
> +         DEPENDS_TYPES
> +             "UA_TYPES" "UA_TYPES_DI"
> +         DEPENDS_NS
> +-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
> +-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++            "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
> ++            "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         DEPENDS_TARGET "open62541-generator-ns-di"
> +     )
> + 
> +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
> +index d46f853ecde6..353a0fbf992d 100644
> +--- a/examples/CMakeLists.txt
> ++++ b/examples/CMakeLists.txt
> +@@ -26,10 +26,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
> +         set(UA_TOOLS_DIR ${open62541_TOOLS_DIR})
> +     endif()
> + 
> +-    if(NOT UA_NODESET_DIR)
> +-        set(UA_NODESET_DIR ${open62541_NODESET_DIR})
> +-    endif()
> +-
> +     function(assign_source_group)
> +         # define empty function. We don't need it in standalone
> +     endfunction(assign_source_group)
> +diff --git a/examples/nodeset/CMakeLists.txt b/examples/nodeset/CMakeLists.txt
> +index c4b612d911d5..0a5fe38ef229 100644
> +--- a/examples/nodeset/CMakeLists.txt
> ++++ b/examples/nodeset/CMakeLists.txt
> +@@ -63,10 +63,10 @@ endif()
> + ###################
> + 
> + if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
> +-    set(FILE_CSV_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> +-    set(FILE_BSD_PLCOPEN_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> ++    set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
> ++    set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
> +     set(FILE_BSD_POWERLINK_DIRPREFIX ${PROJECT_SOURCE_DIR}/nodeset)
> +-    set(FILE_NS_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> ++    set(FILE_NS_DIRPREFIX ${UA_NODESET_DIR})
> + else()
> +     set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
> +     set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
> +diff --git a/tests/nodeset-compiler/CMakeLists.txt b/tests/nodeset-compiler/CMakeLists.txt
> +index 153759aa16c6..2b68e3926499 100644
> +--- a/tests/nodeset-compiler/CMakeLists.txt
> ++++ b/tests/nodeset-compiler/CMakeLists.txt
> +@@ -11,22 +11,22 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     # Generate types and namespace for DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-di"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +         NAMESPACE_IDX 2
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         INTERNAL
> +     )
> + 
> +     # Generate types and namespace for ADI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-adi"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/OpcUaAdiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/ADI/OpcUaAdiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.Types.bsd"
> +         NAMESPACE_IDX 3
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.NodeSet2.xml"
> +         DEPENDS "tests-di"
> +         INTERNAL
> +     )
> +@@ -46,7 +46,7 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-plc"
> +         # PLCopen does not define custom types. Only generate the nodeset
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         # PLCopen depends on the di nodeset, which must be generated before
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +         DEPENDS "tests-di"
> +diff --git a/tools/cmake/macros_public.cmake b/tools/cmake/macros_public.cmake
> +index a6a36f3d1090..751b679a37d8 100644
> +--- a/tools/cmake/macros_public.cmake
> ++++ b/tools/cmake/macros_public.cmake
> +@@ -100,7 +100,7 @@ endfunction()
> + #                   passed which will all combined to one resulting code.
> + #   IMPORT_BSD      Combination of types array and path to the .bsd file containing additional type definitions referenced by
> + #                   the FILES_BSD files. The value is separated with a hash sign, i.e.
> +-#                   'UA_TYPES#${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd'
> ++#                   'UA_TYPES#${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd'
> + #                   Multiple files can be passed which will all be imported.
> + #   [FILES_SELECTED] Optional path to a simple text file which contains a list of types which should be included in the generation.
> + #                   The file should contain one type per line. Multiple files can be passed to this argument.
> diff --git a/patches/open62541-1.0/series b/patches/open62541-1.0/series
> new file mode 100644
> index 000000000000..248a1b603996
> --- /dev/null
> +++ b/patches/open62541-1.0/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> +# 4a88edd1483ff7bb07a623335b407de7  - git-ptx-patches magic
> diff --git a/rules/host-open62541.in b/rules/host-open62541.in
> new file mode 100644
> index 000000000000..8a432080ed34
> --- /dev/null
> +++ b/rules/host-open62541.in
> @@ -0,0 +1,6 @@
> +## SECTION=hosttools_noprompt
> +
> +config HOST_OPEN62541
> +        tristate
> +	select HOST_CMAKE
> +	select HOST_UA_NODESET
> diff --git a/rules/host-open62541.make b/rules/host-open62541.make
> new file mode 100644
> index 000000000000..755ef67a380c
> --- /dev/null
> +++ b/rules/host-open62541.make
> @@ -0,0 +1,50 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +HOST_PACKAGES-$(PTXCONF_HOST_OPEN62541) += host-open62541
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +HOST_OPEN62541_LOGLEVEL		:= 300
> +
> +HOST_OPEN62541_CONF_TOOL	:= cmake
> +HOST_OPEN62541_CONF_OPT		 = \
> +	$(CROSS_CMAKE_USR) \
> +	-DBUILD_SHARED_LIBS=OFF \
> +	-DOPEN62541_VERSION="v$(HOST_OPEN62541_VERSION)" \
> +	-DUA_ARCHITECTURE=posix \
> +	-DUA_BUILD_EXAMPLES=OFF \
> +	-DUA_BUILD_TOOLS=ON \
> +	-DUA_BUILD_UNIT_TESTS=OFF \
> +	-DUA_ENABLE_AMALGAMATION=OFF \
> +	-DUA_ENABLE_COVERAGE=OFF \
> +	-DUA_ENABLE_DISCOVERY=OFF \
> +	-DUA_ENABLE_DISCOVERY_MULTICAST=OFF \
> +	-DUA_ENABLE_ENCRYPTION=OFF \
> +	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
> +	-DUA_ENABLE_HISTORIZING=OFF \
> +	-DUA_ENABLE_METHODCALLS=OFF \
> +	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=OFF \
> +	-DUA_ENABLE_NODEMANAGEMENT=OFF \
> +	-DUA_ENABLE_QUERY=OFF \
> +	-DUA_ENABLE_STATIC_ANALYZER=OFF \
> +	-DUA_ENABLE_SUBSCRIPTIONS=OFF \
> +	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF \
> +	-DUA_LOGLEVEL=$(HOST_OPEN62541_LOGLEVEL) \
> +	-DUA_NAMESPACE_ZERO=FULL \
> +	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset"
> +
> +# vim: syntax=make
> diff --git a/rules/open62541.in b/rules/open62541.in
> new file mode 100644
> index 000000000000..74ee011e2875
> --- /dev/null
> +++ b/rules/open62541.in
> @@ -0,0 +1,13 @@
> +## SECTION=communication
> +
> +config OPEN62541
> +	tristate
> +	prompt "open62541"
> +	select HOST_CMAKE
> +	select HOST_OPEN62541
> +	select HOST_UA_NODESET
> +	select LIBC_PTHREAD
> +	select MBEDTLS
> +	help
> +          The open62541 project is an open source implementation of the OPC UA
> +          communication infrastructure which is used in industrial control.
> diff --git a/rules/open62541.make b/rules/open62541.make
> new file mode 100644
> index 000000000000..62e030ed3752
> --- /dev/null
> +++ b/rules/open62541.make
> @@ -0,0 +1,140 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_OPEN62541) += open62541
> +
> +#
> +# Paths and names
> +#
> +OPEN62541_VERSION		:= 1.0
> +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
> +OPEN62541			:= open62541-$(OPEN62541_VERSION)
> +OPEN62541_SUFFIX		:= tar.gz
> +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
> +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
> +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
> +OPEN62541_LICENSE		:= MPL-2.0
> +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
> +
> +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
> +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
> +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz

The suffix deserves a separate variable.

> +$(OPEN62541_MDNSD_SOURCE)	:= OPEN62541_MDNSD
> +OPEN62541_MDNSD_DIR		:= $(OPEN62541_DIR)/deps/mdnsd
> +OPEN62541_MDNSD_LICENSE		:= BSD-3-Clause
> +OPEN62541_MDNSD_LICENSE_FILES	:= file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
> +
> +# open62541-mdnsd needs the source dir.
> +OPEN62541_DEVPKG		:= NO

Right now open62541-mdnsd is part of the same package, so the comment
makes no sense.

Michael

> +
> +OPEN62541_SOURCES		:= $(OPEN62541_SOURCE) $(OPEN62541_MDNSD_SOURCE)
> +
> +
> +# ----------------------------------------------------------------------------
> +# Extract
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/open62541.extract:
> +	@$(call targetinfo)
> +	@$(call clean, $(OPEN62541_DIR))
> +	@$(call extract, OPEN62541)
> +	@$(call extract, OPEN62541_MDNSD)
> +	@$(call patchin, OPEN62541)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +OPEN62541_LOGLEVEL	:= 300
> +
> +OPEN62541_CONF_TOOL	:= cmake
> +OPEN62541_CONF_OPT	:= \
> +	$(CROSS_CMAKE_USR) \
> +	-DBUILD_SHARED_LIBS=ON \
> +	-DCLANG_FORMAT_EXE=$(PTXDIST_WORKSPACE)/selected_toolchain/clang-format \
> +	-DMDNSD_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
> +	-DOPEN62541_VERSION="v$(OPEN62541_VERSION)" \
> +	-DUA_ARCHITECTURE=posix \
> +	-DUA_BUILD_EXAMPLES=OFF \
> +	-DUA_BUILD_FUZZING=OFF \
> +	-DUA_BUILD_FUZZING_CORPUS=OFF \
> +	-DUA_BUILD_OSS_FUZZ=OFF \
> +	-DUA_BUILD_TOOLS=ON \
> +	-DUA_BUILD_UNIT_TESTS=OFF \
> +	-DUA_DEBUG=OFF \
> +	-DUA_DEBUG_DUMP_PKGS=OFF \
> +	-DUA_ENABLE_AMALGAMATION=OFF \
> +	-DUA_ENABLE_COVERAGE=OFF \
> +	-DUA_ENABLE_DA=ON \
> +	-DUA_ENABLE_CUSTOM_NODESTORE=OFF \
> +	-DUA_ENABLE_DETERMINISTIC_RNG=OFF \
> +	-DUA_ENABLE_DISCOVERY=ON \
> +	-DUA_ENABLE_DISCOVERY_MULTICAST=ON \
> +	-DUA_ENABLE_DISCOVERY_SEMAPHORE=ON \
> +	-DUA_ENABLE_ENCRYPTION=ON \
> +	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
> +	-DUA_ENABLE_HARDENING=ON \
> +	-DUA_ENABLE_HISTORIZING=ON \
> +	-DUA_ENABLE_IMMUTABLE_NODES=ON \
> +	-DUA_ENABLE_JSON_ENCODING=OFF \
> +	-DUA_ENABLE_MALLOC_SINGLETON=OFF \
> +	-DUA_ENABLE_METHODCALLS=ON \
> +	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON \
> +	-DUA_ENABLE_MULTITHREADING=200 \
> +	-DUA_ENABLE_NODEMANAGEMENT=ON \
> +	-DUA_ENABLE_NODESET_COMPILER_DESCRIPTIONS=ON \
> +	-DUA_ENABLE_PUBSUB=ON \
> +	-DUA_ENABLE_PUBSUB_ETH_UADP=ON \
> +	-DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
> +	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \
> +	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON \
> +	-DUA_ENABLE_PUBSUB_CUSTOM_PUBLISH_HANDLING=OFF \
> +	-DUA_ENABLE_QUERY=ON \
> +	-DUA_ENABLE_STATIC_ANALYZER=OFF \
> +	-DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
> +	-DUA_ENABLE_SUBSCRIPTIONS=ON \
> +	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON \
> +	-DUA_ENABLE_TYPENAMES=ON \
> +	-DUA_ENABLE_UNIT_TEST_FAILURE_HOOKS=OFF \
> +	-DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF \
> +	-DUA_ENABLE_VALGRIND_INTERACTIVE=OFF \
> +	-DUA_COMPILE_AS_CXX=OFF \
> +	-DUA_FILE_NS0="" \
> +	-DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
> +	-DUA_MSVC_FORCE_STATIC_CRT=OFF \
> +	-DUA_NAMESPACE_ZERO=FULL \
> +	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset" \
> +	-DUA_PACK_DEBIAN=OFF
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/open62541.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, open62541)
> +	@$(call install_fixup, open62541,PRIORITY,optional)
> +	@$(call install_fixup, open62541,SECTION,base)
> +	@$(call install_fixup, open62541,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
> +	@$(call install_fixup, open62541,DESCRIPTION,missing)
> +
> +	@$(call install_lib, open62541, 0, 0, 0644, libopen62541)
> +
> +	@$(call install_finish, open62541)
> +	@$(call touch)
> +
> +# vim: syntax=make
> -- 
> 2.25.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 3/3] open62541: " Ulrich Ölmann
  2020-02-14 12:50   ` Michael Olbrich
@ 2020-02-15  9:58   ` Michael Olbrich
  2020-03-11 15:38     ` Ulrich Ölmann
  1 sibling, 1 reply; 12+ messages in thread
From: Michael Olbrich @ 2020-02-15  9:58 UTC (permalink / raw)
  To: ptxdist

On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
> From: Björn Esser <b.esser@pengutronix.de>
> 
> The open62541 project is an open source implementation of the OPC UA
> communication infrastructure which is used in industrial control.
> 
> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
> [uol: adjusted commit message]
> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
> ---
> v2 --> v3: adjusted commit message
> 
>  ...-UA_NODESET_DIR-to-be-custom-defined.patch | 224 ++++++++++++++++++
>  patches/open62541-1.0/series                  |   4 +
>  rules/host-open62541.in                       |   6 +
>  rules/host-open62541.make                     |  50 ++++
>  rules/open62541.in                            |  13 +
>  rules/open62541.make                          | 140 +++++++++++
>  6 files changed, 437 insertions(+)
>  create mode 100644 patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
>  create mode 100644 patches/open62541-1.0/series
>  create mode 100644 rules/host-open62541.in
>  create mode 100644 rules/host-open62541.make
>  create mode 100644 rules/open62541.in
>  create mode 100644 rules/open62541.make
> 
> diff --git a/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> new file mode 100644
> index 000000000000..0dfd003518ed
> --- /dev/null
> +++ b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> @@ -0,0 +1,224 @@
> +From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <b.esser@pengutronix.de>
> +Date: Mon, 2 Dec 2019 14:38:38 +0100
> +Subject: [PATCH] CMake: Allow UA_NODESET_DIR to be custom defined.
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +This makes it easier for developers to keep all ua-nodesets XML
> +definitions in a common location.
> +
> +Backported from: https://github.com/open62541/open62541/pull/3310
> +
> +Signed-off-by: Björn Esser <b.esser@pengutronix.de>
> +---
> + CMakeLists.txt                        | 14 +++++++++-----
> + doc/nodeset_compiler.rst              | 22 +++++++++++-----------
> + examples/CMakeLists.txt               |  4 ----
> + examples/nodeset/CMakeLists.txt       |  6 +++---
> + tests/nodeset-compiler/CMakeLists.txt | 14 +++++++-------
> + tools/cmake/macros_public.cmake       |  2 +-
> + 6 files changed, 31 insertions(+), 31 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index d426e1da66fe..fbbafd8f2791 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -15,7 +15,6 @@ include(GNUInstallDirs)
> + 
> + # Set when installed via make install
> + set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
> +-set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
> + 
> + include(macros_internal)
> + include(macros_public)
> +@@ -134,6 +133,11 @@ option(UA_ENABLE_ENCRYPTION "Enable encryption support (uses mbedTLS)" OFF)
> + option(UA_ENABLE_MICRO_EMB_DEV_PROFILE "Builds CTT Compliant Micro Embedded Device Server Profile" OFF)
> + option(BUILD_SHARED_LIBS "Enable building of shared libraries (dll/so)" OFF)
> + 
> ++if(NOT UA_NODESET_DIR)
> ++    set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
> ++endif()
> ++set(open62541_NODESET_DIR ${UA_NODESET_DIR})
> ++
> + # Namespace Zero
> + set(UA_NAMESPACE_ZERO "REDUCED" CACHE STRING "Completeness of the generated namespace zero (minimal/reduced/full)")
> + SET_PROPERTY(CACHE UA_NAMESPACE_ZERO PROPERTY STRINGS "MINIMAL" "REDUCED" "FULL")
> +@@ -770,7 +774,7 @@ set(UA_FILE_NODESETS)
> + 
> + if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     if(NOT UA_FILE_NS0)
> +-        set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml)
> ++        set(UA_FILE_NS0 ${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
> +     endif()
> +     set(UA_FILE_NODESETS "${UA_FILE_NS0}")
> + 
> +@@ -779,9 +783,9 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     endif()
> + 
> + 
> +-    set(UA_FILE_NODEIDS ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/NodeIds.csv)
> +-    set(UA_FILE_STATUSCODES ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/StatusCode.csv)
> +-    set(UA_FILE_TYPES_BSD ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd)
> ++    set(UA_FILE_NODEIDS ${UA_NODESET_DIR}/Schema/NodeIds.csv)
> ++    set(UA_FILE_STATUSCODES ${UA_NODESET_DIR}/Schema/StatusCode.csv)
> ++    set(UA_FILE_TYPES_BSD ${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
> + else()
> +     if(NOT UA_FILE_NS0)
> +         set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Minimal.xml)
> +diff --git a/doc/nodeset_compiler.rst b/doc/nodeset_compiler.rst
> +index dd752ccd70a9..34fc8f800480 100644
> +--- a/doc/nodeset_compiler.rst
> ++++ b/doc/nodeset_compiler.rst
> +@@ -292,17 +292,17 @@ Here are some examples for the ``DI`` and ``PLCOpen`` nodesets::
> +     # Generate types and namespace for DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "di"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +         NAMESPACE_IDX 2
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +     )
> + 
> +     # generate PLCopen namespace which is using DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "plc"
> +         # PLCopen does not define custom types. Only generate the nodeset
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         # PLCopen depends on the di nodeset, which must be generated before
> +         DEPENDS "di"
> +     )
> +@@ -403,8 +403,8 @@ This DI nodeset makes use of some additional data types in ``deps/ua-nodeset/DI/
> +         NAME "ua_types_di"
> +         TARGET_SUFFIX "types-di"
> +         NAMESPACE_IDX 2
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILES_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILES_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +     )
> + 
> + The ``NAMESPACE_IDX`` parameter indicates the namespace index of the generated node IDs for the type definitions. Currently we need to rely that the namespace is also added at this position in the final server. There is no automatic inferring yet (pull requests are warmly welcome).
> +@@ -414,11 +414,11 @@ Now you can compile the DI nodeset XML using the following command::
> + 
> +     ua_generate_nodeset(
> +         NAME "di"
> +-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         TYPES_ARRAY "UA_TYPES_DI"
> +         INTERNAL
> +         DEPENDS_TYPES "UA_TYPES"
> +-        DEPENDS_NS    "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
> ++        DEPENDS_NS    "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
> +         DEPENDS_TARGET "open62541-generator-types-di"
> +     )
> + 
> +@@ -429,13 +429,13 @@ Next we can generate the PLCopen nodeset. Since it doesn't require any additiona
> + 
> +     ua_generate_nodeset(
> +         NAME "plc"
> +-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         INTERNAL
> +         DEPENDS_TYPES
> +             "UA_TYPES" "UA_TYPES_DI"
> +         DEPENDS_NS
> +-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
> +-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++            "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
> ++            "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         DEPENDS_TARGET "open62541-generator-ns-di"
> +     )
> + 
> +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
> +index d46f853ecde6..353a0fbf992d 100644
> +--- a/examples/CMakeLists.txt
> ++++ b/examples/CMakeLists.txt
> +@@ -26,10 +26,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
> +         set(UA_TOOLS_DIR ${open62541_TOOLS_DIR})
> +     endif()
> + 
> +-    if(NOT UA_NODESET_DIR)
> +-        set(UA_NODESET_DIR ${open62541_NODESET_DIR})
> +-    endif()
> +-
> +     function(assign_source_group)
> +         # define empty function. We don't need it in standalone
> +     endfunction(assign_source_group)
> +diff --git a/examples/nodeset/CMakeLists.txt b/examples/nodeset/CMakeLists.txt
> +index c4b612d911d5..0a5fe38ef229 100644
> +--- a/examples/nodeset/CMakeLists.txt
> ++++ b/examples/nodeset/CMakeLists.txt
> +@@ -63,10 +63,10 @@ endif()
> + ###################
> + 
> + if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
> +-    set(FILE_CSV_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> +-    set(FILE_BSD_PLCOPEN_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> ++    set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
> ++    set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
> +     set(FILE_BSD_POWERLINK_DIRPREFIX ${PROJECT_SOURCE_DIR}/nodeset)
> +-    set(FILE_NS_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
> ++    set(FILE_NS_DIRPREFIX ${UA_NODESET_DIR})
> + else()
> +     set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
> +     set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
> +diff --git a/tests/nodeset-compiler/CMakeLists.txt b/tests/nodeset-compiler/CMakeLists.txt
> +index 153759aa16c6..2b68e3926499 100644
> +--- a/tests/nodeset-compiler/CMakeLists.txt
> ++++ b/tests/nodeset-compiler/CMakeLists.txt
> +@@ -11,22 +11,22 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     # Generate types and namespace for DI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-di"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
> +         NAMESPACE_IDX 2
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
> +         INTERNAL
> +     )
> + 
> +     # Generate types and namespace for ADI
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-adi"
> +-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/OpcUaAdiModel.csv"
> +-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.Types.bsd"
> ++        FILE_CSV "${UA_NODESET_DIR}/ADI/OpcUaAdiModel.csv"
> ++        FILE_BSD "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.Types.bsd"
> +         NAMESPACE_IDX 3
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.NodeSet2.xml"
> +         DEPENDS "tests-di"
> +         INTERNAL
> +     )
> +@@ -46,7 +46,7 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
> +     ua_generate_nodeset_and_datatypes(
> +         NAME "tests-plc"
> +         # PLCopen does not define custom types. Only generate the nodeset
> +-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> ++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
> +         # PLCopen depends on the di nodeset, which must be generated before
> +         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
> +         DEPENDS "tests-di"
> +diff --git a/tools/cmake/macros_public.cmake b/tools/cmake/macros_public.cmake
> +index a6a36f3d1090..751b679a37d8 100644
> +--- a/tools/cmake/macros_public.cmake
> ++++ b/tools/cmake/macros_public.cmake
> +@@ -100,7 +100,7 @@ endfunction()
> + #                   passed which will all combined to one resulting code.
> + #   IMPORT_BSD      Combination of types array and path to the .bsd file containing additional type definitions referenced by
> + #                   the FILES_BSD files. The value is separated with a hash sign, i.e.
> +-#                   'UA_TYPES#${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd'
> ++#                   'UA_TYPES#${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd'
> + #                   Multiple files can be passed which will all be imported.
> + #   [FILES_SELECTED] Optional path to a simple text file which contains a list of types which should be included in the generation.
> + #                   The file should contain one type per line. Multiple files can be passed to this argument.
> diff --git a/patches/open62541-1.0/series b/patches/open62541-1.0/series
> new file mode 100644
> index 000000000000..248a1b603996
> --- /dev/null
> +++ b/patches/open62541-1.0/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
> +# 4a88edd1483ff7bb07a623335b407de7  - git-ptx-patches magic
> diff --git a/rules/host-open62541.in b/rules/host-open62541.in
> new file mode 100644
> index 000000000000..8a432080ed34
> --- /dev/null
> +++ b/rules/host-open62541.in
> @@ -0,0 +1,6 @@
> +## SECTION=hosttools_noprompt
> +
> +config HOST_OPEN62541
> +        tristate
> +	select HOST_CMAKE
> +	select HOST_UA_NODESET

needs
	select HOST_SYSTEM_PYTHON3

with ptxdist master.

Michael

> diff --git a/rules/host-open62541.make b/rules/host-open62541.make
> new file mode 100644
> index 000000000000..755ef67a380c
> --- /dev/null
> +++ b/rules/host-open62541.make
> @@ -0,0 +1,50 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +HOST_PACKAGES-$(PTXCONF_HOST_OPEN62541) += host-open62541
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +HOST_OPEN62541_LOGLEVEL		:= 300
> +
> +HOST_OPEN62541_CONF_TOOL	:= cmake
> +HOST_OPEN62541_CONF_OPT		 = \
> +	$(CROSS_CMAKE_USR) \
> +	-DBUILD_SHARED_LIBS=OFF \
> +	-DOPEN62541_VERSION="v$(HOST_OPEN62541_VERSION)" \
> +	-DUA_ARCHITECTURE=posix \
> +	-DUA_BUILD_EXAMPLES=OFF \
> +	-DUA_BUILD_TOOLS=ON \
> +	-DUA_BUILD_UNIT_TESTS=OFF \
> +	-DUA_ENABLE_AMALGAMATION=OFF \
> +	-DUA_ENABLE_COVERAGE=OFF \
> +	-DUA_ENABLE_DISCOVERY=OFF \
> +	-DUA_ENABLE_DISCOVERY_MULTICAST=OFF \
> +	-DUA_ENABLE_ENCRYPTION=OFF \
> +	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
> +	-DUA_ENABLE_HISTORIZING=OFF \
> +	-DUA_ENABLE_METHODCALLS=OFF \
> +	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=OFF \
> +	-DUA_ENABLE_NODEMANAGEMENT=OFF \
> +	-DUA_ENABLE_QUERY=OFF \
> +	-DUA_ENABLE_STATIC_ANALYZER=OFF \
> +	-DUA_ENABLE_SUBSCRIPTIONS=OFF \
> +	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF \
> +	-DUA_LOGLEVEL=$(HOST_OPEN62541_LOGLEVEL) \
> +	-DUA_NAMESPACE_ZERO=FULL \
> +	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset"
> +
> +# vim: syntax=make
> diff --git a/rules/open62541.in b/rules/open62541.in
> new file mode 100644
> index 000000000000..74ee011e2875
> --- /dev/null
> +++ b/rules/open62541.in
> @@ -0,0 +1,13 @@
> +## SECTION=communication
> +
> +config OPEN62541
> +	tristate
> +	prompt "open62541"
> +	select HOST_CMAKE
> +	select HOST_OPEN62541
> +	select HOST_UA_NODESET
> +	select LIBC_PTHREAD
> +	select MBEDTLS
> +	help
> +          The open62541 project is an open source implementation of the OPC UA
> +          communication infrastructure which is used in industrial control.
> diff --git a/rules/open62541.make b/rules/open62541.make
> new file mode 100644
> index 000000000000..62e030ed3752
> --- /dev/null
> +++ b/rules/open62541.make
> @@ -0,0 +1,140 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_OPEN62541) += open62541
> +
> +#
> +# Paths and names
> +#
> +OPEN62541_VERSION		:= 1.0
> +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
> +OPEN62541			:= open62541-$(OPEN62541_VERSION)
> +OPEN62541_SUFFIX		:= tar.gz
> +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
> +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
> +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
> +OPEN62541_LICENSE		:= MPL-2.0
> +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
> +
> +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
> +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
> +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> +$(OPEN62541_MDNSD_SOURCE)	:= OPEN62541_MDNSD
> +OPEN62541_MDNSD_DIR		:= $(OPEN62541_DIR)/deps/mdnsd
> +OPEN62541_MDNSD_LICENSE		:= BSD-3-Clause
> +OPEN62541_MDNSD_LICENSE_FILES	:= file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
> +
> +# open62541-mdnsd needs the source dir.
> +OPEN62541_DEVPKG		:= NO
> +
> +OPEN62541_SOURCES		:= $(OPEN62541_SOURCE) $(OPEN62541_MDNSD_SOURCE)
> +
> +
> +# ----------------------------------------------------------------------------
> +# Extract
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/open62541.extract:
> +	@$(call targetinfo)
> +	@$(call clean, $(OPEN62541_DIR))
> +	@$(call extract, OPEN62541)
> +	@$(call extract, OPEN62541_MDNSD)
> +	@$(call patchin, OPEN62541)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +OPEN62541_LOGLEVEL	:= 300
> +
> +OPEN62541_CONF_TOOL	:= cmake
> +OPEN62541_CONF_OPT	:= \
> +	$(CROSS_CMAKE_USR) \
> +	-DBUILD_SHARED_LIBS=ON \
> +	-DCLANG_FORMAT_EXE=$(PTXDIST_WORKSPACE)/selected_toolchain/clang-format \
> +	-DMDNSD_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
> +	-DOPEN62541_VERSION="v$(OPEN62541_VERSION)" \
> +	-DUA_ARCHITECTURE=posix \
> +	-DUA_BUILD_EXAMPLES=OFF \
> +	-DUA_BUILD_FUZZING=OFF \
> +	-DUA_BUILD_FUZZING_CORPUS=OFF \
> +	-DUA_BUILD_OSS_FUZZ=OFF \
> +	-DUA_BUILD_TOOLS=ON \
> +	-DUA_BUILD_UNIT_TESTS=OFF \
> +	-DUA_DEBUG=OFF \
> +	-DUA_DEBUG_DUMP_PKGS=OFF \
> +	-DUA_ENABLE_AMALGAMATION=OFF \
> +	-DUA_ENABLE_COVERAGE=OFF \
> +	-DUA_ENABLE_DA=ON \
> +	-DUA_ENABLE_CUSTOM_NODESTORE=OFF \
> +	-DUA_ENABLE_DETERMINISTIC_RNG=OFF \
> +	-DUA_ENABLE_DISCOVERY=ON \
> +	-DUA_ENABLE_DISCOVERY_MULTICAST=ON \
> +	-DUA_ENABLE_DISCOVERY_SEMAPHORE=ON \
> +	-DUA_ENABLE_ENCRYPTION=ON \
> +	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
> +	-DUA_ENABLE_HARDENING=ON \
> +	-DUA_ENABLE_HISTORIZING=ON \
> +	-DUA_ENABLE_IMMUTABLE_NODES=ON \
> +	-DUA_ENABLE_JSON_ENCODING=OFF \
> +	-DUA_ENABLE_MALLOC_SINGLETON=OFF \
> +	-DUA_ENABLE_METHODCALLS=ON \
> +	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON \
> +	-DUA_ENABLE_MULTITHREADING=200 \
> +	-DUA_ENABLE_NODEMANAGEMENT=ON \
> +	-DUA_ENABLE_NODESET_COMPILER_DESCRIPTIONS=ON \
> +	-DUA_ENABLE_PUBSUB=ON \
> +	-DUA_ENABLE_PUBSUB_ETH_UADP=ON \
> +	-DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
> +	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \
> +	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON \
> +	-DUA_ENABLE_PUBSUB_CUSTOM_PUBLISH_HANDLING=OFF \
> +	-DUA_ENABLE_QUERY=ON \
> +	-DUA_ENABLE_STATIC_ANALYZER=OFF \
> +	-DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
> +	-DUA_ENABLE_SUBSCRIPTIONS=ON \
> +	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON \
> +	-DUA_ENABLE_TYPENAMES=ON \
> +	-DUA_ENABLE_UNIT_TEST_FAILURE_HOOKS=OFF \
> +	-DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF \
> +	-DUA_ENABLE_VALGRIND_INTERACTIVE=OFF \
> +	-DUA_COMPILE_AS_CXX=OFF \
> +	-DUA_FILE_NS0="" \
> +	-DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
> +	-DUA_MSVC_FORCE_STATIC_CRT=OFF \
> +	-DUA_NAMESPACE_ZERO=FULL \
> +	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset" \
> +	-DUA_PACK_DEBIAN=OFF
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/open62541.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, open62541)
> +	@$(call install_fixup, open62541,PRIORITY,optional)
> +	@$(call install_fixup, open62541,SECTION,base)
> +	@$(call install_fixup, open62541,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
> +	@$(call install_fixup, open62541,DESCRIPTION,missing)
> +
> +	@$(call install_lib, open62541, 0, 0, 0644, libopen62541)
> +
> +	@$(call install_finish, open62541)
> +	@$(call touch)
> +
> +# vim: syntax=make
> -- 
> 2.25.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 1/3] mbedtls: new package
  2020-02-05 10:42 [ptxdist] [PATCH v5 1/3] mbedtls: new package Ulrich Ölmann
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 2/3] host-ua-nodeset: " Ulrich Ölmann
  2020-02-05 10:42 ` [ptxdist] [PATCH v5 3/3] open62541: " Ulrich Ölmann
@ 2020-02-17  9:39 ` Michael Olbrich
  2020-03-11 15:36   ` Ulrich Ölmann
  2 siblings, 1 reply; 12+ messages in thread
From: Michael Olbrich @ 2020-02-17  9:39 UTC (permalink / raw)
  To: ptxdist

On Wed, Feb 05, 2020 at 11:42:39AM +0100, Ulrich Ölmann wrote:
> From: Björn Esser <b.esser@pengutronix.de>
> 
> mbed TLS (formerly known as PolarSSL) makes it trivially easy
> for developers to include cryptographic and SSL/TLS capabilities
> in their (embedded) products, facilitating this functionality
> with a minimal coding footprint.
> 
> Unfortunately the upcoming open62541 package cannot be built
> against OpenSSL. To enable its SSL functionality mbed TLS is
> needed.
> 
> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
> [uol: adjusted commit message]
> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
> ---
> v2 --> v3: adjusted commit message

Not your fault, but needs to be fixed:

libssh2 now uses /usr/lib/libmbedcrypto.so.3 without depending on it :-/

Michael

> 
>  rules/mbedtls.in   | 13 +++++++++
>  rules/mbedtls.make | 66 ++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 79 insertions(+)
>  create mode 100644 rules/mbedtls.in
>  create mode 100644 rules/mbedtls.make
> 
> diff --git a/rules/mbedtls.in b/rules/mbedtls.in
> new file mode 100644
> index 000000000000..a0d58dbd5468
> --- /dev/null
> +++ b/rules/mbedtls.in
> @@ -0,0 +1,13 @@
> +## SECTION=system_libraries
> +
> +config MBEDTLS
> +	tristate
> +	prompt "mbedtls"
> +	select HOST_CMAKE
> +	select LIBC_PTHREAD
> +	select ZLIB
> +	help
> +	  mbed TLS (formerly known as PolarSSL) makes it trivially easy
> +	  for developers to include cryptographic and SSL/TLS capabilities
> +	  in their (embedded) products, facilitating this functionality
> +	  with a minimal coding footprint.
> diff --git a/rules/mbedtls.make b/rules/mbedtls.make
> new file mode 100644
> index 000000000000..0086492fc029
> --- /dev/null
> +++ b/rules/mbedtls.make
> @@ -0,0 +1,66 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_MBEDTLS) += mbedtls
> +
> +#
> +# Paths and names
> +#
> +MBEDTLS_VERSION		:= 2.16.3
> +MBEDTLS_MD5		:= 90ce7c7a001d2514410280706b3ab1a7
> +MBEDTLS			:= mbedtls-$(MBEDTLS_VERSION)
> +MBEDTLS_SUFFIX		:= tgz
> +MBEDTLS_URL		:= https://tls.mbed.org/download/$(MBEDTLS)-apache.$(MBEDTLS_SUFFIX)
> +MBEDTLS_SOURCE		:= $(SRCDIR)/$(MBEDTLS).$(MBEDTLS_SUFFIX)
> +MBEDTLS_DIR		:= $(BUILDDIR)/$(MBEDTLS)
> +MBEDTLS_LICENSE		:= Apache-2.0
> +MBEDTLS_LICENSE_FILES	:= file://apache-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# cmake
> +#
> +MBEDTLS_CONF_TOOL	:= cmake
> +MBEDTLS_CONF_OPT	:= \
> +	$(CROSS_CMAKE_USR) \
> +	-DENABLE_PROGRAMS=OFF \
> +	-DENABLE_TESTING=OFF \
> +	-DENABLE_ZLIB_SUPPORT=ON \
> +	-DINSTALL_MBEDTLS_HEADERS=ON \
> +	-DLINK_WITH_PTHREAD=ON \
> +	-DUNSAFE_BUILD=OFF \
> +	-DUSE_PKCS11_HELPER_LIBRARY=OFF \
> +	-DUSE_SHARED_MBEDTLS_LIBRARY=ON \
> +	-DUSE_STATIC_MBEDTLS_LIBRARY=OFF
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/mbedtls.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, mbedtls)
> +	@$(call install_fixup, mbedtls,PRIORITY,optional)
> +	@$(call install_fixup, mbedtls,SECTION,base)
> +	@$(call install_fixup, mbedtls,AUTHOR,"Bjoern Esser <bes@pengutronix.de>")
> +	@$(call install_fixup, mbedtls,DESCRIPTION,missing)
> +
> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedcrypto)
> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedtls)
> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedx509)
> +
> +	@$(call install_finish, mbedtls)
> +
> +	@$(call touch)
> -- 
> 2.25.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-14 12:50   ` Michael Olbrich
@ 2020-02-17  9:50     ` Roland Hieber
  2020-02-17 10:32       ` Michael Olbrich
  2020-03-11 15:40     ` Ulrich Ölmann
  1 sibling, 1 reply; 12+ messages in thread
From: Roland Hieber @ 2020-02-17  9:50 UTC (permalink / raw)
  To: ptxdist

On Fri, Feb 14, 2020 at 01:50:23PM +0100, Michael Olbrich wrote:
> On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:

[...]

> > diff --git a/rules/open62541.make b/rules/open62541.make
> > new file mode 100644
> > index 000000000000..62e030ed3752
> > --- /dev/null
> > +++ b/rules/open62541.make
> > @@ -0,0 +1,140 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> > +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> > +#
> > +# See CREDITS for details about who has contributed to this project.
> > +#
> > +# For further information about the PTXdist project and license conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_OPEN62541) += open62541
> > +
> > +#
> > +# Paths and names
> > +#
> > +OPEN62541_VERSION		:= 1.0
> > +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
> > +OPEN62541			:= open62541-$(OPEN62541_VERSION)
> > +OPEN62541_SUFFIX		:= tar.gz
> > +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
> > +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
> > +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
> > +OPEN62541_LICENSE		:= MPL-2.0
> > +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
> > +
> > +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
> > +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
> > +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> > +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> 
> The suffix deserves a separate variable.

I'm curious why, is it used by anything other than the URL?

 - Roland

-- 
Roland Hieber, Pengutronix e.K.          | r.hieber@pengutronix.de     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-17  9:50     ` Roland Hieber
@ 2020-02-17 10:32       ` Michael Olbrich
  2020-03-11 15:42         ` Ulrich Ölmann
  0 siblings, 1 reply; 12+ messages in thread
From: Michael Olbrich @ 2020-02-17 10:32 UTC (permalink / raw)
  To: ptxdist

On Mon, Feb 17, 2020 at 10:50:12AM +0100, Roland Hieber wrote:
> On Fri, Feb 14, 2020 at 01:50:23PM +0100, Michael Olbrich wrote:
> > On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
> 
> [...]
> 
> > > diff --git a/rules/open62541.make b/rules/open62541.make
> > > new file mode 100644
> > > index 000000000000..62e030ed3752
> > > --- /dev/null
> > > +++ b/rules/open62541.make
> > > @@ -0,0 +1,140 @@
> > > +# -*-makefile-*-
> > > +#
> > > +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
> > > +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
> > > +#
> > > +# See CREDITS for details about who has contributed to this project.
> > > +#
> > > +# For further information about the PTXdist project and license conditions
> > > +# see the README file.
> > > +#
> > > +
> > > +#
> > > +# We provide this package
> > > +#
> > > +PACKAGES-$(PTXCONF_OPEN62541) += open62541
> > > +
> > > +#
> > > +# Paths and names
> > > +#
> > > +OPEN62541_VERSION		:= 1.0
> > > +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
> > > +OPEN62541			:= open62541-$(OPEN62541_VERSION)
> > > +OPEN62541_SUFFIX		:= tar.gz
> > > +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
> > > +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
> > > +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
> > > +OPEN62541_LICENSE		:= MPL-2.0
> > > +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
> > > +
> > > +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
> > > +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
> > > +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> > > +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
> > 
> > The suffix deserves a separate variable.
> 
> I'm curious why, is it used by anything other than the URL?

Well, having a _VERSION makes the diff for updates easier to read.
_SOURCE and _URL and _MD5 are always needed.
And now that I look closer, OPEN62541_MDNSD should be set as well. This and
_SUFFIX make it clearer that _SOURCE and URL are in sync.

Michael

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 1/3] mbedtls: new package
  2020-02-17  9:39 ` [ptxdist] [PATCH v5 1/3] mbedtls: " Michael Olbrich
@ 2020-03-11 15:36   ` Ulrich Ölmann
  0 siblings, 0 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-03-11 15:36 UTC (permalink / raw)
  To: ptxdist

On Mon, Feb 17 2020 at 10:39 +0100, Michael Olbrich <m.olbrich@pengutronix.de> wrote:
> On Wed, Feb 05, 2020 at 11:42:39AM +0100, Ulrich Ölmann wrote:
>> From: Björn Esser <b.esser@pengutronix.de>
>>
>> mbed TLS (formerly known as PolarSSL) makes it trivially easy
>> for developers to include cryptographic and SSL/TLS capabilities
>> in their (embedded) products, facilitating this functionality
>> with a minimal coding footprint.
>>
>> Unfortunately the upcoming open62541 package cannot be built
>> against OpenSSL. To enable its SSL functionality mbed TLS is
>> needed.
>>
>> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
>> [uol: adjusted commit message]
>> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
>> ---
>> v2 --> v3: adjusted commit message
>
> Not your fault, but needs to be fixed:
>
> libssh2 now uses /usr/lib/libmbedcrypto.so.3 without depending on it :-/

Fixed in the next iteration of the series (to be sent in a few minutes)
by a version bump to a fixed release of libssh2.

Best regards
Ulrich


> Michael
>
>>
>>  rules/mbedtls.in   | 13 +++++++++
>>  rules/mbedtls.make | 66 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 79 insertions(+)
>>  create mode 100644 rules/mbedtls.in
>>  create mode 100644 rules/mbedtls.make
>>
>> diff --git a/rules/mbedtls.in b/rules/mbedtls.in
>> new file mode 100644
>> index 000000000000..a0d58dbd5468
>> --- /dev/null
>> +++ b/rules/mbedtls.in
>> @@ -0,0 +1,13 @@
>> +## SECTION=system_libraries
>> +
>> +config MBEDTLS
>> +	tristate
>> +	prompt "mbedtls"
>> +	select HOST_CMAKE
>> +	select LIBC_PTHREAD
>> +	select ZLIB
>> +	help
>> +	  mbed TLS (formerly known as PolarSSL) makes it trivially easy
>> +	  for developers to include cryptographic and SSL/TLS capabilities
>> +	  in their (embedded) products, facilitating this functionality
>> +	  with a minimal coding footprint.
>> diff --git a/rules/mbedtls.make b/rules/mbedtls.make
>> new file mode 100644
>> index 000000000000..0086492fc029
>> --- /dev/null
>> +++ b/rules/mbedtls.make
>> @@ -0,0 +1,66 @@
>> +# -*-makefile-*-
>> +#
>> +# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
>> +#
>> +# For further information about the PTXdist project and license conditions
>> +# see the README file.
>> +#
>> +
>> +#
>> +# We provide this package
>> +#
>> +PACKAGES-$(PTXCONF_MBEDTLS) += mbedtls
>> +
>> +#
>> +# Paths and names
>> +#
>> +MBEDTLS_VERSION		:= 2.16.3
>> +MBEDTLS_MD5		:= 90ce7c7a001d2514410280706b3ab1a7
>> +MBEDTLS			:= mbedtls-$(MBEDTLS_VERSION)
>> +MBEDTLS_SUFFIX		:= tgz
>> +MBEDTLS_URL		:= https://tls.mbed.org/download/$(MBEDTLS)-apache.$(MBEDTLS_SUFFIX)
>> +MBEDTLS_SOURCE		:= $(SRCDIR)/$(MBEDTLS).$(MBEDTLS_SUFFIX)
>> +MBEDTLS_DIR		:= $(BUILDDIR)/$(MBEDTLS)
>> +MBEDTLS_LICENSE		:= Apache-2.0
>> +MBEDTLS_LICENSE_FILES	:= file://apache-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57
>> +
>> +# ----------------------------------------------------------------------------
>> +# Prepare
>> +# ----------------------------------------------------------------------------
>> +
>> +#
>> +# cmake
>> +#
>> +MBEDTLS_CONF_TOOL	:= cmake
>> +MBEDTLS_CONF_OPT	:= \
>> +	$(CROSS_CMAKE_USR) \
>> +	-DENABLE_PROGRAMS=OFF \
>> +	-DENABLE_TESTING=OFF \
>> +	-DENABLE_ZLIB_SUPPORT=ON \
>> +	-DINSTALL_MBEDTLS_HEADERS=ON \
>> +	-DLINK_WITH_PTHREAD=ON \
>> +	-DUNSAFE_BUILD=OFF \
>> +	-DUSE_PKCS11_HELPER_LIBRARY=OFF \
>> +	-DUSE_SHARED_MBEDTLS_LIBRARY=ON \
>> +	-DUSE_STATIC_MBEDTLS_LIBRARY=OFF
>> +
>> +# ----------------------------------------------------------------------------
>> +# Target-Install
>> +# ----------------------------------------------------------------------------
>> +
>> +$(STATEDIR)/mbedtls.targetinstall:
>> +	@$(call targetinfo)
>> +
>> +	@$(call install_init, mbedtls)
>> +	@$(call install_fixup, mbedtls,PRIORITY,optional)
>> +	@$(call install_fixup, mbedtls,SECTION,base)
>> +	@$(call install_fixup, mbedtls,AUTHOR,"Bjoern Esser <bes@pengutronix.de>")
>> +	@$(call install_fixup, mbedtls,DESCRIPTION,missing)
>> +
>> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedcrypto)
>> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedtls)
>> +	@$(call install_lib, mbedtls, 0, 0, 0644, libmbedx509)
>> +
>> +	@$(call install_finish, mbedtls)
>> +
>> +	@$(call touch)
>> --
>> 2.25.0
>>
>>
>> _______________________________________________
>> ptxdist mailing list
>> ptxdist@pengutronix.de
-- 
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-15  9:58   ` Michael Olbrich
@ 2020-03-11 15:38     ` Ulrich Ölmann
  0 siblings, 0 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-03-11 15:38 UTC (permalink / raw)
  To: ptxdist

On Sat, Feb 15 2020 at 10:58 +0100, Michael Olbrich <m.olbrich@pengutronix.de> wrote:
> On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
>> From: Björn Esser <b.esser@pengutronix.de>
>> 
>> The open62541 project is an open source implementation of the OPC UA
>> communication infrastructure which is used in industrial control.
>> 
>> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
>> [uol: adjusted commit message]
>> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
>> ---
>> v2 --> v3: adjusted commit message
>> 
>> [...]
>> 
>> diff --git a/rules/host-open62541.in b/rules/host-open62541.in
>> new file mode 100644
>> index 000000000000..8a432080ed34
>> --- /dev/null
>> +++ b/rules/host-open62541.in
>> @@ -0,0 +1,6 @@
>> +## SECTION=hosttools_noprompt
>> +
>> +config HOST_OPEN62541
>> +        tristate
>> +	select HOST_CMAKE
>> +	select HOST_UA_NODESET
>
> needs
> 	select HOST_SYSTEM_PYTHON3
>
> with ptxdist master.

Added in the next iteration of the series.

Best regards
Ulrich
-- 
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-14 12:50   ` Michael Olbrich
  2020-02-17  9:50     ` Roland Hieber
@ 2020-03-11 15:40     ` Ulrich Ölmann
  1 sibling, 0 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-03-11 15:40 UTC (permalink / raw)
  To: ptxdist

On Fri, Feb 14 2020 at 13:50 +0100, Michael Olbrich <m.olbrich@pengutronix.de> wrote:
> On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
>> From: Björn Esser <b.esser@pengutronix.de>
>> 
>> The open62541 project is an open source implementation of the OPC UA
>> communication infrastructure which is used in industrial control.
>> 
>> Signed-off-by: Björn Esser <b.esser@pengutronix.de>
>> [uol: adjusted commit message]
>> Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
>> ---
>> v2 --> v3: adjusted commit message
>> 
>> [...]
>> 
>> diff --git a/rules/open62541.make b/rules/open62541.make
>> new file mode 100644
>> index 000000000000..62e030ed3752
>> --- /dev/null
>> +++ b/rules/open62541.make
>> @@ -0,0 +1,140 @@
>> +# -*-makefile-*-
>> +#
>> +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
>> +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
>> +#
>> +# See CREDITS for details about who has contributed to this project.
>> +#
>> +# For further information about the PTXdist project and license conditions
>> +# see the README file.
>> +#
>> +
>> +#
>> +# We provide this package
>> +#
>> +PACKAGES-$(PTXCONF_OPEN62541) += open62541
>> +
>> +#
>> +# Paths and names
>> +#
>> +OPEN62541_VERSION		:= 1.0
>> +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
>> +OPEN62541			:= open62541-$(OPEN62541_VERSION)
>> +OPEN62541_SUFFIX		:= tar.gz
>> +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
>> +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
>> +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
>> +OPEN62541_LICENSE		:= MPL-2.0
>> +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
>> +
>> +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
>> +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
>> +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
>> +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
>
> The suffix deserves a separate variable.

Okay.

>> +$(OPEN62541_MDNSD_SOURCE)	:= OPEN62541_MDNSD
>> +OPEN62541_MDNSD_DIR		:= $(OPEN62541_DIR)/deps/mdnsd
>> +OPEN62541_MDNSD_LICENSE		:= BSD-3-Clause
>> +OPEN62541_MDNSD_LICENSE_FILES	:= file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
>> +
>> +# open62541-mdnsd needs the source dir.
>> +OPEN62541_DEVPKG		:= NO
>
> Right now open62541-mdnsd is part of the same package, so the comment
> makes no sense.

Removed in the next iteration of the series.

Best regards
Ulrich
-- 
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH v5 3/3] open62541: new package
  2020-02-17 10:32       ` Michael Olbrich
@ 2020-03-11 15:42         ` Ulrich Ölmann
  0 siblings, 0 replies; 12+ messages in thread
From: Ulrich Ölmann @ 2020-03-11 15:42 UTC (permalink / raw)
  To: ptxdist

On Mon, Feb 17 2020 at 11:32 +0100, Michael Olbrich <m.olbrich@pengutronix.de> wrote:
> On Mon, Feb 17, 2020 at 10:50:12AM +0100, Roland Hieber wrote:
>> On Fri, Feb 14, 2020 at 01:50:23PM +0100, Michael Olbrich wrote:
>> > On Wed, Feb 05, 2020 at 11:42:41AM +0100, Ulrich Ölmann wrote:
>> 
>> [...]
>> 
>> > > diff --git a/rules/open62541.make b/rules/open62541.make
>> > > new file mode 100644
>> > > index 000000000000..62e030ed3752
>> > > --- /dev/null
>> > > +++ b/rules/open62541.make
>> > > @@ -0,0 +1,140 @@
>> > > +# -*-makefile-*-
>> > > +#
>> > > +# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
>> > > +# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
>> > > +#
>> > > +# See CREDITS for details about who has contributed to this project.
>> > > +#
>> > > +# For further information about the PTXdist project and license conditions
>> > > +# see the README file.
>> > > +#
>> > > +
>> > > +#
>> > > +# We provide this package
>> > > +#
>> > > +PACKAGES-$(PTXCONF_OPEN62541) += open62541
>> > > +
>> > > +#
>> > > +# Paths and names
>> > > +#
>> > > +OPEN62541_VERSION		:= 1.0
>> > > +OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
>> > > +OPEN62541			:= open62541-$(OPEN62541_VERSION)
>> > > +OPEN62541_SUFFIX		:= tar.gz
>> > > +OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
>> > > +OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
>> > > +OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
>> > > +OPEN62541_LICENSE		:= MPL-2.0
>> > > +OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
>> > > +
>> > > +OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
>> > > +OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
>> > > +OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
>> > > +OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
>> > 
>> > The suffix deserves a separate variable.
>> 
>> I'm curious why, is it used by anything other than the URL?
>
> Well, having a _VERSION makes the diff for updates easier to read.
> _SOURCE and _URL and _MD5 are always needed.
> And now that I look closer, OPEN62541_MDNSD should be set as well. This and
> _SUFFIX make it clearer that _SOURCE and URL are in sync.

Done in the next iteration of the series.

Best regards
Ulrich
-- 
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

end of thread, other threads:[~2020-03-11 15:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-05 10:42 [ptxdist] [PATCH v5 1/3] mbedtls: new package Ulrich Ölmann
2020-02-05 10:42 ` [ptxdist] [PATCH v5 2/3] host-ua-nodeset: " Ulrich Ölmann
2020-02-05 10:42 ` [ptxdist] [PATCH v5 3/3] open62541: " Ulrich Ölmann
2020-02-14 12:50   ` Michael Olbrich
2020-02-17  9:50     ` Roland Hieber
2020-02-17 10:32       ` Michael Olbrich
2020-03-11 15:42         ` Ulrich Ölmann
2020-03-11 15:40     ` Ulrich Ölmann
2020-02-15  9:58   ` Michael Olbrich
2020-03-11 15:38     ` Ulrich Ölmann
2020-02-17  9:39 ` [ptxdist] [PATCH v5 1/3] mbedtls: " Michael Olbrich
2020-03-11 15:36   ` Ulrich Ölmann

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