Thunderbird3.0a1:BuildNotes

From MozillaWiki
Jump to: navigation, search

« Back to Thunderbird 3 Alpha 1 Release Page

Build Engineers

rick, nthomas

Bug bug 411171 is no longer to be considered a blocker for the 3.0a1 release. Will try to build and upload the symbols manually.

Bonsai queries

Last checkins for alpha 1:

  • cvsroot -
  • l10n -

Bugs

Tracking bug for Thunderbird 3.0a1 - bug 431788

Tags

Note: Thunderbird alpha tags to be reviewed. rick 2008-05-01

Module Tag Pull date
cvsroot/mozilla GECKO19_20080506_RELBRANCH HEAD @ 2008-05-01 03:00 PDT
THUNDERBIRD_3_0a1_BUILD1 GECKO19_20080506_RELBRANCH @ 2008-05-06 15:25 PDT
THUNDERBIRD_3_0a1_RELEASE GECKO19_20080506_RELBRANCH @ 2008-05-06 15:25 PDT
l10n/l10n not tagged, no locales for this release

Build data

Type Build ID SHA1 Push date Build machine
[Windows installer] en-US: tbnewref-win32-tbox
[Mac compressed] en-US: bm-xserve07
[Linux compressed] en-US: tb-linux-tbox

Build 1

Bootstrap tag: RELEASE_AUTOMATION_M9

Setup before starting:

  • create release branch of tinder-config.pl and mozconfig (for b2: compare nightly and release mozconfig/tinder-config.pl files, merge any desired changes)
  • On bm-xserve07, tb-linux-tbox, tbnewref-win32-tbox, set up the Bootstrap code
cd /builds/   # /e/builds/ on windows
cvs -d tbirdbld@cvs.mozilla.org:/cvsroot co -d release -r RELEASE_AUTOMATION_M9 mozilla/tools/release
cd release/configs
cvs up -A     # in case we need to make changes later
cd ..
ln -s configs/tb-moz19-bootstrap.cfg bootstrap.cfg
mkdir -p old-logs/logs.tb30a1/build1
ln -s old-logs/logs.tb30a1/build1 logs

make test

Some machines don't have the perl module Config::General so comment out

use Config::General;

at the top of Bootstrap/Step/PatcherConfig.pm. This needed to be commented out on tb-linux-tbox which will be used for the Tag and Source steps.

  • On bm-xserve07, tb-linux-tbox, tbnewref-win32-tbox, stop running tinderbox and set up tinderbox directories (when ready to actually start the builds)
cd /builds/tinderbox/mozilla/tools/tinderbox
cvs up -r RELEASE_AUTOMATION_M9
# on linux and mac (skip to windows otherwise)
cd /builds/tinderbox
mkdir Tb-Mozilla1.9-Release
cd Tb-Mozilla1.9-Release
../mozilla/tools/tinderbox/install-links
# on windows
cd /e/
mkdir tb19rel
cd tb19rel
<copy in files from tinderbox dir>
# all platforms
rm tinderbox
cvs -d tbirdbld@cvs.mozilla.org:/cvsroot co -r release -d tinderbox-configs mozilla/tools/tinderbox-configs/thunderbird/linux # or macosx or win32
ln -s tinderbox-configs/mozconfig
ln -s tinderbox-configs/tinder-config.pl
  • on tb-linux-tbox (once off setup for Stage)
# as root
mkdir -p /data/cltbld
chown cltbld:cltbld /data/cltbld
ln -s /builds/release/bin /data/cltbld

Tag

On tb-linux-tbox in /builds/release:

./release -o Tag 2>&1 | tee logs/release-Tag-RC1.log

Failed

Died right off the bat. This was because the /builds/logs directory did not exist. This directory was created with 775 and owned by cltbld:cltbld.

The /builds/tags/THUNDERBIRD_3_0a1_BUILD1/ directory, which was created by the first failed run, was also removed. The Tag command was then re-run.

Failed a second time

The tagging itself went without incident. When it came time to bump the version.txt, the |cvs ci| failed with

The tbirdbld account is not permitted to check-in to this CVS repository.
If you think it should be allowed to do so, please contact
the system administrators at sysadmins@mozilla.org.
cvs commit: Pre-commit check failed

Manual rescue is in progress by nthomas.

  • fixed client.mk - where LDAPCSDK_CO_TAG had been replaced incorrectly (recent regression from bug 426083)
  • set config/milestone.txt back to 1.9pre
  • checked into relbranch, logging to /builds/release/logs/release-Tag-RC1-manual.log
  • in /builds/tags/THUNDERBIRD_3_0a1_BUILD1/cvsroot/mozilla/
