From 3279b0eed94da11f66c51c8e71bfab136be42aca Mon Sep 17 00:00:00 2001
From: Mario Fetka <mario.fetka@gmail.com>
Date: Thu, 14 Mar 2013 22:13:32 +0100
Subject: [PATCH] update to new opsi builder template

---
 CLIENT_DATA/delsub32.ins                      |  79 ---------
 CLIENT_DATA/delsub3264.ins                    | 163 ++++++++++++++++++
 CLIENT_DATA/login.ins                         |  24 +++
 CLIENT_DATA/opsi-opera.opera.ini              |   7 +
 CLIENT_DATA/{setup32.ins => setup3264.ins}    | 118 ++++++++-----
 .../{uninstall32.ins => uninstall3264.ins}    |  36 +++-
 OPSI/control                                  |  13 +-
 OperaReflective.png.sha1sum                   |   1 +
 Opera_1202_int_Setup.msi.sha1sum              |   1 -
 Opera_1204_int_Setup.exe.sha1sum              |   1 +
 Opera_1204_int_Setup_x64.exe.sha1sum          |   1 +
 builder-product.cfg                           |  28 ++-
 opera_logosvg.png.sha1sum                     |   1 -
 13 files changed, 319 insertions(+), 154 deletions(-)
 delete mode 100644 CLIENT_DATA/delsub32.ins
 create mode 100644 CLIENT_DATA/delsub3264.ins
 create mode 100644 CLIENT_DATA/login.ins
 create mode 100644 CLIENT_DATA/opsi-opera.opera.ini
 rename CLIENT_DATA/{setup32.ins => setup3264.ins} (59%)
 rename CLIENT_DATA/{uninstall32.ins => uninstall3264.ins} (54%)
 create mode 100644 OperaReflective.png.sha1sum
 delete mode 100644 Opera_1202_int_Setup.msi.sha1sum
 create mode 100644 Opera_1204_int_Setup.exe.sha1sum
 create mode 100644 Opera_1204_int_Setup_x64.exe.sha1sum
 delete mode 100644 opera_logosvg.png.sha1sum

