Releases/Firefox 4.0/BuildNotes: Difference between revisions

 
(39 intermediate revisions by 3 users not shown)
Line 122: Line 122:


==== 3.6.15 -> 3.6 ====
==== 3.6.15 -> 3.6 ====
===== Generation =====
===== Generation =====
<pre>
<pre>
Line 168: Line 167:
wget -O shipped-locales http://hg.mozilla.org/releases/mozilla-2.0/raw-file/FIREFOX_4_0_RELEASE/browser/locales/shipped-locales
wget -O shipped-locales http://hg.mozilla.org/releases/mozilla-2.0/raw-file/FIREFOX_4_0_RELEASE/browser/locales/shipped-locales
PYTHONPATH=../lib/python python tuxedo-add.py --config firefox-tuxedo.ini --product firefox --version 4.0 --tuxedo-server-url https://bounceradmin.mozilla.com/api/ --shipped-locales shipped-locales --bouncer-product-name Firefox --brand-name Firefox --add-mars --milestone 2.0 --platform linux --platform linux64 --platform macosx64 --platform win32 --credentials-file BuildSlaves.py
PYTHONPATH=../lib/python python tuxedo-add.py --config firefox-tuxedo.ini --product firefox --version 4.0 --tuxedo-server-url https://bounceradmin.mozilla.com/api/ --shipped-locales shipped-locales --bouncer-product-name Firefox --brand-name Firefox --add-mars --milestone 2.0 --platform linux --platform linux64 --platform macosx64 --platform win32 --credentials-file BuildSlaves.py
</pre>
==== 3.5.18 -> 4.0 ====
===== Generation =====
<pre>
cd /opt/aus2/snippets/staging
# releasetest snippets
rsync --exclude=betatest -av Firefox-3.5.18-build1-4.0rc2-build3-MU-test/ Firefox-3.5.18-build1-4.0-MU-test/
find Firefox-3.5.18-build1-4.0-MU-test/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.5.18-build1-4.0rc2-build3-MU-beta/ Firefox-3.5.18-build1-4.0-MU-beta/
find Firefox-3.5.18-build1-4.0-MU-beta/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.5.18-build1-4.0rc2-build3-MU/ Firefox-3.5.18-build1-4.0-MU/
find Firefox-3.5.18-build1-4.0-MU/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
</pre>
===== Quick Verify =====
<pre>
# releasetest == beta
find Firefox-3.5.18-build1-4.0-MU-test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/-test/-beta/; system("diff -r -u $_ $a");'
find Firefox-3.5.18-build1-4.0-MU-beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/-beta/-test/; system("diff -r -u $_ $a");'
# beta == release
find Firefox-3.5.18-build1-4.0-MU -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release/beta/; $a =~ s/MU/MU-beta/; system("diff -r -u $_ $a");'
find Firefox-3.5.18-build1-4.0-MU-beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/release/; $a =~ s/-beta//; system("diff -r -u $_ $a");'
</pre>
No output.
===== Diff against original snippets =====
Verified that only appv and url have changed with a diff. Saw something like this for all snippets:
<pre>
diff -aur Firefox-3.5.18-build1-4.0rc2-build3-MU-test/ Firefox-3.5.18-build1-4.0-MU-test/ | grep -v betatest | grep '^[+-]'
...
-url=http://download.mozilla.org/?product=firefox-4.0rc2-complete&os=win&lang=zh-TW
+url=http://download.mozilla.org/?product=firefox-4.0-complete&os=win&lang=zh-TW
-appv=4.0 RC 2
+appv=4.0
</pre>
===== Diff against same snippets for 3.5.17 =====
<pre>
for d in '-test' '-beta' ''; do
  for p in Darwin_x86-gcc3-u-ppc-i386 Linux_x86-gcc3 WINNT_x86-msvc; do
  diff -ru Firefox-3.5.17-build1-4.0-MU${d}/Firefox/3.5.17/${p}/*/ Firefox-3.5.18-build1-4.0-MU${d}/Firefox/3.5.18/${p}/*/
  done
