From 12eac40aa67d7a85d96c2dbb5d0c91747f47acec Mon Sep 17 00:00:00 2001 From: Anders Wallin Date: Thu, 5 Mar 2020 13:06:29 +0100 Subject: babeltrace2: added first version, 2.0.1 Babeltrace 1 vs. Babeltrace 2 The Babeltrace project exists since 2010. In 2020, Babeltrace 2 was released. Babeltrace 2 is a complete rewrite of the library, Python bindings, and CLI. It is plugin based and offers much more features and potential than Babeltrace 1. Because Babeltrace 2 is still a young released project, some distributions still provide packages for the Babeltrace 1 project. Both projects can coexist on the same system as there are no common installed files. (From OE-Core rev: be52889ba5e5a2cf02f50b3f3acee8ca72ec494d) Signed-off-by: Anders Wallin Signed-off-by: Richard Purdie --- meta/conf/distro/include/distro_alias.inc | 1 + meta/conf/distro/include/maintainers.inc | 1 + meta/conf/distro/include/ptest-packagelists.inc | 1 + .../packagegroup-core-tools-profile.bb | 2 + ...s-do-not-run-test-applications-from-.libs.patch | 28 +++++++ meta/recipes-kernel/lttng/babeltrace2/run-ptest | 9 +++ meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb | 92 ++++++++++++++++++++++ 7 files changed, 134 insertions(+) create mode 100644 meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch create mode 100755 meta/recipes-kernel/lttng/babeltrace2/run-ptest create mode 100644 meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc index 79ebcaee29..0e4a9a9f8f 100644 --- a/meta/conf/distro/include/distro_alias.inc +++ b/meta/conf/distro/include/distro_alias.inc @@ -15,6 +15,7 @@ DISTRO_PN_ALIAS_pn-alsa-utils-scripts = "OE-Core" DISTRO_PN_ALIAS_pn-atk = "Fedora=atk OpenSuSE=atk" DISTRO_PN_ALIAS_pn-avahi-ui = "Ubuntu=avahi-discover Debian=avahi-discover" DISTRO_PN_ALIAS_pn-babeltrace = "OSPDT" +DISTRO_PN_ALIAS_pn-babeltrace2 = "OSPDT" DISTRO_PN_ALIAS_pn-bjam = "OpenSuSE=boost-jam Debian=bjam" DISTRO_PN_ALIAS_pn-blktool = "Debian=blktool Mandriva=blktool" DISTRO_PN_ALIAS_pn-bluez5 = "Fedora=bluez Opensuse=bluez" diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 10095ffe76..adb18228e7 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -59,6 +59,7 @@ RECIPE_MAINTAINER_pn-automake = "Robert Yang " RECIPE_MAINTAINER_pn-avahi = "Yi Zhao " RECIPE_MAINTAINER_pn-avahi-ui = "Yi Zhao " RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-babeltrace2 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-base-files = "Anuj Mittal " RECIPE_MAINTAINER_pn-base-passwd = "Anuj Mittal " RECIPE_MAINTAINER_pn-bash = "Hongxu Jia " diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 4afac58e3a..d6f3aafc7f 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -64,6 +64,7 @@ PTESTS_FAST = "\ PTESTS_SLOW = "\ babeltrace-ptest \ + babeltrace2-ptest \ busybox-ptest \ dbus-test-ptest \ e2fsprogs-ptest \ diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb index 984c2fac92..ac180b542a 100644 --- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb +++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb @@ -46,6 +46,7 @@ LTTNGMODULES = "lttng-modules" LTTNGMODULES_arc = "" BABELTRACE = "babeltrace" +BABELTRACE2 = "babeltrace2" # valgrind does not work on the following configurations/architectures @@ -69,6 +70,7 @@ RDEPENDS_${PN} = "\ ${LTTNGTOOLS} \ ${LTTNGMODULES} \ ${BABELTRACE} \ + ${BABELTRACE2} \ ${SYSTEMTAP} \ ${VALGRIND} \ " diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch new file mode 100644 index 0000000000..805dde8064 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch @@ -0,0 +1,28 @@ +From 582713cc9a013481eeef253195d644020f637ec4 Mon Sep 17 00:00:00 2001 +Message-Id: <582713cc9a013481eeef253195d644020f637ec4.1583403622.git.wallinux@gmail.com> +From: Anders Wallin +Date: Thu, 5 Mar 2020 11:20:04 +0100 +Subject: [PATCH] tests: do not run test applications from .libs + +Cross compile specific change + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Anders Wallin +--- + tests/lib/test_plugin | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/lib/test_plugin b/tests/lib/test_plugin +index 652c90cc..1f817c50 100755 +--- a/tests/lib/test_plugin ++++ b/tests/lib/test_plugin +@@ -26,4 +26,4 @@ fi + # shellcheck source=../utils/utils.sh + source "$UTILSSH" + +-"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins/.libs" ++"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins" +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/babeltrace2/run-ptest b/meta/recipes-kernel/lttng/babeltrace2/run-ptest new file mode 100755 index 0000000000..72fe223436 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh +# use target=recheck if you want to recheck failing tests +[ "$target" = "" ] && target=check + +# Without --ignore-exit, the tap harness causes any FAILs within a +# test plan to raise ERRORs; this is just noise. +makeargs="LOG_DRIVER_FLAGS=--ignore-exit abs_top_srcdir=$PWD abs_top_builddir=$PWD GREP=grep SED=sed PYTHON=python3" + +exec make -C tests -k -s $makeargs $target 2>/dev/null diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb b/meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb new file mode 100644 index 0000000000..16953d6807 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb @@ -0,0 +1,92 @@ +SUMMARY = "Babeltrace2 - Trace Format Babel Tower" +DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." +HOMEPAGE = "http://babeltrace.org/" +BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" +LICENSE = "MIT & GPLv2 & LGPLv2.1 & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a458c13f18385b7bc5069a6d7b176e" + +DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" + +SRC_URI = "git://git.linuxfoundation.org/diamon/babeltrace.git;branch=stable-2.0 \ + file://run-ptest \ + file://0001-tests-do-not-run-test-applications-from-.libs.patch \ + " +SRCREV = "06df58f89ee51b1a2c6a2c187ec3f15691633910" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P2(\.\d+)+)$" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig ptest + +EXTRA_OECONF = "--disable-debug-info" + +PACKAGECONFIG ??= "manpages" +PACKAGECONFIG[manpages] = ", --disable-man-pages, asciidoc-native xmlto-native" + +FILES_${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a" +FILES_${PN} += "${libdir}/babeltrace2/plugins/*.so" + +ASNEEDED = "" + +RDEPENDS_${PN}-ptest += "bash gawk python3" + +do_compile_ptest () { + make -C tests all +} + +do_install_ptest () { + install -d "${D}${PTEST_PATH}/tests" + + # Copy required files from source directory + for d in $(find "${S}/tests" -type d -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${S}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + find "${S}/tests/$d" -maxdepth 1 -name *.sh \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + find "${S}/tests/$d" -maxdepth 1 -name *.py \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + find "${S}/tests/$d" -maxdepth 1 -name *.expect \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + done + install -d "${D}${PTEST_PATH}/tests/data/ctf-traces/" + cp -a ${S}/tests/data/ctf-traces/* ${D}${PTEST_PATH}/tests/data/ctf-traces/ + + # Copy the tests directory tree and the executables and + # Makefiles found within. + install -D "${B}/tests/Makefile" "${D}${PTEST_PATH}/tests/" + for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${B}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + test -r "${B}/tests/$d/Makefile" && \ + install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" + find "${B}/tests/$d" -maxdepth 1 -name *.sh \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \; + done + + for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do + for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do + cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f + done + done + + # Prevent attempts to update Makefiles during test runs, and + # silence "Making check in $SUBDIR" messages. + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i \ + -e '/Makefile:/,/^$/d' \ + -e '/%: %.in/,/^$/d' \ + -e '/echo "Making $$target in $$subdir"; \\/d' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' \ + -e 's/^all-am:.*/all-am:/' \ + {} + + + # Substitute links to installed binaries. + install -d "${D}${PTEST_PATH}/src/cli/" + ln -s "${bindir}/babeltrace2" ${D}${PTEST_PATH}/src/cli/ + + # Remove architechture specific testfiles + rm -rf ${D}${PTEST_PATH}/tests/data/plugins/flt.lttng-utils.debug-info/* +} -- cgit v1.2.3-54-g00ecf