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
Daniel P. Berrangé b4d601ba87 util: use realpath/g_canonicalize_filename
The canonicalize_file_name(path) is equivalent to calling
realpath(path, NULL). Passing NULL for the second arg of
realpath is not standardized behaviour, however, Linux,
FreeBSD > 6.4 and macOS > 10.5 all support this critical
extension.

This leaves Windows which doesn't provide realpath at all.
The g_canonicalize_filename() function doesn't expand
symlinks, so is not strictly equivalent to realpath()
but is close enough for our Windows portability needs
right now.

Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2020-01-03 15:42:13 +00:00
.ctags.d
.gnulib@7d06937892 maint: update to latest gnulib 2020-01-02 10:06:16 +01:00
build-aux src: remove unused imports of dirname.h 2020-01-03 15:42:13 +00:00
ci
docs docs: expand macOS platform support coverage 2020-01-03 15:42:12 +00:00
examples Add 'backup' block job type 2019-12-10 12:41:57 +01:00
gnulib
include/libvirt util: add note about event file descriptors on Windows 2020-01-03 15:42:12 +00:00
m4 Remove phyp driver 2019-12-20 12:25:42 -05:00
po Remove phyp driver 2019-12-20 12:25:42 -05:00
scripts docs: rewrite polkit docs generator in Python 2019-12-20 14:23:40 +00:00
src util: use realpath/g_canonicalize_filename 2020-01-03 15:42:13 +00:00
tests util: use realpath/g_canonicalize_filename 2020-01-03 15:42:13 +00:00
tools src: replace getcwd() with g_get_current_dir() 2020-01-03 15:42:13 +00:00
.color_coded.in
.ctags
.dir-locals.el
.editorconfig
.gitignore src: remote: generate source files into build directory 2019-11-08 17:07:57 +01:00
.gitlab-ci.yml gitlab: Move mips job to Debian 9 2019-12-13 13:12:13 +01:00
.gitmodules
.gitpublish
.mailmap
.travis.yml travis: add macOS Xcode 11.3 testing 2020-01-03 15:42:12 +00:00
.ycm_extra_conf.py.in
ABOUT-NLS
AUTHORS.in AUTHORS: Add Fabiano Fidêncio 2019-12-19 16:42:06 +01:00
autogen.sh
bootstrap maint: update to latest gnulib 2020-01-02 10:06:16 +01:00
bootstrap.conf bootstrap.conf: drop usage of c-strcase gnulib module 2019-12-10 14:08:55 +01:00
ChangeLog
config-post.h build: set min version for CLang to 3.4 / XCode CLang to 5.1 2020-01-03 15:42:12 +00:00
configure.ac Remove phyp driver 2019-12-20 12:25:42 -05:00
COPYING
COPYING.LESSER
gitdm.config gitdm: add 'ibm' file 2019-10-18 17:32:52 +02:00
GNUmakefile
libvirt-admin.pc.in
libvirt-lxc.pc.in
libvirt-qemu.pc.in
libvirt.pc.in
libvirt.spec.in Remove phyp driver 2019-12-20 12:25:42 -05:00
Makefile.am docs: rewrite polkit docs generator in Python 2019-12-20 14:23:40 +00:00
Makefile.nonreentrant
mingw-libvirt.spec.in Remove phyp driver 2019-12-20 12:25:42 -05:00
README
README-hacking build: mandate use of a build dir != src dir 2019-11-08 17:07:35 +01:00
README.md build: mandate use of a build dir != src dir 2019-11-08 17:07:35 +01:00
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