Releases/Fennec 4.0rc1/BuildNotes

From MozillaWiki
Jump to: navigation, search

Build Engineers

lsblakk, aki - bug 639948

Bugs encountered

Signed-off Revision(s)

Build # mozilla-2.1 mobile-2.0
build 1 e273946b74c8 6b93fd7423c4
build 2 a48366b88253 fc47c4a659b1
build 3 a0181e3f66fe 606c14460ded

Tags

Build # Tag Moz Changeset Mobile Changeset
build 1 GECKO21_20110317_RELBRANCH 8639357d83cd a6524aca9256
FENNEC_4_0rc1_BUILD1, FENNEC_4_0rc1_RELEASE 8639357d83cd a6524aca9256
build 2 GECKO21_20110317_RELBRANCH [[1]] [[2]]
FENNEC_4_0rc1_BUILD2, FENNEC_4_0rc1_RELEASE [[3]] [[4]]
build 3 GECKO21_20110317_RELBRANCH, FENNEC_4_0rc1_BUILD3, FENNEC_4_0rc1_RELEASE [[5]] [[6]]

Build data

Build # Type Build ID Build machine
build 1 Android
Maemo5-GTK
Linux
Mac
Windows

Notes

Build 1

Setup

#On an idle slave,
cd /builds/slave
mkdir rc1-sync
wget -O- http://hg.mozilla.org/mozilla-central/raw-file/tip/browser/locales/shipped-locales  | grep -v en-US | cut -f1 -d" " > locales.txt
wget http://hg.mozilla.org/mobile-browser/raw-file/default/locales/all-locales
diff all-locales locales.txt
# Note that all-locales is *not* a subset of shipped-locales
mv all-locales locales.txt
wget http://hg.mozilla.org/mobile-browser/raw-file/default/locales/maemo-locales
diff maemo-locales locales.txt
# Note that maemo-locales *is* a subset of all-locales
# Checked with Axel that pushing the all-locales repos is good.
hg clone http://hg.mozilla.org/mozilla-central
hg clone http://hg.mozilla.org/mobile-browser
cd mozilla-central
hg push -e 'ssh -i ~/.ssh/ffxbld_dsa' --new-branch ssh://ffxbld@hg.mozilla.org/releases/mozilla-2.1
cd ../mobile-browser
hg push -e 'ssh -i ~/.ssh/ffxbld_dsa' --new-branch ssh://ffxbld@hg.mozilla.org/releases/mobile-2.0
cd ..
for i in `cat locales.txt`; do hg clone http://hg.mozilla.org/l10n-central/$i; done
for i in `cat locales.txt`; do hg -R $i push -e 'ssh -i ~/.ssh/ffxbld_dsa' ssh://ffxbld@hg.mozilla.org/releases/l10n-mozilla-2.0/$i; done

l10n changesets

We ran into a pretty large rathole in https://l10n-stage-sj.mozilla.org/shipping/milestones however: the dashboard was claiming Fennec 4.0 beta5 instead of RC1.

Stuart and I talked with Stas in #l10n and he created a Fennec 4.0RC milestone, which seems to show that https://bugzilla.mozilla.org/attachment.cgi?id=519817&action=diff is accurate. However, Stuart thinks the dashboard is questionable enough that he's waiting for Axel.

Axel came online ~1am PDT and answered questions.

  • repushed ja:
cd /builds/slave/rc1-sync/
cd ja
hg pull -u
hg push -e 'ssh -i ~/.ssh/ffxbld_dsa' ssh://ffxbld@hg.mozilla.org/releases/l10n-mozilla-2.0/ja
# verify that the repo looks right

Start

  • merged to production branch
  • updated configs-default + buildbotcustom on pm02, reconfiged
  • sendchange:
buildbot sendchange --user aki --master localhost:9010 --branch=releases/mobile-2.0 "Fennec 4.0rc1 build1" go

Tag

moz2-linux-slave42: failed on gd.

  • clobbered moz2-linux-slave42
  • backed up /builds/buildbot/configs-default/mozilla2/l10n-changesets_mobile-2.0.json
  • edited l10n-changesets_mobile-2.0.json to remove all locales up to gd
  • reconfiged
  • mobile_tag force build

moz2-linux-slave43: failed on mobile-2.0 hg out; that's ok. buildbot-0.8 releases will save us from all of this!

  • backed out l10n-changesets_mobile-2.0.json changes
  • added a dummy tag factory
  • reconfiged
  • sendchange:
buildbot sendchange --user aki --master localhost:9010 --branch=releases/mobile-2.0 "Fennec 4.0rc1 build1 part 2" go

Source

moz2-linux-slave45

No problems

