On Thu, May 5, 2022, 4:09 AM Daniel P. Berrangé wrote: > On Wed, May 04, 2022 at 03:38:45PM -0400, John Snow wrote: > > Howdy! > > > > So, I want to finally delete python/qemu/qmp from qemu.git, and this > > creates a small problem -- namely, iotests needs access to it in order > > to run the python-based tests. > > > > What I think needs to happen is that we create a virtual environment > > that installs python/qemu/. The reason this cannot be done with > > PYTHONPATH alone anymore is because the qmp package itself won't be > > there anymore, we need an installer like `pip` to actually fetch it > > for us and put it somewhere. (i.e., we need to process the > > dependencies of python/qemu now and can't treat it as a pre-installed > > location.) > > Having pip fetch it on the fly creates a problem for RPM builds, > because the koji build env has no network access. We will, however, > have an RPM of python-qemu-qmp installed on the host system though. > IOW we need to be able to run iotests using system python and its > installed libs, not a virtual env. So if we do anything with a > virtual env, it will need to be optional I believe. > Hm, do we need iotests during an rpm build? Is it because of "make check"? It's possible to create a venv and run pip in no-network mode, too. If the package we want is installed on the system or otherwise in pip's cache, it'll succeed without network. If the dependencies require a qemu.qmp that's too new, the pip install will just fail instead. I have to test a way to craft a pip statement that's network *optional* though. i.e. try to fetch and fall back to local otherwise. I think it's worth trying to keep the environment setup code unified, and always use a venv. I think this is tractable, though.