Releases/Firefox 5.0/BuildNotes

From MozillaWiki
Jump to: navigation, search

Preamble

Differences between 4.0 and 5.0

  • We will be generating builds with "5.0" filenames instead of "5.0 RC 1", so there's no need to do any of the "stage and rename files" stuff that we did in 4.0.
  • We will not be pushing updates for 5.0b* users, they will instead go to the first 6.0 Beta we generate. Note that snippets will still be created due to release automation limitations

Stuff that needs to happen

  • Put Installers/MARs/Source packages on the mirror network
    • Push index files ahead of time
  • Generate updates
    • Updates from 4.0, 4.0.1 -> 5.0 Final, release channel
      • Automatic
  • Generate partner builds (including EU Ballot)
  • Generate XULRunner builds

Build Engineers

bhearsum - bug 663894

Signed-off Revision(s)

Build 1: f1acd88f828e

L10N changesets

No dashboard, but we used the same changesets as Beta 7.

Tags

Build # Tag Changeset
1 GECKO50_2011061416_RELBRANCH f1acd88f828e
FIREFOX_5_0_RELEASE FIREFOX_5_0_BUILD1 7b56ff900c2a

Build data

Build # Type Build ID Build machine Time to build
1 Linux 20110615151330 mv-moz2-linux-ix-slave09 1h6min
Linux64 moz2-linux64-slave01 1h25min
Mac moz2-darwin10-slave41 4h19min
Windows mw32-ix-slave03 2h48min

Build 1

Setup

Done on pm01

  • Landed patches, merged to production, updated master and reconfiged (this)
  • Added FIREFOX_5_0_{BUILD1,RELEASE} tags to tools, buildbot-configs, and buildbotcustom
  • Set reserved_slaves_pm01 to '6'
  • Ran release_sanity.py:
PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u bhearsum -V 5.0 --branch mozilla-release --build-number 1 -c release-firefox-mozilla-release.py --dryrun localhost:9010

Got error about l10n dashboard, because the milestone was never created there. That's ignorable, so I used this command to kick off the release, ignoring the error:

PYTHONPATH=.:tools/lib/python/ python tools/buildbot-helpers/release_sanity.py -u bhearsum -V 5.0 --branch mozilla-release --build-number 1 -c release-firefox-mozilla-release.py -b localhost:9010

Tag

No problems

Start Autosign

Deleted unsigned-build1/signed-build1 directories for 5.0b5, 6, and 7 to clear up some space. Started signcodepwd.exe, and run the following in a cygwin window:

PRODUCT=firefox
VERSION=5.0
BUILD=1
TAG=FIREFOX_5_0_RELEASE
REPO='releases/mozilla-release'
EMAIL=release@mozilla.com
KEYDIR=d:/2010-keys
RELCONFIG=mozilla/release-firefox-mozilla-release.py

cd ${HOME}/hg-tools/ # if it exists, otherwise create a fresh clone
hg pull && hg up -r ${TAG}

