Message ID | 1438624464-22770-4-git-send-email-leonid@daynix.com |
---|---|
State | New |
Headers | show |
You could just use generated GUID with * now, with that Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Quoting Leonid Bloch (2015-08-03 12:54:23) > This is done to follow the recommendations given here: https://msdn.microsoft.com/en-us/library/aa368269%28VS.85%29.aspx > > Signed-off-by: Leonid Bloch <leonid@daynix.com> > --- > qga/installer/qemu-ga.wxs | 47 ++++++++++++++++++++++++++++++++++++----------- > 1 file changed, 36 insertions(+), 11 deletions(-) > > diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs > index dac1df0..2302745 100644 > --- a/qga/installer/qemu-ga.wxs > +++ b/qga/installer/qemu-ga.wxs > @@ -71,16 +71,6 @@ > <Directory Id="qemu_ga_directory" Name="Qemu-ga"> > <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}"> > <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="../../qemu-ga.exe" KeyPath="yes" DiskId="1"/> > - <?ifdef var.InstallVss ?> > - <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="no" DiskId="1"/> > - <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="../vss-win32/qga-vss.tlb" KeyPath="no" DiskId="1"/> > - <?endif?> > - <File Id="iconv.dll" Name="iconv.dll" Source="$(var.Mingw_bin)/iconv.dll" KeyPath="no" DiskId="1"/> > - <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.Mingw_bin)/$(var.ArchLib)" KeyPath="no" DiskId="1"/> > - <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.Mingw_bin)/libglib-2.0-0.dll" KeyPath="no" DiskId="1"/> > - <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.Mingw_bin)/libintl-8.dll" KeyPath="no" DiskId="1"/> > - <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.Mingw_bin)/libssp-0.dll" KeyPath="no" DiskId="1"/> > - <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.Mingw_bin)/libwinpthread-1.dll" KeyPath="no" DiskId="1"/> > <ServiceInstall > Id="ServiceInstaller" > Type="ownProcess" > @@ -97,7 +87,32 @@ > </ServiceInstall> > <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="no" /> > </Component> > - > + <?ifdef var.InstallVss?> > + <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"> > + <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/> Is there a reason these paths are seemingly relative to qga/installer/qemu-ga.wxs? I'd imagine that works for running wixl command within that directly, but top-level Makefile 'msi' ends up bombing if I do 'make msi': [mdroth@vm4 qemu-build-w64]$ ../w/qemu4.git/configure --cross-prefix=x86_64-w64-mingw32- \ --with-vss-sdk=/home/mdroth/w/vss-win32/ --target-list=x86_64-softmmu --extra-cflags=-Wall --enable-guest-agent --enable-guest-agent-msi ... [mdroth@vm4 qemu-build-w64]$ make -j4 qemu ... CC trace/generated-events.o AR libqemustub.a CC qemu-img.o CC qmp-marshal.o AR libqemuutil.a LINK qemu-ga.exe LINK qemu-img.exe LINK qemu-io.exe ... [mdroth@vm4 qemu-build-w64]$ make msi LEX convert-dtsv0-lexer.lex.c make[1]: flex: Command not found BISON dtc-parser.tab.c make[1]: bison: Command not found LEX dtc-lexer.lex.c make[1]: flex: Command not found WIXL qemu-ga-x86_64.msi Couldn't find file ../../qemu-ga.exe make: *** [qemu-ga-x86_64.msi] Error 1 The fix seems simple enough, but I want to make sure I'm not doing something stupid and have some idea of how people are using the current MSI installer code.
Quoting Michael Roth (2015-08-25 16:48:25) > Quoting Leonid Bloch (2015-08-03 12:54:23) > > This is done to follow the recommendations given here: https://msdn.microsoft.com/en-us/library/aa368269%28VS.85%29.aspx > > > > Signed-off-by: Leonid Bloch <leonid@daynix.com> > > --- > > qga/installer/qemu-ga.wxs | 47 ++++++++++++++++++++++++++++++++++++----------- > > 1 file changed, 36 insertions(+), 11 deletions(-) > > > > diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs > > index dac1df0..2302745 100644 > > --- a/qga/installer/qemu-ga.wxs > > +++ b/qga/installer/qemu-ga.wxs > > @@ -71,16 +71,6 @@ > > <Directory Id="qemu_ga_directory" Name="Qemu-ga"> > > <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}"> > > <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="../../qemu-ga.exe" KeyPath="yes" DiskId="1"/> > > - <?ifdef var.InstallVss ?> > > - <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="no" DiskId="1"/> > > - <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="../vss-win32/qga-vss.tlb" KeyPath="no" DiskId="1"/> > > - <?endif?> > > - <File Id="iconv.dll" Name="iconv.dll" Source="$(var.Mingw_bin)/iconv.dll" KeyPath="no" DiskId="1"/> > > - <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.Mingw_bin)/$(var.ArchLib)" KeyPath="no" DiskId="1"/> > > - <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.Mingw_bin)/libglib-2.0-0.dll" KeyPath="no" DiskId="1"/> > > - <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.Mingw_bin)/libintl-8.dll" KeyPath="no" DiskId="1"/> > > - <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.Mingw_bin)/libssp-0.dll" KeyPath="no" DiskId="1"/> > > - <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.Mingw_bin)/libwinpthread-1.dll" KeyPath="no" DiskId="1"/> > > <ServiceInstall > > Id="ServiceInstaller" > > Type="ownProcess" > > @@ -97,7 +87,32 @@ > > </ServiceInstall> > > <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="no" /> > > </Component> > > - > > + <?ifdef var.InstallVss?> > > + <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"> > > + <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/> > > Is there a reason these paths are seemingly relative to > qga/installer/qemu-ga.wxs? I'd imagine that works for running wixl > command within that directly, but top-level Makefile 'msi' ends up *'msi' target *within that directory > bombing if I do 'make msi': > > [mdroth@vm4 qemu-build-w64]$ ../w/qemu4.git/configure --cross-prefix=x86_64-w64-mingw32- \ > --with-vss-sdk=/home/mdroth/w/vss-win32/ --target-list=x86_64-softmmu > --extra-cflags=-Wall --enable-guest-agent --enable-guest-agent-msi > ... > > [mdroth@vm4 qemu-build-w64]$ make -j4 qemu `make -j4` was the command, not sure how that 'qemu' slipped in. > ... > CC trace/generated-events.o > AR libqemustub.a > CC qemu-img.o > CC qmp-marshal.o > AR libqemuutil.a > LINK qemu-ga.exe > LINK qemu-img.exe > LINK qemu-io.exe > ... > > [mdroth@vm4 qemu-build-w64]$ make msi > LEX convert-dtsv0-lexer.lex.c > make[1]: flex: Command not found > BISON dtc-parser.tab.c > make[1]: bison: Command not found > LEX dtc-lexer.lex.c > make[1]: flex: Command not found > WIXL qemu-ga-x86_64.msi > Couldn't find file ../../qemu-ga.exe > make: *** [qemu-ga-x86_64.msi] Error 1 > > The fix seems simple enough, but I want to make sure I'm not doing something > stupid and have some idea of how people are using the current MSI installer > code. > >
Thanks for pointing that out, Michael! This indeed happens when configure is called out of tree. But this bug was not introduced with this series of patches, so it is irrelevant here. We will issue another patch to address it shortly. Thanks again, Leonid. On Wed, Aug 26, 2015 at 12:48 AM, Michael Roth <mdroth@linux.vnet.ibm.com> wrote: > Quoting Leonid Bloch (2015-08-03 12:54:23) >> This is done to follow the recommendations given here: https://msdn.microsoft.com/en-us/library/aa368269%28VS.85%29.aspx >> >> Signed-off-by: Leonid Bloch <leonid@daynix.com> >> --- >> qga/installer/qemu-ga.wxs | 47 ++++++++++++++++++++++++++++++++++++----------- >> 1 file changed, 36 insertions(+), 11 deletions(-) >> >> diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs >> index dac1df0..2302745 100644 >> --- a/qga/installer/qemu-ga.wxs >> +++ b/qga/installer/qemu-ga.wxs >> @@ -71,16 +71,6 @@ >> <Directory Id="qemu_ga_directory" Name="Qemu-ga"> >> <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}"> >> <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="../../qemu-ga.exe" KeyPath="yes" DiskId="1"/> >> - <?ifdef var.InstallVss ?> >> - <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="no" DiskId="1"/> >> - <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="../vss-win32/qga-vss.tlb" KeyPath="no" DiskId="1"/> >> - <?endif?> >> - <File Id="iconv.dll" Name="iconv.dll" Source="$(var.Mingw_bin)/iconv.dll" KeyPath="no" DiskId="1"/> >> - <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.Mingw_bin)/$(var.ArchLib)" KeyPath="no" DiskId="1"/> >> - <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.Mingw_bin)/libglib-2.0-0.dll" KeyPath="no" DiskId="1"/> >> - <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.Mingw_bin)/libintl-8.dll" KeyPath="no" DiskId="1"/> >> - <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.Mingw_bin)/libssp-0.dll" KeyPath="no" DiskId="1"/> >> - <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.Mingw_bin)/libwinpthread-1.dll" KeyPath="no" DiskId="1"/> >> <ServiceInstall >> Id="ServiceInstaller" >> Type="ownProcess" >> @@ -97,7 +87,32 @@ >> </ServiceInstall> >> <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="no" /> >> </Component> >> - >> + <?ifdef var.InstallVss?> >> + <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"> >> + <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/> > > Is there a reason these paths are seemingly relative to > qga/installer/qemu-ga.wxs? I'd imagine that works for running wixl > command within that directly, but top-level Makefile 'msi' ends up > bombing if I do 'make msi': > > [mdroth@vm4 qemu-build-w64]$ ../w/qemu4.git/configure --cross-prefix=x86_64-w64-mingw32- \ > --with-vss-sdk=/home/mdroth/w/vss-win32/ --target-list=x86_64-softmmu > --extra-cflags=-Wall --enable-guest-agent --enable-guest-agent-msi > ... > > [mdroth@vm4 qemu-build-w64]$ make -j4 qemu > ... > CC trace/generated-events.o > AR libqemustub.a > CC qemu-img.o > CC qmp-marshal.o > AR libqemuutil.a > LINK qemu-ga.exe > LINK qemu-img.exe > LINK qemu-io.exe > ... > > [mdroth@vm4 qemu-build-w64]$ make msi > LEX convert-dtsv0-lexer.lex.c > make[1]: flex: Command not found > BISON dtc-parser.tab.c > make[1]: bison: Command not found > LEX dtc-lexer.lex.c > make[1]: flex: Command not found > WIXL qemu-ga-x86_64.msi > Couldn't find file ../../qemu-ga.exe > make: *** [qemu-ga-x86_64.msi] Error 1 > > The fix seems simple enough, but I want to make sure I'm not doing something > stupid and have some idea of how people are using the current MSI installer > code. >
diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs index dac1df0..2302745 100644 --- a/qga/installer/qemu-ga.wxs +++ b/qga/installer/qemu-ga.wxs @@ -71,16 +71,6 @@ <Directory Id="qemu_ga_directory" Name="Qemu-ga"> <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}"> <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="../../qemu-ga.exe" KeyPath="yes" DiskId="1"/> - <?ifdef var.InstallVss ?> - <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="no" DiskId="1"/> - <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="../vss-win32/qga-vss.tlb" KeyPath="no" DiskId="1"/> - <?endif?> - <File Id="iconv.dll" Name="iconv.dll" Source="$(var.Mingw_bin)/iconv.dll" KeyPath="no" DiskId="1"/> - <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.Mingw_bin)/$(var.ArchLib)" KeyPath="no" DiskId="1"/> - <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.Mingw_bin)/libglib-2.0-0.dll" KeyPath="no" DiskId="1"/> - <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.Mingw_bin)/libintl-8.dll" KeyPath="no" DiskId="1"/> - <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.Mingw_bin)/libssp-0.dll" KeyPath="no" DiskId="1"/> - <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.Mingw_bin)/libwinpthread-1.dll" KeyPath="no" DiskId="1"/> <ServiceInstall Id="ServiceInstaller" Type="ownProcess" @@ -97,7 +87,32 @@ </ServiceInstall> <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="no" /> </Component> - + <?ifdef var.InstallVss?> + <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"> + <File Id="qga_vss.dll" Name="qga-vss.dll" Source="../vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="qga_vss_tlb" Guid="{D8D584B1-59C2-4FB7-A91F-636FF7BFA66E}"> + <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="../vss-win32/qga-vss.tlb" KeyPath="yes" DiskId="1"/> + </Component> + <?endif?> + <Component Id="iconv" Guid="{35EE3558-D34B-4F0A-B8BD-430FF0775246}"> + <File Id="iconv.dll" Name="iconv.dll" Source="$(var.Mingw_bin)/iconv.dll" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="libgcc_arch_lib" Guid="{ADD4D07D-4515-4AB6-AF3E-C904961B4BB0}"> + <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.Mingw_bin)/$(var.ArchLib)" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="libglib" Guid="{D31BFD83-2773-4B65-B45A-E0D2ADA58679}"> + <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.Mingw_bin)/libglib-2.0-0.dll" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="libintl" Guid="{A641BC2D-A907-4A94-9149-F30ED430878F}"> + <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.Mingw_bin)/libintl-8.dll" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="libssp" Guid="{7880087B-02B4-4EF6-A5D3-D18F8E3D90E1}"> + <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.Mingw_bin)/libssp-0.dll" KeyPath="yes" DiskId="1"/> + </Component> + <Component Id="libwinpthread" Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}"> + <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.Mingw_bin)/libwinpthread-1.dll" KeyPath="yes" DiskId="1"/> + </Component> <Component Id="registry_entries" Guid="{D075D109-51CA-11E3-9F8B-000C29858960}"> <RegistryKey Root="HKLM" Key="Software\$(env.QEMU_GA_MANUFACTURER)\$(env.QEMU_GA_DISTRO)\Tools\QemuGA"> @@ -131,6 +146,16 @@ <Feature Id="QEMUFeature" Title="QEMU Guest Agent" Level="1"> <ComponentRef Id="qemu_ga" /> + <?ifdef var.InstallVss?> + <ComponentRef Id="qga_vss_dll" /> + <ComponentRef Id="qga_vss_tlb" /> + <?endif?> + <ComponentRef Id="iconv" /> + <ComponentRef Id="libgcc_arch_lib" /> + <ComponentRef Id="libglib" /> + <ComponentRef Id="libintl" /> + <ComponentRef Id="libssp" /> + <ComponentRef Id="libwinpthread" /> <ComponentRef Id="registry_entries" /> </Feature>
This is done to follow the recommendations given here: https://msdn.microsoft.com/en-us/library/aa368269%28VS.85%29.aspx Signed-off-by: Leonid Bloch <leonid@daynix.com> --- qga/installer/qemu-ga.wxs | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-)