Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-libvirt-python for
openSUSE:Factory checked in at 2026-06-02 19:46:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-libvirt-python (Old)
and /work/SRC/openSUSE:Factory/.python-libvirt-python.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-libvirt-python"
Tue Jun 2 19:46:49 2026 rev:103 rq:1356454 version:12.4.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-libvirt-python/python-libvirt-python.changes
2026-05-06 19:17:32.812218829 +0200
+++
/work/SRC/openSUSE:Factory/.python-libvirt-python.new.1937/python-libvirt-python.changes
2026-06-02 19:47:11.472811525 +0200
@@ -1,0 +2,11 @@
+Mon Jun 1 16:45:53 UTC 2026 - James Fehlig <[email protected]>
+
+- Update to 12.4.0
+ - Add all new APIs and constants in libvirt 12.4.0
+
+-------------------------------------------------------------------
+Mon Jun 1 02:13:31 UTC 2026 - Steve Kowalik <[email protected]>
+
+- Switch to the pyproject macros to build and install.
+
+-------------------------------------------------------------------
Old:
----
libvirt-python-12.3.0.tar.gz
New:
----
libvirt-python-12.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-libvirt-python.spec ++++++
--- /var/tmp/diff_new_pack.swA3Cq/_old 2026-06-02 19:47:12.348847810 +0200
+++ /var/tmp/diff_new_pack.swA3Cq/_new 2026-06-02 19:47:12.356848142 +0200
@@ -19,12 +19,11 @@
# No longer build for python2. Support was dropped upstream in the 6.0.0
release
%define skip_python2 1
-%{?!python_module:%define python_module() python3-%{**}}
%define srcname libvirt-python
%{?sle15_python_module_pythons}
Name: python-libvirt-python
URL: https://libvirt.org/
-Version: 12.3.0
+Version: 12.4.0
Release: 0
Summary: Library providing a virtualization API
License: LGPL-2.1-or-later
@@ -36,8 +35,10 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: %{python_module devel}
BuildRequires: %{python_module lxml}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
%ifpython2
Provides: libvirt-python = %{version}
Obsoletes: libvirt-python < %{version}
@@ -61,10 +62,10 @@
%build
export CFLAGS="%{optflags}"
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
@@ -73,6 +74,6 @@
%files %{python_files}
%doc README COPYING examples/
%{python_sitearch}/libvirt*
-%{python_sitearch}/libvirt_python-%{version}*info
+%{python_sitearch}/libvirt_python-%{version}.dist-info
%pycache_only %{python_sitearch}/__pycache__/libvirt*
++++++ _service ++++++
--- /var/tmp/diff_new_pack.swA3Cq/_old 2026-06-02 19:47:12.480853278 +0200
+++ /var/tmp/diff_new_pack.swA3Cq/_new 2026-06-02 19:47:12.508854437 +0200
@@ -1,7 +1,7 @@
<services>
<service name="tar_scm" mode="manual">
<param name="filename">libvirt-python</param>
- <param name="revision">v12.3.0</param>
+ <param name="revision">v12.4.0</param>
<param name="scm">git</param>
<param name="submodules">disable</param>
<param name="url">https://gitlab.com/libvirt/libvirt-python.git</param>
++++++ libvirt-python-12.3.0.tar.gz -> libvirt-python-12.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/VERSION
new/libvirt-python-12.4.0/VERSION
--- old/libvirt-python-12.3.0/VERSION 2026-04-01 09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/VERSION 2026-05-25 14:06:09.000000000 +0200
@@ -1 +1 @@
-12.3.0
+12.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/buildenv/debian-13.sh
new/libvirt-python-12.4.0/ci/buildenv/debian-13.sh
--- old/libvirt-python-12.3.0/ci/buildenv/debian-13.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/buildenv/debian-13.sh 2026-05-25
14:06:09.000000000 +0200
@@ -0,0 +1,39 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ libvirt-dev \
+ locales \
+ pkgconf \
+ python3 \
+ python3-build \
+ python3-dev \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-venv \
+ python3-wheel
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt
+ mkdir -p /usr/libexec/ccache-wrappers
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/buildenv/fedora-42.sh
new/libvirt-python-12.4.0/ci/buildenv/fedora-42.sh
--- old/libvirt-python-12.3.0/ci/buildenv/fedora-42.sh 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/buildenv/fedora-42.sh 1970-01-01
01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- dnf --quiet update -y
- dnf --quiet install -y \
- ca-certificates \
- ccache \
- gcc \
- git \
- glibc-langpack-en \
- libvirt-devel \
- pkgconfig \
- python3 \
- python3-build \
- python3-devel \
- python3-lxml \
- python3-pip \
- python3-pytest \
- python3-setuptools \
- python3-wheel \
- rpm-build
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- rpm -qa | sort > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/buildenv/fedora-44.sh
new/libvirt-python-12.4.0/ci/buildenv/fedora-44.sh
--- old/libvirt-python-12.3.0/ci/buildenv/fedora-44.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/buildenv/fedora-44.sh 2026-05-25
14:06:09.000000000 +0200
@@ -0,0 +1,35 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ dnf --quiet update -y
+ dnf --quiet install -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ glibc-langpack-en \
+ libvirt-devel \
+ pkgconfig \
+ python3 \
+ python3-build \
+ python3-devel \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
+ rpm -qa | sort > /packages.txt
+ mkdir -p /usr/libexec/ccache-wrappers
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/buildenv/ubuntu-2204.sh
new/libvirt-python-12.4.0/ci/buildenv/ubuntu-2204.sh
--- old/libvirt-python-12.3.0/ci/buildenv/ubuntu-2204.sh 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/buildenv/ubuntu-2204.sh 1970-01-01
01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- ca-certificates \
- ccache \
- gcc \
- git \
- libvirt-dev \
- locales \
- pkgconf \
- python3 \
- python3-dev \
- python3-lxml \
- python3-pip \
- python3-pytest \
- python3-setuptools \
- python3-venv \
- python3-wheel
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
- /usr/bin/pip3 install build
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/buildenv/ubuntu-2604.sh
new/libvirt-python-12.4.0/ci/buildenv/ubuntu-2604.sh
--- old/libvirt-python-12.3.0/ci/buildenv/ubuntu-2604.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/buildenv/ubuntu-2604.sh 2026-05-25
14:06:09.000000000 +0200
@@ -0,0 +1,39 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ libvirt-dev \
+ locales \
+ pkgconf \
+ python3 \
+ python3-build \
+ python3-dev \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-venv \
+ python3-wheel
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt
+ mkdir -p /usr/libexec/ccache-wrappers
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/libvirt-python-12.3.0/ci/containers/debian-13.Dockerfile
new/libvirt-python-12.4.0/ci/containers/debian-13.Dockerfile
--- old/libvirt-python-12.3.0/ci/containers/debian-13.Dockerfile
1970-01-01 01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/containers/debian-13.Dockerfile
2026-05-25 14:06:09.000000000 +0200
@@ -0,0 +1,42 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:13-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ libvirt-dev \
+ locales \
+ pkgconf \
+ python3 \
+ python3-build \
+ python3-dev \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-venv \
+ python3-wheel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/libvirt-python-12.3.0/ci/containers/fedora-42.Dockerfile
new/libvirt-python-12.4.0/ci/containers/fedora-42.Dockerfile
--- old/libvirt-python-12.3.0/ci/containers/fedora-42.Dockerfile
2026-04-01 09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/containers/fedora-42.Dockerfile
1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM registry.fedoraproject.org/fedora:42
-
-RUN dnf --quiet install -y nosync && \
- printf '#!/bin/sh\n\
-if test -d /usr/lib64\n\
-then\n\
- export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
-else\n\
- export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
-fi\n\
-exec "$@"\n' > /usr/bin/nosync && \
- chmod +x /usr/bin/nosync && \
- nosync dnf --quiet update -y && \
- nosync dnf --quiet install -y \
- ca-certificates \
- ccache \
- gcc \
- git \
- glibc-langpack-en \
- libvirt-devel \
- pkgconfig \
- python3 \
- python3-build \
- python3-devel \
- python3-lxml \
- python3-pip \
- python3-pytest \
- python3-setuptools \
- python3-wheel \
- rpm-build && \
- nosync dnf --quiet autoremove -y && \
- nosync dnf --quiet clean all -y && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
- rpm -qa | sort > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-
-ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-ENV LANG="en_US.UTF-8"
-ENV PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/libvirt-python-12.3.0/ci/containers/fedora-44.Dockerfile
new/libvirt-python-12.4.0/ci/containers/fedora-44.Dockerfile
--- old/libvirt-python-12.3.0/ci/containers/fedora-44.Dockerfile
1970-01-01 01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/containers/fedora-44.Dockerfile
2026-05-25 14:06:09.000000000 +0200
@@ -0,0 +1,47 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+FROM registry.fedoraproject.org/fedora:44
+
+RUN dnf --quiet install -y nosync && \
+ printf '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"\n' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf --quiet update -y && \
+ nosync dnf --quiet install -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ glibc-langpack-en \
+ libvirt-devel \
+ pkgconfig \
+ python3 \
+ python3-build \
+ python3-devel \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build && \
+ nosync dnf --quiet autoremove -y && \
+ nosync dnf --quiet clean all -y && \
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/libvirt-python-12.3.0/ci/containers/ubuntu-2204.Dockerfile
new/libvirt-python-12.4.0/ci/containers/ubuntu-2204.Dockerfile
--- old/libvirt-python-12.3.0/ci/containers/ubuntu-2204.Dockerfile
2026-04-01 09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/containers/ubuntu-2204.Dockerfile
1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/ubuntu:22.04
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- ca-certificates \
- ccache \
- gcc \
- git \
- libvirt-dev \
- locales \
- pkgconf \
- python3 \
- python3-dev \
- python3-lxml \
- python3-pip \
- python3-pytest \
- python3-setuptools \
- python3-venv \
- python3-wheel && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-
-RUN /usr/bin/pip3 install build
-
-ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-ENV LANG="en_US.UTF-8"
-ENV PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/libvirt-python-12.3.0/ci/containers/ubuntu-2604.Dockerfile
new/libvirt-python-12.4.0/ci/containers/ubuntu-2604.Dockerfile
--- old/libvirt-python-12.3.0/ci/containers/ubuntu-2604.Dockerfile
1970-01-01 01:00:00.000000000 +0100
+++ new/libvirt-python-12.4.0/ci/containers/ubuntu-2604.Dockerfile
2026-05-25 14:06:09.000000000 +0200
@@ -0,0 +1,42 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/ubuntu:26.04
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ ca-certificates \
+ ccache \
+ gcc \
+ git \
+ libvirt-dev \
+ locales \
+ pkgconf \
+ python3 \
+ python3-build \
+ python3-dev \
+ python3-lxml \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-venv \
+ python3-wheel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show >
/packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+
+ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+ENV LANG="en_US.UTF-8"
+ENV PYTHON="/usr/bin/python3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/gitlab/builds.yml
new/libvirt-python-12.4.0/ci/gitlab/builds.yml
--- old/libvirt-python-12.3.0/ci/gitlab/builds.yml 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/gitlab/builds.yml 2026-05-25
14:06:09.000000000 +0200
@@ -64,6 +64,17 @@
TARGET_BASE_IMAGE: docker.io/library/debian:12-slim
+x86_64-debian-13:
+ extends: .native_build_job
+ needs:
+ - job: x86_64-debian-13-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: debian-13
+ TARGET_BASE_IMAGE: docker.io/library/debian:13-slim
+
+
x86_64-debian-sid:
extends: .native_build_job
needs:
@@ -75,30 +86,30 @@
TARGET_BASE_IMAGE: docker.io/library/debian:sid-slim
-x86_64-fedora-42:
+x86_64-fedora-43:
extends: .native_build_job
needs:
- - job: x86_64-fedora-42-container
+ - job: x86_64-fedora-43-container
optional: true
allow_failure: false
variables:
- NAME: fedora-42
- TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:42
+ NAME: fedora-43
+ TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:43
artifacts:
expire_in: 1 hour
paths:
- libvirt-python-rpms
-x86_64-fedora-43:
+x86_64-fedora-44:
extends: .native_build_job
needs:
- - job: x86_64-fedora-43-container
+ - job: x86_64-fedora-44-container
optional: true
allow_failure: false
variables:
- NAME: fedora-43
- TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:43
+ NAME: fedora-44
+ TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:44
artifacts:
expire_in: 1 hour
paths:
@@ -140,23 +151,23 @@
TARGET_BASE_IMAGE: registry.opensuse.org/opensuse/tumbleweed:latest
-x86_64-ubuntu-2204:
+x86_64-ubuntu-2404:
extends: .native_build_job
needs:
- - job: x86_64-ubuntu-2204-container
+ - job: x86_64-ubuntu-2404-container
optional: true
allow_failure: false
variables:
- NAME: ubuntu-2204
- TARGET_BASE_IMAGE: docker.io/library/ubuntu:22.04
+ NAME: ubuntu-2404
+ TARGET_BASE_IMAGE: docker.io/library/ubuntu:24.04
-x86_64-ubuntu-2404:
+x86_64-ubuntu-2604:
extends: .native_build_job
needs:
- - job: x86_64-ubuntu-2404-container
+ - job: x86_64-ubuntu-2604-container
optional: true
allow_failure: false
variables:
- NAME: ubuntu-2404
- TARGET_BASE_IMAGE: docker.io/library/ubuntu:24.04
+ NAME: ubuntu-2604
+ TARGET_BASE_IMAGE: docker.io/library/ubuntu:26.04
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/gitlab/containers.yml
new/libvirt-python-12.4.0/ci/gitlab/containers.yml
--- old/libvirt-python-12.3.0/ci/gitlab/containers.yml 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/ci/gitlab/containers.yml 2026-05-25
14:06:09.000000000 +0200
@@ -28,6 +28,13 @@
NAME: debian-12
+x86_64-debian-13-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-13
+
+
x86_64-debian-sid-container:
extends: .container_job
allow_failure: true
@@ -35,18 +42,18 @@
NAME: debian-sid
-x86_64-fedora-42-container:
+x86_64-fedora-43-container:
extends: .container_job
allow_failure: false
variables:
- NAME: fedora-42
+ NAME: fedora-43
-x86_64-fedora-43-container:
+x86_64-fedora-44-container:
extends: .container_job
allow_failure: false
variables:
- NAME: fedora-43
+ NAME: fedora-44
x86_64-fedora-rawhide-container:
@@ -70,15 +77,15 @@
NAME: opensuse-tumbleweed
-x86_64-ubuntu-2204-container:
+x86_64-ubuntu-2404-container:
extends: .container_job
allow_failure: false
variables:
- NAME: ubuntu-2204
+ NAME: ubuntu-2404
-x86_64-ubuntu-2404-container:
+x86_64-ubuntu-2604-container:
extends: .container_job
allow_failure: false
variables:
- NAME: ubuntu-2404
+ NAME: ubuntu-2604
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/ci/manifest.yml
new/libvirt-python-12.4.0/ci/manifest.yml
--- old/libvirt-python-12.3.0/ci/manifest.yml 2026-04-01 09:42:11.000000000
+0200
+++ new/libvirt-python-12.4.0/ci/manifest.yml 2026-05-25 14:06:09.000000000
+0200
@@ -40,12 +40,14 @@
debian-12: x86_64
+ debian-13: x86_64
+
debian-sid:
jobs:
- arch: x86_64
allow-failure: true
- fedora-42:
+ fedora-43:
jobs:
- arch: x86_64
artifacts:
@@ -53,7 +55,7 @@
paths:
- libvirt-python-rpms
- fedora-43:
+ fedora-44:
jobs:
- arch: x86_64
artifacts:
@@ -79,6 +81,6 @@
variables:
RPM: skip
- ubuntu-2204: x86_64
-
ubuntu-2404: x86_64
+
+ ubuntu-2604: x86_64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/examples/event-test.py
new/libvirt-python-12.4.0/examples/event-test.py
--- old/libvirt-python-12.3.0/examples/event-test.py 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/examples/event-test.py 2026-05-25
14:06:09.000000000 +0200
@@ -514,6 +514,8 @@
GRAPHICS_PHASES = Description("Connect", "Initialize", "Disconnect")
DISK_EVENTS = Description("Change missing on start", "Drop missing on start")
TRAY_EVENTS = Description("Opened", "Closed")
+CHANNEL_STATES = Description("unknown", "connected", "disconnected")
+CHANNEL_REASONS = Description("unknown", "domain started", "channel event")
def myDomainEventCallback(conn: libvirt.virConnect, dom: libvirt.virDomain,
event: int, detail: int, opaque: _T) -> None:
@@ -652,6 +654,14 @@
print("myDomainEventNICMACChangeCallback: Domain %s(%s) NIC MAC change
alias %s old MAC: %s new MAC: %s" % (
dom.name(), dom.ID(), alias, oldMAC, newMAC))
+def myDomainEventVcpuRemovedCallback(conn: libvirt.virConnect, dom:
libvirt.virDomain, vcpuid: int, opaque: _T) -> None:
+ print("myDomainEventVcpuRemovedCallback: Domain %s(%s) vCPU removed %d" % (
+ dom.name(), dom.ID(), vcpuid))
+
+def myDomainEventChannelLifecycleCallback(conn: libvirt.virConnect, dom:
libvirt.virDomain, state: int, reason: int, opaque: _T) -> None:
+ print("myDomainEventChannelLifecycleCallback: Domain %s(%s) %s %s" % (
+ dom.name(), dom.ID(), CHANNEL_STATES[state], CHANNEL_REASONS[reason]))
+
##########################################################################
# Network events
@@ -811,6 +821,8 @@
vc.domainEventRegisterAny(None,
libvirt.VIR_DOMAIN_EVENT_ID_MEMORY_FAILURE, myDomainEventMemoryFailureCallback,
None),
vc.domainEventRegisterAny(None,
libvirt.VIR_DOMAIN_EVENT_ID_MEMORY_DEVICE_SIZE_CHANGE,
myDomainEventMemoryDeviceSizeChangeCallback, None),
vc.domainEventRegisterAny(None,
libvirt.VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE, myDomainEventNICMACChangeCallback,
None),
+ vc.domainEventRegisterAny(None,
libvirt.VIR_DOMAIN_EVENT_ID_VCPU_REMOVED, myDomainEventVcpuRemovedCallback,
None),
+ vc.domainEventRegisterAny(None,
libvirt.VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE,
myDomainEventChannelLifecycleCallback, None),
]
netcallbacks = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/libvirt-override-virConnect.py
new/libvirt-python-12.4.0/libvirt-override-virConnect.py
--- old/libvirt-python-12.3.0/libvirt-override-virConnect.py 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/libvirt-override-virConnect.py 2026-05-25
14:06:09.000000000 +0200
@@ -288,6 +288,15 @@
cb(self, virDomain(self, _obj=dom), alias, oldMAC, newMAC, opaque)
return 0
+ def _dispatchDomainEventVcpuRemovedCallback(self, dom: 'virDomain',
vcpuid: int, cbData: Dict[str, Any]) -> int:
+ """Dispatches event to python user domain vCPU removal event callbacks
+ """
+ cb = cbData["cb"]
+ opaque = cbData["opaque"]
+
+ cb(self, virDomain(self, _obj=dom), vcpuid, opaque)
+ return 0
+
def domainEventDeregisterAny(self, callbackID: int) -> None:
"""Removes a Domain Event Callback. De-registering for a
domain callback will disable delivery of this event type """
@@ -317,6 +326,16 @@
cb(self, virNetwork(self, _obj=dom), mtype, nsuri, opaque)
return 0
+ def _dispatchDomainEventChannelLifecycleCallback(self, dom: 'virDomain',
state: int, reason: int, cbData: Dict[str, Any]) -> int:
+ """Dispatches event to python user domain channel lifecycle event
callback
+ """
+
+ cb = cbData["cb"]
+ opaque = cbData["opaque"]
+
+ cb(self, virDomain(self, _obj=dom), state, reason, opaque)
+ return 0
+
def networkEventDeregisterAny(self, callbackID: int) -> None:
"""Removes a Network Event Callback. De-registering for a
network callback will disable delivery of this event type"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/libvirt-python-12.3.0/libvirt-override.c
new/libvirt-python-12.4.0/libvirt-override.c
--- old/libvirt-python-12.3.0/libvirt-override.c 2026-04-01
09:42:11.000000000 +0200
+++ new/libvirt-python-12.4.0/libvirt-override.c 2026-05-25
14:06:09.000000000 +0200
@@ -7451,6 +7451,114 @@
#endif /* VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE */
+#ifdef VIR_DOMAIN_EVENT_ID_VCPU_REMOVED
+static int
+libvirt_virConnectDomainEventVcpuRemovedCallback(virConnectPtr conn
ATTRIBUTE_UNUSED,
+ virDomainPtr dom,
+ unsigned int vcpuid,
+ void *opaque)
+{
+ PyObject *pyobj_cbData = (PyObject*)opaque;
+ PyObject *pyobj_dom;
+ PyObject *pyobj_ret = NULL;
+ PyObject *pyobj_conn;
+ PyObject *dictKey;
+ int ret = -1;
+
+ LIBVIRT_ENSURE_THREAD_STATE;
+
+ if (!(dictKey = libvirt_constcharPtrWrap("conn")))
+ goto cleanup;
+ pyobj_conn = PyDict_GetItem(pyobj_cbData, dictKey);
+ Py_DECREF(dictKey);
+
+ /* Create a python instance of this virDomainPtr */
+ virDomainRef(dom);
+ if (!(pyobj_dom = libvirt_virDomainPtrWrap(dom))) {
+ virDomainFree(dom);
+ goto cleanup;
+ }
+ Py_INCREF(pyobj_cbData);
+
+ /* Call the Callback Dispatcher */
+ pyobj_ret = PyObject_CallMethod(pyobj_conn,
+
(char*)"_dispatchDomainEventVcpuRemovedCallback",
+ (char*)"OiO",
+ pyobj_dom, vcpuid, pyobj_cbData);
+
+ Py_DECREF(pyobj_cbData);
+ Py_DECREF(pyobj_dom);
+
+ cleanup:
+ if (!pyobj_ret) {
+ DEBUG("%s - ret:%p\n", __FUNCTION__, pyobj_ret);
+ PyErr_Print();
+ } else {
+ Py_DECREF(pyobj_ret);
+ ret = 0;
+ }
+
+ LIBVIRT_RELEASE_THREAD_STATE;
+ return ret;
+}
+#endif /* VIR_DOMAIN_EVENT_ID_VCPU_REMOVED */
+
+
+#ifdef VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE
+static int
+libvirt_virConnectDomainEventChannelLifecycleCallback(virConnectPtr conn
ATTRIBUTE_UNUSED,
+ virDomainPtr dom,
+ int state,
+ int reason,
+ void *opaque)
+{
+ PyObject *pyobj_cbData = (PyObject*)opaque;
+ PyObject *pyobj_dom;
+ PyObject *pyobj_ret = NULL;
+ PyObject *pyobj_conn;
+ PyObject *dictKey;
+ int ret = -1;
+
+ LIBVIRT_ENSURE_THREAD_STATE;
+
+ if (!(dictKey = libvirt_constcharPtrWrap("conn")))
+ goto cleanup;
+ pyobj_conn = PyDict_GetItem(pyobj_cbData, dictKey);
+ Py_DECREF(dictKey);
+
+ /* Create a python instance of this virDomainPtr */
+ virDomainRef(dom);
+ if (!(pyobj_dom = libvirt_virDomainPtrWrap(dom))) {
+ virDomainFree(dom);
+ goto cleanup;
+ }
+ Py_INCREF(pyobj_cbData);
+
+ /* Call the Callback Dispatcher */
+ pyobj_ret = PyObject_CallMethod(pyobj_conn,
+
(char*)"_dispatchDomainEventChannelLifecycleCallback",
+ (char*)"OiiO",
+ pyobj_dom, state, reason, pyobj_cbData);
+
+ Py_DECREF(pyobj_cbData);
+ Py_DECREF(pyobj_dom);
+
+ cleanup:
+ if (!pyobj_ret) {
+ DEBUG("%s - ret:%p\n", __FUNCTION__, pyobj_ret);
+ PyErr_Print();
+ } else {
+ Py_DECREF(pyobj_ret);
+ ret = 0;
+ }
+
+ LIBVIRT_RELEASE_THREAD_STATE;
+ return ret;
+
+}
+#endif /* VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE */
+
+
static PyObject *
libvirt_virConnectDomainEventRegisterAny(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -7591,6 +7699,16 @@
cb =
VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventNICMACChangeCallback);
break;
#endif /* VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE */
+#ifdef VIR_DOMAIN_EVENT_ID_VCPU_REMOVED
+ case VIR_DOMAIN_EVENT_ID_VCPU_REMOVED:
+ cb =
VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventVcpuRemovedCallback);
+ break;
+#endif /* VIR_DOMAIN_EVENT_ID_VCPU_REMOVED */
+#ifdef VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE
+ case VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE:
+ cb =
VIR_DOMAIN_EVENT_CALLBACK(libvirt_virConnectDomainEventChannelLifecycleCallback);
+ break;
+#endif /* VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE */
case VIR_DOMAIN_EVENT_ID_LAST:
break;
}