1
0
mirror of https://gitlab.com/libvirt/libvirt-python.git synced 2024-10-26 07:55:06 +03:00
Commit Graph

1265 Commits

Author SHA1 Message Date
Ariel Otilibili
7f8e8ad0ad tox.ini: bumped Python
Removed 3.8, added 3.13 [1].

[1] https://devguide.python.org/versions/

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-10-22 23:05:17 +02:00
Jiri Denemark
d9a77dbf61 Post-release version bump to 10.9.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-10-01 11:06:53 +02:00
Jiri Denemark
14bdc4133e Post-release version bump to 10.8.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-09-02 11:50:42 +02:00
Ariel Otilibili
0904b90289 example/domstart.py: Removed useless brackets for tuple unpacking
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 17:45:01 +02:00
Ariel Otilibili
d878d72ed7 tox.ini: Bumped environment list for Python
* aligned list with supported Python versions [1]
* as of today, supported versions are 3.8 to 3.12

https://devguide.python.org/versions/

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 17:45:01 +02:00
Ariel Otilibili
07fda40545 Makefile: make check now computes env variable on the fly
* env variable used to be Python3.6
* Python3.6 is end of life since December 2021 [1].

[1] https://devguide.python.org/versions/

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
2024-08-08 17:45:01 +02:00
Jiri Denemark
4701d0abba Post-release version bump to 10.7.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-08-05 13:18:09 +02:00
Jiri Denemark
11b4a340dd Post-release version bump to 10.6.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-07-01 11:13:26 +02:00
Konstantin Khorenko
fbc1a5e8d3 examples/nodestat: Show memory pinning information again
Resurrect the logic after it has been occasionally broken during fixing
the syntax complains from python.

Fixes: c588ba9 ("examples/nodestat: Fix None comparison")

Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
2024-06-11 17:00:23 +03:00
Jiri Denemark
e897423493 Post-release version bump to 10.5.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-06-03 10:39:02 +02:00
Michal Privoznik
ee54658eb5 ci: Drop CentOS 8 Stream and switch F38 to 40, Ubuntu 20.04 to 22.04
There a lot happening here, but that's because otherwise lcitool
fails to regenerate files. Firstly, CentOS 8 is dropped as it's
unsupported now. Secondly, Fedora 40 is introduced and Fedora 38
is dropped. And lastly, Ubuntu 24.04 is introduced and Ubuntu
20.04 is dropped.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 15:38:30 +02:00
Michal Privoznik
858fe08d73 test_aio.py: Fix skip message
There are two unit tests in test_aio.py that are skipped if
Python is too new (3.10 or newer). But the message printed when
they are skipped mentions just 3.10 which is confusing. Change it
to "3.10+".

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Michal Privoznik
39b7773d32 Switch to PyMODINIT_FUNC annotation
Instead of doing some 'extern ...' declaration magic to force
proper PyInit_libvirtmod*() symbol exposure in resulting .so we
can use what Python already offers - PyMODINIT_FUNC macro and
call it a day.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Michal Privoznik
a6b8929083 generator.py: Drop build/ prefix from #include
When -Ibuild flag is passed to compiler then build/ can be dropped
from includes. This is safe to do, because the prefix is only on
local includes (#include "") not system ones (#include <>).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Michal Privoznik
dcd4218837 generator.py: Switch from ${module}-export.c to ${module}-export.c.inc
The generator.py generates a (per module) table of functions it
generated code for and stores it in ${module}-export.c file. The
file is then #include-d in corresponding override.c in the table
of all methods implemented in the module.

Now, problem is with naming of the file because the ".c" suffix
might suggest the file needs to be compiled. Well, it doesn't.
It's way closer to being a header file, so change the suffix to
".c.inc".

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Michal Privoznik
865df8b846 generator.py: Allow source and build dirs override
Soon generator.py is going to be ran from a build directory which
is different than the source directory. Allow specifying these
directories on the cmd line.

And while at it, introduce new "c+py" output mode in which both C
and Python files are generated. While this is a fallback mode if
no output mode is selected, we need this new mode so that
aforementioned directories can be specified.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Michal Privoznik
533399d186 setup.py: s/PY_VERSION/VERSION/
When generating spec file, @PY_VERSION@ is replaced with the
current version of libvirt-python. Well, it's not as obvious as
it could be: usually it's just @VERSION@. Worse, the PY_ prefix
may mislead readers into thinking it refers to python version.

Just drop the PY_ prefix.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-05-02 12:50:16 +00:00
Jiri Denemark
dfafe46ca8 Post-release version bump to 10.4.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-05-02 11:10:42 +02:00
Jelle van der Waa
205cdbbee7 examples: replace logging.warn with logging.warning
logging.warn is an alias to logging.warning since Python 3.3 and will be
removed in Python 3.13.

Signed-off-by: Jelle van der Waa <jvanderwaa@redhat.com>
2024-05-01 08:09:53 +00:00
Daniel P. Berrangé
c647a8ba2a gitlab: stop using a venv when creating source/binary dist
The change to use 'python -m build' in

  commit 333c8bef2b
  Author: Erik Skultety <eskultet@redhat.com>
  Date:   Tue Jun 20 12:19:40 2023 +0200

    ci: Drop direct 'setup.py' usage

resulted in the CI jobs all downloading latest setuptools and
deps from pypi and running builds with them in a venv. IOW we
ceased testing against the setuptools/wheel packages provided
by the distro, which is the whole point of the CI.

Passing the '-n -x' flags to 'python -m build' tells it to stop
using a venv and not to check dependancies, thus letting it
use what we pre-installed in the container.

This doesn't work on CentOS Stream 8, however, so we revert to
using the old setup.py approach. This is a short term issue,
since Stream 8 is EOL at the end of May, so we'll be deleting
all the Stream 8 jobs across libvirt CI very soon.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-04-30 10:23:31 +01:00
Daniel P. Berrangé
e2a8524bc8 ci: refresh with lcitool manifest
This pulls in the new wheel packages.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-04-25 10:22:46 +01:00
Daniel P. Berrangé
379ecce9f5 ci: add 'python3-wheel' as a dep
The 'python -m build' command creates a source dist and a binary
wheel. To be able run this command without creating a new venv
and downloading from pypi, we need to pre-install the 'wheel'
package.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-04-25 10:21:27 +01:00
Daniel P. Berrangé
5b4e4f9a90 ci: refresh with latest lcitool manifest
Fixes logic that caused some jobs to mistakenly not be run
when expected.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-04-25 09:53:22 +01:00
Jiri Denemark
bfc985a89e Post-release version bump to 10.3.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-04-02 13:44:28 +02:00
Jiri Denemark
d95eb54bc3 Post-release version bump to 10.2.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-03-01 12:23:02 +01:00
Michal Privoznik
acd4f6701d ci: Switch native_git_build_job to c9s and resume api_coverage_job
Currently, there's just one native_git_build_job -
x86_64-centos-stream-8-git and this is a problem because that's
the job that api_coverage_job then uses. But CentOS Stream 8 has
too old lxml which then makes tests/test_api_coverage.py skip its
run. By switching to CentOS Stream 9 the test can run happily
again.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-02-27 16:11:10 +01:00
Michal Privoznik
426a7689a7 test_api_coverage: Reflect different naming in python for virDomainFDAssociate() and virDomainRestoreParams()
While virDomainRestoreParams() has 'virDomain' prefix (and thus
is put into Domain class), it is really in the same family as
virDomainRestore() or virDomainRestoreFlags() -> it acts upon
virConnect object and thus belongs into Connect class.

Then, virDomainFDAssociate is exposed as Domain.FDAssociate() but
because of the way we would generate the method's name
(fDAssociate) the test thinks it's not implemented.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2024-02-27 15:08:17 +01:00
Vincent Vanlaer
56179c6a50 Fix memory leak in virStreamRecvFlags
virStreamRecvFlags allocates a temporary buffer to store the received
stream data in. This buffer was not freed on returns other than the
normal return with data.

Signed-off-by: Vincent Vanlaer <libvirt-e6954efa@volkihar.be>
2024-02-20 13:53:29 +01:00
Daniel P. Berrangé
7fb6a2182c ci: refresh with latest 'lcitool manifest'
This refresh gets rid of the split jobs for prebuilt and local
container environments.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-01-19 12:56:32 +00:00
Jiri Denemark
a6ad2d92ff Post-release version bump to 10.1.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2024-01-15 11:02:23 +01:00
Peter Krempa
11da469020 ci: Install built module for testing insde an venv
Distros recently started to object to using 'pip' to install system-wide
packages to prevent breakage. We were hacking-around that by using
'pip install --break-system-packages', but it's straightforward to
simply create a venv with '--system-site-packages' and install it there.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2024-01-08 11:56:20 +01:00
Peter Krempa
17d63413de ci: Update Fedora and Debian versions and regenerate
Update:
 Debian-10 -> Debian-12
 Fedora-37 -> Fedora-38
 Fedora-38 -> Fedora-39

Also the artifacts from the Fedora 39 job are needed for the integration
test suite in the main libvirt project.

For Debian 12 we need to start using
'pip install --break-system-packages' as a hack to work around
installation of the built package for testing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2024-01-08 11:21:12 +01:00
Jiri Denemark
d04e765440 Post-release version bump to 10.0.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-12-01 16:24:59 +01:00
Jiri Denemark
aa6b4902c3 Post-release version bump to 9.10.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-11-01 10:43:20 +01:00
Jiri Denemark
172a39551f Post-release version bump to 9.9.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-10-02 09:34:05 +02:00
Daniel P. Berrangé
1d0166204c Request the Python stable API when building
We have Python 3.6 as a minimum version. If we set Py_LIMITED_API
to 0x03060000, we'll get the stable python API associated with
versions >= 3.6. This lets users compile once and have the libvirt
binary module be loadable by any Python version >= 3.6, as described
in:

  https://docs.python.org/3/c-api/stable.html

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2023-09-25 11:17:31 +00:00
Daniel P. Berrangé
f76708b8fa Use PySequence_GetItem preferentially
Although marginally faster, PySequence_ITEM is not part
of the stable API and also omits some safety checks. It
is better for us to be using PySequence_GetItem instead.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2023-09-25 11:17:31 +00:00
Daniel P. Berrangé
85e58cb2ee add missing includes for C library functions
We use various C library functions like printf, strcmp, free
but don't have the corresponding #includes, getting them
indirectly via Python.h. This is a bad idea as Python.h is
not guaranteed to provided these, and indeed will omit them
when Py_LIMITED_API is greater then 0x030a0000.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2023-09-25 11:17:31 +00:00
Pino Toscano
c4ede87284 setup: simplify authors list generation
Use a set to collect the authors from the git output with no duplicates,
then sort the resulting set, and apply the wanted indentation.

This method is more Pythonic, using a set to avoid duplicates; applying
the indentation after the sorting makes the sorting slightly faster.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
2023-09-25 10:42:29 +00:00
Pino Toscano
41363417b7 setup: switch away fron subprocess.Popen()
Adopt subprocess.check_output() as more modern and higher-level way to
invoke processes, checking that they succeed, and getting their output.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
2023-09-25 10:42:29 +00:00
Pino Toscano
bf83c2b236 setup: remove unnecessary f-string
The whole content of this f-string is a variable, so use that variable
directly.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
2023-09-25 10:42:29 +00:00
Pino Toscano
2c8339b44c setup: invoke git commands properly
Storing the git commands as single string, to split it by space later
on, works only in case there are no spaces in the arguments, which is
exactly what is in those commands.

Instead, specify them directly as lists, with the options & arguments
split in the right way. This fixes the generation of the AUTHORS and
ChangeLog files.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
2023-09-25 10:42:29 +00:00
Daniel P. Berrangé
697b7727d0 gitlab: unset CFLAGS for rpm build
Setting CFLAGS before invoking rpm-build causes replacement of the
CFLAGS that RPM wants to set for python. This causes the loss of
certain flags needed to turn on debug output and optimization.
Previously this wasn't a problem as something in setuptools appears
to have been adding -g anyway, but with the update to python 3.12
this now fully breaks. We should never have been setting CFLAGS
during the RPM build so we drop it unconditionally for all distros.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2023-09-21 16:48:42 +01:00
Daniel P. Berrangé
dc9ca83ab9 Add binding for network metadata events
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2023-09-21 11:58:47 +01:00
Jiri Denemark
f02cf5d18c Post-release version bump to 9.8.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-09-01 13:04:56 +02:00
Erik Skultety
716a2f546d ci: lcitool: Maintain project package deps lists here
Each respective project that lcitool knows about and currently
maintains its list of package dependencies knows best what packages
they actually depend on. If a new dependency is currently needed,
first a change in lcitool is necessary before GitLab jobs and
containers can be updated. Provided a mapping already exists in
lcitool (which can quickly be added as an override via mappings.yml
         temporarily) we speed up the whole CI update process by
one step.

Note that starting this commit lcitool must be invoked as
    '$ lcitool -d/--data-dir ci/lcitool ...'
to pick up the project dependency list correctly.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
2023-08-21 11:54:09 +02:00
Jiri Denemark
84009289c0 Post-release version bump to 9.7.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-08-01 11:50:19 +02:00
Jiri Denemark
f47efd8bf8 Post-release version bump to 9.6.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2023-07-03 12:17:38 +02:00
Erik Skultety
b957ee3daf README: Drop direct 'setup.py' usage
With all the bits in place we can now replace the direct 'setup.py'
invocation examples with alternatives.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
2023-06-22 10:52:40 +02:00
Erik Skultety
333c8bef2b ci: Drop direct 'setup.py' usage
With all the bits in place we can now drop the 'setup.py' invocations
with preferred alternatives.
This patch does a few things:
- we don't run plain install because that always spins up a new build
  process regardless of whether there are build artifacts literally from
  the previous command, so instead we install the built wheel directly

- when building, we build both the .whl binary and an sdist because
  we'll need the sdist for rpmbuild later in the CI job

- we don't capture the 'build' path as a job artifact anymore, because
  that now only contains egg metadata, all the build artifacts are
  created by Python's build module under 'dist' so we capture that one
  instead

- we always limit pytest to the 'tests' directory which was something
  'setup.py test' used to do as a precaution measure, but setup.py no
  longer has the logic (which is fine)

Signed-off-by: Erik Skultety <eskultet@redhat.com>
2023-06-22 10:52:40 +02:00