[Spice-devel] [qxl-wddm-dod] add Wix script for driver installation
Yuri Benditovich
yuri.benditovich at daynix.com
Wed Dec 4 12:21:12 UTC 2019
On Wed, Dec 4, 2019 at 1:47 PM Uri Lublin <uril at redhat.com> wrote:
>
> Hi Yuri,
>
> I quickly tested install, uninstall, and upgrade. Works well for me.
>
> Some minor questions:
> - I see UsbDK does not use difx. Is it easier to use difx ?
UsbDk does not install PnP drivers, so it does not need difx.
> - Do people run Windows 10 x86 (32 bit)? Do we need such a driver ?
>
Sure. MSI for x86 will install driver for x86.
> Ack.
>
> Thanks,
> Uri.
>
> On 11/22/19 8:39 AM, Yuri Benditovich wrote:
> > Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
> > ---
> > QXLWDDMDODInstaller.wxs | 94 +++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 94 insertions(+)
> > create mode 100644 QXLWDDMDODInstaller.wxs
> >
> > diff --git a/QXLWDDMDODInstaller.wxs b/QXLWDDMDODInstaller.wxs
> > new file mode 100644
> > index 0000000..64145cc
> > --- /dev/null
> > +++ b/QXLWDDMDODInstaller.wxs
> > @@ -0,0 +1,94 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
> > + xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension">
> > +
> > + <?ifdef QXLWDDMDOD64Bit ?>
> > + <?define QXLWDDMDODPlatform=x64 ?>
> > + <?define QXLWDDMDODProgramFilesFolder= ProgramFiles64Folder ?>
> > + <?define QXLWDDMDODWin64= yes ?>
> > + <?else?>
> > + <?define QXLWDDMDODPlatform=x86 ?>
> > + <?define QXLWDDMDODProgramFilesFolder= ProgramFilesFolder ?>
> > + <?define QXLWDDMDODWin64= no ?>
> > + <?endif?>
> > +
> > + <Product
> > + Name="Red Hat QXL controller"
> > + Id="*"
> > + UpgradeCode="{927D55E7-9B82-4BD4-B778-B0F7665DE2C9}"
> > + Manufacturer="Red Hat, Inc."
> > + Version="$(var.QXLWDDMDODVersion)"
> > + Language="1033">
> > + <Package
> > + Manufacturer="Red Hat, Inc."
> > + InstallerVersion="200"
> > + Languages="1033"
> > + Platform="$(var.QXLWDDMDODPlatform)"
> > + Compressed="yes"
> > + InstallScope="perMachine"
> > + InstallPrivileges="elevated" />
> > +
> > + <Property Id="WIN10FOUND" Secure="yes">
> > + <DirectorySearch Id="searchSystem" Path="[SystemFolder]" Depth="0">
> > + <FileSearch Id="searchFile" Name="advapi32.dll" MinVersion="6.3.10000.0"/>
> > + </DirectorySearch>
> > + </Property>
> > +
> > + <?if $(var.QXLWDDMDODPlatform) = x86 ?>
> > + <Condition Message="Error: 32-bit version of QXL-WDDM-DOD can not be installed on 64-bit Windows.">
> > + <![CDATA[Not VersionNT64]]>
> > + </Condition>
> > + <?endif?>
> > +
> > + <Condition Message="QXL-WDDM-DOD is only supported on Windows 10 or higher systems.">
> > + <![CDATA[Installed OR (VersionNT = 603 AND WIN10FOUND) OR (VersionNT > 603)]]>
> > + </Condition>
> > +
> > + <Media Id="1" Cabinet="QXLWDDMDOD$(var.QXLWDDMDODVersion).cab" EmbedCab="yes" />
> > +
> > + <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
> > + <Upgrade Id="{927D55E7-9B82-4BD4-B778-B0F7665DE2C9}">
> > + <UpgradeVersion
> > + Minimum="0.0.0.0" Maximum="$(var.QXLWDDMDODVersion)"
> > + Property="PREVIOUSVERSIONSINSTALLED"
> > + IncludeMinimum="yes" IncludeMaximum="no" />
> > +
> > + <UpgradeVersion
> > + Minimum="$(var.QXLWDDMDODVersion)" Maximum="99.99.99.99"
> > + Property="NEWERVERSIONINSTALLED"
> > + IncludeMinimum="no" IncludeMaximum="yes" />
> > + </Upgrade>
> > +
> > + <Directory Id="TARGETDIR" Name="SourceDir">
> > + <Directory Id="$(var.QXLWDDMDODProgramFilesFolder)">
> > + <Directory Id="MANUFACTURERFOLDER" Name="Red Hat">
> > + <Directory Id="QXLWDDMDOD_Directory" Name="QXL-WDDM-DOD">
> > +
> > + <Component Id="QXLWDDMDOD_10" Guid="{D43599C0-6EDF-43EC-9BE1-2FCD95DBA4EC}" Win64="$(var.QXLWDDMDODWin64)">
> > + <File Id="qxldod.sys" Name="qxldod.sys" Source="qxldod.sys" Vital="yes" KeyPath="yes" DiskId="1" ProcessorArchitecture="$(var.QXLWDDMDODPlatform)"/>
> > + <File Id="qxldod.inf" Name="qxldod.inf" Source="qxldod.inf" Vital="yes" KeyPath="no" DiskId="1" ProcessorArchitecture="$(var.QXLWDDMDODPlatform)"/>
> > + <File Id="qxldod.cat" Name="qxldod.cat" Source="qxldod.cat" Vital="yes" KeyPath="no" DiskId="1" ProcessorArchitecture="$(var.QXLWDDMDODPlatform)"/>
> > + <File Id="qxldod.pdb" Name="qxldod.pdb" Source="qxldod.pdb" Vital="yes" KeyPath="no" DiskId="1" ProcessorArchitecture="$(var.QXLWDDMDODPlatform)"/>
> > + <difx:Driver AddRemovePrograms="no" PlugAndPlayPrompt="no" />
> > + </Component>
> > +
> > + </Directory>
> > + </Directory>
> > + </Directory>
> > + </Directory>
> > +
> > + <CustomAction Id="PreventDowngrading"
> > + Error="Error: Newer version of QXL-WDDM-DOD is already installed.">
> > + </CustomAction>
> > +
> > + <InstallExecuteSequence>
> > + <RemoveExistingProducts After="InstallInitialize">PREVIOUSVERSIONSINSTALLED<>""</RemoveExistingProducts>
> > + <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWERVERSIONINSTALLED<>"" AND NOT Installed</Custom>
> > + </InstallExecuteSequence>
> > +
> > + <Feature Id="ProductFeature" Title="QXLWDDMDOD" Level="1">
> > + <ComponentRef Id="QXLWDDMDOD_10" />
> > + </Feature>
> > +
> > + </Product>
> > +</Wix>
> >
>
More information about the Spice-devel
mailing list