Releases/Firefox 14.0.1/BuildNotes-Updates

From MozillaWiki
< Releases
Revision as of 11:15, 16 July 2012 by NThomas (talk | contribs)
Jump to navigation Jump to search

Updates

First problem: Failed to bump the patcher config

perl ../tools/release/patcher-config-bump.pl -p firefox -r Firefox -v 14.0.1 -a 14.0.1 \
-o 13.0.2 -b 1 ....
ASSERT: BumpFilePath() - Could not bump path: 'firefox/nightly/13.0.1-candidates/build1/update/%platform%/%locale%/firefox-13.0-13.0.1.partial.mar' from '13.0.2' to '14.0.1' at ../tools/lib/perl/Release/Patcher/Config.pm line 148.

due to incorrect oldVersion in release config.

Fix:

# buildbot-configs @ ed8561aa1056
sed -e 's/13_0_2/13_0_1/' -e 's/13\.0\.2/13.0.1/' -i  mozilla/release-firefox-mozilla-release.py
hg ci -m "Bug 758795, fix up oldVersion for FF 14.0.1, r=version-numbers-are-confusing"
hg up -r production
hg transplant 1aa1d4209bb1
hg tag -f -r production {FIREFOX,FENNEC}_14_0_1_{RELEASE,BUILD1}
hg push ssh://hg.mozilla.org/build/buildbot-configs
# bm12
cd /builds/buildbot/build1
source bin/activate 
make update reconfig

Note that the tagging was wrong for Fennec, revert it

hg tag -f -r b52a7634bca669ea1205ad34ab297b845ec193c1 FENNEC_14_0_1_RELEASE
hg tag -f -r b2b6a37879f23438c3fb29124f9b3d37e61cff13 FENNEC_14_0_1_BUILD1
# after verification using hg serve
hg push ssh://hg.mozilla.org/build/buildbot-configs

Forced builder.

Second problem: Failed to upload aus2-test because in the create_snippets step we got

Partial patch info - 0 to create
Complete patch info - 0 to create
Past release patch info - 6168 to create
No known patch for locale af, 10.0 -> 14.0.1; skipping...

instead of generating snippets. This is because the checksums files have lines like this

26dee2baa2b425fb3d8057879558bf89 md5 7771770 update/win32/en-US/firefox-13.0.2-14.0.1.partial.mar

Which is the same problem with the wrong version in the config. In fact we have generated partials for 13.0.2 to 14.0.1, which won't be any use, and will need to create 13.0.1 to 14.0.1 partials.

Manually generate 13.0.1-14.0.1 partials

Working from the howto doc, but no config changes are necessary here.

## on linux-ix-slave36
cd /builds/slave/rel-m-rel-updates/build
mkdir -p logs/13.0.1-14.0.1

## build tools (9 min)
export HGROOT=http://hg.mozilla.org/releases/mozilla-release
perl patcher2.pl --build-tools-hg --tools-revision=FIREFOX_14_0_1_RELEASE \
  --app=firefox --brand=Firefox \
  --config=patcher-configs/mozRelease-branch-patcher2.cfg

## get complete mar files   (75 min, very badly needs parallelization)
perl patcher2.pl --download \
  --app=firefox --brand=Firefox \
  --config=patcher-configs/mozRelease-branch-patcher2.cfg \
  2>&1 | tee logs/13.0.1-14.0.1/download.log

## generate unsigned partial updates (100 min)
perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg \
 --app=firefox --brand=Firefox \
 --config=patcher-configs/mozRelease-branch-patcher2.cfg \
  2>&1 | tee logs/13.0.1-14.0.1/create-partials.log

## Make a backup of the new partials/snippets, destroy snippets (6 min)
rsync -a temp/firefox/13.0.1-14.0.1{,-unsigned}/
rm -rf temp/firefox/13.0.1-14.0.1/aus2*

## Sign the mar files (< 1 min)
# get a token
# look up the values for --user in the release-signing part of passwords.py, on the master
unset HISTFILE
IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'`
ssh -oBatchMode=no cltbld@buildbot-master12.build.mozilla.org \
  "curl --fail -k -Fslave_ip=$IP -Fduration=3600 --user reda:cted \
   https://signing1.build.scl1.mozilla.com:9120/token" \
     > /builds/slave/rel-m-rel-updates/token
rm /builds/slave/rel-m-rel-updates/nonce

# update the channel id and version, then sign (25 min)
(for f in `find temp/firefox/13.0.1-14.0.1/ftp -type f -name *partial.mar | sort`; do
  echo Signing $f
  mozilla/obj/dist/host/bin/mar -H firefox-mozilla-release -V 14.0.1 -i $f;
  /tools/python-2.6.5/bin/python \
    /builds/slave/rel-m-rel-updates/tools/release/signing/signtool.py \
    -t /builds/slave/rel-m-rel-updates/token -n /builds/slave/rel-m-rel-updates/nonce \
    -c /builds/slave/rel-m-rel-updates/tools/release/signing/host.cert \
    -H signing1.build.scl1.mozilla.com:9120 -H signing2.build.scl1.mozilla.com:9120 -f gpg -f mar \
    "$f"
done ) 2>&1 | tee logs/13.0.1-14.0.1/sign-partials.log

## Regenerate the snippets (4 min)
perl patcher2.pl --create-patchinfo \
  --app=firefox --brand=Firefox \
  --config=patcher-configs/mozRelease-branch-patcher2.cfg \
  2>&1 | tee logs/13.0.1-14.0.1/generate_snippets.log

# Snippet verification
cd temp/firefox/13.0.1-14.0.1
bash /builds/slave/rel-m-rel-updates/tools/release/compare-channel-snippets.sh \
  aus2 release aus2.test  releasetest

# Tidy and upload mar files (6 min)
find ftp/firefox/nightly/14.0.1-candidates/build1 -type f -exec chmod 644 {} \; 
find ftp/firefox/nightly/14.0.1-candidates/build1 -type d -exec chmod 755 {} \;
# $BUILD is the build number, eg 1, 2, ...
rsync -nav -e 'ssh -oIdentityFile=~/.ssh/ffxbld_dsa' '--exclude=*complete.mar' \
  ftp/firefox/nightly/14.0.1-candidates/build1/update \
  ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/nightly/14.0.1-candidates/build1/
# then repeat without the -n

# Upload snippets (2 min, NB: no  --exclude=complete.txt)
rsync -av -e 'ssh -oIdentityFile=~/.ssh/auspush' \
 aus2.test/ \
 ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-14.0.1-build1-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/auspush' \
 aus2/ \
 ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-14.0.1-build1

Defer backupsnip until after other changes.

Adjust What's New in snippets

From bug 767207

locales="en-US en-GB fr it de es-ES es-AR es-CL es-MX ja ja-JP-mac ko ru"

# backup auto-generated snippets
cd /opt/aus2/snippets/staging
rsync -a Firefox-14.0.1-build1{,-withoutWN}/
rsync -a Firefox-14.0.1-build1-test{,-withoutWN}/

for l in $locales; do
  for f in `find Firefox-14.0.1-build1{,-test}/*/*/*/*/$l -type f`; do
    echo tweaking $f
    sed -i '/^actions.*$/d' $f
  done
done

Did some quick checks using diff, looks OK.

Generate 12.0 to 14.0.1 partial update for windows

## on linux-ix-slave36
cd /builds/slave/rel-m-rel-updates/build
mkdir -p logs/12.0-14.0.1
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=642529 \
  > patcher-configs/mozRelease-branch-patcher2-758795.cfg

