From c1755ed6fe5b11cd2d893e95d07183e3cd455ac3 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sun, 17 Mar 2013 21:43:45 +0100 Subject: [PATCH] using lastactionstate is not working on the actial package state so a real once script based on setup scipt is created to reduce duplicate entries the setup3264.inc file was introduced that gets included in setup.ins and once.ins the control.ins was split into config.ins cleanup.ins to be included into once and setup --- CLIENT_DATA/cleanup3264.ins | 154 ++++++++++++++ .../{control3264.ins => config3264.ins} | 158 -------------- CLIENT_DATA/delsub3264.ins | 38 ---- CLIENT_DATA/once3264.ins | 193 ++++++++++++++++++ CLIENT_DATA/setup3264.inc | 25 +++ CLIENT_DATA/setup3264.ins | 48 +---- OPSI/control | 2 +- 7 files changed, 382 insertions(+), 236 deletions(-) create mode 100644 CLIENT_DATA/cleanup3264.ins rename CLIENT_DATA/{control3264.ins => config3264.ins} (52%) create mode 100644 CLIENT_DATA/once3264.ins create mode 100644 CLIENT_DATA/setup3264.inc diff --git a/CLIENT_DATA/cleanup3264.ins b/CLIENT_DATA/cleanup3264.ins new file mode 100644 index 0000000..89c7e19 --- /dev/null +++ b/CLIENT_DATA/cleanup3264.ins @@ -0,0 +1,154 @@ + +Set $IniFile32$ = $InstallDir32$ + "\opsi-" + $ProductId$ + ".ini" + +Set $IniFile64$ = $InstallDir64$ + "\opsi-" + $ProductId$ + ".ini" + +if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") + if FileExists($IniFile32$) + Set $OnceUninstallDone32$ = GetValueFromInifile($IniFile32$,"COMMON","OnceUninstallDone","false") + endif +endif + +if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) + if FileExists($IniFile64$) + Set $OnceUninstallDone64$ = GetValueFromInifile($IniFile64$,"COMMON","OnceUninstallDone","false") + endif +endif + +DefVar $once_dotnet1.1$ +Set $once_dotnet1.1$ = GetProductProperty("once_dotnet1.1", "uninstall") +DefVar $once_dotnet2.0$ +Set $once_dotnet2.0$ = GetProductProperty("once_dotnet2.0", "uninstall") +DefVar $once_dotnet3.0$ +Set $once_dotnet3.0$ = GetProductProperty("once_dotnet3.0", "uninstall") +DefVar $once_dotnet3.5$ +Set $once_dotnet3.5$ = GetProductProperty("once_dotnet3.5", "nninstall") +DefVar $once_dotnet4.0$ +Set $once_dotnet4.0$ = GetProductProperty("once_dotnet4.0", "uninstall") +DefVar $once_dotnet4.5$ +Set $once_dotnet4.5$ = GetProductProperty("once_dotnet4.5", "uninstall") +DefVar $once_msjsharp$ +Set $once_msjsharp$ = GetProductProperty("once_msjsharp", "uninstall") +DefVar $once_silver$ +Set $once_silver$ = GetProductProperty("once_silver", "uninstall") +DefVar $once_jre7$ +Set $once_jre7$ = GetProductProperty("once_jre7", "uninstall") +DefVar $once_AdobeShock$ +Set $once_AdobeShock$ = GetProductProperty("once_AdobeShock", "uninstall") +DefVar $once_basicruntimes$ +Set $once_basicruntimes$ = GetProductProperty("once_basicruntimes", "uninstall") +DefVar $once_msdx9$ +Set $once_msdx9$ = GetProductProperty("once_msdx9", "uninstall") +DefVar $once_msdxm$ +Set $once_msdxm$ = GetProductProperty("once_msdxm", "uninstall") +DefVar $once_msvc$ +Set $once_msvc$ = GetProductProperty("once_msvc", "uninstall") +DefVar $once_AdobeFlash$ +Set $once_AdobeFlash$ = GetProductProperty("once_AdobeFlash", "uninstall") + + + +if ($OnceUninstallDone32$ = "false") or ($OnceUninstallDone64$ = "false") + if ($once_dotnet1.1$ = "uninstall") + Winbatch_dotnet1.1_uninstall + endif + if ($once_dotnet2.0$ = "uninstall") + Winbatch_dotnet2.0_uninstall + endif + if ($once_dotnet3.0$ = "uninstall") + Winbatch_dotnet3.0_uninstall + endif + if ($once_dotnet3.5$ = "uninstall") + Winbatch_dotnet3.5_uninstall + endif + if ($once_dotnet4.0$ = "uninstall") + Winbatch_dotnet4.0_uninstall + endif + if ($once_dotnet4.5$ = "uninstall") + Winbatch_dotnet4.5_uninstall + endif + if ($once_msjsharp$ = "uninstall") + Winbatch_msjsharp_uninstall + endif + if ($once_silver$ = "uninstall") + Winbatch_silver_uninstall + endif + if ($once_jre7$ = "uninstall") + Dosbatch_jre7_uninstall + endif + if ($once_AdobeShock$ = "uninstall") + Winbatch_AdobeShock_uninstall + endif + if ($once_basicruntimes$ = "uninstall") + Winbatch_basicruntimes_uninstall + endif + if ($once_msdx9$ = "uninstall") + Winbatch_msdx9_uninstall + endif + if ($once_msdxm$ = "uninstall") + Winbatch_msdxm_uninstall + endif + if ($once_msvc$ = "uninstall") + Winbatch_msvc_uninstall + endif + if ($once_AdobeFlash$ = "uninstall") + Winbatch_AdobeFlash_uninstall + endif + if FileExists($IniFile32$) + Winbatch_once_inifile_32 + endif + if FileExists($IniFile64$) + Winbatch_once_inifile_64 + endif + comment "uninstall done now force Reboot" + ExitWindows /ImmediateReboot +endif + + + +[Winbatch_dotnet1.1_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 1.1 /u" + +[Winbatch_dotnet2.0_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 2.0 /u" + +[Winbatch_dotnet3.0_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 3.0 /u" + +[Winbatch_dotnet3.5_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 3.5 /u" + +[Winbatch_dotnet4.0_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 4.0 /u" + +[Winbatch_dotnet4.5_uninstall] +%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 4.5 /u" + +[Winbatch_msjsharp_uninstall] + +[Winbatch_silver_uninstall] + +[DosBatch_jre7_uninstall] +; copy "%ScriptPath%\UnInstall\Package\JRE\JavaRa.*" "$LogDir$\" +; $LogDir$\JavaRa.exe /REMOVEOLD /SILENT /UPDATEDEFS +cscript /nologo "%ScriptPath%\UnInstall\Package\JRE\JavaUninstallScript.vbs" /keeponly + +[Winbatch_AdobeShock_uninstall] + +[Winbatch_basicruntimes_uninstall] + +[Winbatch_msdx9_uninstall] + +[Winbatch_msdxm_uninstall] + +[Winbatch_msvc_uninstall] + +[Winbatch_AdobeFlash_uninstall] + + +[Winbatch_once_inifile_32] +inifile "$IniFile32$" [COMMON] OnceUninstallDone=true + +[Winbatch_once_inifile_64] +inifile "$IniFile64$" [COMMON] OnceUninstallDone=true + diff --git a/CLIENT_DATA/control3264.ins b/CLIENT_DATA/config3264.ins similarity index 52% rename from CLIENT_DATA/control3264.ins rename to CLIENT_DATA/config3264.ins index d82cb63..1acc637 100644 --- a/CLIENT_DATA/control3264.ins +++ b/CLIENT_DATA/config3264.ins @@ -1,20 +1,3 @@ - -Set $IniFile32$ = $InstallDir32$ + "\opsi-" + $ProductId$ + ".ini" - -Set $IniFile64$ = $InstallDir64$ + "\opsi-" + $ProductId$ + ".ini" - -if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") - if FileExists($IniFile32$) - Set $OnceUninstallDone32$ = GetValueFromInifile($IniFile32$,"COMMON","OnceUninstallDone","false") - endif -endif - -if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) - if FileExists($IniFile64$) - Set $OnceUninstallDone64$ = GetValueFromInifile($IniFile64$,"COMMON","OnceUninstallDone","false") - endif -endif - DefVar $MSVersion$ Set $MSVersion$ = GetMsVersionInfo @@ -57,99 +40,6 @@ DefVar $AdobeFlash$ Set $AdobeFlash$ = GetProductProperty("AdobeFlash", "install") - -DefVar $once_dotnet1.1$ -Set $once_dotnet1.1$ = GetProductProperty("once_dotnet1.1", "uninstall") -DefVar $once_dotnet2.0$ -Set $once_dotnet2.0$ = GetProductProperty("once_dotnet2.0", "uninstall") -DefVar $once_dotnet3.0$ -Set $once_dotnet3.0$ = GetProductProperty("once_dotnet3.0", "uninstall") -DefVar $once_dotnet3.5$ -Set $once_dotnet3.5$ = GetProductProperty("once_dotnet3.5", "nninstall") -DefVar $once_dotnet4.0$ -Set $once_dotnet4.0$ = GetProductProperty("once_dotnet4.0", "uninstall") -DefVar $once_dotnet4.5$ -Set $once_dotnet4.5$ = GetProductProperty("once_dotnet4.5", "uninstall") -DefVar $once_msjsharp$ -Set $once_msjsharp$ = GetProductProperty("once_msjsharp", "uninstall") -DefVar $once_silver$ -Set $once_silver$ = GetProductProperty("once_silver", "uninstall") -DefVar $once_jre7$ -Set $once_jre7$ = GetProductProperty("once_jre7", "uninstall") -DefVar $once_AdobeShock$ -Set $once_AdobeShock$ = GetProductProperty("once_AdobeShock", "uninstall") -DefVar $once_basicruntimes$ -Set $once_basicruntimes$ = GetProductProperty("once_basicruntimes", "uninstall") -DefVar $once_msdx9$ -Set $once_msdx9$ = GetProductProperty("once_msdx9", "uninstall") -DefVar $once_msdxm$ -Set $once_msdxm$ = GetProductProperty("once_msdxm", "uninstall") -DefVar $once_msvc$ -Set $once_msvc$ = GetProductProperty("once_msvc", "uninstall") -DefVar $once_AdobeFlash$ -Set $once_AdobeFlash$ = GetProductProperty("once_AdobeFlash", "uninstall") - - - -if getValue("lastactionrequest", getProductMap) = "once" - if ($OnceUninstallDone32$ = "false") or ($OnceUninstallDone64$ = "false") - if ($once_dotnet1.1$ = "uninstall") - Winbatch_dotnet1.1_uninstall - endif - if ($once_dotnet2.0$ = "uninstall") - Winbatch_dotnet2.0_uninstall - endif - if ($once_dotnet3.0$ = "uninstall") - Winbatch_dotnet3.0_uninstall - endif - if ($once_dotnet3.5$ = "uninstall") - Winbatch_dotnet3.5_uninstall - endif - if ($once_dotnet4.0$ = "uninstall") - Winbatch_dotnet4.0_uninstall - endif - if ($once_dotnet4.5$ = "uninstall") - Winbatch_dotnet4.5_uninstall - endif - if ($once_msjsharp$ = "uninstall") - Winbatch_msjsharp_uninstall - endif - if ($once_silver$ = "uninstall") - Winbatch_silver_uninstall - endif - if ($once_jre7$ = "uninstall") - Dosbatch_jre7_uninstall - endif - if ($once_AdobeShock$ = "uninstall") - Winbatch_AdobeShock_uninstall - endif - if ($once_basicruntimes$ = "uninstall") - Winbatch_basicruntimes_uninstall - endif - if ($once_msdx9$ = "uninstall") - Winbatch_msdx9_uninstall - endif - if ($once_msdxm$ = "uninstall") - Winbatch_msdxm_uninstall - endif - if ($once_msvc$ = "uninstall") - Winbatch_msvc_uninstall - endif - if ($once_AdobeFlash$ = "uninstall") - Winbatch_AdobeFlash_uninstall - endif - if FileExists($IniFile32$) - Winbatch_once_inifile_32 - endif - if FileExists($IniFile64$) - Winbatch_once_inifile_64 - endif - comment "uninstall done now force Reboot" - ExitWindows /ImmediateReboot - endif -endif - - DosInAnIcon_init_config if ($dotnet1.1$ = "install") @@ -273,51 +163,3 @@ xml ed -O -u "/settings/set[@component='AdobeFlash']/@checked" -v 1 "$LogDir$\Wi move $LogDir$\WinPKG.xml "%System%" del $LogDir$\WinPKG.xml.old - - -[Winbatch_dotnet1.1_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 1.1 /u" - -[Winbatch_dotnet2.0_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 2.0 /u" - -[Winbatch_dotnet3.0_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 3.0 /u" - -[Winbatch_dotnet3.5_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 3.5 /u" - -[Winbatch_dotnet4.0_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 4.0 /u" - -[Winbatch_dotnet4.5_uninstall] -%ScriptPath%\UnInstall\NET\cleanup_tool.exe /q:a /c:"cleanup.exe /p .NET Framework 4.5 /u" - -[Winbatch_msjsharp_uninstall] - -[Winbatch_silver_uninstall] - -[DosBatch_jre7_uninstall] -; copy "%ScriptPath%\UnInstall\Package\JRE\JavaRa.*" "$LogDir$\" -; $LogDir$\JavaRa.exe /REMOVEOLD /SILENT /UPDATEDEFS -cscript /nologo "%ScriptPath%\UnInstall\Package\JRE\JavaUninstallScript.vbs" /keeponly - -[Winbatch_AdobeShock_uninstall] - -[Winbatch_basicruntimes_uninstall] - -[Winbatch_msdx9_uninstall] - -[Winbatch_msdxm_uninstall] - -[Winbatch_msvc_uninstall] - -[Winbatch_AdobeFlash_uninstall] - - -[Winbatch_once_inifile_32] -inifile "$IniFile32$" [COMMON] OnceUninstallDone=true - -[Winbatch_once_inifile_64] -inifile "$IniFile64$" [COMMON] OnceUninstallDone=true - diff --git a/CLIENT_DATA/delsub3264.ins b/CLIENT_DATA/delsub3264.ins index 0358c4c..f02882e 100644 --- a/CLIENT_DATA/delsub3264.ins +++ b/CLIENT_DATA/delsub3264.ins @@ -18,21 +18,6 @@ if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specif endif Message "Uninstalling " + $ProductId$ + " "+ $OLD_VERSION$ + "-" + $OLD_CREATOR_TAG$ + $OLD_RELEASE$ + " 32 Bit..." - if FileExists($IniFile32$) - Set $UninstallProg32$ = GetValueFromInifile($IniFile32$,"X86","UninstallProg32","XXXXXXXX.exe") - Set $UninstallProgramOld32$ = $InstallDir32$ + "\" + $UninstallProg32$ - if FileExists($UninstallProgramOld32$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_old_32 - sub_check_exitcode - endif - endif - if FileExists($UninstallProgram32$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_32 - sub_check_exitcode - endif - comment "Delete files" Files_uninstall_32 /32Bit comment "Cleanup registry" @@ -47,21 +32,6 @@ if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system spe endif Message "Uninstalling " + $ProductId$ + " "+ $OLD_VERSION$ + "-" + $OLD_CREATOR_TAG$ + $OLD_RELEASE$ + " 64 Bit..." - if FileExists($IniFile64$) - Set $UninstallProg64$ = GetValueFromInifile($IniFile64$,"X86_64","UninstallProg64","XXXXXXXX.exe") - Set $UninstallProgramOld64$ = $InstallDir64$ + "\" + $UninstallProg64$ - if FileExists($UninstallProgramOld64$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_old_64 - sub_check_exitcode - endif - endif - if FileExists($UninstallProgram64$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_64 - sub_check_exitcode - endif - comment "Delete files" Files_uninstall_64 /64Bit comment "Cleanup registry" @@ -71,19 +41,11 @@ endif comment "Delete program shortcuts" LinkFolder_uninstall -[Winbatch_uninstall_old_32] - -[Winbatch_uninstall_32] - [Files_uninstall_32] ; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; delete -sf "$InstallDir32$\" -[Winbatch_uninstall_old_64] - -[Winbatch_uninstall_64] - [Files_uninstall_64] ; Example for recursively deleting the installation directory: ; diff --git a/CLIENT_DATA/once3264.ins b/CLIENT_DATA/once3264.ins new file mode 100644 index 0000000..de217ff --- /dev/null +++ b/CLIENT_DATA/once3264.ins @@ -0,0 +1,193 @@ +; Copyright (c) uib gmbh (www.uib.de) +; This sourcecode is owned by uib +; and published under the Terms of the General Public License. +; credits: http://www.opsi.org/en/credits/ + +[Actions] +requiredWinstVersion >= "4.11.2.6" + +DefVar $UninstallProgram32$ +DefVar $UninstallProgramOld32$ +DefVar $IniFile32$ +DefVar $UninstallProgram64$ +DefVar $UninstallProgramOld64$ +DefVar $IniFile64$ +DefVar $IniCfgFile$ +DefVar $LogDir$ +DefVar $ProductId$ +DefVar $MinimumSpace$ +DefVar $InstallDir32$ +DefVar $InstallDir64$ +DefVar $ExitCode$ +DefVar $INST_SystemType$ +DefVar $INST_architecture$ +DefVar $OLD_VERSION$ +DefVar $OLD_CREATOR_TAG$ +DefVar $OLD_RELEASE$ +DefVar $OnceUninstallDone32$ +DefVar $OnceUninstallDone64$ + +Set $INST_SystemType$ = GetSystemType +set $INST_architecture$ = GetProductProperty("install_architecture","system specific") + +Set $LogDir$ = "%SystemDrive%\tmp" + +; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh +; and adds the following variables: +; from builder-product.cfg : all variables definded by attribute WINST[index] +; from builder-product.cfg : VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE +; from opsi-builder.cfg : CREATOR_TAG CREATOR_NAME CREATOR_EMAIL +; auto generated winst-variables +; $IconFile$: path to product picture +; +@@BUILDER_VARIABLES@@ + +; ---------------------------------------------------------------- +; - Please edit the following values - +; ---------------------------------------------------------------- +;$ProductId$ should be the name of the product in opsi +; therefore please: only lower letters, no umlauts, +; no white space use '-' as a seperator +Set $MinimumSpace$ = "400 MB" +; the path were we find the product after the installation +Set $InstallDir32$ = "%ProgramFiles32Dir%\Sereby AIO" +Set $InstallDir64$ = "%ProgramFiles64Dir%\Sereby AIO" +; ---------------------------------------------------------------- + +Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini" +Set $IniFile32$ = $InstallDir32$ + "\opsi-" + $ProductId$ + ".ini" +Set $IniFile64$ = $InstallDir64$ + "\opsi-" + $ProductId$ + ".ini" + +if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) + LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ + isFatalError + ; Stop process and set installation status to failed +else + comment "Show product picture" + ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $NAME$ + + if FileExists("%ScriptPath%\cleanup3264.ins") + comment "Start uninstall sub section" + Sub "%ScriptPath%\cleanup3264.ins" + endif + + if FileExists("%ScriptPath%\config3264.ins") + comment "Start uninstall sub section" + Sub "%ScriptPath%\config3264.ins" + endif + + comment "installing" + + if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") + Message "Installing " + $ProductId$ + " "+ $VERSION$ + "-" + $CREATOR_TAG$ + $RELEASE$ + " 32 Bit..." + comment "Start setup program" + ChangeDirectory "%SCRIPTPATH%" + comment "Copy files" + Files_install_32 /32Bit + if ($java_reinstall$ = "1") + Message "Uninstalling " + "Java" + " 32 + 64 Bit..." + Dosbatch_java_reinstall + endif + Dosbatch_install_32 + Sub_check_exitcode + comment "Patch Registry" + Registry_install /32Bit + comment "Create shortcuts" + LinkFolder_install + endif + + if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) + Message "Installing " + $ProductId$ + " "+ $VERSION$ + "-" + $CREATOR_TAG$ + $RELEASE$ + " 64 Bit..." + comment "Start setup program" + ChangeDirectory "%SCRIPTPATH%" + comment "Copy files" + Files_install_64 /64Bit + if ($java_reinstall$ = "1") + Message "Uninstalling " + "Java" + " 32 + 64 Bit..." + Dosbatch_java_reinstall + endif + Dosbatch_install_64 + Sub_check_exitcode + comment "Patch Registry" + Registry_install /64Bit + comment "Create shortcuts" + LinkFolder_install + endif + + comment "Reboot" + ExitWindows /Reboot +endif + +include_insert setup3264.inc + +[Registry_install] +; Example of setting some values of an registry key: +; +; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$] +; set "name1" = "some string value" +; set "name2" = REG_DWORD:0001 +; set "name3" = REG_BINARY:00 af 99 cd + +[LinkFolder_install] +; Example of deleting a folder from AllUsers startmenu: +; +; set_basefolder common_programs +; delete_subfolder $ProductId$ +; +; Example of creating an shortcut to the installed exe in AllUsers startmenu: +; +; set_basefolder common_programs +; set_subfolder $ProductId$ +; +; set_link +; name: $ProductId$ +; target: +; parameters: +; working_dir: $InstallDir$ +; icon_file: +; icon_index: +; end_link +; +; Example of creating an shortcut to the installed exe on AllUsers desktop: +; +; set_basefolder common_desktopdirectory +; set_subfolder "" +; +; set_link +; name: $ProductId$ +; target: +; parameters: +; working_dir: $InstallDir$ +; icon_file: +; icon_index: 2 +; end_link + +[Sub_check_exitcode] +comment "Test for installation success via exit code" +set $ExitCode$ = getLastExitCode +; informations to exit codes see +; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx +; http://msdn.microsoft.com/en-us/library/aa368542.aspx +if ($ExitCode$ = "0") + comment "Looks good: setup program gives exitcode zero" +else + comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ + if ($ExitCode$ = "1605") + comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." + comment "Uninstall of a not installed product failed - no problem" + else + if ($ExitCode$ = "1641") + comment "looks good: setup program gives exitcode 1641" + comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." + else + if ($ExitCode$ = "3010") + comment "looks good: setup program gives exitcode 3010" + comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." + else + logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ + isFatalError + endif + endif + endif +endif + diff --git a/CLIENT_DATA/setup3264.inc b/CLIENT_DATA/setup3264.inc new file mode 100644 index 0000000..4566794 --- /dev/null +++ b/CLIENT_DATA/setup3264.inc @@ -0,0 +1,25 @@ +[Dosbatch_java_reinstall] +cscript /nologo "%ScriptPath%\UnInstall\Packages\JRE\JavaUninstallScript.vbs" /keeponly + +[Dosbatch_install_32] +@echo off +%ScriptDrive% +cd "%ScriptPath%\Install" +inifile "$IniFile32$" [COMMON] OnceUninstallDone=false +WinPKG.exe + +[Files_install_32] +copy "$IniCfgFile$" "$InstallDir32$" +copy -s "%ScriptPath%\Install\WinPKG.exe" "$InstallDir32$" + +[Dosbatch_install_64] +@echo off +%ScriptDrive% +cd "%ScriptPath%\Install" +inifile "$IniFile64$" [COMMON] OnceUninstallDone=false +WinPKG.exe + +[Files_install_64] +copy "$IniCfgFile$" "$InstallDir64$" +copy -s "%ScriptPath%\Install\WinPKG.exe" "$InstallDir64$" + diff --git a/CLIENT_DATA/setup3264.ins b/CLIENT_DATA/setup3264.ins index 42d73e8..36abe72 100644 --- a/CLIENT_DATA/setup3264.ins +++ b/CLIENT_DATA/setup3264.ins @@ -66,16 +66,14 @@ else comment "Show product picture" ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $NAME$ - if FileExists("%ScriptPath%\control3264.ins") - comment "Start Config sub section" - Sub "%ScriptPath%\control3264.ins" + if FileExists("%ScriptPath%\delsub3264.ins") + comment "Start uninstall sub section" + Sub "%ScriptPath%\delsub3264.ins" endif - if not (getValue("lastactionrequest", getProductMap) = "once") - if FileExists("%ScriptPath%\delsub3264.ins") - comment "Start uninstall sub section" - Sub "%ScriptPath%\delsub3264.ins" - endif + if FileExists("%ScriptPath%\config3264.ins") + comment "Start uninstall sub section" + Sub "%ScriptPath%\config3264.ins" endif comment "installing" @@ -88,7 +86,7 @@ else Files_install_32 /32Bit if ($java_reinstall$ = "1") Message "Uninstalling " + "Java" + " 32 + 64 Bit..." - Dosbatch_jre_uninstall + Dosbatch_java_reinstall endif Dosbatch_install_32 Sub_check_exitcode @@ -106,7 +104,7 @@ else Files_install_64 /64Bit if ($java_reinstall$ = "1") Message "Uninstalling " + "Java" + " 32 + 64 Bit..." - Dosbatch_jre_uninstall + Dosbatch_java_reinstall endif Dosbatch_install_64 Sub_check_exitcode @@ -120,35 +118,7 @@ else ExitWindows /Reboot endif -[Dosbatch_install_32] -@echo off -%ScriptDrive% -cd "%ScriptPath%\Install" -inifile "$IniFile32$" [COMMON] OnceUninstallDone=false -WinPKG.exe - -[Files_install_32] -; copy the ini file to the InstallDir -copy "$IniCfgFile$" "$InstallDir32$" - -; Example of recursively copying some files into the installation directory: -; -copy -s "%ScriptPath%\Install\WinPKG.exe" "$InstallDir32$" - -[Dosbatch_install_64] -@echo off -%ScriptDrive% -cd "%ScriptPath%\Install" -inifile "$IniFile64$" [COMMON] OnceUninstallDone=false -WinPKG.exe - -[Files_install_64] -; copy the ini file to the InstallDir -copy "$IniCfgFile$" "$InstallDir64$" - -; Example of recursively copying some files into the installation directory: -; -copy -s "%ScriptPath%\Install\WinPKG.exe" "$InstallDir64$" +include_insert setup3264.inc [Registry_install] ; Example of setting some values of an registry key: diff --git a/OPSI/control b/OPSI/control index 6d79c11..11f0768 100644 --- a/OPSI/control +++ b/OPSI/control @@ -17,7 +17,7 @@ setupScript: setup3264.ins uninstallScript: uninstall3264.ins updateScript: alwaysScript: -onceScript: setup3264.ins +onceScript: once3264.ins customScript: userLoginScript: