Skip to content
Commits on Source (6)
......@@ -10,6 +10,7 @@ The primary maintainers and people with commit access rights:
Alex Jia <ajia@redhat.com>
Andrea Bolognani <abologna@redhat.com>
Cédric Bosdonnat <cbosdonnat@suse.com>
Christian Ehrhardt <christian.ehrhardt@canonical.com>
Christophe Fergeau <cfergeau@redhat.com>
Claudio Bley <claudio.bley@gmail.com>
Cole Robinson <crobinso@redhat.com>
......@@ -60,7 +61,6 @@ Amit Shah <amit.shah@redhat.com>
Andrew Puch <apuch@redhat.com>
Anton Protopopov <aspsk2@gmail.com>
Ben Guthro <ben.guthro@gmail.com>
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Daniel Hokka Zakrisson <daniel@hozac.com>
Dan Wendlandt <dan@nicira.com>
David Lively <dlively@virtualiron.com>
......@@ -177,13 +177,13 @@ Dan Horák <dan@danny.cz>
Dan Kenigsberg <danken@redhat.com>
Dan Smith <danms@us.ibm.com>
Dan Zheng <dzheng@redhat.com>
Daniel Berrange <berrange@redhat.com>
Daniel Berteaud <daniel@firewall-services.com>
Daniel Gollub <gollub@b1-systems.de>
Daniel Hansel <daniel.hansel@linux.vnet.ibm.com>
Daniel J Walsh <dwalsh@redhat.com>
Daniel Liu <srwx4096@gmail.com>
Daniel P. Berrange <berrange@redhat.com>
Daniel P. Berrangé <berrange@redhat.com>
Daniel Veillard <veillard@redhat.com>
Dario Faggioli <dario.faggioli@citrix.com>
Darryl L. Pierce <dpierce@redhat.com>
......@@ -338,6 +338,7 @@ Ján Tomko <jtomko@redhat.com>
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Kai Kang <kai.kang@windriver.com>
Karel Zak <kzak@redhat.com>
Kashyap Chamarthy <kchamart@redhat.com>
Katerina Koukiou <k.koukiou@googlemail.com>
Kay Schubert <kayegypt@web.de>
Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
......@@ -408,6 +409,7 @@ Michael R. Hines <mrhines@us.ibm.com>
Michael Santos <michael.santos@gmail.com>
Michael Wood <esiotrot@gmail.com>
Michal Dubiel <md@semihalf.com>
Michal Koutný <mkoutny@suse.com>
Michal Novotny <minovotn@redhat.com>
Michal Privoznik <miso.privoznik@gmail.com>
Michal Privoznik <mprivozn@redhat.com>
......@@ -523,6 +525,7 @@ Sergey Fionov <fionov@gmail.com>
Shahar Klein <shaharklein@yahoo.com>
Shanzhi Yu <shyu@redhat.com>
ShaoHe Feng <shaohe.feng@intel.com>
Shaohe Feng <shaohe.feng@intel.com>
Sharadha Prabhakar <sharadha.prabhakar@citrix.com>
Shivangi Dhir <shivangi.dhir.02@gmail.com>
Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
......@@ -563,6 +566,7 @@ Thierry Parmentelat <thierry.parmentelat@inria.fr>
Thomas Treutner <thomas@scripty.at>
Thomas Woerner <twoerner@redhat.com>
Thorsten Behrens <tbehrens@suse.com>
Tiago M. Vieira <tmv@redhat.com>
Tiziano Mueller <dev-zero@gentoo.org>
Tom Vijlbrief <tom.vijlbrief@xs4all.nl>
Tomas Meszaros <exo@tty.sk>
......@@ -624,9 +628,11 @@ Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Zeng Junliang <zengjunliang@huawei.com>
Zhang Bo <oscar.zhangbo@huawei.com>
Zhang Xiaohe <zhangxh@cn.fujitsu.com>
Zhangzijian <zhang.zijian@h3c.com>
ZhiPeng Lu <lu.zhipeng@zte.com.cn>
Zhou Yimin <zhouyimin@huawei.com>
Zhou yimin <zhouyimin@huawei.com>
Zhuang Yanying <ann.zhuangyanying@huawei.com>
caoxinhua <caoxinhua@huawei.com>
dann frazier <dann.frazier@canonical.com>
gaohaifeng <gaohaifeng.gao@huawei.com>
......
......@@ -10,6 +10,7 @@ The primary maintainers and people with commit access rights:
Alex Jia <ajia@redhat.com>
Andrea Bolognani <abologna@redhat.com>
Cédric Bosdonnat <cbosdonnat@suse.com>
Christian Ehrhardt <christian.ehrhardt@canonical.com>
Christophe Fergeau <cfergeau@redhat.com>
Claudio Bley <claudio.bley@gmail.com>
Cole Robinson <crobinso@redhat.com>
......@@ -60,7 +61,6 @@ Amit Shah <amit.shah@redhat.com>
Andrew Puch <apuch@redhat.com>
Anton Protopopov <aspsk2@gmail.com>
Ben Guthro <ben.guthro@gmail.com>
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Daniel Hokka Zakrisson <daniel@hozac.com>
Dan Wendlandt <dan@nicira.com>
David Lively <dlively@virtualiron.com>
......
This diff is collapsed.
......@@ -19,7 +19,7 @@
LCOV = lcov
GENHTML = genhtml
SUBDIRS = . gnulib/lib include/libvirt src daemon tools docs gnulib/tests \
SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \
tests po examples
XZ_OPT ?= -v -T0
......
......@@ -269,6 +269,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-libssh.m4 \
$(top_srcdir)/m4/virt-libxml.m4 \
$(top_srcdir)/m4/virt-linker-no-indirect.m4 \
$(top_srcdir)/m4/virt-linker-no-undefined.m4 \
$(top_srcdir)/m4/virt-linker-relro.m4 \
$(top_srcdir)/m4/virt-loader-nvram.m4 \
$(top_srcdir)/m4/virt-login-shell.m4 \
......@@ -1561,6 +1562,7 @@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
NM = @NM@
NMEDIT = @NMEDIT@
NO_INDIRECT_LDFLAGS = @NO_INDIRECT_LDFLAGS@
NO_UNDEFINED_LDFLAGS = @NO_UNDEFINED_LDFLAGS@
NUMACTL_CFLAGS = @NUMACTL_CFLAGS@
NUMACTL_LIBS = @NUMACTL_LIBS@
NUMAD = @NUMAD@
......@@ -1997,7 +1999,7 @@ top_srcdir = @top_srcdir@
ws_plugindir = @ws_plugindir@
LCOV = lcov
GENHTML = genhtml
SUBDIRS = . gnulib/lib include/libvirt src daemon tools docs gnulib/tests \
SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \
tests po examples
ACLOCAL_AMFLAGS = -I m4
......
libvirt releases
================
# v4.1.0 (2018-03-05)
* New features
- Added support for CAT (Cache allocation Technology)
Domain vCPU threads can now have allocated some parts of host cache
using the cachetune element in cputune.
- Allow opening secondary drivers
Up until now it was possible to connect to only hypervisor drivers
(e.g. qemu:///system, lxc:///, vbox:///system, and so on). The internal
drivers (like network driver, node device driver, etc.) were hidden
from users and users could use them only indirectly. Starting with this
release new connection URIs are accepted. For instance
network:///system, storage:///system and so on.
- virtlogd, virtlockd: Add support for admin protocol
These two daemons now support admin protocol through which some admin
info can be gathered or some configuration tweaked on the fly.
* Improvements
- virsh: Enhance bash completion
Implement more bash completions so that basic libvirt objects can be
auto-completed (e.g. networks, interfaces, NWFilters, and so on).
- qemu: Use VIR_ERR_DEVICE_MISSING for various hotplug/detach messages
- qemu: Allow showing the dump progress for memory only dump
Alter the QEMU dump-guest-memory command processing to check for and
allow asynchronous completion which then allows for the virsh dump
--memory-only --verbose command to display percent completion data.
- conf: add support for setting Chassis SMBIOS data fields
- libxl: add support for setting clock offset and adjustment
- Make port allocator global
Up until now each driver had their own port allocator module. This
meant that info on port usage was not shared. Starting with this
release, the port allocator module is made global and therefore drivers
allocate ports from global pool.
- Fixed some compiler warnings that appear with GCC 8
* Bug fixes
- qemu: Check for unsafe migration more thoroughly
If a domain disk is stored on local filesystem (e.g. ext4) but is not
being migrated it is very likely that domain is not able to run on
destination. Regardless of share/cache mode.
- qemu: Fix updating device with boot order
Starting with 3.7.0 release updating any device with boot order would
fail with 'boot order X is already used by another device' while in
fact it was the very same device.
- virlog: determine the hostname on startup CVE-2018-6764
At later point it might not be possible or even safe to use
getaddrinfo(). It can in turn result in a load of NSS module which can
even be loaded from unsage guest filesystem and thus escape the
confinment of its container.
- qemu: Rework vCPU statistics fetching
Fetching vCPU statistics was very expensive because it lead to waking
up vCPU threads in QEMU and thus it degraded performance. The code was
reworked so that fetching statistics does not wake up halted vCPUs.
- qemu: unlink memory backing file on domain shutdown
Depending on the filesystem where domain memory is stored, some files
might have been left behind. This is not a problem on hugetlbfs, but it
is a problem on regular filesystems like ext4.
- qemu: Fix shutting down domains in parallel
If multiple domains were being shut down in parallel, libvirtd might
have deadlocked.
- nodedev: Update PCI mdev capabilities dynamically
PCI devices may have other nested capabilities, like SRIOV and mdev
which depend on the device being plugged into the native vendor driver.
However, in case such a device is directly assigned to a guest using
VFIO driver, the device will naturally lose these capabilities and
libvirt needs to reflect that.
# v4.0.0 (2018-01-19)
* New features
......
......@@ -1834,6 +1834,7 @@ m4_include([m4/virt-libpcap.m4])
m4_include([m4/virt-libssh.m4])
m4_include([m4/virt-libxml.m4])
m4_include([m4/virt-linker-no-indirect.m4])
m4_include([m4/virt-linker-no-undefined.m4])
m4_include([m4/virt-linker-relro.m4])
m4_include([m4/virt-loader-nvram.m4])
m4_include([m4/virt-login-shell.m4])
......
......@@ -32,8 +32,8 @@ gnulib_dir = $(srcdir)/.gnulib
# List of additional files that we want to pick up in our POTFILES.in
# This is all gnulib files, as well as generated files for RPC code.
generated_files = \
$(srcdir)/daemon/*_dispatch.h \
$(srcdir)/src/*/*_dispatch.h \
$(srcdir)/src/*/{remote_daemon,admin_server,log_daemon,lock_daemon}_dispatch_*stubs.h \
$(srcdir)/src/lxc/{lxc_monitor,lxc_controller}_dispatch.h \
$(srcdir)/src/remote/*_client_bodies.h \
$(srcdir)/src/*/*_protocol.[ch] \
$(srcdir)/gnulib/lib/*.[ch]
......@@ -484,7 +484,7 @@ sc_size_of_brackets:
# Ensure that no C source file, docs, or rng schema uses TABs for
# indentation. Also match *.h.in files, to get libvirt.h.in. Exclude
# files in gnulib, since they're imported.
space_indent_files=(\.(rng|s?[ch](\.in)?|html.in|py|pl|syms)|(daemon|tools)/.*\.in)
space_indent_files=(\.(aug(\.in)?|rng|s?[ch](\.in)?|html.in|py|pl|syms)|(daemon|tools)/.*\.in)
sc_TAB_in_indentation:
@prohibit='^ * ' \
in_vc_files='$(space_indent_files)$$' \
......@@ -768,13 +768,12 @@ sc_prohibit_gettext_markup:
# lower-level code must not include higher-level headers.
cross_dirs=$(patsubst $(srcdir)/src/%.,%,$(wildcard $(srcdir)/src/*/.))
cross_dirs_re=($(subst / ,/|,$(cross_dirs)))
mid_dirs=access|conf|cpu|locking|logging|network|node_device|rpc|security|storage
mid_dirs=access|admin|conf|cpu|locking|logging|rpc|security
sc_prohibit_cross_inclusion:
@for dir in $(cross_dirs); do \
case $$dir in \
util/) safe="util";; \
access/ | conf/) safe="($$dir|conf|util)";; \
locking/) safe="($$dir|util|conf|rpc)";; \
cpu/| network/| node_device/| rpc/| security/| storage/) \
safe="($$dir|util|conf|storage)";; \
xenapi/ | xenconfig/ ) safe="($$dir|util|conf|xen|cpu)";; \
......@@ -1116,19 +1115,19 @@ test-wrap-argv:
# sc_po_check can fail if generated files are not built first
sc_po_check: \
$(srcdir)/daemon/remote_dispatch.h \
$(srcdir)/daemon/qemu_dispatch.h \
$(srcdir)/src/remote/remote_daemon_dispatch_stubs.h \
$(srcdir)/src/remote/remote_daemon_dispatch_qemu_stubs.h \
$(srcdir)/src/remote/remote_client_bodies.h \
$(srcdir)/daemon/admin_dispatch.h \
$(srcdir)/src/admin/admin_server_dispatch_stubs.h \
$(srcdir)/src/admin/admin_client.h
$(srcdir)/daemon/remote_dispatch.h: $(srcdir)/src/remote/remote_protocol.x
$(MAKE) -C daemon remote_dispatch.h
$(srcdir)/daemon/qemu_dispatch.h: $(srcdir)/src/remote/qemu_protocol.x
$(MAKE) -C daemon qemu_dispatch.h
$(srcdir)/src/remote/remote_daemon_dispatch_stubs.h: $(srcdir)/src/remote/remote_protocol.x
$(MAKE) -C src remote/remote_daemon_dispatch_stubs.h
$(srcdir)/src/remote/remote_daemon_dispatch_qemu_stubs.h: $(srcdir)/src/remote/qemu_protocol.x
$(MAKE) -C src remote/remote_daemon_dispatch_qemu_stubs.h
$(srcdir)/src/remote/remote_client_bodies.h: $(srcdir)/src/remote/remote_protocol.x
$(MAKE) -C src remote/remote_client_bodies.h
$(srcdir)/daemon/admin_dispatch.h: $(srcdir)/src/admin/admin_protocol.x
$(MAKE) -C daemon admin_dispatch.h
$(srcdir)/src/admin/admin_server_dispatch_stubs.h: $(srcdir)/src/admin/admin_protocol.x
$(MAKE) -C src admin/admin_server_dispatch_stubs.h
$(srcdir)/src/admin/admin_client.h: $(srcdir)/src/admin/admin_protocol.x
$(MAKE) -C src admin/admin_client.h
......@@ -1138,7 +1137,7 @@ exclude_file_name_regexp--sc_avoid_strcase = ^tools/vsh\.h$$
_src1=libvirt-stream|qemu/qemu_monitor|util/vir(command|file|fdstream)|xen/xend_internal|rpc/virnetsocket|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon
_test1=shunloadtest|virnettlscontexttest|virnettlssessiontest|vircgroupmock|commandhelper
exclude_file_name_regexp--sc_avoid_write = \
^(src/($(_src1))|daemon/libvirtd|tools/virsh-console|tests/($(_test1)))\.c$$
^(src/($(_src1))|tools/virsh-console|tests/($(_test1)))\.c$$
exclude_file_name_regexp--sc_bindtextdomain = .*
......@@ -1159,7 +1158,7 @@ exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \
exclude_file_name_regexp--sc_po_check = ^(docs/|src/rpc/gendispatch\.pl$$)
exclude_file_name_regexp--sc_prohibit_VIR_ERR_NO_MEMORY = \
^(cfg\.mk|include/libvirt/virterror\.h|daemon/dispatch\.c|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$
^(cfg\.mk|include/libvirt/virterror\.h|src/remote/remote_daemon_dispatch\.c|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$
exclude_file_name_regexp--sc_prohibit_PATH_MAX = \
^cfg\.mk$$
......@@ -1179,11 +1178,11 @@ exclude_file_name_regexp--sc_prohibit_close = \
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon)
_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon|remote/remote_daemon)
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
(^($(_src2)|tests/testutils|daemon/libvirtd)\.c$$)
(^($(_src2)|tests/testutils)\.c$$)
exclude_file_name_regexp--sc_prohibit_gethostname = ^src/util/virutil\.c$$
exclude_file_name_regexp--sc_prohibit_gethostname = ^src/util/vir(util|log)\.c$$
exclude_file_name_regexp--sc_prohibit_internal_functions = \
^src/(util/(viralloc|virutil|virfile)\.[hc]|esx/esx_vi\.c)$$
......@@ -1259,7 +1258,7 @@ exclude_file_name_regexp--sc_prohibit_mixed_case_abbreviations = \
^src/(vbox/vbox_CAPI.*.h|esx/esx_vi.(c|h)|esx/esx_storage_backend_iscsi.c)$$
exclude_file_name_regexp--sc_prohibit_empty_first_line = \
^(README|daemon/THREADS\.txt|src/esx/README|tests/(vmwarever|virhostcpu)data/.*)$$
^(README|src/esx/README|tests/(vmwarever|virhostcpu)data/.*)$$
exclude_file_name_regexp--sc_prohibit_useless_translation = \
^tests/virpolkittest.c
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libvirt 4.0.0.
# Generated by GNU Autoconf 2.69 for libvirt 4.1.0.
#
# Report bugs to <libvir-list@redhat.com>.
#
......@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libvirt'
PACKAGE_TARNAME='libvirt'
PACKAGE_VERSION='4.0.0'
PACKAGE_STRING='libvirt 4.0.0'
PACKAGE_VERSION='4.1.0'
PACKAGE_STRING='libvirt 4.1.0'
PACKAGE_BUGREPORT='libvir-list@redhat.com'
PACKAGE_URL='https://libvirt.org'
 
