Annotation of wikisrc/users/ryoon/how_to_update_www_firefox.mdwn, revision 1.7
1.3 ryoon 1: [[!meta title="How to update pkgsrc/www/firefox"]]
1.1 ryoon 2:
1.3 ryoon 3: This article shows how to update pkgsrc/www/firefox package to latest release.
4: You can use Mozilla's Mercurial (hg) repositories to track upstream changes.
1.1 ryoon 5:
1.3 ryoon 6: You should have pkgsrc/meta-pkgs/pkg_developer package.
1.1 ryoon 7:
1.3 ryoon 8: # Clone hg tree
9: See <https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial>.
1.1 ryoon 10:
1.3 ryoon 11: You should follow "Using Bookmarks to Manage Multiple Repositories from a Single Clone" section.
1.1 ryoon 12:
13:
1.3 ryoon 14: # Update trees to latest
15:
16: $ hg pull central
17: $ hg pull inbound
18: $ hg pull aurora
19: $ hg pull beta
20: $ hg pull release
21:
22: $ hg update
23:
24:
25: # Checkout last release source, and create your branch
26:
27: Find latest release.
28:
29: $ hg branches | grep 2901
30: GECKO2901_2014050617_RELBRANCH 207485:3fd2b5510ccf
31: (snip)
32:
33: Checkout the branch.
34:
35: $ hg checkout GECKO2901_2014050617_RELBRANCH
36:
37: Create named branch for applying pkgsrc patches
38:
39: $ hg branch pkgsrc_firefox-29.0.1
40: $ hg commit -m "Create pkgsrc_firefox-29.0.1 branch for applying pkgsrc patches"
41:
42: Add .*\.orig$ to .hgignore, and commit this change
43:
44: $ hg commit -m "Ignore .orig files" .hgignore
45:
46:
47: # Apply pkgsrc patches
48:
49: $ pushd /usr/pkgsrc/www/firefox
50: $ mkpatches -c
51: $ popd
52: $ cat /usr/pkgsrc/www/firefox/patches/patch-*|patch -p0
53: $ hg add ...(necessary files)
54: $ hg commit -m "Apply pkgsrc patches for firefox-29.0.1nb2"
55:
56:
57: # Checkout latest beta source, and create your branch
58:
59: Find latest branch.
60:
61: $ hg branches | grep 300b9
62: GECKO300b9_2014052918_RELBRANCH 199964:b7037f050049
63:
64: Checkout the branch.
65:
66: $ hg checkout GECKO300b9_2014052918_RELBRANCH
67:
68: Create named branch for working.
69:
1.7 ! ryoon 70: $ hg branch ryoon_firefox-30.0b9
1.3 ryoon 71: $ hg commit -m "Create ryoon_firefox-30.0 branch for applying freebsd-gecko patches"
72:
73: Add .*\.orig$ to .hgignore, and commit this change
74:
75: $ hg commit -m "Ignore .orig files" .hgignore
76:
77: Apply patches from freebsd-gecko
78:
79: $ cat ~/repos/freebsd-gecko/trunk/www/firefox/files/patch-*|patch -p0
80:
81: Fix rejected patches manually
82:
83: $ hg status | grep rej$
84: $ vi path/to/a/certain/file.c
85:
86: Commit the patches
87:
88: $ hg add (necessary files)
89: $ hg commit -m "Apply freebsd-gecko patches for firefox-30.0"
90:
91:
92: # Merge your patches
93:
94: $ hg merge pkgsrc_firefox-29.0.1
95: $ hg resolve -l
96: $ vi file/marked/as/U
97: $ hg resolve --mark file/marked/as/U
98: (loop)
1.6 ryoon 99: $ hg commit -m "Merge pkgsrc_firefox-29.0.1 branch to 30.0"
1.3 ryoon 100:
101:
102: # Create patch file for patch -p0
103:
104: $ hg diff -r (revision of first commit in ryoon_freebsd-30.0) | \
105: sed -e 's!^--- a/!--- !' -e 's!^+++ b/!+++ !' > ~/firefox-30.0.diff
1.4 ryoon 106: $ vi ~/firefox-30.0.diff
1.3 ryoon 107: (Remove patch to .hgignore)
108: (Remove patch to .hgtags)
109:
110: # Create patches/patch-* for pkgsrc/www/firefox
111:
112: $ cd /usr/pkgsrc/www/firefox
113: $ vi Makefile
114: (Update version)
115: (Remove PKGREVISION)
1.5 ryoon 116: (Fix WRKSRC variable)
1.3 ryoon 117: $ make mdi
118: $ make extract
119: $ pushd ${WRKOBJDIR}/www/firefox/work/mozilla-beta
120: $ patch -p0 < ~/firefox-30.0.diff
121: $ popd
122: $ mkpatches
123: $ patchdiff
124: $ make mps
125:
126: # Test your patches
127:
128: $ make clean && make package
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb