Releases/Firefox 2.0.0.20 MU 3/BuildNotes

From MozillaWiki
Jump to: navigation, search

Release Engineers

Nick Thomas (nthomas)

Bugs

bug 526409 - tracking bug

2.0.0.20 to 3.0.15

Generate Major Update Snippets

These are for the "vanilla" builds we're going to update.

Update these config files

  • CVS: mozilla/tools/patcher-configs/moz18-branch-major-update-patcher2.cfg
  • HG: build/tools/release/updates/moz18-firefox-{linux,mac,win32}-major.cfg

with review as usual.

Then generate the snippets

# ssh cltbld@production-prometheus-vm.build.mozilla.org
mkdir -p /builds/2.0.0.20-3.0.15-major-update/snippets
cd /builds/2.0.0.20-3.0.15-major-update/snippets
cvs -d:ext:cltbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R7 -d patcher mozilla/tools/patcher
cd patcher
cvs -d:ext:cltbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R7 -d MozBuild mozilla/tools/release/MozBuild
cd ../
cvs -d:ext:cltbld@cvs.mozilla.org:/cvsroot co -d patcher-configs mozilla/tools/patcher-configs

cd patcher
export CVSROOT=:ext:cltbld@cvs.mozilla.org:/cvsroot

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

# download mars
./patcher2.pl --download --app=firefox --config=../patcher-configs/moz18-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.0.15 2.0.0.20-3.0.15
cd ../..

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

NB: UPDATE_PACKAGING_R7 is still used despite us moving on to UPDATE_PACKAGING_R10 in the meantime. We don't want the hash function change on an old release.

Quick verify

Didn't bother separating out beta snippets for this, we'll push beta and release together anyway. Check the snippets are identical for all four channels

cd temp/firefox/2.0.0.20-3.0.15

# betatest == releasetest
find aus2.test -type d -iregex '.*betatest.*' | perl -nle '$a = $_; $a =~ s/betatest/releasetest/; system("diff -r -u $_ $a");'
# test the opposite direction to catch anything that only exists for releasetest
find aus2.test -type d -iregex '.*releasetest.*' | perl -nle '$a = $_; $a =~ s/releasetest/betatest/; system("diff -r -u $_ $a");'

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

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

No differences detected.

Push to AUS

cd /builds/2.0.0.20-3.0.15-major-update/snippets/patcher/temp/firefox/2.0.0.20-3.0.15
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20091111-Firefox-2.0.0.20-3.0.15-MU
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20091111-Firefox-2.0.0.20-3.0.15-MU-test

Enable test snippets

Safe to do this because we already have nulls in place, and these are only test snippets.

~/bin/backupsnip 20091111-Firefox-2.0.0.20-3.0.15-MU-test
~/bin/pushsnip   20091111-Firefox-2.0.0.20-3.0.15-MU-test

Update verify

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

mkdir -p /builds/verify/firefox-20020-3015-major/
cd /builds/verify/firefox-20020-3015-major/
hg clone http://hg.mozilla.org/build/tools/

# get patch to trawl "Only in" directories
cd tools/release/common
# on mac & linux
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=367544 | patch -p3
# on win32
wget --no-check-certificate -L -O patch https://bugzilla.mozilla.org/attachment.cgi?id=367544
patch -p3 < patch

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

Results

  • Linux and Mac are unchanged since 2.0.0.20 -> 3.0.9
  • Win32 has some extra output from bug 478266's additions to removed-files.in. They're there for a pave-over install of 3.0.x over 3.5 but also affect complete updates. It's a no-op for a 2.0.0.20 user.
PREPARE REMOVE update.locale
file cannot be removed because it does not exist; skipping
PREPARE REMOVE uninstall/shortcuts_log.ini
file cannot be removed because it does not exist; skipping
PREPARE REMOVE modules/WindowDraggingUtils.jsm
file cannot be removed because it does not exist; skipping
PREPARE REMOVE modules/SpatialNavigation.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE modules/PlacesDBUtils.jsm
file cannot be removed because it does not exist; skipping
PREPARE REMOVE modules/DownloadLastDir.jsm
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/storage-mozStorage.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/nsPrivateBrowsingService.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/nsPlacesDBFlush.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/NetworkGeolocationProvider.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/aboutSessionRestore.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/aboutPrivateBrowsing.js
file cannot be removed because it does not exist; skipping
PREPARE REMOVE components/aboutCertError.js
file cannot be removed because it does not exist; skipping

plus output for EXECUTE and FINISH. That's a PASS.

Generate Null Partner Snippets

We block those partners which currently don't have a MU configured.

Create snippets

Nothing to do here - we started off with a full set of nulls from earlier major updates, then either overwrote with valid major update for partners, or revoked a partner major update by putting back in nulls.

Push live

Nothing to do.

Verify nulls

We should still check though, using the list of URLs we generated previously.

# cltbld@prometheus-vm
cd /builds/2.0.0.20-major-update/snippets/patcher/one-offs
./test_null_updates.sh urls-win32-release.txt 2>&1 | tee test-nulls-win32-release-20020-3015.txt
grep -v '^PASS' test-nulls-win32-release-20020-3015.txt
** FAIL  https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/en-US/release-cck-yahoo/update.xml
** FAIL  https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/ko/release-cck-yahoo/update.xml
** FAIL  https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/zh-CN/release-cck-yahoo/update.xml
** FAIL  https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/zh-TW/release-cck-yahoo/update.xml

Which is expected, those MU are live and therefore non-null info returned.

Repeat for each other two platforms, get no failures.

Enable release snippets

... for the vanilla builds.

time ~/bin/backupsnip 20091111-Firefox-2.0.0.20-3.0.15-MU
real    70m57.492s
user    0m59.279s
sys     2m4.045s

After go from QA/driver

~/bin/pushsnip 20091111-Firefox-2.0.0.20-3.0.15-MU