done
</pre>
No output.
===== Enable test snippets =====
<pre>
~/bin/backupsnip Firefox-3.5.18-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.5.18-build1-4.0-MU-test
</pre>
==== 3.6.16 -> 3.6 ====
===== Generation =====
<pre>
cd /opt/aus2/snippets/staging
# releasetest snippets
rsync --exclude=betatest -av Firefox-3.6.16-build1-4.0rc2-build3-MU-test/ Firefox-3.6.16-build1-4.0-MU-test/
find Firefox-3.6.16-build1-4.0-MU-test/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.6.16-build1-4.0rc2-build3-MU-beta/ Firefox-3.6.16-build1-4.0-MU-beta/
find Firefox-3.6.16-build1-4.0-MU-beta/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.6.16-build1-4.0rc2-build3-MU/ Firefox-3.6.16-build1-4.0-MU/
find Firefox-3.6.16-build1-4.0-MU/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
</pre>
===== Quick Verify =====
<pre>
# releasetest == beta
find Firefox-3.6.16-build1-4.0-MU-test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/-test/-beta/; system("diff -r -u $_ $a");'
find Firefox-3.6.16-build1-4.0-MU-beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/-beta/-test/; system("diff -r -u $_ $a");'
# beta == release
find Firefox-3.6.16-build1-4.0-MU -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release/beta/; $a =~ s/MU/MU-beta/; system("diff -r -u $_ $a");'
find Firefox-3.6.16-build1-4.0-MU-beta -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/release/; $a =~ s/-beta//; system("diff -r -u $_ $a");'
</pre>
No output.
===== Diff against original snippets =====
Verified that only appv and url have changed with a diff. Saw something like this for all snippets:
<pre>
diff -aur Firefox-3.6.16-build1-4.0rc2-build3-MU-test/ Firefox-3.6.16-build1-4.0-MU-test/ | grep -v betatest | grep '^[+-]'
...
-url=http://download.mozilla.org/?product=firefox-4.0rc2-complete&os=win&lang=zh-TW
+url=http://download.mozilla.org/?product=firefox-4.0-complete&os=win&lang=zh-TW
-appv=4.0 RC 2
+appv=4.0
</pre>
===== Diff against same snippets for 3.6.15 =====
<pre>
for p in Darwin_x86-gcc3-u-ppc-i386 Linux_x86-gcc3 WINNT_x86-msvc; do
diff -ru Firefox-3.6.15-build1-4.0-MU/Firefox/3.6.15/$p/*/ Firefox-3.6.16-build1-4.0-MU/Firefox/3.6.16/$p/*/
done
</pre>
No output.
===== Enable test snippets =====
<pre>
~/bin/backupsnip Firefox-3.6.16-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.6.16-build1-4.0-MU-test
</pre>
</pre>


Line 280: Line 380:
=== Push to Mirrors ===
=== Push to Mirrors ===
  rsync -av /home/ffxbld/firefox-4.0/ /pub/mozilla.org/firefox/releases/4.0/
  rsync -av /home/ffxbld/firefox-4.0/ /pub/mozilla.org/firefox/releases/4.0/
=== Update rsync modules ===
Removed Firefox 3.5.17 from mozilla-current and added 4.0, in stage:/pub/mozilla.org/pub/zz/rsyncd-mozilla-current.exclude. We still have 3.5.17 in mozilla-releases and get plenty of coverage there for the set of people still on 3.5.x.


=== Notify AV Vendors ===
=== Notify AV Vendors ===
Sent notification to AV vendors after the push to mirrors, so that they can scan the files. '''Awaiting moderation on the list'''.
Sent notification to AV vendors after the push to mirrors, so that they can scan the files.
 
=== Repush MU and notify release-drivers of MU testing ===
3.5.18 and 3.6.16 overwrote the major updates on releasetest so repushed them:
~/bin/backupsnip Firefox-3.5.17-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.5.17-build1-4.0-MU-test
~/bin/backupsnip Firefox-3.6.15-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.6.15-build1-4.0-MU-test
 
E-mailed release-drivers and let them know that both MUs are ready to be tested on releasetest when uptake over 10k.
 
=== Remove Serbian snippets from MU ===
{{bug|643689}} requests that we pull the Serbian ('sr') snippets prior to pushing the MUs. Did the following to do so:
<pre>
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
for d in Firefox-3.5.17-build1-4.0-MU-beta Firefox-3.5.17-build1-4.0-MU Firefox-3.6.15-build1-4.0-MU Firefox-3.6.15-build1-4.0-MU-beta; do
  rsync -av $d/ $d-with-sr/
  find $d -type d -name sr -exec rm -rfv {} \;
done
</pre>
 
Verification:
<pre>
# Verification
for d in Firefox-3.5.17-build1-4.0-MU-beta Firefox-3.5.17-build1-4.0-MU Firefox-3.6.15-build1-4.0-MU Firefox-3.6.15-build1-4.0-MU-beta; do
  diff --brief -r $d/ $d-with-sr/