echo "Tagging THUNDERBIRD_3_0a1_BUILD1" >> /builds/release/logs/release-Tag-RC1-manual.log
cvs -d cltbld@cvs.mozilla.org:/cvsroot tag THUNDERBIRD_3_0a1_BUILD1 | tee -a /builds/release/logs/release-Tag-RC1-manual.log
echo >> /builds/release/logs/release-Tag-RC1-manual.log
echo "Tagging THUNDERBIRD_3_0a1_RELEASE" >> /builds/release/logs/release-Tag-RC1-manual.log
cvs -d cltbld@cvs.mozilla.org:/cvsroot tag THUNDERBIRD_3_0a1_RELEASE | tee -a /builds/release/logs/release-Tag-RC1-manual.log
  • skipped tagging l10n as not building any locales (need to add a shipped-locales on trunk though)
  • put back symlinks in ~/.ssh to tbirdbld

Source

On tb-linux-tbox in /builds/release:

./release -o Source 2>&1 | tee logs/release-Source-RC1.log

Build

1. Stop tinderbox

# on linux & mac
cd /builds/tinderbox
./tinderbox multi stop  # ps -ef | auxww to see check for tinderbox stopped and kill otherwise
# on windows
# ^C in the msys window where multi-tinderbox is running

2. Update tinderbox code to the latest release automation milestone

# on linux and mac
cd /builds/tinderbox/mozilla/tools/tinderbox
# on win32
cd /e/builds/tinderbox/mozilla/tools/tinderbox
# all
cvs up -r RELEASE_AUTOMATION_M9

3. Symlink the ssh keys

cd ~/.ssh
rm id_dsa; ln -s cltbld_dsa id_dsa
rm id_dsa.pub; ln -s cltbld_dsa.pub id_dsa.pub

4. Create the tinderbox build directories

# on linux and mac (skip to windows otherwise)
cd /builds/tinderbox
mkdir Tb-Mozilla1.9-Release
cd Tb-Mozilla1.9-Release
../mozilla/tools/tinderbox/install-links
rm tinderbox
# on windows
cd /e/
mkdir tb19rel
cd tb19rel
cp /e/builds/tinderbox/mozilla/tools/tinderbox/{build-seamonkey.pl,build-seamonkey-util.pl,gettime.pl,bloatdiff.pl,tinder-defaults.pl,reportdata.pl,post-mozilla-rel.pl,post-mozilla-l10n.pl} .
cp post-mozilla-rel.pl post-mozilla.pl
# all platforms
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r release -d tinderbox-configs mozilla/tools/tinderbox-configs/thunderbird/linux # or macosx or win32
ln -s tinderbox-configs/mozconfig
ln -s tinderbox-configs/tinder-config.pl

5. Checkout the release code and set up log dir, log and bootstrap links

cd /builds
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -d release -r RELEASE_AUTOMATION_M9 mozilla/tools/release
cd release/configs
cvs up -A
cd ..
rm bootstrap.cfg logs
ln -s configs/tb-moz19-bootstrap.cfg bootstrap.cfg
mkdir -p old-logs/logs.tb30a1/rc1
ln -s old-logs/logs.tb30a1/rc1 logs
mkdir -p /builds/logs

make test

Then start the build, by changing directory to /builds/release (prefix with /e/ on Windows) and

./release -o TinderConfig 2>&1 | tee logs/release-TinderConfig.log
./release -o Build 2>&1 | tee logs/release-Build.log

After the build is complete, switch the keys back to tbirdbld, cvs up -A in /builds/tinderbox/mozilla/tools/tinderbox and restart tinderbox

TinderConfig Step Failures

All platforms had the error (or similar to):

Step TinderConfig died: Bootstrap::Config::Bump - Could not open /builds/config/thunderbird-3.0a1-build1/l10n_release/tinder-config.pl for reading: No such file  or directory at Bootstrap/Config.pm line 334

since we are only building en-US for the alpha build. As nthomas notes,

14:53:35 <rick> and it's done.  again with same l10n_release/tinder-config.pl issue
14:53:47 <nthomas> lets just make a note of that
14:54:12 <nthomas> We need some sort of createLocales flag in the bootstrap config  
                   to disable all this stuff

All tinder-config.pl generated by the TinderConfig step look good. Proceeding with the Build step itself.

Build Step

All Build steps are away and running. MozillaRelease

MacOSX: 2008-05-07 14:45 PDT
Linux: 2008-05-07 15:00 PDT
Windows: 2008-05-07 15:25 PDT

The builds succeeded on all platforms. However, since the Source step had been run with the tbirdbld sshUser, the directories on stage-old.m.o were created with the wrong permissions. This Build step ran with the cltbld sshUser and thus didn't have access to the folders on stage-old.m.o.

The ownership was fixed on stage-old.m.o and the Build push step was re-run on the linux and mac boxes. The windows box had no problem as the ownership issues were fixed before the windows build had gotten to the point of pushing the build out to stage-old.m.o.

This was done by running

./release -o Build -p 2>&1 | tee logs/release-Build-push.log

buildsymbols failure on mac and how to do them manually

The buildsymbols problem, bug 411171 did occur during the build. After the Build push above was done, vnc'd into the mac and ran:

