Releases/Firefox 3.6rc1/BuildNotes

From MozillaWiki
Jump to: navigation, search

NB: Text that is italicized indicates tasks still to be done, or information that needs to be filled in.

Build Engineers

Build tag-team:

  • NZDT: nthomas
  • EST: coop

Signed-off Revision(s)

Build 1: 0f70d1d535dc


On mozilla-central:

Build # Tag Changeset
1 GECKO192_20100105_RELBRANCH 0f70d1d535dc
FIREFOX_3_6rc1_BUILD1 FIREFOX_3_6rc1_RELEASE 672df9e9c441

Build data

Build 1:

Platform Build ID Build machine
Win32 20100105212446 win32-slave18
Mac 20100105194006 moz2-darwin9-slave14
Linux 20100105194116 moz2-linux-slave16
WinCE 20100105194724 win32-slave24


Using production-master.b.m.o.

Build 1

  • Clean up previous releases build dirs, just for the slaves we used for 3.6b4 build1. Used cssh for linux/mac, RDP as Administrator on win32.
    • Linux: slave01,02,05-10,12,16,18,24,26; rm -rf /builds/slave/{tag,source,linux_build,linux_repack,updates,linux_update_verify,final_verification}/*
    • Mac: slave02,05,06,07,09,10,14; xserve07,09; rm -rf /builds/slave/{macosx_build,macosx_repack,l10n_verification, macosx_update_verify}/*
    • Win32: win32-slave01,02,05,06,07,08,09,10,13,39; rm -rf /e/builds/moz2_slave/{win32_build,win32_repack,win32_update_verify,wince_build}/*
  • one-off: switched update channel to release
  • prepared automation config patch - minus changeset
  • landed automation config
  • reconfig'd master
  • Tagged build/{buildbot-configs,buildbotcustom,tools} with FIREFOX_3_6rc1_RELEASE
  • Closed the mozilla-1.9.2 tree
  • Sendchange:
buildbot sendchange --username=nthomas --master=localhost:9010 --branch=releases/mozilla-1.9.2 -m "Firefox 3.6rc1build1" go!


  • slave: moz2-linux-slave02
  • bump mozilla-1.9.2 to 3.6pre with patch
  • reopen mozilla-1.9.2
  • no problems


  • slave: moz2-linux-slave23
  • no problems


  • slaves
  • Manual verification that all l10n builds are present:
# stage
cd /home/ftp/pub/firefox/nightly/3.6b4-candidates/build1
# each should be 74 = en-US + 73 locales, for desktop platforms
for p in linux-i686 mac unsigned/win32; do
 echo `ls $p | grep -v xpi | wc -l` $p
  • Removed en-US.xpi from the 3.6rc1-candidates/build1/ directory on stage
  • No problems

Socorro product data updates

Submitted a crash using linux build and Crash Me Now extension. Poked joduinn to enable 3.6 and 3.6pre versions.


  • instructions
  • FIXME - bug 538457 need to exclude the tests files when downloading so that they don't end up in MD5SUMS and SHA1SUMS, or get pgp sigs
  • Otherwise no problems

L10N Verify

  • No problems

Generate updates & push betatest snippets

  • No problems

WinCE update and snippet generation

  • slave: moz2-linux-slave18 (same slave as the automated run)
  • Generate the snippets
cd /builds/slave/updates/build
# move the previous run aside
mv temp temp.b1
# get custom config
# NB: this is now checked in as moz192-branch-patcher2-wince.cfg
#     for 3.6rc2 we should update the config, land, and the curl turns into a 'cvs up'
cd patcher-configs
curl -s | patch -p0

cd /builds/slave/updates/build
perl --download --app=firefox --brand=Firefox --config=patcher-configs/moz192-branch-patcher2-wince.cfg
perl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/moz192-branch-patcher2-wince.cfg
find temp/firefox/3.6b5-3.6rc1/ftp/firefox/nightly/3.6rc1-candidates/build1 -type f -exec chmod 644 {} \;
find temp/firefox/3.6b5-3.6rc1/ftp/firefox/nightly/3.6rc1-candidates/build1 -type d -exec chmod 755 {} \;
cd /builds/slave/updates/build/temp/firefox/3.6b5-3.6rc1/ftp/firefox/nightly/3.6rc1-candidates/build1
rsync -av -e 'ssh -oIdentityFile=~/.ssh/ffxbld_dsa' --exclude=*complete.mar update
cd /builds/slave/updates/build/temp/firefox/3.6b5-3.6rc1
rsync -av aus2/
rsync -av aus2.test/
  • Push the snippets live
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/pushsnip 20100106-Firefox-3.6rc1-WinCE-test

Update Verify

PREPARE PATCH AccessibleMarshal.dll
CRC check failed
LoadSourceFile failed
failed: 4
calling QuitProgressUI
FAIL: update status was not succeeded: failed: 4
FAIL: check_updates returned failure for WINNT_x86-msvc downloads/Firefox Setup 3.6 Beta 5.exe vs. downloads/Firefox Setup 3.6 RC 1.exe: 1
    • this is expected due to a rebasing change that happened in 3.6b5. See the Update Verify notes for 3.6b5 for details.
    • there are about 600K users on 3.6b5 Win, so in order to prevent the unnecessary downloading of partials, we made the snippets for partials point to the complete updates. Here's the script I used to pull the switch (~/coop/completes_as_partials.bash), run from /opt/aus2/incoming/3/Firefox/3.6b5/WINNT_x86-msvc/20091204143806 on aus2-staging:
for i in `find . -name complete.txt -print`; do
  DIR=`dirname ${i}`
  # only make a new partial when we have an existing partial
  if [ -f ${DIR}/partial.txt ]; then
    mv ${DIR}/partial.txt ${DIR}/partial.txt.orig
    cp ${i} ${DIR}/partial.txt
    perl -i.old -pe 's/type=complete/type=partial/' ${DIR}/partial.txt 
    • win32 update verify was green afterward. We expect all of these differences:
Only in source/bin: .autoreg
diff -r source/bin/defaults/pref/channel-prefs.js target/bin/defaults/pref/channel-prefs.js
< pref("", "beta");
> pref("", "release");
Files source/bin/freebl3.chk and target/bin/freebl3.chk differ
Files source/bin/nssdbm3.chk and target/bin/nssdbm3.chk differ
Only in source/bin: removed-files
Files source/bin/softokn3.chk and target/bin/softokn3.chk differ
    • I also made a copy of the original beta/release snippets and updated those snippets too:
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
cp -r 20100105-Firefox-3.6rc1 20100105-Firefox-3.6rc1-completes-only-for-win32
cd 20100105-Firefox-3.6rc1-completes-only-for-win32/Firefox/3.6b5/WINNT_x86-msvc/20091204143806/
bash ~/coop/completes_as_partials.bash

Update Bouncer

3 entries each for linux, macosx, wince, and 4 types of solaris. No partials for win32 partial so only two entries for that.

Final checks before push

cd /pub/
find . ! -user ffxbld
find . ! -group firefox
find . -type f ! -perm 644
find . -mindepth 1 -type d ! -perm 755 ! -name 'contrib*'
find . -maxdepth 1 -type d ! -perm 2775  -name 'contrib*'

Push to mirrors

Need to exclude from the rsync:

  • *.tests.tar.bz2 which are used for talos and unit test but not shipped (new this time)
  • win32 partials because they're bogus (see updates above)
  • WinCE files because QA is still checking those
# ffxbld@stage
rsync -av --exclude=*.log --exclude=*.txt --exclude=*unsigned* \
 --exclude=* --exclude=*.tests.tar.bz2* \
 --exclude=update/win32/*/*.partial.mar \
 --exclude=wince-arm/ --exclude=update/wince-arm/ \
 /pub/ \
  • Push WinCE files after QA signoff
