* [ptxdist] [PATCH v3] libtahu: new package
@ 2023-02-17 15:17 Ian Abbott
2023-02-24 7:24 ` [ptxdist] [APPLIED] " Michael Olbrich
0 siblings, 1 reply; 2+ messages in thread
From: Ian Abbott @ 2023-02-17 15:17 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Includes the C library from the Eclipse Tahu project that provides an
implementation of the Sparkplug specification. This package does not
include the implementations from the Tahu project for other programming
languages other than C.
Only the dynamic C library is built.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
v1 -> v2: Fix LIBTAHU_LICENSE_FILES. Simplify LIBTAHU_MAKE_OPT. Only
build the dynamic library. Patch c/core/Makefile to allow building only
the dynamic library and to fix parallel make. Install files verbosely
so we can see them in the logfile.
v2 -> v3: Patch the "tahu.h" header file to comment out the definition
of the SPARKPLUG_DEBUG macro and so disable printing of debug messages
to standard output.
---
...Fixes-for-parallel-make-and-make-lib.patch | 34 ++++++++
...tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch | 28 +++++++
patches/libtahu-1.0.1/series | 2 +
rules/libtahu.in | 11 +++
rules/libtahu.make | 83 +++++++++++++++++++
5 files changed, 158 insertions(+)
create mode 100644 patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
create mode 100644 patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
create mode 100644 patches/libtahu-1.0.1/series
create mode 100644 rules/libtahu.in
create mode 100644 rules/libtahu.make
diff --git a/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
new file mode 100644
index 000000000..602fee06d
--- /dev/null
+++ b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
@@ -0,0 +1,34 @@
+From 6f70eff53d370b96070d1362ebcd4ce153b2a172 Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Fri, 17 Feb 2023 10:41:20 +0000
+Subject: [PATCH] c/core/Makefile: Fixes for parallel make and make
+ lib/libtahu.so
+
+Change $(TEST) target to depend on the built library files.
+
+Change $(DNAME) target rules to create the lib directory.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+---
+ c/core/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/c/core/Makefile b/c/core/Makefile
+index 8243a67..17c5e3d 100644
+--- a/c/core/Makefile
++++ b/c/core/Makefile
+@@ -36,9 +36,10 @@ $(SNAME): $(OBJ)
+
+ $(DNAME): LDFLAGS += -shared
+ $(DNAME): $(OBJ)
++ mkdir -p lib
+ $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+
+-$(TEST):
++$(TEST): $(SNAME) $(DNAME)
+ $(CC) $(CFLAGS) -o test/test_static $(TEST_OBJ) $(SNAME) -lmosquitto
+ $(CC) $(CFLAGS) $(LD_TEST) -o test/test_dynamic $(TEST_OBJ) -l$(NAME) -lmosquitto
+
+--
+2.39.1
+
diff --git a/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
new file mode 100644
index 000000000..417cec098
--- /dev/null
+++ b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
@@ -0,0 +1,28 @@
+From cff7b099c23937bad205833ea1e4e8278690eb21 Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Fri, 17 Feb 2023 14:40:58 +0000
+Subject: [PATCH] tahu.h: Do not define SPARKPLUG_DEBUG
+
+If SPARKPLUG_DEBUG is defined in tahu.c, the library will write lots of
+debug messages to standard output. That's OK for experimentation, but
+not for a live system, so comment out the macro definition.
+---
+ c/core/include/tahu.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/c/core/include/tahu.h b/c/core/include/tahu.h
+index e599146..03fbaaa 100644
+--- a/c/core/include/tahu.h
++++ b/c/core/include/tahu.h
+@@ -29,7 +29,7 @@ extern "C" {
+ #endif
+
+ // Enable/disable debug messages
+-#define SPARKPLUG_DEBUG 1
++//#define SPARKPLUG_DEBUG 1
+
+ #ifdef SPARKPLUG_DEBUG
+ #define DEBUG_PRINT(...) printf(__VA_ARGS__)
+--
+2.39.1
+
diff --git a/patches/libtahu-1.0.1/series b/patches/libtahu-1.0.1/series
new file mode 100644
index 000000000..31edd1b86
--- /dev/null
+++ b/patches/libtahu-1.0.1/series
@@ -0,0 +1,2 @@
+0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
+0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
diff --git a/rules/libtahu.in b/rules/libtahu.in
new file mode 100644
index 000000000..451d40957
--- /dev/null
+++ b/rules/libtahu.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBTAHU
+ tristate
+ prompt "libtahu"
+ help
+ Eclipse Tahu C library for encoding and decoding Sparkplug B
+ messages.
+
+ A typical application will also require an MQTT library such
+ as "mosquitto".
diff --git a/rules/libtahu.make b/rules/libtahu.make
new file mode 100644
index 000000000..26c064c6d
--- /dev/null
+++ b/rules/libtahu.make
@@ -0,0 +1,83 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBTAHU) += libtahu
+
+#
+# Paths and names
+#
+LIBTAHU_VERSION := 1.0.1
+LIBTAHU_MD5 := 7e980ed17e34a78d6d61c000e4957292
+LIBTAHU := libtahu-$(LIBTAHU_VERSION)
+LIBTAHU_SUFFIX := tar.gz
+LIBTAHU_URL := https://github.com/eclipse/tahu/archive/refs/tags/v$(LIBTAHU_VERSION).$(LIBTAHU_SUFFIX)
+LIBTAHU_SOURCE := $(SRCDIR)/$(LIBTAHU).$(LIBTAHU_SUFFIX)
+LIBTAHU_DIR := $(BUILDDIR)/$(LIBTAHU)
+LIBTAHU_SUBDIR := c/core
+LIBTAHU_LICENSE := EPL-2.0
+LIBTAHU_LICENSE_FILES := \
+ file://LICENCE;md5=c7cc8aa73fb5717f8291fcec5ce9ed6c \
+ file://notice.html;md5=618d2440fc58e15450a9416cd6804477
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBTAHU_CONF_TOOL := NO
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+#LIBTAHU_MAKE_ENV := $(CROSS_ENV)
+
+# Just build the dynamic library.
+LIBTAHU_MAKE_OPT := \
+ $(CROSS_ENV_PROGS) \
+ lib/libtahu.so
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtahu.install:
+ @$(call targetinfo)
+ @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/lib" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/lib/libtahu.so"
+ @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/include" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_common.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_decode.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_encode.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.pb.h"
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtahu.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libtahu)
+ @$(call install_fixup, libtahu,PRIORITY,optional)
+ @$(call install_fixup, libtahu,SECTION,base)
+ @$(call install_fixup, libtahu,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
+ @$(call install_fixup, libtahu,DESCRIPTION,missing)
+
+ @$(call install_lib, libtahu, 0, 0, 0644, libtahu)
+
+ @$(call install_finish, libtahu)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.39.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [ptxdist] [APPLIED] libtahu: new package
2023-02-17 15:17 [ptxdist] [PATCH v3] libtahu: new package Ian Abbott
@ 2023-02-24 7:24 ` Michael Olbrich
0 siblings, 0 replies; 2+ messages in thread
From: Michael Olbrich @ 2023-02-24 7:24 UTC (permalink / raw)
To: ptxdist; +Cc: Ian Abbott
Thanks, applied as 82b302a3540122eda1502acf44d3f971ea5365d0.
Michael
[sent from post-receive hook]
On Fri, 24 Feb 2023 08:24:43 +0100, Ian Abbott <abbotti@mev.co.uk> wrote:
> Includes the C library from the Eclipse Tahu project that provides an
> implementation of the Sparkplug specification. This package does not
> include the implementations from the Tahu project for other programming
> languages other than C.
>
> Only the dynamic C library is built.
>
> Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> Message-Id: <20230217151700.13618-1-abbotti@mev.co.uk>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
> new file mode 100644
> index 000000000000..602fee06d377
> --- /dev/null
> +++ b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
> @@ -0,0 +1,34 @@
> +From 6f70eff53d370b96070d1362ebcd4ce153b2a172 Mon Sep 17 00:00:00 2001
> +From: Ian Abbott <abbotti@mev.co.uk>
> +Date: Fri, 17 Feb 2023 10:41:20 +0000
> +Subject: [PATCH] c/core/Makefile: Fixes for parallel make and make
> + lib/libtahu.so
> +
> +Change $(TEST) target to depend on the built library files.
> +
> +Change $(DNAME) target rules to create the lib directory.
> +
> +Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> +---
> + c/core/Makefile | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/c/core/Makefile b/c/core/Makefile
> +index 8243a67..17c5e3d 100644
> +--- a/c/core/Makefile
> ++++ b/c/core/Makefile
> +@@ -36,9 +36,10 @@ $(SNAME): $(OBJ)
> +
> + $(DNAME): LDFLAGS += -shared
> + $(DNAME): $(OBJ)
> ++ mkdir -p lib
> + $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
> +
> +-$(TEST):
> ++$(TEST): $(SNAME) $(DNAME)
> + $(CC) $(CFLAGS) -o test/test_static $(TEST_OBJ) $(SNAME) -lmosquitto
> + $(CC) $(CFLAGS) $(LD_TEST) -o test/test_dynamic $(TEST_OBJ) -l$(NAME) -lmosquitto
> +
> +--
> +2.39.1
> +
> diff --git a/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
> new file mode 100644
> index 000000000000..417cec0981ed
> --- /dev/null
> +++ b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
> @@ -0,0 +1,28 @@
> +From cff7b099c23937bad205833ea1e4e8278690eb21 Mon Sep 17 00:00:00 2001
> +From: Ian Abbott <abbotti@mev.co.uk>
> +Date: Fri, 17 Feb 2023 14:40:58 +0000
> +Subject: [PATCH] tahu.h: Do not define SPARKPLUG_DEBUG
> +
> +If SPARKPLUG_DEBUG is defined in tahu.c, the library will write lots of
> +debug messages to standard output. That's OK for experimentation, but
> +not for a live system, so comment out the macro definition.
> +---
> + c/core/include/tahu.h | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/c/core/include/tahu.h b/c/core/include/tahu.h
> +index e599146..03fbaaa 100644
> +--- a/c/core/include/tahu.h
> ++++ b/c/core/include/tahu.h
> +@@ -29,7 +29,7 @@ extern "C" {
> + #endif
> +
> + // Enable/disable debug messages
> +-#define SPARKPLUG_DEBUG 1
> ++//#define SPARKPLUG_DEBUG 1
> +
> + #ifdef SPARKPLUG_DEBUG
> + #define DEBUG_PRINT(...) printf(__VA_ARGS__)
> +--
> +2.39.1
> +
> diff --git a/patches/libtahu-1.0.1/series b/patches/libtahu-1.0.1/series
> new file mode 100644
> index 000000000000..31edd1b86205
> --- /dev/null
> +++ b/patches/libtahu-1.0.1/series
> @@ -0,0 +1,2 @@
> +0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
> +0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
> diff --git a/rules/libtahu.in b/rules/libtahu.in
> new file mode 100644
> index 000000000000..451d409579b5
> --- /dev/null
> +++ b/rules/libtahu.in
> @@ -0,0 +1,11 @@
> +## SECTION=system_libraries
> +
> +config LIBTAHU
> + tristate
> + prompt "libtahu"
> + help
> + Eclipse Tahu C library for encoding and decoding Sparkplug B
> + messages.
> +
> + A typical application will also require an MQTT library such
> + as "mosquitto".
> diff --git a/rules/libtahu.make b/rules/libtahu.make
> new file mode 100644
> index 000000000000..26c064c6d15d
> --- /dev/null
> +++ b/rules/libtahu.make
> @@ -0,0 +1,83 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2023 by Ian Abbott <abbotti@mev.co.uk>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBTAHU) += libtahu
> +
> +#
> +# Paths and names
> +#
> +LIBTAHU_VERSION := 1.0.1
> +LIBTAHU_MD5 := 7e980ed17e34a78d6d61c000e4957292
> +LIBTAHU := libtahu-$(LIBTAHU_VERSION)
> +LIBTAHU_SUFFIX := tar.gz
> +LIBTAHU_URL := https://github.com/eclipse/tahu/archive/refs/tags/v$(LIBTAHU_VERSION).$(LIBTAHU_SUFFIX)
> +LIBTAHU_SOURCE := $(SRCDIR)/$(LIBTAHU).$(LIBTAHU_SUFFIX)
> +LIBTAHU_DIR := $(BUILDDIR)/$(LIBTAHU)
> +LIBTAHU_SUBDIR := c/core
> +LIBTAHU_LICENSE := EPL-2.0
> +LIBTAHU_LICENSE_FILES := \
> + file://LICENCE;md5=c7cc8aa73fb5717f8291fcec5ce9ed6c \
> + file://notice.html;md5=618d2440fc58e15450a9416cd6804477
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +LIBTAHU_CONF_TOOL := NO
> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +#LIBTAHU_MAKE_ENV := $(CROSS_ENV)
> +
> +# Just build the dynamic library.
> +LIBTAHU_MAKE_OPT := \
> + $(CROSS_ENV_PROGS) \
> + lib/libtahu.so
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libtahu.install:
> + @$(call targetinfo)
> + @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/lib" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/lib/libtahu.so"
> + @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/include" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb.h" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_common.h" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_decode.h" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_encode.h" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.h" \
> + "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.pb.h"
> + @$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libtahu.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, libtahu)
> + @$(call install_fixup, libtahu,PRIORITY,optional)
> + @$(call install_fixup, libtahu,SECTION,base)
> + @$(call install_fixup, libtahu,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
> + @$(call install_fixup, libtahu,DESCRIPTION,missing)
> +
> + @$(call install_lib, libtahu, 0, 0, 0644, libtahu)
> +
> + @$(call install_finish, libtahu)
> +
> + @$(call touch)
> +
> +# vim: syntax=make
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-02-24 7:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-17 15:17 [ptxdist] [PATCH v3] libtahu: new package Ian Abbott
2023-02-24 7:24 ` [ptxdist] [APPLIED] " Michael Olbrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox