Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:blender [2014/05/28 23:39] (current)
SisterOfMercy created
Line 1: Line 1:
 +====== Blender ======
 +Adaptation of the opsi-template scripts for Blender: http://​www.blender.org/​ \\
 +Get the 32-bit and 64-bit installers from http://​www.blender.org/​download/​\\
 +Tested on Windows XP and Windows XP x64. Should work with W7, but that is scheduled for later this (or next) year.\\
  
 +So we have:\\
 +%scriptpath%\files\blender-2.70a-windows32.exe\\
 +%scriptpath%\files\blender-2.70a-windows64.exe\\
 +
 +==== control file ====
 +
 +<code winst>
 +[Package]
 +version: 1
 +depends: ​
 +incremental:​ False
 +
 +[Product]
 +type: localboot
 +id: blender
 +name: Blender
 +description:​ Blender is a free and open-source 3D computer graphics program.
 +advice: Install this application if you want to create and render 3D models and art.
 +version: 2.70a
 +priority: 0
 +licenseRequired:​ False
 +productClasses: ​
 +setupScript:​ setup3264.ins
 +uninstallScript:​ uninstall3264.ins
 +updateScript: ​
 +alwaysScript: ​
 +onceScript: ​
 +customScript: ​
 +userLoginScript: ​
 +
 +[Changelog]
 +blender (2.70a-1) testing; urgency=low
 +
 +  * Initial package
 +
 + -- ICT <​ict@gcecad-service.nl> ​ Fri, 09 May 2014 15:40:36 +0000 
 +</​code>​
 +
 +
 +==== setup3264.ins ====
 +
 +<code winst>
 +; 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/​
 +;
 +; License Management removed
 +
 +
 +[Actions]
 +requiredWinstVersion >= "​4.10.8.6"​
 +
 +;DefVar $MsiId32$
 +DefVar $UninstallProgram32$
 +;DefVar $MsiId64$
 +DefVar $UninstallProgram64$
 +DefVar $LogDir$
 +DefVar $ProductId$  ​
 +DefVar $MinimumSpace$
 +DefVar $InstallDir32$
 +DefVar $InstallDir64$
 +DefVar $ExitCode$
 +DefVar $INST_SystemType$
 +;DefVar $INST_architecture$
 +DefVar $INST_MsVersion$
 +
 +set $INST_MsVersion$ = GetMsVersionInfo
 +Set $INST_SystemType$ = GetSystemType
 +;set $INST_architecture$ = GetProductProperty("​install_architecture","​system specific"​)
 +Set $LogDir$ = "​%SystemDrive%\tmp"​
 +
 +; ----------------------------------------------------------------
 +; - 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 $ProductId$ ​      = "​blender"​
 +Set $MinimumSpace$ ​   = "1000 MB"
 +; the path were we find the product after the installation
 +Set $InstallDir32$ ​     = "​%ProgramFiles32Dir%\Blender Foundation\Blender"​
 +Set $InstallDir64$ ​     = "​%ProgramFiles64Dir%\Blender Foundation\Blender"​
 +; ----------------------------------------------------------------
 +
 +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
 +endif
 +if $INST_MsVersion$ < "​5.1"​
 + LogError "​Windows XP or newer is required for " + $ProductId$  ​
 + isFatalError
 +endif
 +
 +comment "Show product picture"​
 +ShowBitmap "​%ScriptPath%\"​ + $ProductId$ + "​.png"​ $ProductId$
 +
 +if FileExists("​%ScriptPath%\delsub3264.ins"​)
 + comment "Start uninstall sub section"​
 + Sub "​%ScriptPath%\delsub3264.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$ + "​..."​
 + comment "Start setup program"​
 + Winbatch_install_32
 + Sub_check_exitcode
 + comment "Copy files"
 + Files_install_32 /32Bit
 + comment "Patch Registry"​
 + Registry_install /32Bit
 + Registry_install_AllProfiles /​AllNTUserDats
 + 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$ + "​..."​
 + comment "Start setup program"​
 + Winbatch_install_64
 + Sub_check_exitcode
 + comment "Copy files"
 + Files_install_64 /64Bit
 + comment "Patch Registry"​
 + Registry_install /64Bit
 + Registry_install_AllProfiles /​AllNTUserDats
 + comment "​Create shortcuts"​
 + LinkFolder_install
 +endif
 +
 +
 +[Winbatch_install_32]
 +"​%ScriptPath%\files\blender-2.70a-windows32.exe"​ /S /​D="​$InstallDir32$"​
 +
 +[Files_install_32]
 +; Example of recursively copying some files into the installation directory:
 +;
 +; copy -s "​%ScriptPath%\files\*.*"​ "​$InstallDir32$"​
 +
 +[Winbatch_install_64]
 +"​%ScriptPath%\files\blender-2.70a-windows64.exe"​ /S /​D="​$InstallDir64$"​
 +
 +[Files_install_64]
 +; Example of recursively copying some files into the installation directory:
 +;
 +; copy -s "​%ScriptPath%\files\*.*"​ "​$InstallDir64$"​
 +
 +[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
 +
 +[Registry_install_AllProfiles]
 +; Remove stored start menu order
 +deletekey [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu]
 +
 +[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: <path to the program>
 +; 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: <path to the program>
 +; parameters:​ <​some_param>​
 +; working_dir:​ $InstallDir$
 +; icon_file: <path to 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
 +</​code>​
 +
 +==== uninstall3264.ins ====
 +
 +<code winst>
 +; Copyright (c) uib gmbh (www.uib.de)
 +; This sourcecode is owned by uib gmbh
 +; and published under the Terms of the General Public License.
 +; credits: http://​www.opsi.org/​en/​credits/​
 +;
 +; License Management removed
 +
 +[Actions]
 +requiredWinstVersion >= "​4.10.8.6"​
 +
 +;DefVar $MsiId32$
 +DefVar $UninstallProgram32$
 +;DefVar $MsiId64$
 +DefVar $UninstallProgram64$
 +DefVar $LogDir$
 +DefVar $ExitCode$
 +DefVar $ProductId$
 +DefVar $InstallDir32$
 +DefVar $InstallDir64$
 +DefVar $INST_SystemType$
 +;DefVar $INST_architecture$
 +
 +Set $INST_SystemType$ = GetSystemType
 +;set $INST_architecture$ = GetProductProperty("​install_architecture","​system specific"​)
 +
 +
 +Set $LogDir$ = "​%SystemDrive%\tmp"​
 +
 +; ----------------------------------------------------------------
 +; - Please edit the following values ​                            -
 +; ----------------------------------------------------------------
 +Set $ProductId$ ​      = "​blender"​
 +Set $InstallDir32$ ​   = "​%ProgramFiles32Dir%\Blender Foundation\Blender"​
 +Set $InstallDir64$ ​   = "​%ProgramFiles64Dir%\Blender Foundation\Blender"​
 +; ----------------------------------------------------------------
 +
 +
 +comment "Show product picture"​
 +ShowBitmap "​%ScriptPath%\"​ + $ProductId$ + "​.png"​ $ProductId$
 +
 +Message "​Uninstalling " + $ProductId$ + " ..."
 +
 +if FileExists("​%ScriptPath%\delsub3264.ins"​)
 + comment "Start uninstall sub section"​
 + Sub "​%ScriptPath%\delsub3264.ins"​
 +endif
 +</​code>​
 +
 +==== delsub3264.ins ====
 +
 +<code winst>
 +; Copyright (c) uib gmbh (www.uib.de)
 +; This sourcecode is owned by uib gmbh
 +; and published under the Terms of the General Public License.
 +; credits: http://​www.opsi.org/​en/​credits/​
 +;
 +; License Management removed
 +
 +
 +;​DefStringList $result$
 +;​DefStringList $result1$
 +;DefVar $appKey$
 +;DefVar $UninstallCommandList$
 +;DefVar $appString$
 +;DefVar $appKeyString$
 +;DefVar $testName$
 +;DefVar $exeString$
 +
 +;Set $appKeyString$ = "​DisplayName"​
 +;Set $appString$ = $ProductId$
 +
 +;Set $MsiId32$ = '​{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'​
 +Set $UninstallProgram32$ = $InstallDir32$ + "​\uninstall.exe"​
 +
 +;Set $MsiId64$ = '​{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'​
 +Set $UninstallProgram64$ = $InstallDir64$ + "​\uninstall.exe"​
 +
 +if ($INST_SystemType$ = "x86 System"​) ​
 +;and ($INST_architecture$ = "​system specific"​)) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "32 only")
 + Message "​Uninstalling " + $ProductId$ + "​..."​
 +
 +; Set $result$ = getRegistryKeyList32("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 +; for $app$ in $result$ do Sub_searchApp32
 +; if not ($UninstallCommandList$ = ""​)
 +; set $result1$ = splitString($UninstallCommandList$,"::"​)
 +; for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit
 +;​ sub_check_exitcode
 +; endif
 + 
 +
 + if FileExists($UninstallProgram32$)
 + comment "​Uninstall program found, starting uninstall"​
 + Winbatch_uninstall_32
 + sub_check_exitcode
 + endif
 +
 +; if not (GetRegistryStringValue32("​[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + $MsiId32$ + "] DisplayName"​) = ""​)
 +; comment "MSI id " + $MsiId32$ + " found in registry, starting msiexec to uninstall"​
 +;​ Winbatch_uninstall_msi_32
 +;​ sub_check_exitcode
 +; endif
 +
 + comment "​Delete files"
 + Files_uninstall_32 /32Bit
 + Files_uninstall_AllProfiles /​AllNtUserProfiles
 + comment "​Cleanup registry"​
 + Registry_uninstall /32Bit
 + Registry_uninstall_AllProfiles /​AllNTUserDats
 +endif
 +
 +if ($INST_SystemType$ = "64 Bit System"​) ​
 +;and (($INST_architecture$ = "​system specific"​) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "64 only"​))
 + Message "​Uninstalling " + $ProductId$ + "​..."​
 +
 +; Set $result$ = getRegistryKeyList64("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 +; for $app$ in $result$ do Sub_searchApp64
 +; if not ($UninstallCommandList$ = ""​)
 +; set $result1$ = splitString($UninstallCommandList$,"::"​)
 +; for $UninstallCommand$ in $result1$ do Winbatch_uninstall_64 /64Bit
 +;​ sub_check_exitcode
 +; endif
 +
 +; Set $result$ = getRegistryKeyList32("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 +; for $app$ in $result$ do Sub_searchApp32
 +; if not ($UninstallCommandList$ = ""​)
 +; set $result1$ = splitString($UninstallCommandList$,"::"​)
 +; for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit
 +;​ sub_check_exitcode
 +; endif
 +
 + if FileExists($UninstallProgram64$)
 + comment "​Uninstall program found, starting uninstall"​
 + Winbatch_uninstall_64
 + sub_check_exitcode
 + endif
 +
 +; if not (GetRegistryStringValue64("​[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + $MsiId64$ + "] DisplayName"​) = ""​)
 +; comment "MSI id " + $MsiId64$ + " found in registry, starting msiexec to uninstall"​
 +;​ Winbatch_uninstall_msi_64
 +;​ sub_check_exitcode
 +; endif
 +
 + comment "​Delete files"
 + Files_uninstall_64 /64Bit
 + Files_uninstall_AllProfiles /​AllNtUserProfiles
 + comment "​Cleanup registry"​
 + Registry_uninstall /64Bit
 + Registry_uninstall_AllProfiles /​AllNTUserDats
 +endif
 +
 +comment "​Delete program shortcuts"​
 +LinkFolder_uninstall
 +
 +[Winbatch_uninstall_32]
 +"​$UninstallProgram32$"​ /S
 +
 +[Files_uninstall_32]
 +delete -sf "​$InstallDir32$\"​
 +
 +[Winbatch_uninstall_64]
 +"​$UninstallProgram64$"​ /S
 +
 +[Files_uninstall_64]
 +delete -sf "​$InstallDir64$\"​
 +
 +[Files_uninstall_AllProfiles]
 +delete -sf "​%UserProfileDir%\Application Data\Blender Foundation\"​
 +delete -sf "​%UserProfileDir%\.thumbnails\"​
 +
 +[Registry_uninstall]
 +; Example of deleting a registry key:
 +;
 +; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
 +
 +[Registry_uninstall_AllProfiles]
 +
 +
 +[LinkFolder_uninstall]
 +; Example of deleting a folder from AllUsers startmenu:
 +;
 +; set_basefolder common_programs
 +; delete_subfolder $ProductId$
 +;
 +; Example of deleting a shortcut from AllUsers desktop:
 +;
 +; set_basefolder common_desktopdirectory
 +; set_subfolder ""​
 +; delete_element $ProductId$
 +
 +[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
 +
 +[Sub_searchApp32]
 +set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] " + $appKeyString$
 +Set $testName$ = GetRegistryStringValue32($appKey$)
 +if contains($testName$,​$appString$)
 +; set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] UninstallString"​
 +; Set $testName$ = GetRegistryStringValue32($appKey$)
 + ;if contains(lower($testName$),​lower("​MsiExec.exe"​))
 + set $UninstallCommandList$ = $UninstallCommandList$ + "​MsiExec.exe /x " + "​$app$"​ + " /qb-! REBOOT=ReallySuppress::"​
 + ;else
 + ; Set $testName$ = unquote($testName$,'"'​)
 + ; Set $testName$ = unquote($testName$,"'"​)
 + ; Set $exeString$ = takeString(0,​ splitString ($testName$,​ "​exe"​))
 + ; set $UninstallCommandList$ = $UninstallCommandList$ + $exeString$ + "exe /S::"
 + ;endif
 +endif
 + 
 +[Sub_searchApp64]
 +set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] " + $appKeyString$
 +Set $testName$ = GetRegistryStringValue64($appKey$)
 +if contains($testName$,​$appString$)
 +; set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] UninstallString"​
 +; Set $testName$ = GetRegistryStringValue64($appKey$)
 + ;if contains(lower($testName$),​lower("​MsiExec.exe"​))
 + set $UninstallCommandList$ = $UninstallCommandList$ + "​MsiExec.exe /x " + "​$app$"​ + " /qb-! REBOOT=ReallySuppress::"​
 + ;else
 + ; Set $testName$ = unquote($testName$,'"'​)
 + ; Set $testName$ = unquote($testName$,"'"​)
 + ; Set $exeString$ = takeString(0,​ splitString ($testName$,​ "​exe"​))
 + ; set $UninstallCommandList$ = $UninstallCommandList$ + '"'​ + $exeString$ + 'exe /​S"::'​
 + ;endif
 +endif
 +</​code>​

QR Code
QR Code userspace:blender (generated for current page)