Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Jonathon Jongsma 0a98931211 qemu: don't hold a monitor and agent job for reboot
We have to assume that the guest agent may be malicious so we don't want
to allow any agent queries to block any other libvirt API. By holding
a monitor job while we're querying the agent, we open ourselves up to a
DoS.

Split the function so that we only hold the appropriate type of job
while rebooting.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-12-12 15:43:58 +01:00
.ctags.d
.gnulib@1f6fb368c0
build-aux syntax-check: update strcase check to refer to GLib 2019-12-10 14:08:53 +01:00
ci
docs docs: hacking: document removal of VIR_STR(N)DUP 2019-12-12 14:24:35 +01:00
examples
gnulib
include/libvirt
m4 docs: introduce rst2man as a mandatory tool for building docs 2019-12-11 14:28:41 +00:00
po qemu: Implement backup job APIs and qemu handling 2019-12-10 12:41:58 +01:00
scripts
src qemu: don't hold a monitor and agent job for reboot 2019-12-12 15:43:58 +01:00
tests tests: delete tests for VIR_STR(N)DUP 2019-12-12 14:24:35 +01:00
tools Remove VIR_STRNDUP usage with checked pointers 2019-12-12 14:24:34 +01:00
.color_coded.in
.ctags
.dir-locals.el
.editorconfig
.gitignore
.gitlab-ci.yml
.gitmodules
.gitpublish
.mailmap
.travis.yml travis: Update name for Ubuntu 18.04 image 2019-12-11 17:17:21 +01:00
.ycm_extra_conf.py.in
ABOUT-NLS
AUTHORS.in
autogen.sh
bootstrap
bootstrap.conf bootstrap.conf: drop usage of c-strcase gnulib module 2019-12-10 14:08:55 +01:00
ChangeLog
config-post.h
configure.ac tests: use PYTHON detected from configure 2019-12-10 09:55:45 -05:00
COPYING
COPYING.LESSER
gitdm.config
GNUmakefile
libvirt-admin.pc.in
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt-qemu.pc.in
libvirt.pc.in
libvirt.spec.in docs: remove build recipes related to pod2man usage 2019-12-11 14:28:41 +00:00
Makefile.am ci: Fix VPATH builds 2019-12-12 11:42:34 +01:00
Makefile.nonreentrant
mingw-libvirt.spec.in spec: Update Fedora minimum supported version 2019-12-11 13:07:04 +01:00
README
README-hacking
README.md
run.in

Build Status CII Best Practices

Libvirt API for virtualization

Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.

For some of these hypervisors, it provides a stateful management daemon which runs on the virtualization host allowing access to the API both by non-privileged local users and remote users.

Layered packages provide bindings of the libvirt C API into other languages including Python, Perl, PHP, Go, Java, OCaml, as well as mappings into object systems such as GObject, CIM and SNMP.

Further information about the libvirt project can be found on the website:

https://libvirt.org

License

The libvirt C API is distributed under the terms of GNU Lesser General Public License, version 2.1 (or later). Some parts of the code that are not part of the C library may have the more restrictive GNU General Public License, version 2.0 (or later). See the files COPYING.LESSER and COPYING for full license terms & conditions.

Installation

Libvirt uses the GNU Autotools build system, so in general can be built and installed with the usual commands, however, we mandate to have the build directory different than the source directory. For example, to build in a manner that is suitable for installing as root, use:

$ mkdir build && cd build
$ ../configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ sudo make install

While to build & install as an unprivileged user

$ mkdir build && cd build
$ ../configure --prefix=$HOME/usr
$ make
$ make install

The libvirt code relies on a large number of 3rd party libraries. These will be detected during execution of the configure script and a summary printed which lists any missing (optional) dependencies.

Contributing

The libvirt project welcomes contributions in many ways. For most components the best way to contribute is to send patches to the primary development mailing list. Further guidance on this can be found on the website:

https://libvirt.org/contribute.html

Contact

The libvirt project has two primary mailing lists:

Further details on contacting the project are available on the website:

https://libvirt.org/contact.html