Yes, it has that file:
Code:
#!/usr/bin/perl
########################################################
my $TARG = $ARGV[0];
my $SYSTEM_VERS = $TARG . "/System/Library/CoreServices/SystemVersion.plist";
my $EXIT_VALUE = 0;
########################################################
DO_CHECKS: {
unless (-e $SYSTEM_VERS) {
$EXIT_VALUE = 1;
last;
}
if (CheckVersion("$SYSTEM_VERS", "8G1165", "ProductBuildVersion", "<")) {
$EXIT_VALUE = 1;
last;
}
unless(SystemPaths($TARG)) {
$EXIT_VALUE = 1;
last;
}
}
exit($EXIT_VALUE);
########################################################
sub SystemPaths {
my $targ = shift();
while(<DATA>) {
chomp();
if($_ eq "") {
next;
}
-e($targ . $_) || return(0);
}
return(1);
}
sub CheckVersion {
my $path = $_[0];
my $version = $_[1];
my $keyName = $_[2];
my $operator = $_[3];
if (! -e $path) {
return 0;
}
if (!$operator) {
$operator = "==";
}
my $oldSeperator = $/;
$/ = \0;
open( PLIST, "$path") || do {
return 0;
};
$plistData = <PLIST>;
$plistData =~ /<dict>(.*?)<\/dict>/gis;
@items = split(/<key>/, $plistData);
shift @items;
foreach $item (@items) {
$item =~ /(.*?)<\/key>.*?<string>(.*?)<\/string>/gis;
$versiondata{ $1 } = $2;
}
close(PLIST);
$/ = $oldSeperator;
# ProductBuildVersion style keys
$versiondata{$keyName} =~ /(\d+)([A-Z])(\d+)/ && ($versiondata{$keyName} = "$1.".ord($2).".$3");
$version =~ /(\d+)([A-Z])(\d+)/ && ($version = "$1.".ord($2).".$3");
@theVersionArray = split(/\./, $versiondata{$keyName});
for ($i = 0; $i < 3; $i++) {
if(!$theVersionArray[$i]) {
$theVersionArray[$i] = '0';
}
}
@versionArray = split(/\./, $version);
my $actualVersion;
for ($i = 0; $i < 3; $i++) {
if (($theVersionArray[$i] != $versionArray[$i]) or ($i == 2)) {
$actualVersion = $theVersionArray[$i];
$version = $versionArray[$i];
last;
}
}
my $expression = '$actualVersion ' . $operator . ' $version';
if( eval ($expression) )
{
return 1;
}
else
{
return 0;
}
}
__DATA__
/System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
/System/Library/CoreServices/Automator Launcher.app/Contents/MacOS/Automator Launcher
/System/Library/CoreServices/Certificate Assistant.app/Contents/MacOS/Certificate Assistant
/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow
/System/Library/CoreServices/Network Setup Assistant.app/Contents/MacOS/Network Setup Assistant
/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent
/System/Library/CoreServices/SecurityAgent.app/Contents/MacOS/SecurityAgent
/System/Library/CoreServices/SystemUIServer.app/Contents/MacOS/SystemUIServer
/System/Library/PrivateFrameworks/ProKit.framework
/System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/Resources/ExtraPatches.plugin/Contents/MacOS/ExtraPatches
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/Resources/SpeechSynthesisServer.app/Contents/MacOS/SpeechSynthesisServer
So what you're saying, is that it checks for an existing Leopard system on ANY partition I have??. I don't care too much, as all I shall do is clone the UTD DVD to a partition, and then delete the CheckForOSX file from the installer package. I'm doing nothing morally wrong, seeing as I own the Mac which qualifies for the update, AND I own a Leopard licence which came with it.
There are a million ways around this; I could install Leopard, fresh onto my Mac form the supplied restore DVDs, and then clone it across to an external drive, then wipe my Mac mini drive, and install Snow Leopard onto it, because the EXTERNAL with the clone of LEOPARD, would qualify my system!. Failing that, I'd just rip out the CheckForOSX file, after having cloned the DVD to external. This discussion is futile, however, as I am a LEGAL and entitled SL licence holder, so I shall go about the install however I wish.
I love PLIST files