diff options
author | lecoanet | 2005-06-22 12:05:01 +0000 |
---|---|---|
committer | lecoanet | 2005-06-22 12:05:01 +0000 |
commit | d2833aa7c02f09eff5c499dd44b9cc87a6e77f81 (patch) | |
tree | e8faa46163055d11f5d07c9ca3ba715cc1668667 /win | |
parent | 6fc29fbe6bf95c196d749c8ba8973bbafdba0667 (diff) | |
download | tkzinc-d2833aa7c02f09eff5c499dd44b9cc87a6e77f81.zip tkzinc-d2833aa7c02f09eff5c499dd44b9cc87a6e77f81.tar.gz tkzinc-d2833aa7c02f09eff5c499dd44b9cc87a6e77f81.tar.bz2 tkzinc-d2833aa7c02f09eff5c499dd44b9cc87a6e77f81.tar.xz |
Should close bug 25. With this patch, the installer will check if the Tcl/Perl/Python
version advertised in the registry is greater or equal to the minimum required version.
If some Active interpreter is not registered, a warning is issued an the install proceed
to a default location.
Diffstat (limited to 'win')
-rw-r--r-- | win/Tkzinc.wxs.in | 209 |
1 files changed, 113 insertions, 96 deletions
diff --git a/win/Tkzinc.wxs.in b/win/Tkzinc.wxs.in index 86ee7c0..d110140 100644 --- a/win/Tkzinc.wxs.in +++ b/win/Tkzinc.wxs.in @@ -14,9 +14,9 @@ <!-- Get the version and install location of the various Active products --> <!-- from the registry --> - <Property Id="RequiredTclVersion">8.4.9.0</Property> - <Property Id="RequiredPerlVersion">811</Property> - <Property Id="RequiredPythonVersion">245</Property> + <Property Id="RequiredTclVersion">8.5</Property> + <Property Id="RequiredPerlVersion">812</Property> + <Property Id="RequiredPythonVersion">246</Property> <Property Id="TkzincLongVersion">@MAJOR_VERSION@.@MINOR_VERSION@.@PATCHLEVEL@</Property> <Property Id="TkzincShortVersion">@MAJOR_VERSION@@MINOR_VERSION@</Property> @@ -36,53 +36,86 @@ </Property> <Property Id='ACTIVE_TCL_DIR'> <RegistrySearch Id='ActiveTclRegDir' Type='registry' - Root="HKLM" Key='SOFTWARE\ActiveState\ActiveTcl\[RequiredTclVersion]' /> + Root="HKLM" Key="SOFTWARE\ActiveState\ActiveTcl\[ACTIVE_TCL_VERSION]" /> </Property> <Property Id='ACTIVE_PERL_DIR'> <RegistrySearch Id='ActivePerlRegDir' Type='registry' - Root="HKLM" Key='SOFTWARE\ActiveState\ActivePerl\[RequiredPerlVersion]' /> + Root="HKLM" Key="SOFTWARE\ActiveState\ActivePerl\[ACTIVE_PERL_VERSION]" /> </Property> <Property Id='ACTIVE_PYTHON_DIR'> <RegistrySearch Id='ActivePythonRegDir' Type='registry' - Root="HKLM" Key='SOFTWARE\ActiveState\ActivePython\[RequiredPythonVersion]' /> + Root="HKLM" Key="SOFTWARE\ActiveState\ActivePython\[ACTIVE_PYTHON_VERSION]" /> </Property> - <!-- Description of the files into components --> + <!-- Assembly of the various components in selectable features and sub-features --> + + <Feature Id='Complete' Title="Tkzinc" Description='The complete package.' + TypicalDefault='install' Display='expand' Level='1'> + <Feature Id='ActiveTclZinc' Title='Tkzinc for Tcl' + Description='The Tkzinc package for ActiveTcl.' TypicalDefault='install' Level='1'> + <!-- <Condition Level='0'><![CDATA[NOT (ACTIVE_TCL_VERSION << RequiredTclVersion)]]></Condition> --> + <Feature Id='ActiveTclZincLib' Title='Tkzinc Tcl module' + Description='The Tkzinc library files and dll.' TypicalDefault='install' Level='1'> + <ComponentRef Id='TclDll' /> + </Feature> + <Feature Id='ActiveTclZincDemo' Title='Tkzinc Tcl demos' Description='The Tkzinc demo suite in Tcl.' + TypicalDefault='install' Level='1'> + <ComponentRef Id='TclDemos' /> + <ComponentRef Id='TclDemoImages' /> + <ComponentRef Id='TclDemoData' /> + </Feature> + <Feature Id='ActiveTclZincDoc' Title='Tkzinc documentation' + Description='The Tkzinc manual in HTML and pdf formats.' TypicalDefault='install' Level='1'> + <ComponentRef Id='TkzincDoc' /> + </Feature> + </Feature> + <Feature Id='ActivePerlZinc' Title='Tkzinc for Perl' + Description='The Tkzinc package for ActivePerl.' TypicalDefault='install' Level='1'> + <!-- <Condition Level='0'><![CDATA[ACTIVE_PERL_VERSION < RequiredPerlVersion]]></Condition> --> + <Feature Id='ActivePerlZincLib' Title='Tkzinc Perl module' + Description='The Tkzinc library files and dll.' TypicalDefault='install' Level='1'> + <ComponentRef Id='PerlDll' /> + <ComponentRef Id='PerlLib1' /> + <ComponentRef Id='PerlLib2' /> + </Feature> + <Feature Id='ActivePerlZincDemos' Title='Tkzinc Perl demos' + Description='The Tkzinc demo suite in Perl.' TypicalDefault='install' Level='1'> + <ComponentRef Id='PerlDemosBin' /> + <ComponentRef Id='PerlDemosContrib' /> + <ComponentRef Id='PerlDemosData' /> + <ComponentRef Id='PerlDemosScripts' /> + <ComponentRef Id='PerlDemosModules' /> + </Feature> + </Feature> + <Feature Id='ActivePythonZinc' Title='Tkzinc for Python' + Description='The Tkzinc package for ActivePython.' TypicalDefault='install' Level='1'> + <!-- <Condition Level='0'><![CDATA[ACTIVE_PYTHON_VERSION < RequiredPythonVersion]]></Condition> --> + <ComponentRef Id='PythonTcl' /> + <ComponentRef Id='PythonGlue' /> + <ComponentRef Id='PythonDemo' /> + </Feature> + </Feature> + + <!-- This table is a dummy used to force a proper order in the registry + searches (AppSearch table insert order) so that ACTIVE_TCL_VERSION is + available when ACTIVE_TCL_DIR is looked up. I'd love to know how to do + it canonically. --> + <CustomTable Id='dummy'> + <Column Id='DummyCol' Type='string' PrimaryKey='yes' /> + <Column Id='ACTIVE_TCL_VERSION' Type='string' PrimaryKey='no' /> + <Column Id='ACTIVE_PERL_VERSION' Type='string' PrimaryKey='no' /> + <Column Id='ACTIVE_PYTHON_VERSION' Type='string' PrimaryKey='no' /> + <Row> + <Data Column='DummyCol'> 0 </Data> + <Data Column='ACTIVE_TCL_VERSION'> 0 </Data> + <Data Column='ACTIVE_PERL_VERSION'> 0 </Data> + <Data Column='ACTIVE_PYTHON_VERSION'> 0 </Data> + </Row> + </CustomTable> + <!-- Description of the files into components --> <Directory Id='TARGETDIR' Name='SourceDir'> - <Directory Id='ACTIVE_PYTHON_DIR' Name='Python'> - <Directory Id='ActivePythonTcl' Name='tcl'> - <Directory Id='ActivePythonTclTkzinc' Name='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@' LongName='Tkzinc@MAJOR_VERSION@.@MINOR_VERSION@.@PATCHLEVEL@'> - <Component Id='PythonTcl' Guid='B1CF5C82-CE79-4EE2-91BB-49E3D808E6B9'> - <File Id='TkzincPythonDll' Name='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@.dll' LongName='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@@PATCHLEVEL@.dll' - DiskId='1' src='buildtcl/Tkzinc@MAJOR_VERSION@@MINOR_VERSION@@PATCHLEVEL@.dll' Vital='yes' /> - <File Id='PythonpkgIndexTcl' Name='pkgIndex.tcl' DiskId='1' src='buildtcl/pkgIndex.tcl' Vital='yes' /> - <File Id='PythonZincGraphicsTcl' Name='znGraph.tcl' LongName='zincGraphics.tcl' DiskId='1' - src='buildtcl\zincGraphics.tcl' /> - <File Id='PythonZincTextTcl' Name='znText.tcl' LongName='zincText.tcl' DiskId='1' src='buildtcl\zincText.tcl' /> - <File Id='PythonZincLogoTcl' Name='znLogo.tcl' LongName='zincLogo.tcl' DiskId='1' src='buildtcl\zincLogo.tcl' /> - </Component> - </Directory> - </Directory> - <Directory Id='PythonTclLib' Name='Lib'> - <Directory Id='PythonTclLibZinc' Name='Zinc'> - <Component Id='PythonGlue' Guid='E2A2296C-0C53-40AB-9118-85706B5C2C42'> - <File Id='ZincPy' Name='Zinc.py' DiskId='1' src='..\Python\library\Zinc.py' Vital='yes' /> - <File Id='ZincPkg' Name='__init__.py' DiskId='1' src='..\Python\library\__init__.py' Vital='yes' /> - <File Id='GraphicsPy' Name='graphics.py' DiskId='1' src='..\Python\library\graphics.py' Vital='yes' /> - <File Id='GeometryPy' Name='geometry.py' DiskId='1' src='..\Python\library\geometry.py' Vital='yes' /> - <File Id='PictorialPy' Name='pictorl.py' LongName='pictorial.py' DiskId='1' src='..\Python\library\pictorial.py' Vital='yes' /> - </Component> - </Directory> - </Directory> - <Directory Id='PythonZincDemo' Name='ZincDemo'> - <Component Id='PythonDemo' Guid='0BA2AABC-005C-4FFE-88A2-881F624E9C63'> - <File Id='TestGraphicsPy' Name='testGrph.py' LongName='testGraphics.py' DiskId='1' src='..\Python\demos\testGraphics.py' Vital='yes' /> - <File Id='PaperGif' Name='paper.gif' DiskId='1' src='..\Python\demos\paper.gif' Vital='yes' /> - </Component> - </Directory> - </Directory> <Directory Id='ACTIVE_TCL_DIR' Name='Tcl'> <Directory Id='ActiveTclLib' Name='lib'> <Directory Id='TkzincLibDir' Name='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@' LongName='Tkzinc@MAJOR_VERSION@.@MINOR_VERSION@.@PATCHLEVEL@'> @@ -390,57 +423,41 @@ </Directory> </Directory> </Directory> + + <Directory Id='ACTIVE_PYTHON_DIR' Name='Python'> + <Directory Id='ActivePythonTcl' Name='tcl'> + <Directory Id='ActivePythonTclTkzinc' Name='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@' LongName='Tkzinc@MAJOR_VERSION@.@MINOR_VERSION@.@PATCHLEVEL@'> + <Component Id='PythonTcl' Guid='B1CF5C82-CE79-4EE2-91BB-49E3D808E6B9'> + <File Id='TkzincPythonDll' Name='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@.dll' LongName='Tkzinc@MAJOR_VERSION@@MINOR_VERSION@@PATCHLEVEL@.dll' + DiskId='1' src='buildtcl/Tkzinc@MAJOR_VERSION@@MINOR_VERSION@@PATCHLEVEL@.dll' Vital='yes' /> + <File Id='PythonpkgIndexTcl' Name='pkgIndex.tcl' DiskId='1' src='buildtcl/pkgIndex.tcl' Vital='yes' /> + <File Id='PythonZincGraphicsTcl' Name='znGraph.tcl' LongName='zincGraphics.tcl' DiskId='1' + src='buildtcl\zincGraphics.tcl' /> + <File Id='PythonZincTextTcl' Name='znText.tcl' LongName='zincText.tcl' DiskId='1' src='buildtcl\zincText.tcl' /> + <File Id='PythonZincLogoTcl' Name='znLogo.tcl' LongName='zincLogo.tcl' DiskId='1' src='buildtcl\zincLogo.tcl' /> + </Component> + </Directory> + </Directory> + <Directory Id='PythonTclLib' Name='Lib'> + <Directory Id='PythonTclLibZinc' Name='Zinc'> + <Component Id='PythonGlue' Guid='E2A2296C-0C53-40AB-9118-85706B5C2C42'> + <File Id='ZincPy' Name='Zinc.py' DiskId='1' src='..\Python\library\Zinc.py' Vital='yes' /> + <File Id='ZincPkg' Name='__init__.py' DiskId='1' src='..\Python\library\__init__.py' Vital='yes' /> + <File Id='GraphicsPy' Name='graphics.py' DiskId='1' src='..\Python\library\graphics.py' Vital='yes' /> + <File Id='GeometryPy' Name='geometry.py' DiskId='1' src='..\Python\library\geometry.py' Vital='yes' /> + <File Id='PictorialPy' Name='pictorl.py' LongName='pictorial.py' DiskId='1' src='..\Python\library\pictorial.py' Vital='yes' /> + </Component> + </Directory> + </Directory> + <Directory Id='PythonZincDemo' Name='ZincDemo'> + <Component Id='PythonDemo' Guid='0BA2AABC-005C-4FFE-88A2-881F624E9C63'> + <File Id='TestGraphicsPy' Name='testGrph.py' LongName='testGraphics.py' DiskId='1' src='..\Python\demos\testGraphics.py' Vital='yes' /> + <File Id='PaperGif' Name='paper.gif' DiskId='1' src='..\Python\demos\paper.gif' Vital='yes' /> + </Component> + </Directory> + </Directory> </Directory> - <!-- Assembly of the various components in selectable features and sub-features --> - - <Feature Id='Complete' Title="Tkzinc" Description='The complete package.' - TypicalDefault='install' Display='expand' Level='1'> - <Feature Id='ActiveTclZinc' Title='Tkzinc for Tcl' - Description='The Tkzinc package for ActiveTcl.' TypicalDefault='install' Level='1'> - <Condition Level='0'> NOT ACTIVE_TCL_VERSION = RequiredTclVersion </Condition> - <Feature Id='ActiveTclZincLib' Title='Tkzinc Tcl module' - Description='The Tkzinc library files and dll.' TypicalDefault='install' Level='1'> - <ComponentRef Id='TclDll' /> - </Feature> - <Feature Id='ActiveTclZincDemo' Title='Tkzinc Tcl demos' Description='The Tkzinc demo suite in Tcl.' - TypicalDefault='install' Level='1'> - <ComponentRef Id='TclDemos' /> - <ComponentRef Id='TclDemoImages' /> - <ComponentRef Id='TclDemoData' /> - </Feature> - <Feature Id='ActiveTclZincDoc' Title='Tkzinc documentation' - Description='The Tkzinc manual in HTML and pdf formats.' TypicalDefault='install' Level='1'> - <ComponentRef Id='TkzincDoc' /> - </Feature> - </Feature> - <Feature Id='ActivePerlZinc' Title='Tkzinc for Perl' - Description='The Tkzinc package for ActivePerl.' TypicalDefault='install' Level='1'> - <Condition Level='0'> NOT ACTIVE_PERL_VERSION = RequiredPerlVersion </Condition> - <Feature Id='ActivePerlZincLib' Title='Tkzinc Perl module' - Description='The Tkzinc library files and dll.' TypicalDefault='install' Level='1'> - <ComponentRef Id='PerlDll' /> - <ComponentRef Id='PerlLib1' /> - <ComponentRef Id='PerlLib2' /> - </Feature> - <Feature Id='ActivePerlZincDemos' Title='Tkzinc Perl demos' - Description='The Tkzinc demo suite in Perl.' TypicalDefault='install' Level='1'> - <ComponentRef Id='PerlDemosBin' /> - <ComponentRef Id='PerlDemosContrib' /> - <ComponentRef Id='PerlDemosData' /> - <ComponentRef Id='PerlDemosScripts' /> - <ComponentRef Id='PerlDemosModules' /> - </Feature> - </Feature> - <Feature Id='ActivePythonZinc' Title='Tkzinc for Python' - Description='The Tkzinc package for ActivePython.' TypicalDefault='install' Level='1'> - <Condition Level='0'> NOT ACTIVE_PYTHON_VERSION = RequiredPythonVersion </Condition> - <ComponentRef Id='PythonTcl' /> - <ComponentRef Id='PythonGlue' /> - <ComponentRef Id='PythonDemo' /> - </Feature> - </Feature> - <!-- Icon used in the installer UI --> <Binary Id="Up" src="InstallerIcons\Up.ico" /> @@ -897,9 +914,9 @@ <Publish Event="NewDialog" Value="WelcomeDlg">1</Publish> </Control> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[ButtonText_Next]"> - <Publish Event="NewDialog" Value="NotAvailDlg"><![CDATA[IAgree = "Yes" AND (NOT ACTIVE_TCL_VERSION = RequiredTclVersion OR NOT ACTIVE_PERL_VERSION = RequiredPerlVersion OR NOT ACTIVE_PYTHON_VERSION = RequiredPythonVersion)]]></Publish> + <Publish Event="NewDialog" Value="NotAvailDlg"><![CDATA[IAgree = "Yes" AND (NOT (ACTIVE_TCL_VERSION << RequiredTclVersion) OR (ACTIVE_PERL_VERSION < RequiredPerlVersion) OR (ACTIVE_PYTHON_VERSION < RequiredPythonVersion))]]></Publish> <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish> - <Publish Event="NewDialog" Value="SetupTypeDlg"><![CDATA[IAgree = "Yes" AND ACTIVE_TCL_VERSION = RequiredTclVersion AND ACTIVE_PERL_VERSION = RequiredPerlVersion AND ACTIVE_PYTHON_VERSION = RequiredPythonVersion]]></Publish> + <Publish Event="NewDialog" Value="SetupTypeDlg"><![CDATA[IAgree = "Yes" AND (ACTIVE_TCL_VERSION << RequiredTclVersion) AND (ACTIVE_PERL_VERSION >= RequiredPerlVersion) AND (ACTIVE_PYTHON_VERSION >= RequiredPythonVersion)]]></Publish> <Condition Action="disable"><![CDATA[IAgree <> "Yes"]]></Condition> <Condition Action="enable">IAgree = "Yes"</Condition> </Control> @@ -924,16 +941,16 @@ <Dialog Id="NotAvailDlg" Width="370" Height="270" Title="[ProductName] [ProductVersion] [Setup]" NoMinimize="yes"> <Control Id="TclWarning" Type="Text" X="45" Y="100" Width="300" Height="20"> - <Text>Active Tcl has not been found or it is not the right version: [ACTIVE_TCL_VERSION] ([RequiredTclVersion] needed)</Text> - <Condition Action="hide">ACTIVE_TCL_VERSION = RequiredTclVersion</Condition> + <Text>Active Tcl not found or not at the right version: [ACTIVE_TCL_VERSION] ([RequiredTclVersion] or greater needed)</Text> + <Condition Action="hide"><![CDATA[ACTIVE_TCL_VERSION << RequiredTclVersion]]></Condition> </Control> <Control Id="PerlWarning" Type="Text" X="45" Y="150" Width="300" Height="15"> - <Text>Active Perl has not been found or it is not at the right version: [ACTIVE_PERL_VERSION] ([RequiredPerlVersion] needed)</Text> - <Condition Action="hide">ACTIVE_PERL_VERSION = RequiredPerlVersion</Condition> + <Text>Active Perl not found or not at the right version: [ACTIVE_PERL_VERSION] ([RequiredPerlVersion] or greater needed)</Text> + <Condition Action="hide"><![CDATA[ACTIVE_PERL_VERSION >= RequiredPerlVersion]]></Condition> </Control> <Control Id="PythonWarning" Type="Text" X="45" Y="125" Width="300" Height="20"> - <Text>Active Python has not been found or it is not the right version: [ACTIVEPYDIR] [ACTIVE_PYTHON_VERSION] ([RequiredPythonVersion] needed)</Text> - <Condition Action="hide">ACTIVE_PYTHON_VERSION = RequiredPythonVersion</Condition> + <Text>Active Python not found or not at the right version: [ACTIVE_PYTHON_VERSION] ([RequiredPythonVersion] or greater needed)</Text> + <Condition Action="hide"><![CDATA[ACTIVE_PYTHON_VERSION >= RequiredPythonVersion]]></Condition> </Control> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="[ButtonText_Back]"> <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> |