aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* build: define WITH_INTERFACE for the driverDoug Goldstein2012-09-191-1/+1
| | | | | | | | | | | | | | | | | | Based exclusively on work by Eric Blake in a patch posted with the same subject. However some modifications related to comments and my plans to add another backend. Added WITH_INTERFACE as the only automake variable deciding whether to build the driver and using WITH_NETCF to identify that we're wanting to use the netcf library as the backend. * configure.ac: Added with_interface * src/interface/netcf_driver.c: Renamed.. * src/interface/interface_backend_netcf.c: ..to this to match storage. * src/interface/netcf_driver.h: Renamed.. * src/interface/interface_driver.h: ..to this. * daemon/Makefile.am: Respect WITH_INTERFACE and WITH_NETCF. * libvirt.spec.in: Add RPM support for --with-interface
* Fix xen driver following changes to make it statefulJim Fehlig2012-08-311-0/+4
| | | | | | | | | | | | | | | | | | | | | | Recent work to improve support for loadable driver modules introduced a regression in the xen driver. The legacy xen driver is now a stateful, libvirtd driver but was not being registered when building without driver modules. A slight behavior change was also noted in the xen drivers when built as driver modules. Previously, explicitly specifying a connection URI was not necessary, but now Compiled against library: libvirt 0.10.0 Using library: libvirt 0.10.0 Using API: QEMU 0.10.0 error: failed to get the hypervisor version error: internal error Cannot find suitable emulator for x86_64 The xen drivers need to be registered before the qemu driver since the qemu driver will return success with a null connection URI. This ordering is safe since the xen drivers will decline when not running the xen kernel.
* Replace unset REMOTE_PID_FILE with proper valueDoug Goldstein2012-08-151-3/+1
| | | | | | | REMOTE_PID_FILE is no longer used in the source or the build process but the man page still used it resulting in no file name being displayed. The same value that the libvirtd daemon code uses is now used in the man page.
* Fix man page file paths to real pathsDoug Goldstein2012-08-151-3/+3
| | | | | | | | Currently the man page has paths that start with @sysconfdir@, @localstatedir@ and @remote_pid_file@. The sed command attempts to replace these during the build but unfortunately pod2man gets to the files first and escapes the @ character resulting in the sed not working. This removes the @ character and makes the paths correct.
* build: Link security manager into libvirt.soJiri Denemark2012-08-021-1/+0
| | | | | | | | | | | | Security manager is not a dynamically loadable driver, it's a common infrastructure similar to util, conf, cpu, etc. used by individual drivers. Such code is allowed to be linked into libvirt.so. This reverts commit ec5b7bd2ecbf40ceff5b2d4fc00d5cfdfba966a4 and most of aae5cfb69948fddef556f8f5b9f80a444f9c6125. This patch is supposed to fix virdrivermoduletest failures for qemu and lxc drivers as well as libvirtd's ability to load qemu and lxc drivers.
* build: Link security driver into daemonJiri Denemark2012-08-011-0/+1
| | | | | | Commit aae5cfb69948fddef556f8f5b9f80a444f9c6125 removed security driver from libvirt_la but forgot to link it into libvirtd in case libvirt is built without modules.
* Make RPC code generator a little more flexibleDaniel P. Berrange2012-07-301-2/+2
| | | | | | | | | | Update the gendispatch.pl script to get a little closer to being able to generate code for the LXC monitor, by passing in the struct prefix separately from the procedure prefix. Also allow method names using virCapitalLetters instead of vir_underscore_separator Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fixup manpage names and copyright datesLaine Stump2012-07-251-1/+1
| | | | | | | | | | | | | | The copyright dates in the manpages haven't been updated in awhile. Also, when pod2man converts a pod file into a manpage, it will only remove the extension from the filename if it is ".pod". Some of the libvirt pod files are named *.pod.in, and that filename is placed unchanged into the manpage. This patch uses pod2man's --name option to fix that. Believe it or not, there's even a BZ for this: https://bugzilla.redhat.com/show_bug.cgi?id=819364
* Fix libnl CFLAGS/LIBS inclusionDoug Goldstein2012-07-241-2/+3
| | | | | | When using libnl, use the variables pkg-config provides in case there are additional libraries or CFLAGS required to build it. Specifically if the libnl headers are not directly in /usr/include.
* Don't install systemd service files executableGuido Günther2012-06-261-1/+1
| | | | since they aren't. Detected by Debian's lintian.
* build: ensure storage driver is usedEric Blake2012-06-061-1/+1
| | | | | | | | | | | | | | | | | | Commit 1c275e9a accidentally dropped the storage driver from libvirtd, because it depended on a C preprocessor macro that was not defined. Furthermore, if you do './configure --without-storage-dir --with-storage-disk' or any other combination where you explicitly build a subset of storage backends excluding the dir backend, then the build is broken. Based on analysis by Osier Yang. * configure.ac (WITH_STORAGE): Define top-level conditional. * src/Makefile.am (mod_LTLIBRARIES): Build driver even when storage_dir is disabled. * daemon/libvirtd.c: Pick up storage driver for any backend, not just dir. * daemon/Makefile.am (libvirtd_LDADD): Likewise.
* build: use same perl binary throughout buildEric Blake2012-05-301-2/+2
| | | | | | | | | | Some of our rules used $(PERL), while others used 'perl'. Always using the variable allows a developer to point to a different (often better) perl than the default one found on $PATH. * daemon/Makefile.am ($(srcdir)/remote_dispatch.h): s/perl/$(PERL). * src/Makefile.am ($(srcdir)/remote/remote_client_bodies.h) (PDWTAGS, %protocol.c, %_probes.stp): Likewise.
* build: fix testing of augeas files in VPATH buildsEric Blake2012-05-301-3/+5
| | | | | | | | | | | | | | | | | | | | | | | Without this fix, a VPATH build (such as used by ./autobuild.sh) fails with messages like: make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/daemon' ../../build-aux/augeas-gentest.pl libvirtd.conf ../../daemon/test_libvirtd.aug.in test_libvirtd.aug cannot read libvirtd.conf: No such file or directory at ../../build-aux/augeas-gentest.pl line 38. Since the test files are not part of the tarball, we can generate them into the build dir, but rather than create a subdirectory just for the test file, it is easier to test them directly in libvirt.git/src. * daemon/Makefile.am (AUG_GENTEST): Factor out definition. (test_libvirtd.aug): Look for correct file. * src/Makefile.am (AUG_GENTEST): Use $(PERL). (qemu/test_libvirtd_qemu.aug, lxc/test_libvirtd_lxc.aug) (locking/test_libvirt_sanlock.aug): Rename to avoid subdirectories. (check-augeas-qemu, check-augeas-lxc, check-augeas-sanlock): Reflect location of built tests. * configure.ac (PERL): Substitute perl.
* Fix linking to DTrace probes fileDaniel P. Berrange2012-05-281-2/+2
| | | | | | | | | | | | There was no rule forcing libvirt_qemu_probes.o to be built before libvirt_qemu_probes.lo was used. Also libvirtd was still referencing the .o file, rather than the .lo file. Both the .lo and .o file must be listed as DEPENDENCIES, otherwise libtool will unhelpfully delete the .o file once the .lo file is created. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Autogenerate augeas test case from default config filesDaniel P. Berrange2012-05-281-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Split QEMU dtrace probes into separate fileDaniel P. Berrange2012-05-241-1/+4
| | | | | | | | | | | | | | | | | | | When building as driver modules, it is not possible for the QEMU driver module to reference the DTrace/SystemTAP probes linked into the main libvirt.so. Thus we need to move the QEMU probes into a separate file 'libvirt_qemu_probes.d'. Also rename the existing file from 'probes.d' to 'libvirt_probes.d' while we're at it * daemon/Makefile.am, src/internal.h: Include libvirt_probes.h instead of probes.h * src/Makefile.am: Add rules for libvirt_qemu_probes.d * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Include libvirt_qemu_probes.h * src/libvirt_probes.d: Rename from probes.d * src/libvirt_qemu_probes.d: QEMU specific probes formerly in probes.d Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* The policy kit and HAL node device drivers both require aDaniel P. Berrange2012-04-191-1/+2
| | | | | | | | | | | | | | | DBus connection. The HAL device code further requires that the DBus connection is integrated with the event loop and provides such glue logic itself. The forthcoming FirewallD integration also requires a dbus connection with event loop integration. Thus we need to pull the current event loop glue out of the HAL driver. Thus we create src/util/virdbus.{c,h} files. This contains just one method virDBusGetSystemBus() which obtains a handle to the single shared system bus instance, with event glue automagically setup.
* Split libvirtd config file loading out into separate filesDaniel P. Berrange2012-04-101-0/+1
| | | | | | | | | | | To enable creation of unit tests, split the libvirtd config file loading code out into separate files. * daemon/libvirtd.c: Delete config loading code / structs * daemon/libvirtd-config.c, daemon/libvirtd-config.h: Config file loading APIs Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Don't install sysctl file on non-Linux hostsDaniel P. Berrange2012-04-041-0/+5
| | | | | | | | * configure.ac: Set WITH_SYSCTL only on Linux hosts * daemon/Makefile.am: Conditionalize install-sysctl using WITH_SYSCTL Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Cc: Jason Helfman <jhelfman@e-e.com>
* Workaround python header file insanityDaniel P. Berrange2012-02-241-1/+1
| | | | | | | | | | | The /usr/include/python/pyconfig.h file pollutes the global namespace with a huge number of HAVE_XXX and WITH_XXX defines. These change what we detected in our own config.h In particular if you try to build without DTrace, python's headers turn it back on with predictable fail. THe hack to workaround this is to rename WITH_DTRACE to WITH_DTRACE_PROBES to avoid the namespace clash
* build: clean up CPPFLAGS/INCLUDES usageEric Blake2012-02-031-10/+10
| | | | | | | | | | | | | | | | | | | | | Our syntax checker missed all-lower-case variables (this will be fixed by the next .gnulib update). Additionally, anywhere that we mix in-tree files with generated files, automake recommends listing builddir prior to srcdir for VPATH builds. * src/Makefile.am (*_la_CFLAGS): Favor $(top_srcdir). (INCLUDES): Likewise, and follow automake recommendations on builddir before srcdir. * python/Makefile.am (INCLUDES): Swap directory order. * tests/Makefile.am (INCLUDES): Likewise. * tools/Makefile.am (INCLUDES): Likewise. * daemon/Makefile.am (INCLUDES): Likewise. (libvirtd.init, libvirtd.service): Favor $(). * examples/hellolibvirt/Makefile.am (hellolibvirt_LDADD): Likewise. * examples/openauth/Makefile.am (openauth_LDADD): Likewise. * examples/dominfo/Makefile.am (INCLUDES): Drop dead include. * examples/domsuspend/Makefile.am (INCLUDES): Likewise.
* build: follow directory install conventionsEric Blake2011-12-121-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | Commit 4d9e51f6 fixed a 'make uninstall' failure, but failed to follow other conventions already present in src/Makefile.am. In particular, we prefer MKDIR_P over mkdir -p, and should have a matching rmdir during uninstall for every directory created during install (the idea being that uninstall in a DESTDIR should be clean, while installation in the final system should not fail with non-empty directories left behind). * tools/Makefile.am (install-sysconfig, install-initscript) (install-systemd): Use MKDIR_P. (uninstall-sysconfig, uninstall-initscript, uninstall-systemd): Also remove directories. * daemon/Makefile.am (install-data-local, install-data-polkit) (install-logrotate, install-sysconfig, install-sysctl) (install-init-redhat, install-init-upstart, install-init-systemd) (install-data-sasl): Use MKDIR_P. (uninstall-data-polkit, uninstall-sysconfig, uninstall-sysctl) (uninstall-init-redhat, uninstall-init-upstart) (uninstall-init-systemd): Also remove directory. (uninstall-logrotate): New rule. (uninstall-local): Add uninstall-logrotate.
* Fix make uninstallDave Allan2011-12-121-1/+1
| | | | | | | | | | Make uninstall currently fails with the following message: rmdir /etc/sasl2/ rmdir: failed to remove `/etc/sasl2/': Directory not empty That's fine (correct in fact) so force the command to return success with || :
* Add support for systemd init serviceDaniel P. Berrange2011-11-181-23/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for a systemd init service for libvirtd and libvirt-guests. The libvirtd.service is *not* written to use socket activation, since we want libvirtd to start on boot so it can do guest auto-start. The libvirt-guests.service is pretty lame, just exec'ing the original init script for now. Ideally we would factor out the functionality, into some shared tool. Instead of ./configure --with-init-script=redhat You can now do ./configure --with-init-script=systemd Or better still: ./configure --with-init-script=systemd+redhat We can also now support install of the upstart init script * configure.ac: Add systemd, and systemd+redhat options to --with-init-script option * daemon/Makefile.am: Install systemd services * daemon/libvirtd.sysconf: Add note about unused env variable with systemd * daemon/libvirtd.service.in: libvirtd systemd service unit * libvirt.spec.in: Add scripts to installing systemd services and migrating from legacy init scripts * tools/Makefile.am: Install systemd services * tools/libvirt-guests.init.sh: Rename to tools/libvirt-guests.init.in * tools/libvirt-guests.service.in: systemd service unit
* Revert commit 0f590c62Jim Fehlig2011-11-161-4/+0
| | | | | | | | | As noted by Daniel Berrange [1], the proper fix for the older PolicyKit build issue is to add virNetServerGetDBusConn to libvirt_private.syms. Revert unnecessary changes to daemon/Makefile.am [1] https://www.redhat.com/archives/libvir-list/2011-November/msg00852.html
* Fix build with polkit0Jim Fehlig2011-11-151-0/+4
| | | | | | | | | I missed adding libvirt_driver_remote.la to libvirtd_LDADD in commit b8adfcc6, which didn't cause a problem in 0.9.6 but results in this build error in 0.9.7 libvirtd-remote.o: In function `remoteDispatchAuthPolkit': remote.c:(.text+0x188dd): undefined reference to `virNetServerGetDBusConn'
* build: Fix VPATH build with new probesJiri Denemark2011-10-111-1/+1
|
* Rewrite all the DTrace/SystemTAP probingDaniel P. Berrange2011-10-111-22/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Make libvirt.so include the RPC server codeDaniel P. Berrange2011-10-111-2/+0
| | | | | | | | | | To avoid static linking libvirtd to the RPC server code, which then prevents sane introduction of DTrace probes, put it all in the libvirt.so, and export it * daemon/Makefile.am: Don't link to RPC libraries * src/Makefile.am: Link all RPC libraries to libvirt.so * src/libvirt_private.syms: Export all RPC functions
* init: raise default system aio limitsEric Blake2011-10-051-3/+8
| | | | | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=740899 documents that if qemu uses aio=native for its disks, then it consumes 128 aio requests per disk. On a host with multiple guests, this can quickly run out of kernel aio requests with the default aio-max-nr of 65536. Kernel developers have confirmed that there is no up-front cost to raising this limit (a larger limit merely implies that more aio requests can be issued in parallel, which in turn will result in more kernel memory allocation, only if the system really does use that many requests). Since the system default limit prevents 256 disks, which is well within libvirt's current scalability, this patch installs a file to raise the limit and document it in case a system administrator has further cause to tune the limit. The install only works on platforms new enough to source /etc/sysctl.d/* alongside /etc/sysctl.conf (F14 and RHEL 6). * daemon/libvirtd.sysctl: New file. * daemon/Makefile.am (EXTRA_DIST): Ship it. (install-init, uninstall-init): Install it. * libvirt.spec.in (%files): Include it in rpm.
* freebsd: Fix build problem due to picking up the wrong libvirt.hMatthias Bolte2011-07-291-7/+10
| | | | | | | | | | | | | | | | | | Gettext annoyingly modifies CPPFLAGS in-place, putting -I/usr/local/include into the search patch if libintl headers must be used from that location. But since we must support automake 1.9.6 which lacks AM_CPPFLAGS, and since CPPFLAGS is used prior to INCLUDES, this means that the build picks up the _old_ installed libvirt.h in priority to the in-tree version, leading to all sorts of weird build failures on FreeBSD. Fix this by teaching configure to undo gettext's actions, but to keep any changes required by gettext at the end of INCLUDES after all in-tree locations are used first. Also requires adding a wrapper Makefile.am and making gnulib-tool create just gnulib.mk files during the bootstrap process. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: add missing copyright noticesEric Blake2011-07-281-0/+3
| | | | | | | | | I went with the shorter license notice used by src/libvirt.c, rather than spelling out the full LGPLv2+ clause into each of these files. * configure.ac: Declare copyright. * all Makefile.am: Likewise.
* rpc: Make the dispatch generator handle 'void name(void)' style proceduresMatthias Bolte2011-07-211-1/+1
| | | | | | | | | | | | | | | The only 'void name(void)' style procedure in the protocol is 'close' that is handled special, but also programming errors like a missing _args or _ret suffix on the structs in the .x files can create such a situation by accident. Making the generator aware of this avoids bogus errors from the generator such as: Use of uninitialized value in exists at ./rpc/gendispatch.pl line 967. Also this allows to get rid of the -c option and the special case code for the 'close' procedure, as the generator handles it now correctly. Reported by Michal Privoznik
* Convert libvirtd over to the new RPC handling APIsDaniel P. Berrange2011-06-281-66/+11
| | | | | | | | | | | | | | | | | | | | | | | This guts the libvirtd daemon, removing all its networking and RPC handling code. Instead it calls out to the new virServerPtr APIs for all its RPC & networking work As a fallout all libvirtd daemon error reporting now takes place via the normal internal error reporting APIs. There is no need to call separate error reporting APIs in RPC code, nor should code use VIR_WARN/VIR_ERROR for reporting fatal problems anymore. * daemon/qemu_dispatch_*.h, daemon/remote_dispatch_*.h: Remove old generated dispatcher code * daemon/qemu_dispatch.h, daemon/remote_dispatch.h: New dispatch code * daemon/dispatch.c, daemon/dispatch.h: Remove obsoleted code * daemon/remote.c, daemon/remote.h: Rewrite for new dispatch APIs * daemon/libvirtd.c, daemon/libvirtd.h: Remove all networking code * daemon/stream.c, daemon/stream.h: Update for new APIs * daemon/Makefile.am: Link to libvirt-net-rpc-server.la
* Move the RPC generator scripts into src/rpcDaniel P. Berrange2011-06-241-21/+20
| | | | | | | | Move the daemon/remote_generator.pl to src/rpc/gendispatch.pl and move the src/remote/rpcgen_fix.pl to src/rpc/genprotocol.pl * daemon/Makefile.am: Update for new name/location of generator * src/Makefile.am: Update for new name/location of generator
* maint: use consistent file name for threading notesEric Blake2011-05-311-1/+1
| | | | | | * daemon/THREADING.txt: Rename... * daemon/THREADS.txt: ...to match qemu thread notes. * daemon/Makefile.am (EXTRA_DIST): Reflect rename.
* build: generate files when building without libvirtdWen Congyang2011-05-221-53/+53
| | | | | | | | | | | Steps to reproduce this problem: 1. # ./autogen.sh --without-libvirtd 2. # make dist ... make[1]: Entering directory `/home/wency/source/libvirt-nodaemon/daemon' make[1]: *** No rule to make target `remote_dispatch_prototypes.h', needed by `distdir'. Stop. make[1]: Leaving directory `/home/wency/source/libvirt-nodaemon/daemon' make: *** [distdir] Error 1
* build: probes.d and libvirtd.stp should be part of tarballWen Congyang2011-05-141-2/+2
| | | | | | | | | | | | | | | Steps to reproduce this problem: 1. # ./autogen.sh --without-libvirtd 2. # make dist 3. # rpmbuild --nodeps --define "_sourcedir `pwd`" -ba libvirt.spec ... make[2]: Entering directory `/home/wency/rpmbuild/BUILD/libvirt-0.9.1/daemon' make[2]: *** No rule to make target `probes.d', needed by `probes.h'. Stop. make[2]: Leaving directory `/home/wency/rpmbuild/BUILD/libvirt-0.9.1/daemon' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/wency/rpmbuild/BUILD/libvirt-0.9.1' make: *** [all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.WkAD7a (%build)
* fix xdr detection and use with recent glibcChristophe Fergeau2011-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | glibc 2.13.90 has obsoleted its rpc implementation in favour of the one provided by the TI-RPC library: > * The RPC implementation in libc is obsoleted. Old programs keep working > but new programs cannot be linked with the routines in libc anymore. > Programs in need of RPC functionality must be linked against TI-RPC. > The TI-RPC implemtation is IPv6 enabled and there are other benefits. > > Visible changes of this change include (obviously) the inability to > link > programs using RPC functions without referencing the TI-RPC library, > the > removal of the RPC headers from the glibc headers, and the lack of > symbols defined in <rpc/netdb.h> when <netdb.h> is installed. > Implemented by Ulrich Drepper. (from glibc NEWS) Thus with recent glibc, we need to try linking with -ltirpc when looking for the XDR functions. The daemon also needs to use XDR_CFLAGS to be able to find the XDR headers stored in /usr/include/tirpc. When using TI-RPC, there are some warnings about redundant declarations, but the fix probably belongs in other modules: /usr/include/tirpc/rpc/rpcent.h:68:13: warning: redundant redeclaration of 'setrpcent' [-Wredundant-decls] /usr/include/rpc/netdb.h:53:13: note: previous declaration of 'setrpcent' was here /usr/include/tirpc/rpc/rpcent.h:69:13: warning: redundant redeclaration of 'endrpcent' [-Wredundant-decls] /usr/include/rpc/netdb.h:54:13: note: previous declaration of 'endrpcent' was here /usr/include/tirpc/rpc/rpc.h:84:12: warning: redundant redeclaration of 'bindresvport' [-Wredundant-decls] /usr/include/netinet/in.h:440:12: note: previous declaration of 'bindresvport' was here
* build: fix VPATH build with distributed generated filesEric Blake2011-05-111-41/+61
| | | | | | | * daemon/Makefile.am (DAEMON_GENERATED, remote_dispatch_*.h) (qemu_dispatch_*.h): Update to live in srcdir, since they are distributed. Detected by Daniel P. Berrange's autobuilder.
* build: refactor generated RPC filesDaniel P. Berrange2011-05-061-21/+14
| | | | | | | | | | Always generate the rpc files, and require rpcgen during bootstrap. * daemon/Makefile.am: Removed generated files with maintainer-clean target * src/Makefile.am: Removed generated files with maintainer-clean target. Always run 'rpcgen' if generated files are missing
* build: rename generated files to .h, for automake's sakeEric Blake2011-05-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for removing generated files, it is necessary to tell automake that the generated files must be distributed but not directly compiled (since they are included into the body of a larger .c file that is compiled). Hence, even though these files are code and not headers in the strict sense of the word, it is easier to rename them to .h for automake's sake. * daemon/remote_client_bodies.c: Rename to .h. * daemon/qemu_client_bodies.c: Likewise. * src/remote/remote_client_bodies.c: Likewise. * src/remote/qemu_client_bodies.c: Likewise. * daemon/Makefile.am (remote_dispatch_bodies.c) (qemu_dispatch_bodies.c): Rename to .h. (remote.c, EXTRA_DIST): Reflect rename. * daemon/remote.c: Likewise. * daemon/remote_generator.pl: Likewise. * src/Makefile.am (remote/remote_driver.c): Likewise. * src/remote/remote_driver.c: Likewise. * po/POTFILES.in: Likewise. * cfg.mk (exclude_file_name_regexp--sc_require_config_h) (exclude_file_name_regexp--sc_require_config_h_first) (exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF): Likewise.
* remote generator, daemon: Output function bodies tooMatthias Bolte2011-05-061-1/+11
| | | | | | | | | | | | This patch just covers the simple functions without explicit return values. There is more to be handled. The generator collects the members of the XDR argument structs and uses this information to generate the function bodies. Exclude the generated files from offending syntax-checks. Suggested by Richard W.M. Jones
* remote generator: Replace tabs with spaces and rename fileMatthias Bolte2011-05-061-17/+17
| | | | No functional change included, just a whitespace change.
* Experimental libvirtd upstart jobAlan Pevec2011-04-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | To install it, disable libvirtd sysv initscript: chkconfig libvirtd off service libvirtd stop and enable libvirtd upstart job: cp /usr/share/doc/libvirt-*/libvirtd.upstart \ /etc/init/libvirtd.conf initctl reload-configuration initctl start libvirtd Test: initctl status libvirtd libvirtd start/running, process 3929 killall -9 libvirtd initctl status libvirtd libvirtd start/running, process 4047 I looked into the possibility to use the upstart script from Ubuntu or at least getting inspiration from it but that's not possible. "expect daemon" is a nice thing but it only works if the process is defined with exec stanza instead of script ... no script. Unfortunately, with exec stanza environment variables can only be set within upstart script (i.e., configuration in /etc/sysconfig/libvirtd can't work). Hence, we need to use script stanza, source sysconfig, and execute libvirtd without --daemon. For similar reasons we can't use limit stanza and need to handle DAEMON_COREFILE_LIMIT in job's script.
* Fix typo in systemtap tapset directory nameDaniel P. Berrange2011-04-051-1/+1
| | | | | | | | | | | | The systemtap directory for tapsets is called /usr/share/systemtap/tapset Not /usr/share/systemtap/tapsets * daemon/Makefile.am,libvirt.spec.in: s/tapsets/tapset/
* Remove the Open Nebula driverDaniel P. Berrange2011-03-281-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Open Nebula driver has been unmaintained since it was first introduced. The only commits have been for tree-wide cleanups. It also has a major design flaw, in that it only knows about guests that it has created itself, which makes it of very limited use. Discussions wrt evolution of the VMWare ESX driver, concluded that it should limit itself to single-node ESX operation and not try to manage the multi-node architecture of VirtualCenter. Open Nebula is a cluster like Virtual Center, not a single node system, so the same reasoning applies. The DeltaCloud project includes an Open Nebula driver and is a much better fit architecturally, since it is explicitly targetting the distributed multihost cluster scenario. Thus this patch deletes the libvirt Open Nebula driver with the recommendation that people use DeltaCloud for managing it instead. * configure.ac: Remove probe for xmlrpc & --with-one arg * daemon/Makefile.am, daemon/libvirtd.c, src/Makefile.am: Remove ONE driver build * src/opennebula/one_client.c, src/opennebula/one_client.h, src/opennebula/one_conf.c, src/opennebula/one_conf.h, src/opennebula/one_driver.c, src/opennebula/one_driver.c: Delete files * autobuild.sh, libvirt.spec.in, mingw32-libvirt.spec.in: Remove build rules for Open Nebula * docs/drivers.html.in, docs/sitemap.html.in: Remove reference to OpenNebula * docs/drvone.html.in: Delete file
* Add libxenlight driverJim Fehlig2011-03-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new xen driver based on libxenlight [1], which is the primary toolstack starting with Xen 4.1.0. The driver is stateful and runs privileged only. Like the existing xen-unified driver, the libxenlight driver is accessed with xen:// URI. Driver selection is based on the status of xend. If xend is running, the libxenlight driver will not load and xen:// connections are handled by xen-unified. If xend is not running *and* the libxenlight driver is available, xen:// connections are deferred to the libxenlight driver. V6: - Address several code style issues noted by Daniel Veillard - Make drive work with xen:/// URI - Hold domain object reference while domain is injected in libvirt event loop. Race found and fixed by Markus Groß. V5: - Ensure events are unregistered when domain private data is destroyed. Discovered and fixed by Markus Groß. V4: - Handle restart of libvirtd, reconnecting to previously started domains - Rebased to current master - Tested against Xen 4.1 RC7-pre (c/s 22961:c5d121fd35c0) V3: - Reserve vnc port within driver when autoport=yes V2: - Update to Xen 4.1 RC6-pre (c/s 22940:5a4710640f81) - Rebased to current master - Plug memory leaks found by Stefano Stabellini and valgrind - Handle SHUTDOWN_crash domain death event [1] http://lists.xensource.com/archives/html/xen-devel/2009-11/msg00436.html
* build: fix building error when building without libvirtdWen Congyang2011-03-081-6/+7
| | | | | | | | | | | | | | When building libvirt without libvirtd, I receive the following errors: make[1]: Leaving directory `/home/wency/source/test/libvirt/src' (cd daemon && make top_distdir=../libvirt-0.8.8 distdir=../libvirt-0.8.8/daemon \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[1]: Entering directory `/home/wency/source/test/libvirt/daemon' make[1]: *** No rule to make target `libvirtd.8.in', needed by `distdir'. Stop. This bug was caused by commit 6db98a2d. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Eric Blake <eblake@redhat.com>
* Move event code out of the daemon/ into src/util/Daniel P. Berrange2011-03-071-1/+0
| | | | | | | | | | | | The event loop implementation is used by more than just the daemon, so move it into the shared area. * daemon/event.c, src/util/event_poll.c: Renamed * daemon/event.h, src/util/event_poll.h: Renamed * tools/Makefile.am, tools/console.c, tools/virsh.c: Update to use new virEventPoll APIs * daemon/mdns.c, daemon/mdns.c, daemon/Makefile.am: Update to use new virEventPoll APIs