Releases/Firefox 2.0.0.20 MU/BuildNotes
Contents
Release Engineers
Nick Thomas
Bugs
bug 470521 - tracking bug
bug 472079 - nulls for partners
Generate Major Update Snippets
These are for the "vanilla" builds we're going to update.
# ssh cltbld@prometheus-vm.build.mozilla.org mkdir -p /builds/2.0.0.20-major-update/snippets cd /builds/2.0.0.20-major-update/snippets cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R5 -d patcher mozilla/tools/patcher cd patcher cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -r UPDATE_PACKAGING_R5 -d MozBuild mozilla/tools/release/MozBuild cd ../ cvs -d:ext:ffxbld@cvs.mozilla.org:/cvsroot co -d patcher-configs mozilla/tools/patcher-configs cd patcher export CVSROOT=:ext:ffxbld@cvs.mozilla.org:/cvsroot # build tools ./patcher2.pl --build-tools --app=firefox --tools-rev=UPDATE_PACKAGING_R5 --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.5 2.0.0.20-3.0.5 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
Separate out beta snippets
cd temp/firefox/2.0.0.20-3.0.5 rsync -a aus2/ aus2.beta/ find aus2.beta/ -type d -name "release" -exec rm -rfv {} \; find aus2/ -type d -name "beta" -exec rm -rfv {} \;
Quick verify
Check the snippets are identical for all four channels
# 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.beta/; system("diff -r -u $_ $a");' find aus2.beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/betatest/; $a =~ s/aus2\.beta/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");'
Got no output for each test.
Push to AUS
cd /builds/2.0.0.20-major-update/snippets/patcher/temp/firefox/2.0.0.20-3.0.5 rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.beta/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU-beta rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU-test
Enable test snippets
Safe to do this without doing null snippets because we're only talking about betatest and releasetest, where no end-users of partner builds will be falling back to (metrics website confirms).
~/bin/backupsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-test ~/bin/pushsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-test
Update verify
Ran update verify on fx-{linux,mac,win32}-1.9-slave2 as follows:
mkdir -p /builds/verify/firefox-20020-305-real-major/ cd /builds/verify/firefox-20020-305-real-major/ cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d updates mozilla/testing/release/updates/ cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d common mozilla/testing/release/common/ # get patch to trawl "Only in" directories cd common # on mac & linux curl -s https://bugzilla.mozilla.org/attachment.cgi?id=304252 | patch -p0 # on win32 wget --no-check-certificate -O patch https://bugzilla.mozilla.org/attachment.cgi?id=304252 patch -p0 < patch # everyone ... platform=linux # or mac or win32 cd ../updates ./verify.sh -c moz18-firefox-$platform-major.cfg 2>&1 | tee $platform.log
Logs look fine. Each platform has some standard differences, here's Linux
diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js 1c1 < //@line 2 "/builds/tinderbox/Fx-Mozilla1.8-release/Linux_2.4.21-53.EL_Depend/mozilla/browser/app/profile/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" Only in source/firefox/extensions: inspector@mozilla.org Only in source/firefox/extensions: talkback@mozilla.org Contents of source/firefox/extensions/inspector@mozilla.org dir only in source or target 444790 4 drwxr-xr-x 2 cltbld cltbld 4096 Dec 20 00:27 source/firefox/extensions/inspector@mozilla.org/components 444880 4 drwxr-xr-x 3 cltbld cltbld 4096 Dec 17 10:13 source/firefox/extensions/inspector@mozilla.org/defaults 444881 4 drwxr-xr-x 2 cltbld cltbld 4096 Dec 20 00:27 source/firefox/extensions/inspector@mozilla.org/defaults/preferences 444877 4 drwxr-xr-x 2 cltbld cltbld 4096 Dec 20 00:27 source/firefox/extensions/inspector@mozilla.org/chrome Contents of source/firefox/extensions/talkback@mozilla.org dir only in source or target 444886 4 drwxr-xr-x 3 cltbld cltbld 4096 Dec 20 00:27 source/firefox/extensions/talkback@mozilla.org/components 444889 4 drwxr-xr-x 2 cltbld cltbld 4096 Dec 20 00:27 source/firefox/extensions/talkback@mozilla.org/components/talkback WARN: non-binary files found in diff WARN: check_updates returned warning for Linux_x86-gcc3 downloads/firefox-2.0.0.20.tar.gz vs. downloads/firefox-3.0.5.tar.bz2: 2
- The channel-prefs.js is a harmless comment change due the path on the build machine changing and us exlicitly not including that file in the complete mar
- extensions/{inspector@mozilla.org,talkback@mozilla.org} are trees of empty dirs. We've removed all the files but the updater can't remove dirs (for safety), no problem because the Addons manager does that for us
- Some locales also give messages like (eg be), due to them removing those plugins from the 3.0 build but we can't remove them for only some locales. Better user experience if the stuff you use is not vanished anyway
Only in source/firefox/searchplugins: amazondotcom.xml Only in source/firefox/searchplugins: answers.xml Only in source/firefox/searchplugins: creativecommons.xml Only in source/firefox/searchplugins: eBay.xml
Mac
diff -r source/Firefox.app/Contents/MacOS/defaults/pref/channel-prefs.js target/Firefox.app/Contents/MacOS/defaults/pref/channel-prefs.js 1c1 < //@line 2 "/builds/tinderbox/Fx-Mozilla1.8-release/Darwin_8.7.0_Depend/mozilla/browser/app/profile/channel-prefs.js" --- > //@line 2 "/builds/tinderbox/Fx-Mozilla1.9-Release/Darwin_8.8.4_Depend/mozilla/browser/app/profile/channel-prefs.js" Only in source/Firefox.app/Contents/MacOS/extensions: inspector@mozilla.org Only in source/Firefox.app/Contents/MacOS/extensions: talkback@mozilla.org Only in source/Firefox.app/Contents/MacOS: init.d Only in source/Firefox.app/Contents/MacOS: updates Contents of source/Firefox.app/Contents/MacOS/extensions/inspector@mozilla.org dir only in source or target 1169542621 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/inspector@mozilla.org/chrome 1169542622 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/inspector@mozilla.org/components 1169542624 0 drwxr-xr-x 3 cltbld cltbld 102 Dec 17 11:32 source/Firefox.app/Contents/MacOS/extensions/inspector@mozilla.org/defaults 1169542625 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/inspector@mozilla.org/defaults/preferences Contents of source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org dir only in source or target 1169542627 0 drwxr-xr-x 3 cltbld cltbld 102 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components 1169542628 0 drwxr-xr-x 3 cltbld cltbld 102 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback 1169542629 0 drwxr-xr-x 3 cltbld cltbld 102 Dec 17 11:32 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app 1169542630 0 drwxr-xr-x 4 cltbld cltbld 136 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents 1169542631 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/MacOS 1169542632 0 drwxr-xr-x 3 cltbld cltbld 102 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources 1169542633 0 drwxr-xr-x 7 cltbld cltbld 238 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj 1169542634 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ArchivingSettings.nib 1169542635 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/IntroWizard.nib 1169542636 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/MainMenu.nib 1169542637 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ProxySettings.nib 1169542638 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 20 00:28 source/Firefox.app/Contents/MacOS/extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/SendingSettings.nib Contents of source/Firefox.app/Contents/MacOS/init.d dir only in source or target Contents of source/Firefox.app/Contents/MacOS/updates dir only in source or target 1169542674 0 drwxr-xr-x 2 cltbld cltbld 68 Dec 17 11:32 source/Firefox.app/Contents/MacOS/updates/0 WARN: non-binary files found in diff WARN: check_updates returned warning for Darwin_Universal-gcc3 downloads/Firefox 2.0.0.20.dmg vs. downloads/Firefox 3.0.5.dmg: 2
- the same again, there are more dirs for talkback (.nib)
- empty init.d dir can't be removed but is harmless
- updates dir is from testing method I think
Win32
Only in source/bin: .autoreg diff -r source/bin/defaults/pref/channel-prefs.js target/bin/defaults/pref/channel-prefs.js 1c1 < //@line 2 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-Release/WINNT_5.2_Depend/mozilla/browser/app/profile/channel-prefs.js" --- > //@line 2 "e:\fx19rel\WINNT_5.2_Depend\mozilla\browser\app\profile\channel-prefs.js" Only in source/bin/extensions: inspector@mozilla.org Only in source/bin/extensions: talkback@mozilla.org Binary files source/bin/freebl3.chk and target/bin/freebl3.chk differ Only in source/bin: removed-files Binary files source/bin/softokn3.chk and target/bin/softokn3.chk differ Contents of source/bin/extensions/inspector@mozilla.org dir only in source or target 29197205 0 drwxr-xr-x 3 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/chrome 26706838 0 drwxr-xr-x 3 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/chrome/icons 28803991 0 drwxr-xr-x 2 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/chrome/icons/default 30114715 0 drwxr-xr-x 2 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/components 22315933 0 drwxr-xr-x 3 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/defaults 24282014 0 drwxr-xr-x 2 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/inspector@mozilla.org/defaults/preferences Contents of source/bin/extensions/talkback@mozilla.org dir only in source or target 28738467 0 drwxr-xr-x 2 cltbld Administ 0 Dec 20 00:26 source/bin/extensions/talkback@mozilla.org/components FAIL: binary files found in diff FAIL: check_updates returned failure for WINNT_x86-msvc downloads/Firefox Setup 2.0.0.20.exe vs. downloads/Firefox Setup 3.0.5.exe: 1
- .autoreg is normal difference when updating (required?)
- freebl3.chk and softoke3.chk diff is ok, still valid check files bug 404340
- removed-files is for the regeneration of uninstall logs (IIRC)
Announced to r-d
Enable beta snippets
Safe to do this without doing null snippets because there are no end-users of partner builds on beta channel (kev and metrics website confirmed last MU).
cd /opt/aus2/snippets/staging time ~/bin/backupsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-beta real 33m56.918s user 0m26.862s sys 0m31.210s
time ~/bin/pushsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-beta real 0m24.086s user 0m0.006s sys 0m0.383s
Generate Null Partner Snippets
Create snippets
Starting from attachment 355355, we create empty snippets to block partner builds from updating.
# ssh cltbld@prometheus-vm.build.mozilla.org cd /builds/2.0.0.20-major-update/snippets/patcher/ # get a copy of https://bugzilla.mozilla.org/attachment.cgi?id=355355 ... # and save as partner-update-channels # checkout out null_partners.sh and update versions and buildIDs cd temp/firefox/2.0.0.20-3.0.5 bash ../../../one-offs/null_partners.sh ../../../partner-update-channels
NB: going to do the release-* and releasetest-* snippets this time, since there are no users on beta or betatest. releasetest-* will be used to check the nulls work properly.
We have to munge the Yahoo snippets because more than distribution is on the same channel but not all have a MU live at present
rm -vr aus2.null/Firefox/2.0.0.20/WINNT_x86-msvc/2008121709/{ko,zh-CN,zh-TW,en-US}/release*-cck-yahoo
Now check there are no vanilla snippets in there [no extended regexp in find :-(]
find aus2.null -regex '.*/release/.*' find aus2.null -regex '.*/releasetest/.*' find aus2.null -regex '.*/beta/.*' find aus2.null -regex '.*/betatest/.*'
and that releasetest == release
find aus2.null -type d -iregex '.*release-.*' | perl -nle '$a = $_; $a =~ s/release/releasetest/; system("diff -r -u $_ $a");' find aus2.null -type d -iregex '.*releasetest-.*' | perl -nle '$a = $_; $a =~ s/releasetest/release/; system("diff -r -u $_ $a");'
Push to AUS server
rsync -e 'ssh -i /home/cltbld/.ssh/aus' -av aus2.null/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20090104-Firefox-2.0.0.20-3.0.5-MU-partner-null
Push live
# cltbld@aus2-staging ~/bin/backupsnip 20090104-Firefox-2.0.0.20-3.0.5-MU-partner-null ~/bin/pushsnip 20090104-Firefox-2.0.0.20-3.0.5-MU-partner-null
Adds 23904 files to the 78718 already present, so there will be a ~ 30% time increase for future backups. We can remove the releasetest blocks later to save half of this.
Verify nulls
Create a list of URLs to test
cd /builds/2.0.0.20-major-update/snippets/patcher/one-offs
Generate platform-specific locale lists
ls ../temp/firefox/2.0.0.20-3.0.5/aus2/Firefox/2.0.0.20/WINNT_x86-msvc/2008121709/ > locales-win32.txt ls ../temp/firefox/2.0.0.20-3.0.5/aus2/Firefox/2.0.0.20/Darwin_Universal-gcc3/2008121709/ > locales-mac.txt ls ../temp/firefox/2.0.0.20-3.0.5/aus2/Firefox/2.0.0.20/Linux_x86-gcc3/2008121709/ > locales-linux.txt
Update the version & BuildID in create_aus_urls-{linux,mac,win32}.sh, then
ln -s ../partner-update-channels ./create_aus_urls-linux.sh ./create_aus_urls-mac.sh ./create_aus_urls-win32.sh
Run tests for win32
./test_null_updates.sh urls-win32.txt 2>&1 | tee test-nulls-win32.txt grep -v '^PASS' test-nulls-win32.txt FAIL https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/en-US/releasetest-cck-yahoo/update.xml FAIL https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/ko/releasetest-cck-yahoo/update.xml FAIL https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/zh-CN/releasetest-cck-yahoo/update.xml FAIL https://aus2.mozilla.org/update/1/Firefox/2.0.0.20/2008121709/WINNT_x86-msvc/zh-TW/releasetest-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.
Checked in null_partners.sh, create_aus_urls-{linux,mac,win32}.sh
Add Slovenian locale
While doing checks, discovered that si and sl had been omitted from the list of locales for 3.0.5, and that we weren't verifying en-US was updating properly. Fix is attachment 355863 [edit].
Generate sl snippets
# cltbld@promethus-vm cd /builds/2.0.0.20-major-update/snippets/patcher-configs/ cvs up moz18-branch-major-update-patcher2.cfg cd ../patcher/ ./patcher2.pl --download --app=firefox --config=../patcher-configs/moz18-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox_download2.log # si and sl were downloaded for 3.0.5 cd temp/firefox/2.0.0.20-3.0.5 mkdir bak rsync -a aus2 bak/ && rsync -a aus2.beta bak/ && rsync -a aus2.test bak/ cd /builds/2.0.0.20-major-update/snippets/patcher ./patcher2.pl --create-patches --app=firefox --config=../patcher-configs/moz18-branch-major-update-patcher2.cfg 2>&1 | tee ../firefox-create-patches.log # all snippets were regenerated cd temp/firefox/2.0.0.20-3.0.5 rsync -a aus2/ aus2.beta/ find aus2.beta/ -type d -name "release" -exec rm -rfv {} \; find aus2/ -type d -name "beta" -exec rm -rfv {} \; diff -ru bak/aus2/ aus2/ Only in aus2/Firefox/2.0.0.20/Darwin_Universal-gcc3/2008121709: sl Only in aus2/Firefox/2.0.0.20/Linux_x86-gcc3/2008121709: sl Only in aus2/Firefox/2.0.0.20/WINNT_x86-msvc/2008121709: sl diff -ru bak/aus2.beta/ aus2.beta/ Only in aus2.beta/Firefox/2.0.0.20/Darwin_Universal-gcc3/2008121709: sl Only in aus2.beta/Firefox/2.0.0.20/Linux_x86-gcc3/2008121709: sl Only in aus2.beta/Firefox/2.0.0.20/WINNT_x86-msvc/2008121709: sl diff -ru bak/aus2.test/ aus2.test/ Only in aus2.test/Firefox/2.0.0.20/Darwin_Universal-gcc3/2008121709: sl Only in aus2.test/Firefox/2.0.0.20/Linux_x86-gcc3/2008121709: sl Only in aus2.test/Firefox/2.0.0.20/WINNT_x86-msvc/2008121709: sl
and those dirs in turn contain the right channels.
Push over to AUS (verified first with -n that only new files were sl; NB use of -rc and not -a)
rsync -rc -e 'ssh -i /home/cltbld/.ssh/aus' -v aus2/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU rsync -rc -e 'ssh -i /home/cltbld/.ssh/aus' -v aus2.beta/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU-beta rsync -rc -e 'ssh -i /home/cltbld/.ssh/aus' -v aus2.test/ cltbld@aus2-staging.mozilla.org:/opt/aus2/snippets/staging/20081219-Firefox-2.0.0.20-3.0.5-MU-test
Made a ~/bin/pushsnip-test which -n's the rsync, and check what is pushed. Then
~/bin/pushsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-test
Update verify
Much the same as before (ie same hosts & setup).
cd /builds/verify/firefox-20020-305-real-major/updates cvs up platform=linux # or mac or win32 cat moz18-firefox-$platform-major.cfg | \ sed -e 's/locales=".*zh-TW"/locales="en-US sl"/' > temp.cfg ./verify.sh -c temp.cfg 2>&1 | tee $platform-2.log
which gave the same results as for the earlier check, so go ahead and push sl to beta
~/bin/pushsnip 20081219-Firefox-2.0.0.20-3.0.5-MU-beta
Enable release snippets
# cltbld@aus2-staging date; time ~/bin/backupsnip 20081219-Firefox-2.0.0.20-3.0.5-MU real 38m0.262s user 0m38.100s sys 0m58.012s time ~/bin/pushsnip 20081219-Firefox-2.0.0.20-3.0.5-MU real 0m8.010s user 0m0.024s sys 0m0.557s
DONE TO HERE
Remove nulls
If we should ship a Firefox 2.0.0.21 then we should remove the nulls.