Releases/Firefox 31.0/BuildNotes

From MozillaWiki
Jump to: navigation, search

bug 1015968 - nthomas

Build 1

Updates for beta channel

Using b-linux64-hp-0026.

 mkdir ~/bug1015968
 cd ~/bug1015968
 hg clone http://hg.mozilla.org/build/tools
 # get a signing token for release certs, 6 hour expiry, put it at ~/bug1015968/token
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 # same as 30.0
 wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8433787

 # make sure enough disk space is free
 python ~/bug1015968/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 ~/bug1015968
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build1 -T 31.0b9-build1 -P linux-x86_64 2>&1 | tee linux64.log
 # repeat for these:
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build1 -T 31.0b9-build1 -P linux-i686 --no-env 2>&1 | tee linux.log
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build1 -T 31.0b9-build1 -P mac --no-env 2>&1 | tee mac.log
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build1 -T 31.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/31.0-candidates/build1/ \
  ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/candidates/31.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/31.0-candidates/build1/update
nice ionice -c2 -n7 extract_and_run_command.py -j2 clamdscan -m --no-summary -- \
  `find . -name firefox-31.0b9-31.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 if you get Config::General somehow
cd <parent_of_tools_checkout, updated to tip>
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_31_0_RELEASE/browser/locales/shipped-locales
perl tools/release/patcher-config-bump.pl -p firefox -r Firefox -v 31.0 -a 31.0 -o 31.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 31.0b9 --platform linux --platform linux64 \
  --platform macosx64 --platform win32
# then some manual modifications: 
# * url in complete uses product firefox-31.0-build1-complete
# * url in <partials><31.0b9> uses firefox-31.0-build1-partial-31.0b9
# * to -> 31.0-build1
# * <31.0> block ——> <31.0-build1>, 
# ** add mar-channel-ids "mar-channel-ids   firefox-mozilla-beta,firefox-mozilla-release" (technically only needed for 32.0b1)
# ** pretty version -> 31.0 RC 1

# 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_31_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_31_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_31_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_31_0_RELEASE

# fix the to="/path" definitions
for f in tools/release/updates/mozBeta-firefox-{linux64,linux,mac64,win32}.cfg; do
  sed -i '' -e 's,31.0-build1,31.0,' $f
done
hg -R tools diff > patch
# attach this to bug 1015968, attachment 8456022
# generate snippets (on b-linux64-hp-0026):
cd /home/cltbld/bug1015968/tools
hg pull
hg up -r FIREFOX_31_0_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8456022 | 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-31.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-31.0-build1-forbeta/
# Bouncer setup (to match patcher config)
# add Products: Firefox-31.0-Partial-31.0b9, Firefox-31.0-build1-Complete
# add Locations: 

Product                                 OS       Path
Firefox-31.0-build1-Partial-31.0b9	win	/firefox/candidates/31.0-candidates/build1/update/win32/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build1-Partial-31.0b9	linux	/firefox/candidates/31.0-candidates/build1/update/linux-i686/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build1-Partial-31.0b9	linux64	/firefox/candidates/31.0-candidates/build1/update/linux-x86_64/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build1-Partial-31.0b9	osx	/firefox/candidates/31.0-candidates/build1/update/mac/:lang/firefox-31.0b9-31.0.partial.mar 

Firefox-31.0-build1-Complete	        win	/firefox/candidates/31.0-candidates/build1/update/win32/:lang/firefox-31.0.complete.mar
Firefox-31.0-build1-Complete	        linux	/firefox/candidates/31.0-candidates/build1/update/linux-i686/:lang/firefox-31.0.complete.mar
Firefox-31.0-build1-Complete	        linux64	/firefox/candidates/31.0-candidates/build1/update/linux-x86_64/:lang/firefox-31.0.complete.mar
Firefox-31.0-build1-Complete	        osx	/firefox/candidates/31.0-candidates/build1/update/mac/:lang/firefox-31.0.complete.mar
# push test snippets live, on aus3-staging
~/bin/pushsnip Firefox-31.0-build1-forbeta-test

Running on b-linux64-hp-0026, b-2008-ix-0070, and bld-lion-r5-062

# Update verify
# All platforms except linux32:

mkdir bug1015968 ; cd $_
hg clone http://hg.mozilla.org/build/tools
cd tools
hg up -r FIREFOX_31_0_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8456022 | patch -p1 
cd release/updates
# use correct .cfg file for platform
./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log

# linux32 setup
sh -c 'rm -f /builds/mock_mozilla/mozilla-centos6-x86_64/buildroot.lock; mock_mozilla -r mozilla-centos6-x86_64 --orphanskill'
mock_mozilla -r mozilla-centos6-x86_64 --init
mock_mozilla -r mozilla-centos6-x86_64 --install autoconf213 python zip mozilla-python27-mercurial git ccache glibc-static.i686 libstdc++-static.i686 perl-Test-Simple perl-Config-General gtk2-devel.i686 libnotify-devel.i686 yasm alsa-lib-devel.i686 libcurl-devel.i686 wireless-tools-devel.i686 libX11-devel.i686 libXt-devel.i686 mesa-libGL-devel.i686 gnome-vfs2-devel.i686 GConf2-devel.i686 wget mpfr xorg-x11-font* imake gcc45_0moz3 gcc454_0moz1 gcc472_0moz1 gcc473_0moz1 yasm ccache valgrind pulseaudio-libs-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ORBit2-devel.i686 atk-devel.i686 cairo-devel.i686 check-devel.i686 dbus-devel.i686 dbus-glib-devel.i686 fontconfig-devel.i686 glib2-devel.i686 hal-devel.i686 libICE-devel.i686 libIDL-devel.i686 libSM-devel.i686 libXau-devel.i686 libXcomposite-devel.i686 libXcursor-devel.i686 libXdamage-devel.i686 libXdmcp-devel.i686 libXext-devel.i686 libXfixes-devel.i686 libXft-devel.i686 libXi-devel.i686 libXinerama-devel.i686 libXrandr-devel.i686 libXrender-devel.i686 libXxf86vm-devel.i686 libdrm-devel.i686 libidn-devel.i686 libpng-devel.i686 libxcb-devel.i686 libxml2-devel.i686 pango-devel.i686 perl-devel.i686 pixman-devel.i686 zlib-devel.i686 freetype-2.3.11-6.el6_1.8.i686 freetype-devel-2.3.11-6.el6_1.8.i686 freetype-2.3.11-6.el6_1.8.x86_64
mock_mozilla -r mozilla-centos6-x86_64 --cwd /builds/slave --unpriv --shell 'PATH="/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin" bash'
# then as above

Results, this diff is expected as we want the updated beta build to keep these settings:

succeeded
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

Push live after QA and RelMan go:

# ffxbld@aus3-staging 
pushsnip Firefox-31.0-build1-forbeta

Fix 28.0/29.0.1 -> 31.0 partials

build1 was specified instead of build2 for both 28.0 and 29.0.1, so the partials were generated using the early build and don't apply to the shipped build. Planning to regenerate the partials and snippets. In the meantime move away the bogus files to help the ftp.m.o cache clear.

# ffxbld@stage
cd /pub/mozilla.org/firefox/candidates/31.0-candidates
for f in `find build1/update/ -type f -name 'firefox-28.0-31.0*' -o -name 'firefox-29.0.1-31.0*'`; do
     dest=`dirname ${f/build1/build1-broken-updates}`;
     mkdir -p $dest;
     mv -v $f $dest/;
done

Start generating new partials using b-linux64-hp-0026, using the setup for 31.0b9 partials, leaving checksums for later (need to update file rather than append to it). Running ...

# in separate screen windows, generate other platforms
 cd ~/bug1015968
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 time python -u repack.py -f 29.0.1-build2 -t 31.0-build1 -T 31.0-build1 -P linux-x86_64 --no-checksums 2>&1 | tee linux64-29.0.1build2.log && \
   time python -u repack.py -f 28.0-build2 -t 31.0-build1 -T 31.0-build1 -P linux-x86_64  --no-checksums --no-env 2>&1 | tee linux64-28.0build2.log 
 # repeat for these:
 time python -u repack.py -f 29.0.1-build2 -t 31.0-build1 -T 31.0-build1 -P linux-i686 --no-checksums --no-env 2>&1 | tee linux-29.0.1build2.log && \
   time python -u repack.py -f 28.0-build2 -t 31.0-build1 -T 31.0-build1 -P linux-i686  --no-checksums --no-env 2>&1 | tee linux-28.0build2.log 
 time python -u repack.py -f 29.0.1-build2 -t 31.0-build1 -T 31.0-build1 -P mac --no-checksums --no-env 2>&1 | tee mac-29.0.1build2.log && \
   time python -u repack.py -f 28.0-build2 -t 31.0-build1 -T 31.0-build1 -P mac  --no-checksums --no-env 2>&1 | tee mac-28.0build2.log 
 time python -u repack.py -f 29.0.1-build2 -t 31.0-build1 -T 31.0-build1 -P win32 --no-checksums --no-env 2>&1 | tee win32-29.0.1build2.log && \
   time python -u repack.py -f 28.0-build2 -t 31.0-build1 -T 31.0-build1 -P win32  --no-checksums --no-env 2>&1 | tee win32-28.0build2.log 

We're spinning a build2 so didn't follow through with snippets to use the corrected partials.

Build 2

Problems

  • HTTP 500's during update verify, mostly ignorable, reran 3/6 for linux64
  • problem with the partial for mac/30.0/af, can't unbzip2 the patch for XUL. This shows up in uv 1/6 for mac, and the antivirus run. Planning to regenerate the partial and fix checksums + snippets

Regenerate partial from mac 30.0 af

Using a similar setup to beta partial generation, on b-linux64-hp-0026.

mkdir ~/bug1015968-mac-af
cd ~/bug1015968-mac-af
hg clone http://hg.mozilla.org/build/tools
# get a signing token for release certs, put it at ~/bug1015968-mac-af/token
wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8433787
# modify repack.py to comment out |locales = getLocales(from_build, to_build)|, replace it with
# |locales = ['af']|

export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
python -u repack.py -f 30.0-build2 -t 31.0-build2 -T 31.0-build2 -P mac 2>&1 | tee log

# fix up the checksums, removing the original partial info
# edit repacked/31.0-candidates/build2/mac/af/firefox-31.0.checksums to remove 6 earlier lines for
# firefox-30.0-31.0.partial.mar{,.asc}
# resign checksums and mar with gpg
python tools/release/signing/signtool.py -t token -n nonce -c tools/release/signing/host.cert \
 -H signing4.srv.releng.scl3.mozilla.com:9120 \
 -f gpg repacked/31.0-candidates/build2/mac/af/firefox-31.0.checksums
python tools/release/signing/signtool.py -t token -n nonce -c tools/release/signing/host.cert  -H signing4.srv.releng.scl3.mozilla.com:9120  -f gpg repacked/31.0-candidates/build2/update/mac/af/firefox-30.0-31.0.partial.mar

rsync -av -e 'ssh -i /home/cltbld/.ssh/ffxbld_dsa' \
  repacked/31.0-candidates/build2/ \
  ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/candidates/31.0-candidates/build2/

Regenerate snippets

# move existing snippets aside, on aus3-staging
cd /opt/aus2/snippets/
mv -v staging/Firefox-31.0-build2 obsolete/Firefox-31.0-build2-without-mac-af-fix
rsync -a obsolete/Firefox-31.0-build2-without-mac-af-fix/ staging/Firefox-31.0-build2/

cd staging
# prep test snippets
for d in Firefox/30.0/Darwin_x86{,_64}-gcc3-u-i386-x86_64/20140605174243/af; do
  mkdir -vp Firefox-31.0-build2-mac-af-fix-test/$d
  rsync -av ../pushed/Firefox-31.0-build2-test/$d/ Firefox-31.0-build2-mac-af-fix-test/$d
done

# tweak hash and size
for f in `find Firefox-31.0-build2{,-mac-af-fix-test}/Firefox/30.0/Darwin*/20140605174243/af -type f`; do
    echo $f
    sed -i'' -e 's/21622999/21623024/' -e 's/008c592f0ba3a7276afbfc9c87af6bbf24d9a47617aa99347bd227c5adc0bb836ef2695ca8c62cbbeafd7649980383833e02f0c5eeb93aa515833c3b65db34bf/20d1b9aa57a9c97f393741ad8d9f393096dfda3718644336141b1ac4485ac9e062e5d7fc65c7095d4ee76d72cb8b2637e7e9ce3ec6b6a9da90d77afe383d44e2/' $f
done

pushsnip Firefox-31.0-build2-mac-af-fix-test

Ran update verify on a mac slave by truncating mozRelease-firefox-mac64.cfg to just 30.0 af. Passed.

Updates for beta channel

Using b-linux64-hp-0026 again, as well as b-linux64-hp-0027.

 cd ~/bug1015968
 # cleanup build1 
 rm -rf nonce token aus2*
 rm -rf originals/{28.0,29.0.1,31.0}-candidates
 rm -rf repacked/31.0-candidates/build1/
 rm -rf signing-cache/
 # get a signing token for release certs, 6 hour expiry, put it at ~/bug1015968/token
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 # same as 30.0
 wget -O repack.py https://bugzilla.mozilla.org/attachment.cgi?id=8433787

 # disk space is 94G free, from earlier cleanup

 # in separate screen windows on b-linux64-hp-0026, generate other platforms
 cd ~/bug1015968
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build2 -T 31.0b9-build1 -P linux-x86_64 2>&1 | tee linux64.log
 # repeat for these:
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build2 -T 31.0b9-build1 -P linux-i686 --no-env 2>&1 | tee linux.log
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build2 -T 31.0b9-build1 -P mac --no-env 2>&1 | tee mac.log
 time python -u repack.py -f 31.0b9-build1 -t 31.0-build2 -T 31.0b9-build1 -P win32 --no-env 2>&1 | tee win32.log

 # in separate screen windows on b-linux64-hp-0027, generate the the 2nd set of partials
 # using 31.0 tools, so we can use these partials for release builds if we have the energy later
 cd ~/bug1015968
 export PYTHONPATH=tools/lib/python; export PATH=$PATH:`pwd`
 time python -u repack.py -f 31.0-build1 -t 31.0-build2 -T 31.0-build1 -P linux-x86_64 2>&1 | tee linux64.log
 # repeat for these:
 time python -u repack.py -f 31.0-build1 -t 31.0-build2 -T 31.0-build1 -P linux-i686 --no-env 2>&1 | tee linux.log
 time python -u repack.py -f 31.0-build1 -t 31.0-build2 -T 31.0-build1 -P mac --no-env 2>&1 | tee mac.log
 time python -u repack.py -f 31.0-build1 -t 31.0-build2 -T 31.0-build1 -P win32 --no-env 2>&1 | tee win32.log

A crash stole my notes here, but the gist is

  • upload partials and checksums from b-linux64-hp-0026
  • run repack.py again on b-linux64-hp-0027 with --no-mar-files, and code tweak to add cache buster for checksum file d/l, and removing existing checksums in in {originals,repacked}/31.0-candidates/build2/
  • upload partials and checksums from b-linux64-hp-0027
  • rerun checksums builder, remove contrib* dirs it wants to create, run again to succeed
  • run av checks over new partial files
# 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 31.0 -a 31.0 -o 31.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 31.0b9 --partial-version 31.0 \
  --platform linux --platform linux64 --platform macosx64 --platform win32
# then some manual modifications: url in <complete> should use product firefox-30.0-build2-complete, 
# from -> 31.0-build1, to -> 31.0-build1
# fix up urls in <current-update>
## complete url: product -> firefox-31.0-build2-complete
## partial urls: product -> firefox-31.0-build2-partial-31.0-build1 and firefox-31.0-build2-partial-31.0b9
## <31.0> -> <31.0-build1> in <partials>
# <31.0> block ——> <31.0-build2>, add <31.0-build1> block by copying build2 and modifying buildid
# add mar-channel-ids & pretty version to <31.0-build1> and <31.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_31_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_31_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_31_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_31_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,31.0-build2,31.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/31.0-build1,firefox/candidates/31.0-candidates/build1,' -e 's,31.0-build1,31.0,g' $f
done
hg -R tools diff > patch
# attach this to bug 1015968, attachment 8457984
# generate snippets (on b-linux64-hp-0026):
cd /home/cltbld/bug1015968/tools
hg pull
hg up -C -r FIREFOX_31_0_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8457984 | 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-31.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-31.0-build2-forbeta/
# Bouncer setup (to match patcher config)
# add Products: Firefox-31.0-build2-Partial-31.0-build1, Firefox-31.0-build2-Partial-31.0b9, Firefox-31.0-build2-Complete
# add Locations: 

Product                                 OS       Path
Firefox-31.0-build2-Partial-31.0-build1	win	/firefox/candidates/31.0-candidates/build2/update/win32/:lang/firefox-31.0-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0-build1	linux	/firefox/candidates/31.0-candidates/build2/update/linux-i686/:lang/firefox-31.0-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0-build1	linux64	/firefox/candidates/31.0-candidates/build2/update/linux-x86_64/:lang/firefox-31.0-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0-build1	osx	/firefox/candidates/31.0-candidates/build2/update/mac/:lang/firefox-31.0-31.0.partial.mar 

Firefox-31.0-build2-Partial-31.0b9	win	/firefox/candidates/31.0-candidates/build2/update/win32/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0b9	linux	/firefox/candidates/31.0-candidates/build2/update/linux-i686/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0b9	linux64	/firefox/candidates/31.0-candidates/build2/update/linux-x86_64/:lang/firefox-31.0b9-31.0.partial.mar
Firefox-31.0-build2-Partial-31.0b9	osx	/firefox/candidates/31.0-candidates/build2/update/mac/:lang/firefox-31.0b9-31.0.partial.mar 

Firefox-31.0-build2-Complete	        win	/firefox/candidates/31.0-candidates/build2/update/win32/:lang/firefox-31.0.complete.mar
Firefox-31.0-build2-Complete	        linux	/firefox/candidates/31.0-candidates/build2/update/linux-i686/:lang/firefox-31.0.complete.mar
Firefox-31.0-build2-Complete	        linux64	/firefox/candidates/31.0-candidates/build2/update/linux-x86_64/:lang/firefox-31.0.complete.mar
Firefox-31.0-build2-Complete	        osx	/firefox/candidates/31.0-candidates/build2/update/mac/:lang/firefox-31.0.complete.mar
# push test snippets live, on aus3-staging
~/bin/pushsnip Firefox-31.0-build2-forbeta-test
# obsolete build1 snippets
mv /opt/aus2/snippets/staging/Firefox-31.0-build1 /opt/aus2/snippets/obsolete/

Running on b-linux64-hp-0026, b-2008-ix-0122, bld-lion-r5-061

# Update verify
# All platforms except linux32:

mkdir bug1015968 ; cd $_
hg clone http://hg.mozilla.org/build/tools
cd tools
hg up -C -r FIREFOX_31_0_RELEASE_RUNTIME
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=8457984 | patch -p1 
cd release/updates
# use correct .cfg file for platform
./verify.sh -c mozBeta-firefox-linux64.cfg 2>&1 | tee log

# linux32 setup
sh -c 'rm -f /builds/mock_mozilla/mozilla-centos6-x86_64/buildroot.lock; mock_mozilla -r mozilla-centos6-x86_64 --orphanskill'
mock_mozilla -r mozilla-centos6-x86_64 --init
mock_mozilla -r mozilla-centos6-x86_64 --install autoconf213 python zip mozilla-python27-mercurial git ccache glibc-static.i686 libstdc++-static.i686 perl-Test-Simple perl-Config-General gtk2-devel.i686 libnotify-devel.i686 yasm alsa-lib-devel.i686 libcurl-devel.i686 wireless-tools-devel.i686 libX11-devel.i686 libXt-devel.i686 mesa-libGL-devel.i686 gnome-vfs2-devel.i686 GConf2-devel.i686 wget mpfr xorg-x11-font* imake gcc45_0moz3 gcc454_0moz1 gcc472_0moz1 gcc473_0moz1 yasm ccache valgrind pulseaudio-libs-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ORBit2-devel.i686 atk-devel.i686 cairo-devel.i686 check-devel.i686 dbus-devel.i686 dbus-glib-devel.i686 fontconfig-devel.i686 glib2-devel.i686 hal-devel.i686 libICE-devel.i686 libIDL-devel.i686 libSM-devel.i686 libXau-devel.i686 libXcomposite-devel.i686 libXcursor-devel.i686 libXdamage-devel.i686 libXdmcp-devel.i686 libXext-devel.i686 libXfixes-devel.i686 libXft-devel.i686 libXi-devel.i686 libXinerama-devel.i686 libXrandr-devel.i686 libXrender-devel.i686 libXxf86vm-devel.i686 libdrm-devel.i686 libidn-devel.i686 libpng-devel.i686 libxcb-devel.i686 libxml2-devel.i686 pango-devel.i686 perl-devel.i686 pixman-devel.i686 zlib-devel.i686 freetype-2.3.11-6.el6_1.8.i686 freetype-devel-2.3.11-6.el6_1.8.i686 freetype-2.3.11-6.el6_1.8.x86_64
mock_mozilla -r mozilla-centos6-x86_64 --cwd /builds/slave --unpriv --shell 'PATH="/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin" bash'
# then as above