Firefox 3.0:BuildNotes

From MozillaWiki
Jump to: navigation, search

Build Engineers

nthomas

Notes

The aim is to prepare a firefox/releases/3.0/ directory with appropriately named copies of the files from the RC3.

Stage & Rename files

# cltbld@stage
mkdir /data/cltbld/firefox-3.0
cd /data/cltbld/firefox-3.0
rsync -av --exclude='*partial.mar' /pub/mozilla.org/firefox/releases/3.0rc3/ .
rm *SUMS
rm -rvf contrib/solaris*
find linux-i686 source update -type f | perl -nle '$nf = $_; if ( $nf =~ s/rc3// ) { system("mv","-v",$_,$nf)}' 
find mac win32 -type f | perl -nle '$nf = $_; if ( $nf =~ s/\ RC\ 3// ) { system("mv","-v",$_,$nf)};'

~/bin/verify-locales.pl -m ~/firefox-3.0rc3/batch1/config/shipped-locales -l bz2

~/bin/checksum-files .
chown -R cltbld:firefox .
chmod 644 *SUMS

Verification:

find /pub/mozilla.org/firefox/releases/3.0rc3/ -type f | perl -nle '$a = substr($_,41); $a =~ s/rc3//; $a =~ s/\ RC\ 3//; system("diff","-q",$_,$a);'

# Output:
diff: contrib/solaris_pkgadd/firefox-3.0.en-US.opensolaris-sparc-pkg.bz2.cksum: No such file or directory
diff: contrib/solaris_pkgadd/firefox-3.0.en-US.opensolaris-i386-pkg.bz2: No such file or directory
diff: contrib/solaris_pkgadd/firefox-3.0.en-US.opensolaris-sparc-pkg.bz2: No such file or directory
diff: contrib/solaris_pkgadd/firefox-3.0.en-US.opensolaris-i386-pkg.bz2.cksum: No such file or directory
diff: contrib/solaris_tarball/README.txt: No such file or directory
diff: contrib/solaris_tarball/firefox-3.0.en-US.opensolaris-sparc.tar.bz2.cksum: No such file or directory
diff: contrib/solaris_tarball/firefox-3.0.en-US.opensolaris-i386.tar.bz2: No such file or directory
diff: contrib/solaris_tarball/firefox-3.0.en-US.opensolaris-i386.tar.bz2.cksum: No such file or directory
diff: contrib/solaris_tarball/firefox-3.0.en-US.opensolaris-sparc.tar.bz2: No  such file or directory
Files /pub/mozilla.org/firefox/releases/3.0rc3/MD5SUMS and MD5SUMS differ
Files /pub/mozilla.org/firefox/releases/3.0rc3/SHA1SUMS and SHA1SUMS differ
diff: update/mac/af/firefox-3.0rc2-3.0.partial.mar: No such file or directory
diff: update/mac/ar/firefox-3.0rc2-3.0.partial.mar: No such file or directory
...
diff: update/mac/zh-CN/firefox-3.0rc2-3.0.partial.mar: No such file or directory
diff: update/mac/zh-TW/firefox-3.0rc2-3.0.partial.mar: No such file or directory

Which is fine (we removed the contrib files, don't want the partial mars, and the filename changes appear in the SUMS file).

Add index.html

Add the text beltzner provided to index.html, check validation, and do

for dir in `find . -type d -mindepth 1 | grep -v contrib`; do cp -p index.html $dir/; done

Setup bouncer

  • setup done manually.

Push to mirrors

  • push the covering index.html in the top level (Monday 0900 PDT)
# on stage
rsync -av /data/cltbld/firefox-3.0/index.html /home/ftp/pub/firefox/releases/3.0/
  • push the stage-merged directory to the releases area (Tuesday 0010 PDT)
# on stage
rm -v /data/cltbld/firefox-3.0/source/firefox*
rsync -av /data/cltbld/firefox-3.0/ /home/ftp/pub/firefox/releases/3.0/

Update rsync modules

From /pub/mozilla.org/zz/rsyncd-mozilla-current.exclude remove

+ firefox/releases/1.5.0.12
+ firefox/releases/1.5.0.12/**

and added

+ firefox/releases/3.0     
+ firefox/releases/3.0/**

FIXME: need a way to provide major update to the laggard Fx1.5.0.x users

Tag with FIREFOX_3_0_RELEASE

On fx-linux-1.9-slave2:

# cvsroot
mkdir -p /builds/tags/FIREFOX_3_0_RELEASE/cvsroot
cd /builds/tags/FIREFOX_3_0_RELEASE/cvsroot
cvs -d cltbld@cvs.mozilla.org:/cvsroot  co -r FIREFOX_3_0rc3_RELEASE mozilla 2>&1 | tee checkout.log
cd mozilla
cvs up -r GECKO19_20080529_RELBRANCH client.mk
# edit client.mk and replace 5 instances of FIREFOX_3_0rc3_RELEASE with FIREFOX_3_0_RELEASE
cvs ci -m "Bump tags in client.mk for final 3.0 tag (FIREFOX_3_0_RELEASE)" client.mk
cvs tag FIREFOX_3_0_RELEASE 2>&1 | tee tag-FIREFOX_3_0_RELEASE.log
cvs -q -d cltbld@cvs.mozilla.org:/cvsroot rdiff -r FIREFOX_3_0rc3_RELEASE -r FIREFOX_3_0_RELEASE mozilla 2>&1 | tee ../rdiff.log

# l10n
mkdir -p /builds/tags/FIREFOX_3_0_RELEASE/l10n
cd /builds/tags/FIREFOX_3_0_RELEASE/l10n
cvs -d cltbld@cvs.mozilla.org:/l10n  co -r FIREFOX_3_0rc3_RELEASE l10n 2>&1 | tee checkout.log
cd l10n
cvs tag FIREFOX_3_0_RELEASE 2>&1 | tee ../tag-FIREFOX_3_0_RELEASE.log

Update source tarball and push

On stage:

mkdir -p /tmp/source/firefox-3.0
cd /tmp/source/firefox-3.0
rsync -av /pub/mozilla.org/firefox/releases/3.0rc3/source/firefox-3.0rc3-source.tar.bz2 .
tar xfj firefox-3.0rc3-source.tar.bz2
cd mozilla
cvs -q up -r FIREFOX_3_0_RELEASE
cd ..
tar cfj firefox-3.0-source.tar.bz2 mozilla
rsync -av firefox-3.0-source.tar.bz2 /data/cltbld/firefox-3.0/source/

Pull the source tarball down to the signing machine, generate a gpg sig, and push it back

mkdir -p ~/signing-work/firefox-3.0
cd ~/signing-work/firefox-3.0
rsync -av cltbld@stage.mozilla.org:~/firefox-3.0/source/ stage-unsigned/
rsync -av stage-unsigned/ stage-signed/
cd stage-signed/
sign-files .
cd ..
# should only push the asc here
rsync -nav stage-signed/ cltbld@stage.mozilla.org:~/firefox-3.0/source/ 
rsync -av stage-signed/  cltbld@stage.mozilla.org:~/firefox-3.0/source/ 

Then push it to the mirrors

rsync -nav /data/cltbld/firefox-3.0/ /home/ftp/pub/firefox/releases/3.0/
rsync -av /data/cltbld/firefox-3.0/ /home/ftp/pub/firefox/releases/3.0/

Should also have updated MD5SUMS and SHA1SUMS for this, fixed after the fact when a bug got filed.

Remove index.html

Once the website goes live then we can remove the index.html bandaid:

cd /pub/mozilla.org/firefox/releases/3.0/
find . -name index.html | less
find . -name index.html | xargs rm -v