/* Copyright (c) Oracle Corporation 1995. All Rights Reserved */ /***************************************************************************** NAME rsf80.ins - WinNT V3 installation script for ORACLE Required Support Files. DESCRIPTION This script installs the RSF files. OWNER Tony Rodgers MODIFIED DD-MMM-YY Reason rxfernan 4/98 OCSM Compliance. ekhor 11/24/97 reboot to complete install for WIN_95 if msvc dlls are in used snakai 08/18/97 8.0.4 rpingte 12/11/96 Add trace mmacdona 03/13/96 Make Win32 Common ljiang 07/20/95 7.2 syau 07/01/94 7.1.3 HA! 04/28/94 7.1.2 and 3.0.10.2 trodgers 10-APR-92 Created. *****************************************************************************/ { /************************************************************************** Start main logic... **************************************************************************/ if (doit) { ins_ratchet = "8.0.5.0.0"; /* OCSM Compliance */ { Win32_register_OCSM_product(); } [ 'default: win32_ocsm_register_product(); ] /* Copy shrdll group. */ copy(shrdll); /* Register the groups in the map file and specify which should get copied over under the three OCSM installation modes. */ win32_register_ocsm_group(deinstl, 'MAXMODE); win32_register_ocsm_group(msvcdll, 'MAXMODE); win32_register_ocsm_group(mfcdll, 'MAXMODE); win32_register_ocsm_group(commdll, 'MAXMODE); win32_register_ocsm_group(dll, 'MAXMODE); win32_register_ocsm_group(msg, 'MAXMODE); win32_register_ocsm_group(sql, 'MAXMODE); win32_register_ocsm_group(nlsdata, 'MAXMODE); win32_register_ocsm_group(user, 'MAXMODE); win32_register_ocsm_group(shrdll, 'MAXMODE); win32_register_ocsm_group(deinstl, 'MEDMODE); win32_register_ocsm_group(msvcdll, 'MEDMODE); win32_register_ocsm_group(mfcdll, 'MEDMODE); win32_register_ocsm_group(commdll, 'MEDMODE); win32_register_ocsm_group(dll, 'MEDMODE); win32_register_ocsm_group(msg, 'MEDMODE); win32_register_ocsm_group(sql, 'MEDMODE); win32_register_ocsm_group(nlsdata, 'MEDMODE); win32_register_ocsm_group(user, 'MEDMODE); win32_register_ocsm_group(shrdll, 'MEDMODE); win32_register_ocsm_group(deinstl, 'MINMODE); win32_register_ocsm_group(msvcdll, 'MINMODE); win32_register_ocsm_group(mfcdll, 'MINMODE); win32_register_ocsm_group(commdll, 'MINMODE); win32_register_ocsm_group(dll, 'MINMODE); win32_register_ocsm_group(msg, 'MINMODE); win32_register_ocsm_group(sql, 'MINMODE); win32_register_ocsm_group(nlsdata, 'MINMODE); win32_register_ocsm_group(user, 'MINMODE); win32_register_ocsm_group(shrdll, 'MINMODE); /* Register the deinst groups depending on whether 7.0.x or 7.1.x */ /* of RSF has been installed. */ if(registered("ntrsf70")) { win32_register_ocsm_group(deinstl70, nls_abbreviation, 'MAXMODE); win32_register_ocsm_group(deinstl70, nls_abbreviation, 'MEDMODE); win32_register_ocsm_group(deinstl70, nls_abbreviation, 'MINMODE); } if(registered("ntrsf71")) { win32_register_ocsm_group(deinstl71, nls_abbreviation, 'MAXMODE); win32_register_ocsm_group(deinstl71, nls_abbreviation, 'MEDMODE); win32_register_ocsm_group(deinstl71, nls_abbreviation, 'MINMODE); } /* Register any variables in the map file that are not Installer variables. */ win32_register_map_variable("CORE40"); win32_register_map_variable("NLSRTL33"); win32_register_map_variable("OTRACE80"); win32_register_map_variable("PLSQL80"); win32_register_map_variable("PRO80"); win32_register_map_variable("RDBMS80"); win32_register_map_variable("WINSYS"); /* Register product variables or keys created in the Windows registry by this INS script. */ /* Associated with calls to: modify(...) later on in the code. */ /* First, define the key and subkey. */ okey = "HKEY_LOCAL_MACHINE"; osubkey = "SOFTWARE\ORACLE"; win32_register_key(okey, osubkey, "RDBMS80", 'REPLICATE); win32_register_key(okey, osubkey, "PLSQL80", 'REPLICATE); win32_register_key(okey, osubkey, "CORE40", 'REPLICATE); win32_register_key(okey, osubkey, "NLSRTL33", 'REPLICATE); win32_register_key(okey, osubkey, "ORA_NLS33", 'REPLICATE); win32_register_key(okey, osubkey, "PRO80", 'REPLICATE); win32_register_key(okey, osubkey, "OTRACE80", 'REPLICATE); /* End OCSM Compliance */ execute("%installer_home%\%operating_system%.ins"); permit_retry_operations = TRUE; ui_product(product_label); ui_action(instantiate(installing_scripts)); copy(deinstl, nls_abbreviation); if (registered("ntrsf70")) copy(deinstl70, nls_abbreviation); if (registered("ntrsf71")) copy(deinstl71, nls_abbreviation); ui_action(instantiate(installing_dlls)); /*** Set permit_retry_operations to FALSE first, so that we don't get cryptic error ***/ permit_retry_operations = FALSE; /* rsf_in_use is a boolean which is true until the copy(*) command is succesful. */ /* This is how we allow the user to stop services and/or applications using RSF and continue installing */ rsf_in_use = TRUE; while(rsf_in_use) { write_error_occured = FALSE; { copy(dll); overwrite_mode = 'UPDATE; copy(olddll); } [ 'WRITE_ERROR: { /* If in silent mode signal an error to avoid an infinite loop. */ if(silent_mode) signal('CANCEL, inUse_prompt); information_dialog(inUse_prompt, inUse_content, inUse_help); write_error_occured = TRUE; continue(); } ] if(not(write_error_occured)) { rsf_in_use = FALSE; } } /* Copy only if earlier version exists or it doesn't exist at all. */ overwrite_mode = 'UPDATE; /* rsf_in_use is a boolean which is true until the copy(*) command is succesful. */ /* This is how we allow the user to stop services and/or applications using RSF and continue installing */ rsf_in_use = TRUE; while(rsf_in_use) { write_error_occured = FALSE; { copy(commdll); } [ 'WRITE_ERROR: { /* If in silent mode signal an error to avoid an infinite loop. */ if(silent_mode) signal('CANCEL, inUse_prompt); information_dialog(inUse_prompt, inUse_content, inUse_help); write_error_occured = TRUE; continue(); } ] if(not(write_error_occured)) { rsf_in_use = FALSE; } } /*** Now set permit_retry_operations back to TRUE ***/ #if (platform() == "nt") permit_retry_operations = FALSE; wininit = "%windir%\wininit.ini"; rename_group = "rename"; copy_msft_dlls = true; /* Set back to default. */ overwrite_mode = 'ALWAYS; copy(msvcdll); copy(mfcdll); msvcrt40 = "%winsys%\msvcrt40.dll"; msvcrt40new = "%winsys%\msvcrt40.new"; msvcrt40old = "%winsys%\msvcrt40.old"; if (not(exists(msvcrt40))) { { move_file(msvcrt40new, msvcrt40); } [ 'DEFAULT: copy_file(msvcrt40new, msvcrt40); ] } else { { version_no = windows_file_version(msvcrt40); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(msvcrt40new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(msvcrt40, msvcrt40old); move_file(msvcrt40new, msvcrt40); } [ 'DEFAULT: { if (platform() == "nt") copy_file(msvcrt40new, msvcrt40); else { copy_msft_dlls = false; modify(msvcrt40old,msvcrt40,wininit,rename_group); modify(msvcrt40,msvcrt40new,wininit,rename_group); } } ] } else { { remove_file(msvcrt40new); } [ 'DEFAULT: continue(); ] } } msvcrt = "%winsys%\msvcrt.dll"; msvcrtnew = "%winsys%\msvcrt.new"; msvcrtold = "%winsys%\msvcrt.old"; if (not(exists(msvcrt))) { { move_file(msvcrtnew, msvcrt); } [ 'DEFAULT: copy_file(msvcrtnew, msvcrt); ] } else { { version_no = windows_file_version(msvcrt); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(msvcrtnew); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(msvcrt, msvcrtold); move_file(msvcrtnew, msvcrt); } [ 'DEFAULT: { if (platform() == "nt") copy_file(msvcrtnew, msvcrt); else { copy_msft_dlls = false; modify(msvcrtold,msvcrt,wininit,rename_group); modify(msvcrt,msvcrtnew,wininit,rename_group); } } ] } else { { remove_file(msvcrtnew); } [ 'DEFAULT: continue(); ] } } msvcirt = "%winsys%\msvcirt.dll"; msvcirtnew = "%winsys%\msvcirt.new"; msvcirtold = "%winsys%\msvcirt.old"; if (not(exists(msvcirt))) { { move_file(msvcirtnew, msvcirt); } [ 'DEFAULT: copy_file(msvcirtnew, msvcirt); ] } else { { version_no = windows_file_version(msvcirt); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(msvcirtnew); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(msvcirt, msvcirtold); move_file(msvcirtnew, msvcirt); } [ 'DEFAULT: { if (platform() == "nt") copy_file(msvcirtnew, msvcirt); else { copy_msft_dlls = false; modify(msvcirtold,msvcirt,wininit,rename_group); modify(msvcirt,msvcirtnew,wininit,rename_group); } } ] } else { { remove_file(msvcirtnew); } [ 'DEFAULT: continue(); ] } } mfc40 = "%winsys%\mfc40.dll"; mfc40new = "%winsys%\mfc40.new"; mfc40old = "%winsys%\mfc40.old"; if (not(exists(mfc40))) { { move_file(mfc40new, mfc40); } [ 'DEFAULT: copy_file(mfc40new, mfc40); ] } else { { version_no = windows_file_version(mfc40); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(mfc40new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(mfc40, mfc40old); move_file(mfc40new, mfc40); } [ 'DEFAULT: { if (platform() == "nt") copy_file(mfc40new, mfc40); else { copy_msft_dlls = false; modify(mfc40old,mfc40,wininit,rename_group); modify(mfc40,mfc40new,wininit,rename_group); } } ] } else { { remove_file(mfc40new); } [ 'DEFAULT: continue(); ] } } mfc42 = "%winsys%\mfc42.dll"; mfc42new = "%winsys%\mfc42.new"; mfc42old = "%winsys%\mfc42.old"; if (not(exists(mfc42))) { { move_file(mfc42new, mfc42); } [ 'DEFAULT: copy_file(mfc42new, mfc42); ] } else { { version_no = windows_file_version(mfc42); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(mfc42new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(mfc42, mfc42old); move_file(mfc42new, mfc42); } [ 'DEFAULT: { if (platform() == "nt") copy_file(mfc42new, mfc42); else { copy_msft_dlls = false; modify(mfc42old,mfc42,wininit,rename_group); modify(mfc42,mfc42new,wininit,rename_group); } } ] } else { { remove_file(mfc42new); } [ 'DEFAULT: continue(); ] } } olepro32 = "%winsys%\olepro32.dll"; olepro32new = "%winsys%\olepro32.new"; olepro32old = "%winsys%\olepro32.old"; if (not(exists(olepro32))) { { move_file(olepro32new, olepro32); } [ 'DEFAULT: copy_file(olepro32new, olepro32); ] } else { { version_no = windows_file_version(olepro32); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(olepro32new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(olepro32, olepro32old); move_file(olepro32new, olepro32); } [ 'DEFAULT: { if (platform() == "nt") copy_file(olepro32new, olepro32); else { copy_msft_dlls = false; modify(olepro32old,olepro32,wininit,rename_group); modify(olepro32,olepro32new,wininit,rename_group); } } ] } else { { remove_file(olepro32new); } [ 'DEFAULT: continue(); ] } } oleaut32 = "%winsys%\oleaut32.dll"; oleaut32new = "%winsys%\oleaut32.new"; oleaut32old = "%winsys%\oleaut32.old"; if (not(exists(oleaut32))) { { move_file(oleaut32new, oleaut32); } [ 'DEFAULT: copy_file(oleaut32new, oleaut32); ] } else { { version_no = windows_file_version(oleaut32); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(oleaut32new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(oleaut32, oleaut32old); move_file(oleaut32new, oleaut32); } [ 'DEFAULT: { if (platform() == "nt") copy_file(oleaut32new, oleaut32); else { copy_msft_dlls = false; modify(oleaut32old,oleaut32,wininit,rename_group); modify(oleaut32,oleaut32new,wininit,rename_group); } } ] } else { { remove_file(oleaut32new); } [ 'DEFAULT: continue(); ] } } /* Display an advertisement bitmap only in pkg installation of Enterprise Edition and Oracle8. */ /* Catch unbound variable defined in user.stp and default to an empty value (rxfernan-JUN-97). */ { install_type = install_type; } [ 'UNBOUND_VARIABLE: install_type = ""; ] if((install_type == "Oracle8 Enterprise Edition") || (install_type == "Oracle8")) { { ui_graphics("%product_home%\b2.bmp"); } [ 'DEFAULT : continue(); ] } /* End Display advertisement bitmap. */ ui_action(instantiate(installing_msbs)); copy(msg, nls_abbreviation); ui_action(instantiate(installing_sql)); copy(sql); ui_action(instantiate(installing_nlsdata)); copy(nlsdata); /* copy release notes */ permit_retry_operations = false; { copy(user, user_release_grp) ;} [ 'DEFAULT : continue() ; ] permit_retry_operations = true; if (set_rdbms80) { ui_action(instantiate(modifying_config)); modify("RDBMS80",RDBMS80,ora_config,product_filename(current_product)); } if (set_plsql80) { ui_action(instantiate(modifying_config)); modify("PLSQL80",PLSQL80,ora_config,product_filename(current_product)); } if (set_core40) { ui_action(instantiate(modifying_config)); modify("CORE40",CORE40,ora_config,product_filename(current_product)); } if (set_nlsrtl33) { ui_action(instantiate(modifying_config)); modify("NLSRTL33",NLSRTL33,ora_config,product_filename(current_product)); } if (set_ora_nls) { ui_action(instantiate(modifying_config)); modify("ORA_NLS33",ORA_NLS33,ora_config,product_filename(current_product)); } if (set_pro80) { ui_action(instantiate(modifying_config)); modify("PRO80",PRO80,ora_config,product_filename(current_product)); } if (set_trace80) { ui_action(instantiate(modifying_config)); modify("OTRACE80",OTRACE80,ora_config,product_filename(current_product)); } /*** Force install sqlnet client and trace server ***/ install(client_prod); install(trace_prod); if(registered(trace_name)) { reference(trace_prod); } if(registered(client_name)) { reference(client_prod); } ui_action(instantiate(registering)); register(current_product); if (member(selected_products,current_product)) reference(current_product); ui_action(instantiate(registering)); register(current_product); if (member(selected_products,current_product)) reference(current_product); if (not(copy_msft_dlls)) if(not(member(remind_list, rsf_note))) add(remind_list, rsf_note); permit_retry_operations = FALSE; } }