From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 17 Feb 2023 16:17:30 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pT2UM-00AD4k-Mk for lore@lore.pengutronix.de; Fri, 17 Feb 2023 16:17:30 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1pT2UL-0007Hv-UM; Fri, 17 Feb 2023 16:17:29 +0100 Received: from smtp95.iad3a.emailsrvr.com ([173.203.187.95]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pT2U5-0007Hh-HU for ptxdist@pengutronix.de; Fri, 17 Feb 2023 16:17:14 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mev.co.uk; s=20221208-6x11dpa4; t=1676647031; bh=Fm/G6D25xObk98MB327VKYeZESGGqi10Nqi/0Fg8wfU=; h=From:To:Subject:Date:From; b=ZUqQC9uRx4K30VQjuL2cOx/ACQdCOD2ihFQnEq0EgzYkPaBXzDEje4ozF2Gq2a0fR fQB/jqWpmCvRrOW87u31XIg6SxhdkH1B32Ml5AVeOcQxgh2fu8DxLQn7p6XJWsWER1 sGv58y3zFfMygpRB8LhER7282DiOdWQcwSNeCFHA= X-Auth-ID: abbotti@mev.co.uk Received: by smtp12.relay.iad3a.emailsrvr.com (Authenticated sender: abbotti-AT-mev.co.uk) with ESMTPSA id 45787235C1; Fri, 17 Feb 2023 10:17:11 -0500 (EST) From: Ian Abbott To: ptxdist@pengutronix.de Date: Fri, 17 Feb 2023 15:17:00 +0000 Message-Id: <20230217151700.13618-1-abbotti@mev.co.uk> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Classification-ID: 73280faa-7618-4f93-9068-dd727df72650-1-1 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-3.7 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH v3] libtahu: new package X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Ian Abbott Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false 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 --- 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 +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 +--- + 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 +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 +# +# 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 ") + @$(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