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