On 17/1/24 08:44, Andrea Bolognani wrote:
On Wed, Jan 17, 2024 at 08:18:27AM +0100, Thomas Huth wrote:
On 17/01/2024 00.09, Fabiano Rosas wrote:
Avocado needs sqlite3:

    Failed to load plugin from module "avocado.plugins.journal":
    ImportError("Module 'sqlite3' is not installed.
    Use: sudo zypper install python311 to install it")

Include the appropriate package in the dockerfile.

  From 'zypper info python311':
    "This package supplies rich command line features provided by
    readline, and sqlite3 support for the interpreter core, thus forming
    a so called "extended" runtime."

Weird choice on Python's part to have sqlite3 support as part of the
standard library IMO, but that's "batteries included" for you :)

+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -90,6 +90,7 @@ RUN zypper update -y && \
              pcre-devel-static \
              pipewire-devel \
              pkgconfig \
+           python311 \
              python311-base \
              python311-pip \
              python311-setuptools \

AFAIK tests/docker/dockerfiles/opensuse-leap.docker is auto-generated, so
this will be lost once somebody else runs lcitool again...

I don't really have a clue, but I guess this has to be fixed in the upstream
lcitool first ( https://gitlab.com/libvirt/libvirt-ci ), and then we need to
update our lcitool status in QEMU afterwards. Maybe Daniel can advise for
the right stteps here...?

It looks like a bunch of mappings are maintained in
tests/lcitool/mappings.yml instead of the main lcitool repository.

See commit 32c0613113 for mapping override use:

    ci, docker: update CentOS and OpenSUSE Python to non-EOL versions

    Python 3.6 is at end-of-life.  Update the libvirt-ci module to a
    version that supports overrides for targets and package mappings;
    this way, QEMU can use the newer versions provided by CentOS 8
    (Python 3.8) and OpenSUSE 15.3 (Python 3.9).

diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
index 11c651ca08..362a26698b 100644
--- a/docs/devel/testing.rst
+++ b/docs/devel/testing.rst
@@ -479,6 +479,12 @@ first to contribute the mapping to the ``libvirt-ci`` project:
    contains the ``mappings.yml`` update.  Then add the prerequisite and
    run ``make lcitool-refresh``.

+For enterprise distros that default to old, end-of-life versions of the
+Python runtime, QEMU uses a separate set of mappings that work with more
+recent versions.  These can be found in ``tests/lcitool/mappings.yml``.
+Modifying this file should not be necessary unless the new pre-requisite
+is a Python library or tool.

So
I think you need to apply the diff below, then run

   $ git submodule update --init tests/lcitool/libvirt-ci
   $ tests/lcitool/refresh

to propagate the changes to the generated files.


diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
index 0b908882f1..407c03301b 100644
--- a/tests/lcitool/mappings.yml
+++ b/tests/lcitool/mappings.yml
@@ -59,6 +59,10 @@ mappings:
      CentOSStream8:
      OpenSUSELeap15:

+  python3-sqlite3:
+    CentOSStream8: python38
+    OpenSUSELeap15: python311
+
    python3-tomli:
      # test using tomllib
      apk:
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index 82092c9f17..149b15de57 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -97,6 +97,7 @@ packages:
   - python3-pip
   - python3-sphinx
   - python3-sphinx-rtd-theme
+ - python3-sqlite3
   - python3-tomli
   - python3-venv
   - rpm2cpio

LGTM.

Reply via email to