Releases/Firefox 30.0/BuildNotes
bug 996137 - hwine
Build 1
Issues hit: Just the releasenotes url below
Updates for beta channel (nthomas)
# using bld-centos6-hp-015 with screen mkdir ~/bug978746 cd ~/bug978746 hg clone http://hg.mozilla.org/build/tools # get a signing token for release certs, 6 hour expiry export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd` # updated since 29.0 to strip out old code, fix defaults wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8433787 # make sure enough disk space is free python ~/bug978746/tools/buildfarm/maintenance/purge_builds.py -s 55 -n 'rel-*:45d' -n 'tb-rel-*:45d' /builds/slave # in separate screen windows, generate other platforms cd ~/bug978746 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd` time python -u repack.py -f 30.0b9-build1 -t 30.0-build1 -T 30.0b9-build1 -P linux-i686 2>&1 | tee linux.log # repeat for these: time python -u repack.py -f 30.0b9-build1 -t 30.0-build1 -T 30.0b9-build1 -P linux-x86_64 --no-env 2>&1 | tee linux64.log time python -u repack.py -f 30.0b9-build1 -t 30.0-build1 -T 30.0b9-build1 -P mac --no-env 2>&1 | tee mac.log time python -u repack.py -f 30.0b9-build1 -t 30.0-build1 -T 30.0b9-build1 -P win32 --no-env 2>&1 | tee win32.log
# fix permissions and upload to stage
find repacked/ -type f -exec chmod 644 {} \;
find repacked/ -type d -exec chmod 755 {} \;
# rsync -n is your friend
rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' \
repacked/30.0-candidates/build1/ \
ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/candidates/30.0-candidates/build1/
# reran check_permissions builder to make sure all is correct.
# run av scan on partials, anyone on stage
cd /pub/mozilla.org/firefox/candidates/30.0-candidates/build1/update
nice ionice -c2 -n7 extract_and_run_command.py -j2 clamdscan -m --no-summary -- \
`find . -name firefox-30.0b9-30.0.partial.mar` 2>&1 | tee /tmp/av.log
# Generate patcher configs and update verify configs, nthomas's laptop but can be done on a slave too
cd <parent_of_tools_checkout>
export PERL5LIB="tools/lib/perl:$HOME/perl5/lib/perl5" # need Config::General v2.44
wget http://hg.mozilla.org/releases/mozilla-release/raw-file/FIREFOX_30_0_RELEASE/browser/locales/shipped-locales
perl tools/release/patcher-config-bump.pl -p firefox -r Firefox -v 30.0 -a 30.0 -o 30.0b9 -b 1 \
-c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg -t stage.mozilla.org -f ftp.mozilla.org \
-d download.mozilla.org -l shipped-locales --partial-version 30.0b9 --platform linux --platform linux64 \
--platform macosx64 --platform win32
# then some manual modifications: url in complete uses product firefox-30.0-build1-complete,
# <30.0> block ——> <30.0-build1>, to -> 30.0-build1, add mar-channel-ids, pretty version
# generate update verify configs
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux64 --output tools/release/updates/mozBeta-firefox-linux64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux --output tools/release/updates/mozBeta-firefox-linux.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform macosx64 --output tools/release/updates/mozBeta-firefox-mac64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform win32 --output tools/release/updates/mozBeta-firefox-win32.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
# fix the to="/path" definitions
for f in tools/scripts/release/updates/mozBeta-firefox-{linux64,linux,mac64,win32}.cfg; do
sed -i '' -e 's,30.0-build1,30.0,' $f
done
hg -R tools diff > patch
# attach this to bug 996137, attachment 8434029
# generate snippets (on bld-centos6-hp-015): cd /home/cltbld/bug978746/tools hg pull hg up -r FIREFOX_30_0_RELEASE_RUNTIME wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8434029 | patch -p1 cd .. export PYTHONPATH="tools/lib/python:tools/lib/python/vendor" python tools/scripts/updates/create-snippets.py --config tools/release/patcher-configs/mozBeta-branch-patcher2.cfg \ --checksums-dir checksums --snippet-dir aus2 --test-snippet-dir aus2.test -v 2>&1 | tee snippets.log
# ditch the betatest snippets, we're going to use releasetest only before pushing to beta rm -rf aus2.test/Firefox/*/WIN*/*/*/betatest rm -rf aus2.test/Firefox/*/Lin*/*/*/betatest rm -rf aus2.test/Firefox/*/Dar*/*/*/betatest
# Sync to aus3-staging rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2.test/ \ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-30.0-build1-forbeta-test/ rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2/ \ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-30.0-build1-forbeta/
# Bouncer setup (to match patcher config) # add Products: Firefox-30.0-Partial-30.0b9, Firefox-30.0-build1-Complete # add Locations: Product OS Path Firefox-30.0-Partial-30.0b9 win /firefox/candidates/30.0-candidates/build1/update/win32/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-Partial-30.0b9 linux /firefox/candidates/30.0-candidates/build1/update/linux-i686/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-Partial-30.0b9 linux64 /firefox/candidates/30.0-candidates/build1/update/linux-x86_64/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-Partial-30.0b9 osx /firefox/candidates/30.0-candidates/build1/update/mac/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-build1-Complete win /firefox/candidates/30.0-candidates/build1/update/win32/:lang/firefox-30.0.complete.mar Firefox-30.0-build1-Complete linux /firefox/candidates/30.0-candidates/build1/update/linux-i686/:lang/firefox-30.0.complete.mar Firefox-30.0-build1-Complete linux64 /firefox/candidates/30.0-candidates/build1/update/linux-x86_64/:lang/firefox-30.0.complete.mar Firefox-30.0-build1-Complete osx /firefox/candidates/30.0-candidates/build1/update/mac/:lang/firefox-30.0.complete.mar
# push test snippets live, on aus3-staging ~/bin/pushsnip Firefox-30.0-build1-forbeta-test
# Update verify # All platforms except linux32: mkdir bug978746 ; cd $_ hg clone http://hg.mozilla.org/build/tools cd tools hg up -r FIREFOX_30_0_RELEASE_RUNTIME wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8434029 | patch -p1 cd release/updates # use correct .cfg file for platform ./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log
For posterity, both linux update verifies were run on bld-centos6-hp-015 (64-bit outside of mock, 32-bit inside of mock), bld-lion-r5-057 was used for Mac, b-2008-ix-0084 was used for Windows. Expected differences look like this (search for calling 'QuitProgressUI'):
diff -r source/firefox/defaults/pref/channel-prefs.js target/firefox/defaults/pref/channel-prefs.js
1c1
< //@line 2 "/builds/slave/rel-m-beta-l64_bld-00000000000/build/browser/app/profile/channel-prefs.js"
---
> //@line 2 "/builds/slave/rel-m-rel-l64_bld-000000000000/build/browser/app/profile/channel-prefs.js"
6c6
< pref("app.update.channel", "beta");
---
> pref("app.update.channel", "release");
diff -r source/firefox/update-settings.ini target/firefox/update-settings.ini
5c5
< ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release
---
> ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release
Fix whatsnew page for release channel (nthomas)
We're pointing at the 29.0 url, eg
https://www.mozilla.org/%locale%/firefox/29.0/whatsnew/?oldversion=%OLD_VERSION%
Should be 30.0. bug 1009893 handles this, except for the config being stale already, landed a fix.
Massage the snippets to fix
# ffxbld@aus3-staging
cd /opt/aus2/snippets
mv pushed/Firefox-30.0-build1-test staging/
cd staging
for d in Firefox-30.0-build1-test Firefox-30.0-build1; do
for f in `find $d -type f`; do
echo $f
sed -i'' -e 's,firefox/29.0/whatsnew,firefox/30.0/whatsnew,' $f;
done
done
pushsnip Firefox-30.0-build1-test
Build 2
Issues hit:
- bug 1021697 update verify issue. Workaround applied (see below).
- bug 1023031 bouncer uptake checks
Both of those are fallout from ship-it having 30.0build1 in the list of partials (communication issue with RelMan).
Updates for beta channel (nthomas/bhearsum)
Want to do updates from 30.0b9 and 30.0 build1. Ship-it was set to do 30.0build1 partials, which is odd but helpful. Still need the 30.0b9 ones though (2/3 of actively updating users).
# using bld-centos6-hp-019 with screen mkdir ~/bug978746 cd ~/bug978746 hg clone http://hg.mozilla.org/build/tools # get a signing token for release certs, 6 hour expiry export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd` # updated since 29.0 to strip out old code, fix defaults wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8435509 # make sure enough disk space is free, (55G for extra set of extra partial) python ~/bug978746/tools/buildfarm/maintenance/purge_builds.py -s 55 -n 'rel-*:45d' -n 'tb-rel-*:45d' /builds/slave # in separate screen windows, generate other platforms cd ~/bug978746 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd` time python -u repack.py -f 30.0b9-build1 -t 30.0-build2 -T 30.0b9-build1 -P mac 2>&1 | tee mac.log # repeat for these: time python -u repack.py -f 30.0b9-build1 -t 30.0-build2 -T 30.0b9-build1 -P linux-i686 --no-env 2>&1 | tee linux.log time python -u repack.py -f 30.0b9-build1 -t 30.0-build2 -T 30.0b9-build1 -P linux-x86_64 --no-env 2>&1 | tee linux64.log time python -u repack.py -f 30.0b9-build1 -t 30.0-build2 -T 30.0b9-build1 -P win32 --no-env 2>&1 | tee win32.log
# fix permissions and upload to stage
find repacked/ -type f -exec chmod 644 {} \;
find repacked/ -type d -exec chmod 755 {} \;
# rsync -n is your friend
rsync -nav -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' \
repacked/30.0-candidates/build2/ \
ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/candidates/30.0-candidates/build2/
# reran check_permissions builder to make sure all is correct.
# run av scan on partials, anyone on stage
cd /pub/mozilla.org/firefox/candidates/30.0-candidates/build2/update
nice ionice -c2 -n7 extract_and_run_command.py -j2 clamdscan -m --no-summary -- \
`find . -name firefox-30.0b9-30.0.partial.mar` 2>&1 | tee /tmp/av.log
# Generate patcher configs and update verify configs, nthomas's laptop but can be done on a slave too
cd /path/to/tools/..
export PERL5LIB="tools/lib/perl:$HOME/perl5/lib/perl5" # need Config::General v2.44
wget http://hg.mozilla.org/releases/mozilla-release/raw-file/FIREFOX_30_0_RELEASE/browser/locales/shipped-locales
perl tools/release/patcher-config-bump.pl -p firefox -r Firefox -v 30.0 -a 30.0 -o 30.0 -b 2 \
-c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg -t stage.mozilla.org -f ftp.mozilla.org \
-d download.mozilla.org -l shipped-locales --partial-version 30.0b9 --platform linux --platform linux64 \
--platform macosx64 --platform win32
# then some manual modifications: url in <complete> should use product firefox-30.0-build2-complete,
# <30.0> block ——> <30.0-build2>, from -> 30.0-build1, add <30.0-build1> to <partials>
# to -> 30.0-build1, add past-update line for 30.0b9
# add mar-channel-ids & pretty version to <30.0-build1> and <30.0-build2>
# generate update verify configs
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux64 --output tools/release/updates/mozBeta-firefox-linux64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform linux --output tools/release/updates/mozBeta-firefox-linux.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform macosx64 --output tools/release/updates/mozBeta-firefox-mac64.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
python tools/scripts/updates/create-update-verify-configs.py -c tools/release/patcher-configs/mozBeta-branch-patcher2.cfg --platform win32 --output tools/release/updates/mozBeta-firefox-win32.cfg --release-config-file mozilla/release-firefox-mozilla-release.py -b https://hg.mozilla.org/build/buildbot-configs --channel releasetest -t FIREFOX_30_0_RELEASE
# fix the to="/path" definitions
for f in tools/release/updates/mozBeta-firefox-{linux64,linux,mac64,win32}.cfg; do
echo $f
sed -i '' -e 's,30.0-build2,30.0,g' $f
done
# fix the from="/path" and to="/path" definitions
for f in tools/release/updates/mozBeta-firefox-{linux64,linux,mac64,win32}.cfg; do
echo $f
sed -i '' -e 's,firefox/releases/30.0-build1,firefox/candidates/30.0-candidates/build1,' -e 's,30.0-build1,30.0,g' $f
done
hg -R tools diff > patch
# attach this to bug 996137, attachment 8435674
# generate snippets (on bld-centos6-hp-019): cd /home/cltbld/bug978746/tools hg pull hg up -r FIREFOX_30_0_RELEASE_RUNTIME wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8435674 | patch -p1 cd .. export PYTHONPATH="tools/lib/python:tools/lib/python/vendor" python tools/scripts/updates/create-snippets.py --config tools/release/patcher-configs/mozBeta-branch-patcher2.cfg \ --checksums-dir checksums --snippet-dir aus2 --test-snippet-dir aus2.test -v 2>&1 | tee snippets.log
# ditch the betatest snippets, we're going to use releasetest only before pushing to beta rm -rf aus2.test/Firefox/*/WIN*/*/*/betatest rm -rf aus2.test/Firefox/*/Lin*/*/*/betatest rm -rf aus2.test/Firefox/*/Dar*/*/*/betatest
# Sync to aus3-staging rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2.test/ \ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-30.0-build2-forbeta-test/ rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' aus2/ \ ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-30.0-build2-forbeta/
# Bouncer setup (to match patcher config) Product OS Path Firefox-30.0-build2-Partial-30.0b9 win /firefox/candidates/30.0-candidates/build2/update/win32/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-build2-Partial-30.0b9 linux /firefox/candidates/30.0-candidates/build2/update/linux-i686/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-build2-Partial-30.0b9 linux64 /firefox/candidates/30.0-candidates/build2/update/linux-x86_64/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-build2-Partial-30.0b9 osx /firefox/candidates/30.0-candidates/build2/update/mac/:lang/firefox-30.0b9-30.0.partial.mar Firefox-30.0-build2-Partial-30.0-build1 win /firefox/candidates/30.0-candidates/build2/update/win32/:lang/firefox-30.0-30.0.partial.mar Firefox-30.0-build2-Partial-30.0-build1 linux /firefox/candidates/30.0-candidates/build2/update/linux-i686/:lang/firefox-30.0-30.0.partial.mar Firefox-30.0-build2-Partial-30.0-build1 linux64 /firefox/candidates/30.0-candidates/build2/update/linux-x86_64/:lang/firefox-30.0-30.0.partial.mar Firefox-30.0-build2-Partial-30.0-build1 osx /firefox/candidates/30.0-candidates/build2/update/mac/:lang/firefox-30.0-30.0.partial.mar Firefox-30.0-build2-Complete win /firefox/candidates/30.0-candidates/build2/update/win32/:lang/firefox-30.0.complete.mar Firefox-30.0-build2-Complete linux /firefox/candidates/30.0-candidates/build2/update/linux-i686/:lang/firefox-30.0.complete.mar Firefox-30.0-build2-Complete linux64 /firefox/candidates/30.0-candidates/build2/update/linux-x86_64/:lang/firefox-30.0.complete.mar Firefox-30.0-build2-Complete osx /firefox/candidates/30.0-candidates/build2/update/mac/:lang/firefox-30.0.complete.mar
# push test snippets live, on aus3-staging ~/bin/pushsnip Firefox-30.0-build2-forbeta-test
# Update verify # All platforms except linux32: mkdir bug978746 ; cd $_ hg clone http://hg.mozilla.org/build/tools cd tools hg up -r FIREFOX_30_0_RELEASE_RUNTIME wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8435674 | patch -p1 cd release/updates # use correct .cfg file for platform ./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log
Running on bld-centos6-hp-019 (inside and outside mock, in screen), bld-lion-r5-075, w64-ix-slave104.
Update Verify Issue
Getting failures doing 30.0 build1 -> build2 due to the harness never having to cope with that before (urls with same basename overwriting each other, so we try to apply the partial to build2, and it fails bug 1021697).
Workaround:
- in each stage:/pub/mozilla.org/firefox/candidates/30.0-candidates/build1/{linux-i686,linux-x86_64,mac,win32}/*, create a symlink, eg linux*: firefox-30.0-build1.tar.bz2 -> firefox-30.0.tar.bz2
- modify the update verify config for this, eg linux64 (see from=)
release="30.0" product="Firefox" platform="Linux_x86_64-gcc3" build_id="20140603140158" locales="ach ..." channel="releasetest" \ patch_types="complete partial" from="/firefox/candidates/30.0-candidates/build1/linux-x86_64/%locale%/firefox-30.0-build1.tar.bz2" \ ftp_server_from="http://stage.mozilla.org/pub/mozilla.org" ftp_server_to="http://stage.mozilla.org/pub/mozilla.org" \ mar_channel_IDs="firefox-mozilla-beta,firefox-mozilla-release" aus_server="https://aus3.mozilla.org" \ ftp_server_to="http://stage.mozilla.org/pub/mozilla.org" to="/firefox/candidates/30.0-candidates/build2/linux-x86_64/%locale%/firefox-30.0.tar.bz2"
To test build1 -> build2 partials, did the following:
- On FTP, create symlinks for all builds (see above):
cd /pub/mozilla.org/firefox/candidates/30.0-candidates/build1 cd linux-i686 for i in `ls | grep -v xpi | grep -v ach`; do cd $i && ln -s firefox-30.0.tar.bz2 firefox-30.0-build1.tar.bz2 && cd ..; done cd ../linux-x86_64 for i in `ls | grep -v xpi | grep -v ach`; do cd $i && ln -s firefox-30.0.tar.bz2 firefox-30.0-build1.tar.bz2 && cd ..; done cd ../mac for i in `ls | grep -v xpi`; do cd $i && ln -s "Firefox 30.0.dmg" "Firefox 30.0-build1.dmg" && cd ..; done cd ../win32 for i in `ls | grep -v xpi`; do cd $i && ln -s "Firefox Setup 30.0.exe" "Firefox Setup 30.0-build1.exe" && cd ..; done
- On each platform, after original update verify run had finished:
- Modified update verify config:
- Removed all tests except build1 -> build2
- Updated build1 installer URLs to point at "-build1" version of files created above.
- Restarted update verify with new config
- Configs ended up looking like this:
- Modified update verify config:
release="30.0" product="Firefox" platform="Linux_x86_64-gcc3" build_id="20140603140158" locales="ach af an ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lij lt lv mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk vi xh zh-CN zh-TW zu" channel="releasetest" patch_types="complete partial" from="/firefox/candidates/30.0-candidates/build1/linux-x86_64/%locale%/firefox-30.0-build1.tar.bz2" ftp_server_from="http://stage.mozilla.org/pub/mozilla.org" ftp_server_to="http://stage.mozilla.org/pub/mozilla.org" mar_channel_IDs="firefox-mozilla-beta,firefox-mozilla-release" to="/firefox/candidates/30.0-candidates/build2/linux-x86_64/%locale%/firefox-30.0.tar.bz2"
After things finished, verified by looking for "FAIL" in the logs. The original update verify runs each had 88 FAILs (one per locale from the 30.0build1 tests). The second runs had zero fails (redo of the fixed 30.0build1 tests.)
Bouncer uptake
See bug 1023031 - basically we were looking for a non-existent product, then hit a db error.