diff options
| author | Alex Kiernan <alex.kiernan@gmail.com> | 2022-05-07 12:32:04 +0100 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2022-05-07 18:47:16 -0700 |
| commit | 1556da89029c364bea101e782bdd016b69cddb82 (patch) | |
| tree | 1083514848104a7736cbdd882fb2e3c6cd2601b9 /meta-networking | |
| parent | 80a5a789fb66fb6345ff35901e369b0b711b1d68 (diff) | |
| download | meta-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')
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 @@ | |||
| 1 | From c56a64ff4df7eecb6c88ff929497bcd0d65934f2 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jon Shallow <supjps-libcoap@jpshallow.com> | ||
| 3 | Date: Fri, 22 Apr 2022 13:15:39 +0100 | ||
| 4 | Subject: [PATCH] coap_session.c: Balance SESSIONS_ADD and SESSIONS_DELETE | ||
| 5 | usage | ||
| 6 | |||
| 7 | Upstream-Status: Backport [https://github.com/obgm/libcoap/commit/7e20aa9ef17277f39203334404e6c776b1171a7d] | ||
| 8 | Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> | ||
| 9 | Signed-off-by: Alex Kiernan <alexk@zuma.ai> | ||
| 10 | --- | ||
| 11 | src/coap_session.c | 12 ++++++++++++ | ||
| 12 | 1 file changed, 12 insertions(+) | ||
| 13 | |||
| 14 | diff --git a/src/coap_session.c b/src/coap_session.c | ||
| 15 | index 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 | -- | ||
| 50 | 2.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 @@ | |||
| 1 | From 25f1bebf1bc4c8da47f976d24a7a424253744e2e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Alex Kiernan <alex.kiernan@gmail.com> | ||
| 3 | Date: Wed, 24 Mar 2021 09:10:17 +0000 | ||
| 4 | Subject: [PATCH] libcoap: Fix gnu-configize error | ||
| 5 | |||
| 6 | Fix: | ||
| 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 | |||
| 12 | We're not pulling in the ext/tinydtls submodule, so this fails. | ||
| 13 | |||
| 14 | Upstream-Status: Inappropriate [oe-specific] | ||
| 15 | Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> | ||
| 16 | Signed-off-by: Alex Kiernan <alexk@zuma.ai> | ||
| 17 | --- | ||
| 18 | configure.ac | 13 ------------- | ||
| 19 | 1 file changed, 13 deletions(-) | ||
| 20 | |||
| 21 | diff --git a/configure.ac b/configure.ac | ||
| 22 | index 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 | |||
| 3 | if /usr/lib/libcoap/ptest/testdriver; then | ||
| 4 | echo "PASS: libcoap" | ||
| 5 | else | ||
| 6 | echo "FAIL: libcoap" | ||
| 7 | fi | ||
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 @@ | |||
| 1 | SUMMARY = "A C implementation of the Constrained Application Protocol" | ||
| 2 | DESCRIPTION = "libcoap implements a lightweight application-protocol for \ | ||
| 3 | devices that are constrained their resources such as computing power, \ | ||
| 4 | RF range, memory, bandwith, or network packet sizes." | ||
| 5 | HOMEPAGE ="https://libcoap.net/" | ||
| 6 | |||
| 7 | LICENSE = "BSD-2-Clause & BSD-1-Clause" | ||
| 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e44b3af4925ec58e9f49b9ff143b5493" | ||
| 9 | |||
| 10 | SRC_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 | " | ||
| 15 | SRCREV = "1da37b9abbe871675d5939395b498324ccc8ecfe" | ||
| 16 | |||
| 17 | S = "${WORKDIR}/git" | ||
| 18 | |||
| 19 | inherit autotools manpages pkgconfig ptest | ||
| 20 | |||
| 21 | PACKAGECONFIG ?= "\ | ||
| 22 | async openssl tcp \ | ||
| 23 | ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ | ||
| 24 | " | ||
| 25 | PACKAGECONFIG[async] = "--enable-async,--disable-async" | ||
| 26 | PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,openssl mbedtls" | ||
| 27 | PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native" | ||
| 28 | PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,gnutls openssl" | ||
| 29 | PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,gnutls mbedtls" | ||
| 30 | PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack" | ||
| 31 | PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp" | ||
| 32 | PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit" | ||
| 33 | |||
| 34 | EXTRA_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 | |||
| 40 | python () { | ||
| 41 | if d.getVar('PTEST_ENABLED') == "1": | ||
| 42 | d.setVar('DISABLE_STATIC', '') | ||
| 43 | } | ||
| 44 | |||
| 45 | export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog" | ||
| 46 | |||
| 47 | do_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 | |||
| 53 | PACKAGE_BEFORE_PN += "\ | ||
| 54 | ${PN}-bin \ | ||
| 55 | " | ||
| 56 | |||
| 57 | FILES:${PN}-bin = "${bindir}" | ||
| 58 | FILES:${PN}-dev += "${datadir}/${BPN}/examples" | ||
