[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 03/10] qemu-ga: Add an configure option to s
From: |
mdroth |
Subject: |
Re: [Qemu-devel] [RFC PATCH 03/10] qemu-ga: Add an configure option to specify path to Windows VSS SDK |
Date: |
Thu, 14 Feb 2013 18:47:53 -0600 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Feb 14, 2013 at 03:10:39PM +0900, Tomoki Sekiyama wrote:
> To enable VSS support in qemu-ga for Windows, header files included in
> VSS SDK is required.
> The VSS support is enabled when the option like below:
> ./configure --with-vss-sdk="/pass/to/VSS SDK"
>
> VSS SDK is available from:
> http://www.microsoft.com/en-us/download/details.aspx?id=23490
>
> To cross-compilie using mingw32 for Linux, you need to setup the SDK on
> Windows environments to extract headers. You can also use wine to run the
> setup of SDK on Linux etc.
>
> Signed-off-by: Tomoki Sekiyama <address@hidden>
> ---
> .gitignore | 1 +
> Makefile | 1 +
> configure | 41 +++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 43 insertions(+)
>
> diff --git a/.gitignore b/.gitignore
> index 53fe9c3..3f450e8 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -77,6 +77,7 @@ fsdev/virtfs-proxy-helper.pod
> *.la
> *.pc
> .libs
> +.sdk
> *.swp
> *.orig
> .pc
> diff --git a/Makefile b/Makefile
> index 0d9099a..fab664f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -252,6 +252,7 @@ distclean: clean
> for d in $(TARGET_DIRS); do \
> rm -rf $$d || exit 1 ; \
> done
> + rm -Rf .sdk
> if test -f pixman/config.log; then make -C pixman distclean; fi
>
> KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \
> diff --git a/configure b/configure
> index e279263..da49c52 100755
> --- a/configure
> +++ b/configure
> @@ -220,6 +220,8 @@ usb_redir=""
> opengl=""
> zlib="yes"
> guest_agent="yes"
> +guest_agent_with_vss="no"
> +vss_win32_sdk=""
> want_tools="yes"
> libiscsi=""
> coroutine=""
> @@ -884,6 +886,8 @@ for opt do
> ;;
> --disable-guest-agent) guest_agent="no"
> ;;
> + --with-vss-sdk=*) vss_win32_sdk="$optarg"
> + ;;
> --enable-tools) want_tools="yes"
> ;;
> --disable-tools) want_tools="no"
> @@ -1142,6 +1146,7 @@ echo " --disable-usb-redir disable usb network
> redirection support"
> echo " --enable-usb-redir enable usb network redirection support"
> echo " --disable-guest-agent disable building of the QEMU Guest Agent"
> echo " --enable-guest-agent enable building of the QEMU Guest Agent"
> +echo " --with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest
> Agent"
> echo " --disable-seccomp disable seccomp support"
> echo " --enable-seccomp enables seccomp support"
> echo " --with-coroutine=BACKEND coroutine backend. Supported options:"
> @@ -2897,6 +2902,38 @@ if test "$usb_redir" != "no" ; then
> fi
>
> ##########################################
> +# check if we have VSS SDK headers for win
> +
> +if test "$mingw32" = "yes" -a "$guest_agent" = "yes" ; then
> + case "$vss_win32_sdk" in
> + "") vss_win32_include="" ;;
> + *\ *) # The SDK is installed in "Program Files" by default, but we cannot
> + # handle path with spaces. So we copy the headers into ".sdk/sdk".
> + vss_win32_include="-I$source_path/.sdk/vss"
> + symlink "$vss_win32_sdk/inc" "$source_path/.sdk/vss/inc"
> + ;;
> + *) vss_win32_include="-I$vss_win32_sdk"
> + esac
> + cat > $TMPC << EOF
> +#define __MIDL_user_allocate_free_DEFINED__
> +#include <inc/win2003/vss.h>
> +int main(void) { return VSS_CTX_BACKUP; }
> +EOF
Hi Tomoki,
Did you happen to run into this issue compiling the test program?
address@hidden qemu-build]$ ls ~/w/vsssdk/inc/win2003/
vdslun.h vsbackup.h vscoordint.idl vsmgmt.idl vsprov.idl
vss.idl vsswprv.idl
vdslun.idl vscoordint.h vsmgmt.h vsprov.h vss.h
vsswprv.h vswriter.h
address@hidden qemu-build]$ cat test.c
#define __MIDL_user_allocate_free_DEFINED__
#include <inc/win2003/vss.h>
int main(void) { return VSS_CTX_BACKUP; }
address@hidden qemu-build]$ gcc -I ~/w/vsssdk/ -o test test.c
In file included from test.c:2:0:
/home/mdroth/w/vsssdk/inc/win2003/vss.h:25:17: fatal error: rpc.h: No
such file or directory
compilation terminated.
I can't seem to locate any mingw or microsoft package that provides that.
It's also not present anywhere on the Wine filesystem I installed the
VSS SDK to.
> + if compile_prog "$vss_win32_include" "" ; then
> + guest_agent_with_vss="yes"
> + QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include"
> + libs_qga="-lole32 -loleaut32 -lshlwapi -luuid -lstdc++
> -Wl,--enable-stdcall-fixup $libs_qga"
> + else
> + if test "$vss_win32_sdk" != "" ; then
> + echo "ERROR: Please download and install Microsoft VSS SDK from"
> + echo "ERROR:
> http://www.microsoft.com/en-us/download/details.aspx?id=23490"
> + feature_not_found "VSS support"
> + fi
> + guest_agent_with_vss="no"
> + fi
> +fi
> +
> +##########################################
>
> ##########################################
> # check if we have fdatasync
> @@ -3343,6 +3380,7 @@ echo "usb net redir $usb_redir"
> echo "OpenGL support $opengl"
> echo "libiscsi support $libiscsi"
> echo "build guest agent $guest_agent"
> +echo "QGA VSS support $guest_agent_with_vss"
> echo "seccomp support $seccomp"
> echo "coroutine backend $coroutine_backend"
> echo "GlusterFS support $glusterfs"
> @@ -3404,6 +3442,9 @@ if test "$mingw32" = "yes" ; then
> version_micro=0
> echo
> "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro"
> >> $config_host_mak
> echo
> "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro"
> >> $config_host_mak
> + if test "$guest_agent_with_vss" = "yes" ; then
> + echo "CONFIG_QGA_VSS=y" >> $config_host_mak
> + fi
> else
> echo "CONFIG_POSIX=y" >> $config_host_mak
> fi
>
[Qemu-devel] [RFC PATCH 01/10] configure: Support configuring c++ compiler, Tomoki Sekiyama, 2013/02/14
[Qemu-devel] [RFC PATCH 06/10] qemu-ga: call Windows VSS requester in fsfreeze command handler, Tomoki Sekiyama, 2013/02/14
[Qemu-devel] [RFC PATCH 05/10] qemu-ga: Add Windows VSS requester to quisce applications and filesystems, Tomoki Sekiyama, 2013/02/14
[Qemu-devel] [RFC PATCH 07/10] qemu-ga: install Windows VSS provider on `qemu-ga -s install', Tomoki Sekiyama, 2013/02/14
[Qemu-devel] [RFC PATCH 09/10] QMP/qemu-ga-client: make timeout longer for guest-fsfreeze-freeze command, Tomoki Sekiyama, 2013/02/14
[Qemu-devel] [RFC PATCH 04/10] qemu-ga: Add Windows VSS provider to quiesce applications on fsfreeze, Tomoki Sekiyama, 2013/02/14