+2007-11-04 David D. Kilzer <ddkilzer@webkit.org>
+
+ bisect-builds doesn't work with nightly build r19992 or newer on Leopard
+ <http://bugs.webkit.org/show_bug.cgi?id=15830>
+
+ Reviewed by Timothy.
+
+ Restrict the range of nightly builds used by the bisect-builds script
+ based on the version of Safari and the version of Mac OS X being used.
+
+ Mac OS X 10.4: Safari 2.0: r11976 or newer
+ Mac OS X 10.4: Safari 3.0: r19992 or newer
+
+ Mac OS X 10.5: Safari 2.0: r19594 or newer
+ Mac OS X 10.5: Safari 3.0: r25124 or newer
+
+ * Scripts/bisect-builds:
+ (findMacOSXVersion): Added.
+ (makeNightlyList): Added argument to provide version of Mac OS X.
+ Restrict range of nightly builds based on Safari and Mac OS X versions.
+
2007-11-04 Kevin McCullough <kmccullough@apple.com>
Reviewed by Maciej.
sub createTempFile($);
sub downloadNightly($$$);
+sub findMacOSXVersion();
sub findNearestNightlyIndex(\@$$);
sub findSafariVersion($);
sub loadSettings();
-sub makeNightlyList($$$);
+sub makeNightlyList($$$$);
sub mountAndRunNightly($$$$);
sub parseRevisions($$;$);
sub printStatus($$$);
mkpath($nightlyDownloadDirectory, 0, 0755) || die "Could not create $nightlyDownloadDirectory: $!";
}
-@nightlies = makeNightlyList($localOnly, $nightlyDownloadDirectory, findSafariVersion($safariPath));
+@nightlies = makeNightlyList($localOnly, $nightlyDownloadDirectory, findMacOSXVersion(), findSafariVersion($safariPath));
my $startIndex = $revisions[0] ? findNearestNightlyIndex(@nightlies, $revisions[0], 'ceil') : 0;
my $endIndex = $revisions[1] ? findNearestNightlyIndex(@nightlies, $revisions[1], 'floor') : $#nightlies;
}
}
+sub findMacOSXVersion()
+{
+ my $version;
+ open(SW_VERS, "-|", "/usr/bin/sw_vers") || die;
+ while (<SW_VERS>) {
+ $version = $1 if /^ProductVersion:\s+([^\s]+)/;
+ }
+ close(SW_VERS);
+ return $version;
+}
+
sub findNearestNightlyIndex(\@$$)
{
my ($nightlies, $revision, $round) = @_;
die "Could not parse $rcfile: $@" if $@;
}
-sub makeNightlyList($$$)
+sub makeNightlyList($$$$)
{
- my ($useLocalFiles, $localDirectory, $safariVersion) = @_;
+ my ($useLocalFiles, $localDirectory, $macOSXVersion, $safariVersion) = @_;
my @files;
if ($useLocalFiles) {
close(NIGHTLIES);
}
- # Safari 3.0.x won't work with nightly builds older than r19992
- if (eval "v$safariVersion" ge v3.0) {
- @files = grep { $_->{rev} >= 19992 } @files;
+ if (eval "v$macOSXVersion" ge v10.5) {
+ if (eval "v$safariVersion" ge v3.0) {
+ @files = grep { $_->{rev} >= 25124 } @files;
+ } elsif (eval "v$safariVersion" ge v2.0) {
+ @files = grep { $_->{rev} >= 19594 } @files;
+ } else {
+ die "Requires Safari 2.0 or newer";
+ }
+ } elsif (eval "v$macOSXVersion" ge v10.4) {
+ if (eval "v$safariVersion" ge v3.0) {
+ @files = grep { $_->{rev} >= 19992 } @files;
+ } elsif (eval "v$safariVersion" ge v2.0) {
+ @files = grep { $_->{rev} >= 11976 } @files;
+ } else {
+ die "Requires Safari 2.0 or newer";
+ }
+ } else {
+ die "Requires Mac OS X 10.4 (Tiger) or 10.5 (Leopard)";
}
my $nightlycmp = sub { return $a->{rev} <=> $b->{rev}; };