package/libtracefs: new package

Introduce the libtracefs library, that is used to be bundled with the
trace-cmd tool. This library is now used by several tools and libraries
such as trace-cmd and rtla, and is used as an interface to the ftrace
kernel subsystem through tracefs.

To build with meson, this package requires to disable documentation
generation, and since this is not possible add a local patch pending
upstream that adds -Ddoc=false support to libtracefs.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
[Giulio:
	- bump version to 1.7.0 and add hash file
	- move to meson build system
]
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Maxime Chevallier 2023-10-24 16:42:54 +02:00 committed by Yann E. MORIN
parent 1474f1b34b
commit b1dbd3f679
6 changed files with 84 additions and 0 deletions

View File

@ -1236,6 +1236,7 @@ F: package/libnspr/
F: package/libnss/
F: package/libnvme/
F: package/libtraceevent/
F: package/libtracefs
F: package/mali-driver/
F: package/minicom/
F: package/mongoose/
@ -2134,6 +2135,7 @@ F: package/timescaledb/
N: Maxime Chevallier <maxime.chevallier@bootlin.com>
F: package/libtraceevent/
F: package/libtracefs
N: Michael Durrant <mdurrant@arcturusnetworks.com>
F: board/arcturus/

View File

@ -118,6 +118,7 @@ menu "Debugging, profiling and benchmark"
source "package/latencytop/Config.in"
source "package/libbpf/Config.in"
source "package/libtraceevent/Config.in"
source "package/libtracefs/Config.in"
source "package/lmbench/Config.in"
source "package/lsof/Config.in"
source "package/ltp-testsuite/Config.in"

View File

@ -0,0 +1,51 @@
From 881e23ed774360f93ca81f820d7897bd9bbd6d63 Mon Sep 17 00:00:00 2001
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: Sat, 30 Sep 2023 22:40:08 +0200
Subject: [PATCH] libtracefs: add option to disable documentation
On some Linux environment builder(i.e. Buildroot) host asciidoc is not
provided since by default all man/docs are not installed to target but
meson.build at the moment build ascii and html documentation and
requires asciidoc making the building to fail. So let's add doc option
set to true by default to let the user to override it and not produce
the documentation.
Upstream: https://patchwork.kernel.org/project/linux-trace-devel/patch/20230930204008.2528607-1-giulio.benetti@benettiengineering.com/
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
meson.build | 3 +++
meson_options.txt | 2 ++
2 files changed, 5 insertions(+)
diff --git a/meson.build b/meson.build
index 9d42d78..f1e492e 100644
--- a/meson.build
+++ b/meson.build
@@ -39,6 +39,8 @@ if cunit_dep.found()
subdir('utest')
endif
subdir('samples')
+
+if get_option('doc')
subdir('Documentation')
custom_target(
@@ -46,3 +48,4 @@ custom_target(
output: 'docs',
depends: [html, man],
command: ['echo'])
+endif
diff --git a/meson_options.txt b/meson_options.txt
index 1d92c28..5533a88 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -14,3 +14,5 @@ option('man-bold-literal', type : 'boolean', value : false,
description : 'enable bold literals')
option('docbook-suppress-sp', type : 'boolean', value : false,
description : 'docbook suppress sp')
+option('doc', type : 'boolean', value: true,
+ description : 'produce documentation')
--
2.34.1

View File

@ -0,0 +1,8 @@
config BR2_PACKAGE_LIBTRACEFS
bool "libtracefs"
select BR2_PACKAGE_LIBTRACEEVENT
help
libtracefs is used to easily interface with the ftrace
interface through the tracefs virtual filesystem.
https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/

View File

@ -0,0 +1,4 @@
# Locally computed
sha256 411fcbf3434ecbaefa6c2b1bf092266293a672e2d7ee46fdd6b402753cb8bd16 libtracefs-1.7.0.tar.gz
sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 GPL-2.0
sha256 0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca LGPL-2.1

View File

@ -0,0 +1,18 @@
################################################################################
#
# libtracefs
#
################################################################################
LIBTRACEFS_VERSION = 1.7.0
LIBTRACEFS_SITE = https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot
LIBTRACEFS_INSTALL_STAGING = YES
LIBTRACEFS_LICENSE = GPL-2.0, LGPL-2.1
LIBTRACEFS_LICENSE_FILES = LICENSES/GPL-2.0 LICENSES/LGPL-2.1
LIBTRACEFS_DEPENDENCIES = host-bison host-flex host-pkgconf libtraceevent
LIBTRACEFS_CONF_OPTS = \
-Ddoc=false
$(eval $(meson-package))