Releases/Firefox 2.0.0.20 MU 3/BuildNotes
Contents
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