Build/Repack

mobile_win32-i686_desktop_build mobile_linux-i686_desktop_build mobile_macosx-i686_desktop_build android-r7 maemo5-gtk
win32-slave46 moz2-linux-slave44 moz2-darwin9-slave45 moz2-linux-slave41 moz2-linux-slave43
20110317043755 20110317041011 20110317045121 20110317043525 20110317042033
repack

l10n: no problems.

partner repack: broken.

RESPIN due to bad l10n bits

Build 2

Setup

Since there are new changes in l10n-central that need to be pushed to l10n-mozilla-2.0:

cd /builds/slave/rc1-sync/
for i in `cat locales.txt`; do hg -R $i pull -u; done
for i in `cat locales.txt`; do hg -R $i push -e 'ssh -i ~/.ssh/ffxbld_dsa' ssh://ffxbld@hg.mozilla.org/releases/l10n-mozilla-2.0/$i; done
  • clobbered mv-moz2-linux-ix-slave{18,19,21} and moz2-linux-slave43
  • landed partner repack fix

l10n changesets

Start

  • landed configs
  • cleared dummy factory from pm02, updated configs-default, buildbotcustom
  • reconfiged pm02
  • sendchange:
buildbot sendchange --user aki --master localhost:9010 --branch=releases/mobile-2.0 "Fennec 4.0rc1 build2" go

Tag

moz2-linux-slave41

No problems.

Source

mv-moz2-linux-ix-slave18

no problems.

Build/Repack

mobile_win32-i686_desktop_build mobile_linux-i686_desktop_build mobile_macosx-i686_desktop_build android-r7 maemo5-gtk
win32-slave46 mv-moz2-linux-ix-slave21 moz2-darwin9-slave45 mv-moz2-linux-ix-slave19 moz2-linux-slave45
20110317161754
repack

Sign Android

