Adaptation of the opsi-template scripts for GIMP.
Get your windows installation here: http://download.gimp.org/pub/gimp/v2.8/windows/
we have the following files:
%scriptpath%\files\gimp32.inf
%scriptpath%\files\gimp64.inf
%scriptpath%\files\gimp-2.8.10-setup.exe
%scriptpath%\files\sessionrc
Each luser will get the settings of sessionrc, this is a maximised windows with docked toolbars.
[Setup] Lang=en Group=(Default) NoIcons=0 SetupType=custom Components=gimp32,deps32,deps32\wimp,gs Tasks=
[Setup] Lang=en Group=(Default) NoIcons=0 SetupType=custom Components=gimp64,deps64,deps64\wimp,gs Tasks=
# GIMP sessionrc # # This file takes session-specific info (that is info, you want to keep # between two GIMP sessions). You are not supposed to edit it manually, but # of course you can do. The sessionrc will be entirely rewritten every time # you quit GIMP. If this file isn't found, defaults are used. (session-info "toplevel" (factory-entry "gimp-single-image-window") (position 0 0) (size 1152 817) (open-on-exit) (aux-info (left-docks-width "175") (right-docks-width "210") (maximized "yes")) (gimp-toolbox (side left) (book (current-page 0) (dockable "gimp-tool-options" (tab-style automatic) (aux-info (show-button-bar "true"))))) (gimp-dock (side right) (book (current-page 0) (dockable "gimp-layer-list" (tab-style automatic) (preview-size 32) (aux-info (show-button-bar "true"))) (dockable "gimp-channel-list" (tab-style automatic) (preview-size 32) (aux-info (show-button-bar "true"))) (dockable "gimp-vectors-list" (tab-style automatic) (preview-size 32) (aux-info (show-button-bar "true"))) (dockable "gimp-undo-history" (tab-style automatic) (aux-info (show-button-bar "true")))) (book (position 405) (current-page 0) (dockable "gimp-brush-grid" (tab-style automatic) (aux-info (show-button-bar "true"))) (dockable "gimp-pattern-grid" (tab-style automatic) (aux-info (show-button-bar "true"))) (dockable "gimp-gradient-list" (tab-style automatic) (aux-info (show-button-bar "true")))))) (hide-docks no) (single-window-mode yes) (last-tip-shown 0) # end of sessionrc
[Package] version: 1 depends: incremental: False [Product] type: localboot id: gimp name: GIMP is the GNU Image Manipulation Program description: GIMP is a raster graphics editor used for image retouching and editing. advice: Install this application if you need an Adobe Photoshop replacement. version: 2.8.10 priority: 0 licenseRequired: False productClasses: setupScript: setup3264.ins uninstallScript: uninstall3264.ins updateScript: alwaysScript: onceScript: customScript: userLoginScript: [Changelog] gimp (2.8.10-1) testing; urgency=low * Initial package -- ICT <ict@gcecad-service.nl> Tue, 06 May 2014 15:17:14 +0000
; 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$ = "gimp" Set $MinimumSpace$ = "500 MB" ; the path were we find the product after the installation Set $InstallDir32$ = "%ProgramFiles32Dir%\GIMP 2" Set $InstallDir64$ = "%ProgramFiles64Dir%\GIMP 2" ; ---------------------------------------------------------------- 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\gimp-2.8.10-setup.exe" /VERYSILENT /NORESTART /DIR="$InstallDir32$" /LOADINF="%ScriptPath%\files\gimp32.inf" [Files_install_32] copy "%ScriptPath%\files\sessionrc" "$InstallDir32$\etc\gimp\2.0" [Winbatch_install_64] "%ScriptPath%\files\gimp-2.8.10-setup.exe" /VERYSILENT /NORESTART /DIR="$InstallDir64$" /LOADINF="%ScriptPath%\files\gimp64.inf" [Files_install_64] copy "%ScriptPath%\files\sessionrc" "$InstallDir64$\etc\gimp\2.0" [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
; 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$ = "gimp" Set $InstallDir32$ = "%ProgramFiles32Dir%\GIMP 2" Set $InstallDir64$ = "%ProgramFiles64Dir%\GIMP 2" ; ---------------------------------------------------------------- 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
; 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$ + "\uninst\unins000.exe" ;Set $MsiId64$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' Set $UninstallProgram64$ = $InstallDir64$ + "\uninst\unins000.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_64 /64Bit comment "Cleanup registry" Registry_uninstall /64Bit Registry_uninstall_AllProfiles /AllNTUserDats endif comment "Delete program shortcuts" LinkFolder_uninstall [Winbatch_uninstall_32] "$UninstallProgram32$" /VERYSILENT /NORESTART ;[Winbatch_uninstall_msi_32] ;msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress [Files_uninstall_32] ; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; ; delete -sf "$InstallDir32$\" [Winbatch_uninstall_64] "$UninstallProgram64$" /VERYSILENT /NORESTART ;[Winbatch_uninstall_msi_64] ;msiexec /x $MsiId64$ /qb! REBOOT=ReallySuppress [Files_uninstall_64] ; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; ; delete -sf "$InstallDir64$\" [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