diff --git a/mozilla/tools/tinderbox/build-camino.pl b/mozilla/tools/tinderbox/build-camino.pl index 39f89ff58a7..aa4b1cc80a3 100644 --- a/mozilla/tools/tinderbox/build-camino.pl +++ b/mozilla/tools/tinderbox/build-camino.pl @@ -1,450 +1,38 @@ -#!/usr/bin/perl -# -*- Mode: perl; indent-tabs-mode: nil -*- -# +#!/usr/bin/perl -w + +require 5.003; + +# This script has split some functions off into a util +# script so they can be re-used by other scripts. +require "build-seamonkey-util.pl"; -# -# This script gets called after a full mozilla build & test. -# Use this to build and test an embedded or commercial branding of Mozilla. -# -# ./build-seamonkey-utils.pl will call PostMozilla::main() after -# a successful build and testing of mozilla. This package can report -# status via the $TinderUtils::build_status variable. Yeah this is a hack, -# but it works for now. Feel free to improve this mechanism to properly -# return values & stuff. -mcafee -# -# Things to do: -# * Get pull by branch working -# -# use strict; -use File::Path; # for rmtree(); -package PostMozilla; +# "use strict" complains if we do not define these. +# They are not initialized here. The default values are after "__END__". +$TreeSpecific::name = $TreeSpecific::build_target = $TreeSpecific::checkout_target = $TreeSpecific::clobber_target = $::Version = undef; -sub checkout { - my ($mozilla_build_dir) = @_; +$::Version = '$Revision: 1.7 $ '; - # chdir to build directory - chdir "$mozilla_build_dir"; - - # Next, do the checkout: - print "Settings::CVS = $Settings::CVS\n"; - my $status = TinderUtils::run_shell_command("$Settings::CVS checkout mozilla/camino"); - - # hack in the camino prefs, if needed - - return $status; +{ + TinderUtils::Setup(); + tree_specific_overides(); + TinderUtils::Build(); } +# End of main +#====================================================================== -sub ReadHeapDumpToHash($$) -{ - my($dumpfile, $hashref) = @_; - local(*DUMP_FILE); - open(DUMP_FILE, "< $dumpfile") || die "Can't open heap output file $dumpfile\n"; - my $section = 0; - my $zone = ""; - my $default_zone_bytes = 0; - - while () - { - my($line) = $_; - chomp($line); +sub tree_specific_overides { + + $TreeSpecific::name = 'mozilla'; + $TreeSpecific::build_target = 'build_all_depend'; + $TreeSpecific::checkout_target = 'checkout'; + $TreeSpecific::clobber_target = 'distclean'; + $TreeSpecific::extrafiles = 'mozilla/camino/config'; + +} - if ($line =~ /^\#/ || $line =~ /^\s*$/ || $line =~ /------------------------/) { # ignore comments and empty lines - next; - } - # use the 'All zones' lines as section markers - if ($line =~ /^All zones:/) { - $section ++; - next; - } - - if ($section == 2) # we're in the detailed section - { - if ($line =~ /^Zone ([^_]+).+\((\d+).+\)/) - { - $zone = $1; - if ($zone eq "DefaultMallocZone") { - $default_zone_bytes = $2; - } - TinderUtils::print_log(" $line\n"); - next; - } - - if ($zone eq "DefaultMallocZone") - { - if ($line =~ /(\w+)\s*=\s*(\d+)\s*\((\d+).+\)/) - { - my(%entry_hash) = ("count", $2, - "bytes", $3); - $hashref->{$1} = \%entry_hash; - } - elsif ($line =~ /^\s*=\s*(\d+)\s*\((\d+).+\)/) - { - my(%entry_hash) = ("count", $1, - "bytes", $2); - $hashref->{"malloc_block"} = \%entry_hash; - } - } - } - } - - close(DUMP_FILE); - - return $default_zone_bytes; -} - -sub DumpHash($) -{ - my($hashref) = @_; - - print "Dumping values\n"; - - my($key); - foreach $key (keys %{$hashref}) - { - my($value) = $hashref->{$key}; - print "Class $key count $value->{'count'} bytes $value->{'bytes'}\n"; - } -} - -sub ClassEntriesEqual($$) -{ - my($hashone, $hashtwo) = @_; - - return ($hashone->{"count"} == $hashtwo->{"count"}) and ($hashone->{"bytes"} == $hashtwo->{"bytes"}) -} - - -sub DumpHashDiffs($$) -{ - my($beforehash, $afterhash) = @_; - - my($name_width) = 50; - my($print_format) = "%10s %-${name_width}s %8d %8d\n"; - - TinderUtils::print_log(sprintf "%10s %-${name_width}s %8s %8s\n", "", "Class", "Count", "Bytes"); - TinderUtils::print_log("--------------------------------------------------------------------------------\n"); - - my($key); - foreach $key (keys %{$beforehash}) - { - my($beforevalue) = $beforehash->{$key}; - - if (exists $afterhash->{$key}) - { - my($aftervalue) = $afterhash->{$key}; - if (!ClassEntriesEqual($beforevalue, $aftervalue)) - { - my($count_change) = $aftervalue->{"count"} - $beforevalue->{"count"}; - my($bytes_change) = $aftervalue->{"bytes"} - $beforevalue->{"bytes"}; - - if ($bytes_change > 0) { - TinderUtils::print_log(sprintf $print_format, "Leaked", $key, $count_change, $bytes_change); - } else { - TinderUtils::print_log(sprintf $print_format, "Freed", $key, $count_change, $bytes_change); - } - } - } - else - { - #$before_only{$key} = $beforevalue; - TinderUtils::print_log(sprintf $print_format, "Freed", $key, $beforevalue->{'count'}, $beforevalue->{'bytes'}); - } - } - - # now look for things only in the after cache - foreach $key (keys %{$afterhash}) - { - my($value) = $afterhash->{$key}; - - if (!exists $beforehash->{$key}) - { - #$after_only{$key} = $value; - TinderUtils::print_log(sprintf $print_format, "Leaked", $key, $value->{'count'}, $value->{'bytes'}); - } - } - - TinderUtils::print_log("--------------------------------------------------------------------------------\n"); - -} - - -sub ParseHeapOutput($$) -{ - my($beforedump, $afterdump) = @_; - - TinderUtils::print_log("Before window open:\n"); - my %before_data; - my $before_heap = ReadHeapDumpToHash($beforedump, \%before_data); - - TinderUtils::print_log("After window open and close:\n"); - my %after_data; - my $after_heap = ReadHeapDumpToHash($afterdump, \%after_data); - -# DumpHash(\%before_data); -# DumpHash(\%after_data); - - TinderUtils::print_log("Open/close window leaks:\n"); - DumpHashDiffs(\%before_data, \%after_data); - - my $heap_diff = $after_heap - $before_heap; - TinderUtils::print_log("TinderboxPrint:Lw:".TinderUtils::PrintSize($heap_diff, 3)."B\n"); -} - - -sub CaminoWindowLeaksTest($$$$$) -{ - my ($test_name, $build_dir, $binary, $args, $timeout_secs) = @_; - - my($status) = 'success'; - - my $beforefile = "/tmp/nav_before_heap.dat"; - my $afterfile = "/tmp/nav_after_heap.dat"; - - my $run_test = 1; # useful for testing parsing code - if ($run_test) - { - my $close_window_script =< $beforefile"); - - # run the test - system("echo '$new_window_script' | osascript"); - - # dump after data - system("heap $pid > $afterfile"); - - my $result = TinderUtils::wait_for_pid($pid, $timeout_secs); - } - - ParseHeapOutput($beforefile, $afterfile); - - return $status; -} - -sub PreBuild { -} - -sub main { - my ($mozilla_build_dir) = @_; - - TinderUtils::print_log("Starting camino build.\n"); - - # Tell camino to unbuffer stdio, otherwise when we kill the child process - # stdout & stderr won't get flushed. - $ENV{MOZ_UNBUFFERED_STDIO} = 1; - - # Pending a config file, stuff things here. - my $post_status = 'success'; # Success until we report a failure. - my $status = 0; # 0 = success - - # Control tests from here, sorry no config file yet. - my $camino_alive_test = 1; - my $camino_test8_test = 0; - my $camino_layout_performance_test = 1; - my $camino_startup_test = 1; - my $camino_window_leaks_test = 0; - - my $safari_layout_performance_test = 0; - - my $camino_clean_profile = 1; - - # Build flags - my $camino_build_static = 0; - my $camino_build_opt = 1; - - my $camino_dir = "$mozilla_build_dir/mozilla/camino"; - my $embedding_dir = "$mozilla_build_dir/mozilla/embedding/config"; - my $camino_binary = "Camino"; - - unless ($Settings::TestOnly) { - TinderUtils::print_log("Testing build status...\n"); - if ($status != 0) { - TinderUtils::print_log("busted, pbxbuild status non-zero\n"); - $post_status = 'busted'; - } elsif (not TinderUtils::BinaryExists("$camino_dir/build/Camino.app/Contents/MacOS/$camino_binary")) { - TinderUtils::print_log("Error: binary not found: $camino_dir/build/Camino.app/Contents/MacOS/$camino_binary\n"); - $post_status = 'busted'; - } else { - $post_status = 'success'; - } - } - - # - # Tests... - # - - # Clean profile out, if set. - # Assume Camino always uses ~/Library/Application Support/Camino for now. - if ($camino_clean_profile) { - # Warning: workaround camino bug, delete whole Camino dir. - my $chim_profile_dir = "$ENV{HOME}/Library/Application Support/Camino"; - - TinderUtils::print_log("Deleting $chim_profile_dir...\n"); - print "Deleting $chim_profile_dir...\n"; - File::Path::rmtree([$chim_profile_dir], 0, 0); - - if (-e "$chim_profile_dir") { - TinderUtils::print_log("Error: rmtree('$chim_profile_dir') failed\n"); - } - - # Re-create profile. We have no -CreateProfile, so we instead - # run the AliveTest first. - } - - my $binary_dir = "$camino_dir/build/Camino.app/Contents/MacOS"; - my $full_binary_name = "$binary_dir/Camino"; - - # AliveTest for camino, about:blank - if ($camino_alive_test and $post_status eq 'success') { - - $post_status = TinderUtils::AliveTest("CaminoAliveTest", - $binary_dir, - [$full_binary_name, "-url", "about:blank"], - 45); - } - - # Find the prefs file - # e.g. /Users/cltbld/Library/Application Support/Camino/Profiles - # so File::Path::find will find the prefs.js file. - # - my $pref_file = "prefs.js"; - my $start_dir = "/Users/cltbld/Library/Application Support/Camino"; - my $found = undef; - my $sub = sub {$pref_file = $File::Find::name, $found++ if $pref_file eq $_}; - - File::Find::find($sub, $start_dir); # Find prefs.js, write this to $pref_file. - - # Set up performance prefs. - if ($pref_file and ($camino_layout_performance_test or 1)) { - - # Some tests need browser.dom.window.dump.enabled set to true, so - # that JS dump() will work in optimized builds. - if (system("\\grep -s browser.dom.window.dump.enabled $pref_file > /dev/null")) { - TinderUtils::print_log("Setting browser.dom.window.dump.enabled\n"); - open PREFS, ">>$pref_file" or die "can't open $pref_file ($?)\n"; - print PREFS "user_pref(\"browser.dom.window.dump.enabled\", true);\n"; - close PREFS; - } else { - TinderUtils::print_log("Already set browser.dom.window.dump.enabled\n"); - } - - # Set security prefs to allow us to close our own window, - # pageloader test (and possibly other tests) needs this on. - if (system("\\grep -s dom.allow_scripts_to_close_windows $pref_file > /dev/null")) { - TinderUtils::print_log("Setting dom.allow_scripts_to_close_windows to true.\n"); - open PREFS, ">>$pref_file" or die "can't open $pref_file ($?)\n"; - print PREFS "user_pref(\"dom.allow_scripts_to_close_windows\", true);\n"; - close PREFS; - } else { - TinderUtils::print_log("Already set dom.allow_scripts_to_close_windows\n"); - } - - - } - - # LayoutTest8 - # resource:///res/samples/test8.html - if ($camino_test8_test and $post_status eq 'success') { - - if(0) { - open STDOUT, ">/tmp/foo"; - open STDERR, ">&/tmp/foo"; - select STDOUT; $| = 1; # make STDOUT unbuffered - select STDERR; $| = 1; # make STDERR unbuffered - print STDERR "hello, world\n"; - chdir("$camino_dir/build/Camino.app/Contents/MacOS"); - exec "./Camino -url \"http://lxr.mozilla.org/seamonkey/source/webshell/tests/viewer/samples/test8.html\""; - #exec "foo"; - } else { - $post_status = TinderUtils::AliveTest("CaminoLayoutTest8Test", - $binary_dir, - [$full_binary_name, "-url", "http://lxr.mozilla.org/seamonkey/source/webshell/tests/viewer/samples/test8.html"], - 20); - } - } - - # Pageload test. - if ($camino_layout_performance_test and $post_status eq 'success') { - - $post_status = - TinderUtils::LayoutPerformanceTest("CaminoLayoutPerformanceTest", - "$camino_dir/build/Camino.app/Contents/MacOS", - [$full_binary_name, "-url"]); - - } - - - # Pageload test -- Safari. - if ($safari_layout_performance_test) { - - TinderUtils::run_system_cmd("/Applications/Utilities/Safari.app/Contents/MacOS/Safari-wrap.pl http://$Settings::pageload_server/page-loader/loader.pl?delay=1000%26nocache=0%26maxcyc=4%26timeout=$Settings::LayoutPerformanceTestPageTimeout%26auto=1", 30); - - # This is a hack. - TinderUtils::run_system_cmd("sync; sleep 400", 405); - - TinderUtils::run_system_cmd("/Applications/Utilities/Safari.app/Contents/MacOS/Safari-wrap.pl quit", 30); - - TinderUtils::print_log "TinderboxPrint:" . - "~Tp" . "\n"; - - } - - # Startup test. - if ($camino_startup_test and $post_status eq 'success') { - $post_status = - TinderUtils::StartupPerformanceTest("CaminoStartupPerformanceTest", - $full_binary_name, - "$camino_dir/build/Camino.app/Contents/MacOS", - ["-url"], - "file:$camino_dir/../../../startup-test.html"); - } - - if ($camino_window_leaks_test and $post_status eq 'success') { - $post_status = CaminoWindowLeaksTest("CaminoWindowLeakTest", - "$camino_dir/build/Camino.app/Contents/MacOS/", - $full_binary_name, - "-url \"http://www.mozilla.org\"", - 20); - - } - - # Pass our status back to calling script. - return $post_status; -} - -# Need to end with a true value, (since we're using "require"). -1; diff --git a/mozilla/tools/tinderbox/build-seamonkey-util.pl b/mozilla/tools/tinderbox/build-seamonkey-util.pl index 81292f7b0b2..b1734cfa91e 100644 --- a/mozilla/tools/tinderbox/build-seamonkey-util.pl +++ b/mozilla/tools/tinderbox/build-seamonkey-util.pl @@ -24,7 +24,7 @@ use Config; # for $Config{sig_name} and $Config{sig_num} use File::Find (); use File::Copy; -$::UtilsVersion = '$Revision: 1.312 $ '; +$::UtilsVersion = '$Revision: 1.313 $ '; package TinderUtils; @@ -1126,6 +1126,13 @@ sub rebootSystem { # Create a profile named $Settings::MozProfileName in the normal $build_dir place. sub create_profile { my ($build_dir, $binary_dir, $binary) = @_; + if ($Settings::ProductName eq 'Camino') { + my $profile_dir = get_profile_dir($build_dir); + mkdir($profile_dir); + open(PREFS, '>>'.$profile_dir.'/prefs.js'); + close(PREFS); + return { exit_value=>0 }; + } my $profile_log = "$build_dir/create-profile.log"; my $result = run_cmd($build_dir, $binary_dir, [$binary, "-CreateProfile", $Settings::MozProfileName], @@ -1141,6 +1148,7 @@ sub get_profile_dir { my $profile_product_name = $Settings::ProductName; $profile_product_name = "Mozilla" if ($profile_product_name eq "SeaMonkey"); + $profile_product_name = "Firefox" if ($profile_product_name eq "DeerPark"); my $profile_dir; @@ -1182,6 +1190,8 @@ sub get_profile_dir { } elsif ($profile_product_name eq 'Firefox') { $profile_dir = "$ENV{HOME}/Library/Application Support/$profile_product_name/Profiles"; ($profile_dir) = <"$profile_dir/*$Settings::MozProfileName*">; + } elsif ($profile_product_name eq 'Camino') { + $profile_dir = "$ENV{HOME}/Library/Application Support/Camino"; } else { # Mozilla's Profiles/profilename/salt $profile_dir = "$ENV{HOME}/Library/$profile_product_name/Profiles/$Settings::MozProfileName/"; } @@ -1716,7 +1726,7 @@ sub run_all_tests { unlink("$binary_dir/components/compreg.dat") or warn "$binary_dir/components/compreg.dat not removed\n"; if($Settings::RegxpcomTest) { my $args; - if ($Settings::ProductName =~ /^(Firefox|Thunderbird)$/) { + if ($Settings::ProductName =~ /^(Firefox|Thunderbird|DeerPark)$/) { $args = [$binary, "-register"]; } else { $args = ["$binary_dir/regxpcom"]; @@ -1856,6 +1866,9 @@ sub run_all_tests { # Suppress default browser dialog set_pref($pref_file, 'browser.shell.checkDefaultBrowser', 'false'); } + elsif ($Settings::BinaryName eq 'Camino') { + set_pref($pref_file, 'camino.check_default_browser', 'false'); + } # Suppress security warnings for QA test. if ($Settings::QATest) { @@ -1879,6 +1892,13 @@ sub run_all_tests { } } + if ($Settings::BinaryName eq 'Camino') { + # stdout will be block-buffered and will not be flushed when the test + # timeout expires and the process is killed, this would make tests + # appear to fail. + $ENV{'MOZ_UNBUFFERED_STDIO'} = 1; + } + # Mozilla alive test # # Note: Bloat & other tests depend this on working. @@ -2015,8 +2035,19 @@ sub run_all_tests { # Layout performance test. if ($Settings::LayoutPerformanceTest and $test_result eq 'success') { my $app_args = [$binary]; + if ($Settings::BinaryName eq 'Camino') { + push(@$app_args, '-url'); + } + + # When I found this, it avoided setting the profile for Firefox. + # That didn't work on a tinderbox that had multiple profiles. + # Now, it will set the profile if it's not 'default' on the assumption + # that existing tinderboxes were all using 'default' anyway. Why + # so careful? I'm afraid of things like bug 112767, and I assume this + # had been done for a reason. -mm unless ($Settings::BinaryName eq "TestGtkEmbed" || - $Settings::BinaryName =~ /^firefox/) { + ($Settings::BinaryName =~ /^firefox/ && $Settings::MozProfileName eq 'default') || + $Settings::BinaryName eq 'Camino') { push(@$app_args, "-P", $Settings::MozProfileName); } @@ -2029,8 +2060,10 @@ sub run_all_tests { if ($Settings::DHTMLPerformanceTest and $test_result eq 'success') { my @app_args; if($Settings::BinaryName eq "TestGtkEmbed" || - $Settings::BinaryName =~ /^firefox/) { + ($Settings::BinaryName =~ /^firefox/ && $Settings::MozProfileName eq 'default')) { @app_args = [$binary]; + } elsif($Settings::BinaryName eq 'Camino') { + @app_args = [$binary, '-url']; } else { @app_args = [$binary, "-P", $Settings::MozProfileName]; } @@ -2100,6 +2133,8 @@ sub run_all_tests { my $app_args; if($Settings::BinaryName eq "TestGtkEmbed") { $app_args = []; + } elsif($Settings::BinaryName eq 'Camino') { + $app_args = ['-url']; } else { $app_args = ["-P", $Settings::MozProfileName]; } @@ -2381,7 +2416,7 @@ sub DHTMLPerformanceTest { $dhtml_time = AliveTestReturnToken($test_name, $build_dir, [@$args, $url], - $Settings::LayoutPerformanceTestTimeout, + $Settings::DHTMLPerformanceTestTimeout, "_x_x_mozilla_dhtml", ","); diff --git a/mozilla/tools/tinderbox/post-mozilla-rel.pl b/mozilla/tools/tinderbox/post-mozilla-rel.pl index d444b494292..b0084e7fcd6 100755 --- a/mozilla/tools/tinderbox/post-mozilla-rel.pl +++ b/mozilla/tools/tinderbox/post-mozilla-rel.pl @@ -197,9 +197,20 @@ sub makefullsoft { TinderUtils::run_shell_command "cd $builddir/fullsoft && $builddir/build/autoconf/make-makefile -d .."; } TinderUtils::run_shell_command "make -C $builddir/fullsoft"; - TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push"; + if ($Settings::BinaryName ne 'Camino') { + TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push"; + } + else { + # Something completely different + TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push UPLOAD_FILES='`find -X $builddir/dist/Camino.app -type f -perm -111 -exec file {} \\; | grep \": Mach-O\" | sed \"s/: Mach-O.*//\" | xargs`'"; + } if (is_mac()) { - TinderUtils::run_shell_command "make -C $builddir/$Settings::mac_bundle_path"; + if ($Settings::BinaryName eq 'Camino') { + TinderUtils::run_shell_command "rsync -a --copy-unsafe-links $builddir/dist/bin/components/*qfa* $builddir/dist/bin/components/talkback $builddir/dist/Camino.app/Contents/MacOS/components"; + } + else { + TinderUtils::run_shell_command "make -C $builddir/$Settings::mac_bundle_path"; + } if ($Settings::MacUniversalBinary) { # Regenerate universal binary, now including Talkback @@ -973,7 +984,11 @@ sub pushit { $Settings::ReleaseToLatest = 1 if !defined($Settings::ReleaseToLatest); if ( $Settings::ReleaseToDated ) { - push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path/$short_ud"); + my $makedirs = "$remote_path/$short_ud"; + if ($cachebuild && $Settings::ReleaseToLatest) { + $makedirs .= " $remote_path/latest-$Settings::milestone"; + } + push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $makedirs"); push(@cmds,"rsync -av -e \"ssh $ssh_opts\" $upload_directory/ $Settings::ssh_user\@$ssh_server:$remote_path/$short_ud/"); push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server chmod -R 775 $remote_path/$short_ud"); if ($Settings::ReleaseGroup ne '') { @@ -984,7 +999,7 @@ sub pushit { push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server rsync -avz $remote_path/$short_ud/ $remote_path/latest-$Settings::milestone/"); } } elsif ( $Settings::ReleaseToLatest ) { - push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path"); + push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path/latest-$Settings::milestone"); push(@cmds,"scp $scp_opts -r $upload_directory/* $Settings::ssh_user\@$ssh_server:$remote_path/latest-$Settings::milestone/"); push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server chmod -R 775 $remote_path/latest-$Settings::milestone/"); if ($Settings::ReleaseGroup ne '') { @@ -1085,7 +1100,11 @@ sub PreBuild { # build hour (which may not be today!) # (3) subsumes (2), so there's no need to check for (2) explicitly. - if ( -e "last-built" ) { + if (!$Settings::OfficialBuildMachinery) { + TinderUtils::print_log "Configured to release hourly builds only\n"; + $cachebuild = 0; + } + elsif ( -e "last-built" ) { my $last = (stat "last-built")[9]; TinderUtils::print_log "Most recent nightly build: " . localtime($last) . "\n"; @@ -1202,13 +1221,17 @@ sub main { my $ftp_path = $Settings::ftp_path; my $url_path = $Settings::url_path; - my ($c_hour,$c_day,$c_month,$c_year,$c_yday) = (localtime(time))[2,3,4,5,7]; - $c_year = $c_year + 1900; # ftso perl - $c_month = $c_month + 1; # ftso perl - $c_hour = pad_digit($c_hour); - $c_day = pad_digit($c_day); - $c_month = pad_digit($c_month); - my $datestamp = "$c_year-$c_month-$c_day-$c_hour-$Settings::milestone"; + my $buildid = get_buildid(objdir=>$objdir); + + my $datestamp; + if ($buildid ne '0000000000' && + $buildid =~ /^(\d{4})(\d{2})(\d{2})(\d{2})$/) { + $datestamp="$1-$2-$3-$4-$Settings::milestone"; + } + else { + cleanup(); + return returnStatus('Could not find build id', ('busted')); + } if (is_windows()) { # hack for cygwin installs with "unix" filetypes @@ -1220,7 +1243,6 @@ sub main { my($package_dir, $store_name, $local_build_dir); - my $buildid = get_buildid(objdir=>$objdir); my $pretty_build_name = shorthost() . "-" . $Settings::milestone; if ($cachebuild) { diff --git a/mozilla/tools/tinderbox/tinder-defaults.pl b/mozilla/tools/tinderbox/tinder-defaults.pl index efb46b783c2..ccdaea4f300 100644 --- a/mozilla/tools/tinderbox/tinder-defaults.pl +++ b/mozilla/tools/tinderbox/tinder-defaults.pl @@ -194,10 +194,12 @@ $LocaleProduct = "browser"; $shiptalkback = 1; $ReleaseToLatest = 1; # Push the release to latest-? $ReleaseToDated = 1; # Push the release to YYYY-MM-DD-HH-? +$OfficialBuildMachinery = 1; # Allow official clobber nightlies. When false, $cachebuild in post-mozilla-rel.pl can never be true. $ReleaseGroup = ''; # group to set uploaded files to (if non-empty) $build_hour = "8"; $package_creation_path = "/xpinstall/packager"; -# needs setting for mac + talkback: $mac_bundle_path = "/browser/app"; +# path to make in to recreate mac bundle, needed for mac + talkback: +# $mac_bundle_path = "/browser/app"; $ssh_version = "2"; $ssh_user = "cltbld"; $ssh_server = "stage.mozilla.org"; @@ -206,7 +208,7 @@ $url_path = "http://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/experim $tbox_ftp_path = $ftp_path; $tbox_url_path = $url_path; $milestone = "trunk"; -$notify_list = "cmp\@mozilla.org"; +$notify_list = 'build-announce@mozilla.org'; $stub_installer = 1; $sea_installer = 1; $archive = 0;