Difference between revisions of "User:Sardisson/Building with mozilla-central"

From Camino Wiki
Jump to navigation Jump to search
(→‎To do: another fix i need to make)
Line 47: Line 47:
 
# Makefile.in
 
# Makefile.in
 
#* All the items mentioned in [[#Build-config changes in mozilla/camino|Build-config changes in mozilla/camino]], plus
 
#* All the items mentioned in [[#Build-config changes in mozilla/camino|Build-config changes in mozilla/camino]], plus
 +
#*# CFBundleVersion generation sed/regexp needs fixing to deal with longer build IDs
 
#*# CVS_TAG and CVS_TIME will need re-implementing for Hg
 
#*# CVS_TAG and CVS_TIME will need re-implementing for Hg
 
#*# Need to add wallet tables to camino/ and rework wallet table copying to adjust
 
#*# Need to add wallet tables to camino/ and rework wallet table copying to adjust

Revision as of 13:44, 9 February 2010

To start building Camino against Gecko 1.9.n, n>0, a number of basic build-config changes will be required.

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

  1. In camino/confvars.sh, comment out the MOZ_EXTENSIONS_DEFAULT=" typeaheadfind" line.
  2. In camino/build.mk, remove "embedding/config" from the "tier_app_dirs" rule
  3. Add a new file, camino/app-config.mk that looks like this but replaces all instances of SUITE with MACBROWSER
  4. In camino/Makefile.in
    1. 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.in back 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).
    2. 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.

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!

Known code-related build breakages

Fixes for all 1.9.1 build breakages not fixed on cvs trunk are included in the "1.9.1-full.diff" patch

  • 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[1] - hendy has a fix for this
  • On 1.9.2 and up, GetMispelledWord is now spelled correctly

To do

  1. 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)
    Can't disable crashreporter and updater in confvars.sh; need to try mozconfig
  2. mozconfig
    1. export MOZ_DEBUG_SYMBOLS=1 for NSS in tinderbox/release mozconfigs (Bug 468701)
    2. ac_add_options --disable-crashreporter (we don't need it, and it doesn't build on 10.6 in certain configs, anyway)
  3. Makefile.in
    • All the items mentioned in Build-config changes in mozilla/camino, plus
      1. CFBundleVersion generation sed/regexp needs fixing to deal with longer build IDs
      2. CVS_TAG and CVS_TIME will need re-implementing for Hg
      3. Need to add wallet tables to camino/ and rework wallet table copying to adjust
  4. Project/xcconfig/nsStaticComponents
    1. Remove xpautocomplete, suitetypeaheadfind, xmlextras, mork, lcms (libs, dylibs, xpts, modules)
    2. s/dist\/Embed/dist\/bin/
    3. replace installed-chrome.txt with dist/bin/chrome/{classic,comm,en-US,toolkit}.manifest
      • also need one for flashblock once it's re-enabled
    4. replace embed.jar and pipnss.jar with dist/bin/chrome/{classic,comm,en-US,toolkit}.jar
    5. What new libs/dylibs/modules/xpts are needed for, e.g. audio, video, qcms
      Check packages-static[2] for Firefox to see what got added when
      For nsStaticComponents, see [3]
    6. Additional NSS .chk files - Bug 509558 at least handled by the packager!
    7. Default Plugin lost its space
    8. libsydneyaudio links against CoreAudio, AudioToolbox, AudioUnit [4] but we only had to link against AudioUnit to link static; should we link the other two, also?
  5. installer/Makefile.in - _ABS_TOPSRCDIR is gone
  6. 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) [see notes above]
    Also all of the XUL UI crap they include that we don't need (toolkit)
  7. Figure out what we lost removing xpautocomplete
  8. Decide what to do about Find-As-You-Type (suitetypeaheadfind and extensions/typeaheadfind); Sm reimplemented FAYT in js for 1.9.1
  9. Fix embed-replacements/pinstripe changes
  10. Update gecko strings
  11. 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; Camino-only work-around; 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)
    • Bug 379199 - Key events (delete/backspace, escape, etc.) aren't propagated up the view hierarchy (1.9.0; Camino-only work-around; unclear if it will be accepted elsewhere)