Releases/Firefox 4.0/BuildNotes: Difference between revisions

 
(83 intermediate revisions by 4 users not shown)
Line 9: Line 9:
Joduinn sent this on March 16th.
Joduinn sent this on March 16th.


== Config Update ==
== RC1 version ==
=== Config Update ===
[http://hg.mozilla.org/build/buildbot-configs/rev/0781df67af87 This small update to the release config] was landed.
[http://hg.mozilla.org/build/buildbot-configs/rev/0781df67af87 This small update to the release config] was landed.


== Automated Parts ==
=== Automated Parts ===
Some of this release-day work makes sense to do from the release automation. Use force build for these.
Some of this release-day work makes sense to do from the release automation. Use force build for these.
=== Tag ===
==== Tag ====
=== Source ===
forced build using the webform with values
=== Major Update Generation ===
your name: jhford
=== Bouncer Entries ===
reason for build: retagging for 4.0 release
=== Virus Scan ===
branch to build: <left blank>
(Might not be able to do this from automation because we don't have a full 3.6-candidates dir)
revision to build: <left blank>
repository to build: <left blank>
project to build: <left blank>
prop1 name: script_repo_revision
      value: FIREFOX_4_0_RELEASE
prop2 name: release_config
      value: mozilla/release-firefox-mozilla-2.0.py


=== Verify permissions ===
==== Source ====
(Might not be able to do this from automation because we don't have a full 3.6-candidates dir)
Forced build on builder page using form values
your name: jhford
reason for build: retagging for 4.0 release
branch to build: <left blank>
revision to build: <left blank>
repository to build: <left blank>
project to build: <left blank>
prop1 name: <left blank>
      value: <left blank>
prop2 name: <left blank>
      value: <left blank>


== Stage and Rename Files ==
=== Stage and Rename Files ===
Summary:
Summary:
* Copy files to ~ffxbld and rename to non-RC versions
* Copy files to ~ffxbld and rename to non-RC versions
Line 40: Line 57:
</pre>
</pre>


== Other Verifications ==
== RC 2 Version ==
=== Config Update ===
* landed [http://hg.mozilla.org/build/buildbot-configs/rev/62a3a13aeba6] and [http://hg.mozilla.org/build/buildbot-configs/rev/62600770fd17]
* updated and reconfig pm01


=== Verify contents against RC ===
=== Automated Parts ===
Some of this release-day work makes sense to do from the release automation. Use force build for these.
==== Tag ====
forced build using the webform with values
your name: jhford
reason for build: retagging for 4.0 release (rc2)
branch to build: <left blank>
revision to build: <left blank>
repository to build: <left blank>
project to build: <left blank>
prop1 name: script_repo_revision
      value: FIREFOX_4_0_RELEASE
prop2 name: release_config
      value: mozilla/release-firefox-mozilla-2.0.py
==== Source ====
Clicked "force build"
 
=== Major Updates ===
Both of these done as cltbld@aus2-staging
==== 3.5.17 -> 4.0 ====
===== Generation =====
<pre>
cd /opt/aus2/snippets/staging
# releasetest snippets
rsync --exclude=betatest -av Firefox-3.5.17-build1-4.0rc2-build3-MU-test/ Firefox-3.5.17-build1-4.0-MU-test/
find Firefox-3.5.17-build1-4.0-MU-test/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.5.17-build1-4.0rc2-build3-MU-beta/ Firefox-3.5.17-build1-4.0-MU-beta/
find Firefox-3.5.17-build1-4.0-MU-beta/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.5.17-build1-4.0rc2-build3-MU/ Firefox-3.5.17-build1-4.0-MU/
find Firefox-3.5.17-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.17-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.17-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.17-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.17-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>
 
===== 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.17-build1-4.0rc2-build3-MU-test/ Firefox-3.5.17-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>
 
===== Enable test snippets =====
<pre>
~/bin/backupsnip Firefox-3.5.17-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.5.17-build1-4.0-MU-test
</pre>
 
==== 3.6.15 -> 3.6 ====
===== Generation =====
<pre>
cd /opt/aus2/snippets/staging
# releasetest snippets
rsync --exclude=betatest -av Firefox-3.6.15-build1-4.0rc2-build3-MU-test/ Firefox-3.6.15-build1-4.0-MU-test/
find Firefox-3.6.15-build1-4.0-MU-test/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.6.15-build1-4.0rc2-build3-MU-beta/ Firefox-3.6.15-build1-4.0-MU-beta/
find Firefox-3.6.15-build1-4.0-MU-beta/ -type f -exec sed -i -e 's/RC 2//' -e 's/rc2//' {} \;
rsync -av Firefox-3.6.15-build1-4.0rc2-build3-MU/ Firefox-3.6.15-build1-4.0-MU/
find Firefox-3.6.15-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.15-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.15-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.15-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.15-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>
 
===== 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.15-build1-4.0rc2-build3-MU-test/ Firefox-3.6.15-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>


== Index Files ==
===== Enable test snippets =====
todo: ask justdave how far in advance we should put an index.html in place
<pre>
~/bin/backupsnip Firefox-3.6.15-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.6.15-build1-4.0-MU-test
</pre>


== Push to Mirrors ==
==== Bouncer Entries ====
From moz2-linux-slave05 (where the most recent bouncer_submitter run was):
<pre>
cd /builds/slave/rel-2.0-bncr-sub/tools/release
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
</pre>


== Notify AV Vendors ==
==== 3.5.18 -> 4.0 ====
Need to notify AV vendors after the push to mirrors is done so that they can scan the files.
===== 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");'


== Push Major Updates ==
# 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.


== Remove index files ==
===== 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>


== Update symlinks on FTP ==
===== Diff against same snippets for 3.5.17 =====
To be done
<pre>
  ln -s 4.0 latest-4.0   
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>
 
=== Stage and Rename Files ===
Summary:
* Copy files to ~ffxbld and rename to non-RC versions
** Exclude *checksums* because we don't care for individual locale+platform checksums files in the final release dir
** Exclude partial MARs because there's no use for them, no point in pushing them to the mirrors
** Exclude Source packages because they're regenerated for final
** Exclude *SUMS* because we'll be regenerating them.
** Exclude all of the stuff that would normally be excluded when going from candidates -> releases (logs, info files, unsigned dir, crsahreporter symbols)
 
Details:
<pre>
# ffxbld@stage
# clean up from the RC1 attempt
rm -rf firefox-4.0
mkdir firefox-4.0
cd firefox-4.0
rsync --exclude=*.log --exclude=*tests* --exclude=*.txt --exclude=*checksums* --exclude='*partial.mar' --exclude=source --exclude=*SUMS* --exclude=unsigned --exclude=*crashreporter* -av /pub/mozilla.org/firefox/nightly/4.0rc2-candidates/build3/ .
rsync -av /pub/mozilla.org/firefox/nightly/4.0-candidates/build1/source/ source/
find contrib* linux* update -type f -exec rename rc2 '' {} \;
find mac win32 -type f -exec rename " RC 2" "" {} \;
wget -O../firefox-4.0-shipped-locales http://hg.mozilla.org/releases/mozilla-2.0/raw-file/FIREFOX_4_0_RELEASE/browser/locales/shipped-locales
~cltbld/bin/verify-locales.pl -m ~/firefox-4.0-shipped-locales -l bz2
~cltbld/bin/checksum-files .
</pre>
 
Then, sign the checksum and source files by doing the following on keymaster:
<pre>
mkdir -p ~/signing-work/firefox-4.0
cd ~/signing-work/firefox-4.0
cvs co -d:ext:cltbld@cvs.mozilla.org:/mofo co -d signing release/signing/tools
rsync -av -e 'ssh -i /home/cltsign/.ssh/ffxbld_dsa' ffxbld@stage.mozilla.org:firefox-4.0/*SUMS .
rsync -av -e 'ssh -i /home/cltsign/.ssh/ffxbld_dsa' ffxbld@stage.mozilla.org:firefox-4.0/source/ source/
signing/sign-files .
rsync -av -e 'ssh -i /home/cltsign/.ssh/ffxbld_dsa' *SUMS* ffxbld@stage.mozilla.org:firefox-4.0/
rsync -av -e 'ssh -i /home/cltsign/.ssh/ffxbld_dsa' source/ ffxbld@stage.mozilla.org:firefox-4.0/source/
</pre>
 
And then back on stage:
<pre>
chown -R ffxbld:firefox linux-i686 linux-x86_64 mac update win32
chmod 644 *SUMS*
</pre>
 
Verify locales complains about en-US having XPIs, but that's desired these days, so ignorable.
 
=== Other Verifications ===
 
==== Virus Scan ====
Manually triggered on stage with:
<pre>
# ffxbld@stage
python /usr/local/bin/extract_and_run_command.py -j4 clamdscan -m --no-summary -- ~/firefox-4.0
</pre>
 
Passed.
 
==== Verify permissions ====
<pre>
find /home/ffxbld/firefox-4.0/ ! -user ffxbld ! -path \'*/contrib*\'
find /home/ffxbld/firefox-4.0/ ! -group firefox ! -path \'*/contrib*\'
find /home/ffxbld/firefox-4.0/ -type f ! -perm 644
find /home/ffxbld/firefox-4.0/ -mindepth 1 -type d ! -perm 755 ! -path \'*/contrib*\' ! -path \'*/partner-repacks*\'
find /home/ffxbld/firefox-4.0/ -maxdepth 1 -type d ! -perm 2775 -path \'*/contrib*\'
</pre>
 
==== Verify contents against RC ====
<pre>
cd ~ffxbld/firefox-4.0
find /pub/mozilla.org/firefox/releases/4.0rc2/ -type f | perl -nle '$a = substr($_,41); $a =~ s/rc2//; $a =~ s/\ RC\ 2//; system("diff","-q",$_,$a);'
</pre>
 
Results:
<pre>
Files /pub/mozilla.org/firefox/releases/4.0rc2/source/firefox-4.0rc2.bundle.asc and source/firefox-4.0.bundle.asc differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/source/firefox-4.0rc2.bundle and source/firefox-4.0.bundle differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/source/firefox-4.0rc2.source.tar.bz2 and source/firefox-4.0.source.tar.bz2 differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/source/firefox-4.0rc2.source.tar.bz2.asc and source/firefox-4.0.source.tar.bz2.asc differ
 
diff: update/linux-i686/af/firefox-4.0rc1-4.0.partial.mar: No such file or directory
diff: update/linux-i686/ak/firefox-4.0rc1-4.0.partial.mar: No such file or directory
...
diff: update/win32/zh-CN/firefox-4.0rc1-4.0.partial.mar: No such file or directory
diff: update/win32/zh-TW/firefox-4.0rc1-4.0.partial.mar: No such file or directory
diff: update/win32/zu/firefox-4.0rc1-4.0.partial.mar: No such file or directory
Files /pub/mozilla.org/firefox/releases/4.0rc2/MD5SUMS and MD5SUMS differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/MD5SUMS.asc and MD5SUMS.asc differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/SHA1SUMS and SHA1SUMS differ
Files /pub/mozilla.org/firefox/releases/4.0rc2/SHA1SUMS.asc and SHA1SUMS.asc differ
</pre>
 
All ignorable:
* Source files differ because we regenerated them
* Partials are missing because we purposely don't include them
* SUMS files differ because we regenerated them
 
=== Add Index Files ===
index.html was e-mailed to me by LegNeato, and I put it in ~ffxbld@stage
<pre>
# ffxbld@stage
cd ~/firefox-4.0
cp ~/index.html .
for dir in `find . -type d -mindepth 1`; do cp -pv index.html $dir/; done
</pre>
 
=== Push index files ===
justdave says that we should push the index.html 6 hours before the rest of the contents, to ensure it gets everywhere ahead of everything else. Use this command to do so:
rsync -av --exclude=KEY --exclude=*.xpi --exclude=*.bz2 --exclude=*.dmg --exclude=*.exe --exclude=*.mar --exclude=*.bundle --exclude=*SUMS* --exclude=*.asc /home/ffxbld/firefox-4.0/ /pub/mozilla.org/firefox/releases/4.0/
 
=== Push to Mirrors ===
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 ===
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>
 
And also from the 3.5.18/3.6.16 snippets:
<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 ===
<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 ===
ffxbld@stage
<pre>
cd /pub/mozilla.org/firefox/releases/4.0
find . -name index.html -exec rm -v {} \;
</pre>
 
=== Update symlinks on FTP ===
  ln -s 4.0 latest-4.0
  rm latest
  ln -s latest-4.0 latest
  ln -s latest-4.0 latest


== XULRunner ==
=== Remove updates for broken locales ===
No need to stage or rename files because the 2.0rc1 versions already use "2.0".
{{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 ===
 
==== 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 ====
<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 ====
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,439

edits