Accepting request 1181395 from home:wagi:branches:benchmark

Mon 14:22:13 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Update to v1.8.0
  * remove: add-explicit-meson-thread-dependency.patch
  * tracefs_follow_event_clear() and tracefs_follow_missed_events_clear()
    API to clean up followers if the tracefs instance is going to be used
    for other iterations
  * tracefs_instance_file_write_number()
    A simple helper function to make it easier to write numbers into the
    tracefs files. It does the conversion from number to string, as the
    files expect strings and not numbers.
  * Add API to work with kbuffer, which gives more control to the application
    and speeds it up:
      tracefs_cpu_read_buf()
      tracefs_cpu_buffered_read_buf()
      tracefs_cpu_flush_buf()
   * tracefs_instance_get_buffer_percent() and tracefs_instance_set_buffer_percent()
     Modify the buffer_percent file that allows readers to block until the buffer
     is filled to a given percent. This keeps the reader from causing events that
     will add noise to the trace.
   * tracefs_instance_clear()
     Helper to clear the contents of the current trace instance.
   * tep_get_sub_buffer_data_size()
     Helper to retrieve the current sub-buffer data size. The Linux kernel tracing
     ring buffer is broken up into smaller sub-buffers. This returns the size of
     the data portion of those sub-buffers (does not include the sub-buffer meta
     data).
   * tracefs_load_headers()
     API to just load the information about the sub-buffers and nothing more.
   * API to extract tracing ring buffer statistics
       tracefs_instance_get_stat()
       tracefs_instance_put_stat()
       tracefs_buffer_stat_entries()
       tracefs_buffer_stat_overrun()
       tracefs_buffer_stat_commit_overrun()
       tracefs_buffer_stat_bytes()
       tracefs_buffer_stat_event_timestamp()
       tracefs_buffer_stat_timestamp()
       tracefs_buffer_stat_dropped_events
    * tracefs_instance_set_subbuf_size() and tracefs_instance_get_subbuf_size()
      API to modify the sub-buffers size of the tracing ring buffer.
    * Added TIMESTAMP_DELTA and TIMESTAMP_DELTA_USECS to tracefs_sql() as a shortcut
      for (end.TIMESTAMP - start.TIMESTAMP) and (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS)
      respectively
    * Add PID filtering API:
        tracefs_filter_pid_function()
	tracefs_filter_pid_events()
        tracefs_filter_pid_function_clear()
        tracefs_filter_pid_events_clear()
    * Added tracefs_cpu_snapshot_open() to read the raw data of snapshot buffers
    * Added snapshot functions:
       tracefs_snapshot_snap()
       tracefs_snapshot_clear()
       tracefs_snapshot_free()
    * Added ring buffer memory mapping APIs
      tracefs_cpu_open_mapped()
      tracefs_cpu_is_mapped()
      tracefs_mapped_is_supported()
      tracefs_cpu_map()
      tracefs_cpu_unmap()
    * Updates:
      - Increase pipe max size to max value when using splice.
      - Clear "max_graph_depth" on tracefs_instance_reset()
      - Add missing headers to syscall() and SYS_* defines
      - Add dependency fixes to meson build
      - Fix some documentation / man page issues
      - Fix memory leaks
      - Fix cscope rule
      - Fix issues in unit tests
      - Added many more unit tests

