| 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-3-Clause" |
| LIC_FILES_CHKSUM = "file://LICENSE;md5=05d17535846895e23ea4c79b16a9e904" |
| |
| SRC_URI = "git://github.com/obgm/libcoap.git;branch=release-4.3.5-patches;protocol=https;tag=v${PV} \ |
| file://run-ptest \ |
| " |
| SRCREV = "851533c3cf63d16984d370ce39d586ecb3694971" |
| |
| # patch releases often use alphabetical suffixes |
| CVE_VERSION_SUFFIX = "alphabetical" |
| |
| inherit autotools manpages pkgconfig ptest |
| |
| DEPENDS += "ctags-native" |
| |
| 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 wolfssl" |
| 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 wolfssl" |
| PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,,gnutls mbedtls wolfssl" |
| PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack" |
| PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp" |
| PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit" |
| PACKAGECONFIG[wolfssl] = "--with-wolfssl,--without-wolfssl,wolfssl,,,gnutls mbedtls openssl" |
| |
| EXTRA_OECONF = "\ |
| --with-epoll --enable-add-default-names \ |
| --without-tinydtls --without-submodule-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_compile:prepend() { |
| oe_runmake update-map-file |
| } |
| |
| do_install_ptest () { |
| install -d ${D}${PTEST_PATH} |
| install -m 0755 ${UNPACKDIR}/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" |
| |
| CVE_STATUS[CVE-2025-50518] = "disputed: happens only when library is used incorrectly" |
| CVE_STATUS[CVE-2026-29013] = "fixed-version: fixed in 4.3.5b" |