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
John Ferlan b50efe97ad conf: Add VM Generation ID parse/format support
The VM Generation ID is a mechanism to provide a unique 128-bit,
cryptographically random, and integer value identifier known as
the GUID (Globally Unique Identifier) to the guest OS. The value
is used to help notify the guest operating system when the virtual
machine is executed with a different configuration.

This patch adds support for a new "genid" XML element similar to
the "uuid" element. The "genid" element can have two forms "<genid/>"
or "<genid>$GUID</genid>". If the $GUID is not provided, libvirt
will generate one and save it in the XML.

Since adding support for a generated GUID (or UUID like) value to
be displayed modifying the xml2xml test to include virrandommock.so
is necessary since it will generate a "known" value.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2018-05-25 08:04:34 -04:00
.gnulib@d6397dde2e
build-aux po: minimize & canonicalize translations stored in git 2018-04-19 11:11:08 +01:00
docs conf: Add VM Generation ID parse/format support 2018-05-25 08:04:34 -04:00
examples lxc: allow use of lxc:///system URI as preferred format 2018-04-12 16:52:01 +01:00
gnulib
include/libvirt maint: typo fix in VIR_MIGRATE_PARAM_URI 2018-05-11 15:34:23 -05:00
m4 Remove check for gnutls/crypto.h 2018-05-16 10:40:40 +02:00
po po: delete bogus translations from various languages 2018-04-30 10:40:58 +01:00
src conf: Add VM Generation ID parse/format support 2018-05-25 08:04:34 -04:00
tests conf: Add VM Generation ID parse/format support 2018-05-25 08:04:34 -04:00
tools tools: virsh: Add virshCellnoCompleter. 2018-05-25 10:35:51 +02:00
.color_coded.in
.ctags
.dir-locals.el
.gitignore po: minimize & canonicalize translations stored in git 2018-04-19 11:11:08 +01:00
.gitmodules
.gitpublish git: add config file telling git-publish how to send patches 2018-04-23 11:36:09 +01:00
.mailmap
.travis.yml travis: Print test log file from distcheck as well 2018-05-21 15:17:14 +02:00
.ycm_extra_conf.py.in
ABOUT-NLS po: provide custom make rules for po file management 2018-04-19 10:35:58 +01:00
AUTHORS.in
autogen.sh po: provide custom make rules for po file management 2018-04-19 10:35:58 +01:00
bootstrap
bootstrap.conf vircrypto: Rely on GnuTLS for hash functions 2018-05-14 14:05:21 +02:00
cfg.mk syntax-check: Prohibit canonicalize_file_name() 2018-05-03 18:23:30 +02:00
ChangeLog-old
config-post.h Deprecate GNUTLS_GCRYPT 2018-05-16 10:40:40 +02:00
configure.ac configure: remove bogus LIBVIRT_GETTEXT macro reference 2018-05-03 17:06:19 +01:00
COPYING
COPYING.LESSER
libvirt-admin.pc.in
libvirt-lxc.pc.in
libvirt-qemu.pc.in
libvirt.pc.in
libvirt.spec.in spec: Enable libssh on future RHEL 2018-05-25 09:45:15 +02:00
Makefile.am
Makefile.nonreentrant
mingw-libvirt.spec.in
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.1 (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. For example, to build in a manner that is suitable for installing as root, use:

$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ sudo make install

While to build & install as an unprivileged user

$ ./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