From 515c75db6ae0b1510d027e46d065fdb661130b00 Mon Sep 17 00:00:00 2001
From: Mario Fetka <mario.fetka@gmail.com>
Date: Wed, 7 Sep 2016 15:00:26 +0200
Subject: [PATCH] Install System arch

---
 CLIENT_DATA/delsub32.ins                      |  99 ------------
 CLIENT_DATA/delsub3264.ins                    | 143 ++++++++++++++++++
 CLIENT_DATA/{setup32.ins => setup3264.ins}    | 128 +++++++++++-----
 .../{uninstall32.ins => uninstall3264.ins}    |  26 +++-
 OPSI/control                                  |  17 ++-
 builder-product.cfg                           |  35 +++--
 builder-targets-cb.sh                         |   1 +
 irfanview_plugins_442_setup.exe.sha1sum       |   1 -
 irfanview_plugins_442_x32_setup.exe.sha1sum   |   1 +
 irfanview_plugins_442_x64_setup.exe.sha1sum   |   1 +
 ...sha1sum => iview442g_x32_setup.exe.sha1sum |   2 +-
 iview442g_x64_setup.exe.sha1sum               |   1 +
 12 files changed, 295 insertions(+), 160 deletions(-)
 delete mode 100644 CLIENT_DATA/delsub32.ins
 create mode 100644 CLIENT_DATA/delsub3264.ins
 rename CLIENT_DATA/{setup32.ins => setup3264.ins} (58%)
 rename CLIENT_DATA/{uninstall32.ins => uninstall3264.ins} (68%)
 delete mode 100644 irfanview_plugins_442_setup.exe.sha1sum
 create mode 100644 irfanview_plugins_442_x32_setup.exe.sha1sum
 create mode 100644 irfanview_plugins_442_x64_setup.exe.sha1sum
 rename iview442g_setup.exe.sha1sum => iview442g_x32_setup.exe.sha1sum (51%)
 create mode 100644 iview442g_x64_setup.exe.sha1sum

