Releases/Firefox 3.0.17/BuildNotes

From MozillaWiki
Jump to: navigation, search

Build Engineer(s)


Tracking release bug

Bonsai queries


Build 1:

Module Branch Tag Pull date
cvsroot/mozilla HEAD GECKO190_20091130_RELBRANCH FIREFOX_3_0_17_BUILD1 FIREFOX_3_0_17_RELEASE 2009-12-21 14:09 PST
l10n/l10n HEAD GECKO190_20091130_RELBRANCH FIREFOX_3_0_17_BUILD1 FIREFOX_3_0_17_RELEASE 2009-09-22 05:34 PDT


Build 1

  • on fx-linux-1.9-slave2:
    • rm -rf /builds/verify/{firefox-3.0.16,firefox-3016-356-major,firefox-3015-354-major,firefox-3015-36b2-major,firefox-3015-354-major,firefox-3015-36b2-major}/ /builds/source/firefox-3.0.16/ /builds/data/cltbld/firefox-3.0.16 /builds/tinderbox/Fx-Mozilla1.9-l10n-Release/Linux_2.6.18-53.1.13.el5_Depend/ /builds/tinderbox/Fx-Mozilla1.9-Release/Linux_2.6.18-53.1.13.el5_Depend/ /builds/tags/* /builds/3.0.15-3.5.5-major-update/ /builds/updates/firefox-3.0.16/ /builds/3.0.16-3.5.6-major-update/ /builds/firefox-3.0.16-bad_rsync_for_analysis
  • On fx-mac-1.9-slave2:
    • rm -rf /builds/verify/firefox-3.0.16/ /builds/verify/firefox-3016-356-major
  • On fx-win32-1.9-slave2 deleted:
    • /e/xr19rel/WINNT_5.2_Depend
    • /e/fx19l10nrel/WINNT_5.2_Depend
    • /e/fx19rel/WINNT_5.2_Depend
  • Available space on slaves:
    • fx-linux-1.9-slave2 36 GB on /builds
    • fx-mac-1.9-slave2 17 GB on /
    • fx-win32-1.9-slave2 14.8 GB on D: / 14.1 GB on E:
  • landed automation config and tagged with RELEASE_AUTOMATION_M15_1
  • reverted local changes (dummy factories) on production-1.9-master, reconfiged. Got an exception so stopped master and restarted, no exception on that.
  • Kicked off automation:
buildbot sendchange --username=nthomas --master=localhost:9989 -m"Firefox 3.0.17build1 release" RunForestRun!


No problems. Landed version bump to CVS HEAD.


No problems.

Build & Repack

No problems.



No problems.

Generate Updates

No problems.

Publish Updates to Test Channels (betatest & releasetest)

No problems.

Update Verify

Having the 3.0.16 files in firefox/releases/3.0.16-real broke update verify. Landed this fix and reran. No problems, just the usual chk file differences for win32.


No problems.


Forced builds, no problems.

3.0.17 -> 3.5.7 Major Update Refresh

Snippet Generation

On fx-linux-1.9-slave2:

mkdir -p /builds/3.0.17-3.5.7-major-update/snippets
cd /builds/3.0.17-3.5.7-major-update/snippets

cvs co -d patcher-configs mozilla/tools/patcher-configs
cvs co -r UPDATE_PACKAGING_R9 -d patcher mozilla/tools/patcher
cd patcher
cvs co -r UPDATE_PACKAGING_R9 -d MozBuild mozilla/tools/release/MozBuild

# build tools
./ --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R9 --config=../patcher-configs/moz19-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_build-tools.log

# download mars
./ --download --app=firefox --config=../patcher-configs/moz19-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_download.log

# FIXME - patcher needs to see that the MARs that it thinks are partials
#             are there or else it will not attempt to generate patchinfo
cd temp/firefox
ln -s 3.5.7 3.0.17-3.5.7
cd ../..

# Create partial patches and snippets
./ --create-patches --app=firefox --config=../patcher-configs/moz19-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox-create-patches.log
Quick Verify

Check that releasetest = beta = release.

cd temp/firefox/3.0.17-3.5.7
# releasetest == beta
find aus2.test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/aus2\.test/aus2.beta/; system("diff -r -u $_ $a");'
find aus2.beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/aus2\.beta/aus2.test/; system("diff -r -u $_ $a");'
# beta == release
find aus2.beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/aus2\.beta/aus2/; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; $a =~ s/aus2/aus2.beta/; system("diff -r -u $_ $a");'
Push to AUS
cd /builds/3.0.17-3.5.7-major-update/snippets/patcher/temp/firefox/3.0.17-3.5.7
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.beta/
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/
Enable test snippets
ssh -i ~/.ssh/aus2 cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/backupsnip 20091222-Firefox-3.0.17-3.5.7-MU-test
~/bin/pushsnip   20091222-Firefox-3.0.17-3.5.7-MU-test
Update verify

Ran update verify on fx-{linux,mac,win32}-1.9-slave2 as follows:

mkdir -p /builds/verify/firefox-3017-357-major/
cd /builds/verify/firefox-3017-357-major/
hg clone

# get patch to trawl "Only in" directories
cd tools/release/common
# on mac & linux
curl -sL | patch -p3
# on win32
wget --no-check-certificate -O patch§
patch -p3 < patch

# everyone ...
cd ../updates
platform=linux   # or mac or win32
./ -c moz19-firefox-$platform-major.cfg 2>&1 | tee $platform.log

Checked logs for results - whatever is after "succeeded", known issues are here. There's a additional nss3dbm.chk that differs on win32 but otherwise nothing unexpected.

Push updates to beta channel

# cltbld@aus2-staging.m.o
# make sure scripts are up to date
cd bin
cvs update
~/bin/backupsnip 20091222-Firefox-3.0.17-beta

Then on official "go" email do pushsnip:

~/bin/pushsnip 20091222-Firefox-3.0.17-beta

Sign Installers

  • Done manually on the day before release using these installer-signing-instructions here

On Stage complete stage-merged:

# on stage
cd /data/cltbld/firefox-3.0.17/
rsync -av batch1/mar/ stage-merged/
rsync -av batch1/stage-signed/ stage-merged/

Create MD5 and SHA1 checksum files

# on stage
cd /data/cltbld/firefox-3.0.17/stage-merged/
~/bin/checksum-files .

Fix permissions & ownership (on the two SUM files, and the detached sigs)

chown -R cltbld:firefox .
chmod 644 *SUMS

Update Bouncer

Added with BouncerBuddy

Push to mirrors

Done as ffxbld on stage

  • push the stage-merged directory to the releases area:
# on stage
rsync -av /data/cltbld/firefox-3.0.17/stage-merged/ /home/ftp/pub/firefox/releases/3.0.17/
  • edit the exclude file (as cltbld) /pub/ to add the new release (3.0.17) and remove the previous release (3.0.16).

Final Verification

hg clone
cd tools/release/updates
cat moz19-firefox-{win32,mac,linux}.cfg | grep -v major | sed 's/betatest/releasetest/' > update.cfg
./ -t update.cfg 2>&1 | tee quickVerify.log

Look for any HTTP error codes besides 200 ("OK") and 302 ("Found"):

grep HTTP quickVerify.log | grep -v 200 | grep -v 302
  • was stuck, got it taken out of the rotation by pinging IT (bug 538025)
  • had two 404s, was fully synced up when I tested manually

Repeat for major update files

cat moz19-firefox-{win32,mac,linux}-major.cfg | grep -v major | sed 's/betatest/releasetest/' > update-mu.cfg
./ -t update-mu.cfg 2>&1 | tee quickVerify-MU.log
grep HTTP quickVerify-MU.log | grep -v 200 | grep -v 302

Before pushing final updates, verify that "release" and "releasetest" channel match:

# on aus2-staging
cd /opt/aus2/snippets/staging/20091222-Firefox-3.0.17
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ ../20091222-Firefox-3.0.17-test/$a");'

Publish Updates to Release Channel

Backupsnip was run for 3.5.7

~/bin/pushsnip 20091222-Firefox-3.0.17

Enable the major update

~/bin/pushsnip 20091222-Firefox-3.0.17-3.5.7-MU-beta
~/bin/pushsnip 20091222-Firefox-3.0.17-3.5.7-MU

Filed bug 538024 to unthrottle 3.0.16 -> 3.0.17 updates. Config change was in bug 537991.


# ffxbld@stage
cd /home/ftp/pub/firefox/releases
rm latest-3.0 && ln -s 3.0.17 latest-3.0

Release matching XULRunner build

XULRunner builds are produced by the automation, this is to groom them and push to the mirrors.

# 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 ~/firefox-${FX_VERSION}/stage-merged/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=, don't need BUILD or TAG), skip the win32 signing section, do pgp, verify and upload. Back on stage:

cd ~/xulrunner-${VERSION}/batch1/stage-signed
cp ~/firefox-${FX_VERSION}/stage-merged/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)

Ping mfinkle or Mossop to update the links in these two wiki pages for the version change