......@@ -1125,6 +1125,7 @@ WITH_APPARMOR_FALSE
WITH_APPARMOR_TRUE
ACL_LIBS
ACL_CFLAGS
NO_UNDEFINED_LDFLAGS
NO_INDIRECT_LDFLAGS
RELRO_LDFLAGS
PIE_LDFLAGS
......@@ -3222,7 +3223,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures libvirt 4.0.0 to adapt to many kinds of systems.
\`configure' configures libvirt 4.1.0 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -3292,7 +3293,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of libvirt 4.0.0:";;
short | recursive ) echo "Configuration of libvirt 4.1.0:";;
esac
cat <<\_ACEOF
 
......@@ -3642,7 +3643,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libvirt configure 4.0.0
libvirt configure 4.1.0
generated by GNU Autoconf 2.69
 
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -4351,7 +4352,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by libvirt $as_me 4.0.0, which was
It was created by libvirt $as_me 4.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
$ $0 $@
......@@ -5355,7 +5356,7 @@ fi
 
# Define the identity of the package.
PACKAGE='libvirt'
VERSION='4.0.0'
VERSION='4.1.0'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -57994,8 +57995,6 @@ fi
dontwarn="$dontwarn -Wlong-long"
# We allow manual list of all enum cases without default:
dontwarn="$dontwarn -Wswitch-default"
# We allow optional default: instead of listing all enum values
dontwarn="$dontwarn -Wswitch-enum"
# Not a problem since we don't use -fstrict-overflow
dontwarn="$dontwarn -Wstrict-overflow"
# Not a problem since we don't use -funsafe-loop-optimizations
......@@ -58585,11 +58584,18 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# with gl_MANYWARN_COMPLEMENT
# So we have -W enabled, and then have to explicitly turn off...
wantwarn="$wantwarn -Wno-sign-compare"
# We do "bad" function casts all the time for event callbacks
wantwarn="$wantwarn -Wno-cast-function-type"
 
# GNULIB expects this to be part of -Wc++-compat, but we turn
# that one off, so we need to manually enable this again
wantwarn="$wantwarn -Wjump-misses-init"
 
# GNULIB explicitly filters it out, preferring -Wswitch
# but that doesn't report missing enums if a default:
# is present.
wantwarn="$wantwarn -Wswitch-enum"
# GNULIB turns on -Wformat=2 which implies -Wformat-nonliteral,
# so we need to manually re-exclude it. Also, older gcc 4.2
# added an implied ATTRIBUTE_NONNULL on any parameter marked
......@@ -58923,6 +58929,20 @@ $as_echo_n "checking for how to avoid indirect lib deps... " >&6; }
$as_echo "$NO_INDIRECT_LDFLAGS" >&6; }
 
 
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for how to stop undefined symbols at link time" >&5
$as_echo_n "checking for how to stop undefined symbols at link time... " >&6; }
NO_UNDEFINED_LDFLAGS=
ld_help=`$LD --help 2>&1`
case $ld_help in
*"-z defs"*) NO_UNDEFINED_LDFLAGS="-Wl,-z -Wl,defs" ;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $NO_UNDEFINED_LDFLAGS" >&5
$as_echo "$NO_UNDEFINED_LDFLAGS" >&6; }
 
 
 
......@@ -70803,11 +70823,11 @@ fi
$as_echo "$ac_cv_lib_xentoollog_xtl_createlogger_stdiostream" >&6; }
if test "x$ac_cv_lib_xentoollog_xtl_createlogger_stdiostream" = xyes; then :
 
LIBXL_LIBS="$LIBXL_LIBS -lxentoollog"
LIBXL_LIBS="$LIBXL_LIBS -lxenstore -lxentoollog"
 
else
 
LIBXL_LIBS="$LIBXL_LIBS -lxenctrl"
LIBXL_LIBS="$LIBXL_LIBS -lxenstore -lxenctrl"
 
fi
 
......@@ -77755,7 +77775,7 @@ _ACEOF
 
ac_config_files="$ac_config_files run"
 
ac_config_files="$ac_config_files Makefile src/Makefile include/libvirt/Makefile docs/Makefile gnulib/lib/Makefile gnulib/tests/Makefile .color_coded .ycm_extra_conf.py libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc src/libvirt.pc src/libvirt-qemu.pc src/libvirt-lxc.pc libvirt.spec mingw-libvirt.spec po/Makefile.in include/libvirt/libvirt-common.h daemon/Makefile examples/Makefile tests/Makefile tools/Makefile"
ac_config_files="$ac_config_files Makefile src/Makefile include/libvirt/Makefile docs/Makefile gnulib/lib/Makefile gnulib/tests/Makefile .color_coded .ycm_extra_conf.py libvirt.pc libvirt-qemu.pc libvirt-lxc.pc libvirt-admin.pc src/libvirt.pc src/libvirt-qemu.pc src/libvirt-lxc.pc libvirt.spec mingw-libvirt.spec po/Makefile.in include/libvirt/libvirt-common.h examples/Makefile tests/Makefile tools/Makefile"
 
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
......@@ -78850,7 +78870,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libvirt $as_me 4.0.0, which was
This file was extended by libvirt $as_me 4.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -78921,7 +78941,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libvirt config.status 4.0.0
libvirt config.status 4.1.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
 
......@@ -79368,7 +79388,6 @@ do
"mingw-libvirt.spec") CONFIG_FILES="$CONFIG_FILES mingw-libvirt.spec" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
"include/libvirt/libvirt-common.h") CONFIG_FILES="$CONFIG_FILES include/libvirt/libvirt-common.h" ;;
"daemon/Makefile") CONFIG_FILES="$CONFIG_FILES daemon/Makefile" ;;
"examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
......@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
AC_INIT([libvirt], [4.0.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_INIT([libvirt], [4.1.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
......@@ -237,6 +237,7 @@ LIBVIRT_COMPILE_WARNINGS
LIBVIRT_COMPILE_PIE
LIBVIRT_LINKER_RELRO
LIBVIRT_LINKER_NO_INDIRECT
LIBVIRT_LINKER_NO_UNDEFINED
LIBVIRT_ARG_APPARMOR
LIBVIRT_ARG_ATTR
......@@ -915,7 +916,6 @@ AC_CONFIG_FILES([\
libvirt.spec mingw-libvirt.spec \
po/Makefile.in \
include/libvirt/libvirt-common.h \
daemon/Makefile \
examples/Makefile \
tests/Makefile \
tools/Makefile])
......
## Process this file with automake to produce Makefile.in
## Copyright (C) 2005-2015 Red Hat, Inc.
##
## This library is free software; you can redistribute it and/or
## modify it under the terms of the GNU Lesser General Public
## License as published by the Free Software Foundation; either
## version 2.1 of the License, or (at your option) any later version.
##
## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
## Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public
## License along with this library. If not, see
## <http://www.gnu.org/licenses/>.
INCLUDES = \
-I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \
-I$(top_srcdir) \
-I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_builddir)/src -I$(top_srcdir)/src \
-I$(top_srcdir)/src/util \
-I$(top_srcdir)/src/conf \
-I$(top_srcdir)/src/rpc \
-I$(top_srcdir)/src/remote \
-I$(top_srcdir)/src/admin \
-I$(top_srcdir)/src/access \
$(GETTEXT_CPPFLAGS)
CLEANFILES =
WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)
DAEMON_GENERATED = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
$(NULL)
DAEMON_SOURCES = \
libvirtd.c libvirtd.h \
remote.c remote.h \
stream.c stream.h \
$(DAEMON_GENERATED)
LIBVIRTD_CONF_SOURCES = libvirtd-config.c libvirtd-config.h
PODFILES = \
libvirtd.pod \
$(NULL)
MANINFILES = \
libvirtd.8.in \
$(NULL)
DISTCLEANFILES =
EXTRA_DIST = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
libvirtd.policy.in \
libvirt.rules \
libvirtd.sasl \
libvirtd.service.in \
virt-guest-shutdown.target \
libvirtd.sysconf \
libvirtd.sysctl \
libvirtd.aug \
libvirtd.logrotate.in \
libvirtd.qemu.logrotate.in \
libvirtd.lxc.logrotate.in \
libvirtd.libxl.logrotate.in \
libvirtd.uml.logrotate.in \
test_libvirtd.aug.in \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
$(DAEMON_SOURCES) \
$(LIBVIRTD_CONF_SOURCES) \
$(NULL)
BUILT_SOURCES =
REMOTE_PROTOCOL = $(top_srcdir)/src/remote/remote_protocol.x
LXC_PROTOCOL = $(top_srcdir)/src/remote/lxc_protocol.x
QEMU_PROTOCOL = $(top_srcdir)/src/remote/qemu_protocol.x
ADMIN_PROTOCOL = $(top_srcdir)/src/admin/admin_protocol.x
remote_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
$(REMOTE_PROTOCOL)
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
--mode=server remote REMOTE $(REMOTE_PROTOCOL) \
> $(srcdir)/remote_dispatch.h
lxc_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
$(LXC_PROTOCOL)
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
--mode=server lxc LXC $(LXC_PROTOCOL) \
> $(srcdir)/lxc_dispatch.h
qemu_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
$(QEMU_PROTOCOL)
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
--mode=server qemu QEMU $(QEMU_PROTOCOL) \
> $(srcdir)/qemu_dispatch.h
admin_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
$(ADMIN_PROTOCOL)
$(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
--mode=server admin ADMIN $(ADMIN_PROTOCOL) \
> $(srcdir)/admin_dispatch.h
if WITH_LIBVIRTD
# Build a convenience library, for reuse in tests/libvirtdconftest
noinst_LTLIBRARIES = libvirtd_conf.la
libvirtd_conf_la_SOURCES = $(LIBVIRTD_CONF_SOURCES)
libvirtd_conf_la_CFLAGS = \
$(LIBXML_CFLAGS) \
$(XDR_CFLAGS) \
$(WARN_CFLAGS) $(PIE_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
libvirtd_conf_la_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)
libvirtd_conf_la_LIBADD = $(LIBXML_LIBS)
noinst_LTLIBRARIES += libvirtd_admin.la
libvirtd_admin_la_SOURCES = \
admin.c admin.h admin_server.c admin_server.h
libvirtd_admin_la_CFLAGS = \
$(AM_CFLAGS) \
$(XDR_CFLAGS) \
$(PIE_CFLAGS) \
$(WARN_CFLAGS) \
$(LIBXML_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
libvirtd_admin_la_LDFLAGS = \
$(PIE_LDFLAGS) \
$(RELRO_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)
libvirtd_admin_la_LIBADD = \
../src/libvirt-admin.la
man8_MANS = libvirtd.8
sbin_PROGRAMS = libvirtd
confdir = $(sysconfdir)/libvirt/
conf_DATA = libvirtd.conf
augeasdir = $(datadir)/augeas/lenses
augeas_DATA = libvirtd.aug
augeastestsdir = $(datadir)/augeas/lenses/tests
augeastests_DATA = test_libvirtd.aug
CLEANFILES += test_libvirtd.aug
libvirtd_SOURCES = $(DAEMON_SOURCES)
#-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_C_SOURCE=199506L
libvirtd_CFLAGS = \
$(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
$(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
$(WARN_CFLAGS) $(PIE_CFLAGS) \
$(COVERAGE_CFLAGS) \
-DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""
libvirtd_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)
libvirtd_LDADD = \
$(LIBXML_LIBS) \
$(GNUTLS_LIBS) \
$(SASL_LIBS) \
$(DBUS_LIBS) \
$(LIBNL_LIBS)
if WITH_DTRACE_PROBES
libvirtd_LDADD += ../src/libvirt_probes.lo
endif WITH_DTRACE_PROBES
libvirtd_LDADD += \
libvirtd_conf.la \
libvirtd_admin.la \
../src/libvirt-lxc.la \
../src/libvirt-qemu.la \
../src/libvirt_driver_remote.la \
$(NULL)
libvirtd_LDADD += ../src/libvirt.la
if WITH_POLKIT
if WITH_POLKIT0
policydir = $(datadir)/PolicyKit/policy
policyauth = auth_admin_keep_session
else ! WITH_POLKIT0
policydir = $(datadir)/polkit-1/actions
policyauth = auth_admin_keep
rulesdir = $(datadir)/polkit-1/rules.d
rulesfile = libvirt.rules
endif ! WITH_POLKIT0
endif WITH_POLKIT
libvirtd.policy: libvirtd.policy.in $(top_builddir)/config.status
$(AM_V_GEN) sed \
-e 's|[@]authaction[@]|$(policyauth)|g' \
< $< > $@-t && \
mv $@-t $@
BUILT_SOURCES += libvirtd.policy
install-data-local: install-init-redhat install-init-systemd \
install-init-upstart \
install-data-sasl install-data-polkit \
install-logrotate install-sysctl
$(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt \
$(DESTDIR)$(localstatedir)/run/libvirt \
$(DESTDIR)$(localstatedir)/lib/libvirt
uninstall-local:: uninstall-init-redhat uninstall-init-systemd \
uninstall-init-upstart \
uninstall-data-sasl uninstall-data-polkit \
uninstall-logrotate uninstall-sysctl
rmdir $(DESTDIR)$(localstatedir)/log/libvirt || :
rmdir $(DESTDIR)$(localstatedir)/run/libvirt || :
rmdir $(DESTDIR)$(localstatedir)/lib/libvirt || :
if WITH_POLKIT
install-data-polkit::
$(MKDIR_P) $(DESTDIR)$(policydir)
$(INSTALL_DATA) libvirtd.policy $(DESTDIR)$(policydir)/org.libvirt.unix.policy
if ! WITH_POLKIT0
$(MKDIR_P) $(DESTDIR)$(rulesdir)
$(INSTALL_DATA) $(srcdir)/$(rulesfile) $(DESTDIR)$(rulesdir)/50-libvirt.rules
endif ! WITH_POLKIT0
uninstall-data-polkit::
rm -f $(DESTDIR)$(policydir)/org.libvirt.unix.policy
rmdir $(DESTDIR)$(policydir) || :
if ! WITH_POLKIT0
rm -f $(DESTDIR)$(rulesdir)/50-libvirt.rules
rmdir $(DESTDIR)$(rulesdir) || :
endif ! WITH_POLKIT0
else ! WITH_POLKIT
install-data-polkit::
uninstall-data-polkit::
endif ! WITH_POLKIT
remote.c: $(DAEMON_GENERATED)
remote.h: $(DAEMON_GENERATED)
admin.c: $(DAEMON_GENERATED)
admin.h: $(DAEMON_GENERATED)
LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
libvirtd.libxl.logrotate libvirtd.uml.logrotate \
libvirtd.logrotate
BUILT_SOURCES += $(LOGROTATE_CONFS)
libvirtd.logrotate: libvirtd.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
libvirtd.qemu.logrotate: libvirtd.qemu.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
libvirtd.lxc.logrotate: libvirtd.lxc.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
libvirtd.libxl.logrotate: libvirtd.libxl.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
libvirtd.uml.logrotate: libvirtd.uml.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
install-logrotate: $(LOGROTATE_CONFS)
$(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt/qemu/ \
$(DESTDIR)$(localstatedir)/log/libvirt/lxc/ \
$(DESTDIR)$(localstatedir)/log/libvirt/uml/ \
$(DESTDIR)$(sysconfdir)/logrotate.d/
$(INSTALL_DATA) libvirtd.logrotate \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd
$(INSTALL_DATA) libvirtd.qemu.logrotate \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu
$(INSTALL_DATA) libvirtd.lxc.logrotate \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc
$(INSTALL_DATA) libvirtd.libxl.logrotate \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.libxl
$(INSTALL_DATA) libvirtd.uml.logrotate \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml
uninstall-logrotate:
rm -f $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.libxl \
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || :
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/lxc || :
rmdir $(DESTDIR)$(localstatedir)/log/libvirt/uml || :
rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || :
install-sysconfig:
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
$(INSTALL_DATA) $(srcdir)/libvirtd.sysconf \
$(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
uninstall-sysconfig:
rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
if WITH_SYSCTL
# Use $(prefix)/lib rather than $(libdir), since man sysctl.d insists on
# /usr/lib/sysctl.d/ even when libdir is /usr/lib64
install-sysctl:
$(MKDIR_P) $(DESTDIR)$(prefix)/lib/sysctl.d
$(INSTALL_DATA) $(srcdir)/libvirtd.sysctl \
$(DESTDIR)$(prefix)/lib/sysctl.d/60-libvirtd.conf
uninstall-sysctl:
rm -f $(DESTDIR)$(prefix)/lib/sysctl.d/60-libvirtd.conf
rmdir $(DESTDIR)$(prefix)/lib/sysctl.d || :
else ! WITH_SYSCTL
install-sysctl:
uninstall-sysctl:
endif ! WITH_SYSCTL
if LIBVIRT_INIT_SCRIPT_RED_HAT
BUILT_SOURCES += libvirtd.init
install-init-redhat: install-sysconfig libvirtd.init
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
$(INSTALL_SCRIPT) libvirtd.init \
$(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
uninstall-init-redhat: uninstall-sysconfig
rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
install-init-redhat:
uninstall-init-redhat:
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
if LIBVIRT_INIT_SCRIPT_UPSTART
install-init-upstart: install-sysconfig
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/event.d
$(INSTALL_SCRIPT) libvirtd.upstart \
$(DESTDIR)$(sysconfdir)/event.d/libvirtd
uninstall-init-upstart: uninstall-sysconfig
rm -f $(DESTDIR)$(sysconfdir)/event.d/libvirtd
rmdir $(DESTDIR)$(sysconfdir)/event.d || :
else ! LIBVIRT_INIT_SCRIPT_UPSTART
install-init-upstart:
uninstall-init-upstart:
endif ! LIBVIRT_INIT_SCRIPT_UPSTART
if LIBVIRT_INIT_SCRIPT_SYSTEMD
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
BUILT_SOURCES += libvirtd.service
install-init-systemd: install-sysconfig libvirtd.service
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
$(INSTALL_DATA) libvirtd.service \
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
$(INSTALL_DATA) $(srcdir)/virt-guest-shutdown.target \
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/virt-guest-shutdown.target
uninstall-init-systemd: uninstall-sysconfig
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/virt-guest-shutdown.target
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
install-init-systemd:
uninstall-init-systemd:
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
libvirtd.init: libvirtd.init.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
chmod a+x $@-t && \
mv $@-t $@
libvirtd.service: libvirtd.service.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
mv $@-t $@
check-local: check-augeas
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
test_libvirtd.aug: test_libvirtd.aug.in $(srcdir)/libvirtd.conf
$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/libvirtd.conf $< $@
check-augeas: test_libvirtd.aug
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
'$(AUGPARSE)' -I $(srcdir) test_libvirtd.aug; \
fi
# This must be added last, since functions it provides/replaces
# are used by nearly every other library.
libvirtd_LDADD += ../gnulib/lib/libgnu.la $(LIBSOCKET)
else ! WITH_LIBVIRTD
install-data-local: install-data-sasl
uninstall-local:: uninstall-data-sasl
endif ! WITH_LIBVIRTD
POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"
%.8.in: %.pod
$(AM_V_GEN)$(POD2MAN) --section=8 $< $@-t1 && \
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
sed \
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
< $@-t1 > $@-t2 && \
rm -f $@-t1 && \
mv $@-t2 $@
%.8: %.8.in $(top_srcdir)/configure.ac
$(AM_V_GEN)sed \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@
# This is needed for clients too, so can't wrap in
# the WITH_LIBVIRTD conditional
if WITH_SASL
install-data-sasl:
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sasl2/
$(INSTALL_DATA) $(srcdir)/libvirtd.sasl \
$(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
uninstall-data-sasl:
rm -f $(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
rmdir $(DESTDIR)$(sysconfdir)/sasl2/ || :
else ! WITH_SASL
install-data-sasl:
uninstall-data-sasl:
endif ! WITH_SASL
CLEANFILES += $(BUILT_SOURCES) $(man8_MANS)
CLEANFILES += *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
MAINTAINERCLEANFILES = $(MANINFILES) $(DAEMON_GENERATED)
This diff is collapsed.
Threading in the libvirtd daemon
================================
To allow efficient processing of RPC requests, the libvirtd daemon
makes use of threads.
- The process leader. This is the initial thread of control
when the daemon starts running. It is responsible for
initializing all the state, and starting the event loop.
Once that's all done, this thread does nothing except
wait for the event loop to quit, thus indicating an orderly
shutdown is required.
- The event loop. This thread runs the event loop, sitting
in poll() on all monitored file handles, and calculating
and dispatching any timers that may be registered. When
this thread quits, the entire daemon will shutdown.
- The workers. These 'n' threads all sit around waiting to
process incoming RPC requests. Since RPC requests may take
a long time to complete, with long idle periods, there will
be quite a few workers running.
The use of threads obviously requires locking to ensure safety when
accessing/changing data structures.
- the top level lock is on 'struct qemud_server'. This must be
held before acquiring any other lock
- Each 'struct qemud_client' object has a lock. The server lock
must be held before acquiring it. Once the client lock is acquired
the server lock can (optionally) be dropped.
- The event loop has its own self-contained lock. You can ignore
this as a caller of virEvent APIs.
The server lock is used in conjunction with a condition variable
to pass jobs from the event loop thread to the workers. The main
event loop thread handles I/O from the client socket, and once a
complete RPC message has been read off the wire (and optionally
decrypted), it will be placed on the 'dx' job queue for the
associated client object. The job condition will be signalled and
a worker will wakeup and process it.
The worker thread must quickly drop its locks on the server and
client to allow the main event loop thread to continue running
with its other work. Critically important, is that now libvirt
API call will ever be made with the server or client locks held.
-- End
libvirt (4.1.0-1) unstable; urgency=medium
* [3cbbfa5] New upstream version 4.1.0
* [0e596b3] Bump symbol versions
* [e886044] Drop patches applied upstream
- apparmor-allow-libvirt-to-send-term-signal-to-unconfined.patch
- virlog-determine-the-hostname-on-startup-CVE-2018-6764.patch
* [097d74c] CVE-2018-1064: qemu: avoid denial of service reading from QEMU
guest agent
-- Guido Günther <agx@sigxcpu.org> Thu, 15 Mar 2018 08:25:29 +0100
libvirt (4.0.0-2) unstable; urgency=medium
* [4339f02] CVE-2018-6764: virlog: determine the hostname on startup
......
......@@ -109,7 +109,8 @@ libvirt.so.0 libvirt0 #MINVER#
*@LIBVIRT_3.9.0 3.9.0~rc1
*@LIBVIRT_3.10.0 3.10.0
*@LIBVIRT_4.0.0 4.0.0~rc2
*@LIBVIRT_PRIVATE_4.0.0 4.0.0~rc2
*@LIBVIRT_4.1.0 4.1.0
*@LIBVIRT_PRIVATE_4.1.0 4.1.0
libvirt-qemu.so.0 libvirt0 #MINVER#
*@LIBVIRT_QEMU_0.8.3 0.8.3
......@@ -131,4 +132,4 @@ libvirt-admin.so.0 libvirt0 #MINVER#
*@LIBVIRT_ADMIN_1.3.0 1.2.18
*@LIBVIRT_ADMIN_2.0.0 2.0.0~rc1
*@LIBVIRT_ADMIN_3.0.0 3.0.0
*@LIBVIRT_ADMIN_PRIVATE_4.0.0 4.0.0~rc2
*@LIBVIRT_ADMIN_PRIVATE_4.1.0 4.1.0
......@@ -13,10 +13,10 @@ require the 'TERM' environment variable to be set to the terminal type.
1 file changed, 2 insertions(+)
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
index 23089af..d056d59 100644
index 2d41a71..a5578c1 100644
--- a/src/rpc/virnetsocket.c
+++ b/src/rpc/virnetsocket.c
@@ -849,6 +849,8 @@ int virNetSocketNewConnectSSH(const char *nodename,
@@ -850,6 +850,8 @@ int virNetSocketNewConnectSSH(const char *nodename,
virCommandAddEnvPassBlockSUID(cmd, "KRB5CCNAME", NULL);
virCommandAddEnvPassBlockSUID(cmd, "SSH_AUTH_SOCK", NULL);
virCommandAddEnvPassBlockSUID(cmd, "SSH_ASKPASS", NULL);
......
......@@ -10,10 +10,10 @@ Closes: #663931
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index e9dbaf3..d69fa22 100644
index cd6fbf2..45abc61 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1596,7 +1596,7 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups,
@@ -1600,7 +1600,7 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups,
void virWaitForDevices(void)
{
# ifdef UDEVADM
......
From: =?utf-8?q?Guido_G=C3=BCnther?= <agx@sigxcpu.org>
Date: Wed, 17 Jan 2018 16:20:37 +0100
Subject: apparmor: allow libvirt to send term signal to unconfined
Otherwise stopping domains with qemu://session fails like
[164012.338157] audit: type=1400 audit(1516202208.784:99): apparmor="DENIED" operation="signal" profile="/usr/sbin/libvirtd" pid=18835 comm="libvirtd" requested_mask="send" denied_mask="send" signal=term peer="unconfined"
---
examples/apparmor/usr.sbin.libvirtd | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/apparmor/usr.sbin.libvirtd b/examples/apparmor/usr.sbin.libvirtd
index 4d220c2..72d7987 100644
--- a/examples/apparmor/usr.sbin.libvirtd
+++ b/examples/apparmor/usr.sbin.libvirtd
@@ -63,7 +63,7 @@
signal (send) peer=/usr/sbin/dnsmasq,
signal (read, send) peer=libvirt-*,
- signal (send) set=("kill") peer=unconfined,
+ signal (send) set=("kill", "term") peer=unconfined,
# Very lenient profile for libvirtd since we want to first focus on confining
# the guests. Guests will have a very restricted profile.
......@@ -9,7 +9,7 @@ Origin: vendor
2 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
index 8a158cc..99f4ab8 100644
index d5e68e5..6bfab4e 100644
--- a/tools/libvirt-guests.sh.in
+++ b/tools/libvirt-guests.sh.in
@@ -1,5 +1,17 @@
......@@ -81,7 +81,7 @@ index 8a158cc..99f4ab8 100644
RETVAL=0
@@ -546,8 +558,7 @@ gueststatus() {
@@ -550,8 +562,7 @@ gueststatus() {
# rh_status
# Display current status: whether saved state exists, and whether start
......
......@@ -3,15 +3,15 @@ Date: Tue, 26 Jun 2012 09:30:39 +0200
Subject: Debianize systemd service files
---
daemon/libvirtd.service.in | 4 ++--
src/remote/libvirtd.service.in | 4 ++--
tools/libvirt-guests.service.in | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/daemon/libvirtd.service.in b/daemon/libvirtd.service.in
index c189f5e..e2d58c2 100644
--- a/daemon/libvirtd.service.in
+++ b/daemon/libvirtd.service.in
@@ -19,8 +19,8 @@ Documentation=https://libvirt.org
diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
index 769702e..15db5f4 100644
--- a/src/remote/libvirtd.service.in
+++ b/src/remote/libvirtd.service.in
@@ -21,8 +21,8 @@ Documentation=https://libvirt.org
[Service]
Type=notify
......