On Wed, 11 Jun 2025, Stefan Hajnoczi wrote:
From: oltolm <oleg.tolmat...@gmail.com>

Sorry, I forgot to cc the maintainers.

Do we want comments like this end up in git log? This could have been fixed before a pull. Also the other pull request about uninitialised stack variables had hw/audio/gus twice which was pointed out by a comment before the pull that one of those should be different but the pull request still had this error. Did you miss these or aren't these important enough to fix before getting in git log forever or there is just no easy way to fix up commit messages in pull requests?

Regards,
BALATON Zoltan

The build failed when run on Windows. I replaced calls to Unix programs
like ´cat´, ´sed´ and ´true´ with calls to ´python´. I wrapped calls to
´os.path.relpath´ in try-except because it can fail when the two paths
are on different drives. I made sure to convert the Windows paths to
Unix paths to prevent warnings in generated files.

Signed-off-by: oltolm <oleg.tolmat...@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Acked-by: Alex Bennée <alex.ben...@linaro.org>
Message-id: 20250607094503.1307-2-oleg.tolmat...@gmail.com
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
---
contrib/plugins/meson.build         |  2 +-
plugins/meson.build                 |  2 +-
scripts/tracetool/__init__.py       | 15 ++++++++++++---
scripts/tracetool/backend/ftrace.py |  4 +---
scripts/tracetool/backend/log.py    |  4 +---
scripts/tracetool/backend/syslog.py |  4 +---
tests/functional/meson.build        |  4 +---
tests/include/meson.build           |  2 +-
tests/tcg/plugins/meson.build       |  2 +-
trace/meson.build                   |  5 +++--
10 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
index fa8a426c8b..1876bc7843 100644
--- a/contrib/plugins/meson.build
+++ b/contrib/plugins/meson.build
@@ -24,7 +24,7 @@ endif
if t.length() > 0
  alias_target('contrib-plugins', t)
else
-  run_target('contrib-plugins', command: find_program('true'))
+  run_target('contrib-plugins', command: [python, '-c', ''])
endif

plugin_modules += t
diff --git a/plugins/meson.build b/plugins/meson.build
index b20edfbabc..62c991d87f 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -33,7 +33,7 @@ if host_os == 'windows'
    input: qemu_plugin_symbols,
    output: 'qemu_plugin_api.def',
    capture: true,
-    command: ['sed', '-e', '0,/^/s//EXPORTS/; s/[{};]//g', '@INPUT@'])
+    command: [python, '-c', 'import fileinput, re; print("EXPORTS", end=""); 
[print(re.sub(r"[{};]", "", line), end="") for line in fileinput.input()]', '@INPUT@'])

  # then use dlltool to assemble a delaylib.
  # The delaylib will have an "imaginary" name (qemu.exe), that is used by the
diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index bc03238c0f..6dfcbf71e1 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -12,12 +12,14 @@
__email__      = "stefa...@redhat.com"


+import os
import re
import sys
import weakref
+from pathlib import PurePath

-import tracetool.format
import tracetool.backend
+import tracetool.format


def error_write(*lines):
@@ -36,7 +38,7 @@ def error(*lines):

def out_open(filename):
    global out_filename, out_fobj
-    out_filename = filename
+    out_filename = posix_relpath(filename)
    out_fobj = open(filename, 'wt')

def out(*lines, **kwargs):
@@ -308,7 +310,7 @@ def build(line_str, lineno, filename):
            fmt = [fmt_trans, fmt]
        args = Arguments.build(groups["args"])

-        return Event(name, props, fmt, args, lineno, filename)
+        return Event(name, props, fmt, args, lineno, posix_relpath(filename))

    def __repr__(self):
        """Evaluable string representation for this object."""
@@ -447,3 +449,10 @@ def generate(events, group, format, backends,
    tracetool.backend.dtrace.PROBEPREFIX = probe_prefix

    tracetool.format.generate(events, format, backend, group)
+
+def posix_relpath(path, start=None):
+    try:
+        path = os.path.relpath(path, start)
+    except ValueError:
+        pass
+    return PurePath(path).as_posix()
diff --git a/scripts/tracetool/backend/ftrace.py 
b/scripts/tracetool/backend/ftrace.py
index baed2ae61c..5fa30ccc08 100644
--- a/scripts/tracetool/backend/ftrace.py
+++ b/scripts/tracetool/backend/ftrace.py
@@ -12,8 +12,6 @@
__email__      = "stefa...@redhat.com"


-import os.path
-
from tracetool import out


@@ -47,7 +45,7 @@ def generate_h(event, group):
        args=event.args,
        event_id="TRACE_" + event.name.upper(),
        event_lineno=event.lineno,
-        event_filename=os.path.relpath(event.filename),
+        event_filename=event.filename,
        fmt=event.fmt.rstrip("\n"),
        argnames=argnames)

diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
index de27b7e62e..17ba1cd90e 100644
--- a/scripts/tracetool/backend/log.py
+++ b/scripts/tracetool/backend/log.py
@@ -12,8 +12,6 @@
__email__      = "stefa...@redhat.com"


-import os.path
-
from tracetool import out


@@ -55,7 +53,7 @@ def generate_h(event, group):
        '    }',
        cond=cond,
        event_lineno=event.lineno,
-        event_filename=os.path.relpath(event.filename),
+        event_filename=event.filename,
        name=event.name,
        fmt=event.fmt.rstrip("\n"),
        argnames=argnames)