make -C /builds/tinderbox/Tb-Mozilla1.9-Release/Darwin_8.8.4_Depend/mozilla/../build/universal/ppc buildsymbols

and that ran fine. Then ran,

make -C /builds/tinderbox/Tb-Mozilla1.9-Release/Darwin_8.8.4_Depend/mozilla/../build/universal/ppc  uploadsymbols

and that failed since a number of environment variables were not defined. (They are defined in the tinder-config.pl which is used by the post-mozilla-rel.pl script to run these two make commands). After poking about a bit, it looks like all that should need to be done to upload the symbols is:

SYMBOL_SERVER_HOST='stage-old.mozilla.org' \
SYMBOL_SERVER_USER='tbirdbld' \
SYMBOL_SERVER_PATH='/mnt/netapp/breakpad/symbols_tbrd' \
SYMBOL_SERVER_SSH_KEY='/Users/cltbld/.ssh/tbirdbld_dsa' \ 
make -C /builds/tinderbox/Tb-Mozilla1.9-Release/Darwin_8.8.4_Depend/build/universal/ppc uploadsymbols

I will verify this with nthomas before running it. My biggest concern at this point is that the uploadsymbols did run previously and I'm not sure whether something needs to be cleaned up on stage-old.m.o first before running this again.

Symbols have been uploaded. 2008-05-08 8:25 AM PDT

Bump version numbers

Bump the version number to 3.0a2pre in

mozilla/mail/app/module.ver
mozilla/mail/config/version.txt
mozilla/tools/tinder-configs/monitoring/Thunderbird_trunk.txt

Stage

Did this manually as we don't have a shipped-locales file for Thunderbird yet.

# on stage as cltbld
mkdir /data/cltbld/thunderbird-3.0a1
cd /data/cltbld/thunderbird-3.0a1

# borrow from a previous release
rsync -av /data/cltbld/thunderbird-2.0.0.14/batch-skel/stage/ stage-merged/

# get all the files and remove strays
mkdir -p batch1/stage-unsigned
cd batch1/stage-unsigned
rsync -av /pub/mozilla.org/thunderbird/nightly/3.0a1-candidates/build1/ .
rm -rf unsigned/ *.log *.txt

# Rename the installers/archives
mkdir -p source {mac,linux-i686,win32}/en-US
mv thunderbird-3.0a1-source.tar.bz2 source/
mv thunderbird-3.0a1.en-US.linux-i686.tar.bz2 linux-i686/en-US/thunderbird-3.0a1.tar.bz2
mv thunderbird-3.0a1.en-US.mac.dmg mac/en-US/Thunderbird\ 3.0\ Alpha\ 1.dmg
mv thunderbird-3.0a1.en-US.win32.installer.exe win32/en-US/Thunderbird\ Setup\ 3.0\ Alpha\ 1.exe

# rename the update files (not actually used)
cd ..
mkdir -p mar/update/{linux-i686,mac,win32}/en-US
mv stage-unsigned/*.mar mar/
mv mar/thunderbird-3.0a1.en-US.linux-i686.complete.mar mar/update/linux-i686/en-US/thunderbird-3.0a1.complete.mar
mv mar/thunderbird-3.0a1.en-US.mac.complete.mar mar/update/mac/en-US/thunderbird-3.0a1.complete.mar
mv mar/thunderbird-3.0a1.en-US.win32.complete.mar mar/update/win32/en-US/thunderbird-3.0a1.complete.mar

# fix up permissions 
find . -type f -exec chmod -v 644 {} \;
find . -type d -exec chmod -v 755 {} \;
chown -R cltbld:thunderbird *

rsync -av stage-unsigned/ stage-signed/

Sign Installers

  • pull stage:/data/cltbld/thunderbird-3.0a1/batch1/stage-signed/ to signing machine
  • follow installer-signing-instructions here
  • push signed bits back to same location on stage
  • complete stage-merged:
# on stage
cd /data/cltbld/thunderbird-3.0a1/
rsync -av batch1/mar/ stage-merged/
rsync -av batch1/stage-signed/ stage-merged/
  • Create MD5 and SHA1 checksum files
# on stage as cltbld
cd /data/cltbld/thunderbird-3.0a1/stage-merged/
~/bin/checksum-files .
  • Fix permissions & ownership (on the detached sigs and the two SUM files respectively)
chown -R cltbld:thunderbird .
chmod 644 *SUMS

Release

  • get the last formal "go" from Thunderbird QA & release-drivers
  • push the stage-merged directory to the releases area :
# on stage
rsync -av /data/cltbld/thunderbird-3.0a1/stage-merged/ /home/ftp/pub/thunderbird/releases/3.0a1/
  • Update /etc/rsyncd-mozilla-current.exclude on surf and dm-stage02 - not critical that this happens immediately. Skipped for alpha release, we don't need the extra mirror coverage

Update Bouncer

  • Add entries to download.mozilla.org