done
</pre>
 
Output:
<pre>
Only in Firefox-3.5.17-build1-4.0-MU-beta-with-sr/Firefox/3.5.17/Darwin_x86-gcc3-u-ppc-i386/20110121150727: sr
Only in Firefox-3.5.17-build1-4.0-MU-beta-with-sr/Firefox/3.5.17/Linux_x86-gcc3/20110121161846: sr
Only in Firefox-3.5.17-build1-4.0-MU-beta-with-sr/Firefox/3.5.17/WINNT_x86-msvc/20110121150729: sr
Only in Firefox-3.5.17-build1-4.0-MU-with-sr/Firefox/3.5.17/Darwin_x86-gcc3-u-ppc-i386/20110121150727: sr
Only in Firefox-3.5.17-build1-4.0-MU-with-sr/Firefox/3.5.17/Linux_x86-gcc3/20110121161846: sr
Only in Firefox-3.5.17-build1-4.0-MU-with-sr/Firefox/3.5.17/WINNT_x86-msvc/20110121150729: sr
Only in Firefox-3.6.15-build1-4.0-MU-with-sr/Firefox/3.6.15/Darwin_x86-gcc3-u-ppc-i386/20110303024001: sr
Only in Firefox-3.6.15-build1-4.0-MU-with-sr/Firefox/3.6.15/Linux_x86-gcc3/20110303024323: sr
Only in Firefox-3.6.15-build1-4.0-MU-with-sr/Firefox/3.6.15/WINNT_x86-msvc/20110303024726: sr
Only in Firefox-3.6.15-build1-4.0-MU-beta-with-sr/Firefox/3.6.15/Darwin_x86-gcc3-u-ppc-i386/20110303024001: sr
Only in Firefox-3.6.15-build1-4.0-MU-beta-with-sr/Firefox/3.6.15/Linux_x86-gcc3/20110303024323: sr
Only in Firefox-3.6.15-build1-4.0-MU-beta-with-sr/Firefox/3.6.15/WINNT_x86-msvc/20110303024726: sr
</pre>


=== Notify release-drivers of MU testing ===
And also from the 3.5.18/3.6.16 snippets:
Need to e-mail release-drivers and let them know that both MUs are ready to be tested on releasetest.
<pre>
# cltbld@aus2-staging
cd /opt/aus2/snippets/staging
for d in Firefox-3.6.16-build1-4.0-MU-beta Firefox-3.6.16-build1-4.0-MU Firefox-3.5.18-build1-4.0-MU-beta Firefox-3.5.18-build1-4.0-MU; do
  rsync -av $d/ $d-with-sr/
  find $d -type d -name sr -exec rm -rfv {} \;
done
</pre>
 
Verification:
<pre>
# Verification
for d in Firefox-3.6.16-build1-4.0-MU-beta Firefox-3.6.16-build1-4.0-MU Firefox-3.5.18-build1-4.0-MU-beta Firefox-3.5.18-build1-4.0-MU; do
  diff --brief -r $d/ $d-with-sr/
done
</pre>
 
Output:
<pre>
Only in Firefox-3.6.16-build1-4.0-MU-beta-with-sr/Firefox/3.6.16/Darwin_x86-gcc3-u-ppc-i386/20110319135224: sr
Only in Firefox-3.6.16-build1-4.0-MU-beta-with-sr/Firefox/3.6.16/Linux_x86-gcc3/20110319135224: sr
Only in Firefox-3.6.16-build1-4.0-MU-beta-with-sr/Firefox/3.6.16/WINNT_x86-msvc/20110319135224: sr
Only in Firefox-3.6.16-build1-4.0-MU-with-sr/Firefox/3.6.16/Darwin_x86-gcc3-u-ppc-i386/20110319135224: sr
Only in Firefox-3.6.16-build1-4.0-MU-with-sr/Firefox/3.6.16/Linux_x86-gcc3/20110319135224: sr
Only in Firefox-3.6.16-build1-4.0-MU-with-sr/Firefox/3.6.16/WINNT_x86-msvc/20110319135224: sr
Only in Firefox-3.5.18-build1-4.0-MU-beta-with-sr/Firefox/3.5.18/Darwin_x86-gcc3-u-ppc-i386/20110319140258: sr
Only in Firefox-3.5.18-build1-4.0-MU-beta-with-sr/Firefox/3.5.18/Linux_x86-gcc3/20110319140258: sr
Only in Firefox-3.5.18-build1-4.0-MU-beta-with-sr/Firefox/3.5.18/WINNT_x86-msvc/20110319140258: sr
Only in Firefox-3.5.18-build1-4.0-MU-with-sr/Firefox/3.5.18/Darwin_x86-gcc3-u-ppc-i386/20110319140258: sr
Only in Firefox-3.5.18-build1-4.0-MU-with-sr/Firefox/3.5.18/Linux_x86-gcc3/20110319140258: sr
Only in Firefox-3.5.18-build1-4.0-MU-with-sr/Firefox/3.5.18/WINNT_x86-msvc/20110319140258: sr
</pre>


=== Push Major Updates ===
=== Push Major Updates ===
<pre>
#cltbld@aus2-staging
cd /opt/aus2/snippets/staging
~/bin/pushsnip Firefox-3.6.15-build1-4.0-MU
~/bin/pushsnip Firefox-3.5.17-build1-4.0-MU
~/bin/pushsnip Firefox-3.6.15-build1-4.0-MU-beta
~/bin/pushsnip Firefox-3.5.17-build1-4.0-MU-beta
</pre>
Also pushed the 3.5.18/3.6.16 ones ahead of those releases:
<pre>
~/bin/pushsnip Firefox-3.6.16-build1-4.0-MU
~/bin/pushsnip Firefox-3.6.16-build1-4.0-MU-beta
~/bin/pushsnip Firefox-3.5.18-build1-4.0-MU
~/bin/pushsnip Firefox-3.5.18-build1-4.0-MU-beta
</pre>


=== Remove index files ===
=== Remove index files ===
ffxbld@stage
<pre>
cd /pub/mozilla.org/firefox/releases/4.0
find . -name index.html -exec rm -v {} \;
</pre>


=== Update symlinks on FTP ===
=== Update symlinks on FTP ===
To be done
  ln -s 4.0 latest-4.0
  ln -s 4.0 latest-4.0   
  rm latest
  ln -s latest-4.0 latest
  ln -s latest-4.0 latest