diff --git a/CLIENT_DATA/delsub32.ins b/CLIENT_DATA/delsub32.ins
deleted file mode 100644
index 5d13bda..0000000
--- a/CLIENT_DATA/delsub32.ins
+++ /dev/null
@@ -1,79 +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/credits/
-
-
-Set $MsiId$ = '{6C1E7AA1-44E9-446D-AAB2-0DE6D9EFEAB1}'
-
-Message "Uninstalling " + $ProductId$ + " ..."
-
-if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId$ + "] DisplayName") = "")
-	comment "MSI id " + $MsiId$ + " found in registry, starting msiexec to uninstall"
-	Winbatch_uninstall_msi
-	sub_check_exitcode
-endif
-
-comment "Delete files"
-Files_uninstall /32Bit
-
-comment "Cleanup registry"
-Registry_uninstall /32Bit
-
-comment "Delete program shortcuts"
-LinkFolder_uninstall
-
-[Winbatch_uninstall_msi]
-; msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress
-
-[Files_uninstall]
-; Example for recursively deleting the installation directory (don't forget the trailing backslash):
-;
-; delete -sf "$InstallDir$\"
-
-[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..4992878
--- /dev/null
+++ b/CLIENT_DATA/delsub3264.ins
@@ -0,0 +1,163 @@
+; 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 "Disables the pop-up browser window"
+	Winbatch_killtasks_32
+
+	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 "Disables the pop-up browser window"
+	Winbatch_killtasks_64
+
+	comment "Cleanup registry"
+	Registry_uninstall /64Bit
+endif
+
+comment "Delete program shortcuts"
+LinkFolder_uninstall
+
+[Winbatch_uninstall_old_32]
+"$UninstallProgramOld32$" /uninstall /silent
+
+[Winbatch_uninstall_32]
+"$UninstallProgram32$" /uninstall /silent
+
+[Winbatch_killtasks_32]
+taskkill /F /IM iexplore.exe
+taskkill /F /IM iron.exe
+taskkill /F /IM firefox.exe
+taskkill /F /IM chrome.exe
+taskkill /F /IM opera.exe
+
+[Files_uninstall_32]
+; Example for recursively deleting the installation directory (don't forget the trailing backslash):
+;
+delete -sf "$InstallDir32$\"
+
+[Winbatch_uninstall_old_64]
+"$UninstallProgramOld64$" /uninstall /silent
+
+[Winbatch_uninstall_64]
+"$UninstallProgram64$" /uninstall /silent
+
+[Winbatch_killtasks_64]
+taskkill /F /IM iexplore.exe
+taskkill /F /IM iron.exe
+taskkill /F /IM firefox.exe
+taskkill /F /IM chrome.exe
+taskkill /F /IM opera.exe
+
+[Files_uninstall_64]
+; Example for recursively deleting the installation directory:
+;
+del -sf "$InstallDir64$\"
+
+[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/login.ins b/CLIENT_DATA/login.ins
new file mode 100644
index 0000000..7b85744
--- /dev/null
+++ b/CLIENT_DATA/login.ins
@@ -0,0 +1,24 @@
+; 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/
+
+[Actions]
+Message "Profile Patch for VLC ...."
+
+comment "Did we run this script before ? - and set version stamp in profile"
+if getValue("installationstate", getProductMap) = "installed"
+	comment "Product is installed"
+	if not (scriptWasExecutedBefore)
+		comment "loginscript was not run yet "
+		Files_profile_copy
+		Registry_currentuser_set
+	endif
+endif
+
+[Files_profile_copy]
+copy "%Scriptpath%\profiles\*.*" "%CurrentAppdataDir%\ACME"
+
+[Registry_currentuser_set]
+openkey [HKCU\Software\ACME]
+set "show_greeting_window" = "no"
diff --git a/CLIENT_DATA/opsi-opera.opera.ini b/CLIENT_DATA/opsi-opera.opera.ini
new file mode 100644
index 0000000..3bcccd3
--- /dev/null
+++ b/CLIENT_DATA/opsi-opera.opera.ini
@@ -0,0 +1,7 @@
+[X86]
+
+[X86_64]
+
+[COMMON]
+PN=name
+VERSION=version
diff --git a/CLIENT_DATA/setup32.ins b/CLIENT_DATA/setup3264.ins
similarity index 59%
rename from CLIENT_DATA/setup32.ins
rename to CLIENT_DATA/setup3264.ins
index 655bedd..e3027e9 100644
--- a/CLIENT_DATA/setup32.ins
+++ b/CLIENT_DATA/setup3264.ins
@@ -1,17 +1,32 @@
 ; 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/credits/
+; credits: http://www.opsi.org/en/credits/
 
 [Actions]
-requiredWinstVersion >= "4.10.8.6"
+requiredWinstVersion >= "4.11.2.6"
 
-DefVar $MsiId$
+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$
+
+Set $INST_SystemType$ = GetSystemType
+set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
 Set $LogDir$ = "%SystemDrive%\tmp"
 
@@ -31,67 +46,80 @@ Set $LogDir$ = "%SystemDrive%\tmp"
 ;$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$       = "opera.opera"
-Set $MinimumSpace$    = "20 MB"
+Set $MinimumSpace$    = "1 MB"
 ; the path were we find the product after the installation
-Set $InstallDir$      = "%ProgramFiles32Dir%\Opera"
+Set $InstallDir32$      = "%ProgramFiles32Dir%\Opera"
+Set $InstallDir64$      = "%ProgramFiles64Dir%\Opera x64"
 ; ----------------------------------------------------------------
 
+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
 	; Stop process and set installation status to failed
 else
 	comment "Show product picture"
-	ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
+	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$ + " ..."
-	
-	comment "Start setup program"
-	Winbatch_install
-	Sub_check_exitcode
-	
-	comment "Copy files"
-	Files_install /32Bit
-	
-	comment "Patch Registry"
-	Registry_install /32Bit
-	
-	comment "Create shortcuts"
-	LinkFolder_install
-	
-	comment "Test for installation success"
-	; Test if software marked as installed in registry
-	; if (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}] DisplayName") = "")
-	; 	logError "Fatal: After Installation 32 bit [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}] not found"
-	; 	isFatalError
-	; else
-	; 	comment "Successful Installation"
-	; 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%"
+		Winbatch_install_32
+		Sub_check_exitcode
+		comment "Copy files"
+		Files_install_32 /32Bit
+		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"
+		Registry_install /64Bit
+		comment "Create shortcuts"
+		LinkFolder_install
+	endif
+	
 endif
 
-[Winbatch_install]
-; Choose one of the following examples as basis for your installation
-; You can use $LicenseKey$ var to pass a license key to the installer
-;
-; === Nullsoft Scriptable Install System ================================================================
-;"%ScriptPath%\X86FILE" /silent /launchopera 0 /desktopshortcut 0 /quicklaunchshortcut 0 /setdefaultbrowser 0 /allusers
+[Winbatch_install_32]
+"$Install32Exe$" /silent /launchopera 0 /desktopshortcut 0 /quicklaunchshortcut 0 /setdefaultbrowser 0 /allusers
 
-; === MSI package =======================================================================================
-; You may use the parameter PIDKEY=$Licensekey$
-msiexec /i "$InstallMsi$" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
+[Files_install_32]
+; copy the ini file to the InstallDir
+copy "$IniCfgFile$" "$InstallDir32$"
 
-
-[Files_install]
 ; Example of recursively copying some files into the installation directory:
 ;
-; copy -s "%ScriptPath%\files\*.*" "$InstallDir$"
+; copy -s "%ScriptPath%\files\*.*" "$InstallDir32$"
+
+[Winbatch_install_64]
+"$Install364Exe$" /silent /launchopera 0 /desktopshortcut 0 /quicklaunchshortcut 0 /setdefaultbrowser 0 /allusers
+
+[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 54%
rename from CLIENT_DATA/uninstall32.ins
rename to CLIENT_DATA/uninstall3264.ins
index 22c0860..bef57bd 100644
--- a/CLIENT_DATA/uninstall32.ins
+++ b/CLIENT_DATA/uninstall3264.ins
@@ -1,16 +1,33 @@
 ; 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/credits/
+; credits: http://www.opsi.org/en/credits/
 
 [Actions]
-requiredWinstVersion >= "4.10.8.6"
+requiredWinstVersion >= "4.11.2.6"
 
-DefVar $MsiId$
+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"
 
@@ -27,18 +44,19 @@ Set $LogDir$ = "%SystemDrive%\tmp"
 ; ----------------------------------------------------------------
 ; - Please edit the following values                             -
 ; ----------------------------------------------------------------
-Set $ProductId$       = "opera.opera"
-Set $InstallDir$      = "%ProgramFiles32Dir%\Opera"
+Set $InstallDir32$    = "%ProgramFiles32Dir%\Opera"
+Set $InstallDir64$    = "%ProgramFiles64Dir%\Opera x64"
 ; ----------------------------------------------------------------
 
+Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini"
 
 comment "Show product picture"
-ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
+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 4b39643..7a83e52 100644
--- a/OPSI/control
+++ b/OPSI/control
@@ -13,20 +13,11 @@ 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"]
-
diff --git a/OperaReflective.png.sha1sum b/OperaReflective.png.sha1sum
new file mode 100644
index 0000000..0ed520f
--- /dev/null
+++ b/OperaReflective.png.sha1sum
@@ -0,0 +1 @@
+cebf136e9c3639d7e66b61dbfe5bf18b36d85e1f  /home/mario/.opsi-dist-cache/opera.opera-12.04//OperaReflective.png
diff --git a/Opera_1202_int_Setup.msi.sha1sum b/Opera_1202_int_Setup.msi.sha1sum
deleted file mode 100644
index 6126a3e..0000000
--- a/Opera_1202_int_Setup.msi.sha1sum
+++ /dev/null
@@ -1 +0,0 @@
-a47a1375a89f6bcfbf95e074e7eddde58ec1ccae  /home/mario/.opsi-dist-cache/opera.opera-12.02/X86/Opera_1202_int_Setup.msi
diff --git a/Opera_1204_int_Setup.exe.sha1sum b/Opera_1204_int_Setup.exe.sha1sum
new file mode 100644
index 0000000..12014d5
--- /dev/null
+++ b/Opera_1204_int_Setup.exe.sha1sum
@@ -0,0 +1 @@
+da39a3ee5e6b4b0d3255bfef95601890afd80709  /home/mario/.opsi-dist-cache/opera.opera-12.04/X86/Opera_1204_int_Setup.exe
diff --git a/Opera_1204_int_Setup_x64.exe.sha1sum b/Opera_1204_int_Setup_x64.exe.sha1sum
new file mode 100644
index 0000000..737d2e5
--- /dev/null
+++ b/Opera_1204_int_Setup_x64.exe.sha1sum
@@ -0,0 +1 @@
+da39a3ee5e6b4b0d3255bfef95601890afd80709  /home/mario/.opsi-dist-cache/opera.opera-12.04/X86/Opera_1204_int_Setup_x64.exe
diff --git a/builder-product.cfg b/builder-product.cfg
index e89365e..3b2a52b 100644
--- a/builder-product.cfg
+++ b/builder-product.cfg
@@ -3,8 +3,9 @@
 ############################
 VENDOR="opera.com"
 PN="opera.opera"
-VERSION="12.02"
-UVERSION="1202"
+NAME="Opera"
+DESCRIPTION="Der Browser der Zukunft"
+VERSION="12.04"
 RELEASE="3"
 PRIORITY="0"
 ADVICE=""
@@ -14,15 +15,26 @@ ADVICE=""
 TYPE="public"
 
   
-DL_FILE[0]="opera_logosvg.png"
-DL_SOURCE[0]="http://www.kernreaktor.net/wp-content/uploads/2009/03/opera_logosvg.png"
+DL_FILE[0]="OperaReflective.png"
+DL_SOURCE[0]="http://rocketdock.com/images/screenshots/OperaReflective.png"
 
-DL_FILE[1]="Opera_${UVERSION}_int_Setup.msi"
-DL_SOURCE[1]="ftp://ftp.opera.com/pub/opera/win/${UVERSION}/autoupdate/Opera_${UVERSION}_int_Setup.msi"
-#DL_SOURCE[1]="ftp://ftp.opera.com/pub/opera/win/${UVERSION}/autoupdate/Opera_${UVERSION}_1403_in.msi"
+DL_FILE[1]="Opera_${VERSION//./}_int_Setup.exe"
+DL_SOURCE[1]="ftp://ftp.opera.com/pub/opera/win/${VERSION//./}/int/Opera_${VERSION//./}_int_Setup.exe"
 DL_ARCH[1]="X86"
-DL_WINST_NAME[1]=InstallMsi
+DL_WINST_NAME[1]=Install32Exe
+
+DL_FILE[2]="Opera_${VERSION//./}_int_Setup_x64.exe"
+DL_SOURCE[2]="ftp://ftp.opera.com/pub/opera/win/${VERSION//./}/int/Opera_${VERSION//./}_int_Setup_x64.exe"
+DL_ARCH[2]="X86_64"
+DL_WINST_NAME[2]=Install64Exe
 
 # File array index for the image showing while installing the program
 ICON_DL_INDEX=0
 
+OPSI_INI_SECTION[0]="X86"
+OPSI_INI_OPTION[0]="UninstallProg32"
+OPSI_INI_VALUE[0]="Opera.exe"
+
+OPSI_INI_SECTION[1]="X86_64"
+OPSI_INI_OPTION[1]="UninstallProg64"
+OPSI_INI_VALUE[1]="Opera.exe"
diff --git a/opera_logosvg.png.sha1sum b/opera_logosvg.png.sha1sum
deleted file mode 100644
index 8d667af..0000000
--- a/opera_logosvg.png.sha1sum
+++ /dev/null
@@ -1 +0,0 @@
-c371b49db6e19cdb3f41b413204cbd6d8de4a870  /usr/portage/distfiles/opera_logosvg.png