ffxbld@stage
mkdir /home/ftp/pub/mobile/candidates/4.0rc1-candidates/build2/android-r7
 # on keymaster in ~/signing-work
 mkdir fennec-4.0rc1
 cd fennec-4.0rc1/

 # we sign both en-US and multi 
 # need sep dirs since they are both named gecko-unsigned-unaligned.apk
 mkdir -p build2/en-US
 mkdir build2/multi
 
 # get en-US apk
 cd build2/en-US/
 wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/4.0rc1-candidates/build2/unsigned/android-r7/en-US/gecko-unsigned-unaligned.apk
 
 # get multi apk 
 cd ../multi/
 wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/4.0rc1-candidates/build2/unsigned/android-r7/gecko-unsigned-unaligned.apk
 
 # put the signing script in the ~/signing-work/fennec-4.0rc1/ dir
 cd  ~/signing-work/fennec-4.0rc1/
 cp ~/hg-tools/release/signing/* .
 
 # copy the en-US apk up to pwd for signing -- there is a bug on this 
 # (608432), it's because sign_android.sh relies on mozpass.py and that has to
 # be in the same dir as .apk to work
 cp build2/en-US/gecko-unsigned-unaligned.apk .
 ./sign_android.sh 

 * if any problems with signing, remove gecko-unaligned.apk and start again

 # signing successful?  copy back to the en-US
 mv gecko-unaligned.apk build2/en-US/

 # rename the fennec.apk, then move
 mv fennec.apk fennec-4.0rc1.en-US.eabi-arm.apk
 mv fennec-4.0rc1.en-US.eabi-arm.apk build2/en-US/
 
 # clean up any left overs  
 rm *.apk

 # repeat for multi
 cp build2/multi/gecko-unsigned-unaligned.apk .
 ./sign_android.sh 
 mv gecko-unaligned.apk build2/multi/
 mv fennec.apk fennec-4.0rc1.multi.eabi-arm.apk
 mv fennec-4.0rc1.multi.eabi-arm.apk build2/multi/
 rm *.apk

 # upload to stage
 cd build2/ 
 scp -i ~/.ssh/ffxbld_dsa -r * ffxbld@stage.mozilla.org:/home/ftp/pub/mobile/candidates/4.0rc1-candidates/build2/android-r7

Deb Repos

Full stop here due to a security issue bug 642395 and then also some last-minute mobile code changes for lang repack issues bug 642755

Build 3

Setup

  • debsign bumps
  • config bumps
  • set pm02 to clobber
  • manual clobber of mv-moz2-linux-ix-slave18 mobile_source dir
  • landed configs and merged to production
  • pull in configs-default on pm02
  • reconfig moz2-master
  • sendchange:
buildbot sendchange --user lsblakk --master localhost:9010 --branch=releases/mobile-2.0 "Fennec 4.0rc1 build3" go

l10n changesets

same as last build

Tag

moz2-linux-slave43

No problems.

Tagged buildbot-configs, buildbotcustom, tools, and mozharness with FENNEC_4_0rc1_BUILD3 and _RELEASE

Source

got slow non-ix slave timeout fail. waiting for repacks to finish to try and get an ix slave to do source.

Build/Repack

repack

no problems

partner repack

no problems

Sign Android

Ran this as fennec_sign.sh:

#!/bin/bash
cd ~/signing-work/fennec-4.0rc1/
mkdir -p build3/en-US
mkdir build3/multi
cd build3/en-US/
wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/4.0rc1-candidates/build3/unsigned/android-r7/en-US/gecko-unsigned-unaligned.apk
cd ../multi/
wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/4.0rc1-candidates/build3/unsigned/android-r7/multi/gecko-unsigned-unaligned.apk
cd  ~/signing-work/fennec-4.0rc1/
cp ~/hg-tools/release/signing/* .
cp build3/en-US/gecko-unsigned-unaligned.apk .
./sign_android.sh 
mv gecko-unaligned.apk build3/en-US/
mv fennec.apk fennec-4.0rc1.en-US.eabi-arm.apk
mv fennec-4.0rc1.en-US.eabi-arm.apk build3/en-US/
rm *.apk
cp build3/multi/gecko-unsigned-unaligned.apk .
./sign_android.sh 
mv gecko-unaligned.apk build3/multi/
mv fennec.apk fennec-4.0rc1.multi.eabi-arm.apk
mv fennec-4.0rc1.multi.eabi-arm.apk build3/multi/
rm *.apk
cd build3/ 
scp -i ~/.ssh/ffxbld_dsa -r * ffxbld@stage.mozilla.org:/home/ftp/pub/mobile/candidates/4.0rc1-candidates/build3/android-r7

Deb Repos

Failed - turned out debsign had been failing on nightlies since a 0.3 Mozharness merge on March 5, 2011 - Aki put together a patch which was landed and the next force build went fine.

  • Aki put together another patch in bug 642992 that addresses missing en-US and multi repos, but was able to manually run that patch for rc1 build 3.

Push Live

Copy bits to releases/
 # ffxbld@stage /home/ftp/pub/mobile/releases
 mkdir 4.0rc1
 cd 4.0rc1

 # exclude *old* to avoid copying in the old original android apk
 # exclude maemo5-gtk to skip single locale repacks
 rsync --dry-run -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../candidates/4.0rc1-candidates/build3/. .
 rsync -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../candidates/4.0rc1-candidates/build3/. .
 mkdir maemo5-gtk
 cd maemo5-gtk
 rsync --dry-run -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* ../../../candidates/4.0rc1-candidates/build3/maemo5-gtk/multi .
 rsync -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../../candidates/4.0rc1-candidates/build3/maemo5-gtk/multi .
 cd ..

 # and repos
 mkdir repos
 rsync -av --exclude=*.install ../../candidates/4.0rc1-candidates/repos/ repos/

 # symlink repos
 ln -s repos maemo
 cd ..
 rm latest-*; ln -s 4.0rc1 latest-beta; ln -s 4.0rc1 latest-alpha

 # link freemantle to chinook for multi deb repo
 # in /home/ftp/pub/mobile/releases/4.0rc1/maemo/multi/dists
 ln -s freemantle chinook
Create new .install files
# in mobile/releases/maemo/
LOCALES=`find . -maxdepth 1 -mindepth 1 -type d`
for locale in $LOCALES; do
  rm $locale/firefox.install
  (cd $locale; ln -s firefox-fremantle.install firefox.install)
  ls -l $locale/firefox.install
done
Create bouncer entry for maemo
# did not create android link as bits are stored on android market
Firefox-Mobile-4.0rc1	maemo	/mobile/releases/maemo/:lang/firefox-beta.install

Push Final Live

Copy bits to releases/

First I fixed a few things:

  • remove all deb repos except multi
  • rename the android apks to s,4.0rc1,4.0,
# ffxbld@stage /home/ftp/pub/mobile/releases
mkdir 4.0
cd 4.0
rsync -azv ../4.0rc1/. .
Create new .install files

Already done for rc1

Create bouncer entry for maemo
# did not create android link as bits are stored on android market
# Hardcoding multi due to no single locale debs
Firefox-Mobile-4.0	maemo	/mobile/releases/maemo/multi/firefox.install
Create softlinks
cd /home/ftp/pub/mobile/releases
rm latest-alpha
ln -s 4.0 latest-alpha
rm latest-beta
ln -s 4.0 latest-beta
ln -s 4.0 latest