Skip to content
Snippets Groups Projects
  1. Aug 28, 2023
    • Paolo Bonzini's avatar
      Revert "tests: Use separate virtual environment for avocado" · c03f57fd
      Paolo Bonzini authored
      This reverts commit e8e4298f.
      
      ensuregroup allows to specify both the acceptable versions of avocado,
      and a locked version to be used when avocado is not installed as a system
      pacakge.  This lets us install avocado in pyvenv/ using "mkvenv.py" and
      reuse the distro package on Fedora and CentOS Stream (the only distros
      where it's available).
      
      ensuregroup's usage of "(>=..., <=...)" constraints when evaluating
      the distro package, and "==" constraints when installing it from PyPI,
      makes it possible to avoid conflicts between the known-good version and
      a package plugins included in the distro.
      
      This is because package plugins have "==" constraints on the version
      that is included in the distro, and, using "pip install avocado==88.1"
      on a venv that includes system packages will result in an error:
      
         avocado-framework-plugin-varianter-yaml-to-mux 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
         avocado-framework-plugin-result-html 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
      
      But at the same time, if the venv does not include a system distribution
      of avocado then we can install a known-good version and stick to LTS
      releases.
      
      Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1663
      
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c03f57fd
    • Paolo Bonzini's avatar
      configure: switch to ensuregroup · c853c4d0
      Paolo Bonzini authored
      
      Using the new ensuregroup command, the desired versions of meson and
      sphinx can be placed in pythondeps.toml rather than configure.
      
      The meson.install entry in pythondeps.toml matches the version that is
      found in python/wheels.  This ensures that mkvenv.py uses the bundled
      wheel even if PyPI is enabled; thus not introducing warnings or errors
      from versions that are more recent than the one used in CI.
      
      The sphinx entries match what is shipped in Fedora 38.  It's the
      last release that has support for older versions of Python (sphinx 6.0
      requires Python 3.8) and especially docutils (of which sphinx 6.0 requires
      version 0.18).  This is important because Ubuntu 20.04 has docutils 0.14
      and Debian 11 has docutils 0.16.
      
      "mkvenv.py ensure" is only used to bootstrap tomli.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c853c4d0
    • Paolo Bonzini's avatar
      python: use vendored tomli · edc21078
      Paolo Bonzini authored
      
      Debian only introduced tomli in the bookworm release.  Use a
      vendored wheel to avoid requiring a package that is only in
      bullseye-backports and is also absent in Ubuntu 20.04.
      
      While at it, fix an issue in the vendor.py scripts which does
      not add a newline after each package and hash.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      edc21078
    • Paolo Bonzini's avatar
      configure: never use PyPI for Meson · 7c3fb52b
      Paolo Bonzini authored
      
      Since there is a vendored copy, there is no point in choosing online
      operation.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7c3fb52b
    • Paolo Bonzini's avatar
      lcitool: bump libvirt-ci submodule and regenerate · dcb8541b
      Paolo Bonzini authored
      
      This brings in a newer version of the pipewire mapping, so rename it.
      
      Python 3.9 and 3.10 do not seem to work in OpenSUSE LEAP 15.5 (weird,
      because 3.9 persisted from 15.3 to 15.4) so bump the Python runtime
      version to 3.11.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      dcb8541b
    • Paolo Bonzini's avatar
      python: mkvenv: add ensuregroup command · 71ed611c
      Paolo Bonzini authored
      
      Introduce a new subcommand that retrieves the packages to be installed
      from a TOML file. This allows being more flexible in using the system
      version of a package, while at the same time using a known-good version
      when installing the package.  This is important for packages that
      sometimes have backwards-incompatible changes or that depend on
      specific versions of their dependencies.
      
      Compared to JSON, TOML is more human readable and easier to edit.  A
      parser is available in 3.11 but also available as a small (12k) package
      for older versions, tomli.  While tomli is bundled with pip, this is only
      true of recent versions of pip.  Of all the supported OSes pretty much
      only FreeBSD has a recent enough version of pip while staying on Python
      <3.11.  So we cannot use the same trick that is in place for distlib.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      71ed611c
    • Paolo Bonzini's avatar
      python: mkvenv: introduce TOML-like representation of dependencies · 0f1ec070
      Paolo Bonzini authored
      
      We would like to place all Python dependencies in the same file, so that
      we can add more information without having long and complex command lines.
      The plan is to have a TOML file with one entry per package, for example
      
        [avocado]
        avocado-framework = {
          accepted = "(>=88.1, <93.0)",
          installed = "88.1",
          canary = "avocado"
        }
      
      Each TOML section will thus be a dictionary of dictionaries.  Modify
      mkvenv.py's workhorse function, _do_ensure, to already operate on such
      a data structure.  The "ensure" subcommand is modified to separate the
      depspec into a name and a version part, and use the result (plus the
      --diagnose argument) to build a dictionary for each command line argument.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0f1ec070
    • Paolo Bonzini's avatar
      python: mkvenv: tweak the matching of --diagnose to depspecs · 67b9a83d
      Paolo Bonzini authored
      
      Move the matching between the "absent" array and dep_specs[0] inside
      the loop, preparing for the possibility of having multiple canaries
      among the installed packages.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      67b9a83d
    • Paolo Bonzini's avatar
      dockerfiles: bump tricore cross compiler container to Debian 11 · 87f77f58
      Paolo Bonzini authored
      
      With the release of version 12 on June 10, 2023, Debian 10 is
      not supported anymore.  Modify the cross compiler container to
      build on a newer version.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      87f77f58
    • Paolo Bonzini's avatar
      configure: fix and complete detection of tricore tools · a3d3de8e
      Paolo Bonzini authored
      
      The tricore tools are not detected when they are installed in
      the host system, only if they are taken from an external
      container.  For this reason the build-tricore-softmmu job
      was not running the TCG tests.
      
      In addition the container provides all tools, not just as/ld/gcc,
      so there is no need to special case tricore.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a3d3de8e
  2. Aug 24, 2023
Loading