/* Copyright (c) Oracle Corporation 1995. All Rights Reserved */ /***************************************************************************** NAME rsf73.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 ekhor 10/03/97 reboot to complete install for WIN_95 if msvc dlls are in used mhclau 22-SEP-97 Copy NLS resource. rxfernan 09/97 OCSM Compliance rpingte 09/22/96 7.3.3.0.0 add trace mmacdona 06/28/96 7.3.2.2.0 mmacdona 06/24/96 install olepro32.dll 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 = "7.3.4.1.1"; 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)); permit_retry_operations = FALSE; 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(dll); } [ '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; } } /* 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; } } permit_retry_operations = TRUE; copy(msvcdll); copy(mfcdll); 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(oledll); } [ '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; } } if (platform() == "nt") permit_retry_operations = TRUE; wininit = "%windir%\wininit.ini"; rename_group = "rename"; copy_msft_dlls = true; 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(); ] } } msvcrt20 = "%winsys%\msvcrt20.dll"; msvcrt20new = "%winsys%\msvcrt20.new"; msvcrt20old = "%winsys%\msvcrt20.old"; if (not(exists(msvcrt20))) { { move_file(msvcrt20new, msvcrt20); } [ 'DEFAULT: copy_file(msvcrt20new, msvcrt20); ] } else { { version_no = windows_file_version(msvcrt20); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(msvcrt20new); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(msvcrt20, msvcrt20old); move_file(msvcrt20new, msvcrt20); } [ 'DEFAULT: { if (platform() == "nt") copy_file(msvcrt20new, msvcrt20); else { copy_msft_dlls = false; modify(msvcrt20old,msvcrt20,wininit,rename_group); modify(msvcrt20,msvcrt20new,wininit,rename_group); } } ] } else { { remove_file(msvcrt20new); } [ 'DEFAULT: continue(); ] } } msvcrt2x = "%winsys%\msvcrt2x.dll"; msvcrt2xnew = "%winsys%\msvcrt2x.new"; msvcrt2xold = "%winsys%\msvcrt2x.old"; if (not(exists(msvcrt2x))) { { move_file(msvcrt2xnew, msvcrt2x); } [ 'DEFAULT: copy_file(msvcrt2xnew, msvcrt2x); ] } else { { version_no = windows_file_version(msvcrt2x); } [ 'OS_ERROR: version_no = "0.0.0.0.0.0.0"; ] { version_new = windows_file_version(msvcrt2xnew); } [ 'OS_ERROR: version_new = "0.0.0.0.0.0.0"; ] if (earlier_version(version_no, version_new)) { { move_file(msvcrt2x, msvcrt2xold); move_file(msvcrt2xnew, msvcrt2x); } [ 'DEFAULT: { if (platform() == "nt") copy_file(msvcrt2xnew, msvcrt2x); else { copy_msft_dlls = false; modify(msvcrt2xold,msvcrt2x,wininit,rename_group); modify(msvcrt2x,msvcrt2xnew,wininit,rename_group); } } ] } else { { remove_file(msvcrt2xnew); } [ 'DEFAULT: continue(); ] } } if (platform() == "nt") permit_retry_operations = TRUE; overwrite_mode = 'ALWAYS; 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 (platform() == "nt") if (doSmartStart) { ss_decrypt_file(product_key, "%s_location%NT_X86/V7/RSF/CORENT23.DLL", "%oracle_home%\bin\CORENT23.DLL"); ss_decrypt_file(product_key, "%s_location%NT_X86/V7/RSF/ORASPAWN.DLL", "%oracle_home%\bin\ORASPAWN.DLL"); } if (set_rdbms73) { ui_action(instantiate(modifying_config)); modify("RDBMS73",RDBMS73,ora_config,product_filename(current_product)); } if (set_trace73) { ui_action(instantiate(modifying_config)); modify("OTRACE73",OTRACE73,ora_config,product_filename(current_product)); } if (set_plsql23) { ui_action(instantiate(modifying_config)); modify("PLSQL23",PLSQL23,ora_config,product_filename(current_product)); } if (set_pro18) { ui_action(instantiate(modifying_config)); modify("PRO18",PRO18,ora_config,product_filename(current_product)); } if (set_nlsrtl32) { ui_action(instantiate(modifying_config)); modify("NLSRTL32",NLSRTL32,ora_config,product_filename(current_product)); } if (set_ora_nls) { ui_action(instantiate(modifying_config)); modify("ORA_NLS32",ORA_NLS32,ora_config,product_filename(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; /* 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, nls_abbreviation, 'MAXMODE); win32_register_ocsm_group(commdll, 'MAXMODE); win32_register_ocsm_group(dll, 'MAXMODE); win32_register_ocsm_group(msg, nls_abbreviation, 'MAXMODE); win32_register_ocsm_group(sql, 'MAXMODE); win32_register_ocsm_group(nlsdata, 'MAXMODE); win32_register_ocsm_group(user, 'MAXMODE); win32_register_ocsm_group(deinstl, nls_abbreviation, 'MEDMODE); win32_register_ocsm_group(commdll, 'MEDMODE); win32_register_ocsm_group(dll, 'MEDMODE); win32_register_ocsm_group(msg, nls_abbreviation, 'MEDMODE); win32_register_ocsm_group(sql, 'MEDMODE); win32_register_ocsm_group(nlsdata, 'MEDMODE); win32_register_ocsm_group(user, 'MEDMODE); win32_register_ocsm_group(deinstl, nls_abbreviation, 'MINMODE); win32_register_ocsm_group(commdll, 'MINMODE); win32_register_ocsm_group(dll, 'MINMODE); win32_register_ocsm_group(msg, nls_abbreviation, 'MINMODE); win32_register_ocsm_group(sql, 'MINMODE); win32_register_ocsm_group(nlsdata, 'MINMODE); win32_register_ocsm_group(user, 'MINMODE); /* Register the deinst groups depending on whether 7.1 or 7.2 */ /* 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 variables in the map file that are not Installer variables. */ win32_register_map_variable("NLSRTL32"); win32_register_map_variable("OTRACE73"); win32_register_map_variable("PLSQL23"); win32_register_map_variable("PRO18"); win32_register_map_variable("RDBMS73"); win32_register_map_variable("WINSYS"); win32_register_map_variable("SYSDIR"); /* Register product variables or keys created in the Windows registry by */ /* this INS script. Associated with calls to: modify(...) in this script. */ /* Define the key and subkey. */ okey = "HKEY_LOCAL_MACHINE"; osubkey = "SOFTWARE\ORACLE"; win32_register_key(okey, osubkey, "RDBMS73", 'REPLICATE); win32_register_key(okey, osubkey, "OTRACE73", 'REPLICATE); win32_register_key(okey, osubkey, "PLSQL23", 'REPLICATE); win32_register_key(okey, osubkey, "PRO18", 'REPLICATE); win32_register_key(okey, osubkey, "NLSRTL32", 'REPLICATE); win32_register_key(okey, osubkey, "ORA_NLS32", 'REPLICATE); /* End OCSM Compliance */ } }