# save the previous partial working space, but duplicate 14.0.1
# win32 completes as a speed up (2 min)
mv temp/ temp-13.0.1-14.0.1-partial/
mkdir -p temp/firefox/14.0.1/ftp
cp -pv temp-13.0.1-14.0.1-partial/firefox/14.0.1/ftp/*win32* temp/firefox/14.0.1/ftp/

## build tools - skipped as we had this from 12.0.1 - 13.0.1

## Get the complete mar files (8 min)
perl patcher2.pl --download \
  --app=firefox --brand=Firefox \
  --config=patcher-configs/mozRelease-branch-patcher2-758795.cfg

## Generate unsigned partial updates (28 min)
perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg \
 --app=firefox --brand=Firefox \
 --config=patcher-configs/mozRelease-branch-patcher2-758795.cfg \
  2>&1 | tee logs/12.0-14.0.1/create-partials.log

## Make a backup of the new partials/snippets, destroy snippets (< 1 min)
rsync -a temp/firefox/12.0-14.0.1{,-unsigned}/
rm -rf temp/firefox/12.0-14.0.1/aus2*

## Sign the mar files (< 1 min)
# get a token
# look up the values for --user in the release-signing part of passwords.py, on the master
unset HISTFILE
IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'`
ssh -oBatchMode=no cltbld@buildbot-master12.build.mozilla.org \
  "curl --fail -k -Fslave_ip=$IP -Fduration=3600 --user reda:cted \
   https://signing1.build.scl1.mozilla.com:9120/token" \
     > /builds/slave/rel-m-rel-updates/token
rm /builds/slave/rel-m-rel-updates/nonce

# update the channel id and version, then sign (8 min)
(for f in `find temp/firefox/12.0-14.0.1/ftp -type f -name *partial.mar | sort`; do
  echo Signing $f
  mozilla/obj/dist/host/bin/mar -H firefox-mozilla-release -V 14.0.1 -i $f;
  /tools/python-2.6.5/bin/python \
    /builds/slave/rel-m-rel-updates/tools/release/signing/signtool.py \
    -t /builds/slave/rel-m-rel-updates/token -n /builds/slave/rel-m-rel-updates/nonce \
    -c /builds/slave/rel-m-rel-updates/tools/release/signing/host.cert \
    -H signing1.build.scl1.mozilla.com:9120 -H signing2.build.scl1.mozilla.com:9120 -f gpg -f mar \
    "$f"
done ) 2>&1 | tee logs/12.0-14.0.1/sign-partials.log

## Regenerate the snippets (1 min)
perl patcher2.pl --create-patchinfo \
  --app=firefox --brand=Firefox \
  --config=patcher-configs/mozRelease-branch-patcher2-758795.cfg \
  2>&1 | tee logs/12.0-14.0.1/generate_snippets.log

# Snippet verification (<1 min)
cd temp/firefox/12.0-14.0.1
bash /builds/slave/rel-m-rel-updates/tools/release/compare-channel-snippets.sh \
  aus2 release aus2.test  releasetest

# Tidy and upload mar files (3 min)
find ftp/firefox/nightly/14.0.1-candidates/build1 -type f -exec chmod 644 {} \; 
find ftp/firefox/nightly/14.0.1-candidates/build1 -type d -exec chmod 755 {} \;
rsync -nav -e 'ssh -oIdentityFile=~/.ssh/ffxbld_dsa' '--exclude=*complete.mar' \
  ftp/firefox/nightly/14.0.1-candidates/build1/update \
  ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/nightly/14.0.1-candidates/build1/
# then repeat without the -n

# Upload snippets (1 min)
rsync -av -e 'ssh -oIdentityFile=~/.ssh/auspush' --exclude=complete.txt \
 aus2.test/ \
 ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-14.0.1-build1-test
rsync -av -e 'ssh -oIdentityFile=~/.ssh/auspush' --exclude=complete.txt \
 aus2/ \
 ffxbld@aus3-staging.mozilla.org:/opt/aus2/snippets/staging/Firefox-14.0.1-build1
# aus3-staging
backupsnip Firefox-14.0.1-build1-test
pushsnip   Firefox-14.0.1-build1-test

Forced update verify builders.

Generate release-cck-mozilla11/12 snippets

By duplicating the 13.0.1 release/releasetest snippets and modifying the bouncer product, see bug for more info.

# ffxbld@aus3-staging
cd /opt/aus2/snippets/staging
mkdir -p Firefox-14.0.1-build1-funnelcake11_12-test/Firefox
rsync -a --exclude=Linux* --exclude=betatest \
  Firefox-14.0.1-build1{,-funnelcake11_12}-test/Firefox/13.0.1/
for d in `find Firefox-14.0.1-build1-funnelcake11_12-test -mindepth 6 -type d`; do
  mv $d $d-cck-mozilla11
  rsync -a $d-cck-mozilla11/ $d-cck-mozilla12/
  sed -i -e 's/\-complete/-complete-funnelcake11/' \
            -e 's/-partial-13\.0\.1/-partial-13.0.1-funnelcake11/' $d-cck-mozilla11/*.txt
  sed -i -e 's/\-complete/-complete-funnelcake12/' \
            -e 's/-partial-13\.0\.1/-partial-13.0.1-funnelcake12/' $d-cck-mozilla12/*.txt
done
 
rsync -a Firefox-14.0.1-build1-funnelcake11_12{-test,}/
for d in `find Firefox-14.0.1-build1-funnelcake11_12 -mindepth 6 -type d`; do
  mv $d ${d/releasetest/release}
done

backupsnip Firefox-14.0.1-build1-funnelcake11_12-test
pushsnip   Firefox-14.0.1-build1-funnelcake11_12-test

Update verify

Automated verify running...

12.0 partial

On mw32-ix-slave07 stop buildbot slave and to this in terminal via VNC

# windows
cd /e/builds/moz2_slave

# all platforms
mkdir bug758795; cd $_
hg clone http://hg.mozilla.org/build/tools scripts
hg -R scripts update -C -r FIREFOX_14_0_1_RELEASE_RUNTIME

cd scripts/release/updates/
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=642483 | patch -p3

bash verify.sh -c mozRelease-firefox-win32-758795.cfg 2>&1 |tee uv.log; echo $?

Running ...