OBS-URL: https://build.opensuse.org/request/show/1181395
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libtracefs?expand=0&rev=33
This commit is contained in:
Jan Engelhardt 2024-06-18 07:25:40 +00:00 committed by Git OBS Bridge
commit 04e87f0360
8 changed files with 570 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,31 @@
From 7d15d7744d957b1721d8e202bd5095b7c449570f Mon Sep 17 00:00:00 2001
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: Wed, 10 Jan 2024 21:39:25 +0100
Subject: [PATCH] libtracefs meson: build tracefs-mmap by default
Accordingly to Makefile let's add tracefs-mmap.c to build, this is needed
for linking by other object files.
Link: https://lore.kernel.org/linux-trace-devel/20240110203925.266999-1-giulio.benetti@benettiengineering.com
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
src/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/meson.build b/src/meson.build
index 5b7655453f50..f7a98b9ce48e 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -11,6 +11,7 @@ sources= [
'tracefs-instance.c',
'tracefs-kprobes.c',
'tracefs-marker.c',
+ 'tracefs-mmap.c',
'tracefs-record.c',
'tracefs-sqlhist.c',
'tracefs-tools.c',
--
2.45.2

View File

@ -0,0 +1,89 @@
From: Daniel Wagner <dwagner@suse.de>
Date: Thu Jun 15 11:48:53 AM PDT 2023
Subject: Add explicit meson thread dependency
Patch-mainline: mailed to mailing list
References: none
Signed-off-by: Tony Jones <tonyj@suse.de>
Older version of meson do not add automatically the pthread dependency.
Thus add it explicitly to the build.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
meson.build | 1 +
samples/meson.build | 4 ++--
src/meson.build | 4 ++--
utest/meson.build | 2 +-
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/meson.build b/meson.build
index d0f0e2dafc8a..9d42d78ad957 100644
--- a/meson.build
+++ b/meson.build
@@ -17,6 +17,7 @@ project(
library_version = meson.project_version()
libtraceevent_dep = dependency('libtraceevent', version: '>= 1.7.0', required: true)
+threads_dep = dependency('threads', required: true)
cunit_dep = dependency('cunit', required : false)
prefixdir = get_option('prefix')
diff --git a/samples/meson.build b/samples/meson.build
index 5e8ad270f812..112b12217a04 100644
--- a/samples/meson.build
+++ b/samples/meson.build
@@ -30,7 +30,7 @@ foreach ex : examples
executable(
ex.underscorify(),
src,
- dependencies: [libtracefs_dep, libtraceevent_dep],
+ dependencies: [libtracefs_dep, libtraceevent_dep, threads_dep],
include_directories: [incdir])
endforeach
@@ -39,7 +39,7 @@ src = gen.process(meson.current_source_dir() + '/../Documentation/libtracefs-sql
executable(
'sqlhist',
src,
- dependencies: [libtracefs_dep, libtraceevent_dep],
+ dependencies: [libtracefs_dep, libtraceevent_dep, threads_dep],
include_directories: [incdir],
install: true,
install_dir: bindir)
diff --git a/src/meson.build b/src/meson.build
index 56087e2301bf..5b7655453f50 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -36,14 +36,14 @@ libtracefs = library(
'tracefs',
sources, lfiles, pfiles,
version: library_version,
- dependencies: [libtraceevent_dep],
+ dependencies: [libtraceevent_dep, threads_dep],
include_directories: [incdir],
install: true)
libtracefs_static = static_library(
'tracefs_static',
sources, lfiles, pfiles,
- dependencies: [libtraceevent_dep],
+ dependencies: [libtraceevent_dep, threads_dep],
include_directories: [incdir],
install: false)
diff --git a/utest/meson.build b/utest/meson.build
index 91a526fca2bf..c79313c7c1fb 100644
--- a/utest/meson.build
+++ b/utest/meson.build
@@ -11,7 +11,7 @@ e = executable(
'trace-utest',
source,
include_directories: [incdir],
- dependencies: [libtraceevent_dep, cunit_dep],
+ dependencies: [libtraceevent_dep, threads_dep, cunit_dep],
link_with: libtracefs_static)
test('trace-utest', e)
--
2.40.1

3
libtracefs-1.7.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:411fcbf3434ecbaefa6c2b1bf092266293a672e2d7ee46fdd6b402753cb8bd16
size 205716

BIN
libtracefs-1.8.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

317
libtracefs.changes Normal file
View File

@ -0,0 +1,317 @@
-------------------------------------------------------------------
Mon 14:22:13 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Update to v1.8.0
* remove: add-explicit-meson-thread-dependency.patch
* tracefs_follow_event_clear() and tracefs_follow_missed_events_clear()
API to clean up followers if the tracefs instance is going to be used
for other iterations
* tracefs_instance_file_write_number()
A simple helper function to make it easier to write numbers into the
tracefs files. It does the conversion from number to string, as the
files expect strings and not numbers.
* Add API to work with kbuffer, which gives more control to the application
and speeds it up:
tracefs_cpu_read_buf()
tracefs_cpu_buffered_read_buf()
tracefs_cpu_flush_buf()
* tracefs_instance_get_buffer_percent() and tracefs_instance_set_buffer_percent()
Modify the buffer_percent file that allows readers to block until the buffer
is filled to a given percent. This keeps the reader from causing events that
will add noise to the trace.
* tracefs_instance_clear()
Helper to clear the contents of the current trace instance.
* tep_get_sub_buffer_data_size()
Helper to retrieve the current sub-buffer data size. The Linux kernel tracing
ring buffer is broken up into smaller sub-buffers. This returns the size of
the data portion of those sub-buffers (does not include the sub-buffer meta
data).
* tracefs_load_headers()
API to just load the information about the sub-buffers and nothing more.
* API to extract tracing ring buffer statistics
tracefs_instance_get_stat()
tracefs_instance_put_stat()
tracefs_buffer_stat_entries()
tracefs_buffer_stat_overrun()
tracefs_buffer_stat_commit_overrun()
tracefs_buffer_stat_bytes()
tracefs_buffer_stat_event_timestamp()
tracefs_buffer_stat_timestamp()
tracefs_buffer_stat_dropped_events
* tracefs_instance_set_subbuf_size() and tracefs_instance_get_subbuf_size()
API to modify the sub-buffers size of the tracing ring buffer.
* Added TIMESTAMP_DELTA and TIMESTAMP_DELTA_USECS to tracefs_sql() as a shortcut
for (end.TIMESTAMP - start.TIMESTAMP) and (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS)
respectively
* Add PID filtering API:
tracefs_filter_pid_function()
tracefs_filter_pid_events()
tracefs_filter_pid_function_clear()
tracefs_filter_pid_events_clear()
* Added tracefs_cpu_snapshot_open() to read the raw data of snapshot buffers
* Added snapshot functions:
tracefs_snapshot_snap()
tracefs_snapshot_clear()
tracefs_snapshot_free()
* Added ring buffer memory mapping APIs
tracefs_cpu_open_mapped()
tracefs_cpu_is_mapped()
tracefs_mapped_is_supported()
tracefs_cpu_map()
tracefs_cpu_unmap()
* Updates:
- Increase pipe max size to max value when using splice.
- Clear "max_graph_depth" on tracefs_instance_reset()
- Add missing headers to syscall() and SYS_* defines
- Add dependency fixes to meson build
- Fix some documentation / man page issues
- Fix memory leaks
- Fix cscope rule
- Fix issues in unit tests
- Added many more unit tests
-------------------------------------------------------------------
Thu Jun 15 18:50:11 UTC 2023 - Tony Jones <tonyj@suse.com>
- Add explicit thread dependency for older versions of meson (i.e SLE-15-SP5)
New patch: add-explicit-meson-thread-dependency.patch
-------------------------------------------------------------------
Thu Jun 15 18:40:11 UTC 2023 - Tony Jones <tonyj@suse.com>
- Update to version 1.7.0
* Add initial support for meson
* Add tracefs_kprobe_destroy() to index man page
* State that tracefs_dynevent_create() is needed for tracefs_kprobe_alloc()
* Add missing prototypes in top level man page
* Add tracefs_kprobe_destory() API
* Add helper function to destroy dynamic event
* Add tracefs_time_conversion() API
* Add tracefs_find_cid_pid() API
* Fix crashing of synth test when synths exist
* Do not use synth for test_synth element
* Clarify the tracefs_synth_create() man page
* Do not allow tracefs_synth_set_instance() on created synth
* Documentation for tracefs_synth_set_instance
* New API to set synthetic event instance
* Do not segfault in tests if synthetic events are not configured
* Add tracefs_instance_tracers() API
* Do not use hwlat tracer and fdb_delete event for test
* Add stacktrace to tracefs_sql()
* Unit test for tracefs_instance_reset()
* Documentation for tracefs_instance_reset()
* New API to reset ftrace instance
- Drop patch 0001-libtracefs-Add-initial-support-for-meson.patch (upstream)
-------------------------------------------------------------------
Tue Feb 7 13:23:20 UTC 2023 - Daniel Wagner <daniel.wagner@suse.com>
- Sync meson build patch with latest upstream version
* Documentation is built via extra build target
-------------------------------------------------------------------
Wed Jan 18 09:39:05 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 1.6.4:
* Flush pipe data in tracefs_cpu_flush()
* Add check for duplicate functions in man pages
* Make sure 32 bit works on 64 bit file systems
-------------------------------------------------------------------
Tue Dec 27 09:22:13 UTC 2022 - Daniel Wagner <daniel.wagner@suse.com>
- Use meson to build package
* add 0001-libtracefs-Add-initial-support-for-meson.patch
-------------------------------------------------------------------
Fri Dec 16 15:06:03 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.6.3
* Fix a regression of where tracefs_tracing_dir() did not mount
the tracefs file system if it was not already mounted.
Same for mounting debugfs with tracefs_debug_dir().
* Have tracefs_tracing_dir() and tracefs_debug_dir() check if the
cached directory still exists and is mounted.
-------------------------------------------------------------------
Fri Nov 25 00:14:30 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.6.1
* Fix tracefs_iterate_raw_events() to handle NULL callback
-------------------------------------------------------------------
Wed Nov 16 01:32:28 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.6.0
* No changelog provided by upstream
* A set of new API functions
-------------------------------------------------------------------
Mon Aug 29 09:59:28 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.4.2
* Build fixes only (parallel build, musl support)
-------------------------------------------------------------------
Tue Jun 21 11:27:48 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Force make -j1 during build because of object file corruption.
-------------------------------------------------------------------
Tue Jun 7 08:34:18 UTC 2022 - Daniel Wagner <daniel.wagner@suse.com>
- Update to latest upstream version (1.4.1)
* Raw uprobe API: tracefs_uprobe_alloc(), tracefs_uretprobe_alloc
* Return the debugfs mount point from tracefs_debug_dir()
* sqlhst: Fix labels being ignored for synthetic event field
* sqlhst: Allow same event to be both the start and end event
* sqlhst: Use unique names for labels
* sqlhst: Report errors when executing commands
-------------------------------------------------------------------
Tue Apr 5 15:46:56 UTC 2022 - Daniel Wagner <daniel.wagner@suse.com>
- Update to latest upstream version (1.3.1)
* Optimized string list handling. It was always stated that some string
lists must be freed with tracefs_list_free(), and now it is mandatory, as
metadata is used to store the size, and normal freeing of the list will
cause memory issues.
* More consistency with errno values
* sqlhist is now officially built
* New methods for setting and reading affinity
tracefs_instance_set_affinity_set()
tracefs_instance_set_affinity_raw()
tracefs_instance_set_affinity()
tracefs_instance_get_affinity()
tracefs_instance_get_affinity_raw()
tracefs_instance_get_affinity_set()
* New method to see the system tracers
tracefs_instances()
* New methods to read and clear the error log
tracefs_error_last()
tracefs_error_all()
tracefs_error_clear()
* New methods to modify the string lists
tracefs_list_add()
tracefs_list_size()
* New method to stop the iterator over raw events
tracefs_iterate_stop()
* New methods to make it easier to access event files
tracefs_event_get_file()
tracefs_event_file_read()
tracefs_event_file_write()
tracefs_event_file_append()
tracefs_event_file_clear()
tracefs_event_file_exists()
* New method to get the available filter functions
tracefs_filter_functions()
* New methods to enable or disable tracers
tracefs_tracer_set()
tracefs_tracer_clear()
* New methods for streaming the trace_pipe file
tracefs_trace_pipe_stream()
tracefs_trace_pipe_print()
tracefs_trace_pipe_stop()
* New methods for creating, modifying and destroying dynamic events
tracefs_dynevent_create()
tracefs_dynevent_destroy()
tracefs_dynevent_destroy_all()
tracefs_dynevent_free()
tracefs_dynevent_list_free()
tracefs_dynevent_get_all()
tracefs_dynevent_get()
tracefs_dynevent_info()
tracefs_dynevent_get_event()
* New method to create an event probe (then use dynamic methods above)
tracefs_eprobe_alloc()
* New methods to create kprobes and kretprobes
tracefs_kprobe_alloc()
tracefs_kretprobe_alloc()
tracefs_kprobe_raw()
tracefs_kretprobe_raw()
* New methods for creating, modifying and destroying histograms
tracefs_hist_free()
tracefs_hist_alloc()
tracefs_hist_alloc_2d()
tracefs_hist_alloc_nd()
tracefs_hist_get_name()
tracefs_hist_get_event()
tracefs_hist_get_system()
tracefs_hist_add_key()
tracefs_hist_add_value()
tracefs_hist_add_sort_key()
tracefs_hist_set_sort_key()
tracefs_hist_sort_key_direction()
tracefs_hist_add_name()
tracefs_hist_append_filter()
tracefs_hist_echo_cmd()
tracefs_hist_command()
tracefs_hist_start()
tracefs_hist_pause()
tracefs_hist_continue()
tracefs_hist_reset()
tracefs_hist_destroy()
* New methods for creating, modifying and destroying synthetic events
tracefs_synth_get_name()
tracefs_synth *tracefs_synth_alloc()
tracefs_synth_add_match_field()
tracefs_synth_add_compare_field()
tracefs_synth_add_start_field()
tracefs_synth_add_end_field()
tracefs_synth_append_start_filter()
tracefs_synth_append_end_filter()
tracefs_synth_trace()
tracefs_synth_snapshot()
tracefs_synth_save()
tracefs_synth_complete()
tracefs_synth_get_start_hist()
tracefs_synth_create()
tracefs_synth_destroy()
tracefs_synth_free()
tracefs_synth_echo_cmd()
tracefs_synth_raw_fmt()
tracefs_synth_show_event()
tracefs_synth_show_start_hist()
tracefs_synth_show_end_hist()
tracefs_synth_get_event()
* New methods to modify event filters
tracefs_filter_string_append()
tracefs_filter_string_verify()
tracefs_event_filter_apply()
tracefs_event_filter_clear()
tracefs_event_append_filter()
tracefs_event_verify_filter()
* New method to create a synthetic event via a SQL string
tracefs_sql()
The man page comes with its own program (sqlhist).
-------------------------------------------------------------------
Tue Feb 22 12:34:56 UTC 2022 - olaf@aepfle.de
- Force correct pkgconfig_dir location to fix build
-------------------------------------------------------------------
Wed Jan 19 13:13:55 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Update to latest upstream version (1.2.5)
* No changelog provided again
-------------------------------------------------------------------
Fri May 14 15:06:28 UTC 2021 - Dario Faggioli <dfaggioli@suse.com>
- Update to new upstream version (1.2.0)
* No changelog was provided by upstream.
* libtracefs: Add tracefs_event_enable/disable() API
-------------------------------------------------------------------
Mon May 10 08:03:05 UTC 2021 - Dario Faggioli <dfaggioli@suse.com>
- update to new upstream version (1.1.2)
- drop patch 294319.patch (already present upstream)
-------------------------------------------------------------------
Tue Dec 22 19:28:57 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Initial package (version 1.0.0) for build.opensuse.org
- Add 294319.patch

103
libtracefs.spec Normal file
View File

@ -0,0 +1,103 @@
#
# spec file for package libtracefs
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: libtracefs
%define lname libtracefs1
Version: 1.8.0
Release: 0
Summary: Linux kernel trace file system library
License: LGPL-2.1-only
Group: Development/Libraries/C and C++
URL: https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
Source: https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/%name-%version.tar.gz
BuildRequires: asciidoc
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: meson
BuildRequires: pkg-config
BuildRequires: source-highlight
BuildRequires: xmlto
BuildRequires: xz
BuildRequires: pkgconfig(libtraceevent) >= 1.3
Patch: 0001-libtracefs-meson-build-tracefs-mmap-by-default.patch
%description
This library provides C APIs to access the kernel trace file system.
%package -n %lname
Summary: Linux kernel trace file system library
Group: System/Libraries
%description -n %lname
This library provides C APIs to access the kernel trace file system.
%package tools
Summary: Tools for libtracefs
Group: Development/Libraries/C and C++
Requires: %lname = %version
%description tools
This library provides C APIs to access the kernel trace file system.
This subpackage contains tools.
%package devel
Summary: Development files for libtracefs
Group: Development/Libraries/C and C++
Requires: %lname = %version
%description devel
This library provides C APIs to access the kernel trace file system.
This subpackage contains the header files.
%prep
%autosetup -p1
%build
%meson \
--default-library=shared \
-Dhtmldir="%_docdir/%name"
%meson_build
%meson_build docs
%install
%meson_install
%fdupes %buildroot/%_prefix
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%files -n %lname
%_libdir/libtracefs.so.1*
%license LICENSES/LGPL-2.1
%files tools
%_bindir/sqlhist
%_mandir/man1/*
%files devel
%_includedir/*
%_libdir/libtracefs.so
%_libdir/pkgconfig/*.pc
%_mandir/man3/*
%_docdir/%name/
%changelog