[virt-tools-list] [PATCH virt-viewer] win: add virt-viewer-x86.msi build rule

Christophe Fergeau cfergeau at redhat.com
Mon Feb 11 13:53:17 UTC 2013


On Thu, Jan 17, 2013 at 03:32:58PM +0100, Marc-André Lureau wrote:
> In order to build the MSI, you will need msitools:
> http://ftp.gnome.org/pub/GNOME/sources/msitools/
> 
> Granted, the WiX syntax is quite verbose. I have ideas to provide a
> simpler syntax or an alternative for packaging entire directories in
> the future, so that all installed files would be packaged.
> 
> In v2:
> - remove wxi, generate fragment file with content of make install with
>   wixl-heat as suggested by Paolo Bonzini

Looking at http://git.gnome.org/browse/msitools/tree/data/wixl , I see
a  lot of .msi files there. How do we choose between having the .msi file
shipped with msitools and having it shipped with virt-viewer?

> ---
>  configure.ac            |  1 +
>  data/Makefile.am        | 19 +++++++++-
>  data/virt-viewer.wxs.in | 92 +++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 111 insertions(+), 1 deletion(-)
>  create mode 100644 data/virt-viewer.wxs.in
> 
> diff --git a/configure.ac b/configure.ac
> index 251b134..339acbe 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -199,6 +199,7 @@ fi
>  AC_OUTPUT([
>      Makefile
>      data/Makefile
> +    data/virt-viewer.wxs
>      data/virt-viewer.nsis
>      data/virt-viewer-debug.nsis
>      icons/Makefile
> diff --git a/data/Makefile.am b/data/Makefile.am
> index 2c3d739..f9f6aea 100644
> --- a/data/Makefile.am
> +++ b/data/Makefile.am
> @@ -2,6 +2,7 @@ NULL=
>  
>  EXTRA_DIST =					\
>  	spice-xpi-client-remote-viewer		\
> +	virt-viewer.wxs.in			\
>  	virt-viewer.nsis.in			\
>  	virt-viewer-debug.nsis.in			\
>  	$(NULL)
> @@ -16,7 +17,23 @@ virt-viewer-$(VERSION).exe: virt-viewer.nsis deps.txt
>  	makensis -NOCD -DDESTDIR=$$DESTDIR $< >/dev/null && \
>  	rm -rf $$DESTDIR
>  
> -CLEANFILES = deps.txt virt-viewer-$(VERSION).exe
> +
> +virt-viewer-$(VERSION)-x86.msi: virt-viewer.wxs deps.txt
> +	$(AM_V_GEN)DESTDIR=`mktemp -d` && \
> +	make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
> +	find $$DESTDIR | wixl-heat -p $$DESTDIR/usr/i686-w64-mingw32/sys-root/mingw/ \

Isn't this /usr/i686-w64-mingw32/sys-root/mingw/ path very specific to the
mingw toolchain in fedora?

> +	    --component-group CG.virt-viewer --var var.DESTDIR \
> +	    --directory-ref=INSTALLDIR > virt-viewer-files.wxs && \
> +	wixl -D SourceDir=/usr/i686-w64-mingw32/sys-root/mingw \
> +             -D DESTDIR=$$DESTDIR/usr/i686-w64-mingw32/sys-root/mingw -o $@ \
> +	     $< virt-viewer-files.wxs && \
> +	rm -rf $$DESTDIR virt-viewer-files.wxs
> +
> +CLEANFILES =					\
> +	deps.txt				\
> +	virt-viewer-$(VERSION).exe		\
> +	virt-viewer-$(VERSION)-x86.msi		\
> +	$(NULL)
>  endif
>  
>  -include $(top_srcdir)/git.mk
> diff --git a/data/virt-viewer.wxs.in b/data/virt-viewer.wxs.in
> new file mode 100644
> index 0000000..05c22cc
> --- /dev/null
> +++ b/data/virt-viewer.wxs.in
> @@ -0,0 +1,92 @@
> +<?xml version="1.0" encoding="utf-8"?>
> +
> +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> +
> +  <?require spice-gtk.wxi?>
> +  <?require gtk-vnc.wxi?>
> +  <?require libvirt.wxi?>
> +
> +  <?define Version = "@VERSION@"?>
> +  <?define UpgradeCode = "5B027138-1A63-49E6-877E-055E5EEC1903"?>
> +  <Product Id="*" Name="VirtViewer" Manufacturer="Red Hat, Inc."


The Red Hat, Inc. here...

> +           Version="$(var.Version)" UpgradeCode="$(var.UpgradeCode)"
> +           Language="1033">
> +
> +    <Package InstallerVersion="200" Compressed="yes" Comments="comments"/>
> +    <Media Id="1" Cabinet="cabinet.cab" EmbedCab="yes"/>
> +
> +    <Property Id="ARPHELPLINK" Value="http://www.spice-space.org"/>
> +    <Property Id="ARPNOMODIFY" Value="1"/>
> +    <Property Id="ARPNOREPAIR" Value="1"/>
> +    <Property Id="ARPPRODUCTICON" Value="virt-viewer.ico"/>
> +<!-- <Property Id="ARPURLINFOABOUT" Value="http://www.spice-space.org/info"/> -->

together with the spice-space.org here feels a bit inconsistent to me,
maybe the 'Manufacturer' should be changed to 'The virt-viewer maintainers'
or something like this? I don't know how important this 'Manufacturer'
string is.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20130211/32dde801/attachment.sig>


More information about the virt-tools-list mailing list