summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-devtools/libcoap
diff options
context:
space:
mode:
authorAlex Kiernan <alex.kiernan@gmail.com>2022-05-07 12:32:04 +0100
committerKhem Raj <raj.khem@gmail.com>2022-05-07 18:47:16 -0700
commit1556da89029c364bea101e782bdd016b69cddb82 (patch)
tree1083514848104a7736cbdd882fb2e3c6cd2601b9 /meta-networking/recipes-devtools/libcoap
parent80a5a789fb66fb6345ff35901e369b0b711b1d68 (diff)
downloadmeta-openembedded-1556da89029c364bea101e782bdd016b69cddb82.tar.gz
libcoap: Add recipe
libcoap implements a lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alex Kiernan <alexk@zuma.ai> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking/recipes-devtools/libcoap')
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch51
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch44
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap/run-ptest7
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb58
4 files changed, 160 insertions, 0 deletions
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch b/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
new file mode 100644
index 0000000000..c8ac8485a0
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
@@ -0,0 +1,51 @@
1From c56a64ff4df7eecb6c88ff929497bcd0d65934f2 Mon Sep 17 00:00:00 2001
2From: Jon Shallow <supjps-libcoap@jpshallow.com>
3Date: Fri, 22 Apr 2022 13:15:39 +0100
4Subject: [PATCH] coap_session.c: Balance SESSIONS_ADD and SESSIONS_DELETE
5 usage
6
7Upstream-Status: Backport [https://github.com/obgm/libcoap/commit/7e20aa9ef17277f39203334404e6c776b1171a7d]
8Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
9Signed-off-by: Alex Kiernan <alexk@zuma.ai>
10---
11 src/coap_session.c | 12 ++++++++++++
12 1 file changed, 12 insertions(+)
13
14diff --git a/src/coap_session.c b/src/coap_session.c
15index 77cae598f0af..536e57573361 100644
16--- a/src/coap_session.c
17+++ b/src/coap_session.c
18@@ -813,6 +813,12 @@ coap_session_create_client(
19 return session;
20
21 error:
22+ /*
23+ * Need to add in the session as coap_session_release()
24+ * will call SESSIONS_DELETE in coap_session_free().
25+ */
26+ if (session)
27+ SESSIONS_ADD(ctx->sessions, session);
28 coap_session_release(session);
29 return NULL;
30 }
31@@ -1133,11 +1139,17 @@ coap_session_t *coap_new_server_session(
32 if (session) {
33 coap_log(LOG_DEBUG, "***%s: new incoming session\n",
34 coap_session_str(session));
35+ /* Returned session may already have been released and is now NULL */
36 session = coap_session_accept(session);
37 }
38 return session;
39
40 error:
41+ /*
42+ * Need to add in the session as coap_session_release()
43+ * will call SESSIONS_DELETE in coap_session_free().
44+ */
45+ SESSIONS_ADD(ep->sessions, session);
46 coap_session_free(session);
47 return NULL;
48 }
49--
502.35.1
51
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch b/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
new file mode 100644
index 0000000000..64f8d3acc8
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
@@ -0,0 +1,44 @@
1From 25f1bebf1bc4c8da47f976d24a7a424253744e2e Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Wed, 24 Mar 2021 09:10:17 +0000
4Subject: [PATCH] libcoap: Fix gnu-configize error
5
6Fix:
7
8 autoreconf: running: gnu-configize
9 gnu-configize: 'configure.ac' or 'configure.in' is required
10 autoreconf: gnu-configize failed with exit status: 1
11
12We're not pulling in the ext/tinydtls submodule, so this fails.
13
14Upstream-Status: Inappropriate [oe-specific]
15Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
16Signed-off-by: Alex Kiernan <alexk@zuma.ai>
17---
18 configure.ac | 13 -------------
19 1 file changed, 13 deletions(-)
20
21diff --git a/configure.ac b/configure.ac
22index 9f51f4c67557..559808e03aa2 100644
23--- a/configure.ac
24+++ b/configure.ac
25@@ -472,19 +472,6 @@ if test "x$build_dtls" = "xyes"; then
26 have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
27 fi
28
29- # The user wants to use explicit TinyDTLS if '--with-tinydtls was set'.
30- if test "x$with_tinydtls" = "xyes" ; then
31- if test -d "$srcdir/ext/tinydtls"; then
32- AC_CONFIG_SUBDIRS([ext/tinydtls])
33- have_tinydtls="yes"
34- else
35- have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
36- fi
37- have_gnutls="no" # don't confuse AC_MSG_RESULT at the end of the script
38- have_openssl="no" # don't confuse AC_MSG_RESULT at the end of the script
39- have_mbedtls="no" # don't confuse AC_MSG_RESULT at the end of the script
40- fi
41-
42 if test "$TLSCOUNT" -eq 0; then
43 # The user hasn't requested the use of a specific cryptography library
44 # we try first GnuTLS for usability ...
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
new file mode 100644
index 0000000000..b56ffe68f3
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3if /usr/lib/libcoap/ptest/testdriver; then
4 echo "PASS: libcoap"
5else
6 echo "FAIL: libcoap"
7fi
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
new file mode 100644
index 0000000000..aba81d126a
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
@@ -0,0 +1,58 @@
1SUMMARY = "A C implementation of the Constrained Application Protocol"
2DESCRIPTION = "libcoap implements a lightweight application-protocol for \
3devices that are constrained their resources such as computing power, \
4RF range, memory, bandwith, or network packet sizes."
5HOMEPAGE ="https://libcoap.net/"
6
7LICENSE = "BSD-2-Clause & BSD-1-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=e44b3af4925ec58e9f49b9ff143b5493"
9
10SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
11 file://0001-libcoap-Fix-gnu-configize-error.patch \
12 file://0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch \
13 file://run-ptest \
14 "
15SRCREV = "1da37b9abbe871675d5939395b498324ccc8ecfe"
16
17S = "${WORKDIR}/git"
18
19inherit autotools manpages pkgconfig ptest
20
21PACKAGECONFIG ?= "\
22 async openssl tcp \
23 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
24"
25PACKAGECONFIG[async] = "--enable-async,--disable-async"
26PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,openssl mbedtls"
27PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
28PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,gnutls openssl"
29PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,gnutls mbedtls"
30PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
31PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
32PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
33
34EXTRA_OECONF = "\
35 --with-epoll --enable-add-default-names \
36 --without-tinydtls \
37 ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
38"
39
40python () {
41 if d.getVar('PTEST_ENABLED') == "1":
42 d.setVar('DISABLE_STATIC', '')
43}
44
45export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
46
47do_install_ptest () {
48 install -d ${D}${PTEST_PATH}
49 install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
50 install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
51}
52
53PACKAGE_BEFORE_PN += "\
54 ${PN}-bin \
55"
56
57FILES:${PN}-bin = "${bindir}"
58FILES:${PN}-dev += "${datadir}/${BPN}/examples"