Releases/Firefox 4.0/BuildNotes: Difference between revisions

 
(79 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 ====
modified release config [[http://hg.mozilla.org/build/buildbot-configs/rev/0781df67af87 buildbot-configs@0781df67af87]]
forced build using the webform with 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: script_repo_revision
      value: FIREFOX_4_0_RELEASE
prop2 name: release_config
      value: mozilla/release-firefox-mozilla-2.0.py
 
==== Source ====
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 ===
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.
 
Details:
<pre>
# ffxbld@stage
mkdir firefox-4.0
cd firefox-4.0
rsync -av --exclude=*checksums* --exclude='*partial.mar' --exclude=source --exclude=*SUMS* /pub/mozilla.org/firefox/releases/4.0rc1/ .
</pre>


== 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
=== 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
forced build using the webform with values
  your name: jhford
  your name: jhford
  reason for build: retagging for 4.0 release
  reason for build: retagging for 4.0 release (rc2)
  branch to build: <left blank>
  branch to build: <left blank>
  revision to build: <left blank>
  revision to build: <left blank>
Line 28: Line 76:
  prop2 name: release_config
  prop2 name: release_config
       value: mozilla/release-firefox-mozilla-2.0.py
       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>
===== Enable test snippets =====
<pre>
~/bin/backupsnip Firefox-3.6.15-build1-4.0-MU-test
~/bin/pushsnip Firefox-3.6.15-build1-4.0-MU-test
</pre>
==== 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>
==== 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>


=== Source ===
==== 3.6.16 -> 3.6 ====
=== Major Update Generation ===
===== Generation =====
=== Bouncer Entries ===
<pre>
=== Virus Scan ===
cd /opt/aus2/snippets/staging
(Might not be able to do this from automation because we don't have a full 3.6-candidates dir)
# 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>


=== Verify permissions ===
===== Quick Verify =====
(Might not be able to do this from automation because we don't have a full 3.6-candidates dir)
<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");'


== Stage and Rename Files ==
# 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:
Summary:
* Copy files to ~ffxbld and rename to non-RC versions
* Copy files to ~ffxbld and rename to non-RC versions
Line 45: Line 277:
** Exclude Source packages because they're regenerated for final
** Exclude Source packages because they're regenerated for final
** Exclude *SUMS* because we'll be regenerating them.
** 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:
Details:
<pre>
<pre>
# ffxbld@stage
# ffxbld@stage
# clean up from the RC1 attempt
rm -rf firefox-4.0
mkdir firefox-4.0
mkdir firefox-4.0
cd firefox-4.0
cd firefox-4.0
rsync -av --exclude=*checksums* --exclude='*partial.mar' --exclude=source --exclude=*SUMS* /pub/mozilla.org/firefox/releases/4.0rc1/ .
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>
</pre>


== Other Verifications ==
=== 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/


=== Verify contents against RC ===
=== 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.


== Index Files ==
=== Notify AV Vendors ===
todo: ask justdave how far in advance we should put an index.html in place
Sent notification to AV vendors after the push to mirrors, so that they can scan the files.


== Push to Mirrors ==
=== 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


== Notify AV Vendors ==
E-mailed release-drivers and let them know that both MUs are ready to be tested on releasetest when uptake over 10k.
Need to notify AV vendors after the push to mirrors is done so that they can scan the files.


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


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


== Update symlinks on FTP ==
Output:
To be done
<pre>
  ln -s 4.0 latest-4.0   
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>


=== Push to Mirrors ===
** 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 ===
==== 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