SeaMonkey:hg-based build: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
The pages about [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_%28Mercurial%29 getting Mozilla code via hg] and [http://developer.mozilla.org/en/docs/Mercurial Mercurial (hg) itself] from Mozilla Developer Center are probably helpful when dealing with the repositories. | The pages about [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_%28Mercurial%29 getting Mozilla code via hg] and [http://developer.mozilla.org/en/docs/Mercurial Mercurial (hg) itself] from Mozilla Developer Center are probably helpful when dealing with the repositories. | ||
=== building SeaMonkey === | === building SeaMonkey or Thunderbird === | ||
* pull the [http://hg.mozilla.org/users/kairo_kairo.at/index.cgi/calemaisu-test/ test repository] | * pull the [http://hg.mozilla.org/users/kairo_kairo.at/index.cgi/calemaisu-test/ test repository] | ||
Line 14: | Line 14: | ||
* check if the patch for {{bug|442484}} has landed, else apply it manually (note that with hg, all patches need to applied with at least -p1 level in patch!) | * check if the patch for {{bug|442484}} has landed, else apply it manually (note that with hg, all patches need to applied with at least -p1 level in patch!) | ||
* make sure you have autoconfig 2.13 installed, see [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_%28Mercurial%29#Autoconf_2.13 the comment about this on MDC] | * make sure you have autoconfig 2.13 installed, see [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_%28Mercurial%29#Autoconf_2.13 the comment about this on MDC] | ||
* create a mozconfig, using the normal --enable-application=suite (for SeaMonkey, mail for Thunderbird) | |||
* build using client.mk: | * build using client.mk: | ||
gmake -f client.mk build | gmake -f client.mk build |
Revision as of 17:20, 28 June 2008
The work for building SeaMonkey and Thunderbird with mozilla-central has originally been based on the SeaMonkey/1.9.1_Repository_Options, and then refined following MailNews:HgMeetingNotes to use it own testing repository.
The new yet-to-be-named Mercurial repository contains SeaMonkey and Thunderbird code for now, calendar will follow at a later date. All of those codebases are imported as static snapshots from CVS, without keeping history, which will be available through cvs and web tools. The shared repository contains its own build system files, which started off as copies of the Mozilla equivalents, with some path adjustments and removals of not needed parts. For now, they call into lots of mozilla files, which can be gradually reduced over time so that in the end SeaMonkey and Thunderbird can build with some sort of a XULRunner SDK.
The pages about getting Mozilla code via hg and Mercurial (hg) itself from Mozilla Developer Center are probably helpful when dealing with the repositories.
building SeaMonkey or Thunderbird
- pull the test repository
hg clone http://hg.mozilla.org/users/kairo_kairo.at/calemaisu-test/ src cd src
- update/pull all other needed source via client.py
python client.py checkout
- check if the patch for bug 442484 has landed, else apply it manually (note that with hg, all patches need to applied with at least -p1 level in patch!)
- make sure you have autoconfig 2.13 installed, see the comment about this on MDC
- create a mozconfig, using the normal --enable-application=suite (for SeaMonkey, mail for Thunderbird)
- build using client.mk:
gmake -f client.mk build
for unit tests
Note that correct makefiles.sh files paper over the problem that make-makefiles does get confused with us being outside mozilla/ (bug 437896) but test makefiles rely on that automatic generation, so unit tests only can get built with a patch for that bug.
- mailnews/imap/test/Makefile.in: in the LOCAL_INCLUDES line 74, add a ../ between $(topsrcdir)/ and mailnews/
- mailnews/base/test/unit/head_mailbase.js: prefix "mailnews" directory with a "../"
- mailnews/db/msgdb/test/unit/head_maildb.js: prefix "mailnews" directory with a "../"
- mailnews/db/msgdb/test/unit/test_maildb.js: prefix "mailnews" directory with a "../"
- mailnews/news/test/unit/head_server_setup.js: prefix "mailnews" directory with a "../"
- mailnews/news/test/unit/test_server.js: prefix "mailnews" directory with a "../" in line 104
- mailnews/local/test/unit/head_maillocal.js: prefix "mailnews" directory with a "../"
- mailnews/compose/test/unit/head_compose.js: prefix "mailnews" directory with a "../"
- mailnews/compose/test/unit/test_sendMailMessage.js: prefix "mailnews" directory with a "../" in line 20
- mailnews/compose/test/unit/test_nsMsgCompose1.js: prefix "mailnews" directory with a "../" in lines 7,49,54
- mailnews/addrbook/test/unit/head_addrbook.js: prefix "mailnews" directory with a "../"
- mailnews/addrbook/test/unit/test_cardForEmail.js: prefix "mailnews" directory with a "../" in line 13
- mailnews/addrbook/test/unit/test_mailList1.js: prefix "mailnews" directory with a "../" in line 35
- mailnews/addrbook/test/unit/test_nsIAbCard.js: prefix "mailnews" directory with a "../" in line 14
- mailnews/extensions/bayesian-spam-filter/test/unit/head_bayes.js: prefix "mailnews" directory with a "../"
- mailnews/extensions/bayesian-spam-filter/test/unit/test_bug228675.js: prefix "mailnews" directory with a "../" in lines 41,155
additional changes to build Thunderbird
- pull from CVS: mail/
- mozconfig: --enable-application=../mail
- mozconfig: mk_add_options MOZ_OBJDIR=/path/to/objdir/mozilla (again, note the "mozilla" at the end!)
- cd mail/; sed -i 's/^DEPTH.*\.\.$/&\/mozilla/g' `find . -name Makefile.in`
- mail/build.mk: prefix mailnews/ and mail/ with ..
- mail/makefiles.sh: add removed mailnews block from mozilla/toolkit/toolkit-makefiles.sh line 913 at line 38
- mail/makefiles.sh: prefix all mail/ directories in add_makefiles with "../"
- mail/confvars.sh: add the following line before MOZ_APP_VERSION (line 55) (without indentation):
THUNDERBIRD_VERSION=`cat $topsrcdir/../mail/config/version.txt`
- mail/app-config.mk: create this file, containing the following lines (without indentation):
MOZ_THUNDERBIRD = 1 THUNDERBIRD_VERSION = $(MOZ_APP_VERSION) DEFINES += -DMOZ_THUNDERBIRD=1
- mail/locales/Makefile.in: prefix relativesrcdir in line 41 with ../; prefix "mailnews" in line 100 with "../"
- mail/base/jar.mn: replace /mailnews/ with /../mailnews/ (right-hand side)
- mail/components/compose/jar.mn: replace /mailnews/ with /../mailnews/ (right-hand side)
- mail/components/preferences/jar.mn: replace /mailnews/ with /../mailnews/ (right-hand side)
- mail/components/addrbook/jar.mn: replace /mailnews/ with /../mailnews/ (right-hand side)
- mail/extensions/smime/jar.mn: replace /mailnews/ with /../mailnews/ (right-hand side)
- mail/app/Makefile.in: insert ../ between $(topsrcdir)/ and mail/ in line 52
building with Lightning calendar
- pull from CVS: mozilla/calendar/
- pull from CVS: mozilla/extensions/lightning/
- pull from CVS: mozilla/extensions/webdav/
- mozconfig: --enable-extensions=default,lightning
- mozilla/calendar/lightning/Makefile.in: include config.mk with the patch for bug 440017
- suite/app-config.mk and mail/app-config.mk: add the following lines at the end of the file:
# needed to install the Lightning extension if it's built INSTALL_LIGHTNING = 1
- mozilla/calendar/lightning/install.rdf: apply the patch for bug 440022 so that the produced Lighting installs well.