[Spice-devel] [PATCH win-vdagent] Learn to build spice-vdagent MSI installer
Marc-André Lureau
mlureau at redhat.com
Tue Feb 18 08:03:01 PST 2014
Hi
----- Original Message -----
> Hi Marc-Andre,
>
> I think you should also add 'InstallPrivileges="elevated”’ as “Package"
> element attribute.
>
> The Windows will prompt the user to elevate to administrator, otherwise the
> user might not have sufficient rights to install the service.
>
I didn't noticed any issue installing on windows 7 as a regular user, I get prompter for elevated privileges.
This is the default value, according to:
http://msdn.microsoft.com/en-us/library/aa372870%28v=vs.85%29.aspx
Bit 3 0 Elevated privileges can be required to install this package.
cheers
> Best regards,
> Yan.
>
> On Feb 17, 2014, at 6:41 PM, Marc-André Lureau <marcandre.lureau at gmail.com>
> wrote:
>
> > ---
> > Makefile.am | 23 +++++++++++++++-
> > configure.ac | 30 ++++++++++++++++++++
> > spice-vdagent.wxs.in | 78
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 130 insertions(+), 1 deletion(-)
> > create mode 100644 spice-vdagent.wxs.in
> >
> > diff --git a/Makefile.am b/Makefile.am
> > index 749ef56..9fa9f14 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -1,4 +1,5 @@
> > NULL =
> > +EXTRA_DIST =
> > MAINTAINERCLEANFILES =
> >
> > DIST_SUBDIRS = spice-protocol
> > @@ -61,8 +62,28 @@ vdservice_rc.$(OBJEXT): vdservice/vdservice.rc
> >
> > MAINTAINERCLEANFILES += vdservice_rc.$(OBJEXT)
> >
> > +deps.txt:
> > + $(AM_V_GEN)rpm -qa | grep $(host_os) | sort | unix2dos > $@
> >
> > -EXTRA_DIST = \
> > +MANUFACTURER = The Spice Project
> > +
> > +EXTRA_DIST += spice-vdagent.wxs.in
> > +CONFIG_STATUS_DEPENDENCIES = spice-vdagent.wxs.in
> > +
> > +spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi: spice-vdagent.wxs
> > deps.txt all
> > + $(AM_V_GEN)DESTDIR=`mktemp -d`&& \
> > + make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
> > + MANUFACTURER="$(MANUFACTURER)" wixl -D SourceDir=$(prefix) \
> > + -D DESTDIR=$$DESTDIR$(prefix) \
> > + --arch $(WIXL_ARCH) -o $@ $<
> > +
> > +msi: spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi
> > +
> > +CLEANFILES = spice-vdagent-$(WIXL_ARCH)-$(VERSION)$(BUILDID).msi
> > +
> > +.PHONY: msi
> > +
> > +EXTRA_DIST += \
> > $(top_srcdir)/.version \
> > tests/clipboard.py \
> > vdagent.sln \
> > diff --git a/configure.ac b/configure.ac
> > index 12329b4..7f6511d 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -9,11 +9,30 @@ AC_CONFIG_SRCDIR([vdagent])
> > AC_CONFIG_HEADERS([config.h])
> > AC_CONFIG_MACRO_DIR([m4])
> > AC_CONFIG_AUX_DIR([build-aux])
> > +AC_CANONICAL_HOST
> >
> > AM_INIT_AUTOMAKE([1.11 foreign subdir-objects no-dist-gzip dist-xz
> > tar-ustar])
> >
> > AM_SILENT_RULES([yes])
> >
> > +AC_ARG_WITH([buildid],
> > +AS_HELP_STRING([--with-buildid=id], [Set additional build version
> > details]))
> > +AC_DEFINE_UNQUOTED([BUILDID], "$with_buildid", [Build version details])
> > +if test "x$with_buildid" != x; then
> > + AC_SUBST([BUILDID], "-$with_buildid")
> > +fi
> > +
> > +major=`echo $PACKAGE_VERSION | cut -d. -f1`
> > +minor=`echo $PACKAGE_VERSION | cut -d. -f2`
> > +micro=`echo $PACKAGE_VERSION | cut -d. -f3`
> > +buildid=`echo $with_buildid | cut -d. -f1`
> > +if test "x$buildid" = x; then
> > + buildid=0
> > +fi
> > +build=`expr $micro \* 256 + $buildid`
> > +WINDOWS_PRODUCTVERSION="$major.$minor.$build"
> > +AC_SUBST([WINDOWS_PRODUCTVERSION])
> > +
> > # Check for programs
> > AC_PROG_CC
> > AC_PROG_CXX
> > @@ -21,6 +40,16 @@ AM_PROG_CC_C_O
> > AC_PROG_INSTALL
> > AC_CHECK_TOOL(WINDRES, [windres])
> >
> > +case "$host" in
> > +amd64*|x86_64*)
> > + WIXL_ARCH="x64"
> > +;;
> > +*)
> > + WIXL_ARCH="x86"
> > +;;
> > +esac
> > +AC_SUBST(WIXL_ARCH)
> > +
> > AC_ARG_ENABLE([debug],
> > AS_HELP_STRING([--enable-debug], [Enable debugging]))
> >
> > @@ -75,6 +104,7 @@ AC_CONFIG_SUBDIRS([spice-protocol])
> > AC_CONFIG_FILES([
> > Makefile
> > mingw-spice-vdagent.spec
> > +spice-vdagent.wxs
> > ])
> > AC_OUTPUT
> >
> > diff --git a/spice-vdagent.wxs.in b/spice-vdagent.wxs.in
> > new file mode 100644
> > index 0000000..060f33d
> > --- /dev/null
> > +++ b/spice-vdagent.wxs.in
> > @@ -0,0 +1,78 @@
> > +<?xml version="1.0" encoding="utf-8"?>
> > +
> > +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> > +
> > + <?define Version = "@WINDOWS_PRODUCTVERSION@"?>
> > + <?define UpgradeCode = "7eb9b146-db04-42d7-a8ba-71fc8ced7eed"?>
> > + <?define Arch = "@WIXL_ARCH@"?>
> > + <?if $(var.Arch) = "x64"?>
> > + <?define ArchString = "64-bit"?>
> > + <?define ArchProgramFilesFolder = "ProgramFiles64Folder"?>
> > + <?define Win64 = "yes"?>
> > + <?else?>
> > + <?define ArchString = "32-bit"?>
> > + <?define ArchProgramFilesFolder = "ProgramFilesFolder"?>
> > + <?define Win64 = "no"?>
> > + <?endif?>
> > +
> > + <Product Id="*" Name="Spice agent @VERSION@@BUILDID@
> > ($(var.ArchString))"
> > + Manufacturer="$(env.MANUFACTURER)"
> > + 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"/>
> > + <Upgrade Id="$(var.UpgradeCode)">
> > + <UpgradeVersion Minimum="$(var.Version)" OnlyDetect="yes"
> > Property="NEWERVERSIONDETECTED"/>
> > + <UpgradeVersion Minimum="0.0.0" Maximum="$(var.Version)"
> > IncludeMinimum="yes" IncludeMaximum="no"
> > Property="OLDERVERSIONBEINGUPGRADED"/>
> > + </Upgrade>
> > + <Condition Message="Product already installed.">NOT
> > NEWERVERSIONDETECTED</Condition>
> > + <InstallExecuteSequence>
> > + <RemoveExistingProducts After="InstallFinalize"/>
> > + </InstallExecuteSequence>
> > +
> > + <Directory Id="TARGETDIR" Name="SourceDir">
> > + <Directory Id="$(var.ArchProgramFilesFolder)">
> > + <Directory Id="INSTALLDIR" Name="SPICE agent">
> > + <Directory Id="Dbindir" Name="bin">
> > + <Component Id="CSpiceAgent" Guid="*">
> > + <File Id='spiceagent' Name='vdagent.exe' DiskId='1'
> > Source='$(var.DESTDIR)/bin/vdagent.exe' KeyPath='yes'/>
> > + </Component>
> > + <Component Id="CSpiceService" Guid="*">
> > + <File Id='spiceservice' Name='vdservice.exe' DiskId='1'
> > Source='$(var.DESTDIR)/bin/vdservice.exe' KeyPath='yes'/>
> > + <ServiceInstall Id="ServiceInstall"
> > + Name="spice-agent"
> > + DisplayName="Spice agent"
> > + Description="The Spice guest agent"
> > + Type="ownProcess"
> > + Start="auto"
> > + Account="[SERVICEACCOUNT]"
> > + Password="[SERVICEPASSWORD]"
> > + ErrorControl="normal"/>
> > + <ServiceControl Id="StartService"
> > + Name="spice-agent"
> > + Start="install"
> > + Stop="both"
> > + Remove="uninstall"
> > + Wait="yes"/>
> > + </Component>
> > + </Directory>
> > + <Component Id="CDepsTxt" Guid="*">
> > + <File Id='depstxt' Name='deps.txt' DiskId='1'
> > Source='deps.txt' KeyPath='yes'/>
> > + </Component>
> > + </Directory>
> > + </Directory>
> > + </Directory>
> > +
> > + <Feature Id="Complete" Level="1">
> > + <ComponentRef Id="CSpiceAgent"/>
> > + <ComponentRef Id="CSpiceService"/>
> > + <ComponentRef Id="CDepsTxt"/>
> > + </Feature>
> > +
> > + </Product>
> > +</Wix>
> > --
> > 1.8.4.2
> >
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
More information about the Spice-devel
mailing list