Releases/Firefox 3.0.13/BuildNotes

From MozillaWiki
Jump to: navigation, search

Please be sure to use

  • UPDATE_PACKAGING_R9 in the bootstrap config
  • RELEASE_AUTOMATION_M15 in the buildbot master config (for bug 496491)

Build Engineers

nthomas, bhearsum
Tracking release bug

Bonsai queries


Build 1:

Module Branch Tag Pull date
cvsroot/mozilla GECKO190_20090706_RELBRANCH FIREFOX_3_0_13_BUILD1 FIREFOX_3_0_13_RELEASE 2009-07-30 19:18 PDT
l10n/l10n GECKO190_20090706_RELBRANCH FIREFOX_3_0_13_BUILD1 FIREFOX_3_0_13_RELEASE 2009-07-30 19:18 PDT


Build 1

  • On fx-win32-1.9-slave2:
    • Deleted /e/xr19rel/WINNT_5.2_Depend
    • Deleted /e/fx19l10nrel/WINNT_5.2_Depend
    • Deleted /e/fx19rel/WINNT_5.2_Depend
  • On fx-linux-1.9-slave2:
    • Deleted /builds/verify/firefox-3.0.12
    • Deleted /builds/verify/firefox-3011-35rc3build2-major-test
    • Deleted /builds/updates/firefox-3.0.12
    • Deleted /builds/source/firefox-3.0.12
    • Deleted /builds/tags/FIREFOX_3_0_8_BUILD2
    • Deleted /builds/data/cltbld/firefox-3.0.12
    • Deleted /builds/tinderbox/Tb-Mozilla1.9-l10n-Release/Linux_2.6.18-53.1.13.el5_Depend/ (one-off)
    • Deleted /builds/tinderbox/Xr-Mozilla1.9-Release/Linux_2.6.18-53.1.13.el5_Depend
  • On fx-mac-1.9-slave2:
    • Deleted /builds/verify/firefox-3.0.12 (and some old major update test runs, a one off)
  • Space free on slaves:
    • fx-mac-1.9-slave2: 24G free on /
    • fx-win32-1.9-slave2: 16.4G free on D, 14G free on E
    • fx-linux-1.9-slave2: 21G free on /builds
  • Kicked off automation:
 buildbot sendchange --username=nthomas --master=localhost:9989 -m"Firefox 3.0.13build1 release" go


No problems


No problems

Build & Repack

  • Linux - no problems
  • Win32 - no problems
  • Mac - no problems


  • Signing doc
  • NB: Doc change - do only the linked section.
  • no problems


No l10n changes at all

Generate Updates

No problems with update generation

Publish Updates to Test Channels (betatest & releasetest)

No problems

Update Verify

  • linux - full PASS
  • win32 - .chk files differ, as always, otherwise fine.
  • mac - full PASS


No problems

Partner Repacks

no longer need to do these since we've shipped 3.5 bug 507961 to disable them


automated, no problems

Sign Installers

Done manually using these installer-signing-instructions here. NB: Doc location change, content unmodified.

  • Had to locally modify sign-release because it hardcodes 'e:/2008-keys' for the key loocation bug 507660

On Stage complete stage-merged:

# on stage
cd /data/cltbld/firefox-3.0.13/
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.13/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


3.0.13 -> 3.5.x Major Update Refresh

be sure to land this AUS patch

Snippet Generation
# ssh
mkdir -p /builds/3.0.13-3.5.2-major-update/snippets
cd /builds/3.0.13-3.5.2-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.2 3.0.13-3.5.2
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.13-3.5.2
# releasetest == beta
find aus2.test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/aus2\.test/aus2/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/aus2/aus2.test/; system("diff -r -u $_ $a");'
# beta == release
find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
find aus2 -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; system("diff -r -u $_ $a");'
Push to AUS
cd /builds/3.0.13-3.5.2-major-update/snippets/patcher/temp/firefox/3.0.13-3.5.2
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/
Enable test snippets

Backupsnip was run for 20090731-Firefox-3.0.13, so I didn't run it again.

# cltbld@aus-staging
~/bin/pushsnip 20090731-Firefox-3.0.13-3.5.2-MU-test
Update verify

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

mkdir -p /builds/verify/firefox-3013-352-major/
cd /builds/verify/firefox-3013-352-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

results everything the same as 3.0.12 -> 3.5.1 MU. aka, everything is OK

Push updates to beta channel

  # cltbld@aus2-staging.m.o
  # make sure scripts are up to date
  cd bin
  cvs update
  cd /opt/aus2/snippets/staging/
  ~/bin/backupsnip 20090731-Firefox-3.0.13-beta
  ~/bin/pushsnip 20090731-Firefox-3.0.13-beta

Make sure that this AUS throttling update gets landed after beta snippets are pushed, otherwise 3.0.12 beta users will not be passively updated.

Disable 3.0.12 -> 3.5.1 MU

Drivers requested in bug 507967 that we disable the current MU, so that people don't end up going 3.0.12 -> 3.5.1 -> 3.5.2 if they hear that a new firefox release is coming.

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging/
rsync -a 20090721-Firefox-3.0.12-3.5.1-MU/ 20090802-Firefox-3.0.12-3.5.1-MU-null/
cd 20090802-Firefox-3.0.12-3.5.1-MU-null/
find . -depth -type d -iregex '.*/beta$' -exec rm -rf {} \;
for f in `find . -type f`; do rm $f; touch $f; done

Checked that there 370 empty snippets, to match 370 useful ones in the source dir, release channel only.

~/bin/backupsnip 20090802-Firefox-3.0.12-3.5.1-MU-null
~/bin/pushsnip   20090802-Firefox-3.0.12-3.5.1-MU-null

Push to mirrors

Make sure that you use ffxbld for 'push to mirrors' , rather than cltbld (this is a change, but a desired one).

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

Final Verification

hg clone
cd tools/release/updates
cat moz19-firefox-*.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
  • Before pushing final updates, verify that "release" and "releasetest" channel match:
# on aus2-staging
cd /opt/aus2/snippets/staging/20090731-Firefox-3.0.13
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ ../20090731-Firefox-3.0.13-test/$a");'

Publish Updates to Release Channel

updated AUS' config-dist.php and pushed because of the new MU at this time.

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
# skipped backupsnip, as it was done for FF3.5.2 this morning
# ~/bin/backupsnip 20090731-Firefox-3.0.13
time ~/bin/pushsnip 20090731-Firefox-3.0.13
real    2m21.174s
user    0m0.427s
sys     0m16.176s
time ~/bin/pushsnip 20090731-Firefox-3.0.13-3.5.2-MU
real    0m20.744s
user    0m0.069s
sys     0m2.347s

Made sure that this AUS throttle update got landed, tagged, and pushed (instructions are in the bug).


# ffxbld@stage
cd /home/ftp/pub/firefox/releases
rm latest-3.0 && ln -s 3.0.13 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