]> code.ossystems Code Review - openembedded-core.git/commitdiff
babeltrace2: added first version, 2.0.1
authorAnders Wallin <wallinux@gmail.com>
Thu, 5 Mar 2020 12:06:29 +0000 (13:06 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 6 Mar 2020 08:19:12 +0000 (08:19 +0000)
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.

Signed-off-by: Anders Wallin <wallinux@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/distro/include/distro_alias.inc
meta/conf/distro/include/maintainers.inc
meta/conf/distro/include/ptest-packagelists.inc
meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch [new file with mode: 0644]
meta/recipes-kernel/lttng/babeltrace2/run-ptest [new file with mode: 0755]
meta/recipes-kernel/lttng/babeltrace2_2.0.1.bb [new file with mode: 0644]

index 79ebcaee299b600e1d12a9a8bd0ac4f527b0ca01..0e4a9a9f8fee5c7942ed756d74aa487bf22bcbf2 100644 (file)
@@ -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"
index 10095ffe76dcb7efe3f6b0acac1e64ebbe426a86..adb18228e7743f9e338332f18b1ed1dc0d36a007 100644 (file)
@@ -59,6 +59,7 @@ RECIPE_MAINTAINER_pn-automake = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER_pn-avahi = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-avahi-ui = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-babeltrace2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-base-files = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-base-passwd = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-bash = "Hongxu Jia <hongxu.jia@windriver.com>"
index 4afac58e3a08bdb1ab6cad75ddbfb3bfacf769b4..d6f3aafc7f2469fb7e81afe2afbf65ec639f679c 100644 (file)
@@ -64,6 +64,7 @@ PTESTS_FAST = "\
 
 PTESTS_SLOW = "\
     babeltrace-ptest \
+    babeltrace2-ptest \
     busybox-ptest \
     dbus-test-ptest \
     e2fsprogs-ptest \
index 984c2fac92cccdbdfad1eb4d8e88273b3a077b1e..ac180b542ad185ff20f76ced67491e6f608f3795 100644 (file)
@@ -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 (file)
index 0000000..805dde8
--- /dev/null
@@ -0,0 +1,28 @@
+From 582713cc9a013481eeef253195d644020f637ec4 Mon Sep 17 00:00:00 2001
+Message-Id: <582713cc9a013481eeef253195d644020f637ec4.1583403622.git.wallinux@gmail.com>
+From: Anders Wallin <wallinux@gmail.com>
+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 <wallinux@gmail.com>
+---
+ 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 (executable)
index 0000000..72fe223
--- /dev/null
@@ -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 (file)
index 0000000..16953d6
--- /dev/null
@@ -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(?P<pver>2(\.\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/*
+}