Releases/Firefox 3.6rc1/BuildNotes
NB: Text that is italicized indicates tasks still to be done, or information that needs to be filled in.
Contents
- 1 Build Engineers
- 2 Signed-off Revision(s)
- 3 Tags
- 4 Build data
- 5 Notes
- 5.1 Build 1
- 5.1.1 Tag
- 5.1.2 Source
- 5.1.3 Build/Repack
- 5.1.4 Socorro product data updates
- 5.1.5 Sign
- 5.1.6 L10N Verify
- 5.1.7 Generate updates & push betatest snippets
- 5.1.8 WinCE update and snippet generation
- 5.1.9 Update Verify
- 5.1.10 Update Bouncer
- 5.1.11 Final checks before push
- 5.1.12 Push to mirrors
- 5.1.13 Final Verification
- 5.1.14 Push updates to release channel
- 5.1.15 Release
- 5.1.16 XULRunner build
- 5.1 Build 1
Build Engineers
Build tag-team:
- NZDT: nthomas
- EST: coop
Signed-off Revision(s)
Build 1: 0f70d1d535dc
Tags
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 |
Notes
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!
Tag
- slave: moz2-linux-slave02
- bump mozilla-1.9.2 to 3.6pre with patch
- reopen mozilla-1.9.2
- no problems
Source
- slave: moz2-linux-slave23
- no problems
Build/Repack
- 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 done
- 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.
Sign
- 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 https://bug535567.bugzilla.mozilla.org/attachment.cgi?id=420483 | patch -p0 cd /builds/slave/updates/build perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/moz192-branch-patcher2-wince.cfg perl patcher2.pl --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 ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/nightly/3.6rc1-candidates/build1/ cd /builds/slave/updates/build/temp/firefox/3.6b5-3.6rc1 rsync -av aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20100106-Firefox-3.6rc1-WinCE rsync -av aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20100106-Firefox-3.6rc1-WinCE-test
- Push the snippets live
# cltbld@aus2-staging cd /opt/aus2/snippets/staging ~/bin/pushsnip 20100106-Firefox-3.6rc1-WinCE-test
Update Verify
- Linux: failed
- no complete update found for https://aus2.mozilla.org/update/1/Firefox/3.6b5/20091204132459/Linux_x86-gcc3/eo/betatest/update.xml?force=1
- seems spurious, it's available when I check by hand
- Mac: No problems
- Win32: failed
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:
#!/bin/bash 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 fi done
- 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 2c2 < pref("app.update.channel", "beta"); --- > pref("app.update.channel", "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/mozilla.org/firefox/nightly/3.6rc1-candidates/build1/ 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=*.crashreporter-symbols.zip --exclude=*.tests.tar.bz2* \ --exclude=update/win32/*/*.partial.mar \ --exclude=wince-arm/ --exclude=update/wince-arm/ \ /pub/mozilla.org/firefox/nightly/3.6rc1-candidates/build1/ \ /pub/mozilla.org/firefox/releases/3.6rc1/
- Push WinCE files after QA signoff
# ffxbld@stage rsync -av --exclude=*.log --exclude=*.txt --exclude=*unsigned* \ --exclude=*.crashreporter-symbols.zip --exclude=*.tests.tar.bz2* \ --exclude=update/win32/*/*.partial.mar \ /pub/mozilla.org/firefox/nightly/3.6rc1-candidates/build1/ \ /pub/mozilla.org/firefox/releases/3.6rc1/
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
Release
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/mozilla.org/xulrunner/nightly/ 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 VERSION=1.9.2rc1 FX_VERSION=3.6rc1 BUILD=1 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/mozilla.org/firefox/releases/${FX_VERSION}/source/firefox-${FX_VERSION}.source.tar.bz2 \ source/xulrunner-${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/mozilla.org/firefox/releases/${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