The 'lcitool variables $OS qemu' command produces a file containing
consistent environment variables helpful to build QEMU on $OS.
In particular the $PKGS variable contains the packages required to
build QEMU.

Since some of these files are committed in the repository (see
0e103a65ba "gitlab: support for FreeBSD 12, 13 and macOS 11 via
cirrus-run"), we can parse these files to get the package list
required to build a VM.

Add the get_qemu_packages_from_lcitool_vars() helper which return
such package list from a lcitool env var file.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
 tests/vm/basevm.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 8ec021ddcf..2632c3d41a 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -522,6 +522,12 @@ def get_qemu_version(qemu_path):
     version_num = re.split(' |\(', version_line)[3].split('.')[0]
     return int(version_num)
 
+def get_qemu_packages_from_lcitool_vars(vars_path):
+    """Parse a lcitool variables file and return the PKGS list."""
+    with open(vars_path, 'r') as fd:
+        line = list(filter(lambda y: y.startswith('PKGS'), fd.readlines()))[0]
+        return line.split("'")[1].split()
+
 def parse_config(config, args):
     """ Parse yaml config and populate our config structure.
         The yaml config allows the user to override the
-- 
2.38.1


Reply via email to