Skip to content

Commit e7baa55

Browse files
authored
Change DigiDoc4 Win installer to DigiDoc3 upgrade (#253)
IB-5279: Installer changed to DD3 upgrade because installers share files (libdigidocpp dependencies) - DigiDoc4 msi is DigiDoc3 upgrade (uses same UpgradeCode) - Installer includes DigiDoc3 executable (qdigidocclient.exe) - Introduced new public properties INSTALL_DIGIDOC3 and INSTALL_DIGIDOC4 which define if DD3 and/or DD4 executables, shortcuts and associations must be installed - DD3 components are included only if digidoc3 variable with path to qdigidocclient executable to be included in msi are defined for burn - Bump the version to 4.0.0 since the msi cannot be downgraded Signed-off-by: Toomas Uudisaru <[email protected]>
1 parent 08946ff commit e7baa55

File tree

5 files changed

+112
-13
lines changed

5 files changed

+112
-13
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ endif()
88
if(POLICY CMP0071)
99
cmake_policy(SET CMP0071 NEW)
1010
endif()
11-
project(qdigidoc4 VERSION 0.6.0)
11+
project(qdigidoc4 VERSION 4.0.0)
1212

1313
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
1414
set(CMAKE_INCLUDE_CURRENT_DIR ON)

client/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,13 @@ elseif(WIN32)
194194
set(PLATFORM x86)
195195
set(SSL_PATH "C:/OpenSSL-Win32/bin")
196196
endif()
197+
if(DIGIDOC3)
198+
set(DIGIDOC3_LOCATION "-ddigidoc3=${DIGIDOC3}")
199+
endif()
197200
set(MSI_FILE "Digidoc4_Client-${VERSION}$ENV{VER_SUFFIX}.${PLATFORM}")
198201
list(APPEND CANDLE_CMD "$ENV{WIX}bin\\candle.exe" -nologo -arch ${PLATFORM} -dMSI_VERSION=${VERSION} -dPlatform=${PLATFORM}
199202
-dssl_path="${SSL_PATH}" -dlibs_path="${LIBS_PATH}" -dclient_path=$<TARGET_FILE:${PROGNAME}> -dqtconf=${CMAKE_SOURCE_DIR}/qt.conf
200-
-dschemasLocation=${LIBS_PATH}/schema SchemasFragment.wxs ${CMAKE_SOURCE_DIR}/qdigidoc4.wxs
203+
-dschemasLocation=${LIBS_PATH}/schema ${DIGIDOC3_LOCATION} SchemasFragment.wxs ${CMAKE_SOURCE_DIR}/qdigidoc4.wxs
201204
${CMAKE_SOURCE_DIR}/cmake/modules/WelcomeDlg2.wxs ${CMAKE_SOURCE_DIR}/cmake/modules/WixUI_Minimal2.wxs)
202205
list(APPEND LIGHT_CMD "$ENV{WIX}bin\\light.exe" -nologo -ext WixUIExtension
203206
qdigidoc4.wixobj SchemasFragment.wixobj WelcomeDlg2.wixobj WixUI_Minimal2.wixobj

qdigidoc4.en-US.wxl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
3-
<String Id="qdigidocclientLabel" Overridable="yes">DigiDoc4 client</String>
3+
<String Id="qdigidocclientLabel" Overridable="yes">DigiDoc3 client</String>
4+
<String Id="qdigidoccryptoLabel" Overridable="yes">DigiDoc3 crypto</String>
5+
<String Id="qdigidoc4Label" Overridable="yes">DigiDoc4 client</String>
46
<String Id="idcardLabel" Overridable="yes">ID-card</String>
57
</WixLocalization>

qdigidoc4.et-EE.wxl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<WixLocalization Culture="et-EE" xmlns="http://schemas.microsoft.com/wix/2006/localization">
3-
<String Id="qdigidocclientLabel" Overridable="yes">DigiDoc4 klient</String>
3+
<String Id="qdigidocclientLabel" Overridable="yes">DigiDoc3 klient</String>
4+
<String Id="qdigidoccryptoLabel" Overridable="yes">DigiDoc3 krüpto</String>
5+
<String Id="qdigidoc4Label" Overridable="yes">DigiDoc4 klient</String>
46
<String Id="idcardLabel" Overridable="yes">ID-kaart</String>
57
</WixLocalization>

qdigidoc4.wxs

Lines changed: 101 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ msiexec /a Eesti_ID_kaart-CPP-teek-arendajale-3.10.0.3672.BETA.msi /qn TARGETDIR
1111
-dlibs_path="C:\target\Estonian ID Card Development\libdigidocpp\x86"
1212
-dcertsLocation="C:\target\Estonian ID Card Development\libdigidocpp\certs"
1313
-dqt_path=C:\Qt\5.3\msvc2013
14-
-dclient_path=client\qdigidocclient.exe
14+
-dclient_path=client\qdigidoc4.exe
15+
-dclient3_path="C:\target\Estonian ID Card Development\qdigidoc\client\qdigidocclient.exe"
1516
1617
"%WIX%\bin\light.exe" -out qdigidoc.msi qdigidoc.wixobj CertsFragment.wixobj -v -ext WixUIExtension
1718
-->
@@ -35,13 +36,18 @@ msiexec /a Eesti_ID_kaart-CPP-teek-arendajale-3.10.0.3672.BETA.msi /qn TARGETDIR
3536
<?endif?>
3637

3738
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
38-
<Product Name="DigiDoc4 Client" UpgradeCode="D3D551AE-C7B6-436A-967E-E68CFE2EA3FF"
39+
<Product Name="DigiDoc4 Client" UpgradeCode="67932072-aa9e-45e3-b697-d825349f273d"
3940
Id="*" Language="1033" Version="$(var.MSI_VERSION)" Codepage="1251" Manufacturer="RIA">
4041
<Package Platform="$(var.Platform)" Keywords="Installer" InstallerVersion="405" Compressed="yes" InstallScope="perMachine"/>
4142
<MediaTemplate EmbedCab="yes" CompressionLevel="high"/>
4243
<Icon Id="qdigidoc4.exe" SourceFile="$(var.client_path)"/>
44+
<?ifdef var.digidoc3 ?>
45+
<Icon Id="qdigidocclient.exe" SourceFile="$(var.digidoc3)"/>
46+
<?endif?>
4347
<Property Id="ARPPRODUCTICON" Value="qdigidoc4.exe"/>
4448
<Property Id="DESKTOP_SHORTCUT" Value="0"/>
49+
<Property Id="INSTALL_DIGIDOC3" Value="0"/>
50+
<Property Id="INSTALL_DIGIDOC4" Value="1"/>
4551
<MajorUpgrade AllowSameVersionUpgrades="yes" Schedule="afterInstallInitialize" DowngradeErrorMessage=
4652
"A newer version of [ProductName] is already installed. If you are trying to downgrade, please uninstall the newer version first."/>
4753
<Condition Message="[ProductName] requires Windows 7 or higher.">
@@ -53,28 +59,106 @@ msiexec /a Eesti_ID_kaart-CPP-teek-arendajale-3.10.0.3672.BETA.msi /qn TARGETDIR
5359
<!-- Program Menu shortcut -->
5460
<Directory Id="ProgramMenuFolder">
5561
<Directory Id="ProgramMenuDir" Name="!(loc.idcardLabel)">
56-
<Component Id="ProgramMenuDir" Guid="16A9EACF-B5D3-4FDC-8E9F-C03C8FA46DFF">
62+
<Component Id="ProgramMenuDir4" Guid="16A9EACF-B5D3-4FDC-8E9F-C03C8FA46DFF">
5763
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
5864
<RegistryValue Root='HKMU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' />
5965
</Component>
66+
<?ifdef var.digidoc3 ?>
67+
<Component Id="ProgramMenuDir" Guid="5d26b9c2-cc87-452e-8132-76f0fc8f3e2c">
68+
<Condition>INSTALL_DIGIDOC3 = 1</Condition>
69+
<RegistryValue Root='HKMU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' />
70+
</Component>
71+
<?endif?>
6072
</Directory>
6173
</Directory>
6274

6375
<!-- Desktop shortcut -->
6476
<Directory Id="DesktopFolder">
65-
<Component Id="DesktopShortcut" Guid="7B821ED0-4838-4290-997C-AA4119F99DAD" Transitive="yes">
66-
<Condition>DESKTOP_SHORTCUT = 1</Condition>
67-
<Shortcut Id="ClientDesktopShortcut" Name="!(loc.qdigidocclientLabel)"
77+
<Component Id="DesktopShortcut4" Guid="7B821ED0-4838-4290-997C-AA4119F99DAD" Transitive="yes">
78+
<Condition>(DESKTOP_SHORTCUT = 1) AND (INSTALL_DIGIDOC4 = 1)</Condition>
79+
<Shortcut Id="ClientDesktopShortcut4" Name="!(loc.qdigidoc4Label)"
6880
Target="[!qdigidoc4.exe]" WorkingDirectory="APPLICATIONFOLDER"/>
81+
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="DesktopShortcut4" Value="1" Type="integer" KeyPath="yes"/>
82+
</Component>
83+
<?ifdef var.digidoc3 ?>
84+
<Component Id="DesktopShortcut" Guid="412b4616-001f-49ec-a9be-c942eb165e31" Transitive="yes">
85+
<Condition>(DESKTOP_SHORTCUT = 1) AND (INSTALL_DIGIDOC3 = 1)</Condition>
86+
<Shortcut Id="ClientDesktopShortcut" Name="!(loc.qdigidocclientLabel)"
87+
Target="[!qdigidocclient.exe]" WorkingDirectory="APPLICATIONFOLDER"/>
88+
<Shortcut Id="CryptoDesktopShortcut" Name="!(loc.qdigidoccryptoLabel)" Icon="qdigidocclient.exe" IconIndex="2"
89+
Target="[!qdigidocclient.exe]" WorkingDirectory="APPLICATIONFOLDER" Arguments="-crypto"/>
6990
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes"/>
7091
</Component>
92+
<?endif?>
7193
</Directory>
7294

7395
<Directory Id='$(var.PlatformProgramFilesFolder)'>
7496
<Directory Id="APPLICATIONFOLDER" Name="DigiDoc4 Client">
75-
<Component Id="Application" Guid="316B00EB-7519-476F-BCA5-7C8C1A0DF5AB">
97+
<?ifdef var.digidoc3 ?>
98+
<Component Id="Application" Guid="810cbd57-b24d-49ee-939a-a1fc38dda46f">
99+
<Condition>INSTALL_DIGIDOC3 = 1</Condition>
100+
<File Source="$(var.digidoc3)" KeyPath='yes'>
101+
<Shortcut Id="ClientStartMenu" Advertise="yes" Name="!(loc.qdigidocclientLabel)" Icon="qdigidocclient.exe"
102+
Directory="ProgramMenuDir" WorkingDirectory="APPLICATIONFOLDER"/>
103+
<Shortcut Id="CryptoStartMenu" Advertise="yes" Name="!(loc.qdigidoccryptoLabel)" Icon="qdigidocclient.exe" IconIndex="2"
104+
Directory="ProgramMenuDir" WorkingDirectory="APPLICATIONFOLDER" Arguments="-crypto"/>
105+
</File>
106+
<ProgId Id="qdigidoc4.adoc" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
107+
<Extension Id="adoc" ContentType="application/vnd.lt.archyvai.adoc-2008">
108+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
109+
</Extension>
110+
</ProgId>
111+
<ProgId Id="qdigidoc4.bdoc" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
112+
<Extension Id="bdoc" ContentType="application/vnd.etsi.asic-e+zip">
113+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
114+
</Extension>
115+
</ProgId>
116+
<ProgId Id="qdigidoc4.edoc" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
117+
<Extension Id="edoc" ContentType="application/vnd.etsi.asic-e+zip">
118+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
119+
</Extension>
120+
</ProgId>
121+
<ProgId Id="qdigidoc4.asice" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
122+
<Extension Id="asice" ContentType="application/vnd.etsi.asic-e+zip">
123+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
124+
</Extension>
125+
</ProgId>
126+
<ProgId Id="qdigidoc4.sce" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
127+
<Extension Id="sce" ContentType="application/vnd.etsi.asic-e+zip">
128+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
129+
</Extension>
130+
</ProgId>
131+
<ProgId Id="qdigidoc4.ddoc" Description="DigiDoc signed document" Icon="qdigidocclient.exe" IconIndex="1">
132+
<Extension Id="ddoc" ContentType="application/x-ddoc">
133+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
134+
</Extension>
135+
</ProgId>
136+
<ProgId Id="qdigidoc4.p12d" Description="DigiDoc PKCS#12 certificate" Icon="qdigidocclient.exe" IconIndex="1">
137+
<Extension Id="p12d" ContentType="application/x-p12d">
138+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
139+
</Extension>
140+
</ProgId>
141+
<ProgId Id="qdigidoc4.cdoc" Description="DigiDoc encrypted container" Icon="qdigidocclient.exe" IconIndex="3">
142+
<Extension Id="cdoc" ContentType="application/x-cdoc">
143+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='-crypto "%1"' />
144+
</Extension>
145+
</ProgId>
146+
<ProgId Id="qdigidoc4.asics" Description="DigiDoc timestamped document" Icon="qdigidocclient.exe" IconIndex="1">
147+
<Extension Id="asics" ContentType="application/vnd.etsi.asic-s+zip">
148+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
149+
</Extension>
150+
</ProgId>
151+
<ProgId Id="qdigidoc4.scs" Description="DigiDoc timestamped document" Icon="qdigidocclient.exe" IconIndex="1">
152+
<Extension Id="scs" ContentType="application/vnd.etsi.asic-s+zip">
153+
<Verb Id="open" TargetFile="qdigidocclient.exe" Command="Open" Argument='"%1"' />
154+
</Extension>
155+
</ProgId>
156+
</Component>
157+
<?endif?>
158+
<Component Id="Application4" Guid="316B00EB-7519-476F-BCA5-7C8C1A0DF5AB">
159+
<Condition>INSTALL_DIGIDOC4 = 1</Condition>
76160
<File Source="$(var.client_path)" KeyPath='yes'>
77-
<Shortcut Id="ClientStartMenu" Advertise="yes" Name="!(loc.qdigidocclientLabel)" Icon="qdigidoc4.exe"
161+
<Shortcut Id="ClientStartMenu4" Advertise="yes" Name="!(loc.qdigidoc4Label)" Icon="qdigidoc4.exe"
78162
Directory="ProgramMenuDir" WorkingDirectory="APPLICATIONFOLDER"/>
79163
</File>
80164
<ProgId Id="qdigidoc4.adoc" Description="DigiDoc signed document" Icon="qdigidoc4.exe" IconIndex="1">
@@ -127,6 +211,8 @@ msiexec /a Eesti_ID_kaart-CPP-teek-arendajale-3.10.0.3672.BETA.msi /qn TARGETDIR
127211
<Verb Id="open" TargetFile="qdigidoc4.exe" Command="Open" Argument='"%1"' />
128212
</Extension>
129213
</ProgId>
214+
</Component>
215+
<Component Id="Base" Guid="6976e89e-e815-444a-9b1f-5ee63cfe230d">
130216
<File Source="$(var.libs_path)\zlib1.dll"/>
131217
<File Source="$(var.libs_path)\xerces-c_3_2.dll"/>
132218
<?ifdef var.xalan ?>
@@ -193,10 +279,16 @@ msiexec /a Eesti_ID_kaart-CPP-teek-arendajale-3.10.0.3672.BETA.msi /qn TARGETDIR
193279
</Directory>
194280

195281
<Feature Id="InstallDigidoc" Level="1" Title="DigiDoc4 Client" Display="expand" ConfigurableDirectory="APPLICATIONFOLDER">
282+
<ComponentRef Id='ProgramMenuDir4' />
283+
<ComponentRef Id="DesktopShortcut4" />
284+
<ComponentRef Id="Application4"/>
285+
<ComponentRef Id="Base"/>
286+
<ComponentGroupRef Id="Schemas"/>
287+
<?ifdef var.digidoc3 ?>
196288
<ComponentRef Id='ProgramMenuDir' />
197289
<ComponentRef Id="DesktopShortcut" />
198290
<ComponentRef Id="Application"/>
199-
<ComponentGroupRef Id="Schemas"/>
291+
<?endif?>
200292
<?ifdef var.certsLocation ?>
201293
<ComponentGroupRef Id="Certs"/>
202294
<?endif?>

0 commit comments

Comments
 (0)