Releases/Firefox 3.0.18/BuildNotes

From MozillaWiki
Jump to: navigation, search

Build Engineer(s)

jhford, nthomas

Tracking release bug

Bonsai queries


Build 1:

Module Branch Tag Pull date
cvsroot/mozilla HEAD GECKO190_20100203_RELBRANCH 2010-02-02 11:31 PST
GECKO190_20100203_RELBRANCH FIREFOX_3_0_18_BUILD1 FIREFOX_3_0_18_RELEASE 2010-02-02 18:33 PST
l10n/l10n HEAD GECKO190_20100203_RELBRANCH 2009-09-22 05:34 PDT
GECKO190_20100203_RELBRANCH FIREFOX_3_0_18_BUILD1 FIREFOX_3_0_18_RELEASE 2010-02-02 18:55 PST


Build 1

  • on fx-linux-1.9-slave2:
    • rm -rf /builds/verify/{firefox-20020-3015-major,firefox-3015-36b4-major,firefox-3.0.17,firefox-3017-357-major,firefox-3017-36rc1-major,firefox-3.0.17-final,firefox-355-36b4-major,firefox-357-36final-major,firefox-357-36rc1-major}/ /builds/source/firefox-3.0.17/ /builds/data/cltbld/firefox-3.0.17 /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.17-3.5.7-major-update/ /builds/updates/firefox-3.0.17/
  • On fx-mac-1.9-slave2:
    • rm -rf /builds/verify/firefox-3.0.17/ /builds/verify/firefox-3017-357-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 39 GB on /builds
    • fx-mac-1.9-slave2 26 GB on /
    • fx-win32-1.9-slave2 14.2 GB on D: / 14.1 GB on E:
  • landed automation config and tagged with RELEASE_AUTOMATION_M15_1
  • checked for local changes (dummy factories) in production-1.9-master:/builds/buildbot/trunk-automation-master/buildbot-configs, reconfiged to get exception; buildbot stop and start.
  • tagged hg:build/tools with FIREFOX_3_0_18_RELEASE
  • Kicked off automation:
buildbot sendchange --username=jhford --master=localhost:9989 -m"Firefox 3.0.18build1 release" RunForestRun!


No problems were experienced. Version bumps were landed [1]


No problems were experienced

Build & Repack

No problems were experienced


No Problems were experienced


no problems

Generate Updates

no problems

Publish Updates to Test Channels (betatest & releasetest)

no problems

Update Verify

no problems aside from the normal .chk file differences. I used

curl 2>/dev/null|grep differ

to ensure that the only files that were no the same were softokn3.chk and freebl3.chk


No problems


May not be needed, depending on feedback to this newsgroup post.

3.0.18 -> 3.6 Major Update Refresh

Snippet Generation

On fx-linux-1.9-slave2:

mkdir -p /builds/3.0.18-3.6-major-update/snippets
cd /builds/3.0.18-3.6-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.6 3.0.18-3.6
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 betatest releasetest = beta = release (normally betatest would be different but 3.6 is well shipped and all the channels point at bouncer this time).

cd temp/firefox/3.0.18-3.6

# betatest == releasetest
find aus2.test -type d -iregex '.*/betatest$' | perl -nle '$a = $_; $a =~ s/betatest/releasetest/; system("diff -r -u $_ $a");'
find aus2.test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/betatest/; system("diff -r -u $_ $a");'

# 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.18-3.6-major-update/snippets/patcher/temp/firefox/3.0.18-3.6
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
~/bin/backupsnip 20100204-Firefox-3.0.18-3.6-MU-test
~/bin/pushsnip   20100204-Firefox-3.0.18-3.6-MU-test
Update verify

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

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


Only in source/bin: .autoreg
diff -r source/bin/defaults/pref/channel-prefs.js target/bin/defaults/pref/channel-prefs.js
< //@line 2 "e:\fx19rel\WINNT_5.2_Depend\mozilla\browser\app\profile\channel-prefs.js"
> //@line 2 "e:\builds\moz2_slave\win32_build\build\browser\app\profile\channel-prefs.js"
Binary files source/bin/freebl3.chk and target/bin/freebl3.chk differ
Binary files source/bin/nssdbm3.chk and target/bin/nssdbm3.chk differ
Only in source/bin: removed-files
Binary files source/bin/softokn3.chk and target/bin/softokn3.chk differ

3x chk files are expected (until bug 489961 is resolved), .autoreg and removed-files are OK, and harmless comment change in channel-prefs.js


