With msitools/wixl 0.93, it is now possible to build per-user installers. --- data/Makefile.am | 25 ++++++++++++++++++++----- data/virt-viewer.wxs.in | 18 ++++++++++++++---- mingw-virt-viewer.spec.in | 2 +- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/data/Makefile.am b/data/Makefile.am index a43374e..75f3ab5 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -43,12 +43,27 @@ virt-viewer-$(WIXL_ARCH)-$(VERSION).msi: virt-viewer.wxs deps.txt $< virt-viewer-files.wxs && \ rm -rf $$DESTDIR virt-viewer-files.wxs -msi: virt-viewer-$(WIXL_ARCH)-$(VERSION).msi +virt-viewer-$(WIXL_ARCH)-user-$(VERSION).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$(prefix)/ \ + --component-group CG.virt-viewer --var var.DESTDIR \ + --directory-ref=INSTALLDIR > virt-viewer-files.wxs && \ + MANUFACTURER="$(MANUFACTURER)" wixl -D SourceDir=$(prefix) \ + -D DESTDIR=$$DESTDIR$(prefix) \ + -D USER=1 \ + --arch $(WIXL_ARCH) \ + -o $@ \ + $< virt-viewer-files.wxs && \ + rm -rf $$DESTDIR virt-viewer-files.wxs + +msi: virt-viewer-$(WIXL_ARCH)-$(VERSION).msi virt-viewer-$(WIXL_ARCH)-user-$(VERSION).msi -CLEANFILES += \ - deps.txt \ - virt-viewer-$(VERSION).exe \ - virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \ +CLEANFILES += \ + deps.txt \ + virt-viewer-$(VERSION).exe \ + virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \ + virt-viewer-$(WIXL_ARCH)-user-$(VERSION).msi \ $(NULL) else #!WIN32 diff --git a/data/virt-viewer.wxs.in b/data/virt-viewer.wxs.in index 9f8973e..c53db4e 100644 --- a/data/virt-viewer.wxs.in +++ b/data/virt-viewer.wxs.in @@ -15,6 +15,16 @@ <?define ArchProgramFilesFolder = "ProgramFilesFolder"?> <?define Win64 = "no"?> <?endif?> + <?if $(var.USER) = "1"?> + <?define Scope = "perUser"?> + <?define Root = "HKCU"?> + <?define ArchProgramFilesFolder = "LocalAppDataFolder"?> + <?define UserString = " user"?> + <?else?> + <?define Scope = "perMachine"?> + <?define Root = "HKLM"?> + <?define UserString = ""?> + <?endif?> <?require spice-gtk.wxi?> <?require gtk-vnc.wxi?> @@ -22,13 +32,13 @@ <?define UpgradeCode = "5B027138-1A63-49E6-877E-055E5EEC1903"?> <Product Id="*" - Name="VirtViewer $(var.Version) ($(var.ArchString))" + Name="VirtViewer $(var.Version) ($(var.ArchString)$(var.UserString))" Manufacturer="$(env.MANUFACTURER)" Version="$(var.Version)" UpgradeCode="$(var.UpgradeCode)" Language="1033"> - <Package InstallerVersion="200" Compressed="yes" Comments="comments"/> + <Package InstallerVersion="200" Compressed="yes" InstallScope="$(var.Scope)"/> <Media Id="1" Cabinet="cabinet.cab" EmbedCab="yes"/> <Property Id="ARPHELPLINK" Value="http://www.virt-tools.org"/> @@ -44,12 +54,12 @@ <DirectoryRef Id="TARGETDIR"> <Component Id="CRegistryEntries" Guid="*"> - <RegistryKey Root='HKLM' Key='Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{96190E9D-6FBB-64DB-9095-29F6FDE0B897}'> + <RegistryKey Root='$(var.Root)' Key='Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{96190E9D-6FBB-64DB-9095-29F6FDE0B897}'> <RegistryValue Type='string' Name='AppPath' Value='[INSTALLDIR]\bin'/> <RegistryValue Type='string' Name='AppName' Value='remote-viewer.exe'/> <RegistryValue Type='integer' Name='Policy' Value='3'/> </RegistryKey> - <RegistryKey Root='HKLM' Key='Software\spice-space.org\spicex'> + <RegistryKey Root='$(var.Root)' Key='Software\spice-space.org\spicex'> <RegistryValue Type='string' Name='client' Value='[INSTALLDIR]\bin\remote-viewer.exe --spice-controller'/> </RegistryKey> </Component> diff --git a/mingw-virt-viewer.spec.in b/mingw-virt-viewer.spec.in index ca2c540..1069c87 100644 --- a/mingw-virt-viewer.spec.in +++ b/mingw-virt-viewer.spec.in @@ -43,7 +43,7 @@ BuildRequires: icoutils BuildRequires: dos2unix BuildRequires: hicolor-icon-theme BuildRequires: gnome-icon-theme -BuildRequires: msitools >= 0.92-2 +BuildRequires: msitools >= 0.93 BuildArch: noarch -- 1.8.3.rc1.49.g8d97506 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list