[libvirt] Fix a failure to restore SELinux label for character devices
by Daniel Veillard
The code in SELinuxRestoreSecurityChardevLabel() was trying to
use SELinuxSetFilecon directly for devices or file types while
it should really use SELinuxRestoreSecurityFileLabel encapsulating
routine, which avoid various problems like resolving symlinks,
making sure he file exists and work around NFS problems
Daniel
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index 936a1a6..996177a 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -694,9 +694,10 @@ SELinuxRestoreSecurityChardevLabel(virDomainObjPtr vm,
switch (dev->type) {
case VIR_DOMAIN_CHR_TYPE_DEV:
case VIR_DOMAIN_CHR_TYPE_FILE:
- ret = SELinuxSetFilecon(dev->data.file.path, secdef->imagelabel);
+ if (SELinuxRestoreSecurityFileLabel(dev->data.file.path) < 0)
+ goto done;
+ ret = 0;
break;
-
case VIR_DOMAIN_CHR_TYPE_PIPE:
if ((virAsprintf(&out, "%s.out", dev->data.file.path) < 0) ||
(virAsprintf(&in, "%s.in", dev->data.file.path) < 0)) {
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
14 years, 4 months
[libvirt] [PATCH 0/2] Support the QED disk image format
by Adam Litke
Qemu is about to gain support for a new disk image format: QED. Details on
this format (including specification) can be found here:
http://wiki.qemu.org/Features/QED. This short series of patches allows QED
images to be used with libvirt.
Adam Litke (2):
QED: Basic support for QED images
Support for probing qed image metadata
src/util/storage_file.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++-
src/util/storage_file.h | 1 +
2 files changed, 85 insertions(+), 1 deletions(-)
--
1.7.3.2.164.g6f10c
14 years, 4 months
[libvirt] [PATCH] virsh: tell if domain is updated in dominfo
by Osier Yang
* tools/virsh.c (introduce new information 'Updated' for 'dominfo',
standsfor if a domain is updated via operations like 'update-device',
'update-disk', etc.)
---
tools/virsh.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index ae88cc0..d260443 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1992,6 +1992,7 @@ cmdDominfo(vshControl *ctl, const vshCmd *cmd)
virSecurityModel secmodel;
virSecurityLabel seclabel;
int persistent = 0;
+ int updated = -1;
int ret = TRUE, autostart;
unsigned int id;
char *str, uuid[VIR_UUID_STRING_BUFLEN];
@@ -2053,6 +2054,12 @@ cmdDominfo(vshControl *ctl, const vshCmd *cmd)
else
vshPrint(ctl, "%-15s %s\n", _("Persistent:"), persistent ? _("yes") : _("no"));
+ updated = virDomainIsUpdated(dom);
+ if (updated < 0)
+ vshPrint(ctl, "%-15s %s\n", _("Updated:"), _("unknown"));
+ else
+ vshPrint(ctl, "%-15s %s\n", _("Updated:"), updated ? _("yes") : _("no"));
+
/* Check and display whether the domain autostarts or not */
if (!virDomainGetAutostart(dom, &autostart)) {
vshPrint(ctl, "%-15s %s\n", _("Autostart:"),
--
1.7.3.2
14 years, 4 months
[libvirt] polkit auth issue
by Jim Fehlig
I'm trying to debug a PolicyKit auth issue in libvirt and looking for
some suggestions.
Server has the following policy for user ski52 in
/etc/PolicyKit/PolicyKit.conf :
<match action="org.libvirt.unix.manage">
<match user="ski52">
<return result="auth_self_keep_always"/>
</match>
</match>
I can authenticate via polkit when logged directly into server via ssh
as ski52
ski52@vhost52:~> virsh -c qemu:///system list
Attempting to obtain authorization for org.libvirt.unix.manage.
Authentication is required.
Password:
Successfully obtained the authorization for org.libvirt.unix.manage.
Id Name State
----------------------------------
33 vm1 running
But when using qemu+ssh remotely
ski53@vhost53:~> virsh -c qemu+ssh://ski52@vhost52/system list
Attempting to obtain authorization for org.libvirt.unix.manage.
Authentication as an administrative user is required.
Password:
polkit-grant-helper-pam: pam_authenticated failed: Authentication failure
Failed to obtain authorization for org.libvirt.unix.manage.
error: authentication failed
error: failed to connect to the hypervisor
AFAICT by tracing with gdb, the client calls polkit-auth *locally* when
authentication is needed, instead of invoking polkit-auth on the
server. This backtrace from gdb on the client machine shows
'polkit-auth --obtain' being called locally from virConnectAuthGainPolkit()
#0 virConnectAuthGainPolkit (privilege=0x7ffff7b8b3ba
"org.libvirt.unix.manage") at libvirt.c:111
#1 0x00007ffff7a912a3 in virConnectAuthCallbackDefault
(cred=0x7fffffffdd20, ncred=1, cbdata=0x0)
at libvirt.c:149
#2 0x00007ffff7ac367f in remoteAuthPolkit (conn=0x63ec10,
priv=0x7ffff7e25010, in_open=1,
auth=0x7ffff7dc9bc0) at remote/remote_driver.c:7431
#3 0x00007ffff7ac1d8d in remoteAuthenticate (conn=0x63ec10,
priv=0x7ffff7e25010, in_open=1,
auth=0x7ffff7dc9bc0, authtype=0x0) at remote/remote_driver.c:6864
#4 0x00007ffff7ab5936 in doRemoteOpen (conn=0x63ec10,
priv=0x7ffff7e25010, auth=0x7ffff7dc9bc0, flags=0)
at remote/remote_driver.c:854
..
Has anyone else observed such behavior? Any hints on how to forward the
polkit-auth call to the server? Both client and server are libvirt
0.8.5 btw.
Regards,
Jim
14 years, 4 months
[libvirt] VMware Workstation/Player support
by Jean-Baptiste Rouault
Hi all,
I'm working on the hynesim project (http://www.hynesim.org
http://blog.hynesim.org).
We are going to add VMware Workstation support to hynesim,
so we would like to contribute to the development of a libvirt driver.
There probably are multiple ways of doing this, one of them could
be to use the VIX C API provided by VMware :
http://www.vmware.com/support/developer/vix-api/
However, the VIX license seems to be quite restrictive :
http://www.vmware.com/download/eula/vixapi_eula.html
I'm not a license expert so I don't know if this license forbids
using the API in software like libvirt.
Another possibility could be to run VMware command line tools
from libvirt to control guests.
As Daniel P. Berrange stated on IRC yesterday, the vmx <-> XML
conversion code can be reused from the ESX driver.
I'd like to have your opinion about the "best" to implement this
VMware Workstation driver.
Regards,
Jean-Baptiste Rouault
14 years, 4 months
[libvirt] [PATCH] virt-aa-helper: Fix several compile errors
by Matthias Bolte
Include locale.h for setlocale().
Revert the usage string back to it's original form.
Use puts() instead of fputs(), as fputs() expects a FILE*.
Add closing parenthesis to some vah_error() calls.
Use argv[0] instead of an undefined argv0.
---
src/security/virt-aa-helper.c | 39 ++++++++++++++++++++-------------------
1 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 12adbbb..41bc598 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -26,6 +26,7 @@
#include <getopt.h>
#include <stdbool.h>
#include <sys/utsname.h>
+#include <locale.h>
#include "internal.h"
#include "buf.h"
@@ -84,21 +85,21 @@ vahDeinit(vahControl * ctl)
static void
vah_usage(void)
{
- fprintf(stdout, _("\n%s [options] [< def.xml]\n\n
- Options:\n
- -a | --add load profile\n
- -c | --create create profile from template\n
- -D | --delete unload and delete profile\n
- -f | --add-file <file> add file to profile\n
- -F | --append-file <file> append file to profile\n
- -r | --replace reload profile\n
- -R | --remove unload profile\n
- -h | --help this help\n
- -u | --uuid <uuid> uuid (profile name)\n
-\n", progname);
-
- fputs(_("This command is intended to be used by libvirtd "
- "and not used directly.\n"));
+ printf(_("\n%s [options] [< def.xml]\n\n"
+ " Options:\n"
+ " -a | --add load profile\n"
+ " -c | --create create profile from template\n"
+ " -D | --delete unload and delete profile\n"
+ " -f | --add-file <file> add file to profile\n"
+ " -F | --append-file <file> append file to profile\n"
+ " -r | --replace reload profile\n"
+ " -R | --remove unload profile\n"
+ " -h | --help this help\n"
+ " -u | --uuid <uuid> uuid (profile name)\n"
+ "\n"), progname);
+
+ puts(_("This command is intended to be used by libvirtd "
+ "and not used directly.\n"));
return;
}
@@ -289,7 +290,7 @@ update_include_file(const char *include_file, const char *included_files,
}
if (VIR_CLOSE(fd) != 0) {
- vah_error(NULL, 0, _("failed to close or write to profile")_;
+ vah_error(NULL, 0, _("failed to close or write to profile"));
goto clean;
}
rc = 0;
@@ -396,7 +397,7 @@ create_profile(const char *profile, const char *profile_name,
}
if (VIR_CLOSE(fd) != 0) {
- vah_error(NULL, 0, _("failed to close or write to profile")_;
+ vah_error(NULL, 0, _("failed to close or write to profile"));
goto clean_all;
}
rc = 0;
@@ -1061,7 +1062,7 @@ vahParseArgv(vahControl * ctl, int argc, char **argv)
case 'f':
case 'F':
if ((ctl->newfile = strdup(optarg)) == NULL)
- vah_error(ctl, 1, _("could not allocate memory for disk")_;
+ vah_error(ctl, 1, _("could not allocate memory for disk"));
ctl->append = arg == 'F';
break;
case 'h':
@@ -1140,7 +1141,7 @@ main(int argc, char **argv)
if (setlocale(LC_ALL, "") == NULL ||
bindtextdomain(PACKAGE, LOCALEDIR) == NULL ||
textdomain(PACKAGE) == NULL) {
- fprintf(stderr, _("%s: initialization failed\n"), argv0);
+ fprintf(stderr, _("%s: initialization failed\n"), argv[0]);
exit(EXIT_FAILURE);
}
--
1.7.0.4
14 years, 4 months
[libvirt] [PATCH 0/6] [RFC] Add disk streaming support to libvirt
by Adam Litke
( Those on Cc: sorry for any duplicated messages. git was configured to use
the wrong smtp relay )
I've been working with Anthony Liguori and Stefan Hajnoczi to enable data
streaming to copy-on-read disk images in qemu. This work is working its way
through review and I expect it to be upstream soon as part of the support for
the new QED disk image format.
Disk streaming is extremely useful when provisioning domains from a central
repository of template images. Currently the domain must be provisioned by
either: 1) copying the template image to local storage before the VM can be
started or, 2) creating a qcow2 image that backs to a base image in the remote
repository. Option 1 can introduce a significant delay when provisioning large
disks. Option 2 introduces a permanent dependency on a remote service,
increased network load to satisfy disk reads.
Device streaming provides the "instant-on" benefits of option 2 without
introducing a permanent dependency to the image repository. Once the VM is
started, the contents of the disk can be streamed to the local image in
parallel. Once streaming is finished, the domain has a complete and coherent
copy of the image and no longer depends on the central image repository.
Qemu will support two streaming modes: full device and single sector. Full
device streaming is the easiest to use because one command will cause the whole
device to be streamed as fast as possible. Single sector mode can be used if
one wants to throttle streaming to reduce I/O pressure. In this mode, a
management tool issues individual commands to stream single sectors.
To enable this support in libvirt, I propose the following API...
virDomainStreamDisk() will start or stop a full device stream or stream a
single sector of a device. The behavior is controlled by setting
virDomainStreamDiskFlags. When either starting or stopping a full device
stream, the return value is either 0 or -1 to indicate whether the operation
succeeded. For a single sector stream, a device offset is returned (or -1 on
failure). This value can be used to continue streaming with a subsequent call
to virDomainStreamDisk().
virDomainStreamDiskInfo() returns information about active full device streams
(the device alias, current streaming position, and total size).
While streaming can be used to enable live block migration, this API addresses
the direct streaming use case. If we can agree that the above use case is
compelling on its own, I would prefer to work on the block migration workflow
immediately after this series. In that case, we just need to be careful not to
paint ourselves into a corner with respect to migration, but specifics about
that feature can be discussed later. Does this seem reasonable?
Adam Litke (6):
Add new API virDomainStreamDisk[Info] to header and drivers
virDomainStreamDisk: Add public symbols to libvirt API
Implement disk streaming in the qemu driver
Add disk streaming support to the remote driver
Add new disk streaming commands to virsh
python: Add python bindings for virDomainStreamDisk[Info]
daemon/remote.c | 96 +++++++++++++++++++++
daemon/remote_dispatch_args.h | 2 +
daemon/remote_dispatch_prototypes.h | 16 ++++
daemon/remote_dispatch_ret.h | 2 +
daemon/remote_dispatch_table.h | 10 ++
include/libvirt/libvirt.h.in | 34 ++++++++
python/generator.py | 1 +
python/libvirt-override-api.xml | 5 +
python/libvirt-override.c | 46 ++++++++++
src/driver.h | 11 +++
src/esx/esx_driver.c | 2 +
src/libvirt.c | 121 +++++++++++++++++++++++++++
src/libvirt_public.syms | 6 ++
src/lxc/lxc_driver.c | 2 +
src/opennebula/one_driver.c | 2 +
src/openvz/openvz_driver.c | 2 +
src/phyp/phyp_driver.c | 2 +
src/qemu/qemu_driver.c | 75 +++++++++++++++++
src/qemu/qemu_monitor.c | 41 +++++++++
src/qemu/qemu_monitor.h | 6 ++
src/qemu/qemu_monitor_json.c | 104 +++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 7 ++
src/qemu/qemu_monitor_text.c | 156 ++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_text.h | 8 ++
src/remote/remote_driver.c | 85 +++++++++++++++++++
src/remote/remote_protocol.c | 63 ++++++++++++++
src/remote/remote_protocol.h | 51 +++++++++++
src/remote/remote_protocol.x | 37 ++++++++-
src/test/test_driver.c | 2 +
src/uml/uml_driver.c | 2 +
src/vbox/vbox_tmpl.c | 2 +
src/xen/xen_driver.c | 2 +
tools/virsh.c | 157 +++++++++++++++++++++++++++++++++++
33 files changed, 1157 insertions(+), 1 deletions(-)
--
1.7.3.2.164.g6f10c
14 years, 4 months
[libvirt] [PATCH] build: fix autobuild failures on gcov upgrade
by Eric Blake
* autobuild.sh: Avoid syntax error on failed test.
* tools/Makefile.am (CLEANFILES): Clean coverage files.
---
Pushing under the build-breaker rule. Last time I ran ./autobuild.sh
was on F13; and upgrading to F14 exposed these leftovers due to a
newer gcov than what was in the stale files, in the form of spurious
messages that break 'make check':
+profiling:/home/remote/eblake/libvirt-tmp/tools/virsh-console.gcda:Version mismatch - expected 405R got 404R
and concluding with a bug in the autobuild.sh script itself:
./autobuild.sh: line 44: test: =: unary operator expected
autobuild.sh | 2 +-
tools/Makefile.am | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/autobuild.sh b/autobuild.sh
index 130f72d..8248a59 100755
--- a/autobuild.sh
+++ b/autobuild.sh
@@ -41,7 +41,7 @@ st=$(
{ make check syntax-check 2>&1; echo $? >&4; } | tee "$RESULTS"
)
exec 3>&-
-test $st = 0
+test "$st" = 0
test -x /usr/bin/lcov && make cov
rm -f *.tar.gz
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 376ffa8..8a5fb52 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -160,5 +160,6 @@ endif # LIBVIRT_INIT_SCRIPT_RED_HAT
CLEANFILES = $(bin_SCRIPTS) $(man1_MANS)
+CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
DISTCLEANFILES = $(BUILT_SOURCES)
--
1.7.3.2
14 years, 4 months
[libvirt] [PATCH] docs: added compiling page and significantly expanded windows page
by Justin Clift
Also added an additional menu placement for the windows page, in
order to attract further potential testers.
---
docs/compiling.html.in | 48 ++++++++++++++++++++++++
docs/downloads.html.in | 41 +--------------------
docs/sitemap.html.in | 10 +++++
docs/windows.html.in | 95 +++++++++++++++++++++++++++++++++++++++++-------
4 files changed, 142 insertions(+), 52 deletions(-)
create mode 100644 docs/compiling.html.in
diff --git a/docs/compiling.html.in b/docs/compiling.html.in
new file mode 100644
index 0000000..471f52d
--- /dev/null
+++ b/docs/compiling.html.in
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<html>
+ <body>
+ <h1><a name="installation">libvirt Installation</a></h1>
+
+ <ul id="toc"></ul>
+
+ <h2><a name="Compilatio">Compiling a release tarball</a></h2>
+
+ <p>
+ libvirt uses the standard configure/make/install steps:
+ </p>
+
+ <pre>
+ gunzip -c libvirt-xxx.tar.gz | tar xvf -
+ cd libvirt-xxxx
+ ./configure --help</pre>
+
+ <p>
+ To see the options, then the compilation/installation proper:
+ </p>
+
+ <pre>
+ ./configure [possible options]
+ make
+ make install</pre>
+
+ <p>
+ At that point you may have to rerun ldconfig or a similar utility to
+ update your list of installed shared libs.
+ </p>
+
+ <h2><a name="build">Building from a GIT checkout</a></h2>
+
+ <p>
+ The libvirt build process uses GNU autotools, so after obtaining a
+ checkout it is necessary to generate the configure script and Makefile.in
+ templates using the <code>autogen.sh</code> command, passing the extra
+ arguments as for configure. As an example, to do a complete build and
+ install it into your home directory run:
+ </p>
+
+ <pre>
+ ./autogen.sh --prefix=$HOME/usr --enable-compile-warnings=error
+ make
+ make install</pre>
+ </body>
+</html>
diff --git a/docs/downloads.html.in b/docs/downloads.html.in
index 709bee8..64a16c9 100644
--- a/docs/downloads.html.in
+++ b/docs/downloads.html.in
@@ -91,46 +91,9 @@
<br />
- <h1><a name="installation">libvirt Installation</a></h1>
-
- <h2><a name="Compilatio">Compiling a release tarball</a></h2>
-
- <p>
- libvirt uses the standard configure/make/install steps:
- </p>
-
- <pre>
- gunzip -c libvirt-xxx.tar.gz | tar xvf -
- cd libvirt-xxxx
- ./configure --help</pre>
-
- <p>
- To see the options, then the compilation/installation proper:
- </p>
-
- <pre>
- ./configure [possible options]
- make
- make install</pre>
-
<p>
- At that point you may have to rerun ldconfig or a similar utility to
- update your list of installed shared libs.
+ Once you've have obtained the libvirt source code, you can compile it
+ using the <a href="compiling.html">instructions here</a>.
</p>
-
- <h2><a name="build">Building from a GIT checkout</a></h2>
-
- <p>
- The libvirt build process uses GNU autotools, so after obtaining a
- checkout it is necessary to generate the configure script and Makefile.in
- templates using the <code>autogen.sh</code> command, passing the extra
- arguments as for configure. As an example, to do a complete build and
- install it into your home directory run:
- </p>
-
- <pre>
- ./autogen.sh --prefix=$HOME/usr --enable-compile-warnings=error
- make
- make install</pre>
</body>
</html>
diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index 692da29..bd39e10 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -21,12 +21,22 @@
<li>
<a href="downloads.html">Downloads</a>
<span>Get the latest source releases, binary builds and get access to the source repository</span>
+ <ul>
+ <li>
+ <a href="windows.html">Windows</a>
+ <span>Downloads for Windows</span>
+ </li>
+ </ul>
</li>
<li>
<a href="docs.html">Documentation</a>
<span>Information for users, administrators and developers</span>
<ul>
<li>
+ <a href="compiling.html">Compiling</a>
+ <span>How to compile libvirt</span>
+ </li>
+ <li>
<a href="deployment.html">Deployment</a>
<span>Information about deploying and using libvirt</span>
<ul>
diff --git a/docs/windows.html.in b/docs/windows.html.in
index 8ca6b0d..f973d76 100644
--- a/docs/windows.html.in
+++ b/docs/windows.html.in
@@ -3,20 +3,93 @@
<body>
<h1 >Windows support</h1>
+ <ul id="toc"></ul>
+
+ <p>
+ Libvirt is known to work as a client (not server) on Windows XP
+ (32-bit), Windows 7 (64-bit), and other Windows variants.
+ </p>
+
+ <h2><a name="installer">Experimental installation package</a></h2>
+
+ <p>
+ A windows installation package is in development. An experimental
+ first version is available here:
+ </p>
+
+ <a href="http://libvirt.org/sources/win32_experimental/Libvirt-0.8.5-0.exe">http://libvirt.org/sources/win32_experimental/Libvirt-0.8.5-0.exe</a>
+
<p>
- Libvirt can be compiled on Windows
- using the free <a href="http://www.mingw.org/">MinGW compiler</a>.
- You can also cross-compile to a Windows target
- from a Fedora machine using the packages available
- <a href="http://hg.et.redhat.com/misc/fedora-mingw--devel/">from
- the Fedora MinGW project</a>
+ <b>It is not production ready.</b>
+ </p>
+
+ <p>
+ This version includes the libvirt development headers and libraries
+ for compiling against, the virsh shell with it's needed dependencies,
+ and untested Python bindings.
+ </p>
+
+ <h3><a name="caveats">Caveats</h3>
+
+ <ul>
+ <li>
+ This installer just repackages the files compiled using Matthias
+ Bolte's msys_setup scripting (described below).
+ </li>
+ <li>
+ This is a .exe installer, created using NSIS. We're looking into
+ something to create .msi installers as well.
+ </li>
+ <li>
+ The working connection types at the moment are very limited. Only
+ <b>qemu+tcp://</b> is known to work for sure. Anything using SSH,
+ such as <b>qemu+ssh://</b>, definitely doesn't work. Connecting
+ to ESX servers doesn't yet work either, due to a bug involving
+ GnuTLS, which should be fixed in the next release.
+ </li>
+ <li>
+ The script for the NSIS installer is available online
+ <a href="https://github.com/justinclift/nsis_libvirt_installer">here</a>.
+ </li>
+ </ul>
+
+ <h3><a name="feedback">Feedback</h3>
+
+ <p>
+ Feedback and suggestions on changes to make and what else to include
+ <a href="contact.html">are desired</a>.
+
+ <h2><a name="compiling">Compiling yourself</a></h2>
+
+ <p>
+ Libvirt can be compiled on Windows using the free
+ <a href="http://www.mingw.org/">MinGW compiler</a>.
+ </p>
+
+ <h3><a name="msys_setup">MSYS Build script</a></h3>
+
+ <p>
+ The easiest way is to use the <b>msys_setup</b> script, developed by
+ Matthias Bolte. This is actively developed and kept current with
+ libvirt releases:
+ </p>
+
+ <a href="https://github.com/photron/msys_setup">https://github.com/photron/msys_setup</a>
+
+ <h3><a name="cross-compile">Cross compiling</a></h3>
+
+ <p>
+ You can also cross-compile to a Windows target from a Fedora machine
+ using the packages available
+ <a href="http://hg.et.redhat.com/misc/fedora-mingw--devel/">from the Fedora MinGW project</a>
(which includes a working libvirt specfile).
</p>
+ <h3><a name="configure">By hand</a></h3>
+
<p>
- Libvirt can only be built as a client on Windows
- allowing remote access to systems libvirt servers.
- Configure libvirt like this:
+ Use these options when following the instructions on the
+ <a href="compiling.html">Compiling</a> page.
</p>
<pre>
@@ -32,9 +105,5 @@
--without-libvirtd
</pre>
- <p>
- We intend to supply Windows binaries on this page
- later, but at the moment you have to compile from source.
- </p>
</body>
</html>
--
1.7.3
14 years, 4 months