2005-11-02 12:50:21 +00:00
|
|
|
## Process this file with automake to produce Makefile.in
|
|
|
|
|
build: use common .in replacement mechanism
We had several different styles of .in conversion in our Makefiles:
ALLCAPS, @ALLCAPS@, @lower@, ::lower::
Canonicalize on one form, to make it easier to copy and paste
between .in files.
Also, we were using some non-portable sed constructs: \@ is an
undefined escape sequence (it happens to be @ itself in GNU sed,
but POSIX allows it to mean something else), as well as risky
behavior (failure to consistently quote things means a space
in $(sysconfdir) could throw things off; also, Autoconf recommends
using | rather than , or ! in the s||| operator, because | has to
be quoted in shell and is therefore less likely to appear in file
names than , or !).
Fix all of these uses to follow the same syntax.
* daemon/libvirtd.8.in: Switch to @var@.
* tools/virt-xml-validate.in: Likewise.
* tools/virt-pki-validate.in: Likewise.
* src/locking/virtlockd.init.in: Likewise.
* daemon/Makefile.am: Prefer | over ! in sed.
(libvirtd.8): Prefer consistent substitution.
(libvirtd.init, libvirtd.service): Avoid non-portable sed.
* tools/Makefile.am (libvirt-guests.sh, libvirt-guests.init)
(libvirt-guests.service): Likewise.
(virt-xml-validate, virt-pki-validate, virt-sanlock-cleanup):
Prefer consistent capitalization.
* src/Makefile.am (virtlockd.init, virtlockd.service)
(virtlockd.socket): Prefer consistent substitution.
2013-01-04 20:35:04 +00:00
|
|
|
## Copyright (C) 2005-2013 Red Hat, Inc.
|
2013-05-14 23:42:12 +00:00
|
|
|
##
|
|
|
|
## 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/>.
|
2011-07-28 18:56:24 +00:00
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
# No libraries with the exception of LIBXML should be listed
|
|
|
|
# here. List them against the individual XXX_la_CFLAGS targets
|
2011-07-28 12:55:21 +00:00
|
|
|
# that actually use them. Also keep GETTEXT_CPPFLAGS at the end.
|
2012-02-02 20:20:09 +00:00
|
|
|
INCLUDES = -I../gnulib/lib \
|
|
|
|
-I$(top_srcdir)/gnulib/lib \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
-I../include \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/include \
|
|
|
|
-I$(top_srcdir)/src/util \
|
2011-07-28 12:55:21 +00:00
|
|
|
-DIN_LIBVIRT \
|
|
|
|
$(GETTEXT_CPPFLAGS)
|
build: consistently use CFLAGS
According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
in automake 1.9.6) should only include -I, -D, and -U directives; more
generic directives like -Wall belong in CFLAGS since they affect more
phases of the build process. Therefore, we should be sticking CFLAGS
additions into a CFLAGS container, not a CPPFLAGS container.
* src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
(INCLUDES): Move CFLAGS items...
(AM_CFLAGS): ...to their proper location.
* python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
* tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
(commandtest_CFLAGS, commandhelper_CFLAGS)
(virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
2011-05-31 22:15:28 +00:00
|
|
|
|
2013-05-13 11:48:06 +00:00
|
|
|
AM_CFLAGS = $(LIBXML_CFLAGS) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(WARN_CFLAGS) \
|
build: consistently use CFLAGS
According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
in automake 1.9.6) should only include -I, -D, and -U directives; more
generic directives like -Wall belong in CFLAGS since they affect more
phases of the build process. Therefore, we should be sticking CFLAGS
additions into a CFLAGS container, not a CPPFLAGS container.
* src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
(INCLUDES): Move CFLAGS items...
(AM_CFLAGS): ...to their proper location.
* python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
* tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
(commandtest_CFLAGS, commandhelper_CFLAGS)
(virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
2011-05-31 22:15:28 +00:00
|
|
|
$(LOCK_CHECKING_CFLAGS) \
|
|
|
|
$(WIN32_EXTRA_CFLAGS) \
|
|
|
|
$(COVERAGE_CFLAGS)
|
2013-05-13 11:48:06 +00:00
|
|
|
AM_LDFLAGS = $(DRIVER_MODULE_LDFLAGS) \
|
2013-08-20 09:20:46 +00:00
|
|
|
$(COVERAGE_LDFLAGS) \
|
|
|
|
$(RELRO_LDFLAGS) \
|
2013-08-13 11:49:05 +00:00
|
|
|
$(NO_INDIRECT_LDFLAGS) \
|
2013-08-20 09:20:46 +00:00
|
|
|
$(NULL)
|
2010-06-09 18:35:49 +00:00
|
|
|
|
2011-07-21 07:02:52 +00:00
|
|
|
EXTRA_DIST = $(conf_DATA) util/keymaps.csv
|
2007-10-12 19:54:15 +00:00
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
BUILT_SOURCES =
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
CLEANFILES =
|
|
|
|
DISTCLEANFILES =
|
|
|
|
MAINTAINERCLEANFILES =
|
2012-12-14 10:54:16 +00:00
|
|
|
nodist_conf_DATA =
|
2010-03-06 16:56:28 +00:00
|
|
|
|
2011-11-04 20:53:15 +00:00
|
|
|
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)
|
|
|
|
|
2013-02-01 19:22:26 +00:00
|
|
|
SECDRIVER_LIBS =
|
|
|
|
if WITH_SECDRIVER_SELINUX
|
|
|
|
SECDRIVER_LIBS += $(SELINUX_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_SELINUX
|
2013-02-01 19:22:26 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
|
|
|
SECDRIVER_LIBS += $(APPARMOR_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_APPARMOR
|
2013-02-01 19:22:26 +00:00
|
|
|
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_NETWORK
|
|
|
|
UUID=$(shell uuidgen 2>/dev/null)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETWORK
|
2005-11-02 15:37:34 +00:00
|
|
|
|
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 13:15:19 +00:00
|
|
|
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2011-01-21 17:42:07 +00:00
|
|
|
moddir = $(libdir)/libvirt/connection-driver
|
2008-11-21 12:16:08 +00:00
|
|
|
mod_LTLIBRARIES =
|
|
|
|
|
2009-10-08 15:40:14 +00:00
|
|
|
confdir = $(sysconfdir)/libvirt
|
2011-10-13 10:49:45 +00:00
|
|
|
conf_DATA = libvirt.conf
|
2008-11-21 12:16:08 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeasdir = $(datadir)/augeas/lenses
|
|
|
|
augeas_DATA =
|
|
|
|
|
|
|
|
augeastestdir = $(datadir)/augeas/lenses/tests
|
|
|
|
augeastest_DATA =
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# These files are not related to driver APIs. Simply generic
|
|
|
|
# helper APIs for various purposes
|
2008-11-17 10:43:30 +00:00
|
|
|
UTIL_SOURCES = \
|
2012-12-12 18:06:53 +00:00
|
|
|
util/viralloc.c util/viralloc.h \
|
2012-12-10 21:54:00 +00:00
|
|
|
util/virarch.h util/virarch.c \
|
2012-07-11 13:35:43 +00:00
|
|
|
util/viratomic.h util/viratomic.c \
|
2011-07-11 19:42:15 +00:00
|
|
|
util/viraudit.c util/viraudit.h \
|
2012-03-19 16:21:12 +00:00
|
|
|
util/virauth.c util/virauth.h \
|
2012-03-20 15:40:05 +00:00
|
|
|
util/virauthconfig.c util/virauthconfig.h \
|
2012-12-04 11:56:32 +00:00
|
|
|
util/virbitmap.c util/virbitmap.h \
|
2012-12-04 12:04:07 +00:00
|
|
|
util/virbuffer.c util/virbuffer.h \
|
2013-03-28 14:32:23 +00:00
|
|
|
util/vircgroup.c util/vircgroup.h util/vircgrouppriv.h \
|
2013-07-15 14:53:13 +00:00
|
|
|
util/virclosecallbacks.c util/virclosecallbacks.h \
|
2012-12-12 16:27:01 +00:00
|
|
|
util/vircommand.c util/vircommand.h \
|
2012-12-12 16:35:35 +00:00
|
|
|
util/virconf.c util/virconf.h \
|
2013-07-23 13:40:06 +00:00
|
|
|
util/virdbus.c util/virdbus.h util/virdbuspriv.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virdnsmasq.c util/virdnsmasq.h \
|
2012-12-12 16:48:24 +00:00
|
|
|
util/virebtables.c util/virebtables.h \
|
2013-02-08 23:44:21 +00:00
|
|
|
util/virendian.h \
|
2012-12-13 18:21:53 +00:00
|
|
|
util/virerror.c util/virerror.h \
|
2012-12-12 16:52:12 +00:00
|
|
|
util/virevent.c util/virevent.h \
|
2012-12-12 16:54:55 +00:00
|
|
|
util/vireventpoll.c util/vireventpoll.h \
|
2011-07-19 18:32:58 +00:00
|
|
|
util/virfile.c util/virfile.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virhash.c util/virhash.h \
|
|
|
|
util/virhashcode.c util/virhashcode.h \
|
2012-12-12 17:00:34 +00:00
|
|
|
util/virhook.c util/virhook.h \
|
2012-01-20 17:49:32 +00:00
|
|
|
util/viridentity.c util/viridentity.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virinitctl.c util/virinitctl.h \
|
2012-12-12 17:42:44 +00:00
|
|
|
util/viriptables.c util/viriptables.h \
|
2012-12-12 17:53:50 +00:00
|
|
|
util/virjson.c util/virjson.h \
|
2011-07-21 07:32:34 +00:00
|
|
|
util/virkeycode.c util/virkeycode.h \
|
2012-03-16 16:29:49 +00:00
|
|
|
util/virkeyfile.c util/virkeyfile.h \
|
Split bridge.h into three separate files
Following the renaming of the bridge management APIs, we can now
split the source file into 3 corresponding pieces
* src/util/virnetdev.c: APIs for any type of network interface
* src/util/virnetdevbridge.c: APIs for bridge interfaces
* src/util/virnetdevtap.c: APIs for TAP interfaces
* src/util/virnetdev.c, src/util/virnetdev.h,
src/util/virnetdevbridge.c, src/util/virnetdevbridge.h,
src/util/virnetdevtap.c, src/util/virnetdevtap.h: Copied
from bridge.{c,h}
* src/util/bridge.c, src/util/bridge.h: Split into 3 pieces
* src/lxc/lxc_driver.c, src/network/bridge_driver.c,
src/openvz/openvz_driver.c, src/qemu/qemu_command.c,
src/qemu/qemu_conf.h, src/uml/uml_conf.c, src/uml/uml_conf.h,
src/uml/uml_driver.c: Update #include directives
2011-11-02 13:41:58 +00:00
|
|
|
util/virkeymaps.h \
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
util/virlockspace.c util/virlockspace.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virlog.c util/virlog.h \
|
2012-01-27 17:23:05 +00:00
|
|
|
util/virmacaddr.h util/virmacaddr.c \
|
Split bridge.h into three separate files
Following the renaming of the bridge management APIs, we can now
split the source file into 3 corresponding pieces
* src/util/virnetdev.c: APIs for any type of network interface
* src/util/virnetdevbridge.c: APIs for bridge interfaces
* src/util/virnetdevtap.c: APIs for TAP interfaces
* src/util/virnetdev.c, src/util/virnetdev.h,
src/util/virnetdevbridge.c, src/util/virnetdevbridge.h,
src/util/virnetdevtap.c, src/util/virnetdevtap.h: Copied
from bridge.{c,h}
* src/util/bridge.c, src/util/bridge.h: Split into 3 pieces
* src/lxc/lxc_driver.c, src/network/bridge_driver.c,
src/openvz/openvz_driver.c, src/qemu/qemu_command.c,
src/qemu/qemu_conf.h, src/uml/uml_conf.c, src/uml/uml_conf.h,
src/uml/uml_driver.c: Update #include directives
2011-11-02 13:41:58 +00:00
|
|
|
util/virnetdev.h util/virnetdev.c \
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
util/virnetdevbandwidth.h util/virnetdevbandwidth.c \
|
Split bridge.h into three separate files
Following the renaming of the bridge management APIs, we can now
split the source file into 3 corresponding pieces
* src/util/virnetdev.c: APIs for any type of network interface
* src/util/virnetdevbridge.c: APIs for bridge interfaces
* src/util/virnetdevtap.c: APIs for TAP interfaces
* src/util/virnetdev.c, src/util/virnetdev.h,
src/util/virnetdevbridge.c, src/util/virnetdevbridge.h,
src/util/virnetdevtap.c, src/util/virnetdevtap.h: Copied
from bridge.{c,h}
* src/util/bridge.c, src/util/bridge.h: Split into 3 pieces
* src/lxc/lxc_driver.c, src/network/bridge_driver.c,
src/openvz/openvz_driver.c, src/qemu/qemu_command.c,
src/qemu/qemu_conf.h, src/uml/uml_conf.c, src/uml/uml_conf.h,
src/uml/uml_driver.c: Update #include directives
2011-11-02 13:41:58 +00:00
|
|
|
util/virnetdevbridge.h util/virnetdevbridge.c \
|
2011-11-02 17:11:02 +00:00
|
|
|
util/virnetdevmacvlan.c util/virnetdevmacvlan.h \
|
2012-02-10 21:09:00 +00:00
|
|
|
util/virnetdevopenvswitch.h util/virnetdevopenvswitch.c \
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
util/virnetdevtap.h util/virnetdevtap.c \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virnetdevveth.h util/virnetdevveth.c \
|
|
|
|
util/virnetdevvlan.h util/virnetdevvlan.c \
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
util/virnetdevvportprofile.h util/virnetdevvportprofile.c \
|
2012-02-03 14:13:19 +00:00
|
|
|
util/virnetlink.c util/virnetlink.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virnodesuspend.c util/virnodesuspend.h \
|
2013-03-18 09:04:01 +00:00
|
|
|
util/virnuma.c util/virnuma.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virobject.c util/virobject.h \
|
|
|
|
util/virpci.c util/virpci.h \
|
|
|
|
util/virpidfile.c util/virpidfile.h \
|
2013-01-09 15:11:50 +00:00
|
|
|
util/virportallocator.c util/virportallocator.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virprocess.c util/virprocess.h \
|
2012-01-25 15:17:46 +00:00
|
|
|
util/virrandom.h util/virrandom.c \
|
2013-05-03 18:07:22 +00:00
|
|
|
util/virscsi.c util/virscsi.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virsexpr.c util/virsexpr.h \
|
|
|
|
util/virsocketaddr.h util/virsocketaddr.c \
|
|
|
|
util/virstatslinux.c util/virstatslinux.h \
|
|
|
|
util/virstoragefile.c util/virstoragefile.h \
|
|
|
|
util/virstring.h util/virstring.c \
|
|
|
|
util/virsysinfo.c util/virsysinfo.h \
|
2013-07-18 09:54:21 +00:00
|
|
|
util/virsystemd.c util/virsystemd.h \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virthread.c util/virthread.h \
|
|
|
|
util/virthreadpthread.h \
|
|
|
|
util/virthreadwin32.h \
|
|
|
|
util/virthreadpool.c util/virthreadpool.h \
|
|
|
|
util/virtime.h util/virtime.c \
|
2013-04-12 20:55:45 +00:00
|
|
|
util/virtpm.h util/virtpm.c \
|
2012-12-13 18:26:46 +00:00
|
|
|
util/virtypedparam.c util/virtypedparam.h \
|
2012-12-12 17:04:51 +00:00
|
|
|
util/virusb.c util/virusb.h \
|
2012-12-13 17:44:57 +00:00
|
|
|
util/viruri.h util/viruri.c \
|
|
|
|
util/virutil.c util/virutil.h \
|
2012-12-13 18:01:25 +00:00
|
|
|
util/viruuid.c util/viruuid.h \
|
2012-12-13 18:13:21 +00:00
|
|
|
util/virxml.c util/virxml.h \
|
2012-12-13 17:44:57 +00:00
|
|
|
$(NULL)
|
2011-07-21 07:32:34 +00:00
|
|
|
|
2012-12-13 18:26:46 +00:00
|
|
|
|
2011-07-21 07:32:34 +00:00
|
|
|
EXTRA_DIST += $(srcdir)/util/virkeymaps.h $(srcdir)/util/keymaps.csv \
|
|
|
|
$(srcdir)/util/virkeycode-mapgen.py
|
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
BUILT_SOURCES += util/virkeymaps.h
|
2012-06-13 03:49:22 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
util/virkeymaps.h: $(srcdir)/util/keymaps.csv \
|
2011-07-21 07:32:34 +00:00
|
|
|
$(srcdir)/util/virkeycode-mapgen.py
|
2013-07-18 15:37:52 +00:00
|
|
|
$(AM_V_GEN)$(PYTHON) $(srcdir)/util/virkeycode-mapgen.py \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
<$(srcdir)/util/keymaps.csv >$(srcdir)/util/virkeymaps.h
|
2011-07-21 07:32:34 +00:00
|
|
|
|
2012-12-13 15:49:48 +00:00
|
|
|
EXTRA_DIST += util/virthreadpthread.c util/virthreadwin32.c
|
2009-01-15 19:56:05 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Internal generic driver infrastructure
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
|
2012-08-03 15:48:05 +00:00
|
|
|
DATATYPES_SOURCES = datatypes.h datatypes.c
|
|
|
|
DRIVER_SOURCES = \
|
|
|
|
driver.c driver.h \
|
|
|
|
internal.h \
|
|
|
|
$(DATATYPES_SOURCES) \
|
|
|
|
fdstream.c fdstream.h \
|
|
|
|
$(NODE_INFO_SOURCES) \
|
|
|
|
libvirt.c libvirt_internal.h \
|
|
|
|
locking/lock_manager.c locking/lock_manager.h \
|
|
|
|
locking/lock_driver.h \
|
|
|
|
locking/lock_driver_nop.h locking/lock_driver_nop.c \
|
2011-01-24 12:16:30 +00:00
|
|
|
locking/domain_lock.h locking/domain_lock.c
|
2008-11-17 10:43:30 +00:00
|
|
|
|
2011-01-18 18:37:45 +00:00
|
|
|
LOCK_DRIVER_SANLOCK_SOURCES = \
|
|
|
|
locking/lock_driver_sanlock.c
|
|
|
|
|
2012-09-18 11:41:26 +00:00
|
|
|
LOCK_DRIVER_SANLOCK_HELPER_SOURCES = \
|
|
|
|
locking/sanlock_helper.c
|
2008-11-17 10:43:30 +00:00
|
|
|
|
2011-07-06 16:20:04 +00:00
|
|
|
LOCK_PROTOCOL_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
locking/lock_protocol.h \
|
|
|
|
locking/lock_protocol.c \
|
2011-07-06 16:20:04 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2012-12-13 16:00:17 +00:00
|
|
|
LOCK_PROTOCOL = $(srcdir)/locking/lock_protocol.x
|
|
|
|
EXTRA_DIST += $(LOCK_PROTOCOL) \
|
|
|
|
$(LOCK_PROTOCOL_GENERATED)
|
2011-07-06 16:20:04 +00:00
|
|
|
BUILT_SOURCES += $(LOCK_PROTOCOL_GENERATED)
|
|
|
|
MAINTAINERCLEANFILES += $(LOCK_PROTOCOL_GENERATED)
|
|
|
|
|
2012-08-03 09:27:07 +00:00
|
|
|
LOCK_DAEMON_GENERATED = \
|
2012-12-13 16:00:17 +00:00
|
|
|
$(srcdir)/locking/lock_daemon_dispatch_stubs.h
|
2012-08-03 09:27:07 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
BUILT_SOURCES += $(LOCK_DAEMON_GENERATED)
|
2012-12-13 16:00:17 +00:00
|
|
|
EXTRA_DIST += $(LOCK_DAEMON_GENERATED)
|
2012-08-03 09:27:07 +00:00
|
|
|
MAINTAINERCLEANFILES += $(LOCK_DAEMON_GENERATED)
|
|
|
|
|
2011-07-06 16:30:08 +00:00
|
|
|
LOCK_DRIVER_LOCKD_SOURCES = \
|
|
|
|
locking/lock_driver_lockd.c \
|
|
|
|
$(NULL)
|
|
|
|
|
2012-08-02 19:06:50 +00:00
|
|
|
LOCK_DAEMON_SOURCES = \
|
|
|
|
locking/lock_daemon.h \
|
|
|
|
locking/lock_daemon.c \
|
|
|
|
locking/lock_daemon_config.h \
|
|
|
|
locking/lock_daemon_config.c \
|
2012-08-03 09:27:07 +00:00
|
|
|
locking/lock_daemon_dispatch.c \
|
|
|
|
locking/lock_daemon_dispatch.h \
|
2012-08-02 19:06:50 +00:00
|
|
|
$(NULL)
|
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
locking/lock_daemon_dispatch_stubs.h: $(LOCK_PROTOCOL) \
|
2012-12-13 16:00:17 +00:00
|
|
|
$(srcdir)/rpc/gendispatch.pl Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)perl -w $(srcdir)/rpc/gendispatch.pl --mode=server \
|
|
|
|
virLockSpaceProtocol VIR_LOCK_SPACE_PROTOCOL \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
$(LOCK_PROTOCOL) > $(srcdir)/locking/lock_daemon_dispatch_stubs.h
|
2012-08-03 09:27:07 +00:00
|
|
|
|
|
|
|
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
NETDEV_CONF_SOURCES = \
|
|
|
|
conf/netdev_bandwidth_conf.h conf/netdev_bandwidth_conf.c \
|
2012-08-12 07:51:30 +00:00
|
|
|
conf/netdev_vport_profile_conf.h conf/netdev_vport_profile_conf.c \
|
|
|
|
conf/netdev_vlan_conf.h conf/netdev_vlan_conf.c
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
# XML configuration format handling sources
|
2008-08-20 20:48:35 +00:00
|
|
|
# Domain driver generic impl APIs
|
|
|
|
DOMAIN_CONF_SOURCES = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
conf/capabilities.c conf/capabilities.h \
|
2010-06-21 18:18:31 +00:00
|
|
|
conf/domain_conf.c conf/domain_conf.h \
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
conf/domain_audit.c conf/domain_audit.h \
|
2012-08-14 00:09:12 +00:00
|
|
|
conf/domain_nwfilter.c conf/domain_nwfilter.h \
|
|
|
|
conf/snapshot_conf.c conf/snapshot_conf.h
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
|
|
|
DOMAIN_EVENT_SOURCES = \
|
|
|
|
conf/domain_event.c conf/domain_event.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
# Network driver generic impl APIs
|
2010-03-25 17:46:07 +00:00
|
|
|
NETWORK_CONF_SOURCES = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
conf/network_conf.c conf/network_conf.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-03-25 17:46:07 +00:00
|
|
|
# Network filter driver generic impl APIs
|
|
|
|
NWFILTER_PARAM_CONF_SOURCES = \
|
2010-03-31 08:19:06 +00:00
|
|
|
conf/nwfilter_params.c conf/nwfilter_params.h \
|
2012-06-01 23:32:06 +00:00
|
|
|
conf/nwfilter_ipaddrmap.c \
|
|
|
|
conf/nwfilter_ipaddrmap.h \
|
2010-03-31 08:19:06 +00:00
|
|
|
conf/nwfilter_conf.h
|
2010-03-25 17:46:07 +00:00
|
|
|
|
2012-06-01 23:32:06 +00:00
|
|
|
NWFILTER_CONF_SOURCES = \
|
2010-03-25 17:46:07 +00:00
|
|
|
$(NWFILTER_PARAM_CONF_SOURCES) \
|
|
|
|
conf/nwfilter_conf.c conf/nwfilter_conf.h
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Storage driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
STORAGE_CONF_SOURCES = \
|
|
|
|
conf/storage_conf.h conf/storage_conf.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-07-15 17:34:04 +00:00
|
|
|
# Interface driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
INTERFACE_CONF_SOURCES = \
|
|
|
|
conf/interface_conf.c conf/interface_conf.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-09-01 15:27:46 +00:00
|
|
|
# Secret driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
SECRET_CONF_SOURCES = \
|
|
|
|
conf/secret_conf.h conf/secret_conf.c
|
|
|
|
|
|
|
|
# Network driver generic impl APIs
|
|
|
|
NODE_DEVICE_CONF_SOURCES = \
|
|
|
|
conf/node_device_conf.c conf/node_device_conf.h
|
|
|
|
|
|
|
|
ENCRYPTION_CONF_SOURCES = \
|
|
|
|
conf/storage_encryption_conf.c conf/storage_encryption_conf.h
|
|
|
|
|
2009-12-18 13:44:55 +00:00
|
|
|
CPU_CONF_SOURCES = \
|
|
|
|
conf/cpu_conf.c conf/cpu_conf.h
|
2012-06-05 12:00:52 +00:00
|
|
|
|
2013-01-02 15:38:52 +00:00
|
|
|
# Safe character device handling helper APIs
|
|
|
|
CHRDEV_CONF_SOURCES = \
|
2013-01-02 15:38:51 +00:00
|
|
|
conf/virchrdev.c conf/virchrdev.h
|
2009-12-18 13:44:55 +00:00
|
|
|
|
2012-08-16 15:41:06 +00:00
|
|
|
# Device Helper APIs
|
|
|
|
DEVICE_CONF_SOURCES = \
|
|
|
|
conf/device_conf.c conf/device_conf.h
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
CONF_SOURCES = \
|
Split src/util/network.{c,h} into 5 pieces
The src/util/network.c file is a dumping ground for many different
APIs. Split it up into 5 pieces, along functional lines
- src/util/virnetdevbandwidth.c: virNetDevBandwidth type & helper APIs
- src/util/virnetdevvportprofile.c: virNetDevVPortProfile type & helper APIs
- src/util/virsocketaddr.c: virSocketAddr and APIs
- src/conf/netdev_bandwidth_conf.c: XML parsing / formatting
for virNetDevBandwidth
- src/conf/netdev_vport_profile_conf.c: XML parsing / formatting
for virNetDevVPortProfile
* src/util/network.c, src/util/network.h: Split into 5 pieces
* src/conf/netdev_bandwidth_conf.c, src/conf/netdev_bandwidth_conf.h,
src/conf/netdev_vport_profile_conf.c, src/conf/netdev_vport_profile_conf.h,
src/util/virnetdevbandwidth.c, src/util/virnetdevbandwidth.h,
src/util/virnetdevvportprofile.c, src/util/virnetdevvportprofile.h,
src/util/virsocketaddr.c, src/util/virsocketaddr.h: New pieces
* daemon/libvirtd.h, daemon/remote.c, src/conf/domain_conf.c,
src/conf/domain_conf.h, src/conf/network_conf.c,
src/conf/network_conf.h, src/conf/nwfilter_conf.h,
src/esx/esx_util.h, src/network/bridge_driver.c,
src/qemu/qemu_conf.c, src/rpc/virnetsocket.c,
src/rpc/virnetsocket.h, src/util/dnsmasq.h, src/util/interface.h,
src/util/iptables.h, src/util/macvtap.c, src/util/macvtap.h,
src/util/virnetdev.h, src/util/virnetdevtap.c,
tools/virsh.c: Update include files
2011-11-02 15:40:08 +00:00
|
|
|
$(NETDEV_CONF_SOURCES) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(DOMAIN_CONF_SOURCES) \
|
|
|
|
$(DOMAIN_EVENT_SOURCES) \
|
|
|
|
$(NETWORK_CONF_SOURCES) \
|
2010-03-25 17:46:07 +00:00
|
|
|
$(NWFILTER_CONF_SOURCES) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(NODE_DEVICE_CONF_SOURCES) \
|
|
|
|
$(STORAGE_CONF_SOURCES) \
|
|
|
|
$(ENCRYPTION_CONF_SOURCES) \
|
|
|
|
$(INTERFACE_CONF_SOURCES) \
|
2009-12-18 13:44:55 +00:00
|
|
|
$(SECRET_CONF_SOURCES) \
|
2011-11-25 15:25:14 +00:00
|
|
|
$(CPU_CONF_SOURCES) \
|
2013-01-02 15:38:52 +00:00
|
|
|
$(CHRDEV_CONF_SOURCES) \
|
2012-08-16 15:41:06 +00:00
|
|
|
$(DEVICE_CONF_SOURCES)
|
2009-09-01 15:27:46 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# The remote RPC driver, covering domains, storage, networks, etc
|
2011-05-06 13:11:32 +00:00
|
|
|
REMOTE_DRIVER_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote/remote_protocol.c \
|
|
|
|
remote/remote_protocol.h \
|
|
|
|
remote/remote_client_bodies.h \
|
|
|
|
remote/lxc_protocol.c \
|
|
|
|
remote/lxc_protocol.h \
|
|
|
|
remote/lxc_client_bodies.h \
|
|
|
|
remote/qemu_protocol.c \
|
|
|
|
remote/qemu_protocol.h \
|
|
|
|
remote/qemu_client_bodies.h \
|
|
|
|
$(NULL)
|
2011-05-06 23:10:43 +00:00
|
|
|
|
|
|
|
REMOTE_PROTOCOL = $(srcdir)/remote/remote_protocol.x
|
2012-12-21 14:20:04 +00:00
|
|
|
LXC_PROTOCOL = $(srcdir)/remote/lxc_protocol.x
|
2011-05-06 23:10:43 +00:00
|
|
|
QEMU_PROTOCOL = $(srcdir)/remote/qemu_protocol.x
|
2012-12-21 14:20:04 +00:00
|
|
|
REMOTE_DRIVER_PROTOCOL = $(REMOTE_PROTOCOL) $(QEMU_PROTOCOL) $(LXC_PROTOCOL)
|
2011-04-23 10:53:57 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote/remote_client_bodies.h: $(srcdir)/rpc/gendispatch.pl \
|
2013-03-14 14:54:09 +00:00
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote REMOTE $(REMOTE_PROTOCOL) \
|
|
|
|
> $(srcdir)/remote/remote_client_bodies.h
|
2011-04-23 10:53:57 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote/lxc_client_bodies.h: $(srcdir)/rpc/gendispatch.pl \
|
2013-03-14 14:54:09 +00:00
|
|
|
$(LXC_PROTOCOL) Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc LXC $(LXC_PROTOCOL) \
|
|
|
|
> $(srcdir)/remote/lxc_client_bodies.h
|
2012-12-21 14:20:04 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote/qemu_client_bodies.h: $(srcdir)/rpc/gendispatch.pl \
|
2013-03-14 14:54:09 +00:00
|
|
|
$(QEMU_PROTOCOL) Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
qemu QEMU $(QEMU_PROTOCOL) \
|
|
|
|
> $(srcdir)/remote/qemu_client_bodies.h
|
2011-05-06 13:11:32 +00:00
|
|
|
|
|
|
|
REMOTE_DRIVER_SOURCES = \
|
|
|
|
gnutls_1_0_compat.h \
|
|
|
|
remote/remote_driver.c remote/remote_driver.h \
|
|
|
|
$(REMOTE_DRIVER_GENERATED)
|
2011-04-23 10:53:57 +00:00
|
|
|
|
2011-05-06 13:11:32 +00:00
|
|
|
EXTRA_DIST += $(REMOTE_DRIVER_PROTOCOL) \
|
2010-12-10 12:27:33 +00:00
|
|
|
$(REMOTE_DRIVER_GENERATED)
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-05-07 14:01:26 +00:00
|
|
|
# Ensure that we don't change the struct or member names or member ordering
|
|
|
|
# in remote_protocol.x The embedded perl below needs a few comments, and
|
|
|
|
# presumes you know what pdwtags output looks like:
|
|
|
|
# * use -0777 -n to slurp the entire file into $_.
|
|
|
|
# * the "split" splits on the /* DD */ comments, so that $p iterates
|
|
|
|
# through the struct definitions.
|
|
|
|
# * process only "struct remote_..." entries
|
|
|
|
# * remove comments and preceding TAB throughout
|
|
|
|
# * remove empty lines throughout
|
|
|
|
# * remove white space at end of buffer
|
2010-05-19 13:36:27 +00:00
|
|
|
|
|
|
|
# With pdwtags 1.8, --verbose output includes separators like these:
|
|
|
|
# /* 93 */
|
|
|
|
# /* <0> (null):0 */
|
2011-07-14 16:18:40 +00:00
|
|
|
# with the second line omitted for intrinsic types.
|
|
|
|
# Whereas with pdwtags 1.3, they look like this:
|
2010-05-19 13:36:27 +00:00
|
|
|
# /* <2d2> /usr/include/libio.h:180 */
|
2011-07-14 16:18:40 +00:00
|
|
|
# The alternation of the following regexps matches both cases.
|
|
|
|
r1 = /\* \d+ \*/
|
2010-05-19 13:36:27 +00:00
|
|
|
r2 = /\* <[[:xdigit:]]+> \S+:\d+ \*/
|
2013-09-07 21:22:18 +00:00
|
|
|
struct_prefix = (remote_|qemu_|lxc_|keepalive|vir(Net|LockSpace|LXCMonitor))
|
2010-05-19 13:36:27 +00:00
|
|
|
|
build: check correct protocol.o file
By default, libtool builds two .o files for every .lo rule:
src/foo.o - static builds
src/.libs/foo.o - shared library builds
But since commit ad42b34b disabled static builds, src/foo.o is
no longer built by default. On a fresh checkout, this means our
protocol check rules using pdwtags were testing a missing file,
and thanks to a lousy behavior of pdwtags happily giving no output
and 0 exit status (http://bugzilla.redhat.com/949034), we were
merely claiming that "dwarves is too old" and skipping the test.
However, if you swap between branches and do incremental builds,
such as building v0.10.2-maint and then switching back to master,
you end up with src/foo.o being leftover from its 0.10.2 state,
and then 'make check' fails because the .o file does not match
the protocol-structs file due to API additions in the meantime.
A simpler fix would be to always look in .libs for the .o to
be parsed; but since it is possible to pass ./configure options
to tell libtool to do a static-only build with no shared .o,
I went with the approach of finding the newest of the two files,
whenever both exist.
* src/Makefile.am (PDWTAGS): Ensure we test just-built file.
2013-04-05 17:09:32 +00:00
|
|
|
# Depending on configure options, libtool creates one or both of
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
# remote/{,.libs/}libvirt_driver_remote_la-remote_protocol.o. We want
|
|
|
|
# the newest of the two, in case configure options changed and a stale
|
build: check correct protocol.o file
By default, libtool builds two .o files for every .lo rule:
src/foo.o - static builds
src/.libs/foo.o - shared library builds
But since commit ad42b34b disabled static builds, src/foo.o is
no longer built by default. On a fresh checkout, this means our
protocol check rules using pdwtags were testing a missing file,
and thanks to a lousy behavior of pdwtags happily giving no output
and 0 exit status (http://bugzilla.redhat.com/949034), we were
merely claiming that "dwarves is too old" and skipping the test.
However, if you swap between branches and do incremental builds,
such as building v0.10.2-maint and then switching back to master,
you end up with src/foo.o being leftover from its 0.10.2 state,
and then 'make check' fails because the .o file does not match
the protocol-structs file due to API additions in the meantime.
A simpler fix would be to always look in .libs for the .o to
be parsed; but since it is possible to pass ./configure options
to tell libtool to do a static-only build with no shared .o,
I went with the approach of finding the newest of the two files,
whenever both exist.
* src/Makefile.am (PDWTAGS): Ensure we test just-built file.
2013-04-05 17:09:32 +00:00
|
|
|
# file is left around from an earlier build.
|
2011-07-13 15:35:03 +00:00
|
|
|
PDWTAGS = \
|
2010-05-10 20:17:10 +00:00
|
|
|
$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then \
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
o=`ls -t $(<:.lo=.$(OBJEXT)) \
|
|
|
|
$(subst /,/.libs/,$(<:.lo=.$(OBJEXT))) \
|
build: check correct protocol.o file
By default, libtool builds two .o files for every .lo rule:
src/foo.o - static builds
src/.libs/foo.o - shared library builds
But since commit ad42b34b disabled static builds, src/foo.o is
no longer built by default. On a fresh checkout, this means our
protocol check rules using pdwtags were testing a missing file,
and thanks to a lousy behavior of pdwtags happily giving no output
and 0 exit status (http://bugzilla.redhat.com/949034), we were
merely claiming that "dwarves is too old" and skipping the test.
However, if you swap between branches and do incremental builds,
such as building v0.10.2-maint and then switching back to master,
you end up with src/foo.o being leftover from its 0.10.2 state,
and then 'make check' fails because the .o file does not match
the protocol-structs file due to API additions in the meantime.
A simpler fix would be to always look in .libs for the .o to
be parsed; but since it is possible to pass ./configure options
to tell libtool to do a static-only build with no shared .o,
I went with the approach of finding the newest of the two files,
whenever both exist.
* src/Makefile.am (PDWTAGS): Ensure we test just-built file.
2013-04-05 17:09:32 +00:00
|
|
|
2>/dev/null | sed -n 1p`; \
|
|
|
|
test -f "$$o" || { echo ".o for $< not found" >&2; exit 1; }; \
|
|
|
|
pdwtags --verbose $$o > $(@F)-t1 2> $(@F)-t2; \
|
2013-09-07 21:22:18 +00:00
|
|
|
if test ! -s $(@F)-t1 && test -s $(@F)-t2; then \
|
2012-01-06 23:07:34 +00:00
|
|
|
rm -rf $(@F)-t?; \
|
|
|
|
echo 'WARNING: pdwtags appears broken; skipping the $@ test' >&2;\
|
|
|
|
else \
|
2012-05-29 21:57:31 +00:00
|
|
|
$(PERL) -0777 -n \
|
2011-07-14 16:18:40 +00:00
|
|
|
-e 'foreach my $$p (split m!\n*(?:$(r1)|$(r2))\n!) {' \
|
2011-11-24 13:16:36 +00:00
|
|
|
-e ' if ($$p =~ /^(struct|enum) $(struct_prefix)/ ||' \
|
|
|
|
-e ' $$p =~ /^enum {/) {' \
|
2010-05-19 13:36:27 +00:00
|
|
|
-e ' $$p =~ s!\t*/\*.*?\*/!!sg;' \
|
|
|
|
-e ' $$p =~ s!\s+\n!\n!sg;' \
|
|
|
|
-e ' $$p =~ s!\s+$$!!;' \
|
2011-03-10 22:28:28 +00:00
|
|
|
-e ' $$p =~ s!\t! !g;' \
|
2010-05-19 13:36:27 +00:00
|
|
|
-e ' print "$$p\n";' \
|
|
|
|
-e ' $$n++;' \
|
|
|
|
-e ' }' \
|
|
|
|
-e '}' \
|
2011-03-10 22:28:28 +00:00
|
|
|
-e 'BEGIN {' \
|
|
|
|
-e ' print "/* -*- c -*- */\n";' \
|
|
|
|
-e '}' \
|
2010-05-19 13:36:27 +00:00
|
|
|
-e 'END {' \
|
2011-11-24 13:16:36 +00:00
|
|
|
-e ' if ($$n < 1) {' \
|
2010-05-19 13:36:27 +00:00
|
|
|
-e ' warn "WARNING: your pdwtags program is too old\n";' \
|
|
|
|
-e ' warn "WARNING: skipping the $@ test\n";' \
|
|
|
|
-e ' warn "WARNING: install dwarves-1.3 or newer\n";' \
|
|
|
|
-e ' exit 8;' \
|
|
|
|
-e ' }' \
|
|
|
|
-e '}' \
|
2012-01-06 23:07:34 +00:00
|
|
|
< $(@F)-t1 > $(@F)-t3; \
|
|
|
|
case $$? in 8) rm -f $(@F)-t?; exit 0;; 0) ;; *) exit 1;; esac;\
|
2012-06-13 03:49:22 +00:00
|
|
|
diff -u $(@)s $(@F)-t3; st=$$?; rm -f $(@F)-t?; exit $$st; \
|
2012-01-06 23:07:34 +00:00
|
|
|
fi; \
|
2010-05-07 14:01:26 +00:00
|
|
|
else \
|
2010-05-19 13:36:27 +00:00
|
|
|
echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2; \
|
|
|
|
echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
|
2010-05-07 14:01:26 +00:00
|
|
|
fi
|
2011-07-13 15:35:03 +00:00
|
|
|
|
2012-08-21 20:33:03 +00:00
|
|
|
# .libs/libvirt.so is built by libtool as a side-effect of the Makefile
|
2012-09-05 19:10:18 +00:00
|
|
|
# rule for libvirt.la. However, checking symbols relies on Linux ELF layout
|
|
|
|
if WITH_LINUX
|
2012-08-21 20:33:03 +00:00
|
|
|
check-symfile: libvirt.syms libvirt.la
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt.syms \
|
|
|
|
.libs/libvirt.so
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LINUX
|
2012-09-05 19:10:18 +00:00
|
|
|
check-symfile:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LINUX
|
2012-12-11 22:21:17 +00:00
|
|
|
check-symsorting:
|
2013-02-20 00:59:20 +00:00
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
|
2013-02-22 23:46:25 +00:00
|
|
|
$(srcdir) $(SYM_FILES)
|
2012-12-13 22:13:21 +00:00
|
|
|
EXTRA_DIST += check-symfile.pl check-symsorting.pl
|
2012-07-24 13:37:48 +00:00
|
|
|
|
2013-09-07 21:22:18 +00:00
|
|
|
# Keep this list synced with RPC_PROBE_FILES
|
2011-07-13 15:35:03 +00:00
|
|
|
PROTOCOL_STRUCTS = \
|
|
|
|
$(srcdir)/remote_protocol-structs \
|
2012-12-21 14:20:04 +00:00
|
|
|
$(srcdir)/lxc_protocol-structs \
|
2011-07-13 15:35:03 +00:00
|
|
|
$(srcdir)/qemu_protocol-structs \
|
2011-09-22 10:51:55 +00:00
|
|
|
$(srcdir)/virnetprotocol-structs \
|
2013-09-07 21:22:18 +00:00
|
|
|
$(srcdir)/virkeepaliveprotocol-structs \
|
|
|
|
$(srcdir)/lxc_monitor_protocol-structs \
|
|
|
|
$(srcdir)/lock_protocol-structs \
|
|
|
|
$(NULL)
|
|
|
|
|
2011-07-13 15:35:03 +00:00
|
|
|
if WITH_REMOTE
|
2012-06-13 03:49:22 +00:00
|
|
|
check-protocol: $(PROTOCOL_STRUCTS) $(PROTOCOL_STRUCTS:structs=struct)
|
|
|
|
|
2011-07-13 15:35:03 +00:00
|
|
|
# The .o file that pdwtags parses is created as a side effect of running
|
|
|
|
# libtool; but from make's perspective we depend on the .lo file.
|
2012-12-21 14:20:04 +00:00
|
|
|
$(srcdir)/remote_protocol-struct \
|
|
|
|
$(srcdir)/qemu_protocol-struct \
|
|
|
|
$(srcdir)/lxc_protocol-struct: \
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
$(srcdir)/%-struct: remote/libvirt_driver_remote_la-%.lo
|
2011-07-13 15:35:03 +00:00
|
|
|
$(PDWTAGS)
|
2012-06-13 03:49:22 +00:00
|
|
|
$(srcdir)/virnetprotocol-struct $(srcdir)/virkeepaliveprotocol-struct: \
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
$(srcdir)/%-struct: rpc/libvirt_net_rpc_la-%.lo
|
2011-11-24 13:16:36 +00:00
|
|
|
$(PDWTAGS)
|
2013-09-07 21:22:18 +00:00
|
|
|
$(srcdir)/lxc_monitor_protocol-struct: \
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
$(srcdir)/%-struct: lxc/libvirt_driver_lxc_impl_la-%.lo
|
2013-09-07 21:22:18 +00:00
|
|
|
$(PDWTAGS)
|
|
|
|
$(srcdir)/lock_protocol-struct: \
|
build: use automake subdir-objects
Automake 2.0 will enable subdir-objects by default; in preparation
for that change, automake 1.14 outputs LOADS of warnings:
daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
automake-1.14: warning: possible forward-incompatibility.
automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
automake-1.14: automake option hasn't been enabled. For now, the corresponding output
automake-1.14: object file(s) will be placed in the top-level directory. However,
automake-1.14: this behaviour will change in future Automake versions: they will
automake-1.14: unconditionally cause object files to be placed in the same subdirectory
automake-1.14: of the corresponding sources.
automake-1.14: You are advised to start using 'subdir-objects' option throughout your
automake-1.14: project, to avoid future incompatibilities.
daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
daemon/Makefile.am:38: but option 'subdir-objects' is disabled
...
As automake 1.9 also supported this option, and the previous patches
fixed up the code base to work with it, it is safe to now turn it on
unconditionally.
* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
* .gitignore: Ignore .dirstamp directories.
* src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
new subdir-object location of .lo files.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-07 22:18:06 +00:00
|
|
|
$(srcdir)/%-struct: locking/lockd_la-%.lo
|
2013-09-07 21:22:18 +00:00
|
|
|
$(PDWTAGS)
|
|
|
|
|
2011-05-11 20:26:06 +00:00
|
|
|
else !WITH_REMOTE
|
2012-06-13 03:49:22 +00:00
|
|
|
# The $(PROTOCOL_STRUCTS) files must live in git, because they cannot be
|
|
|
|
# re-generated when configured --without-remote.
|
|
|
|
check-protocol:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif !WITH_REMOTE
|
2012-12-13 22:13:21 +00:00
|
|
|
EXTRA_DIST += $(PROTOCOL_STRUCTS)
|
2013-04-22 17:25:01 +00:00
|
|
|
|
|
|
|
check-drivername:
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \
|
|
|
|
$(srcdir)/driver.h \
|
|
|
|
$(srcdir)/libvirt_public.syms \
|
|
|
|
$(srcdir)/libvirt_qemu.syms \
|
|
|
|
$(srcdir)/libvirt_lxc.syms
|
|
|
|
|
|
|
|
EXTRA_DIST += check-drivername.pl
|
|
|
|
|
2013-04-23 12:50:18 +00:00
|
|
|
DRIVER_SOURCE_FILES = \
|
2013-04-29 13:39:44 +00:00
|
|
|
$(ESX_DRIVER_SOURCES) \
|
|
|
|
$(HYPERV_DRIVER_SORUCES) \
|
|
|
|
$(INTERFACE_DRIVER_SOURCES) \
|
|
|
|
$(LIBXL_DRIVER_SOURCES) \
|
|
|
|
$(LXC_DRIVER_SOURCES) \
|
|
|
|
$(NETWORK_DRIVER_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_HAL_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
|
|
|
|
$(NWFILTER_DRIVER_SOURCES) \
|
|
|
|
$(OPENVZ_DRIVER_SOURCES) \
|
|
|
|
$(PARALLELS_DRIVER_SOURCES) \
|
|
|
|
$(PHYP_DRIVER_SOURCES) \
|
|
|
|
$(QEMU_DRIVER_SOURCES) \
|
|
|
|
$(REMOTE_DRIVER_SOURCES) \
|
|
|
|
$(SECRET_DRIVER_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_SOURCES) \
|
|
|
|
$(TEST_DRIVER_SOURCES) \
|
|
|
|
$(UML_DRIVER_SOURCES) \
|
|
|
|
$(VBOX_DRIVER_SOURCES) \
|
2013-04-23 12:50:18 +00:00
|
|
|
vbox/vbox_tmpl.c \
|
2013-04-29 13:39:44 +00:00
|
|
|
$(VMWARE_DRIVER_SOURCES) \
|
|
|
|
$(XEN_DRIVER_SOURCES) \
|
|
|
|
$(XENAPI_DRIVER_SOURCES) \
|
2013-04-23 12:50:18 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2013-04-29 15:37:07 +00:00
|
|
|
STATEFUL_DRIVER_SOURCE_FILES = \
|
|
|
|
$(INTERFACE_DRIVER_SOURCES) \
|
|
|
|
$(LIBXL_DRIVER_SOURCES) \
|
|
|
|
$(LXC_DRIVER_SOURCES) \
|
|
|
|
$(NETWORK_DRIVER_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_SOURCES) \
|
|
|
|
$(NWFILTER_DRIVER_SOURCES) \
|
|
|
|
$(QEMU_DRIVER_SOURCES) \
|
|
|
|
$(SECRET_DRIVER_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_SOURCES) \
|
|
|
|
$(UML_DRIVER_SOURCES) \
|
|
|
|
$(XEN_DRIVER_SOURCES) \
|
|
|
|
$(NULL)
|
|
|
|
|
2013-04-23 12:50:18 +00:00
|
|
|
|
|
|
|
check-driverimpls:
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-driverimpls.pl \
|
2013-05-16 06:16:13 +00:00
|
|
|
$(filter /%,$(DRIVER_SOURCE_FILES)) \
|
2013-07-29 13:00:00 +00:00
|
|
|
$(filter $(srcdir)/%,$(DRIVER_SOURCE_FILES)) \
|
|
|
|
$(addprefix $(srcdir)/,$(filter-out $(srcdir)/%, \
|
|
|
|
$(filter-out /%,$(DRIVER_SOURCE_FILES))))
|
2013-04-23 12:50:18 +00:00
|
|
|
|
2013-04-29 15:37:07 +00:00
|
|
|
check-aclrules:
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-aclrules.pl \
|
2013-07-29 13:00:00 +00:00
|
|
|
$(REMOTE_PROTOCOL) \
|
2013-06-24 22:03:05 +00:00
|
|
|
$(addprefix $(srcdir)/,$(filter-out /%,$(STATEFUL_DRIVER_SOURCE_FILES)))
|
2013-04-29 15:37:07 +00:00
|
|
|
|
2013-09-12 13:35:45 +00:00
|
|
|
check-aclperms:
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/check-aclperms.pl \
|
|
|
|
$(srcdir)/access/viraccessperm.h \
|
|
|
|
$(srcdir)/access/viraccessperm.c
|
|
|
|
|
2013-09-26 11:27:18 +00:00
|
|
|
EXTRA_DIST += check-driverimpls.pl check-aclrules.pl check-aclperms.pl
|
2013-04-23 12:50:18 +00:00
|
|
|
|
2013-04-22 17:25:01 +00:00
|
|
|
check-local: check-protocol check-symfile check-symsorting \
|
2013-09-12 13:35:45 +00:00
|
|
|
check-drivername check-driverimpls check-aclrules \
|
|
|
|
check-aclperms
|
2012-06-13 03:49:22 +00:00
|
|
|
.PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
|
2010-05-07 14:01:26 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Mock driver, covering domains, storage, networks, etc
|
|
|
|
TEST_DRIVER_SOURCES = \
|
2009-09-15 17:38:50 +00:00
|
|
|
test/test_driver.c test/test_driver.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
# Now the Hypervisor specific drivers
|
|
|
|
XEN_DRIVER_SOURCES = \
|
Move xen driver code into src/xen/ directory
* src/Makefile.am, src/proxy_internal.c, src/proxy_internal.h
src/sexpr.c, src/sexpr.h, src/xen_unified.c, src/xen_unified.h,
src/xen_internal.c, src/xen_internal.h, src/xen_inotify.c,
src/xen_inotify.h, src/xend_internal.c, src/xend_internal.h,
src/xm_internal.c, src/xm_internal.h, src/xs_internal.c,
src/xs_internal.h: Move to src/xen/ directory
* proxy/Makefile.am, proxy/libvirt_proxy.c, src/Makefile.am,
src/libvirt.c, tests/sexpr2xmltest.c, tests/statstest.c,
tests/xencapstest.c, tests/xmconfigtest.c, tests/xml2sexprtest.c:
Adapt to changed xen location
* src/stats_linux.h, src/stats_linux.c: Remove xen specific block
stats APIs
* src/qemu_driver.c, src/uml_driver.c: Add missing sys/un.h include
uncovered after change to stats_linux.h
* src/xen/block_stats.h, src/xen/block_stats.c: Add xen specific
block stats APIs
2009-09-15 15:38:33 +00:00
|
|
|
xen/block_stats.c xen/block_stats.h \
|
|
|
|
xen/xen_hypervisor.c xen/xen_hypervisor.h \
|
|
|
|
xen/xen_driver.c xen/xen_driver.h \
|
|
|
|
xen/xend_internal.c xen/xend_internal.h \
|
|
|
|
xen/xm_internal.c xen/xm_internal.h \
|
|
|
|
xen/xs_internal.c xen/xs_internal.h
|
2008-11-25 10:44:52 +00:00
|
|
|
if WITH_XEN_INOTIFY
|
Move xen driver code into src/xen/ directory
* src/Makefile.am, src/proxy_internal.c, src/proxy_internal.h
src/sexpr.c, src/sexpr.h, src/xen_unified.c, src/xen_unified.h,
src/xen_internal.c, src/xen_internal.h, src/xen_inotify.c,
src/xen_inotify.h, src/xend_internal.c, src/xend_internal.h,
src/xm_internal.c, src/xm_internal.h, src/xs_internal.c,
src/xs_internal.h: Move to src/xen/ directory
* proxy/Makefile.am, proxy/libvirt_proxy.c, src/Makefile.am,
src/libvirt.c, tests/sexpr2xmltest.c, tests/statstest.c,
tests/xencapstest.c, tests/xmconfigtest.c, tests/xml2sexprtest.c:
Adapt to changed xen location
* src/stats_linux.h, src/stats_linux.c: Remove xen specific block
stats APIs
* src/qemu_driver.c, src/uml_driver.c: Add missing sys/un.h include
uncovered after change to stats_linux.h
* src/xen/block_stats.h, src/xen/block_stats.c: Add xen specific
block stats APIs
2009-09-15 15:38:33 +00:00
|
|
|
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XEN_INOTIFY
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2012-12-21 13:19:54 +00:00
|
|
|
LXC_MONITOR_PROTOCOL_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc/lxc_monitor_protocol.h \
|
|
|
|
lxc/lxc_monitor_protocol.c \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LXC_MONITOR_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc/lxc_monitor_dispatch.h \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LXC_CONTROLLER_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc/lxc_controller_dispatch.h \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LXC_GENERATED = \
|
2012-12-21 13:19:54 +00:00
|
|
|
$(LXC_MONITOR_PROTOCOL_GENERATED) \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(LXC_MONITOR_GENERATED) \
|
|
|
|
$(LXC_CONTROLLER_GENERATED) \
|
|
|
|
$(NULL)
|
|
|
|
|
2012-12-21 13:19:54 +00:00
|
|
|
LXC_MONITOR_PROTOCOL = $(srcdir)/lxc/lxc_monitor_protocol.x
|
2012-07-17 14:54:08 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc/lxc_monitor_dispatch.h: $(srcdir)/rpc/gendispatch.pl \
|
2013-03-14 14:54:09 +00:00
|
|
|
$(LXC_MONITOR_PROTOCOL) Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
virLXCMonitor VIR_LXC_MONITOR $(LXC_MONITOR_PROTOCOL) > \
|
|
|
|
$(srcdir)/lxc/lxc_monitor_dispatch.h
|
2012-07-17 14:54:08 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc/lxc_controller_dispatch.h: $(srcdir)/rpc/gendispatch.pl \
|
2013-03-14 14:54:09 +00:00
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
2013-04-18 10:29:56 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=server \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
virLXCMonitor VIR_LXC_MONITOR $(LXC_MONITOR_PROTOCOL) > \
|
|
|
|
$(srcdir)/lxc/lxc_controller_dispatch.h
|
2012-07-17 14:54:08 +00:00
|
|
|
|
|
|
|
EXTRA_DIST += \
|
2012-12-21 13:19:54 +00:00
|
|
|
$(LXC_MONITOR_PROTOCOL) \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(LXC_GENERATED) \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
BUILT_SOURCES += $(LXC_GENERATED)
|
|
|
|
|
2013-03-14 14:54:09 +00:00
|
|
|
CLEANFILES += $(LXC_GENERATED)
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
LXC_DRIVER_SOURCES = \
|
2012-12-21 13:19:54 +00:00
|
|
|
$(LXC_MONITOR_PROTOCOL_GENERATED) \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(LXC_MONITOR_GENERATED) \
|
2009-09-15 16:03:01 +00:00
|
|
|
lxc/lxc_conf.c lxc/lxc_conf.h \
|
|
|
|
lxc/lxc_container.c lxc/lxc_container.h \
|
2012-07-13 11:21:27 +00:00
|
|
|
lxc/lxc_cgroup.c lxc/lxc_cgroup.h \
|
2012-07-13 10:16:23 +00:00
|
|
|
lxc/lxc_domain.c lxc/lxc_domain.h \
|
2012-11-23 14:46:18 +00:00
|
|
|
lxc/lxc_hostdev.c lxc/lxc_hostdev.h \
|
2012-07-17 11:14:35 +00:00
|
|
|
lxc/lxc_monitor.c lxc/lxc_monitor.h \
|
2012-07-13 11:39:29 +00:00
|
|
|
lxc/lxc_process.c lxc/lxc_process.h \
|
2012-11-14 09:39:04 +00:00
|
|
|
lxc/lxc_fuse.c lxc/lxc_fuse.h \
|
2011-11-02 16:03:09 +00:00
|
|
|
lxc/lxc_driver.c lxc/lxc_driver.h
|
2005-11-10 16:12:31 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
LXC_CONTROLLER_SOURCES = \
|
2012-12-21 13:19:54 +00:00
|
|
|
$(LXC_MONITOR_PROTOCOL_GENERATED) \
|
2012-07-17 14:54:08 +00:00
|
|
|
$(LXC_CONTROLLER_GENERATED) \
|
2009-09-15 16:03:01 +00:00
|
|
|
lxc/lxc_conf.c lxc/lxc_conf.h \
|
|
|
|
lxc/lxc_container.c lxc/lxc_container.h \
|
2012-07-13 11:21:27 +00:00
|
|
|
lxc/lxc_cgroup.c lxc/lxc_cgroup.h \
|
2013-03-05 15:17:24 +00:00
|
|
|
lxc/lxc_domain.c lxc/lxc_domain.h \
|
2012-11-14 09:39:04 +00:00
|
|
|
lxc/lxc_fuse.c lxc/lxc_fuse.h \
|
2011-11-02 16:03:09 +00:00
|
|
|
lxc/lxc_controller.c
|
2008-08-20 20:55:32 +00:00
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES = \
|
2012-08-14 17:44:40 +00:00
|
|
|
$(DATATYPES_SOURCES) \
|
2009-10-08 14:34:22 +00:00
|
|
|
security/virt-aa-helper.c
|
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
PHYP_DRIVER_SOURCES = \
|
|
|
|
phyp/phyp_driver.c phyp/phyp_driver.h
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
OPENVZ_DRIVER_SOURCES = \
|
2009-09-15 16:32:56 +00:00
|
|
|
openvz/openvz_conf.c openvz/openvz_conf.h \
|
2012-05-07 21:00:28 +00:00
|
|
|
openvz/openvz_driver.c openvz/openvz_driver.h \
|
|
|
|
openvz/openvz_util.c openvz/openvz_util.h
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2010-12-21 15:58:03 +00:00
|
|
|
VMWARE_DRIVER_SOURCES = \
|
2010-12-20 06:01:46 +00:00
|
|
|
vmware/vmware_driver.c vmware/vmware_driver.h \
|
2010-12-17 10:28:20 +00:00
|
|
|
vmware/vmware_conf.c vmware/vmware_conf.h
|
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
VBOX_DRIVER_SOURCES = \
|
2011-06-29 04:06:48 +00:00
|
|
|
vbox/vbox_glue.c vbox/vbox_glue.h \
|
|
|
|
vbox/vbox_driver.c vbox/vbox_driver.h \
|
|
|
|
vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h \
|
|
|
|
vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h \
|
|
|
|
vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h \
|
|
|
|
vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h \
|
2011-10-29 19:26:57 +00:00
|
|
|
vbox/vbox_V4_0.c vbox/vbox_CAPI_v4_0.h \
|
2012-10-02 09:00:54 +00:00
|
|
|
vbox/vbox_V4_1.c vbox/vbox_CAPI_v4_1.h \
|
|
|
|
vbox/vbox_V4_2.c vbox/vbox_CAPI_v4_2.h
|
2009-04-17 16:09:07 +00:00
|
|
|
|
2010-12-21 15:58:03 +00:00
|
|
|
VBOX_DRIVER_EXTRA_DIST = \
|
2010-12-14 22:07:57 +00:00
|
|
|
vbox/vbox_tmpl.c vbox/README \
|
|
|
|
vbox/vbox_MSCOMGlue.c vbox/vbox_MSCOMGlue.h \
|
|
|
|
vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h
|
2009-04-19 16:36:22 +00:00
|
|
|
|
2012-08-03 15:48:05 +00:00
|
|
|
QEMU_DRIVER_SOURCES = \
|
|
|
|
qemu/qemu_agent.c qemu/qemu_agent.h \
|
|
|
|
qemu/qemu_capabilities.c qemu/qemu_capabilities.h \
|
|
|
|
qemu/qemu_command.c qemu/qemu_command.h \
|
|
|
|
qemu/qemu_domain.c qemu/qemu_domain.h \
|
|
|
|
qemu/qemu_cgroup.c qemu/qemu_cgroup.h \
|
|
|
|
qemu/qemu_hostdev.c qemu/qemu_hostdev.h \
|
|
|
|
qemu/qemu_hotplug.c qemu/qemu_hotplug.h \
|
2013-07-26 10:18:01 +00:00
|
|
|
qemu/qemu_hotplugpriv.h \
|
2012-08-03 15:48:05 +00:00
|
|
|
qemu/qemu_conf.c qemu/qemu_conf.h \
|
|
|
|
qemu/qemu_process.c qemu/qemu_process.h \
|
2013-07-26 12:24:55 +00:00
|
|
|
qemu/qemu_processpriv.h \
|
2012-08-03 15:48:05 +00:00
|
|
|
qemu/qemu_migration.c qemu/qemu_migration.h \
|
|
|
|
qemu/qemu_monitor.c qemu/qemu_monitor.h \
|
|
|
|
qemu/qemu_monitor_text.c \
|
|
|
|
qemu/qemu_monitor_text.h \
|
|
|
|
qemu/qemu_monitor_json.c \
|
|
|
|
qemu/qemu_monitor_json.h \
|
|
|
|
qemu/qemu_driver.c qemu/qemu_driver.h \
|
|
|
|
qemu/qemu_bridge_filter.c \
|
Refactor the security drivers to simplify usage
The current security driver usage requires horrible code like
if (driver->securityDriver &&
driver->securityDriver->domainSetSecurityHostdevLabel &&
driver->securityDriver->domainSetSecurityHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
This pair of checks for NULL clutters up the code, making the driver
calls 2 lines longer than they really need to be. The goal of the
patchset is to change the calling convention to simply
if (virSecurityManagerSetHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
The first check for 'driver->securityDriver' being NULL is removed
by introducing a 'no op' security driver that will always be present
if no real driver is enabled. This guarentees driver->securityDriver
!= NULL.
The second check for 'driver->securityDriver->domainSetSecurityHostdevLabel'
being non-NULL is hidden in a new abstraction called virSecurityManager.
This separates the driver callbacks, from main internal API. The addition
of a virSecurityManager object, that is separate from the virSecurityDriver
struct also allows for security drivers to carry state / configuration
information directly. Thus the DAC/Stack drivers from src/qemu which
used to pull config from 'struct qemud_driver' can now be moved into
the 'src/security' directory and store their config directly.
* src/qemu/qemu_conf.h, src/qemu/qemu_driver.c: Update to
use new virSecurityManager APIs
* src/qemu/qemu_security_dac.c, src/qemu/qemu_security_dac.h
src/qemu/qemu_security_stacked.c, src/qemu/qemu_security_stacked.h:
Move into src/security directory
* src/security/security_stack.c, src/security/security_stack.h,
src/security/security_dac.c, src/security/security_dac.h: Generic
versions of previous QEMU specific drivers
* src/security/security_apparmor.c, src/security/security_apparmor.h,
src/security/security_driver.c, src/security/security_driver.h,
src/security/security_selinux.c, src/security/security_selinux.h:
Update to take virSecurityManagerPtr object as the first param
in all callbacks
* src/security/security_nop.c, src/security/security_nop.h: Stub
implementation of all security driver APIs.
* src/security/security_manager.h, src/security/security_manager.c:
New internal API for invoking security drivers
* src/libvirt.c: Add missing debug for security APIs
2010-11-17 20:26:30 +00:00
|
|
|
qemu/qemu_bridge_filter.h
|
2008-04-18 08:33:23 +00:00
|
|
|
|
2012-08-03 15:48:05 +00:00
|
|
|
XENAPI_DRIVER_SOURCES = \
|
2010-03-14 11:11:51 +00:00
|
|
|
xenapi/xenapi_driver.c xenapi/xenapi_driver.h \
|
2012-08-03 15:48:05 +00:00
|
|
|
xenapi/xenapi_driver_private.h \
|
2010-03-14 11:11:51 +00:00
|
|
|
xenapi/xenapi_utils.c xenapi/xenapi_utils.h
|
|
|
|
|
2011-02-10 22:42:34 +00:00
|
|
|
LIBXL_DRIVER_SOURCES = \
|
|
|
|
libxl/libxl_conf.c libxl/libxl_conf.h \
|
2013-08-30 17:18:31 +00:00
|
|
|
libxl/libxl_domain.c libxl/libxl_domain.h \
|
2011-02-10 22:42:34 +00:00
|
|
|
libxl/libxl_driver.c libxl/libxl_driver.h
|
|
|
|
|
2008-11-19 16:58:23 +00:00
|
|
|
UML_DRIVER_SOURCES = \
|
2009-09-15 16:25:30 +00:00
|
|
|
uml/uml_conf.c uml/uml_conf.h \
|
|
|
|
uml/uml_driver.c uml/uml_driver.h
|
2008-11-19 16:58:23 +00:00
|
|
|
|
2012-08-03 15:48:05 +00:00
|
|
|
ESX_DRIVER_SOURCES = \
|
|
|
|
esx/esx_private.h \
|
|
|
|
esx/esx_driver.c esx/esx_driver.h \
|
|
|
|
esx/esx_interface_driver.c esx/esx_interface_driver.h \
|
|
|
|
esx/esx_network_driver.c esx/esx_network_driver.h \
|
|
|
|
esx/esx_storage_driver.c esx/esx_storage_driver.h \
|
2012-11-10 07:18:07 +00:00
|
|
|
esx/esx_storage_backend_vmfs.c esx/esx_storage_backend_vmfs.h \
|
2012-11-10 07:18:08 +00:00
|
|
|
esx/esx_storage_backend_iscsi.c esx/esx_storage_backend_iscsi.h \
|
2012-08-03 15:48:05 +00:00
|
|
|
esx/esx_device_monitor.c esx/esx_device_monitor.h \
|
2010-01-15 15:01:02 +00:00
|
|
|
esx/esx_secret_driver.c esx/esx_secret_driver.h \
|
2012-08-03 15:48:05 +00:00
|
|
|
esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h \
|
|
|
|
esx/esx_util.c esx/esx_util.h \
|
|
|
|
esx/esx_vi.c esx/esx_vi.h \
|
|
|
|
esx/esx_vi_methods.c esx/esx_vi_methods.h \
|
2010-12-21 21:39:55 +00:00
|
|
|
esx/esx_vi_types.c esx/esx_vi_types.h
|
2009-07-23 20:21:08 +00:00
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
ESX_DRIVER_GENERATED = \
|
2010-04-26 14:59:50 +00:00
|
|
|
esx/esx_vi_methods.generated.c \
|
|
|
|
esx/esx_vi_methods.generated.h \
|
2011-05-01 06:05:58 +00:00
|
|
|
esx/esx_vi_methods.generated.macro \
|
2010-03-06 16:56:28 +00:00
|
|
|
esx/esx_vi_types.generated.c \
|
|
|
|
esx/esx_vi_types.generated.h \
|
|
|
|
esx/esx_vi_types.generated.typedef \
|
|
|
|
esx/esx_vi_types.generated.typeenum \
|
|
|
|
esx/esx_vi_types.generated.typetostring \
|
2011-04-15 03:00:35 +00:00
|
|
|
esx/esx_vi_types.generated.typefromstring \
|
|
|
|
esx/esx_vi.generated.c \
|
|
|
|
esx/esx_vi.generated.h
|
2010-03-06 16:56:28 +00:00
|
|
|
|
2012-08-03 15:48:05 +00:00
|
|
|
ESX_DRIVER_EXTRA_DIST = \
|
2010-03-06 16:56:28 +00:00
|
|
|
esx/README \
|
|
|
|
esx/esx_vi_generator.input \
|
|
|
|
esx/esx_vi_generator.py \
|
|
|
|
$(ESX_DRIVER_GENERATED)
|
|
|
|
|
2012-08-03 15:48:05 +00:00
|
|
|
HYPERV_DRIVER_SOURCES = \
|
2011-07-13 14:47:01 +00:00
|
|
|
hyperv/hyperv_private.h \
|
|
|
|
hyperv/hyperv_driver.c hyperv/hyperv_driver.h \
|
|
|
|
hyperv/hyperv_interface_driver.c hyperv/hyperv_interface_driver.h \
|
|
|
|
hyperv/hyperv_network_driver.c hyperv/hyperv_network_driver.h \
|
|
|
|
hyperv/hyperv_storage_driver.c hyperv/hyperv_storage_driver.h \
|
|
|
|
hyperv/hyperv_device_monitor.c hyperv/hyperv_device_monitor.h \
|
|
|
|
hyperv/hyperv_secret_driver.c hyperv/hyperv_secret_driver.h \
|
2011-07-13 15:05:19 +00:00
|
|
|
hyperv/hyperv_nwfilter_driver.c hyperv/hyperv_nwfilter_driver.h \
|
2011-07-13 15:16:47 +00:00
|
|
|
hyperv/hyperv_util.c hyperv/hyperv_util.h \
|
2011-07-13 15:05:19 +00:00
|
|
|
hyperv/hyperv_wmi.c hyperv/hyperv_wmi.h \
|
|
|
|
hyperv/hyperv_wmi_classes.c hyperv/hyperv_wmi_classes.h \
|
|
|
|
hyperv/openwsman.h
|
|
|
|
|
|
|
|
HYPERV_DRIVER_GENERATED = \
|
|
|
|
hyperv/hyperv_wmi.generated.c \
|
|
|
|
hyperv/hyperv_wmi.generated.h \
|
|
|
|
hyperv/hyperv_wmi_classes.generated.c \
|
|
|
|
hyperv/hyperv_wmi_classes.generated.h \
|
|
|
|
hyperv/hyperv_wmi_classes.generated.typedef
|
|
|
|
|
|
|
|
HYPERV_DRIVER_EXTRA_DIST = \
|
|
|
|
hyperv/hyperv_wmi_generator.input \
|
|
|
|
hyperv/hyperv_wmi_generator.py \
|
|
|
|
$(HYPERV_DRIVER_GENERATED)
|
|
|
|
|
2012-07-31 18:56:05 +00:00
|
|
|
PARALLELS_DRIVER_SOURCES = \
|
|
|
|
parallels/parallels_driver.h \
|
2012-07-31 18:56:07 +00:00
|
|
|
parallels/parallels_driver.c \
|
2012-08-01 06:12:09 +00:00
|
|
|
parallels/parallels_utils.c \
|
|
|
|
parallels/parallels_utils.h \
|
2012-12-11 10:59:45 +00:00
|
|
|
parallels/parallels_storage.c \
|
|
|
|
parallels/parallels_network.c
|
2012-07-31 18:56:05 +00:00
|
|
|
|
2008-10-10 13:57:13 +00:00
|
|
|
NETWORK_DRIVER_SOURCES = \
|
2013-07-24 12:22:54 +00:00
|
|
|
network/bridge_driver.h network/bridge_driver.c \
|
|
|
|
network/bridge_driver_platform.h \
|
|
|
|
network/bridge_driver_platform.c \
|
|
|
|
$(NULL)
|
|
|
|
EXTRA_DIST += network/bridge_driver_linux.c network/bridge_driver_nop.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2012-09-18 01:27:06 +00:00
|
|
|
INTERFACE_DRIVER_SOURCES =
|
|
|
|
|
|
|
|
if WITH_INTERFACE
|
|
|
|
INTERFACE_DRIVER_SOURCES += \
|
2012-10-06 19:20:27 +00:00
|
|
|
interface/interface_driver.h \
|
|
|
|
interface/interface_driver.c
|
2012-09-18 01:27:06 +00:00
|
|
|
|
|
|
|
if WITH_NETCF
|
|
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
|
|
interface/interface_backend_netcf.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETCF
|
2012-09-20 14:24:47 +00:00
|
|
|
if WITH_UDEV
|
2012-10-06 19:20:25 +00:00
|
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
|
|
interface/interface_backend_udev.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UDEV
|
|
|
|
endif WITH_INTERFACE
|
2009-07-21 14:02:16 +00:00
|
|
|
|
2009-08-14 19:48:55 +00:00
|
|
|
SECRET_DRIVER_SOURCES = \
|
2009-09-15 17:59:58 +00:00
|
|
|
secret/secret_driver.h secret/secret_driver.c
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
# Storage backend specific impls
|
2012-08-03 15:48:05 +00:00
|
|
|
STORAGE_DRIVER_SOURCES = \
|
|
|
|
storage/storage_driver.h storage/storage_driver.c \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend.h storage/storage_backend.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
STORAGE_DRIVER_FS_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_fs.h storage/storage_backend_fs.c
|
2008-04-18 08:33:23 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_DRIVER_LVM_SOURCES = \
|
2012-08-03 15:48:05 +00:00
|
|
|
storage/storage_backend_logical.h \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_logical.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
STORAGE_DRIVER_ISCSI_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-04-01 16:03:22 +00:00
|
|
|
STORAGE_DRIVER_SCSI_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_scsi.h storage/storage_backend_scsi.c
|
2009-04-01 16:03:22 +00:00
|
|
|
|
2009-09-08 13:47:45 +00:00
|
|
|
STORAGE_DRIVER_MPATH_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_mpath.h storage/storage_backend_mpath.c
|
2009-09-08 13:47:45 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_DRIVER_DISK_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_disk.h storage/storage_backend_disk.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2012-05-14 09:06:42 +00:00
|
|
|
STORAGE_DRIVER_RBD_SOURCES = \
|
|
|
|
storage/storage_backend_rbd.h storage/storage_backend_rbd.c
|
|
|
|
|
2012-07-18 19:06:58 +00:00
|
|
|
STORAGE_DRIVER_SHEEPDOG_SOURCES = \
|
|
|
|
storage/storage_backend_sheepdog.h storage/storage_backend_sheepdog.c
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_HELPER_DISK_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/parthelper.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2011-02-22 12:05:20 +00:00
|
|
|
UTIL_IO_HELPER_SOURCES = \
|
|
|
|
util/iohelper.c
|
|
|
|
|
2010-03-25 17:46:09 +00:00
|
|
|
# Network filters
|
2012-08-03 15:48:05 +00:00
|
|
|
NWFILTER_DRIVER_SOURCES = \
|
2010-03-25 17:46:09 +00:00
|
|
|
nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c \
|
2010-03-31 08:19:06 +00:00
|
|
|
nwfilter/nwfilter_gentech_driver.c \
|
|
|
|
nwfilter/nwfilter_gentech_driver.h \
|
2012-06-01 23:32:06 +00:00
|
|
|
nwfilter/nwfilter_dhcpsnoop.c \
|
|
|
|
nwfilter/nwfilter_dhcpsnoop.h \
|
2010-03-31 08:19:06 +00:00
|
|
|
nwfilter/nwfilter_ebiptables_driver.c \
|
nwfilter: Support for learning a VM's IP address
This patch implements support for learning a VM's IP address. It uses
the pcap library to listen on the VM's backend network interface (tap)
or the physical ethernet device (macvtap) and tries to capture packets
with source or destination MAC address of the VM and learn from DHCP
Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
the VM's interface is. This then allows to instantiate the network
traffic filtering rules without the user having to provide the IP
parameter somewhere in the filter description or in the interface
description as a parameter. This only supports to detect the parameter
IP, which is for the assumed single IPv4 address of a VM. There is not
support for interfaces that may have multiple IP addresses (IP
aliasing) or IPv6 that may then require more than one valid IP address
to be detected. A VM can have multiple independent interfaces that each
uses a different IP address and in that case it will be attempted to
detect each one of the address independently.
So, when for example an interface description in the domain XML has
looked like this up to now:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'>
<parameter name='IP' value='10.2.3.4'/>
</filterref>
</interface>
you may omit the IP parameter:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'/>
</interface>
Internally I am walking the 'tree' of a VM's referenced network filters
and determine with the given variables which variables are missing. Now,
the above IP parameter may be missing and this causes a libvirt-internal
thread to be started that uses the pcap library's API to listen to the
backend interface (in case of macvtap to the physical interface) in an
attempt to determine the missing IP parameter. If the backend interface
disappears the thread terminates assuming the VM was brought down. In
case of a macvtap device a timeout is being used to wait for packets
from the given VM (filtering by VM's interface MAC address). If the VM's
macvtap device disappeared the thread also terminates. In all other
cases it tries to determine the IP address of the VM and will then apply
the rules late on the given interface, which would have happened
immediately if the IP parameter had been explicitly given. In case an
error happens while the firewall rules are applied, the VM's backend
interface is 'down'ed preventing it to communicate. Reasons for failure
for applying the network firewall rules may that an ebtables/iptables
command failes or OOM errors. Essentially the same failure reasons may
occur as when the firewall rules are applied immediately on VM start,
except that due to the late application of the filtering rules the VM
now is already running and cannot be hindered anymore from starting.
Bringing down the whole VM would probably be considered too drastic.
While a VM's IP address is attempted to be determined only limited
updates to network filters are allowed. In particular it is prevented
that filters are modified in such a way that they would introduce new
variables.
A caveat: The algorithm does not know which one is the appropriate IP
address of a VM. If the VM spoofs an IP address in its first ARP traffic
or IPv4 packets its filtering rules will be instantiated for this IP
address, thus 'locking' it to the found IP address. So, it's still
'safer' to explicitly provide the IP address of a VM's interface in the
filter description if it is known beforehand.
* configure.ac: detect libpcap
* libvirt.spec.in: require libpcap[-devel] if qemu is built
* src/internal.h: add the new ATTRIBUTE_PACKED define
* src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
* src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
* src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
src/nwfilter/nwfilter_ebiptables_driver.[ch]
src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
* tests/nwfilterxml2xmltest: extend testing
2010-04-07 21:02:18 +00:00
|
|
|
nwfilter/nwfilter_ebiptables_driver.h \
|
|
|
|
nwfilter/nwfilter_learnipaddr.c \
|
|
|
|
nwfilter/nwfilter_learnipaddr.h
|
2010-03-31 08:19:06 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
# Security framework and drivers for various models
|
2012-08-03 15:48:05 +00:00
|
|
|
SECURITY_DRIVER_SOURCES = \
|
|
|
|
security/security_driver.h security/security_driver.c \
|
|
|
|
security/security_nop.h security/security_nop.c \
|
|
|
|
security/security_stack.h security/security_stack.c \
|
|
|
|
security/security_dac.h security/security_dac.c \
|
Refactor the security drivers to simplify usage
The current security driver usage requires horrible code like
if (driver->securityDriver &&
driver->securityDriver->domainSetSecurityHostdevLabel &&
driver->securityDriver->domainSetSecurityHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
This pair of checks for NULL clutters up the code, making the driver
calls 2 lines longer than they really need to be. The goal of the
patchset is to change the calling convention to simply
if (virSecurityManagerSetHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
The first check for 'driver->securityDriver' being NULL is removed
by introducing a 'no op' security driver that will always be present
if no real driver is enabled. This guarentees driver->securityDriver
!= NULL.
The second check for 'driver->securityDriver->domainSetSecurityHostdevLabel'
being non-NULL is hidden in a new abstraction called virSecurityManager.
This separates the driver callbacks, from main internal API. The addition
of a virSecurityManager object, that is separate from the virSecurityDriver
struct also allows for security drivers to carry state / configuration
information directly. Thus the DAC/Stack drivers from src/qemu which
used to pull config from 'struct qemud_driver' can now be moved into
the 'src/security' directory and store their config directly.
* src/qemu/qemu_conf.h, src/qemu/qemu_driver.c: Update to
use new virSecurityManager APIs
* src/qemu/qemu_security_dac.c, src/qemu/qemu_security_dac.h
src/qemu/qemu_security_stacked.c, src/qemu/qemu_security_stacked.h:
Move into src/security directory
* src/security/security_stack.c, src/security/security_stack.h,
src/security/security_dac.c, src/security/security_dac.h: Generic
versions of previous QEMU specific drivers
* src/security/security_apparmor.c, src/security/security_apparmor.h,
src/security/security_driver.c, src/security/security_driver.h,
src/security/security_selinux.c, src/security/security_selinux.h:
Update to take virSecurityManagerPtr object as the first param
in all callbacks
* src/security/security_nop.c, src/security/security_nop.h: Stub
implementation of all security driver APIs.
* src/security/security_manager.h, src/security/security_manager.c:
New internal API for invoking security drivers
* src/libvirt.c: Add missing debug for security APIs
2010-11-17 20:26:30 +00:00
|
|
|
security/security_manager.h security/security_manager.c
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2009-03-03 10:06:49 +00:00
|
|
|
SECURITY_DRIVER_SELINUX_SOURCES = \
|
2009-09-15 18:06:37 +00:00
|
|
|
security/security_selinux.h security/security_selinux.c
|
2009-03-03 10:06:49 +00:00
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
SECURITY_DRIVER_APPARMOR_SOURCES = \
|
|
|
|
security/security_apparmor.h security/security_apparmor.c
|
|
|
|
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
ACCESS_DRIVER_GENERATED = \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
access/viraccessapicheck.h \
|
|
|
|
access/viraccessapicheck.c \
|
|
|
|
access/viraccessapicheckqemu.h \
|
|
|
|
access/viraccessapicheckqemu.c \
|
|
|
|
access/viraccessapichecklxc.h \
|
|
|
|
access/viraccessapichecklxc.c \
|
|
|
|
$(NULL)
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
|
2013-07-02 16:28:20 +00:00
|
|
|
ACCESS_DRIVER_SYM_FILES = \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
libvirt_access.syms \
|
|
|
|
libvirt_access_qemu.syms \
|
|
|
|
libvirt_access_lxc.syms
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2013-08-07 12:03:50 +00:00
|
|
|
ACCESS_DRIVER_API_FILES = \
|
|
|
|
libvirt_access.xml \
|
|
|
|
libvirt_access_qemu.xml \
|
|
|
|
libvirt_access_lxc.xml
|
|
|
|
|
2012-01-20 18:02:55 +00:00
|
|
|
ACCESS_DRIVER_SOURCES = \
|
|
|
|
access/viraccessperm.h access/viraccessperm.c \
|
|
|
|
access/viraccessmanager.h access/viraccessmanager.c \
|
|
|
|
access/viraccessdriver.h \
|
|
|
|
access/viraccessdrivernop.h access/viraccessdrivernop.c \
|
|
|
|
access/viraccessdriverstack.h access/viraccessdriverstack.c
|
|
|
|
|
2012-01-23 15:12:57 +00:00
|
|
|
ACCESS_DRIVER_POLKIT_SOURCES = \
|
|
|
|
access/viraccessdriverpolkit.h access/viraccessdriverpolkit.c
|
|
|
|
|
|
|
|
ACCESS_DRIVER_POLKIT_POLICY = \
|
2013-06-27 16:24:16 +00:00
|
|
|
$(srcdir)/access/org.libvirt.api.policy
|
2012-01-23 15:12:57 +00:00
|
|
|
|
|
|
|
|
2008-11-21 12:27:11 +00:00
|
|
|
NODE_DEVICE_DRIVER_SOURCES = \
|
2012-08-03 15:48:05 +00:00
|
|
|
node_device/node_device_driver.c \
|
|
|
|
node_device/node_device_driver.h \
|
2009-11-12 21:48:24 +00:00
|
|
|
node_device/node_device_linux_sysfs.c
|
2008-11-21 12:27:11 +00:00
|
|
|
|
|
|
|
NODE_DEVICE_DRIVER_HAL_SOURCES = \
|
2009-09-15 17:30:17 +00:00
|
|
|
node_device/node_device_hal.c \
|
2009-11-12 21:48:24 +00:00
|
|
|
node_device/node_device_hal.h
|
2009-06-02 15:12:53 +00:00
|
|
|
|
2009-11-12 21:48:24 +00:00
|
|
|
NODE_DEVICE_DRIVER_UDEV_SOURCES = \
|
2009-11-20 18:43:59 +00:00
|
|
|
node_device/node_device_udev.c \
|
|
|
|
node_device/node_device_udev.h
|
2009-11-12 21:48:24 +00:00
|
|
|
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
CPU_SOURCES = \
|
|
|
|
cpu/cpu.h cpu/cpu.c \
|
|
|
|
cpu/cpu_generic.h cpu/cpu_generic.c \
|
|
|
|
cpu/cpu_x86.h cpu/cpu_x86.c cpu/cpu_x86_data.h \
|
2012-06-22 11:50:11 +00:00
|
|
|
cpu/cpu_s390.h cpu/cpu_s390.c \
|
2012-07-12 15:28:17 +00:00
|
|
|
cpu/cpu_arm.h cpu/cpu_arm.c \
|
2011-10-03 12:56:20 +00:00
|
|
|
cpu/cpu_map.h cpu/cpu_map.c cpu/cpu_powerpc.h \
|
2012-10-18 14:28:04 +00:00
|
|
|
cpu/cpu_powerpc.c cpu/cpu_ppc_data.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-12-21 21:39:55 +00:00
|
|
|
VMX_SOURCES = \
|
|
|
|
vmx/vmx.c vmx/vmx.h
|
|
|
|
|
2011-02-21 13:40:08 +00:00
|
|
|
XENXS_SOURCES = \
|
|
|
|
xenxs/xenxs_private.h \
|
2011-02-21 13:40:10 +00:00
|
|
|
xenxs/xen_sxpr.c xenxs/xen_sxpr.h \
|
|
|
|
xenxs/xen_xm.c xenxs/xen_xm.h
|
2011-02-21 13:40:08 +00:00
|
|
|
|
2009-12-22 11:06:01 +00:00
|
|
|
pkgdata_DATA = cpu/cpu_map.xml
|
|
|
|
|
2010-05-07 17:11:02 +00:00
|
|
|
EXTRA_DIST += $(pkgdata_DATA)
|
2009-12-18 15:11:42 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
#########################
|
|
|
|
#
|
|
|
|
# Build up list of libvirt.la source files based on configure conditions
|
|
|
|
#
|
|
|
|
# First deal with sources usable in non-daemon context
|
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES = libvirt_util.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
|
|
|
|
libvirt_la_BUILT_LIBADD = libvirt_util.la
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_util_la_SOURCES = \
|
|
|
|
$(UTIL_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
|
2012-04-19 14:34:35 +00:00
|
|
|
$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS) \
|
2013-07-15 14:53:13 +00:00
|
|
|
$(DBUS_CFLAGS) $(LDEXP_LIBM) $(NUMACTL_CFLAGS) \
|
|
|
|
-I$(top_srcdir)/src/conf
|
2010-09-15 13:44:11 +00:00
|
|
|
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
|
2011-11-29 12:11:01 +00:00
|
|
|
$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
|
2013-02-01 19:32:37 +00:00
|
|
|
$(LIB_CLOCK_GETTIME) $(DBUS_LIBS) $(MSCOM_LIBS) $(LIBXML_LIBS) \
|
2013-03-20 15:02:34 +00:00
|
|
|
$(SECDRIVER_LIBS) $(NUMACTL_LIBS)
|
2008-11-17 10:43:30 +00:00
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
|
|
|
noinst_LTLIBRARIES += libvirt_conf.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_conf.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
|
|
|
|
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_cpu.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
libvirt_cpu_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)
|
|
|
|
|
2010-12-21 21:39:55 +00:00
|
|
|
if WITH_VMX
|
|
|
|
noinst_LTLIBRARIES += libvirt_vmx.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_vmx.la
|
|
|
|
libvirt_vmx_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2010-12-21 21:39:55 +00:00
|
|
|
libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_VMX
|
2010-12-21 21:39:55 +00:00
|
|
|
|
2011-03-29 12:39:18 +00:00
|
|
|
if WITH_XENXS
|
2011-02-21 13:40:08 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_xenxs.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_xenxs.la
|
|
|
|
libvirt_xenxs_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2011-02-21 13:40:08 +00:00
|
|
|
libvirt_xenxs_la_SOURCES = $(XENXS_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XENXS
|
2011-02-21 13:40:08 +00:00
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
|
2008-11-21 12:20:45 +00:00
|
|
|
|
2013-02-01 12:36:06 +00:00
|
|
|
libvirt_driver_la_CFLAGS = \
|
2013-03-20 15:02:34 +00:00
|
|
|
$(GNUTLS_CFLAGS) $(CURL_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2013-02-01 12:36:06 +00:00
|
|
|
libvirt_driver_la_LIBADD = \
|
2013-03-20 15:02:34 +00:00
|
|
|
$(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS)
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2013-07-02 16:28:20 +00:00
|
|
|
# All .syms files should be placed in exactly one of these three lists,
|
|
|
|
# depending on whether they are stored in git and/or used in the build.
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES = $(USED_SYM_FILES)
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES = $(srcdir)/libvirt_private.syms
|
2013-07-02 16:28:20 +00:00
|
|
|
GENERATED_SYM_FILES = \
|
|
|
|
$(ACCESS_DRIVER_SYM_FILES) \
|
|
|
|
libvirt.syms libvirt.def libvirt_qemu.def libvirt_lxc.def \
|
|
|
|
$(NULL)
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
if WITH_TEST
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_test.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_test_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_TEST
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
if WITH_REMOTE
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_remote.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_remote_la_CFLAGS = \
|
|
|
|
$(GNUTLS_CFLAGS) \
|
2011-07-29 19:16:29 +00:00
|
|
|
$(XDR_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
-I$(top_srcdir)/src/rpc \
|
2010-06-09 18:35:49 +00:00
|
|
|
$(AM_CFLAGS)
|
|
|
|
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
|
2011-09-30 13:38:39 +00:00
|
|
|
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) \
|
|
|
|
libvirt-net-rpc-client.la \
|
|
|
|
libvirt-net-rpc-server.la \
|
|
|
|
libvirt-net-rpc.la
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
|
2009-09-16 15:55:16 +00:00
|
|
|
|
2012-06-06 15:45:04 +00:00
|
|
|
BUILT_SOURCES += $(REMOTE_DRIVER_GENERATED)
|
2010-04-17 02:09:25 +00:00
|
|
|
|
2011-05-11 20:26:06 +00:00
|
|
|
endif WITH_REMOTE
|
|
|
|
|
2011-06-24 13:37:25 +00:00
|
|
|
%protocol.c: %protocol.x %protocol.h $(srcdir)/rpc/genprotocol.pl
|
2012-05-29 21:57:31 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -c \
|
build: fix VPATH build of remote driver
Commit 073e1575 tried to set things up so that 1) generated files
to be shipped in the tarball always live in srcdir, and 2) we have
no files in SOURCES that depend on any other files with a literal
$(srcdir) in the name, because that situation can cause confusing
results for the make expansion of $@ depending on whether the file
is found locally or via VPATH. But all my testing for that patch
was done incrementally, where all the protocol.[ch] files had
already been generated prior to the patch and were up-to-date in
the srcdir, and thus I missed one case where $@ causes grief in a
VPATH build from a fresh checkout:
We have a pattern rule for generating remote_protocol.[ch], and
what's more, the rule for protocol.c depends on protocol.h AND
on the protocol.x file. The pattern for protocol.c is only
satisfied via the VPATH lookup for protocol.x, and if protocol.h
doesn't yet exist, the VPATH rule kicks in and we end up with a
dependency on a file with $(srcdir) in the name. Based on make's
rules for $@, this resulted in make building remote_protocol.h
into srcdir (where we want it), then remote_protocol.c into
builddir (oops, not so good for the tarball), and also causes
the build to fail (the compiler can't find the .h if it lives
in a different directory than the .c):
CC remote/libvirt_driver_remote_la-remote_protocol.lo
remote/remote_protocol.c:7:29: fatal error: remote_protocol.h: No such file or directory
#include "remote_protocol.h"
^
compilation terminated.
As before, the fix is to hard-code the output file to go into
srcdir in spite of $@; but since this is in a pattern rule, we
are forced to use $@ in the recipe, so the patch is a bit
trickier than what was done in commit 073e1575.
* src/Makefile.am (%protocol.c, %protocol.h): Force output to srcdir.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-17 11:29:23 +00:00
|
|
|
$< $(srcdir)/$(subst $(srcdir)/,,$@)
|
2011-05-06 13:11:32 +00:00
|
|
|
|
2010-12-10 12:27:33 +00:00
|
|
|
%protocol.h: %protocol.x $(srcdir)/rpc/genprotocol.pl
|
2012-05-29 21:57:31 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -h \
|
build: fix VPATH build of remote driver
Commit 073e1575 tried to set things up so that 1) generated files
to be shipped in the tarball always live in srcdir, and 2) we have
no files in SOURCES that depend on any other files with a literal
$(srcdir) in the name, because that situation can cause confusing
results for the make expansion of $@ depending on whether the file
is found locally or via VPATH. But all my testing for that patch
was done incrementally, where all the protocol.[ch] files had
already been generated prior to the patch and were up-to-date in
the srcdir, and thus I missed one case where $@ causes grief in a
VPATH build from a fresh checkout:
We have a pattern rule for generating remote_protocol.[ch], and
what's more, the rule for protocol.c depends on protocol.h AND
on the protocol.x file. The pattern for protocol.c is only
satisfied via the VPATH lookup for protocol.x, and if protocol.h
doesn't yet exist, the VPATH rule kicks in and we end up with a
dependency on a file with $(srcdir) in the name. Based on make's
rules for $@, this resulted in make building remote_protocol.h
into srcdir (where we want it), then remote_protocol.c into
builddir (oops, not so good for the tarball), and also causes
the build to fail (the compiler can't find the .h if it lives
in a different directory than the .c):
CC remote/libvirt_driver_remote_la-remote_protocol.lo
remote/remote_protocol.c:7:29: fatal error: remote_protocol.h: No such file or directory
#include "remote_protocol.h"
^
compilation terminated.
As before, the fix is to hard-code the output file to go into
srcdir in spite of $@; but since this is in a pattern rule, we
are forced to use $@ in the recipe, so the patch is a bit
trickier than what was done in commit 073e1575.
* src/Makefile.am (%protocol.c, %protocol.h): Force output to srcdir.
Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-17 11:29:23 +00:00
|
|
|
$< $(srcdir)/$(subst $(srcdir)/,,$@)
|
2009-09-16 15:55:16 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
if WITH_XEN
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_xen_impl.la
|
|
|
|
libvirt_driver_xen_la_SOURCES =
|
|
|
|
libvirt_driver_xen_la_LIBADD = libvirt_driver_xen_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_xen.la
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_xen_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_xen_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_xen.la
|
Only build server side drivers as modules
The driver modules all use symbols which are defined in libvirt.so.
Thus for loading of modules to work, the binary that libvirt.so
is linked to must export its symbols back to modules. If the
libvirt.so itself is dlopen()d then the RTLD_GLOBAL flag must
be set. Unfortunately few, if any, programming languages use
the RTLD_GLOBAL flag when loading modules :-( This means is it
not practical to use driver modules for any libvirt client side
drivers (OpenVZ, VMWare, Hyper-V, Remote client, test).
This patch changes the build process so only server side drivers
are built as modules (Xen, QEMU, LXC, UML)
* daemon/libvirtd.c: Add missing load of 'interface' driver
* src/Makefile.am: Only build server side drivers as modules
* src/libvirt.c: Don't load any driver modules
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2011-06-01 15:36:21 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
|
|
|
libvirt_driver_xen_impl_la_CFLAGS = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(XEN_CFLAGS) \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
-I$(top_srcdir)/src/xenxs \
|
2010-06-09 18:35:49 +00:00
|
|
|
$(AM_CFLAGS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_xen_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_xen_impl_la_LIBADD = $(XEN_LIBS)
|
|
|
|
libvirt_driver_xen_impl_la_SOURCES = $(XEN_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XEN
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
if WITH_PHYP
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_phyp.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
|
2013-01-08 21:47:55 +00:00
|
|
|
libvirt_driver_phyp_la_LIBADD = $(SSH2_LIBS)
|
|
|
|
libvirt_driver_phyp_la_CFLAGS = $(SSH2_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2009-07-24 14:17:06 +00:00
|
|
|
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_PHYP
|
2009-07-24 14:17:06 +00:00
|
|
|
|
2008-08-27 11:19:45 +00:00
|
|
|
if WITH_OPENVZ
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_openvz.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_openvz_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_OPENVZ
|
2008-08-27 11:19:45 +00:00
|
|
|
|
2010-12-17 10:28:20 +00:00
|
|
|
if WITH_VMWARE
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_vmware.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_vmware.la
|
|
|
|
libvirt_driver_vmware_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf -I$(top_srcdir)/src/vmx $(AM_CFLAGS)
|
2010-12-17 10:28:20 +00:00
|
|
|
libvirt_driver_vmware_la_SOURCES = $(VMWARE_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_VMWARE
|
2010-12-17 10:28:20 +00:00
|
|
|
|
2009-04-17 16:09:07 +00:00
|
|
|
if WITH_VBOX
|
2013-05-15 10:31:36 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_vbox_impl.la
|
|
|
|
libvirt_driver_vbox_la_SOURCES =
|
|
|
|
libvirt_driver_vbox_la_LIBADD = libvirt_driver_vbox_impl.la
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_vbox.la
|
|
|
|
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2009-04-17 16:09:07 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_vbox.la
|
2013-05-15 10:31:36 +00:00
|
|
|
# GPLv2-only license requries that it be linked into
|
|
|
|
# libvirtd and *not* libvirt.so
|
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2013-05-15 10:31:36 +00:00
|
|
|
|
|
|
|
libvirt_driver_vbox_impl_la_CFLAGS = \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
|
|
|
libvirt_driver_vbox_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_vbox_impl_la_LIBADD = $(DLOPEN_LIBS) $(MSCOM_LIBS)
|
|
|
|
libvirt_driver_vbox_impl_la_SOURCES = $(VBOX_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_VBOX
|
2009-04-17 16:09:07 +00:00
|
|
|
|
2010-03-14 11:11:51 +00:00
|
|
|
if WITH_XENAPI
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
|
2013-01-14 17:07:26 +00:00
|
|
|
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(CURL_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
|
2013-01-14 17:07:26 +00:00
|
|
|
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(CURL_LIBS)
|
2010-03-14 11:11:51 +00:00
|
|
|
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XENAPI
|
2010-03-14 11:11:51 +00:00
|
|
|
|
2011-02-10 22:42:34 +00:00
|
|
|
if WITH_LIBXL
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_libxl_impl.la
|
|
|
|
libvirt_driver_libxl_la_SOURCES =
|
|
|
|
libvirt_driver_libxl_la_LIBADD = libvirt_driver_libxl_impl.la
|
2011-02-10 22:42:34 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_libxl.la
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_libxl_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_libxl_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2011-02-10 22:42:34 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_libxl.la
|
|
|
|
# Stateful, so linked to daemon instead
|
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_libxl.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
2013-04-23 10:56:22 +00:00
|
|
|
libvirt_driver_libxl_impl_la_CFLAGS = \
|
|
|
|
$(LIBXL_CFLAGS) \
|
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
-I$(top_srcdir)/src/xenxs \
|
2011-03-29 12:39:18 +00:00
|
|
|
$(AM_CFLAGS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_libxl_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_libxl_impl_la_LIBADD = $(LIBXL_LIBS) libvirt_xenxs.la
|
|
|
|
libvirt_driver_libxl_impl_la_SOURCES = $(LIBXL_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBXL
|
2011-02-10 22:42:34 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
if WITH_QEMU
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_qemu_impl.la
|
|
|
|
libvirt_driver_qemu_la_SOURCES =
|
|
|
|
libvirt_driver_qemu_la_LIBADD = libvirt_driver_qemu_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_qemu.la
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_qemu_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_qemu.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
2013-04-22 11:09:55 +00:00
|
|
|
libvirt_driver_qemu_impl_la_CFLAGS = \
|
|
|
|
$(GNUTLS_CFLAGS) \
|
|
|
|
$(LIBNL_CFLAGS) \
|
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_qemu_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
2013-03-20 15:02:34 +00:00
|
|
|
libvirt_driver_qemu_impl_la_LIBADD = $(CAPNG_LIBS) \
|
2011-10-18 08:06:44 +00:00
|
|
|
$(GNUTLS_LIBS) \
|
2013-08-12 19:13:14 +00:00
|
|
|
$(LIBNL_LIBS) \
|
|
|
|
$(LIBXML_LIBS) \
|
|
|
|
$(NULL)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_qemu_impl_la_SOURCES = $(QEMU_DRIVER_SOURCES)
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2009-10-08 15:40:14 +00:00
|
|
|
conf_DATA += qemu/qemu.conf
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeas_DATA += qemu/libvirtd_qemu.aug
|
2012-05-29 21:49:13 +00:00
|
|
|
augeastest_DATA += test_libvirtd_qemu.aug
|
|
|
|
CLEANFILES += test_libvirtd_qemu.aug
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
2010-05-19 17:51:49 +00:00
|
|
|
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
qemu/test_libvirtd_qemu.aug.in qemu/THREADS.txt
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
if WITH_LXC
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_lxc_impl.la
|
|
|
|
libvirt_driver_lxc_la_SOURCES =
|
|
|
|
libvirt_driver_lxc_la_LIBADD = libvirt_driver_lxc_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_lxc.la
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_lxc_la_LIBADD += ../gnulib/lib/libgnu.la
|
|
|
|
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_lxc.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
|
|
|
libvirt_driver_lxc_impl_la_CFLAGS = \
|
2012-05-03 16:10:50 +00:00
|
|
|
$(LIBNL_CFLAGS) \
|
2012-11-14 09:39:04 +00:00
|
|
|
$(FUSE_CFLAGS) \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2012-11-14 09:39:04 +00:00
|
|
|
libvirt_driver_lxc_impl_la_LIBADD = $(CAPNG_LIBS) $(LIBNL_LIBS) $(FUSE_LIBS)
|
2012-09-20 14:43:12 +00:00
|
|
|
if WITH_BLKID
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_lxc_impl_la_CFLAGS += $(BLKID_CFLAGS)
|
|
|
|
libvirt_driver_lxc_impl_la_LIBADD += $(BLKID_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_BLKID
|
2013-02-01 19:22:26 +00:00
|
|
|
libvirt_driver_lxc_impl_la_LIBADD += $(SECDRIVER_LIBS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_lxc_impl_la_SOURCES = $(LXC_DRIVER_SOURCES)
|
2009-10-08 15:40:14 +00:00
|
|
|
|
|
|
|
conf_DATA += lxc/lxc.conf
|
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeas_DATA += lxc/libvirtd_lxc.aug
|
2012-05-29 21:49:13 +00:00
|
|
|
augeastest_DATA += test_libvirtd_lxc.aug
|
|
|
|
CLEANFILES += test_libvirtd_lxc.aug
|
2009-10-08 16:06:40 +00:00
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LXC
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug.in
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2008-11-19 16:58:23 +00:00
|
|
|
if WITH_UML
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_uml_impl.la
|
|
|
|
libvirt_driver_uml_la_SOURCES =
|
|
|
|
libvirt_driver_uml_la_LIBADD = libvirt_driver_uml_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_uml.la
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_uml_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-19 16:58:23 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_uml.la
|
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
2013-03-20 15:02:34 +00:00
|
|
|
libvirt_driver_uml_impl_la_CFLAGS = \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_uml_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
2013-03-20 15:02:34 +00:00
|
|
|
# libvirt_driver_uml_impl_la_LIBADD =
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_uml_impl_la_SOURCES = $(UML_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UML
|
2008-11-04 23:37:23 +00:00
|
|
|
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2012-07-23 14:45:20 +00:00
|
|
|
ESX_GENERATED_STAMP = .esx_vi_generator.stamp
|
|
|
|
|
2012-08-16 19:57:34 +00:00
|
|
|
EXTRA_DIST += $(ESX_GENERATED_STAMP)
|
|
|
|
|
2012-07-23 14:45:20 +00:00
|
|
|
$(ESX_DRIVER_GENERATED): $(ESX_GENERATED_STAMP)
|
|
|
|
|
|
|
|
$(ESX_GENERATED_STAMP): $(srcdir)/esx/esx_vi_generator.input \
|
2011-08-23 21:40:40 +00:00
|
|
|
$(srcdir)/esx/esx_vi_generator.py
|
2012-07-23 14:45:20 +00:00
|
|
|
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/esx/esx_vi_generator.py \
|
|
|
|
&& touch $@
|
|
|
|
|
|
|
|
MAINTAINERCLEANFILES += $(ESX_DRIVER_GENERATED) $(ESX_GENERATED_STAMP)
|
|
|
|
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2009-07-23 20:21:08 +00:00
|
|
|
if WITH_ESX
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_esx.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
|
2013-01-14 17:07:26 +00:00
|
|
|
libvirt_driver_esx_la_CFLAGS = $(CURL_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf -I$(top_srcdir)/src/vmx $(AM_CFLAGS)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
|
2013-01-14 17:07:26 +00:00
|
|
|
libvirt_driver_esx_la_LIBADD = $(CURL_LIBS)
|
2009-07-23 20:21:08 +00:00
|
|
|
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
|
2010-03-06 16:56:28 +00:00
|
|
|
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_ESX
|
2009-07-23 20:21:08 +00:00
|
|
|
|
2011-07-13 14:47:01 +00:00
|
|
|
|
2011-07-13 15:05:19 +00:00
|
|
|
BUILT_SOURCES += $(HYPERV_DRIVER_GENERATED)
|
|
|
|
|
2012-07-23 14:45:20 +00:00
|
|
|
HYPERV_GENERATED_STAMP = .hyperv_wmi_generator.stamp
|
|
|
|
|
2012-08-16 19:57:34 +00:00
|
|
|
EXTRA_DIST += $(HYPERV_GENERATED_STAMP)
|
|
|
|
|
2012-07-23 14:45:20 +00:00
|
|
|
$(HYPERV_DRIVER_GENERATED): $(HYPERV_GENERATED_STAMP)
|
|
|
|
|
|
|
|
$(HYPERV_GENERATED_STAMP): $(srcdir)/hyperv/hyperv_wmi_generator.input \
|
2011-07-13 15:05:19 +00:00
|
|
|
$(srcdir)/hyperv/hyperv_wmi_generator.py
|
2013-07-18 15:37:52 +00:00
|
|
|
$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) \
|
|
|
|
$(srcdir)/hyperv/hyperv_wmi_generator.py \
|
2012-07-23 14:45:20 +00:00
|
|
|
&& touch $@
|
|
|
|
|
|
|
|
MAINTAINERCLEANFILES += $(HYPERV_DRIVER_GENERATED) $(HYPERV_GENERATED_STAMP)
|
2011-07-13 15:05:19 +00:00
|
|
|
|
2011-07-13 14:47:01 +00:00
|
|
|
if WITH_HYPERV
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_hyperv.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_hyperv.la
|
|
|
|
libvirt_driver_hyperv_la_CFLAGS = $(OPENWSMAN_CFLAGS) \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2011-07-13 14:47:01 +00:00
|
|
|
libvirt_driver_hyperv_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_hyperv_la_LIBADD = $(OPENWSMAN_LIBS)
|
|
|
|
libvirt_driver_hyperv_la_SOURCES = $(HYPERV_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_HYPERV
|
2011-07-13 14:47:01 +00:00
|
|
|
|
2012-07-31 18:56:05 +00:00
|
|
|
if WITH_PARALLELS
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_parallels.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_parallels.la
|
|
|
|
libvirt_driver_parallels_la_CFLAGS = \
|
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_parallels_la_SOURCES = $(PARALLELS_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_PARALLELS
|
2012-07-31 18:56:05 +00:00
|
|
|
|
2008-11-04 23:37:23 +00:00
|
|
|
if WITH_NETWORK
|
2012-05-25 19:18:10 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_network_impl.la
|
|
|
|
libvirt_driver_network_la_SOURCES =
|
|
|
|
libvirt_driver_network_la_LIBADD = libvirt_driver_network_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_network.la
|
2013-07-18 15:37:52 +00:00
|
|
|
libvirt_driver_network_la_LIBADD += ../gnulib/lib/libgnu.la \
|
|
|
|
$(LIBNL_LIBS) \
|
|
|
|
$(DBUS_LIBS) \
|
|
|
|
$(NULL)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_network.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-05-25 19:18:10 +00:00
|
|
|
|
|
|
|
libvirt_driver_network_impl_la_CFLAGS = \
|
2013-04-23 10:56:22 +00:00
|
|
|
$(LIBNL_CFLAGS) \
|
|
|
|
$(DBUS_CFLAGS) \
|
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2012-05-25 19:18:10 +00:00
|
|
|
libvirt_driver_network_impl_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
|
2013-08-12 19:13:14 +00:00
|
|
|
libvirt_driver_network_impl_la_LIBADD = $(DBUS_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETWORK
|
2009-09-16 11:31:13 +00:00
|
|
|
EXTRA_DIST += network/default.xml
|
|
|
|
|
|
|
|
|
2012-09-18 01:27:06 +00:00
|
|
|
if WITH_INTERFACE
|
2009-07-21 14:02:16 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_interface.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2009-07-21 14:02:16 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_interface.la
|
Only build server side drivers as modules
The driver modules all use symbols which are defined in libvirt.so.
Thus for loading of modules to work, the binary that libvirt.so
is linked to must export its symbols back to modules. If the
libvirt.so itself is dlopen()d then the RTLD_GLOBAL flag must
be set. Unfortunately few, if any, programming languages use
the RTLD_GLOBAL flag when loading modules :-( This means is it
not practical to use driver modules for any libvirt client side
drivers (OpenVZ, VMWare, Hyper-V, Remote client, test).
This patch changes the build process so only server side drivers
are built as modules (Xen, QEMU, LXC, UML)
* daemon/libvirtd.c: Add missing load of 'interface' driver
* src/Makefile.am: Only build server side drivers as modules
* src/libvirt.c: Don't load any driver modules
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2011-06-01 15:36:21 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2013-04-23 10:56:22 +00:00
|
|
|
libvirt_driver_interface_la_CFLAGS = \
|
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
|
2012-09-18 01:27:06 +00:00
|
|
|
libvirt_driver_interface_la_LIBADD =
|
|
|
|
if WITH_NETCF
|
|
|
|
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
|
|
|
|
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_NETCF
|
2012-09-20 14:24:47 +00:00
|
|
|
if WITH_UDEV
|
2012-10-06 19:20:25 +00:00
|
|
|
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
|
|
|
|
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UDEV
|
|
|
|
endif ! WITH_NETCF
|
2009-07-21 14:02:16 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
2009-07-21 14:02:16 +00:00
|
|
|
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DRIVER_MODULES
|
2009-07-21 14:02:16 +00:00
|
|
|
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_INTERFACE
|
2009-05-20 14:26:49 +00:00
|
|
|
|
2009-09-14 12:31:23 +00:00
|
|
|
if WITH_SECRETS
|
2009-08-14 19:48:55 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_secret.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2009-08-14 19:48:55 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_secret.la
|
2009-12-22 13:50:50 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_secret_la_CFLAGS = \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2009-08-14 19:48:55 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DRIVER_MODULES
|
2009-08-14 19:48:55 +00:00
|
|
|
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECRETS
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Needed to keep automake quiet about conditionals
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES =
|
|
|
|
libvirt_driver_storage_impl_la_CFLAGS = \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_storage_impl_la_LIBADD =
|
2013-02-01 19:22:26 +00:00
|
|
|
libvirt_driver_storage_impl_la_LIBADD += $(SECDRIVER_LIBS)
|
2012-09-20 14:43:12 +00:00
|
|
|
if WITH_BLKID
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_CFLAGS += $(BLKID_CFLAGS)
|
|
|
|
libvirt_driver_storage_impl_la_LIBADD += $(BLKID_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_BLKID
|
2012-06-05 16:28:52 +00:00
|
|
|
if WITH_STORAGE
|
2012-08-21 12:50:28 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_storage_impl.la
|
|
|
|
libvirt_driver_storage_la_SOURCES =
|
|
|
|
libvirt_driver_storage_la_LIBADD = libvirt_driver_storage_impl.la
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_storage.la
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
|
2013-09-01 06:50:58 +00:00
|
|
|
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_storage.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
|
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE
|
2008-11-04 23:37:23 +00:00
|
|
|
|
2008-02-20 15:45:33 +00:00
|
|
|
if WITH_STORAGE_LVM
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_LVM
|
2008-02-20 15:45:33 +00:00
|
|
|
|
2008-02-20 15:49:25 +00:00
|
|
|
if WITH_STORAGE_ISCSI
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_ISCSI
|
2008-02-20 15:49:25 +00:00
|
|
|
|
2009-04-01 16:03:22 +00:00
|
|
|
if WITH_STORAGE_SCSI
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_SCSI
|
2009-04-01 16:03:22 +00:00
|
|
|
|
2009-09-08 13:47:45 +00:00
|
|
|
if WITH_STORAGE_MPATH
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
|
|
|
|
libvirt_driver_storage_impl_la_CFLAGS += $(DEVMAPPER_CFLAGS)
|
|
|
|
libvirt_driver_storage_impl_la_LIBADD += $(DEVMAPPER_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_MPATH
|
2009-09-08 13:47:45 +00:00
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
if WITH_STORAGE_DISK
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_DISK
|
2008-02-20 15:45:33 +00:00
|
|
|
|
2012-05-14 09:06:42 +00:00
|
|
|
if WITH_STORAGE_RBD
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_RBD_SOURCES)
|
|
|
|
libvirt_driver_storage_impl_la_LIBADD += $(LIBRBD_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_RBD
|
2012-05-14 09:06:42 +00:00
|
|
|
|
2012-07-18 19:06:58 +00:00
|
|
|
if WITH_STORAGE_SHEEPDOG
|
2012-08-21 12:50:28 +00:00
|
|
|
libvirt_driver_storage_impl_la_SOURCES += $(STORAGE_DRIVER_SHEEPDOG_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_STORAGE_SHEEPDOG
|
2012-07-18 19:06:58 +00:00
|
|
|
|
2008-11-21 12:27:11 +00:00
|
|
|
if WITH_NODE_DEVICES
|
|
|
|
# Needed to keep automake quiet about conditionals
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_nodedev.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2008-11-21 12:27:11 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_nodedev.la
|
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2008-11-21 12:27:11 +00:00
|
|
|
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_nodedev_la_CFLAGS = \
|
2013-04-23 10:56:22 +00:00
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
|
2012-04-02 14:46:56 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD =
|
2011-08-16 04:28:43 +00:00
|
|
|
|
2013-03-17 01:57:55 +00:00
|
|
|
if WITH_LIBVIRTD
|
2012-09-20 14:38:35 +00:00
|
|
|
if WITH_HAL
|
2008-11-21 12:27:11 +00:00
|
|
|
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
|
|
|
|
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_HAL
|
2012-09-20 14:24:47 +00:00
|
|
|
if WITH_UDEV
|
2009-11-12 21:48:24 +00:00
|
|
|
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
|
2009-11-12 22:22:00 +00:00
|
|
|
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UDEV
|
|
|
|
endif WITH_LIBVIRTD
|
2008-11-21 12:27:11 +00:00
|
|
|
|
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
|
2008-11-21 12:27:11 +00:00
|
|
|
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DRIVER_MODULES
|
|
|
|
endif WITH_NODE_DEVICES
|
2008-11-21 12:27:11 +00:00
|
|
|
|
|
|
|
|
2010-03-25 17:46:09 +00:00
|
|
|
if WITH_NWFILTER
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2010-03-25 17:46:09 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
|
2012-07-31 09:57:10 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2013-04-23 10:56:22 +00:00
|
|
|
libvirt_driver_nwfilter_la_CFLAGS = \
|
|
|
|
$(LIBPCAP_CFLAGS) \
|
|
|
|
$(LIBNL_CFLAGS) \
|
|
|
|
$(DBUS_CFLAGS) \
|
|
|
|
-I$(top_srcdir)/src/access \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2013-09-01 07:53:03 +00:00
|
|
|
libvirt_driver_nwfilter_la_LDFLAGS = $(AM_LDFLAGS)
|
2012-08-08 16:00:23 +00:00
|
|
|
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS) $(LIBNL_LIBS) $(DBUS_LIBS)
|
2010-03-25 17:46:09 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DRIVER_MODULES
|
2010-03-25 17:46:09 +00:00
|
|
|
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NWFILTER
|
2010-03-25 17:46:09 +00:00
|
|
|
|
|
|
|
|
2012-08-02 10:25:51 +00:00
|
|
|
libvirt_security_manager_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
|
|
|
|
noinst_LTLIBRARIES += libvirt_security_manager.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_security_manager.la
|
|
|
|
libvirt_security_manager_la_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2012-08-02 10:25:51 +00:00
|
|
|
libvirt_security_manager_la_LDFLAGS = $(AM_LDFLAGS)
|
2013-02-01 19:22:26 +00:00
|
|
|
libvirt_security_manager_la_LIBADD = $(SECDRIVER_LIBS)
|
2009-03-03 10:06:49 +00:00
|
|
|
if WITH_SECDRIVER_SELINUX
|
2012-08-02 10:25:51 +00:00
|
|
|
libvirt_security_manager_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
|
|
|
|
libvirt_security_manager_la_CFLAGS += $(SELINUX_CFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_SELINUX
|
2009-10-08 14:34:22 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
2012-08-02 10:25:51 +00:00
|
|
|
libvirt_security_manager_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
|
|
|
|
libvirt_security_manager_la_CFLAGS += $(APPARMOR_CFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_APPARMOR
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2013-07-18 15:37:52 +00:00
|
|
|
libvirt_driver_access_la_SOURCES = \
|
|
|
|
$(ACCESS_DRIVER_SOURCES) $(ACCESS_DRIVER_GENERATED)
|
2012-01-20 18:02:55 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_access.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_access.la
|
|
|
|
libvirt_driver_access_la_CFLAGS = \
|
|
|
|
-I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_access_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_driver_access_la_LIBADD =
|
|
|
|
|
2012-01-23 15:12:57 +00:00
|
|
|
EXTRA_DIST += access/genpolkit.pl
|
|
|
|
|
|
|
|
if WITH_POLKIT1
|
|
|
|
libvirt_driver_access_la_SOURCES += $(ACCESS_DRIVER_POLKIT_SOURCES)
|
|
|
|
|
|
|
|
polkitactiondir = $(datadir)/polkit-1/actions
|
2013-09-04 03:00:40 +00:00
|
|
|
if WITH_LIBVIRTD
|
2012-01-23 15:12:57 +00:00
|
|
|
polkitaction_DATA = $(ACCESS_DRIVER_POLKIT_POLICY)
|
2013-09-04 03:00:40 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2012-01-23 15:12:57 +00:00
|
|
|
|
|
|
|
$(ACCESS_DRIVER_POLKIT_POLICY): $(srcdir)/access/viraccessperm.h \
|
|
|
|
$(srcdir)/access/genpolkit.pl Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) $(srcdir)/access/genpolkit.pl < $< > $@ || rm -f $@
|
|
|
|
|
|
|
|
CLEANFILES += $(ACCESS_DRIVER_POLKIT_POLICY)
|
|
|
|
BUILT_SOURCES += $(ACCESS_DRIVER_POLKIT_POLICY)
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_POLKIT1
|
2012-01-23 15:12:57 +00:00
|
|
|
EXTRA_DIST += $(ACCESS_DRIVER_POLKIT_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_POLKIT1
|
2012-01-23 15:12:57 +00:00
|
|
|
|
2012-01-20 18:02:55 +00:00
|
|
|
|
2013-08-07 12:03:50 +00:00
|
|
|
BUILT_SOURCES += $(ACCESS_DRIVER_GENERATED) $(ACCESS_DRIVER_API_FILES)
|
|
|
|
CLEANFILES += $(ACCESS_DRIVER_GENERATED) $(ACCESS_DRIVER_API_FILES)
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
|
|
|
|
libvirt_access.syms: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclsym \
|
|
|
|
remote REMOTE $(REMOTE_PROTOCOL) > $@
|
|
|
|
libvirt_access_qemu.syms: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(QEMU_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclsym \
|
|
|
|
qemu QEMU $(QEMU_PROTOCOL) > $@
|
|
|
|
libvirt_access_lxc.syms: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(LXC_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclsym \
|
|
|
|
lxc LXC $(LXC_PROTOCOL) > $@
|
|
|
|
|
2013-08-07 12:03:50 +00:00
|
|
|
libvirt_access.xml: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclapi \
|
|
|
|
remote REMOTE $(REMOTE_PROTOCOL) > $@
|
|
|
|
libvirt_access_qemu.xml: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(QEMU_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclapi \
|
|
|
|
qemu QEMU $(QEMU_PROTOCOL) > $@
|
|
|
|
libvirt_access_lxc.xml: $(srcdir)/rpc/gendispatch.pl \
|
|
|
|
$(LXC_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclapi \
|
|
|
|
lxc LXC $(LXC_PROTOCOL) > $@
|
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
access/viraccessapicheck.h: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclheader \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote REMOTE $(REMOTE_PROTOCOL) \
|
|
|
|
> $(srcdir)/access/viraccessapicheck.h
|
|
|
|
access/viraccessapicheck.c: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(REMOTE_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclbody \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
remote REMOTE $(REMOTE_PROTOCOL) access/viraccessapicheck.h \
|
|
|
|
> $(srcdir)/access/viraccessapicheck.c
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
access/viraccessapicheckqemu.h: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(QEMU_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclheader \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
qemu QEMU $(QEMU_PROTOCOL) \
|
|
|
|
> $(srcdir)/access/viraccessapicheckqemu.h
|
|
|
|
access/viraccessapicheckqemu.c: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(QEMU_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclbody \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
qemu QEMU $(QEMU_PROTOCOL) access/viraccessapicheckqemu.h \
|
|
|
|
> $(srcdir)/access/viraccessapicheckqemu.c
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
access/viraccessapichecklxc.h: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(LXC_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclheader \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc LXC $(LXC_PROTOCOL) \
|
|
|
|
> $(srcdir)/access/viraccessapichecklxc.h
|
|
|
|
access/viraccessapichecklxc.c: $(srcdir)/rpc/gendispatch.pl \
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
$(LXC_PROTOCOL) Makefile.am
|
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=aclbody \
|
build: avoid $(srcdir) in *_SOURCES
Trying to enable automake's subdir-objects option resulted in
the creation of literal directories such as src/$(srcdir)/remote/.
I traced this to the fact that we had used a literal $(srcdir)
in a location that later fed an automake *_SOURCES variable.
This has also been reported as an automake bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
but it's better to fix our code than to wait for an automake fix.
Some things to remember that affect VPATH builds, and where an
in-tree build is blissfully unaware of the issues: if a VPATH
build fails to find a file that was used as a prereq of any
other target, then the rule for that file will expand $@ to
prefer the current build dir (bad because a VPATH build on a
fresh checkout will then stick $@ in the current directory
instead of the desired srcdir); conversely, if a VPATH build
finds the file in srcdir but decides it needs to be rebuilt,
then the rule for that file will expand $@ to include the
directory where it was found out-of-date (bad for an explicit
listing of $(srcdir)/$@ because an incremental VPATH build will
then expand srcdir twice). As we want these files to go into
srcdir unconditionally, we have to massage or avoid $@ for any
recipe that involves one of these files.
Therefore, this patch removes all uses of $(srcdir) from any
generated file name that later feeds a *_SOURCES variable, and
then rewrites all the recipes to generate those files to
hard-code their creation into srcdir without the use of $@.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Drop $(srcdir); VPATH
builds know how to find the files, and automake subdir-objects
fails with it in place.
(LXC_MONITOR_PROTOCOL_GENERATED, (LXC_MONITOR_GENERATED)
(ACCESS_DRIVER_GENERATED, LOCK_PROTOCOL_GENERATED): Likewise.
(*_client_bodies.h): Hard-code rules to write into srcdir, as
VPATH tries to build $@ locally if missing.
(util/virkeymaps.h): Likewise.
(lxc/lxc_monitor_dispatch.h): Likewise.
(access/viraccessapi*): Likewise.
(locking/lock_daemon_dispatch_stubs.h): Likewise.
* daemon/Makeflie.am (DAEMON_GENERATED, remote_dispatch.h):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
fixup DAEMON_GENERATED
2013-09-06 22:54:39 +00:00
|
|
|
lxc LXC $(LXC_PROTOCOL) access/viraccessapichecklxc.h \
|
|
|
|
> $(srcdir)/access/viraccessapichecklxc.c
|
Auto-generate helpers for checking access control rules
Extend the 'gendispatch.pl' script to be able to generate
three new types of file.
- 'aclheader' - defines signatures of helper APIs for
doing authorization checks. There is one helper API
for each API requiring an auth check. Any @acl
annotations result in a method being generated with
a suffix of 'EnsureACL'. If the ACL check requires
examination of flags, an extra 'flags' param will be
present. Some examples
extern int virConnectBaselineCPUEnsureACL(void);
extern int virConnectDomainEventDeregisterEnsureACL(virDomainDefPtr domain);
extern int virDomainAttachDeviceFlagsEnsureACL(virDomainDefPtr domain, unsigned int flags);
Any @aclfilter annotations resuilt in a method being
generated with a suffix of 'CheckACL'.
extern int virConnectListAllDomainsCheckACL(virDomainDefPtr domain);
These are used for filtering individual objects from APIs
which return a list of objects
- 'aclbody' - defines the actual implementation of the
methods described above. This calls into the access
manager APIs. A complex example:
/* Returns: -1 on error (denied==error), 0 on allowed */
int virDomainAttachDeviceFlagsEnsureACL(virConnectPtr conn,
virDomainDefPtr domain,
unsigned int flags)
{
virAccessManagerPtr mgr;
int rv;
if (!(mgr = virAccessManagerGetDefault()))
return -1;
if ((rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_WRITE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG|VIR_DOMAIN_AFFECT_LIVE)) == 0) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
if (((flags & (VIR_DOMAIN_AFFECT_CONFIG)) == (VIR_DOMAIN_AFFECT_CONFIG)) &&
(rv = virAccessManagerCheckDomain(mgr,
conn->driver->name,
domain,
VIR_ACCESS_PERM_DOMAIN_SAVE)) <= 0) {
virObjectUnref(mgr);
if (rv == 0)
virReportError(VIR_ERR_ACCESS_DENIED, NULL);
return -1;
}
virObjectUnref(mgr);
return 0;
}
- 'aclsyms' - generates a linker script to export the
APIs to drivers. Some examples
virConnectBaselineCPUEnsureACL;
virConnectCompareCPUEnsureACL;
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-04-18 16:49:41 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Add all conditional sources just in case...
|
|
|
|
EXTRA_DIST += \
|
|
|
|
$(TEST_DRIVER_SOURCES) \
|
|
|
|
$(REMOTE_DRIVER_SOURCES) \
|
|
|
|
$(XEN_DRIVER_SOURCES) \
|
|
|
|
$(QEMU_DRIVER_SOURCES) \
|
|
|
|
$(LXC_DRIVER_SOURCES) \
|
2008-11-19 16:58:23 +00:00
|
|
|
$(UML_DRIVER_SOURCES) \
|
2008-08-20 20:48:35 +00:00
|
|
|
$(OPENVZ_DRIVER_SOURCES) \
|
2009-07-24 14:17:06 +00:00
|
|
|
$(PHYP_DRIVER_SOURCES) \
|
2009-04-17 16:09:07 +00:00
|
|
|
$(VBOX_DRIVER_SOURCES) \
|
2010-03-14 11:11:51 +00:00
|
|
|
$(XENAPI_DRIVER_SOURCES) \
|
2012-08-03 15:48:05 +00:00
|
|
|
$(LIBXL_DRIVER_SOURCES) \
|
2009-07-23 20:21:08 +00:00
|
|
|
$(ESX_DRIVER_SOURCES) \
|
2010-03-06 16:56:28 +00:00
|
|
|
$(ESX_DRIVER_EXTRA_DIST) \
|
2011-07-13 14:47:01 +00:00
|
|
|
$(HYPERV_DRIVER_SOURCES) \
|
2011-07-13 15:05:19 +00:00
|
|
|
$(HYPERV_DRIVER_EXTRA_DIST) \
|
2012-08-03 15:48:05 +00:00
|
|
|
$(PARALLELS_DRIVER_SOURCES) \
|
2008-10-10 13:57:13 +00:00
|
|
|
$(NETWORK_DRIVER_SOURCES) \
|
2009-07-21 14:02:16 +00:00
|
|
|
$(INTERFACE_DRIVER_SOURCES) \
|
2008-08-20 20:48:35 +00:00
|
|
|
$(STORAGE_DRIVER_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_FS_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_LVM_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_ISCSI_SOURCES) \
|
2009-04-01 16:03:22 +00:00
|
|
|
$(STORAGE_DRIVER_SCSI_SOURCES) \
|
2009-09-08 13:47:45 +00:00
|
|
|
$(STORAGE_DRIVER_MPATH_SOURCES) \
|
2008-11-21 12:27:11 +00:00
|
|
|
$(STORAGE_DRIVER_DISK_SOURCES) \
|
2012-05-14 09:06:42 +00:00
|
|
|
$(STORAGE_DRIVER_RBD_SOURCES) \
|
2012-07-18 19:06:58 +00:00
|
|
|
$(STORAGE_DRIVER_SHEEPDOG_SOURCES) \
|
2008-11-21 12:27:11 +00:00
|
|
|
$(NODE_DEVICE_DRIVER_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_HAL_SOURCES) \
|
2009-11-12 21:48:24 +00:00
|
|
|
$(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
|
2010-03-25 17:46:07 +00:00
|
|
|
$(NWFILTER_DRIVER_SOURCES) \
|
2009-04-19 15:12:01 +00:00
|
|
|
$(SECURITY_DRIVER_SELINUX_SOURCES) \
|
2009-10-08 14:34:22 +00:00
|
|
|
$(SECURITY_DRIVER_APPARMOR_SOURCES) \
|
2009-09-14 12:31:23 +00:00
|
|
|
$(SECRET_DRIVER_SOURCES) \
|
2010-12-17 10:28:20 +00:00
|
|
|
$(VBOX_DRIVER_EXTRA_DIST) \
|
2011-02-21 13:40:08 +00:00
|
|
|
$(VMWARE_DRIVER_SOURCES) \
|
2012-01-23 15:12:57 +00:00
|
|
|
$(XENXS_SOURCES) \
|
|
|
|
$(ACCESS_DRIVER_POLKIT_POLICY)
|
2008-08-20 20:48:35 +00:00
|
|
|
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
check-local: check-augeas
|
|
|
|
|
2011-07-06 16:30:08 +00:00
|
|
|
.PHONY: check-augeas \
|
|
|
|
check-augeas-qemu \
|
|
|
|
check-augeas-lxc \
|
|
|
|
check-augeas-sanlock \
|
|
|
|
check-augeas-lockd \
|
|
|
|
$(NULL)
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2013-07-18 15:37:52 +00:00
|
|
|
check-augeas: check-augeas-qemu check-augeas-lxc check-augeas-sanlock \
|
2013-08-08 15:06:31 +00:00
|
|
|
check-augeas-lockd check-augeas-virtlockd
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2012-05-29 21:49:13 +00:00
|
|
|
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
|
2012-05-30 02:15:13 +00:00
|
|
|
EXTRA_DIST += $(top_srcdir)/build-aux/augeas-gentest.pl
|
2010-03-24 08:39:54 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
if WITH_QEMU
|
2012-05-29 21:49:13 +00:00
|
|
|
test_libvirtd_qemu.aug: qemu/test_libvirtd_qemu.aug.in \
|
|
|
|
$(srcdir)/qemu/qemu.conf $(AUG_GENTEST)
|
build: fix 'make distcheck' issues
We had a distributed file (remote_protocol.h, which in turn was
a prereq to remote_driver.c) depending on a generated file
(libvirt_probes.h), which is a no-no for a VPATH build from a
read-only source tree (no wonder 'make distcheck' tests precisely
that situation):
File `libvirt_driver_remote.la' does not exist.
File `libvirt_driver_remote_la-remote_driver.lo' does not exist.
Prerequisite `libvirt_probes.h' is newer than target `../../src/remote/remote_protocol.h'.
Must remake target `../../src/remote/remote_protocol.h'.
Invoking recipe from Makefile:7464 to update target `../../src/remote/remote_protocol.h'.
make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/libvirt-0.9.12/_build/src'
GEN ../../src/remote/remote_protocol.h
cannot create ../../src/remote/remote_protocol.h: Permission denied at ../../src/rpc/genprotocol.pl line 31.
make[3]: *** [../../src/remote/remote_protocol.h] Error 13
Rather than making distributed .c files depend on generated files, we
really want to ensure that compilation into .lo files is not attempted
until the generated files are present, done by this patch. Since there
were two different sets of conditionally generated files that both
feed the .lo file, I had to introduce a new variable REMOTE_DRIVER_PREREQS
to keep automake happy.
After that fix, the next issue was that make treats './foo' and 'foo'
differently in determining whether an implicit %foo rule is applicable,
with the result that locking/qemu-sanlock.conf wasn't properly being
built at the right times. Also, the output for using the .aug test
files was a bit verbose.
After fixing the src directory, the next error is related to the docs
directory, where the tarball is missing a stamp file and thus tries to
regenerate files that are already present:
GEN ../../docs/apibuild.py.stamp
Traceback (most recent call last):
File "../../docs/apibuild.py", line 2511, in <module>
rebuild("libvirt")
File "../../docs/apibuild.py", line 2495, in rebuild
builder.serialize()
File "../../docs/apibuild.py", line 2424, in serialize
output = open(filename, "w")
IOError: [Errno 13] Permission denied: '../../docs/libvirt-api.xml'
make[5]: *** [../../docs/apibuild.py.stamp] Error 1
and fixing that exposed another case of a distributed file (generated
html) depending on a built file (libvirt.h), but only when doing an
in-tree build, because of a file glob.
* src/Makefile.am ($(srcdir)/remote/remote_driver.c): Change...
(libvirt_driver_remote_la-remote_driver.lo): ...to the real
dependency.
($(builddir)/locking/%-sanlock.conf): Drop $(builddir), so that
rule gets run in time for test_libvirt_sanlock.aug.
(test_libvir*.aug): Cater to silent build.
(conf_DATA): Don't ship qemu-sanlock.conf in the tarball, since it
is trivial to regenerate.
* docs/Makefile.am (EXTRA_DIST): Ship our stamp file.
($(APIBUILD_STAMP)): Don't depend on generated file.
2012-05-30 17:30:18 +00:00
|
|
|
$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/qemu/qemu.conf $< $@
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2012-05-29 21:49:13 +00:00
|
|
|
check-augeas-qemu: test_libvirtd_qemu.aug
|
2010-03-24 08:39:54 +00:00
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
2012-05-29 21:49:13 +00:00
|
|
|
'$(AUGPARSE)' -I $(srcdir)/qemu test_libvirtd_qemu.aug; \
|
2009-10-08 16:06:40 +00:00
|
|
|
fi
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_QEMU
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
check-augeas-qemu:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_QEMU
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
if WITH_LXC
|
2012-05-29 21:49:13 +00:00
|
|
|
test_libvirtd_lxc.aug: lxc/test_libvirtd_lxc.aug.in \
|
|
|
|
$(srcdir)/lxc/lxc.conf $(AUG_GENTEST)
|
build: fix 'make distcheck' issues
We had a distributed file (remote_protocol.h, which in turn was
a prereq to remote_driver.c) depending on a generated file
(libvirt_probes.h), which is a no-no for a VPATH build from a
read-only source tree (no wonder 'make distcheck' tests precisely
that situation):
File `libvirt_driver_remote.la' does not exist.
File `libvirt_driver_remote_la-remote_driver.lo' does not exist.
Prerequisite `libvirt_probes.h' is newer than target `../../src/remote/remote_protocol.h'.
Must remake target `../../src/remote/remote_protocol.h'.
Invoking recipe from Makefile:7464 to update target `../../src/remote/remote_protocol.h'.
make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/libvirt-0.9.12/_build/src'
GEN ../../src/remote/remote_protocol.h
cannot create ../../src/remote/remote_protocol.h: Permission denied at ../../src/rpc/genprotocol.pl line 31.
make[3]: *** [../../src/remote/remote_protocol.h] Error 13
Rather than making distributed .c files depend on generated files, we
really want to ensure that compilation into .lo files is not attempted
until the generated files are present, done by this patch. Since there
were two different sets of conditionally generated files that both
feed the .lo file, I had to introduce a new variable REMOTE_DRIVER_PREREQS
to keep automake happy.
After that fix, the next issue was that make treats './foo' and 'foo'
differently in determining whether an implicit %foo rule is applicable,
with the result that locking/qemu-sanlock.conf wasn't properly being
built at the right times. Also, the output for using the .aug test
files was a bit verbose.
After fixing the src directory, the next error is related to the docs
directory, where the tarball is missing a stamp file and thus tries to
regenerate files that are already present:
GEN ../../docs/apibuild.py.stamp
Traceback (most recent call last):
File "../../docs/apibuild.py", line 2511, in <module>
rebuild("libvirt")
File "../../docs/apibuild.py", line 2495, in rebuild
builder.serialize()
File "../../docs/apibuild.py", line 2424, in serialize
output = open(filename, "w")
IOError: [Errno 13] Permission denied: '../../docs/libvirt-api.xml'
make[5]: *** [../../docs/apibuild.py.stamp] Error 1
and fixing that exposed another case of a distributed file (generated
html) depending on a built file (libvirt.h), but only when doing an
in-tree build, because of a file glob.
* src/Makefile.am ($(srcdir)/remote/remote_driver.c): Change...
(libvirt_driver_remote_la-remote_driver.lo): ...to the real
dependency.
($(builddir)/locking/%-sanlock.conf): Drop $(builddir), so that
rule gets run in time for test_libvirt_sanlock.aug.
(test_libvir*.aug): Cater to silent build.
(conf_DATA): Don't ship qemu-sanlock.conf in the tarball, since it
is trivial to regenerate.
* docs/Makefile.am (EXTRA_DIST): Ship our stamp file.
($(APIBUILD_STAMP)): Don't depend on generated file.
2012-05-30 17:30:18 +00:00
|
|
|
$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/lxc/lxc.conf $< $@
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2012-05-29 21:49:13 +00:00
|
|
|
check-augeas-lxc: test_libvirtd_lxc.aug
|
2010-03-24 08:39:54 +00:00
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
2012-05-29 21:49:13 +00:00
|
|
|
'$(AUGPARSE)' -I $(srcdir)/lxc test_libvirtd_lxc.aug; \
|
2009-10-08 16:06:40 +00:00
|
|
|
fi
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LXC
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
check-augeas-lxc:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LXC
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2012-09-20 11:58:07 +00:00
|
|
|
if WITH_SANLOCK
|
2012-05-29 21:49:13 +00:00
|
|
|
test_libvirt_sanlock.aug: locking/test_libvirt_sanlock.aug.in \
|
|
|
|
locking/qemu-sanlock.conf $(AUG_GENTEST)
|
build: fix 'make distcheck' issues
We had a distributed file (remote_protocol.h, which in turn was
a prereq to remote_driver.c) depending on a generated file
(libvirt_probes.h), which is a no-no for a VPATH build from a
read-only source tree (no wonder 'make distcheck' tests precisely
that situation):
File `libvirt_driver_remote.la' does not exist.
File `libvirt_driver_remote_la-remote_driver.lo' does not exist.
Prerequisite `libvirt_probes.h' is newer than target `../../src/remote/remote_protocol.h'.
Must remake target `../../src/remote/remote_protocol.h'.
Invoking recipe from Makefile:7464 to update target `../../src/remote/remote_protocol.h'.
make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/libvirt-0.9.12/_build/src'
GEN ../../src/remote/remote_protocol.h
cannot create ../../src/remote/remote_protocol.h: Permission denied at ../../src/rpc/genprotocol.pl line 31.
make[3]: *** [../../src/remote/remote_protocol.h] Error 13
Rather than making distributed .c files depend on generated files, we
really want to ensure that compilation into .lo files is not attempted
until the generated files are present, done by this patch. Since there
were two different sets of conditionally generated files that both
feed the .lo file, I had to introduce a new variable REMOTE_DRIVER_PREREQS
to keep automake happy.
After that fix, the next issue was that make treats './foo' and 'foo'
differently in determining whether an implicit %foo rule is applicable,
with the result that locking/qemu-sanlock.conf wasn't properly being
built at the right times. Also, the output for using the .aug test
files was a bit verbose.
After fixing the src directory, the next error is related to the docs
directory, where the tarball is missing a stamp file and thus tries to
regenerate files that are already present:
GEN ../../docs/apibuild.py.stamp
Traceback (most recent call last):
File "../../docs/apibuild.py", line 2511, in <module>
rebuild("libvirt")
File "../../docs/apibuild.py", line 2495, in rebuild
builder.serialize()
File "../../docs/apibuild.py", line 2424, in serialize
output = open(filename, "w")
IOError: [Errno 13] Permission denied: '../../docs/libvirt-api.xml'
make[5]: *** [../../docs/apibuild.py.stamp] Error 1
and fixing that exposed another case of a distributed file (generated
html) depending on a built file (libvirt.h), but only when doing an
in-tree build, because of a file glob.
* src/Makefile.am ($(srcdir)/remote/remote_driver.c): Change...
(libvirt_driver_remote_la-remote_driver.lo): ...to the real
dependency.
($(builddir)/locking/%-sanlock.conf): Drop $(builddir), so that
rule gets run in time for test_libvirt_sanlock.aug.
(test_libvir*.aug): Cater to silent build.
(conf_DATA): Don't ship qemu-sanlock.conf in the tarball, since it
is trivial to regenerate.
* docs/Makefile.am (EXTRA_DIST): Ship our stamp file.
($(APIBUILD_STAMP)): Don't depend on generated file.
2012-05-30 17:30:18 +00:00
|
|
|
$(AM_V_GEN)$(AUG_GENTEST) locking/qemu-sanlock.conf $< $@
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
|
2012-05-29 21:49:13 +00:00
|
|
|
check-augeas-sanlock: test_libvirt_sanlock.aug
|
2011-06-14 08:20:49 +00:00
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
2012-05-29 21:49:13 +00:00
|
|
|
'$(AUGPARSE)' -I $(srcdir)/locking test_libvirt_sanlock.aug; \
|
2011-06-14 08:20:49 +00:00
|
|
|
fi
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_SANLOCK
|
2012-05-30 15:15:22 +00:00
|
|
|
check-augeas-sanlock:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SANLOCK
|
2009-10-08 16:06:40 +00:00
|
|
|
|
2011-07-06 16:30:08 +00:00
|
|
|
test_libvirt_lockd.aug: locking/test_libvirt_lockd.aug.in \
|
|
|
|
locking/qemu-lockd.conf $(AUG_GENTEST)
|
|
|
|
$(AM_V_GEN)$(AUG_GENTEST) locking/qemu-lockd.conf $< $@
|
|
|
|
|
2013-08-08 15:06:31 +00:00
|
|
|
test_virtlockd.aug: locking/test_virtlockd.aug.in \
|
|
|
|
locking/virtlockd.conf $(AUG_GENTEST)
|
2013-08-08 10:51:01 +00:00
|
|
|
$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/locking/virtlockd.conf $< $@
|
2013-08-08 15:06:31 +00:00
|
|
|
|
2011-07-06 16:30:08 +00:00
|
|
|
check-augeas-lockd: test_libvirt_lockd.aug
|
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
|
|
|
'$(AUGPARSE)' -I $(srcdir)/locking test_libvirt_lockd.aug; \
|
|
|
|
fi
|
|
|
|
|
2013-08-08 15:06:31 +00:00
|
|
|
check-augeas-virtlockd: test_virtlockd.aug
|
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
|
|
|
'$(AUGPARSE)' -I $(srcdir)/locking test_virtlockd.aug; \
|
|
|
|
fi
|
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
#
|
|
|
|
# Build our version script. This is composed of three parts:
|
|
|
|
#
|
|
|
|
# 1. libvirt_public.syms - public API. These functions are always
|
|
|
|
# present in the library and should never change incompatibly.
|
|
|
|
#
|
|
|
|
# 2. libvirt_private.syms - private API. These symbols are private and
|
|
|
|
# semantics may change on every release, hence the version number is
|
|
|
|
# spliced in at build time. This ensures that if libvirtd, virsh, or a
|
|
|
|
# driver module was built against one libvirt release, it will refuse to
|
|
|
|
# load with another where symbols may have same names but different
|
|
|
|
# semantics. Such symbols should never be visible in an (installed)
|
|
|
|
# public header file.
|
|
|
|
#
|
|
|
|
# 3. libvirt_*.syms - dynamic private API. Like libvirt_private.syms,
|
|
|
|
# except that build options (such as --enable-debug) can mean these
|
|
|
|
# symbols aren't present at all.
|
|
|
|
#
|
|
|
|
|
2009-01-05 14:06:41 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_DRIVER_MODULES
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_DRIVER_MODULES
|
2009-01-05 14:07:31 +00:00
|
|
|
|
2009-01-05 14:08:26 +00:00
|
|
|
if WITH_LINUX
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_linux.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LINUX
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_linux.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LINUX
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2012-04-02 15:45:01 +00:00
|
|
|
if WITH_ESX
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_esx.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_ESX
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_esx.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_ESX
|
2012-04-02 15:45:01 +00:00
|
|
|
|
2010-03-15 01:02:57 +00:00
|
|
|
if WITH_LIBVIRTD
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_daemon.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LIBVIRTD
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_daemon.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LIBVIRTD
|
2010-03-15 01:02:57 +00:00
|
|
|
|
2012-04-02 15:45:01 +00:00
|
|
|
if WITH_OPENVZ
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_openvz.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_OPENVZ
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_openvz.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_OPENVZ
|
2012-04-02 15:45:01 +00:00
|
|
|
|
2010-12-21 21:39:55 +00:00
|
|
|
if WITH_VMX
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_vmx.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_VMX
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_vmx.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_VMX
|
2010-12-21 21:39:55 +00:00
|
|
|
|
2013-09-18 14:30:35 +00:00
|
|
|
if WITH_VMWARE
|
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_vmware.syms
|
|
|
|
else ! WITH_VMWARE
|
|
|
|
SYM_FILES += $(srcdir)/libvirt_vmware.syms
|
|
|
|
endif ! WITH_VMWARE
|
|
|
|
|
2011-05-26 21:30:21 +00:00
|
|
|
if WITH_XENXS
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_xenxs.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_XENXS
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_xenxs.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_XENXS
|
2011-05-26 21:30:21 +00:00
|
|
|
|
2012-09-20 11:58:29 +00:00
|
|
|
if WITH_SASL
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_sasl.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_SASL
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_sasl.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SASL
|
2011-10-11 22:22:44 +00:00
|
|
|
|
2013-03-13 13:37:29 +00:00
|
|
|
if WITH_GNUTLS
|
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_gnutls.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_GNUTLS
|
2013-03-13 13:37:29 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_gnutls.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_GNUTLS
|
2013-03-13 13:37:29 +00:00
|
|
|
|
2013-01-08 21:34:15 +00:00
|
|
|
if WITH_SSH2
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_SSH2
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SSH2
|
2011-11-14 14:30:23 +00:00
|
|
|
|
2012-07-11 13:35:43 +00:00
|
|
|
if WITH_ATOMIC_OPS_PTHREAD
|
2012-12-12 16:15:25 +00:00
|
|
|
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_ATOMIC_OPS_PTHREAD
|
2013-02-22 23:46:25 +00:00
|
|
|
SYM_FILES += $(srcdir)/libvirt_atomic.syms
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_ATOMIC_OPS_PTHREAD
|
2012-07-11 13:35:43 +00:00
|
|
|
|
2009-01-06 15:16:43 +00:00
|
|
|
EXTRA_DIST += \
|
2013-05-02 23:35:50 +00:00
|
|
|
libvirt_public.syms \
|
|
|
|
libvirt_lxc.syms \
|
|
|
|
libvirt_qemu.syms \
|
|
|
|
$(SYM_FILES) \
|
|
|
|
$(NULL)
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2011-06-24 14:04:11 +00:00
|
|
|
BUILT_SOURCES += $(GENERATED_SYM_FILES)
|
2009-09-16 11:01:53 +00:00
|
|
|
|
2013-07-18 15:37:52 +00:00
|
|
|
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
|
|
|
|
$(ACCESS_DRIVER_SYM_FILES) \
|
2011-02-17 20:16:53 +00:00
|
|
|
$(top_builddir)/config.status
|
2010-03-31 12:10:08 +00:00
|
|
|
$(AM_V_GEN)rm -f $@-tmp $@ ; \
|
|
|
|
printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \
|
|
|
|
cat $(srcdir)/libvirt_public.syms >>$@-tmp && \
|
|
|
|
printf '\n\n# Private symbols\n\n' >>$@-tmp && \
|
|
|
|
printf 'LIBVIRT_PRIVATE_$(VERSION) {\n\n' >>$@-tmp && \
|
|
|
|
printf 'global:\n\n' >>$@-tmp && \
|
2013-07-02 16:28:20 +00:00
|
|
|
cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
|
2010-03-31 12:10:08 +00:00
|
|
|
printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
|
|
|
|
chmod a-w $@-tmp && \
|
2009-01-05 14:05:29 +00:00
|
|
|
mv $@-tmp libvirt.syms
|
2008-02-20 15:45:33 +00:00
|
|
|
|
2010-03-22 01:25:36 +00:00
|
|
|
libvirt.def: libvirt.syms
|
|
|
|
$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
|
|
|
|
printf 'EXPORTS\n' > $@-tmp && \
|
2013-07-18 15:37:52 +00:00
|
|
|
sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
|
|
|
|
-e 's/[ ]*\(.*\)\;/ \1/g' $^ >> $@-tmp && \
|
2010-03-22 01:25:36 +00:00
|
|
|
chmod a-w $@-tmp && \
|
|
|
|
mv $@-tmp libvirt.def
|
|
|
|
|
2010-08-12 21:43:16 +00:00
|
|
|
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
|
|
|
|
$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
|
|
|
|
printf 'EXPORTS\n' > $@-tmp && \
|
2013-07-18 15:37:52 +00:00
|
|
|
sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
|
|
|
|
-e 's/[ ]*\(.*\)\;/ \1/g' $^ >> $@-tmp && \
|
2010-08-12 21:43:16 +00:00
|
|
|
chmod a-w $@-tmp && \
|
|
|
|
mv $@-tmp libvirt_qemu.def
|
|
|
|
|
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 13:15:19 +00:00
|
|
|
libvirt_lxc.def: $(srcdir)/libvirt_lxc.syms
|
|
|
|
$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
|
|
|
|
printf 'EXPORTS\n' > $@-tmp && \
|
2013-07-18 15:37:52 +00:00
|
|
|
sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
|
|
|
|
-e 's/[ ]*\(.*\)\;/ \1/g' $^ >> $@-tmp && \
|
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 13:15:19 +00:00
|
|
|
chmod a-w $@-tmp && \
|
|
|
|
mv $@-tmp libvirt_lxc.def
|
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Empty source list - it merely links a bunch of convenience libs together
|
|
|
|
libvirt_la_SOURCES =
|
2013-04-03 11:36:32 +00:00
|
|
|
libvirt_la_LDFLAGS = \
|
|
|
|
$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
|
|
|
|
-version-info $(LIBVIRT_VERSION_INFO) \
|
|
|
|
$(LIBVIRT_NODELETE) \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS) \
|
|
|
|
$(NULL)
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
|
2012-07-03 14:37:08 +00:00
|
|
|
libvirt_la_LIBADD += \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(DRIVER_MODULE_LIBS) \
|
2010-05-15 00:19:58 +00:00
|
|
|
$(CYGWIN_EXTRA_LIBADD)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
|
2010-05-15 00:19:58 +00:00
|
|
|
# Because we specify libvirt_la_DEPENDENCIES for $(LIBVIRT_SYMBOL_FILE), we
|
|
|
|
# lose automake's automatic dependencies on an appropriate subset of
|
|
|
|
# $(libvirt_la_LIBADD). But we were careful to create
|
|
|
|
# $(libvirt_la_BUILT_LIBADD) as the subset that automake would have
|
|
|
|
# picked out for us.
|
|
|
|
libvirt_la_DEPENDENCIES = $(libvirt_la_BUILT_LIBADD) $(LIBVIRT_SYMBOL_FILE)
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2012-02-24 15:10:53 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
2012-05-25 15:57:56 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
|
2012-05-28 11:33:23 +00:00
|
|
|
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
|
2012-04-02 17:24:29 +00:00
|
|
|
nodist_libvirt_la_SOURCES = libvirt_probes.h
|
build: fix 'make dist' without dtrace
probes.h can only be generated on Linux, and then only with dtrace
installed. If it is part of the tarball, then either 'make dist'
will fail if you don't have that setup, or we would have to start
keeping probes.h in libvirt.git. Since we only need it to be
generated when dtrace is in use, it's better to avoid shipping
it in the first place, and avoid tracking it in git.
Meanwhile, there is a build dependency - since the RPC code is
generated, it can be built early; but when dtrace is enabled, we
must ensure probes.h is built even earlier. Commit 1afcfbdd tried
to fix this, but did so in a way that added probes.h into the
tarball, and broke VPATH as well. Commit ecbca767 fixed VPATH,
but didn't fix the more fundamental problem. This patch solves
the issue by adding a dependency instead.
Tested with 'make dist' in a clean VPATH builds, for both
'./configure --without-dtrace' and './configure --with-dtrace';
all configurations were able to correctly build a tarball, and
the dtrace configuration no longer sticks probes.h in the tarball.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Don't ship probes.h;
rather, make it a dependency.
2011-12-01 16:02:53 +00:00
|
|
|
if WITH_REMOTE
|
2012-06-06 15:45:04 +00:00
|
|
|
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
|
build: fix 'make dist' without dtrace
probes.h can only be generated on Linux, and then only with dtrace
installed. If it is part of the tarball, then either 'make dist'
will fail if you don't have that setup, or we would have to start
keeping probes.h in libvirt.git. Since we only need it to be
generated when dtrace is in use, it's better to avoid shipping
it in the first place, and avoid tracking it in git.
Meanwhile, there is a build dependency - since the RPC code is
generated, it can be built early; but when dtrace is enabled, we
must ensure probes.h is built even earlier. Commit 1afcfbdd tried
to fix this, but did so in a way that added probes.h into the
tarball, and broke VPATH as well. Commit ecbca767 fixed VPATH,
but didn't fix the more fundamental problem. This patch solves
the issue by adding a dependency instead.
Tested with 'make dist' in a clean VPATH builds, for both
'./configure --without-dtrace' and './configure --with-dtrace';
all configurations were able to correctly build a tarball, and
the dtrace configuration no longer sticks probes.h in the tarball.
* src/Makefile.am (REMOTE_DRIVER_GENERATED): Don't ship probes.h;
rather, make it a dependency.
2011-12-01 16:02:53 +00:00
|
|
|
endif WITH_REMOTE
|
2012-08-10 21:14:21 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
DTRACE2SYSTEMTAP_FLAGS = --with-modules
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DRIVER_MODULES
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2012-04-02 17:24:29 +00:00
|
|
|
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp
|
|
|
|
|
|
|
|
if WITH_QEMU
|
2012-05-25 15:57:56 +00:00
|
|
|
libvirt_driver_qemu_la_LIBADD += libvirt_qemu_probes.lo
|
2012-04-02 17:24:29 +00:00
|
|
|
nodist_libvirt_driver_qemu_la_SOURCES = libvirt_qemu_probes.h
|
2012-05-30 10:08:18 +00:00
|
|
|
BUILT_SOURCES += libvirt_qemu_probes.h
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
|
|
|
tapsetdir = $(datadir)/systemtap/tapset
|
2012-04-02 17:24:29 +00:00
|
|
|
tapset_DATA = libvirt_probes.stp libvirt_qemu_probes.stp libvirt_functions.stp
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2012-04-02 17:24:29 +00:00
|
|
|
%_probes.h: %_probes.d
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<
|
|
|
|
|
2012-05-29 20:58:56 +00:00
|
|
|
.PRECIOUS: %_probes.o
|
2012-04-02 17:24:29 +00:00
|
|
|
%_probes.o: %_probes.d
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<
|
|
|
|
|
2012-05-25 15:57:56 +00:00
|
|
|
%_probes.lo: %_probes.o
|
|
|
|
$(AM_V_GEN)printf %s\\n \
|
|
|
|
'# $@ - a libtool object file' \
|
|
|
|
'# Generated by libtool (GNU libtool) 2.4' \
|
|
|
|
'# Actually generated by Makefile.am, in order to shut up libtool' \
|
|
|
|
"pic_object='$<'" \
|
|
|
|
"non_pic_object='$<'" \
|
|
|
|
> $@
|
|
|
|
|
2013-09-07 21:22:18 +00:00
|
|
|
# Keep this list synced with PROTOCOL_STRUCTS
|
2011-09-22 10:51:55 +00:00
|
|
|
RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x \
|
|
|
|
$(srcdir)/rpc/virkeepaliveprotocol.x \
|
|
|
|
$(srcdir)/remote/remote_protocol.x \
|
2012-12-21 14:20:04 +00:00
|
|
|
$(srcdir)/remote/lxc_protocol.x \
|
2013-03-13 19:19:22 +00:00
|
|
|
$(srcdir)/remote/qemu_protocol.x \
|
|
|
|
$(srcdir)/lxc/lxc_monitor_protocol.x \
|
|
|
|
$(srcdir)/locking/lock_protocol.x
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
|
|
|
libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl
|
2012-05-29 21:57:31 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2013-07-18 15:37:52 +00:00
|
|
|
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
|
|
|
|
$(top_builddir)/config.status
|
2012-05-29 21:57:31 +00:00
|
|
|
$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
|
2012-08-10 21:14:21 +00:00
|
|
|
$(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2012-05-25 15:57:56 +00:00
|
|
|
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
|
2012-04-02 17:24:29 +00:00
|
|
|
libvirt_qemu_probes.h libvirt_qemu_probes.o \
|
2012-05-25 15:57:56 +00:00
|
|
|
libvirt_qemu_probes.lo\
|
2012-04-02 17:24:29 +00:00
|
|
|
libvirt_functions.stp libvirt_probes.stp \
|
|
|
|
libvirt_qemu_probes.stp
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2012-04-02 17:24:29 +00:00
|
|
|
EXTRA_DIST += libvirt_probes.d libvirt_qemu_probes.d
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
|
2010-04-13 18:02:46 +00:00
|
|
|
libvirt_qemu_la_SOURCES = libvirt-qemu.c
|
2013-04-03 11:36:32 +00:00
|
|
|
libvirt_qemu_la_LDFLAGS = \
|
|
|
|
$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
|
|
|
|
-version-info $(LIBVIRT_VERSION_INFO) \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS) \
|
|
|
|
$(NULL)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
|
2010-04-13 18:02:46 +00:00
|
|
|
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
|
2008-10-15 18:39:34 +00:00
|
|
|
|
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 13:15:19 +00:00
|
|
|
libvirt_lxc_la_SOURCES = libvirt-lxc.c
|
2013-04-03 11:36:32 +00:00
|
|
|
libvirt_lxc_la_LDFLAGS = \
|
|
|
|
$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_LXC_SYMBOL_FILE) \
|
|
|
|
-version-info $(LIBVIRT_VERSION_INFO) \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS) \
|
|
|
|
$(NULL)
|
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 13:15:19 +00:00
|
|
|
libvirt_lxc_la_CFLAGS = $(AM_CFLAGS)
|
|
|
|
libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
|
|
|
|
|
2011-07-06 16:30:08 +00:00
|
|
|
lockdriverdir = $(libdir)/libvirt/lock-driver
|
|
|
|
lockdriver_LTLIBRARIES =
|
|
|
|
|
2012-08-02 19:06:50 +00:00
|
|
|
if WITH_LIBVIRTD
|
2011-07-06 16:30:08 +00:00
|
|
|
lockdriver_LTLIBRARIES += lockd.la
|
|
|
|
lockd_la_SOURCES = \
|
|
|
|
$(LOCK_DRIVER_LOCKD_SOURCES) \
|
|
|
|
$(LOCK_PROTOCOL_GENERATED) \
|
|
|
|
$(NULL)
|
2013-05-30 01:52:58 +00:00
|
|
|
lockd_la_CFLAGS = -I$(top_srcdir)/src/conf \
|
|
|
|
$(XDR_CFLAGS) \
|
|
|
|
$(AM_CFLAGS)
|
2011-07-06 16:30:08 +00:00
|
|
|
lockd_la_LDFLAGS = -module -avoid-version
|
2013-07-18 15:37:52 +00:00
|
|
|
lockd_la_LIBADD = ../gnulib/lib/libgnu.la \
|
|
|
|
libvirt-net-rpc.la \
|
|
|
|
libvirt-net-rpc-client.la \
|
|
|
|
$(NULL)
|
2012-12-13 22:13:21 +00:00
|
|
|
augeas_DATA += locking/libvirt_lockd.aug
|
|
|
|
augeastest_DATA += test_libvirt_lockd.aug
|
|
|
|
CLEANFILES += test_libvirt_lockd.aug
|
2011-07-06 16:30:08 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
|
|
|
lockd_la_LIBADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2011-07-06 16:30:08 +00:00
|
|
|
if WITH_QEMU
|
2012-12-14 10:54:16 +00:00
|
|
|
nodist_conf_DATA += locking/qemu-lockd.conf
|
2011-07-06 16:30:08 +00:00
|
|
|
BUILT_SOURCES += locking/qemu-lockd.conf
|
|
|
|
DISTCLEANFILES += locking/qemu-lockd.conf
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
2011-07-06 16:30:08 +00:00
|
|
|
|
|
|
|
locking/%-lockd.conf: $(srcdir)/locking/lockd.conf
|
|
|
|
$(AM_V_GEN)$(MKDIR_P) locking ; \
|
|
|
|
cp $< $@
|
|
|
|
|
|
|
|
|
2012-08-02 19:06:50 +00:00
|
|
|
sbin_PROGRAMS = virtlockd
|
|
|
|
|
2011-07-06 16:20:04 +00:00
|
|
|
virtlockd_SOURCES = \
|
|
|
|
$(LOCK_DAEMON_SOURCES) \
|
|
|
|
$(LOCK_PROTOCOL_GENERATED) \
|
2012-08-03 09:27:07 +00:00
|
|
|
$(LOCK_DAEMON_GENERATED) \
|
2011-07-06 16:20:04 +00:00
|
|
|
$(NULL)
|
2012-08-02 19:06:50 +00:00
|
|
|
virtlockd_CFLAGS = \
|
|
|
|
$(AM_CFLAGS) \
|
2013-04-03 10:32:15 +00:00
|
|
|
$(PIE_CFLAGS) \
|
2013-05-30 21:49:40 +00:00
|
|
|
$(XDR_CFLAGS) \
|
2012-08-02 19:06:50 +00:00
|
|
|
$(NULL)
|
|
|
|
virtlockd_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
2013-04-03 10:32:15 +00:00
|
|
|
$(PIE_LDFLAGS) \
|
2012-08-02 19:06:50 +00:00
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS) \
|
|
|
|
$(NULL)
|
|
|
|
virtlockd_LDADD = \
|
|
|
|
libvirt-net-rpc-server.la \
|
|
|
|
libvirt-net-rpc.la \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la \
|
|
|
|
$(CYGWIN_EXTRA_LIBADD) \
|
|
|
|
$(NULL)
|
|
|
|
if WITH_DTRACE_PROBES
|
|
|
|
virtlockd_LDADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2012-08-02 19:06:50 +00:00
|
|
|
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_LIBVIRTD
|
2011-07-06 16:30:08 +00:00
|
|
|
EXTRA_DIST += $(LOCK_DAEMON_SOURCES) \
|
|
|
|
$(LOCK_DRIVER_LOCKD_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LIBVIRTD
|
2012-08-02 19:06:50 +00:00
|
|
|
|
2012-12-13 22:13:21 +00:00
|
|
|
EXTRA_DIST += locking/virtlockd.sysconf \
|
|
|
|
locking/lockd.conf \
|
|
|
|
locking/libvirt_lockd.aug \
|
|
|
|
locking/test_libvirt_lockd.aug.in
|
2012-08-02 19:06:50 +00:00
|
|
|
|
|
|
|
install-sysconfig:
|
2012-12-13 23:28:27 +00:00
|
|
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
|
2012-08-02 19:06:50 +00:00
|
|
|
$(INSTALL_DATA) $(srcdir)/locking/virtlockd.sysconf \
|
|
|
|
$(DESTDIR)$(sysconfdir)/sysconfig/virtlockd
|
|
|
|
|
|
|
|
uninstall-sysconfig:
|
|
|
|
rm -f $(DESTDIR)$(sysconfdir)/sysconfig/virtlockd
|
2012-12-13 23:28:27 +00:00
|
|
|
rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
|
2012-08-02 19:06:50 +00:00
|
|
|
|
|
|
|
EXTRA_DIST += locking/virtlockd.init.in
|
|
|
|
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
if LIBVIRT_INIT_SCRIPT_RED_HAT
|
|
|
|
install-init:: virtlockd.init install-sysconfig
|
2012-12-13 23:28:27 +00:00
|
|
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
|
2012-08-02 19:06:50 +00:00
|
|
|
$(INSTALL_SCRIPT) virtlockd.init \
|
|
|
|
$(DESTDIR)$(sysconfdir)/rc.d/init.d/virtlockd
|
|
|
|
|
|
|
|
uninstall-init:: uninstall-sysconfig
|
2012-12-13 23:28:27 +00:00
|
|
|
rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/virtlockd
|
|
|
|
rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
|
2012-08-02 19:06:50 +00:00
|
|
|
|
|
|
|
BUILT_SOURCES += virtlockd.init
|
2012-12-13 23:28:27 +00:00
|
|
|
DISTCLEANFILES += virtlockd.init
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
|
2012-08-02 19:06:50 +00:00
|
|
|
install-init::
|
|
|
|
uninstall-init::
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
|
|
|
|
else ! WITH_LIBVIRTD
|
2012-08-02 19:06:50 +00:00
|
|
|
install-init::
|
|
|
|
uninstall-init::
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LIBVIRTD
|
2012-08-02 19:06:50 +00:00
|
|
|
|
|
|
|
virtlockd.init: locking/virtlockd.init.in $(top_builddir)/config.status
|
build: use common .in replacement mechanism
We had several different styles of .in conversion in our Makefiles:
ALLCAPS, @ALLCAPS@, @lower@, ::lower::
Canonicalize on one form, to make it easier to copy and paste
between .in files.
Also, we were using some non-portable sed constructs: \@ is an
undefined escape sequence (it happens to be @ itself in GNU sed,
but POSIX allows it to mean something else), as well as risky
behavior (failure to consistently quote things means a space
in $(sysconfdir) could throw things off; also, Autoconf recommends
using | rather than , or ! in the s||| operator, because | has to
be quoted in shell and is therefore less likely to appear in file
names than , or !).
Fix all of these uses to follow the same syntax.
* daemon/libvirtd.8.in: Switch to @var@.
* tools/virt-xml-validate.in: Likewise.
* tools/virt-pki-validate.in: Likewise.
* src/locking/virtlockd.init.in: Likewise.
* daemon/Makefile.am: Prefer | over ! in sed.
(libvirtd.8): Prefer consistent substitution.
(libvirtd.init, libvirtd.service): Avoid non-portable sed.
* tools/Makefile.am (libvirt-guests.sh, libvirt-guests.init)
(libvirt-guests.service): Likewise.
(virt-xml-validate, virt-pki-validate, virt-sanlock-cleanup):
Prefer consistent capitalization.
* src/Makefile.am (virtlockd.init, virtlockd.service)
(virtlockd.socket): Prefer consistent substitution.
2013-01-04 20:35:04 +00:00
|
|
|
$(AM_V_GEN)sed \
|
|
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
|
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
|
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
|
|
< $< > $@-t && \
|
|
|
|
chmod a+x $@-t && \
|
2012-08-02 19:06:50 +00:00
|
|
|
mv $@-t $@
|
|
|
|
|
2013-08-08 14:10:38 +00:00
|
|
|
POD2MAN = pod2man -c "Virtualization Support" \
|
|
|
|
-r "$(PACKAGE)-$(VERSION)" -s 8
|
2012-08-02 19:06:50 +00:00
|
|
|
|
2013-08-08 14:10:38 +00:00
|
|
|
$(srcdir)/virtlockd.8.in: locking/virtlockd.pod.in $(top_srcdir)/configure.ac
|
|
|
|
$(AM_V_GEN)$(POD2MAN) --name VIRTLOCKD $< $@ \
|
|
|
|
&& if grep 'POD ERROR' $@ ; then rm $@; exit 1; fi
|
|
|
|
|
|
|
|
virtlockd.8: $(srcdir)/virtlockd.8.in
|
|
|
|
$(AM_V_GEN)sed \
|
|
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
|
|
< $< > $@-t && \
|
|
|
|
mv $@-t $@
|
|
|
|
|
2013-08-31 02:16:06 +00:00
|
|
|
if WITH_LIBVIRTD
|
2013-08-08 14:10:38 +00:00
|
|
|
man8_MANS = virtlockd.8
|
|
|
|
|
2013-08-08 15:06:31 +00:00
|
|
|
conf_DATA += locking/virtlockd.conf
|
|
|
|
|
|
|
|
augeas_DATA += locking/virtlockd.aug
|
|
|
|
augeastest_DATA += test_virtlockd.aug
|
2013-08-31 02:16:06 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2013-08-08 15:06:31 +00:00
|
|
|
|
2013-08-31 02:16:06 +00:00
|
|
|
CLEANFILES += test_virtlockd.aug virtlockd.8
|
2013-08-08 14:10:38 +00:00
|
|
|
MAINTAINERCLEANFILES += $(srcdir)/virtlockd.8.in
|
|
|
|
|
|
|
|
EXTRA_DIST += \
|
|
|
|
locking/virtlockd.service.in \
|
|
|
|
locking/virtlockd.socket.in \
|
|
|
|
locking/virtlockd.pod.in \
|
|
|
|
virtlockd.8.in \
|
2013-08-08 15:06:31 +00:00
|
|
|
locking/virtlockd.aug \
|
|
|
|
locking/virtlockd.conf \
|
|
|
|
locking/test_virtlockd.aug.in \
|
2013-08-08 14:10:38 +00:00
|
|
|
$(NULL)
|
2012-08-02 19:06:50 +00:00
|
|
|
|
2011-07-07 14:02:32 +00:00
|
|
|
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
if LIBVIRT_INIT_SCRIPT_SYSTEMD
|
|
|
|
|
|
|
|
SYSTEMD_UNIT_DIR = /lib/systemd/system
|
|
|
|
|
|
|
|
BUILT_SOURCES += virtlockd.service virtlockd.socket
|
2012-12-13 23:28:27 +00:00
|
|
|
DISTCLEANFILES += virtlockd.service virtlockd.socket
|
2011-07-07 14:02:32 +00:00
|
|
|
|
2012-12-13 23:28:27 +00:00
|
|
|
install-systemd: virtlockd.service virtlockd.socket install-sysconfig
|
|
|
|
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
2013-01-03 21:39:14 +00:00
|
|
|
$(INSTALL_DATA) virtlockd.service \
|
2011-07-07 14:02:32 +00:00
|
|
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/
|
2013-01-03 21:39:14 +00:00
|
|
|
$(INSTALL_DATA) virtlockd.socket \
|
2011-07-07 14:02:32 +00:00
|
|
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/
|
|
|
|
|
|
|
|
uninstall-systemd: uninstall-sysconfig
|
2012-12-13 23:28:27 +00:00
|
|
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/virtlockd.service \
|
|
|
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/virtlockd.socket
|
|
|
|
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
2011-07-07 14:02:32 +00:00
|
|
|
install-systemd:
|
|
|
|
uninstall-systemd:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
|
|
|
else ! WITH_LIBVIRTD
|
2011-07-07 14:02:32 +00:00
|
|
|
install-systemd:
|
|
|
|
uninstall-systemd:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_LIBVIRTD
|
2011-07-07 14:02:32 +00:00
|
|
|
|
|
|
|
virtlockd.service: locking/virtlockd.service.in $(top_builddir)/config.status
|
build: use common .in replacement mechanism
We had several different styles of .in conversion in our Makefiles:
ALLCAPS, @ALLCAPS@, @lower@, ::lower::
Canonicalize on one form, to make it easier to copy and paste
between .in files.
Also, we were using some non-portable sed constructs: \@ is an
undefined escape sequence (it happens to be @ itself in GNU sed,
but POSIX allows it to mean something else), as well as risky
behavior (failure to consistently quote things means a space
in $(sysconfdir) could throw things off; also, Autoconf recommends
using | rather than , or ! in the s||| operator, because | has to
be quoted in shell and is therefore less likely to appear in file
names than , or !).
Fix all of these uses to follow the same syntax.
* daemon/libvirtd.8.in: Switch to @var@.
* tools/virt-xml-validate.in: Likewise.
* tools/virt-pki-validate.in: Likewise.
* src/locking/virtlockd.init.in: Likewise.
* daemon/Makefile.am: Prefer | over ! in sed.
(libvirtd.8): Prefer consistent substitution.
(libvirtd.init, libvirtd.service): Avoid non-portable sed.
* tools/Makefile.am (libvirt-guests.sh, libvirt-guests.init)
(libvirt-guests.service): Likewise.
(virt-xml-validate, virt-pki-validate, virt-sanlock-cleanup):
Prefer consistent capitalization.
* src/Makefile.am (virtlockd.init, virtlockd.service)
(virtlockd.socket): Prefer consistent substitution.
2013-01-04 20:35:04 +00:00
|
|
|
$(AM_V_GEN)sed \
|
|
|
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
|
|
|
< $< > $@-t && \
|
2011-07-07 14:02:32 +00:00
|
|
|
mv $@-t $@
|
|
|
|
|
|
|
|
virtlockd.socket: locking/virtlockd.socket.in $(top_builddir)/config.status
|
build: use common .in replacement mechanism
We had several different styles of .in conversion in our Makefiles:
ALLCAPS, @ALLCAPS@, @lower@, ::lower::
Canonicalize on one form, to make it easier to copy and paste
between .in files.
Also, we were using some non-portable sed constructs: \@ is an
undefined escape sequence (it happens to be @ itself in GNU sed,
but POSIX allows it to mean something else), as well as risky
behavior (failure to consistently quote things means a space
in $(sysconfdir) could throw things off; also, Autoconf recommends
using | rather than , or ! in the s||| operator, because | has to
be quoted in shell and is therefore less likely to appear in file
names than , or !).
Fix all of these uses to follow the same syntax.
* daemon/libvirtd.8.in: Switch to @var@.
* tools/virt-xml-validate.in: Likewise.
* tools/virt-pki-validate.in: Likewise.
* src/locking/virtlockd.init.in: Likewise.
* daemon/Makefile.am: Prefer | over ! in sed.
(libvirtd.8): Prefer consistent substitution.
(libvirtd.init, libvirtd.service): Avoid non-portable sed.
* tools/Makefile.am (libvirt-guests.sh, libvirt-guests.init)
(libvirt-guests.service): Likewise.
(virt-xml-validate, virt-pki-validate, virt-sanlock-cleanup):
Prefer consistent capitalization.
* src/Makefile.am (virtlockd.init, virtlockd.service)
(virtlockd.socket): Prefer consistent substitution.
2013-01-04 20:35:04 +00:00
|
|
|
$(AM_V_GEN)sed \
|
|
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
|
|
< $< > $@-t && \
|
2011-07-07 14:02:32 +00:00
|
|
|
mv $@-t $@
|
|
|
|
|
|
|
|
|
2012-09-20 11:58:07 +00:00
|
|
|
if WITH_SANLOCK
|
2011-07-06 16:30:08 +00:00
|
|
|
lockdriver_LTLIBRARIES += sanlock.la
|
2011-01-18 18:37:45 +00:00
|
|
|
sanlock_la_SOURCES = $(LOCK_DRIVER_SANLOCK_SOURCES)
|
2012-09-18 11:40:13 +00:00
|
|
|
sanlock_la_CFLAGS = -I$(top_srcdir)/src/conf $(AM_CFLAGS)
|
2013-09-01 06:50:58 +00:00
|
|
|
sanlock_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2011-09-19 10:04:59 +00:00
|
|
|
sanlock_la_LIBADD = -lsanlock_client \
|
2011-06-14 08:20:49 +00:00
|
|
|
../gnulib/lib/libgnu.la
|
|
|
|
|
|
|
|
augeas_DATA += locking/libvirt_sanlock.aug
|
2012-05-29 21:49:13 +00:00
|
|
|
augeastest_DATA += test_libvirt_sanlock.aug
|
|
|
|
CLEANFILES += test_libvirt_sanlock.aug
|
2011-06-14 08:20:49 +00:00
|
|
|
|
build: fix 'make distcheck' issues
We had a distributed file (remote_protocol.h, which in turn was
a prereq to remote_driver.c) depending on a generated file
(libvirt_probes.h), which is a no-no for a VPATH build from a
read-only source tree (no wonder 'make distcheck' tests precisely
that situation):
File `libvirt_driver_remote.la' does not exist.
File `libvirt_driver_remote_la-remote_driver.lo' does not exist.
Prerequisite `libvirt_probes.h' is newer than target `../../src/remote/remote_protocol.h'.
Must remake target `../../src/remote/remote_protocol.h'.
Invoking recipe from Makefile:7464 to update target `../../src/remote/remote_protocol.h'.
make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/libvirt-0.9.12/_build/src'
GEN ../../src/remote/remote_protocol.h
cannot create ../../src/remote/remote_protocol.h: Permission denied at ../../src/rpc/genprotocol.pl line 31.
make[3]: *** [../../src/remote/remote_protocol.h] Error 13
Rather than making distributed .c files depend on generated files, we
really want to ensure that compilation into .lo files is not attempted
until the generated files are present, done by this patch. Since there
were two different sets of conditionally generated files that both
feed the .lo file, I had to introduce a new variable REMOTE_DRIVER_PREREQS
to keep automake happy.
After that fix, the next issue was that make treats './foo' and 'foo'
differently in determining whether an implicit %foo rule is applicable,
with the result that locking/qemu-sanlock.conf wasn't properly being
built at the right times. Also, the output for using the .aug test
files was a bit verbose.
After fixing the src directory, the next error is related to the docs
directory, where the tarball is missing a stamp file and thus tries to
regenerate files that are already present:
GEN ../../docs/apibuild.py.stamp
Traceback (most recent call last):
File "../../docs/apibuild.py", line 2511, in <module>
rebuild("libvirt")
File "../../docs/apibuild.py", line 2495, in rebuild
builder.serialize()
File "../../docs/apibuild.py", line 2424, in serialize
output = open(filename, "w")
IOError: [Errno 13] Permission denied: '../../docs/libvirt-api.xml'
make[5]: *** [../../docs/apibuild.py.stamp] Error 1
and fixing that exposed another case of a distributed file (generated
html) depending on a built file (libvirt.h), but only when doing an
in-tree build, because of a file glob.
* src/Makefile.am ($(srcdir)/remote/remote_driver.c): Change...
(libvirt_driver_remote_la-remote_driver.lo): ...to the real
dependency.
($(builddir)/locking/%-sanlock.conf): Drop $(builddir), so that
rule gets run in time for test_libvirt_sanlock.aug.
(test_libvir*.aug): Cater to silent build.
(conf_DATA): Don't ship qemu-sanlock.conf in the tarball, since it
is trivial to regenerate.
* docs/Makefile.am (EXTRA_DIST): Ship our stamp file.
($(APIBUILD_STAMP)): Don't depend on generated file.
2012-05-30 17:30:18 +00:00
|
|
|
locking/%-sanlock.conf: $(srcdir)/locking/sanlock.conf
|
2011-06-29 15:24:12 +00:00
|
|
|
$(AM_V_GEN)$(MKDIR_P) locking ; \
|
2011-06-14 08:20:49 +00:00
|
|
|
cp $< $@
|
|
|
|
|
|
|
|
if WITH_QEMU
|
2012-12-14 10:54:16 +00:00
|
|
|
nodist_conf_DATA += locking/qemu-sanlock.conf
|
2011-06-14 08:20:49 +00:00
|
|
|
BUILT_SOURCES += locking/qemu-sanlock.conf
|
2011-10-11 21:10:17 +00:00
|
|
|
DISTCLEANFILES += locking/qemu-sanlock.conf
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
|
|
|
else ! WITH_SANLOCK
|
2011-06-29 15:24:12 +00:00
|
|
|
EXTRA_DIST += $(LOCK_DRIVER_SANLOCK_SOURCES)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SANLOCK
|
2011-06-29 15:24:12 +00:00
|
|
|
EXTRA_DIST += locking/sanlock.conf \
|
|
|
|
locking/libvirt_sanlock.aug \
|
Autogenerate augeas test case from default config files
When adding new config file parameters, the corresponding
additions to the augeas lens' are constantly forgotten.
Also there are augeas test cases, these don't catch the
error, since they too are never updated.
To address this, the augeas test cases need to be auto-generated
from the example config files.
* build-aux/augeas-gentest.pl: Helper to generate an
augeas test file, substituting in elements from the
example config files
* src/Makefile.am, daemon/Makefile.am: Switch to
auto-generated augeas test cases
* daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in,
src/locking/test_libvirt_sanlock.aug,
src/locking/test_libvirt_sanlock.aug.in,
src/lxc/test_libvirtd_lxc.aug,
src/lxc/test_libvirtd_lxc.aug.in,
src/qemu/test_libvirtd_qemu.aug,
src/qemu/test_libvirtd_qemu.aug.in: Remove example
config file data, replacing with a ::CONFIG:: placeholder
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-05-25 10:14:15 +00:00
|
|
|
locking/test_libvirt_sanlock.aug.in
|
2011-01-18 18:37:45 +00:00
|
|
|
|
2011-06-29 15:24:12 +00:00
|
|
|
noinst_LTLIBRARIES += \
|
|
|
|
libvirt-net-rpc.la \
|
|
|
|
libvirt-net-rpc-server.la \
|
|
|
|
libvirt-net-rpc-client.la
|
2010-12-06 17:03:10 +00:00
|
|
|
|
2010-12-10 12:27:33 +00:00
|
|
|
EXTRA_DIST += \
|
2011-10-11 20:33:43 +00:00
|
|
|
dtrace2systemtap.pl \
|
|
|
|
rpc/gendispatch.pl \
|
|
|
|
rpc/genprotocol.pl \
|
|
|
|
rpc/gensystemtap.pl \
|
2011-09-22 10:51:55 +00:00
|
|
|
rpc/virnetprotocol.x \
|
|
|
|
rpc/virkeepaliveprotocol.x
|
2010-12-10 12:27:33 +00:00
|
|
|
|
2011-06-25 02:48:49 +00:00
|
|
|
VIR_NET_RPC_GENERATED = \
|
|
|
|
$(srcdir)/rpc/virnetprotocol.h \
|
2011-09-22 10:51:55 +00:00
|
|
|
$(srcdir)/rpc/virnetprotocol.c \
|
|
|
|
$(srcdir)/rpc/virkeepaliveprotocol.h \
|
|
|
|
$(srcdir)/rpc/virkeepaliveprotocol.c
|
2011-06-24 13:37:25 +00:00
|
|
|
|
2011-06-24 14:04:11 +00:00
|
|
|
BUILT_SOURCES += $(VIR_NET_RPC_GENERATED)
|
2011-06-24 13:37:25 +00:00
|
|
|
|
2010-12-06 17:03:10 +00:00
|
|
|
libvirt_net_rpc_la_SOURCES = \
|
2010-12-06 17:03:22 +00:00
|
|
|
rpc/virnetmessage.h rpc/virnetmessage.c \
|
2010-12-06 17:03:35 +00:00
|
|
|
rpc/virnetprotocol.h rpc/virnetprotocol.c \
|
2010-11-23 20:17:41 +00:00
|
|
|
rpc/virnetsocket.h rpc/virnetsocket.c \
|
2011-09-22 11:40:00 +00:00
|
|
|
rpc/virkeepaliveprotocol.h rpc/virkeepaliveprotocol.c \
|
|
|
|
rpc/virkeepalive.h rpc/virkeepalive.c
|
2013-01-08 21:34:15 +00:00
|
|
|
if WITH_SSH2
|
2011-11-14 14:30:23 +00:00
|
|
|
libvirt_net_rpc_la_SOURCES += \
|
|
|
|
rpc/virnetsshsession.h rpc/virnetsshsession.c
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_SSH2
|
2011-11-14 14:30:23 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
rpc/virnetsshsession.h rpc/virnetsshsession.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SSH2
|
2013-01-08 21:02:05 +00:00
|
|
|
if WITH_GNUTLS
|
2013-01-07 14:54:18 +00:00
|
|
|
libvirt_net_rpc_la_SOURCES += \
|
|
|
|
rpc/virnettlscontext.h rpc/virnettlscontext.c
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_GNUTLS
|
2013-01-07 14:54:18 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
rpc/virnettlscontext.h rpc/virnettlscontext.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_GNUTLS
|
2012-09-20 11:58:29 +00:00
|
|
|
if WITH_SASL
|
2010-12-10 12:21:18 +00:00
|
|
|
libvirt_net_rpc_la_SOURCES += \
|
|
|
|
rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
|
2013-09-04 02:39:16 +00:00
|
|
|
else ! WITH_SASL
|
2010-12-10 12:21:18 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
|
2013-09-04 02:39:16 +00:00
|
|
|
endif ! WITH_SASL
|
2010-12-06 17:03:10 +00:00
|
|
|
libvirt_net_rpc_la_CFLAGS = \
|
2010-11-23 20:17:41 +00:00
|
|
|
$(GNUTLS_CFLAGS) \
|
2010-12-10 12:21:18 +00:00
|
|
|
$(SASL_CFLAGS) \
|
2013-01-08 21:47:55 +00:00
|
|
|
$(SSH2_CFLAGS) \
|
2011-06-28 15:44:59 +00:00
|
|
|
$(XDR_CFLAGS) \
|
2010-12-06 17:03:10 +00:00
|
|
|
$(AM_CFLAGS)
|
|
|
|
libvirt_net_rpc_la_LDFLAGS = \
|
2010-11-23 20:17:41 +00:00
|
|
|
$(GNUTLS_LIBS) \
|
2010-12-10 12:21:18 +00:00
|
|
|
$(SASL_LIBS) \
|
2013-01-08 21:47:55 +00:00
|
|
|
$(SSH2_LIBS)\
|
2013-09-13 15:42:58 +00:00
|
|
|
$(SELINUX_LIBS) \
|
2010-12-06 17:03:10 +00:00
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS)
|
|
|
|
libvirt_net_rpc_la_LIBADD = \
|
|
|
|
$(CYGWIN_EXTRA_LIBADD)
|
|
|
|
|
2010-12-01 16:36:40 +00:00
|
|
|
libvirt_net_rpc_server_la_SOURCES = \
|
|
|
|
rpc/virnetserverprogram.h rpc/virnetserverprogram.c \
|
|
|
|
rpc/virnetserverservice.h rpc/virnetserverservice.c \
|
|
|
|
rpc/virnetserverclient.h rpc/virnetserverclient.c \
|
2012-08-01 23:42:51 +00:00
|
|
|
rpc/virnetservermdns.h rpc/virnetservermdns.c \
|
2010-12-01 16:36:40 +00:00
|
|
|
rpc/virnetserver.h rpc/virnetserver.c
|
|
|
|
libvirt_net_rpc_server_la_CFLAGS = \
|
2011-03-02 17:11:42 +00:00
|
|
|
$(AVAHI_CFLAGS) \
|
2012-10-31 19:03:55 +00:00
|
|
|
$(DBUS_CFLAGS) \
|
2011-07-29 19:16:29 +00:00
|
|
|
$(XDR_CFLAGS) \
|
2011-07-07 21:12:26 +00:00
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(POLKIT_CFLAGS)
|
2010-12-01 16:36:40 +00:00
|
|
|
libvirt_net_rpc_server_la_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
2011-03-02 17:11:42 +00:00
|
|
|
$(AVAHI_LIBS) \
|
2012-10-31 19:03:55 +00:00
|
|
|
$(DBUS_LIBS) \
|
2011-07-07 21:12:26 +00:00
|
|
|
$(POLKIT_LIBS) \
|
2010-12-01 16:36:40 +00:00
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS)
|
|
|
|
libvirt_net_rpc_server_la_LIBADD = \
|
|
|
|
$(CYGWIN_EXTRA_LIBADD)
|
|
|
|
|
2010-12-01 16:35:50 +00:00
|
|
|
libvirt_net_rpc_client_la_SOURCES = \
|
|
|
|
rpc/virnetclientprogram.h rpc/virnetclientprogram.c \
|
|
|
|
rpc/virnetclientstream.h rpc/virnetclientstream.c \
|
|
|
|
rpc/virnetclient.h rpc/virnetclient.c
|
|
|
|
libvirt_net_rpc_client_la_CFLAGS = \
|
2011-07-29 19:16:29 +00:00
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(XDR_CFLAGS)
|
2010-12-01 16:35:50 +00:00
|
|
|
libvirt_net_rpc_client_la_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) \
|
|
|
|
$(MINGW_EXTRA_LDFLAGS)
|
|
|
|
libvirt_net_rpc_client_la_LIBADD = \
|
|
|
|
$(CYGWIN_EXTRA_LIBADD)
|
2010-12-01 16:36:40 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
libexec_PROGRAMS =
|
|
|
|
|
2011-04-08 03:26:47 +00:00
|
|
|
if WITH_LIBVIRTD
|
2011-02-22 12:05:20 +00:00
|
|
|
libexec_PROGRAMS += libvirt_iohelper
|
|
|
|
libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_iohelper_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(PIE_LDFLAGS) \
|
|
|
|
$(NULL)
|
2011-02-22 12:05:20 +00:00
|
|
|
libvirt_iohelper_LDADD = \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la
|
2012-10-29 20:17:03 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
|
|
|
libvirt_iohelper_LDADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2011-02-22 12:05:20 +00:00
|
|
|
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_iohelper_CFLAGS = \
|
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(PIE_CFLAGS) \
|
|
|
|
$(NULL)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2011-02-22 12:05:20 +00:00
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
if WITH_STORAGE_DISK
|
2008-04-18 08:33:23 +00:00
|
|
|
if WITH_LIBVIRTD
|
2008-08-20 20:55:32 +00:00
|
|
|
libexec_PROGRAMS += libvirt_parthelper
|
2008-02-20 15:52:17 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_parthelper_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(PIE_LDFLAGS) \
|
|
|
|
$(NULL)
|
2010-07-08 22:04:26 +00:00
|
|
|
libvirt_parthelper_LDADD = \
|
|
|
|
$(LIBPARTED_LIBS) \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la
|
2012-10-29 20:17:03 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
|
|
|
libvirt_parthelper_LDADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2010-07-08 22:04:26 +00:00
|
|
|
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_parthelper_CFLAGS = \
|
|
|
|
$(LIBPARTED_CFLAGS) \
|
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(PIE_CFLAGS) \
|
|
|
|
$(NULL)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
|
|
|
endif WITH_STORAGE_DISK
|
2008-08-20 20:48:35 +00:00
|
|
|
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)
|
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
|
2012-09-20 11:58:07 +00:00
|
|
|
if WITH_SANLOCK
|
2012-09-18 11:41:26 +00:00
|
|
|
libexec_PROGRAMS += libvirt_sanlock_helper
|
|
|
|
|
|
|
|
libvirt_sanlock_helper_SOURCES = $(LOCK_DRIVER_SANLOCK_HELPER_SOURCES)
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_sanlock_helper_CFLAGS = \
|
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(PIE_CFLAGS) \
|
|
|
|
$(NULL)
|
|
|
|
libvirt_sanlock_helper_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(PIE_LDFLAGS) \
|
|
|
|
$(NULL)
|
2012-09-18 11:41:26 +00:00
|
|
|
libvirt_sanlock_helper_LDADD = libvirt.la
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SANLOCK
|
2012-09-18 11:41:26 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
if WITH_LXC
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
libexec_PROGRAMS += libvirt_lxc
|
|
|
|
|
|
|
|
libvirt_lxc_SOURCES = \
|
|
|
|
$(LXC_CONTROLLER_SOURCES) \
|
2012-08-03 15:48:05 +00:00
|
|
|
$(NODE_INFO_SOURCES) \
|
|
|
|
$(DATATYPES_SOURCES)
|
2013-04-03 10:32:15 +00:00
|
|
|
libvirt_lxc_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(PIE_LDFLAGS) \
|
|
|
|
$(NULL)
|
2012-07-03 14:37:08 +00:00
|
|
|
libvirt_lxc_LDADD = \
|
2012-11-14 09:39:04 +00:00
|
|
|
$(FUSE_LIBS) \
|
2012-07-03 14:25:30 +00:00
|
|
|
libvirt-net-rpc-server.la \
|
|
|
|
libvirt-net-rpc.la \
|
2012-08-02 10:25:51 +00:00
|
|
|
libvirt_security_manager.la \
|
2012-07-03 14:37:08 +00:00
|
|
|
libvirt_conf.la \
|
|
|
|
libvirt_util.la \
|
2011-02-17 07:29:07 +00:00
|
|
|
../gnulib/lib/libgnu.la
|
2012-02-24 15:10:53 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
2012-05-25 15:57:56 +00:00
|
|
|
libvirt_lxc_LDADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2013-02-01 19:22:26 +00:00
|
|
|
libvirt_lxc_LDADD += $(SECDRIVER_LIBS)
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_lxc_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf \
|
build: add LIBNL_CFLAGS to build of libvirt_lxc
When libvirt_lxc is built, it uses the utility library and #includes
virnetdev.h, which #includes virnetlink.h, which includes
<netlink/msg.h>.
Normally, the netlink include directory would be just off
/usr/include, so that wouldn't create a problem, but on Fedora and
RHEL systems using libnl3, the libnl includes have been moved into
/usr/include/libnl3 (to allow concurrent installation of libnl-1.1).
All other binaries that need it have added $(LIBNL_CFLAGS) to their
CFLAGS, but not libvirt_lxc, so it fails to build on Fedora and RHEL
that have only libnl3-devel installed. This was previously unnoticed
because everyone was building with libnl headers in
/usr/include/netlink (even on systems with the headers in
/usr/include/libnl3/netlink, many people (like me) usually also have
the libnl1.1 headers in /usr/include/netlink).
This patch adds the necessary CFLAGS for libvirt_lxc.
Note that we don't need to add $(LIBNL_LIBS) to the LDADD for this
binary, because it never directly calls libnl functions, but only
calls them indirectly through the util library, which it's already
linking against.
2012-08-25 18:09:55 +00:00
|
|
|
$(AM_CFLAGS) \
|
2013-04-03 10:32:15 +00:00
|
|
|
$(PIE_CFLAGS) \
|
2012-11-14 09:39:04 +00:00
|
|
|
$(LIBNL_CFLAGS) \
|
2013-04-03 10:32:15 +00:00
|
|
|
$(FUSE_CFLAGS) \
|
|
|
|
$(NULL)
|
2012-09-20 14:43:12 +00:00
|
|
|
if WITH_BLKID
|
2011-11-01 14:59:51 +00:00
|
|
|
libvirt_lxc_CFLAGS += $(BLKID_CFLAGS)
|
|
|
|
libvirt_lxc_LDADD += $(BLKID_LIBS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_BLKID
|
2012-01-25 14:12:53 +00:00
|
|
|
if WITH_SECDRIVER_SELINUX
|
|
|
|
libvirt_lxc_CFLAGS += $(SELINUX_CFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_SELINUX
|
2012-02-03 09:49:31 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
|
|
|
libvirt_lxc_CFLAGS += $(APPARMOR_CFLAGS)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SECDRIVER_APPARMOR
|
|
|
|
endif WITH_LIBVIRTD
|
|
|
|
endif WITH_LXC
|
2008-08-20 20:55:32 +00:00
|
|
|
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)
|
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
libexec_PROGRAMS += virt-aa-helper
|
|
|
|
|
|
|
|
virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)
|
|
|
|
|
2013-04-03 10:32:15 +00:00
|
|
|
virt_aa_helper_LDFLAGS = \
|
|
|
|
$(AM_LDFLAGS) \
|
|
|
|
$(PIE_LDFLAGS) \
|
|
|
|
$(NULL)
|
2009-10-08 14:34:22 +00:00
|
|
|
virt_aa_helper_LDADD = \
|
2010-04-26 13:41:07 +00:00
|
|
|
libvirt_conf.la \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la
|
2012-03-01 15:02:31 +00:00
|
|
|
if WITH_DTRACE_PROBES
|
2012-05-25 15:57:56 +00:00
|
|
|
virt_aa_helper_LDADD += libvirt_probes.lo
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_DTRACE_PROBES
|
2009-10-08 14:34:22 +00:00
|
|
|
virt_aa_helper_CFLAGS = \
|
2012-02-02 20:20:09 +00:00
|
|
|
-I$(top_srcdir)/src/conf \
|
|
|
|
-I$(top_srcdir)/src/security \
|
2013-04-03 10:32:15 +00:00
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(PIE_CFLAGS) \
|
|
|
|
$(NULL)
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
|
|
|
endif WITH_SECDRIVER_APPARMOR
|
2009-10-08 14:34:22 +00:00
|
|
|
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)
|
|
|
|
|
2011-07-07 14:02:32 +00:00
|
|
|
install-data-local: install-init install-systemd
|
2012-08-02 19:06:50 +00:00
|
|
|
if WITH_LIBVIRTD
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd"
|
2012-08-14 15:46:08 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd/files"
|
2012-08-02 19:06:50 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/lockd"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
|
2011-11-01 11:21:21 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems"
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
|
2012-09-20 11:58:07 +00:00
|
|
|
if WITH_SANLOCK
|
2011-07-22 08:38:46 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/sanlock"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SANLOCK
|
2009-01-20 22:36:10 +00:00
|
|
|
if WITH_QEMU
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu"
|
2013-04-09 17:04:00 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu/channel/target"
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/qemu"
|
2009-07-15 21:25:01 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
|
2009-09-16 11:31:13 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
2009-01-20 22:36:10 +00:00
|
|
|
if WITH_LXC
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/lxc"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LXC
|
2011-02-10 22:42:34 +00:00
|
|
|
if WITH_LIBXL
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/libxl"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/libxl"
|
2011-04-07 22:01:58 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/libxl"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBXL
|
2009-01-20 22:36:10 +00:00
|
|
|
if WITH_UML
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/uml"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/uml"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UML
|
2012-12-04 10:00:02 +00:00
|
|
|
if WITH_XEN
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/xen"
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XEN
|
2009-01-20 22:36:10 +00:00
|
|
|
if WITH_NETWORK
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/network"
|
2010-04-28 13:38:47 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
|
2013-07-18 15:37:52 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(confdir)/qemu/networks/autostart"
|
2009-09-16 11:31:13 +00:00
|
|
|
$(INSTALL_DATA) $(srcdir)/network/default.xml \
|
2013-07-18 15:37:52 +00:00
|
|
|
$(DESTDIR)$(confdir)/qemu/networks/default.xml
|
2009-09-16 11:31:13 +00:00
|
|
|
test -z "$(UUID)" || \
|
2010-09-10 16:38:17 +00:00
|
|
|
{ sed -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," \
|
2013-07-18 15:37:52 +00:00
|
|
|
$(DESTDIR)$(confdir)/qemu/networks/default.xml > \
|
|
|
|
$(DESTDIR)$(confdir)/qemu/networks/default.xml.t && \
|
|
|
|
cp $(DESTDIR)$(confdir)/qemu/networks/default.xml.t \
|
|
|
|
$(DESTDIR)$(confdir)/qemu/networks/default.xml && \
|
|
|
|
rm $(DESTDIR)$(confdir)/qemu/networks/default.xml.t; }
|
|
|
|
test -e $(DESTDIR)$(confdir)/qemu/networks/autostart/default.xml || \
|
2011-06-29 04:06:48 +00:00
|
|
|
ln -s ../default.xml \
|
2013-07-18 15:37:52 +00:00
|
|
|
$(DESTDIR)$(confdir)/qemu/networks/autostart/default.xml
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETWORK
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2011-07-07 14:02:32 +00:00
|
|
|
uninstall-local:: uninstall-init uninstall-systemd
|
2012-08-02 19:06:50 +00:00
|
|
|
if WITH_LIBVIRTD
|
2012-08-14 15:46:08 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd/files" ||:
|
2012-08-02 19:06:50 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lockd" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBVIRTD
|
2009-09-16 11:31:13 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
|
2011-11-01 11:21:21 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
|
2009-09-16 11:31:13 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
|
2012-09-20 11:58:07 +00:00
|
|
|
if WITH_SANLOCK
|
2011-07-22 08:38:46 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/sanlock" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_SANLOCK
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_QEMU
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/qemu" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_QEMU
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_LXC
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lxc" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LXC
|
2011-02-10 22:42:34 +00:00
|
|
|
if WITH_LIBXL
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/libxl" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/libxl" ||:
|
2011-04-07 22:01:58 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/libxl" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_LIBXL
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_UML
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/uml" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/uml" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_UML
|
2012-12-04 10:00:02 +00:00
|
|
|
if WITH_XEN
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/xen" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_XEN
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_NETWORK
|
2013-07-18 15:37:52 +00:00
|
|
|
rm -f $(DESTDIR)$(confdir)/qemu/networks/autostart/default.xml
|
|
|
|
rm -f $(DESTDIR)$(confdir)/qemu/networks/default.xml
|
|
|
|
rmdir "$(DESTDIR)$(confdir)/qemu/networks/autostart" || :
|
|
|
|
rmdir "$(DESTDIR)$(confdir)/qemu/networks" || :
|
2009-09-16 11:31:13 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/network" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/network" ||:
|
2013-09-04 02:39:16 +00:00
|
|
|
endif WITH_NETWORK
|
2009-09-16 11:31:13 +00:00
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
|
2008-06-10 10:43:28 +00:00
|
|
|
|
Rewrite all the DTrace/SystemTAP probing
The libvirtd daemon had a few crude system tap probes. Some of
these were broken during the RPC rewrite. The new modular RPC
code is structured in a way that allows much more effective
tracing. Instead of trying to hook up the original probes,
define a new set of probes for the RPC and event code.
The master probes file is now src/probes.d. This contains
probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
probes for the poll event loop.
The src/dtrace2systemtap.pl script can convert the probes.d
file into a libvirt_probes.stp file to make use from systemtap
much simpler.
The src/rpc/gensystemtap.pl script can generate a set of
systemtap functions for translating RPC enum values into
printable strings. This works for all RPC header enums (program,
type, status, procedure) and also the authentication enum
The PROBE macro will automatically generate a VIR_DEBUG
statement, so any place with a PROBE can remove any existing
manual DEBUG statements.
* daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
* daemon/libvirtd.h: Remove probe macros
* daemon/Makefile.am: Remove all probe buildings/install
* daemon/remote.c: Update authentication probes
* src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
to generate STP files
* src/internal.h: Add probe macros
* src/probes.d: Master list of probes
* src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
src/util/event_poll.c: Insert probe points, removing any
DEBUG statements that duplicate the info
2011-09-30 13:40:23 +00:00
|
|
|
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
|
|
|
|
DISTCLEANFILES += $(GENERATED_SYM_FILES)
|
2012-07-23 14:45:20 +00:00
|
|
|
MAINTAINERCLEANFILES += $(REMOTE_DRIVER_GENERATED) $(VIR_NET_RPC_GENERATED)
|