diff -r source/ target/
< //@line 2 "/builds/tinderbox/Fx-Mozilla1.9-Release/Darwin_8.8.4_Depend/mozilla/browser/app/profile/channel-prefs.js"
> //@line 2 "/builds/slave/macosx_build/build/browser/app/profile/channel-prefs.js"
Only in source/ Default Plugin.plugin
Only in source/ CVS
Only in source/ Plug-Ins
Contents of source/ Plugin.plugin dir only in source or target
1770374064    0 drwxr-xr-x    4 cltbld   cltbld        136 Feb  4 18:53 source/ Plugin.plugin/Contents
1770374066    0 drwxr-xr-x    2 cltbld   cltbld         68 Feb  4 18:53 source/ Plugin.plugin/Contents/MacOS
1770374067    0 drwxr-xr-x    3 cltbld   cltbld        102 Feb  4 18:53 source/ Plugin.plugin/Contents/Resources
1770374068    0 drwxr-xr-x    2 cltbld   cltbld         68 Feb  4 18:53 source/ Plugin.plugin/Contents/Resources/English.lproj
Contents of source/ dir only in source or target
Contents of source/ dir only in source or target
1770374096    0 drwxr-xr-x    3 cltbld   cltbld        102 Feb  2 20:10 source/
1770374097    0 drwxr-xr-x    4 cltbld   cltbld        136 Feb  4 18:53 source/
1770374098    0 drwxr-xr-x    2 cltbld   cltbld         68 Feb  4 18:53 source/
1770374099    0 drwxr-xr-x    3 cltbld   cltbld        102 Feb  2 20:10 source/
1770374100    0 drwxr-xr-x    3 cltbld   cltbld        102 Feb  4 18:53 source/
1770374101    0 drwxr-xr-x    2 cltbld   cltbld         68 Feb  4 18:53 source/

Some empty directories (which the updater can't remove) and the harmless comment change.

Linux: harmless comment change

diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js
< //@line 2 "/builds/tinderbox/Fx-Mozilla1.9-Release/Linux_2.6.18-53.1.13.el5_Depend/mozilla/browser/app/profile/channel-prefs.js"
> //@line 2 "/builds/slave/linux_build/build/browser/app/profile/channel-prefs.js"

Locale specific: leftover searchplugins

  • fr
Only in source/firefox/searchplugins: MediaDICO-fr.xml
  • hu
Only in source/firefox/searchplugins: amazondotcom.xml
Only in source/firefox/searchplugins: answers.xml
Only in source/firefox/searchplugins: eBay.xml
Only in source/firefox/searchplugins: yahoo.xml
  • it
Only in source/firefox/searchplugins: demauro.xml
  • uk
Only in source/firefox/searchplugins: price-ua.xml

Locale specific: no locale for 3.6

  • mn
FAIL: no partial update found for
FAIL: download_mars returned non-zero exit code: 1
Fix buildID's in snippets

The linux and windows buildIDs for 3.6 had been switched in the patcher config. Fixed by moving the first round of snippets into a backup directory, adjusting the config, running the last command of Snippet Generation. Diffing each aus2 directory against the backup confirmed the only changes were the buildIDs. Then all of Quick Verify, Push To AUS, and Enable test snippets. New dirs are 20100210-Firefox-3.0.18-3.6-MU{,-beta,-test}.

Push updates to beta channel

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

Sign Installers

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

On Stage complete stage-merged:

# cltbld@stage
cd /data/cltbld/firefox-3.0.18/
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.18/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 bouncer buddy, including solaris entries for tarballs and complete updates.

Push to mirrors

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

Final Verification

On any machine with reasonable net connection

  • I chose
  • Nick removed
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

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/20100203-Firefox-3.0.18
find -type d -iregex '.*release.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ ../20100203-Firefox-3.0.18-test/$a");'

Publish Updates to Release Channel

Since bug 508406 we should run backupsnip every time we push for a given code branch, and not rely on it being run elsewhere. This will take about 10 minutes to run and can be done ahead of time:

~/bin/backupsnip 20100203-Firefox-3.0.18

After go email from driver:

~/bin/pushsnip   20100203-Firefox-3.0.18

Provided pascal has all the billboards done we can enable the major update

~/bin/backupsnip 20100210-Firefox-3.0.18-3.6-MU-beta
~/bin/pushsnip   20100210-Firefox-3.0.18-3.6-MU-beta
~/bin/pushsnip   20100210-Firefox-3.0.18-3.6-MU

No throttling changes to make.


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

Release matching XULRunner build

No longer required (bug 544678)