User:Sardisson/Building with mozilla-central
To start building Camino against Gecko 1.9.n, n>0, a number of basic build-config changes will be required.
Contents
Checkout and mozconfig
To get started, first pull mozilla-central (or mozilla-1.9.x) from Hg.
For mozilla-central that means: hg clone http://hg.mozilla.org/mozilla-central/ mozilla-central
Then pull mozilla/camino, mozilla/extensions/typeaheadfind, and mozilla/extensions/wallet from cvs into the Hg checkout (at the moment you can skip the typeaheadfind part of this step, because we are disabling typeaheadfind in confvars.sh since it doesn't build).
N.B. If you are building mozilla-central, you will need to adjust your .mozconfig to use gcc-4.2, Mac OS X 10.5 sdk, and a target of Mac OS X 10.5, the defaults on that branch. You should also add ac_add_options --disable-crashreporter to disable building the toolkit crash reporter, which doesn't build in the "10.6, gcc-4.2, 10.5sdk, 10.5 target" configuration; Bug 491774.
Build-config changes in mozilla/camino
- In
camino/confvars.sh, comment out theMOZ_EXTENSIONS_DEFAULT=" typeaheadfind"line. - In
camino/build.mk, remove "embedding/config" from the "tier_app_dirs" rule - Add a new file,
camino/app-config.mkthat looks like this but replaces all instances ofSUITEwithMACBROWSER - In
camino/Makefile.in- Remove "flashblock", "pinstripe", and "striptease" from the "DIRS" variable.
- This disables flashblock, which will have to be disabled until it is made to use the new toolkit chrome manifests, and pinstripe, which will largely be obsolete but which will need to be adapted to do the new-style toolkit chrome override stuff for the app-license stuff.
- striptease's build will need fixing with 10.5/gcc4.2, or we'll need to switch
installer/Makefile.inback to strip and lose Mac OS X crash reports (Firefox recently reverted their uber-strip in order to get useful OS crash reports and sample/shark traces, so I think we want to fix striptease).
- Remove the following lines from the "libs::" rule:
- $(RSYNC_ALL) $(srcdir)/embed-replacements/ embed-replacements.tmp
- cd embed-replacements.tmp && \
- $(ZIP) -r0DX ../../dist/Embed/chrome/embed.jar *
- This disables embed-replacements, which will have to be reworked for the new toolkit jar structure, or turned into new-style toolkit chrome overrides along with the app-license stuff in pinstripe.
- Remove "flashblock", "pinstripe", and "striptease" from the "DIRS" variable.
The above changes should allow you to make it into the xcodebuild phase of the Camino build; at this point, real errors should start appearing!
- On 1.9.1 and up, the build breaks in history (mork-based history has been removed from toolkit) - patch in Bug 351351
On 1.9.1 and up, the build breaks in wallet - errors (MOZ_DECL_CTOR_COUNTER was removed in Bug 443058) - fixed by Bug 544690- On 1.9.1 and up, GetClientWidth is gone (GeckoUtils calls it on an element); - patch in Bug 544712
- On 1.9.2 and up, the build also breaks from enn's focus rewrite
To do
- In
camino/confvars.sh- XXXtodo: See if we can set the app name to Camino
- XXXtodo: What other changes from hendy's confvars.sh are required to get the right Gecko build (e.g., MOZ_PLACES)
- mozconfig
export MOZ_DEBUG_SYMBOLSfor NSS (Bug 468701)ac_add_options --disable-crashreporter(we don't need it, and it doesn't build on 10.6 in certain configs, anyway)
- Makefile.in
- All the items mentioned in Build-config changes in mozilla/camino, plus
- CVS_TAG and CVS_TIME will need re-implementing for Hg
- Need to rework wallet table copying to adjust for them being part of Camino now
- All the items mentioned in Build-config changes in mozilla/camino, plus
- Project/xcconfig/nsStaticComponents
- Remove xpautocomplete, suitetypeaheadfind, xmlextras, mork, lcms (libs, dylibs, xpts, modules)
- s/dist\/Embed/dist\/bin/
- replace installed-chrome.txt with dist/bin/chrome/{classic,comm,en-US,toolkit}.manifest
- also need one for flashblock once it's re-enabled
- replace embed.jar and pipnss.jar with dist/bin/chrome/{classic,comm,en-US,toolkit}.jar
- What new libs/dylibs/modules/xpts are needed for, e.g. audio, video, qcms
- Check packages-static for Firefox to see what got added when
- Additional NSS .chk files - Bug 509558 at least
- Default Plugin lost its space
- Figure out what other extraneous parts of toolkit/ we can leave out (e.g., alerts, updater) and whether we need to disable them in the mozconfig (only purely optional items) or confvars.sh (better)
- Also all of the XUL UI crap they include that we don't need (toolkit)
- Figure out which patches only landed in certain places and whether we need/can get them elsewhere (query fixed1.9.0.x keywords in Camino, maybe fixed1.9.0.x but not fixed1.9.1.x in W:C and Toolkit?)
- Bug 425958 - Content area flashes grey when opening new blank tabs (1.9.0, 1.9.3)
- Bug 459744 - Javascript can consume all keystrokes in content area, including tab and app menu shortcuts (1.9.0; josh won't take patch elsewhere; major)
- Bug 453222 - nsCocoaWindow_NSWindow_sendEvent: changes exception behavior in code having nothing to do with core (1.9.0, waiting for others; crashes)
- Bug 496582 - nsCocoaWindow_NSWindow_sendEvent should not assume |self| will remain valid (1.9.0, waiting for others; crashes)