Windows support

Instructions for compiling and installing libvirt on Windows.

Binaries

Binaries will be available from the download area (but we don't have binaries at the moment).

Compiling from source

These are the steps to compile libvirt and the other tools from source on Windows.

You will need:

  1. MS Windows. Microsoft makes free (as beer) versions of some of its operating systems available to MSDN subscribers. We used Windows 2008 Server for testing, virtualized under Linux using KVM-53 (earlier versions of KVM and QEMU won't run recent versions of Windows because of lack of full ACPI support, so make sure you have the latest KVM).
  2. Cygwin's setup.exe.
  3. A large amount of free disk space to install Cygwin. Make sure you have 10 GB free to install most Cygwin packages, although if you pare down the list of dependencies you may get away with much less.
  4. A network connection for Windows, since Cygwin downloads packages from the net as it installs.
  5. Libvirt latest version from CVS
  6. The latest source patch from the download area.

These are the steps to take to compile libvirt from source on Windows:

  1. Run Cygwin setup.exe. When it starts up it will show a dialog like this:

    Cygwin Net Release Setup Program
  2. Step through the setup program accepting defaults or making choices as appropriate, until you get to the screen for selecting packages:

    Cygwin Select Packages screen

    The user interface here is very confusing. You have to click the "recycling icon" as shown by the arrow:

    Cygwin Recycling Icon

    which takes the package (and all packages in the subtree) through several states such as "Install", "Reinstall", "Keep", "Skip", "Uninstall", etc.

  3. You can install "All" (everything) or better select just the groups and packages needed. Select the following groups and packages for installation:

    Groups Archive
    Base
    Devel
    Editors
    Mingw
    Perl
    Python
    Shells
    Packages openssh
    sunrpc
  4. Once Cygwin has finished installing, start a Cygwin bash shell (either click on the desktop icon or look for Cygwin bash shell in the Start menu).

    The very first time you start the Cygwin bash shell, you may find you need to run the mkpasswd and mkgroup commands in order to create /etc/passwd and /etc/group files from Windows users. If this is needed then a message is printed in the shell. Note that you need to do this as Windows Administrator.

  5. Check out Libvirt from CVS and apply the latest Windows patch to the source.

  6. Configure libvirt by doing:

    autoreconf
    ./configure --without-xen --without-qemu
    

    (The autoreconf step is probably optional).

    The configure step will tell you if you have all the required parts installed. If something is missing you will need to go back through Cygwin setup and install it.

  7. Rebuild the XDR structures:

    rm qemud/remote_protocol.[ch] qemud/remote_dispatch_*.h
    make -C qemud remote_protocol.c
    
  8. Build:

    make
    

    If this step is not successful, you should post a full report including complete messages to the libvirt mailing list.

  9. Test it. If you have access to a remote machine running Xen or QEMU/KVM, and the libvirt daemon (libvirtd) then you should be able to connect to it and display domains using, eg:

    src/virsh.exe -c qemu://remote/system list --all
    

    Please read more about remote support before sending bug reports, to make sure that any problems are really Windows and not just with remote configuration / security.

  10. You may want to install the library and programs by doing:

    make install