Mozilla builds have become dependent on extensions including cookie, 
wallet, and xmlextras (for XSLT) at least.  We need to eliminate these 
unconditional compile-time dependencies, replacing them with XPCOM-based 
runtime dependencies where the calling or dependent code fails-soft if 
the extension is missing.  The techniques are well-known, and typically 
involve the calling code publishing a generic interface that extensions 
can implement and specify for callbacks when registering themselves with 
the calling code.

We do not propose to change the extensions configured in default builds, 
so don't panic -- you won't lose your favorite default extension 
feature!  But we will police *all* extensions with a tinderbox 
configured without any extensions, and back out or require prompt fixes 
to remove any future compile-time dependencies.

There have been attempts by volunteers to fix these dependencies in the 
past, which have been frustrated by non-technical objections, by mixing 
attempts to clean things up or generalize further with what should be 
more straightforward indirection via XPCOM techniques, and by lack of 
support from extension owners.  See bug 18352 
(http://bugzilla.mozilla.org/show_bug.cgi?id=18352), which records one 
such attempt, and which is now the tracking bug for all the necessary 
work items, filed as separate bugs, to fix this problem.  We need active 
support, if not direct action to re-integrate modularly, from the 
extension owners.  Please update the relevant dependency bug if you own 
the extension it covers:

xmlextras dom dependency: http://bugzilla.mozilla.org/show_bug.cgi?id=92377
cookie various dependencies: 
http://bugzilla.mozilla.org/show_bug.cgi?id=113519
wallet embedding dependencies: 
http://bugzilla.mozilla.org/show_bug.cgi?id=113538
wallet mail back-end dependencies: 
http://bugzilla.mozilla.org/show_bug.cgi?id=113540

If there's an extension not listed above, please file a new bug and link 
it as a dependency of 18352.

We would like to implement the new zero-tolerance policy against 
build-time dependencies on extensions on February 1st.  If you own an 
extension and can't reintegrate modularly by then, sound off here and in 
the bug.  With your help, perhaps a volunteer can do it by then.  Or 
maybe we can figure out a better date that still fits in 0.9.9. But we 
are serious, so there will soon come a point where a bogo-dependency on 
an extension will be cut by backing out the code that couples 
non-extension sources to extensions at build time.

/be

Reply via email to