On Sat, 12 Aug 2023 at 13:10, Akihiko Odaki <akihiko.od...@daynix.com> wrote: > > On 2023/08/12 15:15, Akihiko Odaki wrote: > > The arguments in MESONINTROSPECT are quoted with shlex.quote() so it > > must be parsed with shlex.split(). > > > > Fixes: cf60ccc330 ("cutils: Introduce bundle mechanism") > > Reported-by: Michael Tokarev <m...@tls.msk.ru> > > Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com> > > --- > > scripts/symlink-install-tree.py | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/scripts/symlink-install-tree.py > > b/scripts/symlink-install-tree.py > > index 8ed97e3c94..b72563895c 100644 > > --- a/scripts/symlink-install-tree.py > > +++ b/scripts/symlink-install-tree.py > > @@ -4,6 +4,7 @@ > > import errno > > import json > > import os > > +import shlex > > import subprocess > > import sys > > > > @@ -14,7 +15,7 @@ def destdir_join(d1: str, d2: str) -> str: > > return str(PurePath(d1, *PurePath(d2).parts[1:])) > > > > introspect = os.environ.get('MESONINTROSPECT') > > -out = subprocess.run([*introspect.split(' '), '--installed'], > > +out = subprocess.run([*shlex.split(introspect), '--installed'], > > stdout=subprocess.PIPE, check=True).stdout > > for source, dest in json.loads(out).items(): > > bundle_dest = destdir_join('qemu-bundle', dest) > > Please do NOT merge this. This will break Windows builds. I'm putting > this patch on hold. > > The problem is that Meson uses a different logic for escaping arguments > in MESONINTROSPECT on Windows. I'll wait till Meson maintainers figure > out how MESONINTROSPECT should be used. For details, see: > https://github.com/mesonbuild/meson/pull/12115#issuecomment-1675863266
Am I correct in understanding from https://github.com/mesonbuild/meson/pull/12807 that the eventual resolution that Meson upstream decided was to restore the behaviour that regardless of platform the right way to split the file is shlex.split()? If so, then I think we should resurrect and apply this patch, since at the moment configuring QEMU fails if, for instance, the build tree directory name has a '~' character in it. thanks -- PMM