* [meta-oe][kirkstone][PATCH] libcoap: Add recipe
@ 2022-08-16 13:56 Muhammad Hamza
2022-08-17 14:25 ` [OE-core] " Steve Sakoman
0 siblings, 1 reply; 3+ messages in thread
From: Muhammad Hamza @ 2022-08-16 13:56 UTC (permalink / raw)
To: openembedded-core; +Cc: Alex Kiernan, Alex Kiernan, Khem Raj, Muhammad Hamza
From: Alex Kiernan <alex.kiernan@gmail.com>
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.
Upstream-Status: Bacport from
https://github.com/openembedded/meta-openembedded/commit/1556da89029c364bea101e782bdd016b69cddb82
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>
Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com>
---
...alance-SESSIONS_ADD-and-SESSIONS_DEL.patch | 51 ++++++++++++++++
...0001-libcoap-Fix-gnu-configize-error.patch | 44 ++++++++++++++
.../libcoap/libcoap/run-ptest | 7 +++
.../recipes-devtools/libcoap/libcoap_4.3.0.bb | 58 +++++++++++++++++++
4 files changed, 160 insertions(+)
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
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 000000000..c8ac8485a
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
@@ -0,0 +1,51 @@
+From c56a64ff4df7eecb6c88ff929497bcd0d65934f2 Mon Sep 17 00:00:00 2001
+From: Jon Shallow <supjps-libcoap@jpshallow.com>
+Date: Fri, 22 Apr 2022 13:15:39 +0100
+Subject: [PATCH] coap_session.c: Balance SESSIONS_ADD and SESSIONS_DELETE
+ usage
+
+Upstream-Status: Backport [https://github.com/obgm/libcoap/commit/7e20aa9ef17277f39203334404e6c776b1171a7d]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ src/coap_session.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/coap_session.c b/src/coap_session.c
+index 77cae598f0af..536e57573361 100644
+--- a/src/coap_session.c
++++ b/src/coap_session.c
+@@ -813,6 +813,12 @@ coap_session_create_client(
+ return session;
+
+ error:
++ /*
++ * Need to add in the session as coap_session_release()
++ * will call SESSIONS_DELETE in coap_session_free().
++ */
++ if (session)
++ SESSIONS_ADD(ctx->sessions, session);
+ coap_session_release(session);
+ return NULL;
+ }
+@@ -1133,11 +1139,17 @@ coap_session_t *coap_new_server_session(
+ if (session) {
+ coap_log(LOG_DEBUG, "***%s: new incoming session\n",
+ coap_session_str(session));
++ /* Returned session may already have been released and is now NULL */
+ session = coap_session_accept(session);
+ }
+ return session;
+
+ error:
++ /*
++ * Need to add in the session as coap_session_release()
++ * will call SESSIONS_DELETE in coap_session_free().
++ */
++ SESSIONS_ADD(ep->sessions, session);
+ coap_session_free(session);
+ return NULL;
+ }
+--
+2.35.1
+
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 000000000..64f8d3acc
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
@@ -0,0 +1,44 @@
+From 25f1bebf1bc4c8da47f976d24a7a424253744e2e Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 24 Mar 2021 09:10:17 +0000
+Subject: [PATCH] libcoap: Fix gnu-configize error
+
+Fix:
+
+ autoreconf: running: gnu-configize
+ gnu-configize: 'configure.ac' or 'configure.in' is required
+ autoreconf: gnu-configize failed with exit status: 1
+
+We're not pulling in the ext/tinydtls submodule, so this fails.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ configure.ac | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9f51f4c67557..559808e03aa2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -472,19 +472,6 @@ if test "x$build_dtls" = "xyes"; then
+ have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+ fi
+
+- # The user wants to use explicit TinyDTLS if '--with-tinydtls was set'.
+- if test "x$with_tinydtls" = "xyes" ; then
+- if test -d "$srcdir/ext/tinydtls"; then
+- AC_CONFIG_SUBDIRS([ext/tinydtls])
+- have_tinydtls="yes"
+- else
+- have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- fi
+- have_gnutls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- have_openssl="no" # don't confuse AC_MSG_RESULT at the end of the script
+- have_mbedtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- fi
+-
+ if test "$TLSCOUNT" -eq 0; then
+ # The user hasn't requested the use of a specific cryptography library
+ # 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 000000000..b56ffe68f
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if /usr/lib/libcoap/ptest/testdriver; then
+ echo "PASS: libcoap"
+else
+ echo "FAIL: libcoap"
+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 000000000..aba81d126
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
@@ -0,0 +1,58 @@
+SUMMARY = "A C implementation of the Constrained Application Protocol"
+DESCRIPTION = "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."
+HOMEPAGE ="https://libcoap.net/"
+
+LICENSE = "BSD-2-Clause & BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e44b3af4925ec58e9f49b9ff143b5493"
+
+SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
+ file://0001-libcoap-Fix-gnu-configize-error.patch \
+ file://0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch \
+ file://run-ptest \
+ "
+SRCREV = "1da37b9abbe871675d5939395b498324ccc8ecfe"
+
+S = "${WORKDIR}/git"
+
+inherit autotools manpages pkgconfig ptest
+
+PACKAGECONFIG ?= "\
+ async openssl tcp \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[async] = "--enable-async,--disable-async"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,openssl mbedtls"
+PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
+PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,gnutls openssl"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,gnutls mbedtls"
+PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
+PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
+
+EXTRA_OECONF = "\
+ --with-epoll --enable-add-default-names \
+ --without-tinydtls \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
+"
+
+python () {
+ if d.getVar('PTEST_ENABLED') == "1":
+ d.setVar('DISABLE_STATIC', '')
+}
+
+export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
+ install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
+}
+
+PACKAGE_BEFORE_PN += "\
+ ${PN}-bin \
+"
+
+FILES:${PN}-bin = "${bindir}"
+FILES:${PN}-dev += "${datadir}/${BPN}/examples"
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [OE-core] [meta-oe][kirkstone][PATCH] libcoap: Add recipe
2022-08-16 13:56 [meta-oe][kirkstone][PATCH] libcoap: Add recipe Muhammad Hamza
@ 2022-08-17 14:25 ` Steve Sakoman
0 siblings, 0 replies; 3+ messages in thread
From: Steve Sakoman @ 2022-08-17 14:25 UTC (permalink / raw)
To: Muhammad Hamza; +Cc: openembedded-core, Alex Kiernan, Alex Kiernan, Khem Raj
This is a patch for meta-openembedded (not oe-core), so it should be
sent to openembedded-devel@lists.openembedded.org. Otherwise the
meta-openembedded maintainer may not see it!
Steve
On Tue, Aug 16, 2022 at 3:57 AM Muhammad Hamza
<Muhammad_Hamza@mentor.com> wrote:
>
> From: Alex Kiernan <alex.kiernan@gmail.com>
>
> 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.
>
> Upstream-Status: Bacport from
> https://github.com/openembedded/meta-openembedded/commit/1556da89029c364bea101e782bdd016b69cddb82
>
> 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>
> Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com>
> ---
> ...alance-SESSIONS_ADD-and-SESSIONS_DEL.patch | 51 ++++++++++++++++
> ...0001-libcoap-Fix-gnu-configize-error.patch | 44 ++++++++++++++
> .../libcoap/libcoap/run-ptest | 7 +++
> .../recipes-devtools/libcoap/libcoap_4.3.0.bb | 58 +++++++++++++++++++
> 4 files changed, 160 insertions(+)
> create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
> create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
> create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
> create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
>
> 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 000000000..c8ac8485a
> --- /dev/null
> +++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
> @@ -0,0 +1,51 @@
> +From c56a64ff4df7eecb6c88ff929497bcd0d65934f2 Mon Sep 17 00:00:00 2001
> +From: Jon Shallow <supjps-libcoap@jpshallow.com>
> +Date: Fri, 22 Apr 2022 13:15:39 +0100
> +Subject: [PATCH] coap_session.c: Balance SESSIONS_ADD and SESSIONS_DELETE
> + usage
> +
> +Upstream-Status: Backport [https://github.com/obgm/libcoap/commit/7e20aa9ef17277f39203334404e6c776b1171a7d]
> +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> +Signed-off-by: Alex Kiernan <alexk@zuma.ai>
> +---
> + src/coap_session.c | 12 ++++++++++++
> + 1 file changed, 12 insertions(+)
> +
> +diff --git a/src/coap_session.c b/src/coap_session.c
> +index 77cae598f0af..536e57573361 100644
> +--- a/src/coap_session.c
> ++++ b/src/coap_session.c
> +@@ -813,6 +813,12 @@ coap_session_create_client(
> + return session;
> +
> + error:
> ++ /*
> ++ * Need to add in the session as coap_session_release()
> ++ * will call SESSIONS_DELETE in coap_session_free().
> ++ */
> ++ if (session)
> ++ SESSIONS_ADD(ctx->sessions, session);
> + coap_session_release(session);
> + return NULL;
> + }
> +@@ -1133,11 +1139,17 @@ coap_session_t *coap_new_server_session(
> + if (session) {
> + coap_log(LOG_DEBUG, "***%s: new incoming session\n",
> + coap_session_str(session));
> ++ /* Returned session may already have been released and is now NULL */
> + session = coap_session_accept(session);
> + }
> + return session;
> +
> + error:
> ++ /*
> ++ * Need to add in the session as coap_session_release()
> ++ * will call SESSIONS_DELETE in coap_session_free().
> ++ */
> ++ SESSIONS_ADD(ep->sessions, session);
> + coap_session_free(session);
> + return NULL;
> + }
> +--
> +2.35.1
> +
> 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 000000000..64f8d3acc
> --- /dev/null
> +++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
> @@ -0,0 +1,44 @@
> +From 25f1bebf1bc4c8da47f976d24a7a424253744e2e Mon Sep 17 00:00:00 2001
> +From: Alex Kiernan <alex.kiernan@gmail.com>
> +Date: Wed, 24 Mar 2021 09:10:17 +0000
> +Subject: [PATCH] libcoap: Fix gnu-configize error
> +
> +Fix:
> +
> + autoreconf: running: gnu-configize
> + gnu-configize: 'configure.ac' or 'configure.in' is required
> + autoreconf: gnu-configize failed with exit status: 1
> +
> +We're not pulling in the ext/tinydtls submodule, so this fails.
> +
> +Upstream-Status: Inappropriate [oe-specific]
> +Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> +Signed-off-by: Alex Kiernan <alexk@zuma.ai>
> +---
> + configure.ac | 13 -------------
> + 1 file changed, 13 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 9f51f4c67557..559808e03aa2 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -472,19 +472,6 @@ if test "x$build_dtls" = "xyes"; then
> + have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
> + fi
> +
> +- # The user wants to use explicit TinyDTLS if '--with-tinydtls was set'.
> +- if test "x$with_tinydtls" = "xyes" ; then
> +- if test -d "$srcdir/ext/tinydtls"; then
> +- AC_CONFIG_SUBDIRS([ext/tinydtls])
> +- have_tinydtls="yes"
> +- else
> +- have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
> +- fi
> +- have_gnutls="no" # don't confuse AC_MSG_RESULT at the end of the script
> +- have_openssl="no" # don't confuse AC_MSG_RESULT at the end of the script
> +- have_mbedtls="no" # don't confuse AC_MSG_RESULT at the end of the script
> +- fi
> +-
> + if test "$TLSCOUNT" -eq 0; then
> + # The user hasn't requested the use of a specific cryptography library
> + # 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 000000000..b56ffe68f
> --- /dev/null
> +++ b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
> @@ -0,0 +1,7 @@
> +#!/bin/sh
> +
> +if /usr/lib/libcoap/ptest/testdriver; then
> + echo "PASS: libcoap"
> +else
> + echo "FAIL: libcoap"
> +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 000000000..aba81d126
> --- /dev/null
> +++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
> @@ -0,0 +1,58 @@
> +SUMMARY = "A C implementation of the Constrained Application Protocol"
> +DESCRIPTION = "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."
> +HOMEPAGE ="https://libcoap.net/"
> +
> +LICENSE = "BSD-2-Clause & BSD-1-Clause"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=e44b3af4925ec58e9f49b9ff143b5493"
> +
> +SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
> + file://0001-libcoap-Fix-gnu-configize-error.patch \
> + file://0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch \
> + file://run-ptest \
> + "
> +SRCREV = "1da37b9abbe871675d5939395b498324ccc8ecfe"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit autotools manpages pkgconfig ptest
> +
> +PACKAGECONFIG ?= "\
> + async openssl tcp \
> + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
> +"
> +PACKAGECONFIG[async] = "--enable-async,--disable-async"
> +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,openssl mbedtls"
> +PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
> +PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,gnutls openssl"
> +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,gnutls mbedtls"
> +PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
> +PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
> +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
> +
> +EXTRA_OECONF = "\
> + --with-epoll --enable-add-default-names \
> + --without-tinydtls \
> + ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
> +"
> +
> +python () {
> + if d.getVar('PTEST_ENABLED') == "1":
> + d.setVar('DISABLE_STATIC', '')
> +}
> +
> +export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
> +
> +do_install_ptest () {
> + install -d ${D}${PTEST_PATH}
> + install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
> + install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
> +}
> +
> +PACKAGE_BEFORE_PN += "\
> + ${PN}-bin \
> +"
> +
> +FILES:${PN}-bin = "${bindir}"
> +FILES:${PN}-dev += "${datadir}/${BPN}/examples"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#169436): https://lists.openembedded.org/g/openembedded-core/message/169436
> Mute This Topic: https://lists.openembedded.org/mt/93059032/3620601
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [steve@sakoman.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [meta-oe][kirkstone][PATCH] libcoap: Add recipe
@ 2022-08-18 5:06 Muhammad Hamza
0 siblings, 0 replies; 3+ messages in thread
From: Muhammad Hamza @ 2022-08-18 5:06 UTC (permalink / raw)
To: openembedded-devel; +Cc: Alex Kiernan, Alex Kiernan, Khem Raj, Muhammad Hamza
From: Alex Kiernan <alex.kiernan@gmail.com>
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.
Upstream-Status: Backport from
https://github.com/openembedded/meta-openembedded/commit/1556da89029c364bea101e782bdd016b69cddb82
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>
Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com>
---
...alance-SESSIONS_ADD-and-SESSIONS_DEL.patch | 51 ++++++++++++++++
...0001-libcoap-Fix-gnu-configize-error.patch | 44 ++++++++++++++
.../libcoap/libcoap/run-ptest | 7 +++
.../recipes-devtools/libcoap/libcoap_4.3.0.bb | 58 +++++++++++++++++++
4 files changed, 160 insertions(+)
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
create mode 100644 meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
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 000000000..c8ac8485a
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch
@@ -0,0 +1,51 @@
+From c56a64ff4df7eecb6c88ff929497bcd0d65934f2 Mon Sep 17 00:00:00 2001
+From: Jon Shallow <supjps-libcoap@jpshallow.com>
+Date: Fri, 22 Apr 2022 13:15:39 +0100
+Subject: [PATCH] coap_session.c: Balance SESSIONS_ADD and SESSIONS_DELETE
+ usage
+
+Upstream-Status: Backport [https://github.com/obgm/libcoap/commit/7e20aa9ef17277f39203334404e6c776b1171a7d]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ src/coap_session.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/coap_session.c b/src/coap_session.c
+index 77cae598f0af..536e57573361 100644
+--- a/src/coap_session.c
++++ b/src/coap_session.c
+@@ -813,6 +813,12 @@ coap_session_create_client(
+ return session;
+
+ error:
++ /*
++ * Need to add in the session as coap_session_release()
++ * will call SESSIONS_DELETE in coap_session_free().
++ */
++ if (session)
++ SESSIONS_ADD(ctx->sessions, session);
+ coap_session_release(session);
+ return NULL;
+ }
+@@ -1133,11 +1139,17 @@ coap_session_t *coap_new_server_session(
+ if (session) {
+ coap_log(LOG_DEBUG, "***%s: new incoming session\n",
+ coap_session_str(session));
++ /* Returned session may already have been released and is now NULL */
+ session = coap_session_accept(session);
+ }
+ return session;
+
+ error:
++ /*
++ * Need to add in the session as coap_session_release()
++ * will call SESSIONS_DELETE in coap_session_free().
++ */
++ SESSIONS_ADD(ep->sessions, session);
+ coap_session_free(session);
+ return NULL;
+ }
+--
+2.35.1
+
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 000000000..64f8d3acc
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/0001-libcoap-Fix-gnu-configize-error.patch
@@ -0,0 +1,44 @@
+From 25f1bebf1bc4c8da47f976d24a7a424253744e2e Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 24 Mar 2021 09:10:17 +0000
+Subject: [PATCH] libcoap: Fix gnu-configize error
+
+Fix:
+
+ autoreconf: running: gnu-configize
+ gnu-configize: 'configure.ac' or 'configure.in' is required
+ autoreconf: gnu-configize failed with exit status: 1
+
+We're not pulling in the ext/tinydtls submodule, so this fails.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+Signed-off-by: Alex Kiernan <alexk@zuma.ai>
+---
+ configure.ac | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9f51f4c67557..559808e03aa2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -472,19 +472,6 @@ if test "x$build_dtls" = "xyes"; then
+ have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+ fi
+
+- # The user wants to use explicit TinyDTLS if '--with-tinydtls was set'.
+- if test "x$with_tinydtls" = "xyes" ; then
+- if test -d "$srcdir/ext/tinydtls"; then
+- AC_CONFIG_SUBDIRS([ext/tinydtls])
+- have_tinydtls="yes"
+- else
+- have_tinydtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- fi
+- have_gnutls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- have_openssl="no" # don't confuse AC_MSG_RESULT at the end of the script
+- have_mbedtls="no" # don't confuse AC_MSG_RESULT at the end of the script
+- fi
+-
+ if test "$TLSCOUNT" -eq 0; then
+ # The user hasn't requested the use of a specific cryptography library
+ # 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 000000000..b56ffe68f
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if /usr/lib/libcoap/ptest/testdriver; then
+ echo "PASS: libcoap"
+else
+ echo "FAIL: libcoap"
+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 000000000..aba81d126
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.0.bb
@@ -0,0 +1,58 @@
+SUMMARY = "A C implementation of the Constrained Application Protocol"
+DESCRIPTION = "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."
+HOMEPAGE ="https://libcoap.net/"
+
+LICENSE = "BSD-2-Clause & BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e44b3af4925ec58e9f49b9ff143b5493"
+
+SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
+ file://0001-libcoap-Fix-gnu-configize-error.patch \
+ file://0001-coap_session.c-Balance-SESSIONS_ADD-and-SESSIONS_DEL.patch \
+ file://run-ptest \
+ "
+SRCREV = "1da37b9abbe871675d5939395b498324ccc8ecfe"
+
+S = "${WORKDIR}/git"
+
+inherit autotools manpages pkgconfig ptest
+
+PACKAGECONFIG ?= "\
+ async openssl tcp \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[async] = "--enable-async,--disable-async"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,openssl mbedtls"
+PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
+PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,gnutls openssl"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,gnutls mbedtls"
+PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
+PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
+
+EXTRA_OECONF = "\
+ --with-epoll --enable-add-default-names \
+ --without-tinydtls \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
+"
+
+python () {
+ if d.getVar('PTEST_ENABLED') == "1":
+ d.setVar('DISABLE_STATIC', '')
+}
+
+export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
+ install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
+}
+
+PACKAGE_BEFORE_PN += "\
+ ${PN}-bin \
+"
+
+FILES:${PN}-bin = "${bindir}"
+FILES:${PN}-dev += "${datadir}/${BPN}/examples"
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-08-18 5:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-16 13:56 [meta-oe][kirkstone][PATCH] libcoap: Add recipe Muhammad Hamza
2022-08-17 14:25 ` [OE-core] " Steve Sakoman
2022-08-18 5:06 Muhammad Hamza
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.