From 4cc3e832265d8de6d7238bd0a6151c8a92672ad8 Mon Sep 17 00:00:00 2001
From: jengelh <>
Date: Feb 08 2023 22:04:20 +0000
Subject: Update libtracecmd to version 1.3.1 / rev 5 via SR 1063769
https://build.opensuse.org/request/show/1063769
by user jengelh + dimstar_suse
- Sync meson build patch with latest upstream version
---
diff --git a/.files b/.files
index c743170..60c598b 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index b41bbb2..11142cd 100644
--- a/.rev
+++ b/.rev
@@ -23,4 +23,20 @@
- Update to release 1.3.0
1043362
+
+ 4e23ead226162f7b442a76d14dd34093
+ 1.3.1
+
+ dimstar_suse
+ - Update to release 1.3.1
+ 1061892
+
+
+ 4ea2c0474d465615fdfdea59fd86bc59
+ 1.3.1
+
+ dimstar_suse
+ - Sync meson build patch with latest upstream version
+ 1063769
+
diff --git a/0001-libtracecmd-Add-initial-support-for-meson.patch b/0001-libtracecmd-Add-initial-support-for-meson.patch
new file mode 100644
index 0000000..782672a
--- /dev/null
+++ b/0001-libtracecmd-Add-initial-support-for-meson.patch
@@ -0,0 +1,527 @@
+From 65c293138541c3c59e4d9be4912303f2584db8ba Mon Sep 17 00:00:00 2001
+From: Daniel Wagner
+Date: Wed, 21 Dec 2022 11:54:17 +0100
+Subject: [PATCH v7 1/2] libtracecmd: Add initial support for meson
+
+Add support for building the project with meson.
+
+As libtracecmd lives in the same source tree as trace-cmd, we have
+to place the 'top' meson.builld file under lib but we can't reference
+it from the root meson.build which controlling the main trace-cmd
+build.
+
+This implies we can't access resources/path which are not below the
+library's main meson.build directly. Thus, to be able to build the
+documentation we have to use the symlink as workaround.
+
+Signed-off-by: Daniel Wagner
+---
+ Documentation/libtracecmd/install-docs.sh.in | 20 +++
+ Documentation/libtracecmd/meson.build | 168 +++++++++++++++++++
+ lib/Documentation | 1 +
+ lib/check-manpages.sh | 1 +
+ lib/meson.build | 114 +++++++++++++
+ lib/meson_options.txt | 19 +++
+ lib/trace-cmd/include/meson.build | 5 +
+ lib/trace-cmd/include/private/meson.build | 14 ++
+ lib/trace-cmd/meson.build | 88 ++++++++++
+ 9 files changed, 430 insertions(+)
+ create mode 100755 Documentation/libtracecmd/install-docs.sh.in
+ create mode 100644 Documentation/libtracecmd/meson.build
+ create mode 120000 lib/Documentation
+ create mode 120000 lib/check-manpages.sh
+ create mode 100644 lib/meson.build
+ create mode 100644 lib/meson_options.txt
+ create mode 100644 lib/trace-cmd/include/meson.build
+ create mode 100644 lib/trace-cmd/include/private/meson.build
+ create mode 100644 lib/trace-cmd/meson.build
+
+diff --git a/Documentation/libtracecmd/install-docs.sh.in b/Documentation/libtracecmd/install-docs.sh.in
+new file mode 100755
+index 000000000000..eca9b1f42dcc
+--- /dev/null
++++ b/Documentation/libtracecmd/install-docs.sh.in
+@@ -0,0 +1,20 @@
++#!/bin/bash
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++for section in 1 3 5; do
++ while IFS= read -r -d '' man; do
++ [ ! -d "${DESTDIR}@MANDIR@/man${section}" ] && install -d "${DESTDIR}@MANDIR@/man${section}"
++
++ echo Installing "${man}" to "${DESTDIR}@MANDIR@/man${section}"
++ install -m 0644 "${man}" "${DESTDIR}@MANDIR@/man${section}/"
++ done< <(find "@SRCDIR@" -name "*\.${section}" -type f -print0)
++done
++
++while IFS= read -r -d '' html; do
++ [ ! -d "${DESTDIR}@HTMLDIR@" ] && install -d "${DESTDIR}@HTMLDIR@"
++
++ echo Installing "${html}" to "${DESTDIR}@HTMLDIR@"
++ install -m 0644 "${html}" "${DESTDIR}@HTMLDIR@"
++done< <(find "@SRCDIR@" -name "*\.html" -type f -print0)
+diff --git a/Documentation/libtracecmd/meson.build b/Documentation/libtracecmd/meson.build
+new file mode 100644
+index 000000000000..c9fb16676812
+--- /dev/null
++++ b/Documentation/libtracecmd/meson.build
+@@ -0,0 +1,168 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++# input text file: man page section
++
++sources = {
++ 'libtracecmd-files.txt': '3',
++ 'libtracecmd-instances.txt': '3',
++ 'libtracecmd-iterate.txt': '3',
++ 'libtracecmd-log.txt': '3',
++ 'libtracecmd-maps.txt': '3',
++ 'libtracecmd-peer.txt': '3',
++ 'libtracecmd-record.txt': '3',
++ 'libtracecmd-timestamp.txt': '3',
++ 'libtracecmd.txt': '3',
++}
++
++confdir = meson.current_source_dir() + '/../'
++top_source_dir = meson.current_source_dir() + '/../../'
++
++#
++# For asciidoc ...
++# -7.1.2, no extra settings are needed.
++# 8.0-, set ASCIIDOC8.
++#
++
++#
++# For docbook-xsl ...
++# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
++# 1.69.0, no extra settings are needed?
++# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
++# 1.71.1, no extra settings are needed?
++# 1.72.0, set DOCBOOK_XSL_172.
++# 1.73.0-, set ASCIIDOC_NO_ROFF
++#
++
++#
++# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
++# of 'the ".ft C" problem' in your generated manpages, and you
++# instead ended up with weird characters around callouts, try
++# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
++#
++
++if get_option('asciidoctor')
++ asciidoc = find_program('asciidoctor')
++ asciidoc_extra = ['-a', 'compat-mode']
++ asciidoc_extra += ['-I.']
++ asciidoc_extra += ['-r', 'asciidoctor-extensions']
++ asciidoc_extra += ['-a', 'mansource=libtraceevent']
++ asciidoc_extra += ['-a', 'manmanual="libtraceevent Manual"']
++ asciidoc_html = 'xhtml5'
++else
++ asciidoc = find_program('asciidoc')
++ asciidoc_extra = ['--unsafe']
++ asciidoc_extra += ['-f', confdir + 'asciidoc.conf']
++ asciidoc_html = 'xhtml11'
++
++ r = run_command(asciidoc, '--version', check: true)
++ v = r.stdout().strip()
++ if v.version_compare('>=8.0')
++ asciidoc_extra += ['-a', 'asciidoc7compatible']
++ endif
++endif
++
++manpage_xsl = confdir + 'manpage-normal.xsl'
++
++if get_option('docbook-xls-172')
++ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
++ manpage_xsl = confdir + 'manpage-1.72.xsl'
++elif get_option('asciidoc-no-roff')
++ # docbook-xsl after 1.72 needs the regular XSL, but will not
++ # pass-thru raw roff codes from asciidoc.conf, so turn them off.
++ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
++endif
++
++xmlto = find_program('xmlto')
++xmlto_extra = []
++
++if get_option('man-bold-literal')
++ xmlto_extra += ['-m ', confdir + 'manpage-bold-literal.xsl']
++endif
++
++if get_option('docbook-suppress-sp')
++ xmlto_extra += ['-m ', confdir + 'manpage-suppress-sp.xsl']
++endif
++
++check_doc = custom_target(
++ 'check-doc',
++ output: 'dummy',
++ command : [
++ top_source_dir + 'check-manpages.sh',
++ meson.current_source_dir()])
++
++gen = generator(
++ asciidoc,
++ output: '@BASENAME@.xml',
++ arguments: [
++ '-b', 'docbook',
++ '-d', 'manpage',
++ '-a', 'libtraceevent_version=' + meson.project_version(),
++ '-o', '@OUTPUT@']
++ + asciidoc_extra
++ + ['@INPUT@'])
++
++man = []
++html = []
++foreach txt, section : sources
++ # build man page(s)
++ xml = gen.process(txt)
++ man += custom_target(
++ txt.underscorify() + '_man',
++ input: xml,
++ output: '@BASENAME@.' + section,
++ depends: check_doc,
++ command: [
++ xmlto,
++ '-m', manpage_xsl,
++ 'man',
++ '-o', '@OUTPUT@']
++ + xmlto_extra
++ + ['@INPUT@'])
++
++ # build html pages
++ html += custom_target(
++ txt.underscorify() + '_html',
++ input: txt,
++ output: '@BASENAME@.html',
++ depends: check_doc,
++ command: [
++ asciidoc,
++ '-b', asciidoc_html,
++ '-d', 'manpage',
++ '-a', 'libtraceevent_version=' + meson.project_version(),
++ '-o', '@OUTPUT@']
++ + asciidoc_extra
++ + ['@INPUT@'])
++endforeach
++
++# Install path workaround because:
++#
++# - xmlto might generate more than one file and we would to tell meson
++# about those output files. We could figure out which files are generated
++# (see sed match in check-manpages.sh).
++#
++# - The man page generation puts all the generated files under sub dirs
++# and it's not obvious how to tell Meson it should not do this without
++# causing the install step to fail (confusion where the generated files
++# are stored)
++#
++# - The documentation build is not part of the 'build' target. The user
++# has explicitly to trigger the doc build. Hence the documentation is
++# not added to the 'install' target.
++#
++# Thus just use a plain old shell script to move the generated files to the
++# right location.
++
++conf = configuration_data()
++conf.set('SRCDIR', meson.current_build_dir())
++conf.set('MANDIR', mandir)
++conf.set('HTMLDIR', htmldir)
++configure_file(
++ input: 'install-docs.sh.in',
++ output: 'install-docs.sh',
++ configuration: conf)
++
++meson.add_install_script(
++ join_paths(meson.current_build_dir(), 'install-docs.sh'))
+diff --git a/lib/Documentation b/lib/Documentation
+new file mode 120000
+index 000000000000..fb996f28ab31
+--- /dev/null
++++ b/lib/Documentation
+@@ -0,0 +1 @@
++../Documentation
+\ No newline at end of file
+diff --git a/lib/check-manpages.sh b/lib/check-manpages.sh
+new file mode 120000
+index 000000000000..d9416662eaed
+--- /dev/null
++++ b/lib/check-manpages.sh
+@@ -0,0 +1 @@
++../check-manpages.sh
+\ No newline at end of file
+diff --git a/lib/meson.build b/lib/meson.build
+new file mode 100644
+index 000000000000..3906b3d27f24
+--- /dev/null
++++ b/lib/meson.build
+@@ -0,0 +1,114 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++project(
++ 'libtracecmd', ['c'],
++ meson_version: '>= 0.50.0',
++ license: 'GPL-2.0',
++ version: '1.3.0',
++ default_options: [
++ 'c_std=gnu99',
++ 'buildtype=debug',
++ 'default_library=both',
++ 'prefix=/usr/local',
++ 'warning_level=1'])
++
++cc = meson.get_compiler('c')
++
++prefixdir = get_option('prefix')
++mandir = join_paths(prefixdir, get_option('mandir'))
++htmldir = join_paths(prefixdir, get_option('htmldir'))
++
++libtracecmd_standalone_build = true
++
++library_version = meson.project_version()
++
++conf = configuration_data()
++
++libtraceevent_dep = dependency('libtraceevent', version: '>= 1.5.0', required: true)
++libtracefs_dep = dependency('libtracefs', version: '>= 1.6.0', required: true)
++
++zlib_dep = dependency('zlib', required: false)
++conf.set('HAVE_ZLIB', zlib_dep.found(), description: 'Is zlib avialable?')
++
++libzstd_dep = dependency('libzstd', version: '>= 1.4.0', required: false)
++conf.set('HAVE_ZSTD', libzstd_dep.found(), description: 'Is libzstd available?')
++
++cunit_dep = dependency('cunit', required : false)
++
++vsock_defined = get_option('vsock') and cc.has_header('linux/vm_sockets.h')
++conf.set('VSOCK', vsock_defined, description: 'Is vsock available?')
++
++perf_defined = cc.has_header('linux/perf_event.h')
++conf.set('PERF', perf_defined, description: 'Is perf available?')
++
++have_ptrace = get_option('ptrace') and cc.compiles(
++ '''
++ #include
++ #include
++
++ int main (void)
++ {
++ int ret;
++ ret = ptrace(PTRACE_ATTACH, 0, NULL, 0);
++ ptrace(PTRACE_TRACEME, 0, NULL, 0);
++ ptrace(PTRACE_GETSIGINFO, 0, NULL, NULL);
++ ptrace(PTRACE_GETEVENTMSG, 0, NULL, NULL);
++ ptrace(PTRACE_SETOPTIONS, NULL, NULL,
++ PTRACE_O_TRACEFORK |
++ PTRACE_O_TRACEVFORK |
++ PTRACE_O_TRACECLONE |
++ PTRACE_O_TRACEEXIT);
++ ptrace(PTRACE_CONT, NULL, NULL, 0);
++ ptrace(PTRACE_DETACH, 0, NULL, NULL);
++ ptrace(PTRACE_SETOPTIONS, 0, NULL,
++ PTRACE_O_TRACEFORK |
++ PTRACE_O_TRACEVFORK |
++ PTRACE_O_TRACECLONE |
++ PTRACE_O_TRACEEXIT);
++ return ret;
++ }
++ ''',
++ name: 'ptrace')
++if not have_ptrace
++ conf.set10('NO_PTRACE', true, description: 'Is ptrace missing?')
++ conf.set('WARN_NO_PTRACE', true, description: 'Issue no ptrace warning?')
++endif
++
++audit_dep = dependency('audit', required: false)
++if not audit_dep.found()
++ conf.set10('NO_AUDIT', true, description: 'Is audit missing?')
++ conf.set('WARN_NO_AUDIT', true, description: 'Issue no audit warning?')
++endif
++
++add_project_arguments(
++ [
++ '-D_GNU_SOURCE',
++ '-include', 'trace-cmd/include/private/config.h',
++ ],
++ language : 'c')
++
++libtracecmd_ext_incdir = include_directories(
++ [
++ '../include',
++ '../include/trace-cmd',
++ '../tracecmd/include'
++ ])
++
++subdir('trace-cmd/include')
++subdir('trace-cmd/include/private')
++subdir('trace-cmd')
++if libtracecmd_standalone_build
++ subdir('Documentation/libtracecmd')
++
++ custom_target(
++ 'docs',
++ output: 'docs',
++ depends: [html, man],
++ command: ['echo'])
++endif
++
++install_headers(
++ '../include/trace-cmd/trace-cmd.h',
++ subdir: 'trace-cmd')
+diff --git a/lib/meson_options.txt b/lib/meson_options.txt
+new file mode 100644
+index 000000000000..9f5ed6d486d8
+--- /dev/null
++++ b/lib/meson_options.txt
+@@ -0,0 +1,19 @@
++# -*- mode: meson -*-
++# SPDX-License-Identifier: LGPL-2.1
++
++option('vsock', type : 'boolean', value : true,
++ description : 'build with vsock support')
++option('ptrace', type : 'boolean', value : true,
++ description : 'build with ptrace support')
++option('htmldir', type : 'string', value : 'share/doc/libtracecmd-doc',
++ description : 'directory for HTML documentation')
++option('asciidoctor', type : 'boolean', value: false,
++ description : 'use asciidoctor instead of asciidoc')
++option('docbook-xls-172', type : 'boolean', value : false,
++ description : 'enable docbook XLS 172 workaround')
++option('asciidoc-no-roff', type : 'boolean', value : false,
++ description : 'enable no roff workaround')
++option('man-bold-literal', type : 'boolean', value : false,
++ description : 'enable bold literals')
++option('docbook-suppress-sp', type : 'boolean', value : false,
++ description : 'docbook suppress sp')
+diff --git a/lib/trace-cmd/include/meson.build b/lib/trace-cmd/include/meson.build
+new file mode 100644
+index 000000000000..c1c83884948f
+--- /dev/null
++++ b/lib/trace-cmd/include/meson.build
+@@ -0,0 +1,5 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++libtracecmd_incdir = include_directories(['.'])
+diff --git a/lib/trace-cmd/include/private/meson.build b/lib/trace-cmd/include/private/meson.build
+new file mode 100644
+index 000000000000..0f36339a9cc3
+--- /dev/null
++++ b/lib/trace-cmd/include/private/meson.build
+@@ -0,0 +1,14 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++config_h = configure_file(
++ output: 'config.h',
++ configuration: conf
++)
++
++libtracecmd_private_incdir = include_directories(['.'])
++
++config_dep = declare_dependency(
++ include_directories : libtracecmd_private_incdir,
++ sources: config_h)
+diff --git a/lib/trace-cmd/meson.build b/lib/trace-cmd/meson.build
+new file mode 100644
+index 000000000000..8c00ca8f8ff7
+--- /dev/null
++++ b/lib/trace-cmd/meson.build
+@@ -0,0 +1,88 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++sources = [
++ 'trace-hash.c',
++ 'trace-hooks.c',
++ 'trace-input.c',
++ 'trace-output.c',
++ 'trace-recorder.c',
++ 'trace-util.c',
++ 'trace-filter-hash.c',
++ 'trace-filter.c',
++ 'trace-msg.c',
++ 'trace-plugin.c',
++ 'trace-maps.c',
++ 'trace-timesync.c',
++ 'trace-timesync-ptp.c',
++ 'trace-compress.c',
++ 'trace-blk-hack.c',
++ 'trace-ftrace.c',
++]
++
++if perf_defined
++ sources += 'trace-perf.c'
++endif
++
++if vsock_defined
++ sources += 'trace-timesync-kvm.c'
++endif
++
++if zlib_dep.found()
++ sources += 'trace-compress-zlib.c'
++endif
++
++if libzstd_dep.found()
++ sources += 'trace-compress-zstd.c'
++endif
++
++if libtracecmd_standalone_build
++ libtracecmd = library(
++ 'tracecmd',
++ sources,
++ version: library_version,
++ dependencies: [
++ libtraceevent_dep,
++ libtracefs_dep,
++ zlib_dep,
++ libzstd_dep,
++ audit_dep],
++ include_directories: [
++ libtracecmd_incdir,
++ libtracecmd_private_incdir,
++ libtracecmd_ext_incdir],
++ install: true)
++
++ pkg = import('pkgconfig')
++ pkg.generate(
++ libtracecmd,
++ subdirs: 'trace-cmd',
++ libraries: [
++ libtracefs_dep,
++ libtraceevent_dep],
++ filebase: meson.project_name(),
++ name: meson.project_name(),
++ version: meson.project_version(),
++ description: 'Library for creating and reading trace-cmd data files',
++ url: 'https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/')
++
++ libtracecmd_dep = declare_dependency(
++ include_directories: ['.'],
++ link_with: libtracecmd)
++else
++ static_libtracecmd = static_library(
++ 'tracecmd',
++ sources,
++ dependencies: [
++ libtraceevent_dep,
++ libtracefs_dep,
++ zlib_dep,
++ libzstd_dep,
++ audit_dep],
++ include_directories: [
++ libtracecmd_incdir,
++ libtracecmd_private_incdir,
++ libtracecmd_ext_incdir],
++ install: false)
++endif
+--
+2.39.1
+
diff --git a/0002-trace-cmd-Add-initial-support-for-meson.patch b/0002-trace-cmd-Add-initial-support-for-meson.patch
new file mode 100644
index 0000000..d553574
--- /dev/null
+++ b/0002-trace-cmd-Add-initial-support-for-meson.patch
@@ -0,0 +1,609 @@
+From b3c6d850169425c2cc58c8455f6c560de4be3a47 Mon Sep 17 00:00:00 2001
+From: Daniel Wagner
+Date: Wed, 21 Dec 2022 14:15:02 +0100
+Subject: [PATCH v7 2/2] trace-cmd: Add initial support for meson
+
+Add support for building the project with meson.
+
+trace-cmd depends on a statically linked libtracecmd
+(e.g. trace_perf_open, trace_perf_close, trace_perf_init).
+
+Instead depending libtracecmd to be compiled and installed
+separately add libtracecmd directly to trace-cmd build. This
+avoids an additional step.
+
+We still are able to build libtracecmd as stand alone project.
+The top meson.build file just lives in the lib directory.
+
+Signed-off-by: Daniel Wagner
+---
+ Documentation/trace-cmd/install-docs.sh.in | 20 +++
+ Documentation/trace-cmd/meson.build | 187 +++++++++++++++++++++
+ meson-vcs-tag.sh | 17 ++
+ meson.build | 149 ++++++++++++++++
+ meson_options.txt | 23 +++
+ python/meson.build | 40 +++++
+ tracecmd/meson.build | 59 +++++++
+ utest/meson.build | 26 +++
+ 8 files changed, 521 insertions(+)
+ create mode 100755 Documentation/trace-cmd/install-docs.sh.in
+ create mode 100644 Documentation/trace-cmd/meson.build
+ create mode 100755 meson-vcs-tag.sh
+ create mode 100644 meson.build
+ create mode 100644 meson_options.txt
+ create mode 100644 python/meson.build
+ create mode 100644 tracecmd/meson.build
+ create mode 100644 utest/meson.build
+
+diff --git a/Documentation/trace-cmd/install-docs.sh.in b/Documentation/trace-cmd/install-docs.sh.in
+new file mode 100755
+index 000000000000..eca9b1f42dcc
+--- /dev/null
++++ b/Documentation/trace-cmd/install-docs.sh.in
+@@ -0,0 +1,20 @@
++#!/bin/bash
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++for section in 1 3 5; do
++ while IFS= read -r -d '' man; do
++ [ ! -d "${DESTDIR}@MANDIR@/man${section}" ] && install -d "${DESTDIR}@MANDIR@/man${section}"
++
++ echo Installing "${man}" to "${DESTDIR}@MANDIR@/man${section}"
++ install -m 0644 "${man}" "${DESTDIR}@MANDIR@/man${section}/"
++ done< <(find "@SRCDIR@" -name "*\.${section}" -type f -print0)
++done
++
++while IFS= read -r -d '' html; do
++ [ ! -d "${DESTDIR}@HTMLDIR@" ] && install -d "${DESTDIR}@HTMLDIR@"
++
++ echo Installing "${html}" to "${DESTDIR}@HTMLDIR@"
++ install -m 0644 "${html}" "${DESTDIR}@HTMLDIR@"
++done< <(find "@SRCDIR@" -name "*\.html" -type f -print0)
+diff --git a/Documentation/trace-cmd/meson.build b/Documentation/trace-cmd/meson.build
+new file mode 100644
+index 000000000000..d0cc3076d985
+--- /dev/null
++++ b/Documentation/trace-cmd/meson.build
+@@ -0,0 +1,187 @@
++# SPDX-License-Identifier: LGPL-2.1
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++# input text file: man page section
++
++sources = {
++ 'trace-cmd.1.txt': '1',
++ 'trace-cmd-agent.1.txt': '1',
++ 'trace-cmd-check-events.1.txt': '1',
++ 'trace-cmd-clear.1.txt': '1',
++ 'trace-cmd-convert.1.txt': '1',
++ 'trace-cmd.dat.v6.5.txt': '5',
++ 'trace-cmd.dat.v7.5.txt': '5',
++ 'trace-cmd-dump.1.txt': '1',
++ 'trace-cmd-extract.1.txt': '1',
++ 'trace-cmd-hist.1.txt': '1',
++ 'trace-cmd-list.1.txt': '1',
++ 'trace-cmd-listen.1.txt': '1',
++ 'trace-cmd-mem.1.txt': '1',
++ 'trace-cmd-options.1.txt': '1',
++ 'trace-cmd-profile.1.txt': '1',
++ 'trace-cmd-record.1.txt': '1',
++ 'trace-cmd-report.1.txt': '1',
++ 'trace-cmd-reset.1.txt': '1',
++ 'trace-cmd-restore.1.txt': '1',
++ 'trace-cmd-set.1.txt': '1',
++ 'trace-cmd-show.1.txt': '1',
++ 'trace-cmd-snapshot.1.txt': '1',
++ 'trace-cmd-split.1.txt': '1',
++ 'trace-cmd-stack.1.txt': '1',
++ 'trace-cmd-start.1.txt': '1',
++ 'trace-cmd-stat.1.txt': '1',
++ 'trace-cmd-stop.1.txt': '1',
++ 'trace-cmd-stream.1.txt': '1',
++}
++
++confdir = meson.current_source_dir() + '/../'
++top_source_dir = meson.current_source_dir() + '/../../'
++
++#
++# For asciidoc ...
++# -7.1.2, no extra settings are needed.
++# 8.0-, set ASCIIDOC8.
++#
++
++#
++# For docbook-xsl ...
++# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
++# 1.69.0, no extra settings are needed?
++# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
++# 1.71.1, no extra settings are needed?
++# 1.72.0, set DOCBOOK_XSL_172.
++# 1.73.0-, set ASCIIDOC_NO_ROFF
++#
++
++#
++# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
++# of 'the ".ft C" problem' in your generated manpages, and you
++# instead ended up with weird characters around callouts, try
++# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
++#
++
++if get_option('asciidoctor')
++ asciidoc = find_program('asciidoctor')
++ asciidoc_extra = ['-a', 'compat-mode']
++ asciidoc_extra += ['-I.']
++ asciidoc_extra += ['-r', 'asciidoctor-extensions']
++ asciidoc_extra += ['-a', 'mansource=libtraceevent']
++ asciidoc_extra += ['-a', 'manmanual="libtraceevent Manual"']
++ asciidoc_html = 'xhtml5'
++else
++ asciidoc = find_program('asciidoc')
++ asciidoc_extra = ['--unsafe']
++ asciidoc_extra += ['-f', confdir + 'asciidoc.conf']
++ asciidoc_html = 'xhtml11'
++
++ r = run_command(asciidoc, '--version', check: true)
++ v = r.stdout().strip()
++ if v.version_compare('>=8.0')
++ asciidoc_extra += ['-a', 'asciidoc7compatible']
++ endif
++endif
++
++manpage_xsl = confdir + 'manpage-normal.xsl'
++
++if get_option('docbook-xls-172')
++ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
++ manpage_xsl = confdir + 'manpage-1.72.xsl'
++elif get_option('asciidoc-no-roff')
++ # docbook-xsl after 1.72 needs the regular XSL, but will not
++ # pass-thru raw roff codes from asciidoc.conf, so turn them off.
++ asciidoc_extra += ['-a', 'libtraceevent-asciidoc-no-roff']
++endif
++
++xmlto = find_program('xmlto')
++xmlto_extra = []
++
++if get_option('man-bold-literal')
++ xmlto_extra += ['-m ', confdir + 'manpage-bold-literal.xsl']
++endif
++
++if get_option('docbook-suppress-sp')
++ xmlto_extra += ['-m ', confdir + 'manpage-suppress-sp.xsl']
++endif
++
++check_doc = custom_target(
++ 'check-doc',
++ output: 'dummy',
++ command : [
++ top_source_dir + 'check-manpages.sh',
++ meson.current_source_dir()])
++
++gen = generator(
++ asciidoc,
++ output: '@BASENAME@.xml',
++ arguments: [
++ '-b', 'docbook',
++ '-d', 'manpage',
++ '-a', 'libtraceevent_version=' + meson.project_version(),
++ '-o', '@OUTPUT@']
++ + asciidoc_extra
++ + ['@INPUT@'])
++
++man = []
++html = []
++foreach txt, section : sources
++ # build man page(s)
++ xml = gen.process(txt)
++ man += custom_target(
++ txt.underscorify() + '_man',
++ input: xml,
++ output: '@BASENAME@.' + section,
++ depends: check_doc,
++ command: [
++ xmlto,
++ '-m', manpage_xsl,
++ 'man',
++ '-o', '@OUTPUT@']
++ + xmlto_extra
++ + ['@INPUT@'])
++
++ # build html pages
++ html += custom_target(
++ txt.underscorify() + '_html',
++ input: txt,
++ output: '@BASENAME@.html',
++ depends: check_doc,
++ command: [
++ asciidoc,
++ '-b', asciidoc_html,
++ '-d', 'manpage',
++ '-a', 'libtraceevent_version=' + meson.project_version(),
++ '-o', '@OUTPUT@']
++ + asciidoc_extra
++ + ['@INPUT@'])
++endforeach
++
++# Install path workaround because:
++#
++# - xmlto might generate more than one file and we would to tell meson
++# about those output files. We could figure out which files are generated
++# (see sed match in check-manpages.sh).
++#
++# - The man page generation puts all the generated files under sub dirs
++# and it's not obvious how to tell Meson it should not do this without
++# causing the install step to fail (confusion where the generated files
++# are stored)
++#
++# - The documentation build is not part of the 'build' target. The user
++# has explicitly to trigger the doc build. Hence the documentation is
++# not added to the 'install' target.
++#
++# Thus just use a plain old shell script to move the generated files to the
++# right location.
++
++conf = configuration_data()
++conf.set('SRCDIR', meson.current_build_dir())
++conf.set('MANDIR', mandir)
++conf.set('HTMLDIR', htmldir)
++configure_file(
++ input: 'install-docs.sh.in',
++ output: 'install-docs.sh',
++ configuration: conf)
++
++meson.add_install_script(
++ join_paths(meson.current_build_dir(), 'install-docs.sh'))
+diff --git a/meson-vcs-tag.sh b/meson-vcs-tag.sh
+new file mode 100755
+index 000000000000..8ce692498ada
+--- /dev/null
++++ b/meson-vcs-tag.sh
+@@ -0,0 +1,17 @@
++#!/usr/bin/env bash
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++set -eu
++set -o pipefail
++
++dir="${1:?}"
++fallback="${2:?}"
++
++# Apparently git describe has a bug where it always considers the work-tree
++# dirty when invoked with --git-dir (even though 'git status' is happy). Work
++# around this issue by cd-ing to the source directory.
++cd "$dir"
++# Check that we have either .git/ (a normal clone) or a .git file (a work-tree)
++# and that we don't get confused if a tarball is extracted in a higher-level
++# git repository.
++[ -e .git ] && git describe --abbrev=7 --dirty=+ 2>/dev/null | sed 's/^v//' || echo "$fallback"
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 000000000000..e537d6f25ea9
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,149 @@
++# SPDX-License-Identifier: GPL-2.0
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++project(
++ 'trace-cmd', ['c'],
++ meson_version: '>= 0.50.0',
++ license: 'GPL-2.0',
++ version: '3.1.5',
++ default_options: [
++ 'c_std=gnu99',
++ 'buildtype=debug',
++ 'default_library=both',
++ 'prefix=/usr/local',
++ 'warning_level=1'])
++
++cc = meson.get_compiler('c')
++
++prefixdir = get_option('prefix')
++datadir = join_paths(prefixdir, get_option('datadir'))
++bindir = join_paths(prefixdir, get_option('bindir'))
++mandir = join_paths(prefixdir, get_option('mandir'))
++htmldir = join_paths(prefixdir, get_option('htmldir'))
++
++conf = configuration_data()
++
++libtraceevent_dep = dependency('libtraceevent', version: '>= 1.5.0', required: true)
++libtracefs_dep = dependency('libtracefs', version: '>= 1.6.0', required: true)
++
++zlib_dep = dependency('zlib', required: false)
++conf.set('HAVE_ZLIB', zlib_dep.found(), description: 'Is zlib avialable?')
++
++libzstd_dep = dependency('libzstd', version: '>= 1.4.0', required: false)
++conf.set('HAVE_ZSTD', libzstd_dep.found(), description: 'Is libzstd available?')
++
++cunit_dep = dependency('cunit', required : false)
++
++vsock_defined = get_option('vsock') and cc.has_header('linux/vm_sockets.h')
++conf.set('VSOCK', vsock_defined, description: 'Is vsock available?')
++
++perf_defined = cc.has_header('linux/perf_event.h')
++conf.set('PERF', perf_defined, description: 'Is perf available?')
++
++have_ptrace = get_option('ptrace') and cc.compiles(
++ '''
++ #include
++ #include
++
++ int main (void)
++ {
++ int ret;
++ ret = ptrace(PTRACE_ATTACH, 0, NULL, 0);
++ ptrace(PTRACE_TRACEME, 0, NULL, 0);
++ ptrace(PTRACE_GETSIGINFO, 0, NULL, NULL);
++ ptrace(PTRACE_GETEVENTMSG, 0, NULL, NULL);
++ ptrace(PTRACE_SETOPTIONS, NULL, NULL,
++ PTRACE_O_TRACEFORK |
++ PTRACE_O_TRACEVFORK |
++ PTRACE_O_TRACECLONE |
++ PTRACE_O_TRACEEXIT);
++ ptrace(PTRACE_CONT, NULL, NULL, 0);
++ ptrace(PTRACE_DETACH, 0, NULL, NULL);
++ ptrace(PTRACE_SETOPTIONS, 0, NULL,
++ PTRACE_O_TRACEFORK |
++ PTRACE_O_TRACEVFORK |
++ PTRACE_O_TRACECLONE |
++ PTRACE_O_TRACEEXIT);
++ return ret;
++ }
++ ''',
++ name: 'ptrace')
++if not have_ptrace
++ conf.set10('NO_PTRACE', true, description: 'Is ptrace missing?')
++ conf.set('WARN_NO_PTRACE', true, description: 'Issue no ptrace warning?')
++endif
++
++audit_dep = dependency('audit', required: false)
++if not audit_dep.found()
++ conf.set10('NO_AUDIT', true, description: 'Is audit missing?')
++ conf.set('WARN_NO_AUDIT', true, description: 'Issue no audit warning?')
++endif
++
++config_h = configure_file(
++ output: 'config.h',
++ configuration: conf
++)
++
++version = meson.project_version().split('.')
++
++vconf = configuration_data()
++vconf.set('VERSION_CODE', version[0].to_int() * 256 + version[1].to_int())
++vconf.set('EXTRAVERSION', '"@0@"'.format(version[2]))
++vconf.set('FILE_VERSION', '""')
++vconf.set('VERSION_STRING', '"@0@"'.format(meson.project_version()))
++
++version_tag = get_option('version-tag')
++if version_tag != ''
++ vconf.set('VERSION_GIT', '"@0@"'.format(version_tag))
++else
++ r = run_command(
++ 'meson-vcs-tag.sh',
++ meson.current_source_dir(),
++ meson.project_version(),
++ check: true)
++ vconf.set('VERSION_GIT', '"@0@"'.format(r.stdout().strip()))
++endif
++version_h = configure_file(
++ output: 'tc_version.h',
++ configuration: vconf)
++
++add_project_arguments(
++ [
++ '-D_GNU_SOURCE',
++ '-include', 'config.h',
++ ],
++ language : 'c')
++
++incdir = include_directories(['.', 'include'])
++
++# libtracecmd: trace-cmd currently depends on a statically linked
++# libtracecmd. libtracecmd is sill very strongly coupled with
++# trace-cmd (or the other way around). To reduce the development setup
++# complexity we add some of the 'top meson.build' from libtracecmd and
++# make it simpler to use.
++library_version = '1.3.0'
++libtracecmd_standalone_build = false
++libtracecmd_ext_incdir = include_directories(
++ [
++ 'include',
++ 'include/trace-cmd',
++ 'tracecmd/include'
++ ])
++subdir('lib/trace-cmd/include')
++subdir('lib/trace-cmd/include/private')
++subdir('lib/trace-cmd')
++
++# trace-cmd
++subdir('tracecmd')
++subdir('python')
++if cunit_dep.found()
++ subdir('utest')
++endif
++subdir('Documentation/trace-cmd')
++
++custom_target(
++ 'docs',
++ output: 'docs',
++ depends: [html, man],
++ command: ['echo'])
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 000000000000..2d5d7457bed5
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,23 @@
++# -*- mode: meson -*-
++# SPDX-License-Identifier: GPL-2.0
++
++option('version-tag', type : 'string',
++ description : 'override the git version string')
++option('vsock', type : 'boolean', value : true,
++ description : 'build with vsock support')
++option('ptrace', type : 'boolean', value : true,
++ description : 'build with ptrace support')
++option('htmldir', type : 'string', value : 'share/doc/trace-cmd-doc',
++ description : 'directory for HTML documentation')
++option('asciidoctor', type : 'boolean', value: false,
++ description : 'use asciidoctor instead of asciidoc')
++option('docbook-xls-172', type : 'boolean', value : false,
++ description : 'enable docbook XLS 172 workaround')
++option('asciidoc-no-roff', type : 'boolean', value : false,
++ description : 'enable no roff workaround')
++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('python', type : 'combo', choices : ['auto', 'true', 'false'],
++ description : 'Generate trac-cmd Python bindings')
+diff --git a/python/meson.build b/python/meson.build
+new file mode 100644
+index 000000000000..5a91ff63a326
+--- /dev/null
++++ b/python/meson.build
+@@ -0,0 +1,40 @@
++# SPDX-License-Identifier: GPL-2.0
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++want_python = get_option('python')
++if want_python != 'false'
++ python3 = import('python').find_installation('python3')
++ py3_dep = python3.dependency(required: want_python == 'true')
++ swig = find_program('swig', required: want_python == 'true')
++ header_found = cc.has_header('Python.h', dependencies: py3_dep)
++ have_python_support = py3_dep.found() and swig.found() and header_found
++else
++ have_python_support = false
++endif
++
++if have_python_support
++ pymod_swig = custom_target(
++ 'ctracecmd.py',
++ input: ['ctracecmd.i'],
++ output: ['ctracecmd.py', 'ctracecmd_wrap.c'],
++ command: [
++ swig,
++ '-python',
++ '-I' + meson.current_source_dir() + '/../include/trace-cmd',
++ '-I' + libtraceevent_dep.get_pkgconfig_variable('prefix') + '/include/traceevent',
++ '-o', '@OUTPUT1@',
++ '@INPUT0@'],
++ install: true,
++ install_dir: [ python3.get_install_dir(pure: false, subdir: 'trace-cmd'), false])
++
++ incdir_py = include_directories(['.', '../include/trace-cmd'])
++
++ pyctracecmd_clib = python3.extension_module(
++ '_ctracecmd',
++ pymod_swig[1],
++ dependencies : [libtraceevent_dep, libtracefs_dep, py3_dep],
++ include_directories: [incdir, incdir_py],
++ install: true,
++ subdir: 'trace-cmd')
++endif
+diff --git a/tracecmd/meson.build b/tracecmd/meson.build
+new file mode 100644
+index 000000000000..bb0b5ca547fb
+--- /dev/null
++++ b/tracecmd/meson.build
+@@ -0,0 +1,59 @@
++# SPDX-License-Identifier: GPL-2.0
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++sources = [
++ 'trace-agent.c',
++ 'trace-check-events.c',
++ 'trace-clear.c',
++ 'trace-cmd.c',
++ 'trace-convert.c',
++ 'trace-dump.c',
++ 'trace-hist.c',
++ 'trace-list.c',
++ 'trace-listen.c',
++ 'trace-mem.c',
++ 'trace-profile.c',
++ 'trace-read.c',
++ 'trace-record.c',
++ 'trace-restore.c',
++ 'trace-setup-guest.c',
++ 'trace-show.c',
++ 'trace-snapshot.c',
++ 'trace-split.c',
++ 'trace-stack.c',
++ 'trace-stat.c',
++ 'trace-stream.c',
++ 'trace-tsync.c',
++ 'trace-usage.c',
++ 'trace-vm.c',
++]
++
++if vsock_defined
++ sources += 'trace-vsock.c'
++endif
++
++trace_cmd_incdir = include_directories(['.', 'include'])
++
++executable(
++ 'trace-cmd',
++ sources,
++ dependencies: [
++ libtraceevent_dep,
++ libtracefs_dep,
++ zlib_dep,
++ libzstd_dep,
++ audit_dep],
++ include_directories: [
++ incdir,
++ trace_cmd_incdir,
++ libtracecmd_incdir,
++ libtracecmd_private_incdir,
++ libtracecmd_ext_incdir],
++ link_with: [static_libtracecmd],
++ install: true,
++ install_dir: bindir)
++
++install_data(
++ 'trace-cmd.bash',
++ install_dir: datadir + '/bash-completion/completions')
+diff --git a/utest/meson.build b/utest/meson.build
+new file mode 100644
+index 000000000000..c1cc837c7639
+--- /dev/null
++++ b/utest/meson.build
+@@ -0,0 +1,26 @@
++# SPDX-License-Identifier: GPL-2.0
++#
++# Copyright (c) 2023 Daniel Wagner, SUSE LLC
++
++sources = [
++ 'tracecmd-utest.c',
++ 'trace-utest.c',
++]
++
++e = executable(
++ 'trace-utest',
++ sources,
++ include_directories: [
++ incdir,
++ libtracecmd_incdir,
++ libtracecmd_private_incdir,
++ libtracecmd_ext_incdir],
++ dependencies: [
++ libtraceevent_dep,
++ libtracefs_dep,
++ zlib_dep,
++ libzstd_dep,
++ cunit_dep],
++ link_with: [static_libtracecmd])
++
++test('trace-utest', e)
+--
+2.39.1
+
diff --git a/libtracecmd.changes b/libtracecmd.changes
index b17742d..d358f66 100644
--- a/libtracecmd.changes
+++ b/libtracecmd.changes
@@ -1,4 +1,24 @@
-------------------------------------------------------------------
+Tue Feb 7 13:40:37 UTC 2023 - Daniel Wagner
+
+- Sync meson build patch with latest upstream version
+ * Documentation is built via extra build target
+
+-------------------------------------------------------------------
+Sun Jan 22 00:15:45 UTC 2023 - Jan Engelhardt
+
+- Update to release 1.3.1
+ * No changelog was provided
+- Delete static-assign.patch
+
+-------------------------------------------------------------------
+Wed Dec 28 07:45:24 UTC 2022 - Daniel Wagner
+
+- Build project with Meson
+ * add 0001-libtracecmd-Add-initial-support-for-meson.patch
+ * add 0002-trace-cmd-Add-initial-support-for-meson.patch
+
+-------------------------------------------------------------------
Fri Dec 16 14:59:50 UTC 2022 - Jan Engelhardt
- Update to release 1.3.0
diff --git a/libtracecmd.spec b/libtracecmd.spec
index 3cf92b9..e39637d 100644
--- a/libtracecmd.spec
+++ b/libtracecmd.spec
@@ -1,7 +1,7 @@
#
# spec file for package libtracecmd
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,19 +18,21 @@
Name: libtracecmd
%define lname libtracecmd1
-Version: 1.3.0
+Version: 1.3.1
Release: 0
Summary: Library for creating and reading trace-cmd data files
License: LGPL-2.1-only
Group: Development/Libraries/C and C++
URL: https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git
Source: https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/trace-cmd-libtracecmd-%version.tar.gz
-Patch1: static-assign.patch
+Patch1: 0001-libtracecmd-Add-initial-support-for-meson.patch
+Patch2: 0002-trace-cmd-Add-initial-support-for-meson.patch
BuildRequires: asciidoc
BuildRequires: fdupes
BuildRequires: libtraceevent-devel
BuildRequires: libtracefs-devel >= 1.6
BuildRequires: libzstd-devel
+BuildRequires: meson
BuildRequires: source-highlight
BuildRequires: xmlto
@@ -47,43 +49,41 @@ Library for creating and reading trace-cmd data files
%package devel
Summary: Development files for libtracecmd
Group: Development/Libraries/C and C++
-Requires: %{lname} = %{version}
+Requires: %lname = %version
%description devel
Development files of the libtracecmd library
%prep
-%autosetup -p1 -n trace-cmd-libtracecmd-%{version}
+%autosetup -p1 -n trace-cmd-libtracecmd-%version
%build
-%make_build V=1 prefix=%{_prefix} libdir=%{_libdir} libs
-make -j1 V=1 MANPAGE_DOCBOOK_XSL=%{_datadir}/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl doc
+cd lib
+%meson \
+ --default-library=shared \
+ -Dhtmldir="%_docdir/%name"
+%meson_build
+%meson_build docs
%install
-make -j1 V=1 DESTDIR=%buildroot \
- libdir=%{_libdir} prefix=%{_prefix} \
- pkgconfig_dir=%{_libdir}/pkgconfig \
- htmldir=%{_docdir}/libtracecmd pdfdir=%{_docdir}/libtracecmd \
- install_libs install_doc
-# remove files already built&shipped in trace-cmd
-for i in man1 man5 man8; do
- rm -Rf "%buildroot/%_mandir/$i"
-done
+cd lib
+%meson_install
+
%fdupes %buildroot/%_prefix
-%post -n %{lname} -p /sbin/ldconfig
-%postun -n %{lname} -p /sbin/ldconfig
+%post -n %lname -p /sbin/ldconfig
+%postun -n %lname -p /sbin/ldconfig
-%files -n %{lname}
-%{_libdir}/libtracecmd.so.1*
+%files -n %lname
+%_libdir/libtracecmd.so.1*
%license COPYING.LIB
%files devel
-%{_includedir}/trace-cmd
-%{_libdir}/libtracecmd.so
-%{_libdir}/pkgconfig/*.pc
-%{_mandir}/man*/*
-%{_docdir}/libtracecmd
+%_includedir/trace-cmd
+%_libdir/libtracecmd.so
+%_libdir/pkgconfig/*.pc
+%_mandir/man*/*
+%_docdir/libtracecmd
%license COPYING.LIB
%doc README
diff --git a/static-assign.patch b/static-assign.patch
deleted file mode 100644
index 26c539e..0000000
--- a/static-assign.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From: Jan Engelhardt
-Date: 2022-12-03 14:04:21.501944293 +0100
-References: https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/FPNDORIL6NDJD3HFQ76LQBIRBCWVG6TV/
-Upstream: no
-
-Mark a few vars as := in the hope to the cut the number of recursive
-pkg-config calls at least by some amount. It's not a panacea,
-you really must split the "configure" and the "build" steps
-and not conflate them together. Use autotools/cmake/meson/whatever.
-Not this.
-
----
- Makefile | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-Index: trace-cmd-libtracecmd-1.2.0/Makefile
-===================================================================
---- trace-cmd-libtracecmd-1.2.0.orig/Makefile
-+++ trace-cmd-libtracecmd-1.2.0/Makefile
-@@ -221,8 +221,8 @@ LIBS ?= -ldl
- LIBTRACECMD_DIR = $(obj)/lib/trace-cmd
- LIBTRACECMD_STATIC = $(LIBTRACECMD_DIR)/libtracecmd.a
- LIBTRACECMD_SHARED = $(LIBTRACECMD_DIR)/libtracecmd.so.$(LIBTRACECMD_VERSION)
--LIBTRACECMD_SHARED_VERSION = $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\.[0-9]*\).*/\1/')
--LIBTRACECMD_SHARED_SO = $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\).*/\1/')
-+LIBTRACECMD_SHARED_VERSION := $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\.[0-9]*\).*/\1/')
-+LIBTRACECMD_SHARED_SO := $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\).*/\1/')
-
- export LIBTRACECMD_STATIC LIBTRACECMD_SHARED
- export LIBTRACECMD_SHARED_VERSION LIBTRACECMD_SHARED_SO
-@@ -230,12 +230,12 @@ export LIBTRACECMD_SHARED_VERSION LIBTRA
- LIBTRACEEVENT=libtraceevent
- LIBTRACEFS=libtracefs
-
--TEST_LIBTRACEEVENT = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) $(LIBTRACEEVENT) > /dev/null 2>&1 && echo y")
--TEST_LIBTRACEFS = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) $(LIBTRACEFS) > /dev/null 2>&1 && echo y")
-+TEST_LIBTRACEEVENT := $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) $(LIBTRACEEVENT) > /dev/null 2>&1 && echo y")
-+TEST_LIBTRACEFS := $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) $(LIBTRACEFS) > /dev/null 2>&1 && echo y")
-
- ifeq ("$(TEST_LIBTRACEEVENT)", "y")
--LIBTRACEEVENT_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEEVENT)")
--LIBTRACEEVENT_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEEVENT)")
-+LIBTRACEEVENT_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEEVENT)")
-+LIBTRACEEVENT_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEEVENT)")
- else
- .PHONY: warning
- warning:
-@@ -253,8 +253,8 @@ endif
- export LIBTRACEEVENT_CFLAGS LIBTRACEEVENT_LDLAGS
-
- ifeq ("$(TEST_LIBTRACEFS)", "y")
--LIBTRACEFS_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEFS)")
--LIBTRACEFS_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEFS)")
-+LIBTRACEFS_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEFS)")
-+LIBTRACEFS_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEFS)")
- else
- .PHONY: warning
- warning:
-@@ -324,11 +324,11 @@ endif
- export ZLIB_LDLAGS
-
- ifndef NO_LIBZSTD
--TEST_LIBZSTD = $(shell sh -c "$(PKG_CONFIG) --atleast-version 1.4.0 libzstd > /dev/null 2>&1 && echo y")
-+TEST_LIBZSTD := $(shell sh -c "$(PKG_CONFIG) --atleast-version 1.4.0 libzstd > /dev/null 2>&1 && echo y")
-
- ifeq ("$(TEST_LIBZSTD)", "y")
--LIBZSTD_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags libzstd")
--LIBZSTD_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs libzstd")
-+LIBZSTD_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags libzstd")
-+LIBZSTD_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs libzstd")
- CFLAGS += -DHAVE_ZSTD
- ZSTD_INSTALLED=1
- $(info Have ZSTD compression support)
-@@ -571,10 +571,10 @@ report_nopythondev: force
- $(Q)echo
-
- ifndef NO_PYTHON
--PYTHON_INCLUDES = `$(PKG_CONFIG) --cflags $(PYTHON_PKGCONFIG_VERS)`
--PYTHON_LDFLAGS = `$(PKG_CONFIG) --libs $(PYTHON_PKGCONFIG_VERS)` \
-+PYTHON_INCLUDES := `$(PKG_CONFIG) --cflags $(PYTHON_PKGCONFIG_VERS)`
-+PYTHON_LDFLAGS := `$(PKG_CONFIG) --libs $(PYTHON_PKGCONFIG_VERS)` \
- $(shell $(PYTHON_VERS)-config --ldflags)
--PYGTK_CFLAGS = `$(PKG_CONFIG) --cflags pygtk-2.0`
-+PYGTK_CFLAGS := `$(PKG_CONFIG) --cflags pygtk-2.0`
- else
- PYTHON_INCLUDES =
- PYTHON_LDFLAGS =
diff --git a/trace-cmd-libtracecmd-1.3.0.tar.gz b/trace-cmd-libtracecmd-1.3.0.tar.gz
deleted file mode 120000
index 152b72f..0000000
--- a/trace-cmd-libtracecmd-1.3.0.tar.gz
+++ /dev/null
@@ -1 +0,0 @@
-/ipfs/bafybeiagmjtfio5dkkotazeyj6ux7mmbw53muelf7irybkwud4bvwbvxpa
\ No newline at end of file
diff --git a/trace-cmd-libtracecmd-1.3.1.tar.gz b/trace-cmd-libtracecmd-1.3.1.tar.gz
new file mode 120000
index 0000000..754734a
--- /dev/null
+++ b/trace-cmd-libtracecmd-1.3.1.tar.gz
@@ -0,0 +1 @@
+/ipfs/bafybeifw6ysa6ioiegcwuyrzsl35zzqaakufsl4gmkhiybkcrsnkoomcbq
\ No newline at end of file