diff --git a/CLIENT_DATA/delsub32.ins b/CLIENT_DATA/delsub32.ins
deleted file mode 100644
index 254ac81..0000000
--- a/CLIENT_DATA/delsub32.ins
+++ /dev/null
@@ -1,99 +0,0 @@
-; 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/
-
-
-Set $UninstallProgram$ = $InstallDir$ + "\" + $UninstallProg$
-Set $IniFile$ = $InstallDir$ + "\opsi-" + $ProductId$ + ".ini"
-
-if FileExists($IniFile$)
-	Set $OLD_VERSION$ = GetValueFromInifile($IniFile$,"COMMON","VERSION","")
-	Set $OLD_CREATOR_TAG$ = GetValueFromInifile($IniFile$,"COMMON","CREATOR_TAG","")
-	Set $OLD_RELEASE$ = GetValueFromInifile($IniFile$,"COMMON","RELEASE","")
-endif
-Message "Uninstalling " + $ProductId$ + " " + $OLD_VERSION$ + "-" + $OLD_CREATOR_TAG$ + $OLD_RELEASE$ + " ..."
-
-if FileExists($IniFile$)
-        Set $UninstallProg$ = GetValueFromInifile($IniFile$,"X86","UninstallProg","XXXXXXXX.exe")
-	Set $UninstallProgramOld$ = $InstallDir$ + "\" + $UninstallProg$
-	if FileExists($UninstallProgramOld$)
-		comment "Uninstall program found, starting uninstall"
-		Winbatch_uninstall_old
-		sub_check_exitcode
-	endif
-endif
-if FileExists($UninstallProgram$)
-	comment "Uninstall program found, starting uninstall"
-	Winbatch_uninstall
-	sub_check_exitcode
-endif
-
-comment "Delete files"
-Files_uninstall /32Bit
-
-comment "Cleanup registry"
-Registry_uninstall /32Bit
-
-comment "Delete program shortcuts"
-LinkFolder_uninstall
-
-[Winbatch_uninstall_old]
-"$UninstallProgramOld$" /silent
-
-[Winbatch_uninstall]
-"$UninstallProgram$" /silent
-
-
-[Files_uninstall]
-; Example for recursively deleting the installation directory:
-;
-del -sf "$InstallDir$\"
-delete -sf "%ProfileDir%\Default User\Anwendungsdaten\irfanview"
-
-[Registry_uninstall]
-; Example of deleting a registry key:
-;
-; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
-
-[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
-
diff --git a/CLIENT_DATA/delsub3264.ins b/CLIENT_DATA/delsub3264.ins
new file mode 100644
index 0000000..98d93e8
--- /dev/null
+++ b/CLIENT_DATA/delsub3264.ins
@@ -0,0 +1,143 @@
+; 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/
+
+
+Set $UninstallProgram32$ = $InstallDir32$ + "\" + $UninstallProg32$
+Set $IniFile32$ = $InstallDir32$ + "\opsi-" + $ProductId$ + ".ini"
+
+Set $UninstallProgram64$ = $InstallDir64$ + "\" + $UninstallProg64$
+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 $OLD_VERSION$ = GetValueFromInifile($IniFile32$,"COMMON","VERSION","")
+	        Set $OLD_CREATOR_TAG$ = GetValueFromInifile($IniFile32$,"COMMON","CREATOR_TAG","")
+	        Set $OLD_RELEASE$ = GetValueFromInifile($IniFile32$,"COMMON","RELEASE","")
+	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"
+	Registry_uninstall /32Bit
+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 $OLD_VERSION$ = GetValueFromInifile($IniFile64$,"COMMON","VERSION","")
+	        Set $OLD_CREATOR_TAG$ = GetValueFromInifile($IniFile64$,"COMMON","CREATOR_TAG","")
+	        Set $OLD_RELEASE$ = GetValueFromInifile($IniFile64$,"COMMON","RELEASE","")
+	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"
+	Registry_uninstall /64Bit
+endif
+
+comment "Delete program shortcuts"
+LinkFolder_uninstall
+
+[Winbatch_uninstall_old_32]
+"$UninstallProgramOld32$" /silent
+
+[Winbatch_uninstall_32]
+"$UninstallProgram32$" /silent
+
+[Files_uninstall_32]
+; Example for recursively deleting the installation directory (don't forget the trailing backslash):
+;
+delete -sf "$InstallDir32$\"
+delete -sf "%ProfileDir%\Default User\Anwendungsdaten\irfanview"
+
+[Winbatch_uninstall_old_64]
+"$UninstallProgramOld64$" /silent
+
+[Winbatch_uninstall_64]
+"$UninstallProgram64$" /silent
+
+[Files_uninstall_64]
+; Example for recursively deleting the installation directory:
+;
+del -sf "$InstallDir64$\"
+delete -sf "%ProfileDir%\Default User\Anwendungsdaten\irfanview"
+
+[Registry_uninstall]
+; Example of deleting a registry key:
+;
+; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
+
+[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
+
diff --git a/CLIENT_DATA/setup32.ins b/CLIENT_DATA/setup3264.ins
similarity index 58%
rename from CLIENT_DATA/setup32.ins
rename to CLIENT_DATA/setup3264.ins
index 62d6c00..ffe1173 100644
--- a/CLIENT_DATA/setup32.ins
+++ b/CLIENT_DATA/setup3264.ins
@@ -6,21 +6,27 @@
 [Actions]
 requiredWinstVersion >= "4.11.2.6"
 
-DefVar $UninstallProgram$
-DefVar $UninstallProgramOld$
-DefVar $IniFile$
+DefVar $UninstallProgram32$
+DefVar $UninstallProgramOld32$
+DefVar $IniFile32$
+DefVar $UninstallProgram64$
+DefVar $UninstallProgramOld64$
+DefVar $IniFile64$
 DefVar $IniCfgFile$
 DefVar $LogDir$
 DefVar $ProductId$  
 DefVar $MinimumSpace$
-DefVar $InstallDir$
+DefVar $InstallDir32$
+DefVar $InstallDir64$
 DefVar $ExitCode$
+DefVar $INST_SystemType$
+DefVar $INST_architecture$
 DefVar $OLD_VERSION$
 DefVar $OLD_CREATOR_TAG$
 DefVar $OLD_RELEASE$
 
-DefVar $language$
-Set $language$ = GetProductProperty("language", "german") 
+Set $INST_SystemType$ = GetSystemType
+set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
 Set $LogDir$ = "%SystemDrive%\tmp"
 
@@ -42,65 +48,107 @@ Set $LogDir$ = "%SystemDrive%\tmp"
 ; no white space use '-' as a seperator
 Set $MinimumSpace$    = "10 MB"
 ; the path were we find the product after the installation
-Set $InstallDir$      = "%ProgramFiles32Dir%\IrfanView"
+Set $InstallDir32$      = "%ProgramFiles32Dir%\IrfanView"
+Set $InstallDir64$      = "%ProgramFiles64Dir%\IrfanView"
 ; ----------------------------------------------------------------
 
 Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini"
 
 if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
 	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
-	isFatalError "No Space"
+	isFatalError
 	; Stop process and set installation status to failed
 else
 	comment "Show product picture"
 	ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $NAME$
 	
-	if FileExists("%ScriptPath%\delsub32.ins")
+	if FileExists("%ScriptPath%\delsub3264.ins")
 		comment "Start uninstall sub section"
-		Sub "%ScriptPath%\delsub32.ins"
+		Sub "%ScriptPath%\delsub3264.ins"
 	endif
 	
-	Message "Installing " + $ProductId$ + " "+ $VERSION$ + "-" + $CREATOR_TAG$ + $RELEASE$ + " ..."
-	
-	comment "Start setup program"
-	ChangeDirectory "%SCRIPTPATH%"
-	Winbatch_install
-	Sub_check_exitcode
+	comment "installing"
 
-	comment "Installation for german language"
-	if ($language$ = "german")
-		Message "Set german language..."
-		Files_install_german /AllNTUserProfiles
-		comment "Clean useless files and directories"
-		Files_delete_AllNTUser_german
-		Dosbatch_delete_AllNTUser_german
+	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%"
+		Winbatch_install_32
+		Sub_check_exitcode
+		comment "Copy files"
+		Files_install_32 /32Bit
+
+		comment "Installation for german language"
+		if ($language$ = "german")
+			Message "Set german language..."
+			Files_install_german /AllNTUserProfiles
+			comment "Clean useless files and directories"
+			Files_delete_AllNTUser_german
+			Dosbatch_delete_AllNTUser_german
+		endif
+
+		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%"
+		Winbatch_install_64
+		Sub_check_exitcode
+		comment "Copy files"
+		Files_install_64 /64Bit
+		comment "Patch Registry"
+
+		comment "Installation for german language"
+		if ($language$ = "german")
+			Message "Set german language..."
+			Files_install_german /AllNTUserProfiles
+			comment "Clean useless files and directories"
+			Files_delete_AllNTUser_german
+			Dosbatch_delete_AllNTUser_german
+		endif
+
+		Registry_install /64Bit
+		comment "Create shortcuts"
+		LinkFolder_install
 	endif
-	
-	comment "Copy files"
-	Files_install /32Bit
-	
-	comment "Patch Registry"
-	Registry_install /32Bit
-	
-	comment "Create shortcuts"
-	LinkFolder_install
 	
 endif
 
-[Winbatch_install]
-"$InstallExe$" /silent /folder="$InstallDir$" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers=0 /ini="%APPDATA%\irfanview"
-"$InstallPluginsExe$" /silent
-
-[Files_install]
-; copy the ini file to the InstallDir
-copy "$IniCfgFile$" "$InstallDir$"
-
 [Files_install_german]
 copy "%ScriptPath%\*.ini" "%UserProfileDir%\Anwendungsdaten\irfanview"
 
 [Files_delete_AllNTUser_german]
 delete -sf "%ProfileDir%\Public\Anwendungsdaten\irfanview"
 
+[Winbatch_install_32]
+"$Install32Exe$" /silent /folder="$InstallDir32$" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers=0 /ini="%APPDATA%\irfanview"
+"$InstallPlugins32Exe$" /silent
+
+[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%\files\*.*" "$InstallDir32$"
+
+[Winbatch_install_64]
+"$Install64Exe$" /silent /folder="$InstallDir64$" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers=0 /ini="%APPDATA%\irfanview"
+"$InstallPlugins64Exe$" /silent
+
+[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%\files\*.*" "$InstallDir64$"
+
 [Registry_install]
 ; Example of setting some values of an registry key:
 ;
diff --git a/CLIENT_DATA/uninstall32.ins b/CLIENT_DATA/uninstall3264.ins
similarity index 68%
rename from CLIENT_DATA/uninstall32.ins
rename to CLIENT_DATA/uninstall3264.ins
index 8723e86..6dbddd7 100644
--- a/CLIENT_DATA/uninstall32.ins
+++ b/CLIENT_DATA/uninstall3264.ins
@@ -6,18 +6,29 @@
 [Actions]
 requiredWinstVersion >= "4.11.2.6"
 
-DefVar $UninstallProgram$
-DefVar $UninstallProgramOld$
-DefVar $IniFile$
+DefVar $UninstallProg32$
+DefVar $UninstallProgram32$
+DefVar $UninstallProgramOld32$
+DefVar $IniFile32$
+DefVar $UninstallProg64$
+DefVar $UninstallProgram64$
+DefVar $UninstallProgramOld64$
+DefVar $IniFile64$
 DefVar $IniCfgFile$
 DefVar $LogDir$
 DefVar $ExitCode$
 DefVar $ProductId$
-DefVar $InstallDir$
+DefVar $InstallDir32$
+DefVar $InstallDir64$
+DefVar $INST_SystemType$
+DefVar $INST_architecture$
 DefVar $OLD_VERSION$
 DefVar $OLD_CREATOR_TAG$
 DefVar $OLD_RELEASE$
 
+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
@@ -33,7 +44,8 @@ Set $LogDir$ = "%SystemDrive%\tmp"
 ; ----------------------------------------------------------------
 ; - Please edit the following values                             -
 ; ----------------------------------------------------------------
-Set $InstallDir$      = "%ProgramFiles32Dir%\IrfanView"
+Set $InstallDir32$    = "%ProgramFiles32Dir%\IrfanView"
+Set $InstallDir64$    = "%ProgramFiles64Dir%\IrfanView"
 ; ----------------------------------------------------------------
 
 Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini"
@@ -43,8 +55,8 @@ ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $NAME$
 
 Message "Uninstalling " + $ProductId$ + " ..."
 
-if FileExists("%ScriptPath%\delsub32.ins")
+if FileExists("%ScriptPath%\delsub3264.ins")
 	comment "Start uninstall sub section"
-	Sub "%ScriptPath%\delsub32.ins"
+	Sub "%ScriptPath%\delsub3264.ins"
 endif
 
diff --git a/OPSI/control b/OPSI/control
index b036412..3876279 100644
--- a/OPSI/control
+++ b/OPSI/control
@@ -13,14 +13,23 @@ version: VERSION
 priority: PRIORITY
 licenseRequired: False
 productClasses: 
-setupScript: setup32.ins
-uninstallScript: uninstall32.ins
+setupScript: setup3264.ins
+uninstallScript: uninstall3264.ins
 updateScript: 
 alwaysScript: 
 onceScript: 
 customScript: 
 userLoginScript: 
 
+[ProductProperty]
+type: unicode
+name: install_architecture
+multivalue: False
+editable: False
+description: which architecture (32/64 bit) has to be installed
+values: ["32 only", "64 only", "both", "system specific"]
+default: ["system specific"]
+
 [ProductProperty]
 type: unicode
 name: language
@@ -29,3 +38,7 @@ editable: False
 description: Language selection
 values: ["default", "german"]
 default: ["german"] 
+[Package]
+version: 2
+depends: 
+incremental: False
diff --git a/builder-product.cfg b/builder-product.cfg
index 8f85618..af77403 100644
--- a/builder-product.cfg
+++ b/builder-product.cfg
@@ -17,30 +17,45 @@ TYPE="public"
 DL_FILE[0]="irfanview-icon.jpg"
 DL_SOURCE[0]="http://www.technoinsta.com/wp-content/uploads/2012/12/irfanview-icon.jpg"
 
-DL_FILE[1]="iview${VERSION//./}g_setup.exe"
+DL_FILE[1]="iview${VERSION//./}g_x32_setup.exe"
 DL_SOURCE[1]="http://www.irfanview.info/files/iview${VERSION//./}g_setup.exe"
 DL_ARCH[1]="X86"
-DL_WINST_NAME[1]=InstallExe
+DL_WINST_NAME[1]=Install32Exe
 
 
-DL_FILE[2]="irfanview_plugins_${VERSION//./}_setup.exe"
+DL_FILE[2]="irfanview_plugins_${VERSION//./}_x32_setup.exe"
 DL_SOURCE[2]="http://www.irfanview.info/files/irfanview_plugins_${VERSION//./}_setup.exe"
 DL_ARCH[2]="X86"
-DL_WINST_NAME[2]=InstallPluginsExe
+DL_WINST_NAME[2]=InstallPlugins32Exe
+
+DL_FILE[3]="iview${VERSION//./}g_x64_setup.exe"
+DL_SOURCE[3]="http://www.irfanview.info/files/iview${VERSION//./}g_x64_setup.exe"
+DL_ARCH[3]="X86"
+DL_WINST_NAME[3]=Install64Exe
+
+
+DL_FILE[4]="irfanview_plugins_${VERSION//./}_x64_setup.exe"
+DL_SOURCE[4]="http://www.fosshub.com/IrfanView.html/irfanview_plugins_x64_${VERSION//./}_setup.exe"
+DL_ARCH[4]="X86_64"
+DL_WINST_NAME[4]=InstallPlugins64Exe
 
 
 # File array index for the image showing while installing the program
 ICON_DL_INDEX=0
 
 OPSI_INI_SECTION[0]="X86"
-OPSI_INI_OPTION[0]="UninstallProg"
+OPSI_INI_OPTION[0]="UninstallProg32"
 OPSI_INI_VALUE[0]="iv_uninstall.exe"
 
-OPSI_INI_SECTION[1]="Language"
-OPSI_INI_OPTION[1]="DLL"
-OPSI_INI_VALUE[1]="DEUTSCH.DLL"
+OPSI_INI_SECTION[1]="X86_64"
+OPSI_INI_OPTION[1]="UninstallProg64"
+OPSI_INI_VALUE[1]="iv_uninstall.exe"
 
 OPSI_INI_SECTION[2]="Language"
-OPSI_INI_OPTION[2]="Lang"
-OPSI_INI_VALUE[2]="Deutsch"
+OPSI_INI_OPTION[2]="DLL"
+OPSI_INI_VALUE[2]="DEUTSCH.DLL"
+
+OPSI_INI_SECTION[3]="Language"
+OPSI_INI_OPTION[3]="Lang"
+OPSI_INI_VALUE[3]="Deutsch"
 
diff --git a/builder-targets-cb.sh b/builder-targets-cb.sh
index d60aa87..6971140 100644
--- a/builder-targets-cb.sh
+++ b/builder-targets-cb.sh
@@ -28,4 +28,5 @@ function create() {
     echo "Create"
     builder_create
     cp $INST_DIR/CLIENT_DATA/opsi-${PN}.ini $INST_DIR/CLIENT_DATA/i_view32.ini
+    cp $INST_DIR/CLIENT_DATA/opsi-${PN}.ini $INST_DIR/CLIENT_DATA/i_view64.ini
 }
\ No newline at end of file
diff --git a/irfanview_plugins_442_setup.exe.sha1sum b/irfanview_plugins_442_setup.exe.sha1sum
deleted file mode 100644
index 81e6aa6..0000000
--- a/irfanview_plugins_442_setup.exe.sha1sum
+++ /dev/null
@@ -1 +0,0 @@
-0ba08abb613a36de9a9369b75a83fde6427734d5  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86/irfanview_plugins_442_setup.exe
diff --git a/irfanview_plugins_442_x32_setup.exe.sha1sum b/irfanview_plugins_442_x32_setup.exe.sha1sum
new file mode 100644
index 0000000..b0935e7
--- /dev/null
+++ b/irfanview_plugins_442_x32_setup.exe.sha1sum
@@ -0,0 +1 @@
+0ba08abb613a36de9a9369b75a83fde6427734d5  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86/irfanview_plugins_442_x32_setup.exe
diff --git a/irfanview_plugins_442_x64_setup.exe.sha1sum b/irfanview_plugins_442_x64_setup.exe.sha1sum
new file mode 100644
index 0000000..d59a9c8
--- /dev/null
+++ b/irfanview_plugins_442_x64_setup.exe.sha1sum
@@ -0,0 +1 @@
+caacb87179b280b23239e8a96deb08ac0bd22064  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86_64/irfanview_plugins_442_x64_setup.exe
diff --git a/iview442g_setup.exe.sha1sum b/iview442g_x32_setup.exe.sha1sum
similarity index 51%
rename from iview442g_setup.exe.sha1sum
rename to iview442g_x32_setup.exe.sha1sum
index fa7f4c4..1814e58 100644
--- a/iview442g_setup.exe.sha1sum
+++ b/iview442g_x32_setup.exe.sha1sum
@@ -1 +1 @@
-6a4a956ef9131aa0fbf8e7e85be36109f385f2a1  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86/iview442g_setup.exe
+6a4a956ef9131aa0fbf8e7e85be36109f385f2a1  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86/iview442g_x32_setup.exe
diff --git a/iview442g_x64_setup.exe.sha1sum b/iview442g_x64_setup.exe.sha1sum
new file mode 100644
index 0000000..a17abc2
--- /dev/null
+++ b/iview442g_x64_setup.exe.sha1sum
@@ -0,0 +1 @@
+5bb50430d1b4b6e842efc73d0b006cab397a9761  /home/mario/.opsi-dist-cache/irfanview.irfanview-4.42/X86/iview442g_x64_setup.exe