# ffxbld@stage
rsync -av --exclude=*.log --exclude=*.txt --exclude=*unsigned* \
 --exclude=* --exclude=*.tests.tar.bz2* \
 --exclude=update/win32/*/*.partial.mar \
 /pub/ \

Final Verification

Run at 17:30 PDT on day before "release". Got 4 errors from voxcdn out of ~950 requests to them. Passed information on to reed.

Push updates to release channel

~/bin/backupsnip 20100105-Firefox-3.6rc1-completes-only-for-win32
real	49m52.783s
user	0m22.306s
sys	0m30.768s
  • pushsnip for desktop builds after r-d go
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/pushsnip 20100105-Firefox-3.6rc1-completes-only-for-win32
  • pushsnip for wince after separate sync to mirrors and releasetest go
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/pushsnip 20100106-Firefox-3.6rc1-WinCE


No symlink until final

XULRunner build

Builds are forced manually, using revision of FIREFOX_3_6rc1_RELEASE, name and reason. When they complete

# xrbld@stage
cd /pub/
mkdir -p 1.9.2rc1-candidates/build1/
mv -v latest-mozilla-1.9.2/*-1.9.2.* 1.9.2rc1-candidates/build1/

Contact mfinkle and dtownsend for smoketest QA. After go from them:

# cltbld@stage

mkdir -p ~/xulrunner-${VERSION}/batch1/stage-unsigned/{runtimes,source,sdk}
cd ~/xulrunner-${VERSION}/batch1/stage-unsigned
rsync -av --exclude=*sdk* --exclude=*info* \
  /home/ftp/pub/xulrunner/nightly/${VERSION}-candidates/build${BUILD}/ runtimes/
rsync -av --include=*sdk* --exclude=* \
  /home/ftp/pub/xulrunner/nightly/${VERSION}-candidates/build${BUILD}/ sdk/
cp -pv /pub/${FX_VERSION}/source/firefox-${FX_VERSION}.source.tar.bz2 \
cd ~/xulrunner-${VERSION}/batch1
rsync -av stage-unsigned/ stage-signed/

Then create detached signatures per usual process (with PRODUCT=xulrunner, VERSION=1.9.2rc1, don't need BUILD, TAG, or KEYDIR), skip the win32 signing section, do pgp, verify and upload. Back on stage:

cd ~/xulrunner-${VERSION}/batch1/stage-signed
cp /pub/${FX_VERSION}/KEY .
~/bin/checksum-files .
chown -R cltbld:xulrunner .
find . -type f -exec chmod -v 644 {} \;
find . -type d -exec chmod -v 755 {} \;
cd ~/xulrunner-${VERSION}/batch1
rsync -nav stage-signed/* /home/ftp/pub/xulrunner/releases/${VERSION}/

If all is fine then

rsync -av stage-signed/* /home/ftp/pub/xulrunner/releases/${VERSION}/

(Mirror updating can take a bit, 10-15 mins this time)

Updated the links on

Once we hit 3.6 final we'll add 1.9.2 to