diff --git a/scripts/tracetool/backend/syslog.py 
b/scripts/tracetool/backend/syslog.py
index 012970f6cc..5a3a00fe31 100644
--- a/scripts/tracetool/backend/syslog.py
+++ b/scripts/tracetool/backend/syslog.py
@@ -12,8 +12,6 @@
__email__      = "stefa...@redhat.com"


-import os.path
-
from tracetool import out


@@ -43,7 +41,7 @@ def generate_h(event, group):
        '    }',
        cond=cond,
        event_lineno=event.lineno,
-        event_filename=os.path.relpath(event.filename),
+        event_filename=event.filename,
        name=event.name,
        fmt=event.fmt.rstrip("\n"),
        argnames=argnames)
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 557d59ddf4..4bce961c04 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -412,6 +412,4 @@ foreach speed : ['quick', 'thorough']
  endforeach
endforeach

-run_target('precache-functional',
-           depends: precache_all,
-           command: ['true'])
+alias_target('precache-functional', precache_all)
diff --git a/tests/include/meson.build b/tests/include/meson.build
index 9abba308fa..8e8d1ec4e6 100644
--- a/tests/include/meson.build
+++ b/tests/include/meson.build
@@ -13,4 +13,4 @@ test_qapi_outputs_extra = [
test_qapi_files_extra = custom_target('QAPI test (include)',
                                      output: test_qapi_outputs_extra,
                                      input: test_qapi_files,
-                                      command: 'true')
+                                      command: [python, '-c', ''])
diff --git a/tests/tcg/plugins/meson.build b/tests/tcg/plugins/meson.build
index 41f02f2c7f..029342282a 100644
--- a/tests/tcg/plugins/meson.build
+++ b/tests/tcg/plugins/meson.build
@@ -17,7 +17,7 @@ endif
if t.length() > 0
  alias_target('test-plugins', t)
else
-  run_target('test-plugins', command: find_program('true'))
+  run_target('test-plugins', command: [python, '-c', ''])
endif

plugin_modules += t
diff --git a/trace/meson.build b/trace/meson.build
index 3df4549355..9c42a57a05 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -4,7 +4,7 @@ trace_events_files = []
foreach item : [ '.' ] + trace_events_subdirs + qapi_trace_events
  if item in qapi_trace_events
    trace_events_file = item
-    group_name = item.full_path().split('/')[-1].underscorify()
+    group_name = fs.name(item).underscorify()
  else
    trace_events_file = meson.project_source_root() / item / 'trace-events'
    group_name = item == '.' ? 'root' : item.underscorify()
@@ -57,10 +57,11 @@ foreach item : [ '.' ] + trace_events_subdirs + 
qapi_trace_events
  endif
endforeach

+cat = [ python, '-c', 'import fileinput; [print(line, end="") for line in 
fileinput.input()]', '@INPUT@' ]
trace_events_all = custom_target('trace-events-all',
                                 output: 'trace-events-all',
                                 input: trace_events_files,
-                                 command: [ 'cat', '@INPUT@' ],
+                                 command: cat,
                                 capture: true,
                                 install: get_option('trace_backends') != [ 
'nop' ],
                                 install_dir: qemu_datadir)
--
2.49.0


Reply via email to