--- wikisrc/users/ryoon/how_to_update_www_firefox.mdwn 2012/03/25 01:30:20 1.2 +++ wikisrc/users/ryoon/how_to_update_www_firefox.mdwn 2015/01/16 14:04:45 1.7 @@ -1,19 +1,128 @@ -## How to update www/firefox, mail/thunderbord, devel/xulrunner, devel/nspr, devel/nss, and www/seamonkey and their l10n package. +[[!meta title="How to update pkgsrc/www/firefox"]] -1) Update devel/nspr with firefox's source. -// The source tar ball of nspr is provided. Which is better? -// Patches are prepared in xulrunner's patches directory. +This article shows how to update pkgsrc/www/firefox package to latest release. +You can use Mozilla's Mercurial (hg) repositories to track upstream changes. -2) Update devel/nss with firefox's source. -// nss's tar ball is not provided. It must be extracted from firefox's - source tar ball. -// Patches are prepared in xulrunner's patches directory. +You should have pkgsrc/meta-pkgs/pkg_developer package. -3) Update devel/xulrunner with firefox's source. +# Clone hg tree +See . -4) Update www/firefox +You should follow "Using Bookmarks to Manage Multiple Repositories from a Single Clone" section. -5) Re-install all above packages with latest patches in xulrunner. -6) Apply xulrunner's patches to www/thunderbird and www/seamonkey's mozilla directory. - And add thunderbird or seamonkey specific patches to its own patches directory. +# Update trees to latest + + $ hg pull central + $ hg pull inbound + $ hg pull aurora + $ hg pull beta + $ hg pull release + + $ hg update + + +# Checkout last release source, and create your branch + +Find latest release. + + $ hg branches | grep 2901 + GECKO2901_2014050617_RELBRANCH 207485:3fd2b5510ccf + (snip) + +Checkout the branch. + + $ hg checkout GECKO2901_2014050617_RELBRANCH + +Create named branch for applying pkgsrc patches + + $ hg branch pkgsrc_firefox-29.0.1 + $ hg commit -m "Create pkgsrc_firefox-29.0.1 branch for applying pkgsrc patches" + +Add .*\.orig$ to .hgignore, and commit this change + + $ hg commit -m "Ignore .orig files" .hgignore + + +# Apply pkgsrc patches + + $ pushd /usr/pkgsrc/www/firefox + $ mkpatches -c + $ popd + $ cat /usr/pkgsrc/www/firefox/patches/patch-*|patch -p0 + $ hg add ...(necessary files) + $ hg commit -m "Apply pkgsrc patches for firefox-29.0.1nb2" + + +# Checkout latest beta source, and create your branch + +Find latest branch. + + $ hg branches | grep 300b9 + GECKO300b9_2014052918_RELBRANCH 199964:b7037f050049 + +Checkout the branch. + + $ hg checkout GECKO300b9_2014052918_RELBRANCH + +Create named branch for working. + + $ hg branch ryoon_firefox-30.0b9 + $ hg commit -m "Create ryoon_firefox-30.0 branch for applying freebsd-gecko patches" + +Add .*\.orig$ to .hgignore, and commit this change + + $ hg commit -m "Ignore .orig files" .hgignore + +Apply patches from freebsd-gecko + + $ cat ~/repos/freebsd-gecko/trunk/www/firefox/files/patch-*|patch -p0 + +Fix rejected patches manually + + $ hg status | grep rej$ + $ vi path/to/a/certain/file.c + +Commit the patches + + $ hg add (necessary files) + $ hg commit -m "Apply freebsd-gecko patches for firefox-30.0" + + +# Merge your patches + + $ hg merge pkgsrc_firefox-29.0.1 + $ hg resolve -l + $ vi file/marked/as/U + $ hg resolve --mark file/marked/as/U + (loop) + $ hg commit -m "Merge pkgsrc_firefox-29.0.1 branch to 30.0" + + +# Create patch file for patch -p0 + + $ hg diff -r (revision of first commit in ryoon_freebsd-30.0) | \ + sed -e 's!^--- a/!--- !' -e 's!^+++ b/!+++ !' > ~/firefox-30.0.diff + $ vi ~/firefox-30.0.diff + (Remove patch to .hgignore) + (Remove patch to .hgtags) + +# Create patches/patch-* for pkgsrc/www/firefox + + $ cd /usr/pkgsrc/www/firefox + $ vi Makefile + (Update version) + (Remove PKGREVISION) + (Fix WRKSRC variable) + $ make mdi + $ make extract + $ pushd ${WRKOBJDIR}/www/firefox/work/mozilla-beta + $ patch -p0 < ~/firefox-30.0.diff + $ popd + $ mkpatches + $ patchdiff + $ make mps + +# Test your patches + + $ make clean && make package