mkdir -p ~/signing-work/${PRODUCT}-${VERSION}/lib/python
cd ~/signing-work/${PRODUCT}-${VERSION}
cp ~/hg-tools/release/signing/* .
rsync -av ~/hg-tools/lib/python/ ./lib/python/
make autosign PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} RELCONFIG=${RELCONFIG}

Source

No problems

Build/Repack

No problems

Partner Repack

No problems

Signing

No problems. Got "Signature verification succeeded" mail.

L10n verify

Essentially useless, because it was done against 4.0.1. Tons and tons of diffs, no point in sifting through them.

Updates (4.0.1, 4.0rc2, 4.0rc1 -> 5.0)

  • Failed when trying to upload "aus2.beta" snippets
    • This was an expected failure because of limitations in the "updates" factory. To finish this step, did the following:
# on mv-moz2-linux-ix-slave09, to compare the release channel to releasetest
cd /builds/slave/rel-rel-updates/build/temp/firefox/4.0.1-5.0
bash /builds/slave/rel-rel-updates/tools/release/compare-channel-snippets.sh aus2 release aus2.test releasetest
# On my local machine, to kick off update verify
for p in linux linux64 macosx64 win32; do
  for i in 1 2 3 4 5 6 7 8 9 10; do
    curl "http://production-master1.build.sjc1.mozilla.com:8010/builders/release-mozilla-release-${p}_update_verify_${i}%2F10/force" >/dev/null
  done
done

Also used "force build" to start permissions check and virus scan builders.

Update Verify

All green.

  • All platforms:
    • Legitimate looking search engine changes for some locales
    • Comment differences due to change in full path to bulid directory
  • Linux/Linux64:
    • No other differences
  • Mac
    • Some locales had "Only in source/Firefox.app: force_plist_reload".
  • Win32
    • For all complete updates:
Only in source/bin: D3DCompiler_42.dll
Only in source/bin: d3dx9_42.dll

Virus scan and permissions check

No permissions problems, no viruses.

Reset reserved slaves file

[cltbld@production-master01 builder_master1]$ echo 0 > /builds/buildbot/builder_master1/reserved_slaves_pm01 

Updates (5.0b* -> 5.0)

Landed patcher config and update verify config bumps.

Retagged new update verify config revision with FIREFOX_5_0b7_{BUILD1,RELEASE}_RUNTIME.

Did work on mv-moz2-linux-ix-slave09.build.mozilla.org because it already did the 4.0 -> 5.0 updates.

cd /builds/slave/rel-rel-updates/build/patcher-configs
cvs up
cd ..
perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/mozBeta-branch-patcher2.cfg

cd temp/firefox
ln -s 5.0 5.0b7-5.0
cd ../..

perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/mozBeta-branch-patcher2.cfg

# remove partials for 5.0b7
cd temp/firefox/5.0b7-5.0
find aus2{,.test} -name partial.txt -exec rm {} \;

# check releasetest == beta
bash /builds/slave/rel-rel-updates//tools/release/compare-channel-snippets.sh aus2 beta aus2.test releasetest

# push up to aus
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0-build1-5.0b7-build1-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0-build1-5.0b7-build1

bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-5.0-build1-5.0b7-build1-test'
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-5.0-build1-5.0b7-build1-test'

Update Verify

# On my local machine, to kick off update verify
for p in linux linux64 macosx64 win32; do
  for i in 1 2 3 4 5 6 7 8 9 10; do
    curl "http://production-master3.build.sjc1.mozilla.com:8010/builders/release-mozilla-beta-${p}_update_verify_${i}%2F10/force" >/dev/null
  done
done

Differences:

  • All platforms:
diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js
1,2c1,2
< //@line 2 "/builds/slave/rel-beta-lnx-bld/build/browser/app/profile/channel-prefs.js"
< pref("app.update.channel", "beta");
---
> //@line 2 "/builds/slave/rel-rel-lnx-bld/build/browser/app/profile/channel-prefs.js"
> pref("app.update.channel", "release");
    • The channel-prefs.js difference is because 5.0 final is on the release channel instead of beta channel. This is also expected and OK.
  • Linux & Windows only:
Only in source/firefox: distribution
Contents of source/firefox/distribution dir only in source or target
24576505    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 16 07:21 source/firefox/distribution/extensions
    • The distribution directory is because the Feedback extension is not packaged with 5.0 final, and we're unable to remove empty directories in the updater. This is expected and OK.

It's unclear to me why we don't have an empty distribution/extensions directory on Mac, too. I asked Rob Strong and he wasn't sure, either. bug 664778 will make this consistent in the future, and since it's harmless I didn't do any further digging.

XULRunner

XULRunner builds weren't enabled originally, so I landed this patch to flip them on. After reconfiging, I used "force build" to start the XULRunner source & build builders.

Source

No problems

Builds

No problems

Signing

On keymaster:

PRODUCT=xulrunner
VERSION=5.0
BUILD=1
TAG=FIREFOX_5_0_RELEASE
REPO="releases/mozilla-release"
EMAIL=bhearsum@mozilla.com
KEYDIR=d:/2010-keys

cd ~/hg-tools
hg pull
hg up -r ${TAG}

mkdir -p ~/signing-work/${PRODUCT}-${VERSION}
cd ~/signing-work/${PRODUCT}-${VERSION}
cp ~/hg-tools/release/signing/* .

make setup PRODUCT=${PRODUCT} VERSION=${VERSION} \
  BUILD=${BUILD} REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1
rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  --exclude=*.txt --exclude=*-symbols.zip \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/ \
 unsigned-build${BUILD}
rsync -av --exclude=unsigned unsigned-build${BUILD}/ \
 signed-build${BUILD}/
rsync -av unsigned-build${BUILD}/unsigned/ \
 signed-build${BUILD}/

make checksum-files create-sigs stage verify-sigs \
  PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} \
  REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1

rmdir signed-build${BUILD}/contrib{,-localized}

rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  signed-build${BUILD}/ \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/

Updates (4.0b*,4.0rc[12],4.0.1 -> 5.0)

This should've been done as part of the other beta snippets (the "5.0b* -> 5.0" section), but it was missed. We're using the same patcher and update verify configs as that step, so we'll be overwriting those snippets with identical, new ones.

Landed patcher config and update verify config bumps.

Retagged new update verify config revision with FIREFOX_5_0b7_{BUILD1,RELEASE}_RUNTIME.

Did work on mv-moz2-linux-ix-slave09.build.mozilla.org.

cd /builds/slave/rel-rel-updates/build/patcher-configs
cvs up
cd ..

# Before we do anything else, make a backup of the original 5.0b* -> 5.0 snippets, so we can verify that the new ones are unchanged
cd temp/firefox/5.0b7-5.0
rsync -av aus2/ aus2.bak/
rsync -av aus2.test/ aus2.test.bak/

# Nothing to download, so we don't run this, this time
#perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/mozBeta-branch-patcher2.cfg

# These aren't necessary this time, either
#cd temp/firefox
#ln -s 5.0 5.0b7-5.0
#cd ../..

perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/mozBeta-branch-patcher2.cfg

# remove partials for 5.0b7
cd temp/firefox/5.0b7-5.0
find aus2{,.test} -name partial.txt -exec rm {} \;

# check releasetest == beta
bash /builds/slave/rel-rel-updates//tools/release/compare-channel-snippets.sh aus2 beta aus2.test releasetest

# diff against backups
diff -Naur aus2/Firefox/5.0/ aus2.bak/Firefox/5.0/
diff -Naur aus2.test/Firefox/5.0/ aus2.test.bak/Firefox/5.0/

# push up to aus
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0-build1-5.0b7-build1-attempt2-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-5.0-build1-5.0b7-build1-attempt2-beta

bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-5.0-build1-5.0b7-build1-attempt2-test'
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-5.0-build1-5.0b7-build1-attempt2-test'

Update Verify

# On my local machine, to kick off update verify
for p in linux linux64 macosx64 win32; do
  for i in 1 2 3 4 5 6 7 8 9 10; do
    curl "http://production-master3.build.sjc1.mozilla.com:8010/builders/release-mozilla-beta-${p}_update_verify_${i}%2F10/force" >/dev/null
  done
done

All green, didn't reread the logs because all of the full checks that were done were the same as the ones in the 5.0b* -> 5.0 section.

Push files to internal mirrors

Just like the Betas, this is only going to internal mirrors (at first), so we add the following line to stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:

- firefox/releases/5.0

After waiting 10 minutes, forced the "release-mozilla-release-push_to_mirrors" with the following properties:

release_config: mozilla/release-firefox-mozilla-release.py
script_repo_revision: FIREFOX_5_0_RELEASE

Push to Beta channel

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/backupsnip Firefox-5.0-build1-5.0b7-build1-attempt2-beta
~/bin/pushsnip Firefox-5.0-build1-5.0b7-build1-attempt2-beta

Push Index files to mirrors

Added the following lines to the top of stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:

+ firefox
+ firefox/releases
+ firefox/releases/5.0
+ firefox/releases/5.0/*/
+ firefox/releases/5.0/*/*/
+ firefox/releases/5.0/*/*/*/
+ firefox/releases/5.0/**index.html
- firefox/releases/5.0/**

Waited 10 minutes to ensure the rsync server picks up the changes, then removed the previously added "- firefox/releases/5.0" line. After that, ran the following to lay out the index files:

# ffxbld@stage
cd /pub/mozilla.org/firefox/releases/5.0
wget --no-check-certificate -O index.html https://bugzilla.mozilla.org/attachment.cgi?id=540139
for dir in `find . -type d -mindepth 1`; do cp -pv index.html $dir/; done

Push to all mirrors

After getting a go from release-drivers, removed the following lines from the stage:/pub/mozilla.org/zz/rsyncd-mozilla-releases.exclude:

+ firefox
+ firefox/releases
+ firefox/releases/5.0
+ firefox/releases/5.0/*/
+ firefox/releases/5.0/*/*/
+ firefox/releases/5.0/*/*/*/
+ firefox/releases/5.0/**index.html
- firefox/releases/5.0/**

Also updated stage:/pub/mozilla.org/zz/rsyncd-mozilla-current.exclude:

  • Removed 4.0.1
  • Added 5.0

Fix EUBallot builds

These got put into the wrong directory, to fix, did the following:

# ffxbld@stage
cd /home/ftp/pub/firefox/nightly/5.0-candidates/build1
mv -v partner-repacks/euballot/win32 win32-EUballot
rsync -n -av win32-EUballot/ /pub/mozilla.org/firefox/releases/5.0/win32-EUballot/

Push update snippets

On release day, we'll be pushing the 'Firefox-5.0-build1' snippet directory, which contains updates for 4.0 and 4.0.1 release channel users. In advance, backupsnip was done:

# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/backupsnip Firefox-5.0-build1
~/bin/pushsnip Firefox-5.0-build1

Update browser choice web site

Filed bug 665902 to get the website updated.

Update symlinks

cd /pub/mozilla.org/firefox/releases
ln -s 5.0 latest-5.0
rm latest && ln -s latest-5.0 latest

Remove index files

cd /pub/mozilla.org/firefox/releases/5.0
find . -name index.html -exec echo rm -v {} \;

Push XULRunner to mirrors

rsync -n -av --exclude=*.txt --exclude=*unsigned*  --exclude=*-symbols.zip --exclude=*.checksums /pub/mozilla.org/xulrunner/nightly/5.0-candidates/build1/ /pub/mozilla.org/xulrunner/releases/5.0/

Update XULRunner wiki page

Updated https://developer.mozilla.org/en/Gecko_SDK with 5.0 links. No release notes page for Xr 5.0 exists, so there's no second page to update, unlike other branches.

Second round of updates

3.5.x -> 5.0

we decided not to ship these

These updates are unadvertised & manual. This means updateType=major in the snippets and throttled at 100%.

Landed an updated patcher config

To generate, ran the following on mv-moz2-linux-ix-slave13, which already had the 3.5.19 MARs on it:

cd /builds/slave/rel-192-mu/build/patcher-configs
cvs up
cd ..

Applied the following local patch to MozAUSLib.pm (version UPDATE_PACKAGING_R11_1_MU), in order to generate updates for both old and new style Build Targets:

RCS file: /cvsroot/mozilla/tools/patcher/MozAUSLib.pm,v
retrieving revision 1.13.2.4
diff -u -r1.13.2.4 MozAUSLib.pm
--- MozAUSLib.pm	15 Mar 2011 23:07:42 -0000	1.13.2.4
+++ MozAUSLib.pm	21 Jun 2011 19:13:38 -0000
@@ -105,7 +105,8 @@
                       );
 
 %AUS2_PLATFORMS = ( 'macppc' => ['Darwin_ppc-gcc3'],
-                    'mac' => ['Darwin_x86-gcc3-u-ppc-i386'],
+                    'mac' => ['Darwin_x86-gcc3-u-ppc-i386',
+                              'Darwin_Universal-gcc3'],
                     'mac64' => ['Darwin_x86_64-gcc3',
                                 'Darwin_x86-gcc3-u-i386-x86_64',
                                 'Darwin_x86_64-gcc3-u-i386-x86_64'],

Then continued:

perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/moz191-branch-major-update-patcher2.cfg

cd temp/firefox
ln -s 5.0 3.5.19-5.0
cd ../..

perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/moz191-branch-major-update-patcher2.cfg

cd temp/firefox/3.5.19-5.0

# check releasetest == release
bash /builds/slave/rel-192-mu/tools/release/compare-channel-snippets.sh aus2 release aus2.test releasetest

rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.5.19-build2-5.0-build1-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.beta/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.5.19-build2-5.0-build1-beta
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.5.19-build2-5.0-build1

# push the test snippets
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-3.5.19-build2-5.0-build1-test'
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-3.5.19-build2-5.0-build1-test'

Update Verify

# On my local machine, to kick off update verify
for p in linux macosx win32; do
  for i in 1 2 3 4 5 6 7 8 9 10; do
    curl "http://production-master1.build.sjc1.mozilla.com:8010/builders/release-mozilla-1.9.1-${p}_major_update_verify_${i}%2F10/force" >/dev/null
  done
done

All green, spot checked a few logs for each platform (1-3 for Linux, 4-6 for Mac, 7-10 for Windows). Lots of search engine changes (no surprise there), and some platform specific differences:

  • Linux:
Only in source/firefox/defaults: autoconfig
Only in source/firefox/defaults: profile
Only in source/firefox: greprefs
Only in source/firefox: modules
Only in source/firefox: plugins
Only in source/firefox: res
Contents of source/firefox/defaults/autoconfig dir only in source or target
Contents of source/firefox/defaults/profile dir only in source or target
24779941    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:17 source/firefox/defaults/profile/chrome
Contents of source/firefox/greprefs dir only in source or target
Contents of source/firefox/modules dir only in source or target
Contents of source/firefox/plugins dir only in source or target
Contents of source/firefox/res dir only in source or target
24551367    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:17 source/firefox/res/dtd
24551382    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:17 source/firefox/res/fonts
24772638    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:17 source/firefox/res/entityTables
24772645    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:17 source/firefox/res/html
  • Mac:
Only in source/Firefox.app/Contents/MacOS: chrome
Only in source/Firefox.app/Contents/MacOS/defaults: autoconfig
Only in source/Firefox.app/Contents/MacOS/defaults: profile
Only in source/Firefox.app/Contents/MacOS: greprefs
Only in source/Firefox.app/Contents/MacOS: modules
Only in source/Firefox.app/Contents/MacOS: plugins
Only in source/Firefox.app/Contents/MacOS/res: dtd
Only in source/Firefox.app/Contents/MacOS/res: entityTables
Only in source/Firefox.app/Contents/MacOS/res: fonts
Only in source/Firefox.app/Contents/MacOS/res: html
Only in source/Firefox.app/Contents: Plug-Ins
Contents of source/Firefox.app/Contents/MacOS/chrome dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/defaults/autoconfig dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/defaults/profile dir only in source or target
651409885        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/defaults/profile/chrome
Contents of source/Firefox.app/Contents/MacOS/greprefs dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/modules dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/plugins dir only in source or target
651409910        0 drwxr-xr-x    3 cltbld   staff         102 Apr 20 16:26 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin
651409911        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents
651409912        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/MacOS
651409913        0 drwxr-xr-x    3 cltbld   staff         102 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/Resources
651409914        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/Resources/English.lproj
651409916        0 drwxr-xr-x    3 cltbld   staff         102 Apr 20 16:26 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle
651409917        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents
651409919        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/MacOS
651409920        0 drwxr-xr-x    4 cltbld   staff         136 Apr 20 16:26 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources
651409921        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/English.lproj
651409922        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/Java
651409923        0 drwxr-xr-x    3 cltbld   staff         102 Apr 20 16:26 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin
651409924        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents
651409925        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/MacOS
651409926        0 drwxr-xr-x    3 cltbld   staff         102 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/Resources
651409927        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/Resources/English.lproj
Contents of source/Firefox.app/Contents/MacOS/res/dtd dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/entityTables dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/fonts dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/html dir only in source or target
Contents of source/Firefox.app/Contents/Plug-Ins dir only in source or target
651410141        0 drwxr-xr-x    3 cltbld   staff         102 Apr 20 16:26 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin
651410145        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:41 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents
651410146        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents/MacOS
651410148        0 drwxr-xr-x    3 cltbld   staff         102 Apr 20 16:26 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents/Resources
651410152        0 drwxr-xr-x    3 cltbld   staff         102 Jun 22 13:41 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj
651410155        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:41 source/Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/PrintPDE.nib
  • Win32:
Only in source/bin/defaults: autoconfig
Only in source/bin/defaults: profile
Only in source/bin: greprefs
Only in source/bin: modules
Only in source/bin: plugins
Only in source/bin: res
Contents of source/bin/chrome dir only in source or target
Contents of source/bin/defaults/autoconfig dir only in source or target
Contents of source/bin/defaults/profile dir only in source or target
3106762    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:06 source/bin/defaults/profile/chrome
Contents of source/bin/greprefs dir only in source or target
Contents of source/bin/modules dir only in source or target
Contents of source/bin/plugins dir only in source or target
Contents of source/bin/res dir only in source or target
3630894    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:06 source/bin/res/dtd
3630898    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:06 source/bin/res/entityTables
3630905    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:06 source/bin/res/fonts
3106670    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:06 source/bin/res/html

Most of these differences are due to a bunch of files moving to omni.jar. Some of them are because we dropped some bundled plugins. We have the ability to remove directories from the updater now, so I filed bug 666576 to get this spew cleaned up for next time.

3.6.x -> 5.0

These updates are unadvertised & manual. This means updateType=major in the snippets and throttled at 100%.

Landed an updated patcher config

To generate, ran the following on mv-moz2-linux-ix-slave13, which already had the 3.6.18 and 5.0 MARs on it:

cd /builds/slave/rel-192-mu/build/patcher-configs
cvs up
cd ..

Reversed the previously applied patch to MozAUSLib.pm, because we're not shipping these snippets to older Mac versions.

RCS file: /cvsroot/mozilla/tools/patcher/MozAUSLib.pm,v
retrieving revision 1.13.2.4
diff -u -r1.13.2.4 MozAUSLib.pm
--- MozAUSLib.pm	15 Mar 2011 23:07:42 -0000	1.13.2.4
+++ MozAUSLib.pm	21 Jun 2011 19:13:38 -0000
@@ -105,7 +105,8 @@
                       );
 
 %AUS2_PLATFORMS = ( 'macppc' => ['Darwin_ppc-gcc3'],
-                    'mac' => ['Darwin_x86-gcc3-u-ppc-i386'],
+                    'mac' => ['Darwin_x86-gcc3-u-ppc-i386',
+                              'Darwin_Universal-gcc3'],
                     'mac64' => ['Darwin_x86_64-gcc3',
                                 'Darwin_x86-gcc3-u-i386-x86_64',
                                 'Darwin_x86_64-gcc3-u-i386-x86_64'],

Then continued:

perl patcher2.pl --download --app=firefox --brand=Firefox --config=patcher-configs/moz192-branch-major-update-patcher2.cfg

cd temp/firefox
ln -s 5.0 3.6.18-5.0
cd ../..

perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg --app=firefox --brand=Firefox --config=patcher-configs/moz192-branch-major-update-patcher2.cfg

cd temp/firefox/3.6.18-5.0

# check releasetest == release
bash /builds/slave/rel-192-mu/tools/release/compare-channel-snippets.sh aus2 release aus2.test releasetest

rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.6.18-build2-5.0-build1-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2.beta/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.6.18-build2-5.0-build1-beta
rsync -av -e 'ssh -oIdentityFile=~/.ssh/cltbld_dsa' aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-3.6.18-build2-5.0-build1

# push the test snippets
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1-test'
bash -c 'ssh -l cltbld -i ~/.ssh/cltbld_dsa aus2-staging.mozilla.org ~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-test'


Due to bug 666958 we had to fix the snippets:

# on aus2-staging
cd /opt/aus2/snippets/staging
for d in Firefox-3.6.18-build2-5.0-build1-test \
    Firefox-3.6.18-build2-5.0-build1-beta \
    Firefox-3.6.18-build2-5.0-build1; do
    rsync -a $d/ ${d}-bug666958/
    find ${d}-bug666958 -type f -name '*.txt' -exec \
      sed  -i 's,firefox/5.0/releasenotes/,firefox/3.6/details/,' {} \;
done

Push the fixed snippets to the betates/releasetest channels:

~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1-test-bug666958
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-test-bug666958

Realized that the snippets directories contain snippets for all 3.6.x versions while we want MU to 5.0 only for 3.6.18. Additionally Nick pointed me that the URL should point to 5.0/details:

cd /opt/aus2/snippets/staging
for d in Firefox-3.6.18-build2-5.0-build1-test \
    Firefox-3.6.18-build2-5.0-build1-beta \
    Firefox-3.6.18-build2-5.0-build1; do
    mv ${d}-bug666958 ${d}-bug666958.bak
    mkdir -p ${d}-bug666958/Firefox/3.6.18/
    rsync -a $d/Firefox/3.6.18/ ${d}-bug666958/Firefox/3.6.18/
    find ${d}-bug666958 -type f -name '*.txt' -exec \
      sed  -i 's,firefox/5.0/releasenotes/,firefox/5.0/details/,' {} \;
done

Restored 3.6.x->3.6.18 snippets on the test channels:

~/bin/backupsnip Firefox-3.6.18-build2-test
~/bin/pushsnip Firefox-3.6.18-build2-test
~/bin/pushsnip Firefox-3.6.18-build2-test-ml-te

Pushed the snippets to the test channels

~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1-test-bug666958
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-test-bug666958

Verified that content on the releasetest channel has expected changes (besides examining the diff of old and new snippets). Pushed beta and release snippets:

~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1-beta-bug666958
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-beta-bug666958
~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1-bug666958
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-bug666958


Update Verify

for p in linux macosx win32; do

 for i in 1 2 3 4 5 6 7 8 9 10; do
   curl "http://production-master3.build.sjc1.mozilla.com:8010/builders/release-mozilla-1.9.2-${p}_major_update_verify_${i}%2F10/force" >/dev/null
 done

done

All green, spot checked a few logs for each platform (1-3 for Linux, 4-6 for Mac, 7-10 for Windows). Lots of search engine changes (no surprise there), and some platform specific differences:

  • Linux:
Only in source/firefox/defaults: autoconfig
Only in source/firefox/defaults: profile
Only in source/firefox: greprefs
Only in source/firefox: modules
Only in source/firefox: plugins
Only in source/firefox: res
Contents of source/firefox/defaults/autoconfig dir only in source or target
Contents of source/firefox/defaults/profile dir only in source or target
26050729    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:07 source/firefox/defaults/profile/chrome
Contents of source/firefox/greprefs dir only in source or target
Contents of source/firefox/modules dir only in source or target
Contents of source/firefox/plugins dir only in source or target
Contents of source/firefox/res dir only in source or target
26050666    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:07 source/firefox/res/dtd
26050682    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:07 source/firefox/res/fonts
26050708    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:07 source/firefox/res/entityTables
26050716    4 drwxr-xr-x   2 cltbld   cltbld       4096 Jun 22 12:07 source/firefox/res/html
  • Mac:
Only in source/Firefox.app/Contents/MacOS: chrome
Only in source/Firefox.app/Contents/MacOS/defaults: autoconfig
Only in source/Firefox.app/Contents/MacOS/defaults: profile
Only in source/Firefox.app/Contents/MacOS: greprefs
Only in source/Firefox.app/Contents/MacOS: modules
Only in source/Firefox.app/Contents/MacOS: plugins
Only in source/Firefox.app/Contents/MacOS/res: dtd
Only in source/Firefox.app/Contents/MacOS/res: entityTables
Only in source/Firefox.app/Contents/MacOS/res: fonts
Only in source/Firefox.app/Contents/MacOS/res: html
Contents of source/Firefox.app/Contents/MacOS/chrome dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/defaults/autoconfig dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/defaults/profile dir only in source or target
654318378        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/defaults/profile/chrome
Contents of source/Firefox.app/Contents/MacOS/greprefs dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/modules dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/plugins dir only in source or target
654318384        0 drwxr-xr-x    3 cltbld   staff         102 Jun 15 00:40 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin
654318385        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents
654318386        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/MacOS
654318387        0 drwxr-xr-x    3 cltbld   staff         102 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/Resources
654318388        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/DefaultPlugin.plugin/Contents/Resources/English.lproj
654318389        0 drwxr-xr-x    3 cltbld   staff         102 Jun 15 00:40 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle
654318390        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents
654318391        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/MacOS
654318392        0 drwxr-xr-x    4 cltbld   staff         136 Jun 15 00:40 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources
654318393        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/English.lproj
654318394        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/Java
654318395        0 drwxr-xr-x    3 cltbld   staff         102 Jun 15 00:40 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin
654318396        0 drwxr-xr-x    4 cltbld   staff         136 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents
654318397        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/MacOS
654318398        0 drwxr-xr-x    3 cltbld   staff         102 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/Resources
654318399        0 drwxr-xr-x    2 cltbld   staff          68 Jun 22 13:03 source/Firefox.app/Contents/MacOS/plugins/MRJPlugin.plugin/Contents/Resources/English.lproj
Contents of source/Firefox.app/Contents/MacOS/res/dtd dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/entityTables dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/fonts dir only in source or target
Contents of source/Firefox.app/Contents/MacOS/res/html dir only in source or target
  • Win32:
Only in source/bin: chrome
Only in source/bin/defaults: autoconfig
Only in source/bin/defaults: profile
Only in source/bin: greprefs
Only in source/bin: modules
Only in source/bin: plugins
Only in source/bin: res
Contents of source/bin/chrome dir only in source or target
Contents of source/bin/defaults/autoconfig dir only in source or target
Contents of source/bin/defaults/profile dir only in source or target
3669885    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:01 source/bin/defaults/profile/chrome
Contents of source/bin/greprefs dir only in source or target
Contents of source/bin/modules dir only in source or target
Contents of source/bin/plugins dir only in source or target
Contents of source/bin/res dir only in source or target
3669820    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:01 source/bin/res/dtd
3669824    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:01 source/bin/res/entityTables
3669831    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:01 source/bin/res/fonts
3669841    0 drwxr-xr-x   2 cltbld   Administrators        0 Jun  13:01 source/bin/res/html

Most of these differences are due to a bunch of files moving to omni.jar. Some of them are because we dropped some bundled plugins. We have the ability to remove directories from the updater now, so I filed bug 666576 to get this spew cleaned up for next time.

Push them

Backupsnips first:

~/bin/backupsnip Firefox-3.6.18-build2-5.0-build1
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1
~/bin/pushsnip Firefox-3.6.18-build2-5.0-build1-beta

Revert 3.6.2 to 3.6.17

After we pushed, we found out that we actually wanted these versions to go to 3.6.18 automatically, instead of having a manual update to 5.0 on the wire. (The was a miscommunication on Christian's part). To revert these versions, did the following:

# cltbld@dm-ausstage01
cd /opt/aus2/snippets/backup
mkdir tmp
cd tmp
tar --exclude '*3.6.18*' --exclude '*3.5*' -zvxf ../20110623-1-pre-Firefox-3.6.18-build2-5.0-build1.tar.gz
rsync -av Firefox/ /opt/aus2/incoming/3/Firefox/
cd /opt/aus2/incoming/3/Firefox
# To update the timestamps and make sure NFS isn't caching the snippets that point at 5.0.
find 3.6* -type d -exec touch {} \;
# Sync to PHX, too
cd /opt/aus2/incoming/3/Firefox
for i in 3.6.[2346789] 3.6.1[01234567]; do rsync -av -e 'ssh -i ~/.ssh/auspush' $i/ ffxbld@dp-ausstage01:/opt/aus2/incoming/3/Firefox/$i/; done

And then landed this AUS config patch to get them unthrottled.

Block partial updates to yahoo partner builds

Kev filed bug requesting that we block partial updates to Yahoo builds, because they will fail. To do this, we needed to generate null snippets for a bunch of partner channels. The script used was:

cd /opt/aus2/snippets/staging
base="Firefox-5.0-build1-block-yahoo/Firefox/4.0.1"
wget --no-check-certificate -O- http://hg.mozilla.org/users/bhearsum_mozilla.com/mozilla-beta/raw-file/FIREFOX_5_0_RELEASE/browser/locales/shipped-locales | cut -f1 -d" " > /tmp/locales.txt
for chan in release-cck-yahoode release-cck-yahoode release-cck-yahoode release-cck-yahoodek release-cck-yahoode release-cck-yahoode release-cck-yahooau release-cck-yahooauk release-cck-yahooca release-cck-yahoocak release-cck-yahoogb release-cck-yahoogb release-cck-yahoogb release-cck-yahoogbk release-cck-yahooin release-cck-yahooink release-cck-yahoomy release-cck-yahoomyk release-cck-yahoonz release-cck-yahoonzk release-cck-yahooph release-cck-yahoophk release-cck-yahoosg release-cck-yahoosgk release-cck-yahoo release-cck-yahoo release-cck-yahook release-cck-yahooxe release-cck-yahooxe release-cck-yahooar release-cck-yahooark release-cck-yahooes release-cck-yahooes release-cck-yahooesk release-cck-yahoomx release-cck-yahoomxk release-cck-yahooe1 release-cck-yahooe1k release-cck-yahoofr release-cck-yahoocf release-cck-yahoocfk release-cck-yahoofr release-cck-yahoofr release-cck-yahoofrk release-cck-yahooid release-cck-yahooidk release-cck-yahooit release-cck-yahooit release-cck-yahooitk release-cck-yahookr release-cck-yahookrk release-cck-yahoobr release-cck-yahoobrk release-cck-yahooth release-cck-yahoothk release-cck-yahoovn release-cck-yahoovnk release-cck-yahoohk release-cck-yahoohkk release-cck-yahootw release-cck-yahootwk; do
  for locale in `cat /tmp/locales.txt`; do
    for bt in Darwin_x86_64-gcc3-u-i386-x86_64 Darwin_x86-gcc3-u-i386-x86_64 Linux_x86_64-gcc3 Linux_x86-gcc3 WINNT_x86-msvc; do
      mkdir -p $base/$bt/20110413222027/$locale/$chan
      touch $base/$bt/20110413222027/$locale/$chan/partial.txt
    done
  done
done

And to push:

~/bin/pushsnip Firefox-5.0-build1-block-yahoo

Push 64-bit Mac XULRunner SDK

This failed to upload, but was missed bug 666953. To fix, the following was done:

On moz2-darwin10-slave17:

export POST_UPLOAD_CMD="post_upload.py -p xulrunner -v 5.0 -n 1 --release-to-candidates-dir"
export UPLOAD_HOST=stage.mozilla.org
export UPLOAD_SSH_KEY=~/.ssh/xrbld_dsa
export UPLOAD_TO_TEMP=1
export UPLOAD_USER=xrbld
export MOZ_CRASHREPORTER_NO_REPORT=1
export MOZ_OBJDIR=obj-firefox
export MOZ_PKG_PRETTYNAMES=1
export MOZ_PKG_VERSION=5.0
export MOZ_SYMBOLS_EXTRA_BUILDID=macosx64
export SYMBOL_SERVER_HOST=dm-symbolpush01.mozilla.org
export SYMBOL_SERVER_PATH=/mnt/netapp/breakpad/symbols_xr/
export SYMBOL_SERVER_SSH_KEY=/Users/cltbld/.ssh/xrbld_dsa
export SYMBOL_SERVER_USER=xrbld
mkdir obj-firefox/x86_64/dist/runtimes
make -j4 -C obj-firefox/x86_64 upload

On keymaster:

PRODUCT=xulrunner
VERSION=5.0
BUILD=1
TAG=FIREFOX_5_0_RELEASE
REPO="releases/mozilla-release"
EMAIL=bhearsum@mozilla.com
KEYDIR=d:/2010-keys

rsync -av signed-build1/ signed-build1.bak/
rsync -av unsigned-build1/ unsigned-build1.bak/

rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  --exclude=*.asc --exclude=*.txt --include=sdk \ 
  --include=runtimes --include=*mac* --exclude=* \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/ \
 unsigned-build${BUILD}
rsync -av --exclude=unsigned unsigned-build${BUILD}/ \
 signed-build${BUILD}/

rm signed-build${BUILD}/*SUMS*
make checksum-files create-sigs stage verify-sigs \
  PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} \
  REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1

rmdir signed-build${BUILD}/contrib{,-localized}

rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  signed-build${BUILD}/ \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/

On stage, as xrbld:

rsync -av --exclude=*.txt --exclude=*unsigned*  --exclude=*-symbols.zip --exclude=*.checksums /pub/mozilla.org/xulrunner/nightly/5.0-candidates/build1/ /pub/mozilla.org/xulrunner/releases/5.0/