Differences

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

Link to this comparison view

userspace:projectlibre [2014/05/29 00:23] (current)
SisterOfMercy created
Line 1: Line 1:
 +====== ProjectLibre ======
 +Adaptation of the opsi-template scripts for ProjectLibre. \\
 +ProjectLibre is an open-source fork of OpenProj. Before it was OpenProj it was even something else: http://​en.wikipedia.org/​wiki/​ProjectLibre\\
 +Get the MSI here: http://​sourceforge.net/​projects/​projectlibre/​files/​ProjectLibre/​1.5.9/​\\
  
 +
 +==== control file ====
 +
 +<code winst>
 +[Package]
 +version: 1
 +depends: ​
 +incremental:​ False
 +
 +[Product]
 +type: localboot
 +id: projectlibre
 +name: ProjectLibre
 +description:​ ProjectLibre is a project management software system.
 +advice: Install this fork of OpenProj if you need a Microsoft Project-style project management suite.
 +version: 1.5.9
 +priority: 0
 +licenseRequired:​ False
 +productClasses: ​
 +setupScript:​ setup3264.ins
 +uninstallScript:​ uninstall3264.ins
 +updateScript: ​
 +alwaysScript: ​
 +onceScript: ​
 +customScript: ​
 +userLoginScript: ​
 +
 +[ProductDependency]
 +action: setup
 +requiredProduct:​ java-runtime
 +requiredStatus:​ installed
 +
 +[Changelog]
 +projectlibre (1.5.9-1) testing; urgency=low
 +
 +  * Initial package
 +
 + -- ICT <​ict@gcecad-service.nl> ​ Thu, 08 May 2014 14:58:19 +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$ ​      = "​projectlibre"​
 +Set $MinimumSpace$ ​   = "500 MB"
 +; the path were we find the product after the installation
 +Set $InstallDir32$ ​     = "​%ProgramFiles32Dir%\ProjectLibre"​
 +;Set $InstallDir64$ ​     = "​%ProgramFiles64Dir%\<​path to the product>"​
 +; ----------------------------------------------------------------
 +
 +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_32
 +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_32
 + 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_64
 +endif
 +
 +
 +[Winbatch_install_32]
 +"​%SystemRoot%\system32\msiexec.exe"​ /qb! /package "​%ScriptPath%\files\projectlibre-1.5.9.msi"​ ALLUSERS=2
 +
 +;​[Files_install_32]
 +
 +;​[Winbatch_install_64]
 +
 +;​[Files_install_64]
 +
 +;​[Registry_install]
 +
 +[Registry_install_AllProfiles]
 +openkey [HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\projity\dialog]
 +set "​validated/​License"​ = "​true"​
 +set "​user/​Email"​ = ""​
 +set "/​Show/​Tip/​On/​Startup"​ = "​false"​
 +
 +; Remove stored start menu order
 +deletekey [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu]
 +
 +[LinkFolder_install_32]
 +set_basefolder common_programs
 +set_subfolder ProjectLibre
 +set_link
 + name: ProjectLibre
 + ​ target:​ "​%ProgramFiles32Dir%\Java\jre7\bin\javaw.exe"​
 + ​ parameters:​ -Xms128m -Xmx768m -jar "​$InstallDir32$\projectlibre.jar"​
 + ​ working_dir:​ $InstallDir32$
 + ​ icon_file:​ "​$InstallDir32$\projectlibre.exe"​
 + ​ icon_index:​ 0
 +end_link
 +
 +[LinkFolder_install_64]
 +set_basefolder common_programs
 +set_subfolder ProjectLibre
 +set_link
 + name: ProjectLibre
 + ​ target:​ "​%ProgramFiles64Dir%\Java\jre7\bin\javaw.exe"​
 + ​ parameters:​ -Xms128m -Xmx768m -jar "​$InstallDir32$\projectlibre.jar"​
 + ​ working_dir:​ $InstallDir32$
 + ​ icon_file:​ "​$InstallDir32$\projectlibre.exe"​
 + ​ icon_index:​ 0
 +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$ ​      = "​projectlibre"​
 +Set $InstallDir32$ ​   = "​%ProgramFiles32Dir%\ProjectLibre"​
 +;Set $InstallDir64$ ​   = "​%ProgramFiles64Dir%\<​path to the product>"​
 +; ----------------------------------------------------------------
 +
 +
 +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$ = "​ProjectLibre"​
 +
 +;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
 + 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_32 /32Bit
 + comment "​Cleanup registry"​
 + Registry_uninstall /64Bit
 + Registry_uninstall_AllProfiles /​AllNTUserDats
 +endif
 +
 +comment "​Delete program shortcuts"​
 +LinkFolder_uninstall
 +
 +[Winbatch_uninstall_32]
 +$UninstallCommand$
 +
 +[Files_uninstall_32]
 +delete -sf "​$InstallDir32$\"​
 +
 +[Winbatch_uninstall_64]
 +$UninstallCommand$
 +
 +;​[Files_uninstall_64]
 +;delete -sf "​$InstallDir64$\"​
 +
 +[Registry_uninstall]
 +; Example of deleting a registry key:
 +;
 +; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
 +
 +[Registry_uninstall_AllProfiles]
 +deletekey [HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\projity]
 +
 +[LinkFolder_uninstall]
 +set_basefolder common_programs
 +delete_subfolder ProjectLibre
 +
 +
 +[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:projectlibre (generated for current page)