=== Remove updates for broken locales ===
{{bug|629256}}
* Removed "ml", and "te" Mac updates from 3.6.15 from the live snippet dirs.
** Synced to PHX with:
<pre>
cd /opt/aus2/incoming/3/Firefox/3.6.15
rsync -e "ssh -i $HOME/.ssh/auspush" -Pa0 --delete $PWD/ ffxbld@dp-ausstage01.phx.mozilla.com:$PWD/
</pre>
* Removed "kn", "ml", and "te" Mac updates from 3.5.18 from the live snippet dirs.
<pre>
find Darwin_* -type d -name kn -o -name ml -o -name te -exec rm -rf {} \
</pre>
** Synced to PHX with:
<pre>
cd /opt/aus2/incoming/3/Firefox/3.5.17
rsync -e "ssh -i $HOME/.ssh/auspush" -Pa0 --delete $PWD/ ffxbld@dp-ausstage01.phx.mozilla.com:$PWD/
</pre>
** Removed these locales from staging snippets:
<pre>
find Firefox-{3.5.18,3.6.16}-build1-4.0-MU{,-beta} -type d -path '*Darwin*' -a \( -name kn -o -name ml -o -name te \) | xargs rm -rfv
</pre>
=== EUBallot Builds ===
* Kev to provide us these.
* Manually added Bouncer Entry
* Signed with:
<pre>
PRODUCT=firefox
VERSION=4.0
BUILD=1
TAG=FIREFOX_4_0_RELEASE
REPO='releases/mozilla-2.0'
EMAIL=bhearsum@mozilla.com
KEYDIR=d:/2010-keys
cd ~/hg-tools
hg pull && hg up -r ${TAG}
#start signcode
mkdir -p ~/signing-work/${PRODUCT}-${VERSION}-repacks/partners
cd ~/signing-work/${PRODUCT}-${VERSION}-repacks/partners
cp ~/hg-tools/release/signing/* .
mkdir unsigned
scp cltbld@surf.mozilla.org:/tmp/euballots-40-unsigned.tar .
cd unsigned
tar xvf ../euballots-40-unsigned.tar
cd ..
make PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD}
TAG=${TAG}REPO=${REPO} EMAIL=${EMAIL} USE_NEW=1 setup
# This next step will fail to find the win32 log and/or xpis.
# This is expected.
cd unsigned/win32
../../signing/sign-release ${KEYDIR}
../../signing/sign-files .
cd ../..
mv unsigned signed
cd signed
tar -vcf ../euballot-40-signed.tar .
cd ..
scp euballot-40-signed.tar cltbld@stage.mozilla.org:/tmp
Now available at surf:/tmp/euballot-40-signed.tar
md5sum is 71668941f6b616d62552cf1ee75bb435u
</pre>
* Staged with:
<pre>
# ffxbld@stage
mkdir ~ffxbld/euballot-4.0
cd ~ffxbld/euballot-4.0
tar -xvf /tmp/euballot-40-signed.tar
rsync -av win32/ ~ffxbld/firefox-4.0/win32-EUballot/
rsync -av ~ffxbld/firefox-4.0/win32-EUballot/ /pub/mozilla.org/firefox/releases/4.0/win32-EUballot/
</pre>
* Filed {{bug|643854}} to have IT update the website.
=== Disable Unwanted 3.5.17/3.6.15 Darwin PPC snippets ===
We forgot to exclude these when generating the MUs :(. 3.5.18/3.6.16 were created with a newer version of the UPDATE_PACKAGING tag, which doesn't create PPC snippets at all. To fix:
<pre>
# ffxbld@aus2-staging
cd /opt/aus2/incoming/3/Firefox/3.5.17
rm -rf Darwin_ppc-gcc3-u-ppc-i386/
cd /opt/aus2/incoming/3/Firefox/3.6.15
rm -rf Darwin_ppc-gcc3-u-ppc-i386/
</pre>
<pre>
# ffxbld@dp-ausstage01
cd /opt/aus2/incoming/3/Firefox/3.5.17
rm -rf Darwin_ppc-gcc3-u-ppc-i386/
cd /opt/aus2/incoming/3/Firefox/3.6.15
rm -rf Darwin_ppc-gcc3-u-ppc-i386/
</pre>


=== XULRunner ===
=== XULRunner ===
No need to stage or rename files because the 2.0rc1 versions already use "2.0".
 
==== Sign ====
<pre>
#!/bin/bash
set -x
set -e
 
PRODUCT=xulrunner
VERSION=2.0
BUILD=3
TAG=FIREFOX_4_0_RELEASE
REPO="releases/mozilla-2.0"
EMAIL=bhearsum@mozilla.com
KEYDIR=d:/2010-keys
 
cd ~/hg-tools
hg pull
hg up -r ${TAG}
 
mkdir -p ~/signing-work/${PRODUCT}-${VERSION}
cd ~/signing-work/${PRODUCT}-${VERSION}
cp ~/hg-tools/release/signing/* .
 
make setup PRODUCT=${PRODUCT} VERSION=${VERSION} \
  BUILD=${BUILD} REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1
rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  --exclude=*.txt --exclude=*.checksums --exclude=*-symbols.zip \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/ \
unsigned-build${BUILD}
rsync -av --exclude=unsigned unsigned-build${BUILD}/ \
signed-build${BUILD}/
rsync -av unsigned-build${BUILD}/unsigned/ \
signed-build${BUILD}/
 
make checksum-files create-sigs stage verify-sigs \
  PRODUCT=${PRODUCT} VERSION=${VERSION} BUILD=${BUILD} \
  REPO=${REPO} EMAIL=${EMAIL} KEYDIR=${KEYDIR} USE_NEW=1
 
rmdir signed-build${BUILD}/contrib{,-localized}
 
rsync -av -e "ssh -i /home/cltsign/.ssh/xrbld_dsa" \
  signed-build${BUILD}/ \
  xrbld@stage.mozilla.org:/home/ftp/pub/${PRODUCT}/nightly/${VERSION}-candidates/build${BUILD}/
</pre>


==== Push to Mirrors ====
==== Push to Mirrors ====
<pre>
rsync -av --exclude=*.txt --exclude=*unsigned*  --exclude=*-symbols.zip --exclude=*.checksums /pub/mozilla.org/xulrunner/nightly/2.0-candidates/build3/ /pub/mozilla.org/xulrunner/releases/2.0/
</pre>


==== Update Wiki Pages ====
==== Update Wiki Pages ====
Updated the links in these two wiki pages for the version change:
* [https://developer.mozilla.org/En/XULRunner_2.0_Release_Notes Release Notes]
* [https://developer.mozilla.org/En/Gecko_SDK Gecko_SDK]
canmove, Confirmed users
6,441

edits