<?xml version="1.0"?><installer-gui-script minSpecVersion='1'> <options hostArchitectures='ppc,i386' /> <title>MacOSX_Title</title> <license file="License.rtf" sla="EA0363"/> <welcome file='Welcome.rtfd'/> <script> function checkSupportedMachine(machineType){ // if we can't find it, assume it's supported return true; } function checkSupportedBootRom(machineType){ // if we can't find it, assume it's supported return true; } function installCheckScript(){ return true; } function volCheckScript(){ return true; } //This function checks if a language is already installed on disk. //This function could potentially be expensive, but the buffer cache //usually means it isn't. function language_installed(langKey){ var installed = false; //If we are erasing, then nothing will be installed //on the disk if(my.target.ignoreContents){ return installed; } var constructedPath = my.target.mountpoint + '/System/Library/PrivateFrameworks/SetupAssistant.framework/Versions/A/Resources/'; constructedPath += langKey + ".lproj"; if(system.files.fileExistsAtPath(constructedPath)){ installed = true; }else{ installed = false; } return installed; } function language_running(langKey){ var appleLanguages = system.defaults['AppleLanguages']; if(!appleLanguages || (appleLanguages.length == 0)) return ((langKey == 'English') || (langKey == 'en')) return (langKey == appleLanguages[0]); } //Global Language Required Cache, this speeds up the many calls to this function gLanguageRequired = { }; //Function returns true if the langKey is required, it uses a cache so that the logic doesn't //have to be run hundreds of times function language_required(langKey){ if(! (gLanguageRequired[langKey])){ var required = false; //If the exact same package is on disk, then this language is not required if(my.choice.packages.length && !my.target.ignoreContents){ var thisPackage = my.choice.packages[0]; var receipt = my.target.receiptForIdentifier(thisPackage.identifier); if(receipt){ //system.log('package = ' + thisPackage.identifier + ':' + thisPackage.version); //system.log('receipt = ' + receipt.identifier + ':' + receipt.version); if(0 == system.numericalCompare(thisPackage.version,receipt.version)){ required = false; } } } if(language_installed(langKey) || language_running(langKey)){ required = true; } gLanguageRequired[langKey] = required; } return gLanguageRequired[langKey]; } function language_enabled(langKey){ var enabled = !(language_required(langKey)); if(false == enabled){ my.choice.tooltip = system.localizedString('TT_Language_Required_message'); } return enabled; } function language_selected(langKey){ var selected = my.choice.selected || language_required(langKey); return selected; } function upgrade_allowed(){ var argv = upgrade_allowed.arguments; var upgradable = true; var upgradeAction = my.choice.packageUpgradeAction; if(argv.length > 0) { upgradeAction = eval('choices.' + argv[0] + '.packageUpgradeAction'); } if((upgradeAction == 'downgrade') || (upgradeAction == 'mixed')){ my.choice.tooltip = system.localizedString('TT_Newer_Package_Installed_message'); upgradable = false; } return upgradable; } function isServer(){ if(!my.target['systemVersion'].isServer){ return false; } return true; }