aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-extended')
-rw-r--r--meta-oe/recipes-extended/libyang/libyang/libyang-skip-pcre2-config-add-stdint-h.patch55
-rw-r--r--meta-oe/recipes-extended/libyang/libyang/run-ptest46
-rw-r--r--meta-oe/recipes-extended/libyang/libyang_2.0.7.bb37
3 files changed, 138 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/libyang/libyang/libyang-skip-pcre2-config-add-stdint-h.patch b/meta-oe/recipes-extended/libyang/libyang/libyang-skip-pcre2-config-add-stdint-h.patch
new file mode 100644
index 0000000000..e3b2d0e022
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang/libyang-skip-pcre2-config-add-stdint-h.patch
@@ -0,0 +1,55 @@
+From c7f3e2a8fe530beec6103cb9071ccc41458879aa Mon Sep 17 00:00:00 2001
+From: Tony Tascioglu <tony.tascioglu@windriver.com>
+Date: Mon, 21 Jun 2021 12:34:22 -0400
+Subject: [PATCH] libyang: fix initial build errors
+
+This patch addresses build errors seen when integrating libyang as a
+recipe.
+
+The call to pcre2-config has been commented out. *-config calls are
+being replaced by pkgconfig, and we want to avoid the binary config
+calls. This call can safely be discarded since it is used to check
+the version of libpcre2 on the system, and all recent YP builds meet
+the minimum required version (v10.21).
+
+There is a missing include statement for stdint.h in utests.h which
+causes build problems. stdint.h is required to be imported by cmocka.h
+prior to the cmocka file. Adding the stdint allows it to build the
+tests correctly
+
+Upstream-Status: Pending
+
+Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
+---
+ CMakeModules/FindPCRE2.cmake | 2 +-
+ tests/utests/utests.h | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeModules/FindPCRE2.cmake b/CMakeModules/FindPCRE2.cmake
+index 8f60daa2..ad014f14 100644
+--- a/CMakeModules/FindPCRE2.cmake
++++ b/CMakeModules/FindPCRE2.cmake
+@@ -12,7 +12,7 @@ FIND_PATH(PCRE2_INCLUDE_DIR pcre2.h)
+ FIND_LIBRARY(PCRE2_LIBRARY NAMES libpcre2.a pcre2-8)
+
+ # Check required version
+-execute_process(COMMAND pcre2-config --version OUTPUT_VARIABLE PCRE2_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
++# execute_process(COMMAND pcre2-config --version OUTPUT_VARIABLE PCRE2_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ # Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE.
+ INCLUDE(FindPackageHandleStandardArgs)
+diff --git a/tests/utests/utests.h b/tests/utests/utests.h
+index 5bea0459..a256120c 100644
+--- a/tests/utests/utests.h
++++ b/tests/utests/utests.h
+@@ -23,6 +23,7 @@
+ #include <stddef.h>
+ #include <stdlib.h>
+
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include <string.h>
+--
+2.32.0
+
diff --git a/meta-oe/recipes-extended/libyang/libyang/run-ptest b/meta-oe/recipes-extended/libyang/libyang/run-ptest
new file mode 100644
index 0000000000..1c9f8f47f7
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang/run-ptest
@@ -0,0 +1,46 @@
+#!/bin/sh
+# Valid tests to run
+tests="utest_binary \
+ utest_bits \
+ utest_common \
+ utest_hash_table \
+ utest_inet_types \
+ utest_int8 \
+ utest_json \
+ utest_list \
+ utest_merge \
+ utest_metadata \
+ utest_parser_yang \
+ utest_parser_yin \
+ utest_pattern \
+ utest_printer_yang \
+ utest_printer_yin \
+ utest_range \
+ utest_schema \
+ utest_set \
+ utest_string \
+ utest_tree_data \
+ utest_tree_schema_compile \
+ utest_types \
+ utest_xml \
+ utest_xpath \
+ utest_yang_types \
+ utest_yanglib"
+
+# cd into right directory
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+# Run specified tests
+for f in $tests
+do
+ if test -e ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ else
+ echo "SKIP: $f"
+ fi
+done
diff --git a/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb b/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb
new file mode 100644
index 0000000000..8e9e8cc02f
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang_2.0.7.bb
@@ -0,0 +1,37 @@
+SUMMARY = "YANG data modeling language library"
+DESCRIPTION = "libyang is a YANG data modelling language parser and toolkit written (and providing API) in C."
+HOMEPAGE = "https://github.com/CESNET/libyang"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f3916d7d8d42a6508d0ea418cfff10ad"
+
+SRCREV = "69d9fff65abb58beb0bb6aa9ecacd572ca1dfc56"
+
+SRC_URI = "git://github.com/CESNET/libyang.git \
+ file://libyang-skip-pcre2-config-add-stdint-h.patch \
+ file://run-ptest \
+ "
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST_riscv32 = "null"
+COMPATIBLE_HOST_armv5 = "null"
+COMPATIBLE_HOST_riscv64 = "null"
+
+# Main dependencies
+inherit cmake pkgconfig lib_package binconfig-disabled ptest
+DEPENDS = "libpcre2"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'cmocka', '', d)}"
+BINCONFIG = "${bindir}/pcre2-config"
+
+# Ptest dependencies
+RDEPENDS_${PN}-ptest += "valgrind"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
+EXTRA_OECMAKE += " ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_BUILD_TESTS=ON', '', d)}"
+
+do_install_ptest () {
+ cp -fR ${B}/tests/ ${D}${PTEST_PATH}/
+}
+