[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Can we run QEMU Avocado tests without root access?
From: |
Cleber Rosa |
Subject: |
Re: Can we run QEMU Avocado tests without root access? |
Date: |
Mon, 22 Feb 2021 11:28:31 -0500 |
On Mon, Feb 22, 2021 at 12:23:17AM +0100, Philippe Mathieu-Daudé wrote:
> Hi,
>
> On a system I want to run the QEMU integration tests I got:
>
Would you care to give more information about this system? Is it
possible that it's a Debian-like system with "python3-minimal"
installed instead of "python3"?
> $ make check-venv
> GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3
> tests/fp/berkeley-softfloat-3 dtc capstone slirp
> VENV build/tests/venv
> The virtual environment was not created successfully because ensurepip
> is not
> available. On Debian/Ubuntu systems, you need to install the python3-venv
> package using the following command.
>
> apt-get install python3-venv
>
> You may need to use sudo with that command. After installing the
> python3-venv
> package, recreate your virtual environment.
>
> Failing command: ['build/tests/venv/bin/python3', '-Im', 'ensurepip',
> '--upgrade', '--default-pip']
>
make check-{venv,acceptance} won't attempt to install pip, so I'm
guessing this message is coming from the Python distribution on
your system. And notice that the bare venv *has* been created.
> make: *** [/home/philmd/qemu/tests/Makefile.include:98:
> build/tests/venv] Error 1
>
> However I could do:
>
> $ python3 -m pip install --user virtualenv
> Collecting virtualenv
> Downloading virtualenv-20.4.2-py2.py3-none-any.whl (7.2 MB)
> |████████████████████████████████| 7.2 MB 6.4 MB/s
> Collecting distlib<1,>=0.3.1
> Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
> |████████████████████████████████| 335 kB 6.4 MB/s
> Collecting appdirs<2,>=1.4.3
> Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
> Requirement already satisfied: six<2,>=1.9.0 in
> /usr/lib/python3/dist-packages (from virtualenv) (1.15.0)
> Collecting filelock<4,>=3.0.0
> Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
> Installing collected packages: distlib, appdirs, filelock, virtualenv
> Successfully installed appdirs-1.4.4 distlib-0.3.1 filelock-3.0.12
> virtualenv-20.4.2
>
> $ virtualenv --version
> virtualenv 20.4.2 from
> /home/philmd/.local/lib/python3.9/site-packages/virtualenv/__init__.py
>
> Note, there is still the old tests/venv/ dir created bug:
>
OK, noted. We not have a formal bug report to work on:
https://bugs.launchpad.net/qemu/+bug/1916506
> $ make check-venv
> GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3
> tests/fp/berkeley-softfloat-3 dtc capstone slirp
> make: Nothing to be done for 'check-venv'.
>
> Although it might be true... If I don't have root access, there is
> nothing to be done ¯\_(ツ)_/¯
>
With regards to your question on the subject line, one could attempt
to have a secondary Python installation with the *required packages*
(as per the documentation) installed as a non-root user. And then,
you could give that Python path to configure. The current
documentation states:
Note: the build environment must be using a Python 3 stack, and have
the ``venv`` and ``pip`` packages installed. If necessary, make sure
``configure`` is called with ``--python=`` and that those modules are
available. On Debian and Ubuntu based systems, depending on the
specific version, they may be on packages named ``python3-venv`` and
``python3-pip``.
IIUC, the improvement you suggest is to not require "python-venv" as a
package, but install it via "python3 -m pip". One possible way to
rely *only* on Python 3 and setuptools (dropping venv and pip
requirements) would be to do something like:
$ python3 -m ensurepip
$ python3 -m pip install venv
$ make check-venv
It's a valid approach, in theory. In practice, depending on your
distro, you may not have "ensurepip" at all, even if it is a *standard
Python library*:
https://docs.python.org/3/library/ensurepip.html
You can read about how those packaging decisions can become hell
in bug reports such as:
https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847
In my experience, venv and pip have caveats and using the distro's
(complete) packages will give you an overall better experience.
While *one* could setup the dependencies as non-root, but I don't
think it should be used in the current check-venv rule.
Regards,
- Cleber.
> Thanks,
>
> Phil.
>
signature.asc
Description: PGP signature