Currently, we "implicitly" install the local 'qemu' python package for 'make check-venv' with some logic inside tests/Makefile.include. I would like to make this installation explicit in pythondeps.toml instead.
The version constraint specification that Python specifies does not support relative paths, so it is difficult (or impossible?) to specify a path within the source tree, and we will need a workaround to do so. By specifying a package name that starts with $SRCROOT, you can now specify a file path to a local package for installation. This is done to allow us to install the python packages hosted inside of the tree while also processing dependencies; i.e. so that our "qemu" package can specify that it needs "qemu.qmp", which soon will not be included in qemu.git. Signed-off-by: John Snow <[email protected]> --- python/scripts/mkvenv.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/python/scripts/mkvenv.py b/python/scripts/mkvenv.py index a22e3ee3394..e38292b63a6 100644 --- a/python/scripts/mkvenv.py +++ b/python/scripts/mkvenv.py @@ -736,6 +736,10 @@ def _do_ensure( present = [] canary = None for name, info in group.items(): + if name.startswith("$SRCROOT/"): + srcroot = Path(__file__).parents[2] + absent.append(name.replace("$SRCROOT/", f"file:///{srcroot}/")) + continue constraint = _make_version_constraint(info, False) matcher = Matcher(name + constraint) print(f"mkvenv: checking for {matcher}", file=sys.stderr) -- 2.51.1
