[Spice-devel] [qxl-wddm-dod] add Wix script for driver installation

Yuri Benditovich yuri.benditovich at daynix.com
Mon Dec 9 13:27:08 UTC 2019


Can you please merge it or you want me to do that?
(I typically do not merge to upstream repo, just add tags on it)

Thanks,
Yuri

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 ?
> - Do people run Windows 10 x86 (32 bit)? Do we need such a driver ?
>
> 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